Лекция
Тема: Структура стека протоколов TCP/IP.
Цель.
1. Обучающая.Ввести основные понятия. Освоить методы разработки и способы представления элементов сети.
2. Развивающая. Развивать логику, умение анализировать, сравнивать, делать выводы, высказывать свою мысль. Развивать внимание и аналитическое мышление.
3. Воспитательная. Воспитывать интерес к языкам программирования, научным достижениям и открытиям. Воспитывать аккуратность, внимательность и дисциплинированность. Формирование самостоятельности и ответственности при повторении пройденного и изучении нового материала. Воспитывать чувство ответственности за напарника при работе в группе.
Межпредметные связи:
- Обеспечивающие: информатика.
- Обеспечиваемые: базы данных.
Методическое обеспечение и оборудование:
1. Методическая разработка к занятию.
2. Рабочая программа.
3. Инструктаж по технике безопасности.
Технические средства обучения: проэктор, компьютер.
Обеспечение рабочих мест:
- Рабочие тетради.
Ход лекции.
Организационный этап.
Анализ и проверка домашнего задания.
Фронтальный опрос по вопросам.
Структура стека протоколов TCP/IP
Корпоративная сеть — это сложная система, состоящая из большого числа разнообразных устройств: компьютеров, концентраторов, маршрутизаторов, коммутаторов, системного прикладного программного обеспечения и т.д. Основная задача системных интеграторов и администраторов сетей состоит в том, чтобы эта система как можно лучше справлялась с обработкой потоков информации и позволяла получать правильные решения пользовательских задач в корпоративной сети. Прикладное программное обеспечение запрашивает сервис, обеспечивающий связь с другими прикладными программами. Этим сервисом является механизм межсетевого обмена.
Корпоративная информация, интенсивность ее потоков и способы ее обработки постоянно меняются. Примером резкого изменения технологии обработки корпоративной информации стал беспрецедентный рост популярности глобальной сети Internet за последние 2-3 года. Сеть Internet изменила способ представления информации, собрав на своих серверах все ее виды — текст, графику и звук. Транспортная система сети Internet существенно облегчила задачу построения распределенной корпоративной сети.
Соединение и взаимодействие в рамках одной мощной компьютерной сети явилось целью проектирования и создания семейства протоколов, названных в дальнейшем стеком протоколов TCP/IP (Transmission Control Protocol/Internet Protocol). Главной идеей стека является создание механизма межсетевого обмена.
Стек протоколов TCP/IP широко применяется во всем мире для объединения компьютеров в сети Internet. TCP/IP — это общее название, присвоенное семейству протоколов передачи данных, используемых для связи компьютеров и другого оборудования в корпоративной сети.
Основное достоинство стека протоколов TCP/IP в том, что он обеспечивает надежную связь между сетевым оборудованием от различных производителей. Это достоинство обеспечивается включением в состав TCP/IP отработанного в процессе эксплуатации набора коммуникационных протоколов с различными стандартизованными приложениями. Протоколы стека TCP/IP предоставляют механизм передачи сообщений, описывают детали форматов сообщений и указывают, как обрабатывать ошибки. Протоколы позволяют описать и понять процессы передачи данных, не учитывая тип оборудования, на котором эти процессы происходят.
История создания стека протоколов TCP/IP началась с момента, когда Министерство обороны США столкнулось с проблемой объединения большого числа компьютеров с различными операционными системами. Для этого в 1970 году был составлен набор стандартов. Протоколы, разработанные на базе этих стандартов, получили обобщенное название TCP/IP.
Стек протоколов TCP/IP был изначально предназначен для сети Advanced Research Project Agency Network (ARPANET). ARPANET рассматривалась как экспериментальная распределенная сеть коммутации пакетов. Эксперимент по применению стека протоколов TCP/IP в этой сети закончился с положительными результатами. Поэтому стек протоколов был принят в промышленную эксплуатацию, а в дальнейшем был расширен и усовершенствовался в течение нескольких лет. Позже стек адаптировали для использования в локальных сетях. В начале 1980 года протокол стал использоваться как интегральная часть операционной системы Вегkley UNIX v4.2. В этом же году появилась объединенная сеть Internet. Переход к технологии Internet был завершен в 1983 году, когда Министерство обороны США установило, что все компьютеры, присоединенные к глобальной сети, используют стек протоколов TCP/IP.
Стек протоколов TCP/IP предоставляет пользователям два основных сервиса, которые используют прикладные программы:
• Дейтаграммное средство доставки пакетов.Это означает, что протоколы стека TCP/IP определяют маршрут передачи небольшого сообщения, основываясь только на адресной информации, находящейся в этом сообщении. Доставка осуществляется без установки логического соединения. Такой тип доставки делает протоколы TCP/IP адаптируемыми к широкому диапазону сетевого оборудования.
• Надежное потоковое транспортное средство.Большинство приложений требует от коммуникационного программного обеспечения автоматического восстановления при ошибках передачи, потере пакетов или сбоях в промежуточных маршрутизаторах. Надежное транспортное средство позволяет устанавливать логическое соединение между приложениями, а затем посылать большие объемы данных по этому соединению.
Основными преимуществами стека протоколов TCP/IP являются:
• Независимость от сетевой технологии.Стек протоколов TCP/IP не зависит от оборудования конечных пользователей, так как он только определяет элемент передачи — дейтаграмму — и описывает способ ее движения по сети.
• Всеобщая связанность.Стек позволяет любой паре компьютеров, которые его поддерживают, взаимодействовать друг с другом. Каждому компьютеру назначается логический адрес, а каждая передаваемая дейтаграмма содержит логические адреса отправителя и получателя. Промежуточные маршрутизаторы используют адрес получателя для принятия решения о маршрутизации.
• Межконцевые подтверждения.Протоколы стека TCP/IP обеспечивают подтверждение правильности прохождения информации при обмене между отправителем и получателем.
• Стандартные прикладные протоколы.Протоколы TCP/IP включают в свой состав средства для поддержки наиболее часто встречающихся приложений, таких как электронная почта, передача файлов, удаленный доступ и т.д.
Резкий рост сети Internet и, естественно, ускоренное развитие стека протоколов TCP/IP потребовали от разработчиков создания серии документов, которые способствовали бы дальнейшему упорядоченному развитию протоколов. Организация Internet Activities Board (IAB) разработала серию документов, называемых RFC (Request For Comments). Некоторые RFC описывают сетевые сервисы или протоколы и их реализацию, другие документы описывают условия их применения. В том числе в RFC опубликованы стандарты стека протоколов TCP/IP. При этом следует иметь в виду, что стандарты TCP/IP всегда публикуются в виде документов RFC, но не все RFC определяют стандарты.
Документы RFC первоначально публиковались в электронном виде и могли комментироваться теми, кто принимал участие в их обсуждении. Документ мог претерпевать несколько изменений до тех пор, пока не будет достигнуто общее соглашение по его содержанию. Если документ при этом регламентировал новую идею, то ему присваивался номер, и он помещался к другим RFC. При этом каждому новому документу присваивается статус, регламентирующий необходимость его внедрения. Выход в свет нового документа RFC вовсе не означает, что все производители оборудования и программного обеспечения должны внедрять его в своей продукции. В приложении № 2 приведены описания некоторых документов RFC и их статусов.
Содержание документов RFC делится на две части. Эти части определяют:
1. Состояние стандартизации.Протокол может иметь несколько состояний:
• стандарт на протокол утвержден;
• стандарт на протокол предлагается к рассмотрению;
• предлагается экспериментальный протокол;
• протокол устарел и в настоящее время не используется.
2. Статус протокола.Протокол может иметь несколько статусов:
• протокол требуется для внедрения;
• протокол рекомендуется для внедрения;
• протокол может внедряться производителем по выбору;
• протокол не рекомендуется для внедрения.
При эксплуатации сложной корпоративной сети возникает масса не связанных между собой проблем. Решить их функциональными возможностями одного протокола практически невозможно. Такой протокол должен был бы:
• распознавать сбои в сети и восстанавливать ее работоспособность;
• распределять пропускную способность сети и знать способы уменьшения потока данных при перегрузке;
• распознавать задержки и потери пакетов, знать способ уменьшения ущерба от этого;
• распознавать ошибки в данных и информировать о них прикладное программное обеспечение;
• производить упорядоченное движение пакетов в сети.
Такое количество функциональных возможностей не под силу одному протоколу. Поэтому был создан набор взаимодействующих протоколов, названный стеком.
Так как стек протоколов TCP/IP был разработан до появления эталонной модели OSI, то соответствие его уровней уровням модели OSI достаточно условно. Структура стека протоколов TCP/IP приведена на рис. 1.1.
Рис. 1.1. Структура стека протоколов TCP/IP.
Рис. 1.2. Путь передачи сообщений.
Теоретически посылка сообщения от одной прикладной программы к другой означает последовательную передачу сообщения вниз через соседние уровни стека у отправителя, передачу сообщений по уровню сетевого интерфейса (уровню IV) или, в соответствии с эталонной моделью OSI, по физическому уровню, прием сообщения получателем и передачу его вверх через соседние уровни протокольного программного обеспечения. На практике взаимодействие уровней стека организовано гораздо сложнее. Каждый уровень принимает решение о корректности сообщения и производит определенное действие на основании типа сообщения или адреса назначения. В структуре стека протоколов TCP/IP имеется явный «центр тяжести» — это сетевой уровень и протокол IP в нем. Протокол IP может взаимодействовать с несколькими модулями протоколов более высокого уровня и несколькими сетевыми интерфейсами. То есть на практике процесс передачи сообщений от одной прикладной программы к другой будет выглядеть следующим образом: отправитель передает сообщение, которое на уровне III протоколом IP помещается в дейтаграмму и посылается в сеть (сеть 1). На промежуточных устройствах, например маршрутизаторах, дейтаграмма передается вверх до уровня протокола IP, который отправляет ее обратно вниз, в другую сеть (сеть 2). Когда дейтаграмма достигает получателя, протокол IP выделяет сообщение и передает его на верхние уровни. Рис. 1.2 иллюстрирует данный процесс.
Структуру стека протоколов TCP/IP можно разделить на четыре уровня. Самый нижний — уровень сетевого интерфейса (уровень IV) -соответствует физическому и канальному уровню модели OSI. В стеке протоколов TCP/IP этот уровень не регламентирован. Уровень сетевого интерфейса отвечает за прием дейтаграмм и передачу их по конкретной сети. Интерфейс с сетью может быть реализован драйвером устройства или сложной системой, которая использует свой протокол канального уровня (коммутатор, маршрутизатор). Он поддерживает стандарты физического и канального уровня популярных локальных сетей: Ethernet, Token Pang, FDDI и т.д. Для распределенных сетей поддерживаются проколы соединений РРР и SLIP, а для глобальных сетей — протокол Х.25. Предусмотрена поддержка использования развивающейся технологии коммутации ячеек — ATM. Обычной практикой стало включение в стек протоколов TCP/IP новых технологий локальных или распределенных сетей и регламентация их новыми документами RFC.
Сетевой уровень (уровень III) — это уровень межсетевого взаимодействия. Уровень управляет взаимодействием между пользователями в сети. Он принимает от транспортного уровня запрос на посылку пакета от отправителя вместе с указанием адреса получателя. Уровень инкапсулирует пакет в дейтаграмму, заполняет ее заголовок и при необходимости использует алгоритм маршрутизации. Уровень обрабатывает приходящие дейтаграммы и проверяет правильность поступившей информации. На стороне получателя программное обеспечение сетевого уровня удаляет заголовок и определяет, какой из транспортных протоколов будет обрабатывать пакет.
В качестве основного протокола сетевого уровня в стеке TCP/IP используется протокол IP, который и создавался с целью передачи информации в распределенных сетях. Достоинством протокола IP является возможность его эффективной работы в сетях со сложной топологией. При этом протокол рационально использует пропускную способность низкоскоростных линий связи. В основе протокола IP заложен дейтаграммный метод, который не гарантирует доставку пакета, но направлен на ее осуществление.
К этому уровню относятся все протоколы, которые создают, поддерживают и обновляют таблицы маршрутизации. Кроме того, на этом уровне функционирует протокол обмена информацией об ошибках между маршрутизаторами в сети и отправителями.
Следующий уровень — транспортный (уровень II). Основной его задачей является обеспечение взаимодействия между прикладными программами. Транспортный уровень управляет потоком информации с обеспечением надежной передачи. Для этого использован механизм подтверждения правильного приема с дублированием передачи утерянных или пришедших с ошибками пакетов. Транспортный уровень принимает данные от нескольких прикладных программ и посылает их более низкому уровню. При этом он добавляет дополнительную информацию к каждому пакету, в том числе и значение вычисленной контрольной суммы.
На этом уровне функционирует протокол управления передачей данных TCP (Transmission Control Protocol) и протокол передачи прикладных пакетов дейтаграммным методом UDP (User DatagramProtocol). Протокол TCP обеспечивает гарантированную доставку данных за счет образования логических соединений между удаленными прикладными процессами. Работа протокола UDP аналогична работе протокола IP, но основной его задачей является выполнение функций связующего звена между сетевым протоколом и различными приложениями.
Самый верхний уровень (уровень I) — прикладной. На нем реализованы широко используемые сервисы прикладного уровня. К ним относятся: протокол передачи файлов между удаленными системами, протокол эмуляции удаленного терминала, почтовые протоколы и т.д. Каждая прикладная программа выбирает тип транспортировки — либо непрерывный поток сообщений, либо последовательность отдельных сообщений. Прикладная программа передает данные транспортному уровню в требуемой форме.
Рассмотрение принципов функционирования стека протоколов TCP/IP целесообразно проводить, начиная с протоколов третьего уровня. Это связано с тем, что протоколы более высоких уровней в своей работе опираются на функциональные возможности протоколов нижних уровней. Для понимания проблем маршрутизации в распределенных сетях изучение протоколов рекомендуется проводить в следующей последовательности: IP, ARP, ICMP, UDP и TCP. Это связано с тем, что для доставки информации между удаленными системами в распределенной сети используется в той или иной степени все семейство стека протоколов TCP/IP.
Стек протоколов TCP/IP включает в свой состав большое число протоколов прикладного уровня. Эти протоколы выполняют различные функции, в том числе: управление сетью, передачу файлов, оказание распределенных услуг при использовании файлов, эмуляцию терминалов, доставку электронной почты и т.д. Протокол передачи файлов (File Transfer Protocol — FTP) обеспечивает перемещение файлов между компьютерными системами. Протокол Telnet обеспечивает виртуальную терминальную эмуляцию. Простой протокол управления сетью (Simple Network Management Protocol— SNMP) является протоколом управления сетью, используемым для сообщений об аномальных условиях в сети и установления значений допустимых порогов в сети. Простой протокол передачи почты (Simple Mail Transfer Protocol — SMTP) обеспечивает механизм передачи электронной почты. Эти протоколы и другие приложения используют услуги стека TCP/IP для обеспечения пользователей базовыми сетевыми услугами.
Более подробно протоколы прикладного уровня стека протоколов TCP/IP в рамках данного материала не рассматриваются.
Перед рассмотрением протоколов стека TCP/IP введем базовые термины, определяющие названия фрагментов информации, передаваемой между уровнями. Название блока данных, передаваемого по сети, зависит от того, на каком уровне стека протоколов он находится. Блок данных, с которым имеет дело сетевой интерфейс, называется кадром. Если блок данных находится между сетевым интерфейсом и сетевым уровнем, то он называется IP-дейтаграммой (или просто дейтаграммой). Блок данных, циркулирующий между транспортным и сетевым уровнями и выше, называется IP-пакетом. На рис. 1.3 показано соответствие обозначений блоков данных уровням стека протоколов TCP/IP.
Рис. 1.3. Обозначение фрагментов информации на уровнях стека TCP/IP.
Очень важно дополнить описание уровней стека протоколов TCP/IP описанием различия между передачей от отправителя непосредственно к получателю и передачей через несколько сетей. На рис. 4 показано различие между этими видами передач.
Рис.1.4. Способы передачи информации.
При доставке сообщения через две сети с применением маршрутизатора оно использует два разных сетевых кадра (кадр 1 и кадр 2). Кадр 1 — для передачи от отправителя до маршрутизатора, кадр 2 — от маршрутизатора до получателя.
Прикладной и транспортный уровни могут устанавливать соединения, поэтому принцип разделения на уровни определяет, что пакет, принятый транспортным уровнем получателя, должен быть идентичен пакету, посланному транспортным уровнем отправителя.