В этой главе описываются четыре уровня стека протоколов TCP/IP и подробно объясняется, как протоколы каждого уровня взаимодействуют с остальными. Два видеоролика познакомят Вас с TCP/IP. В ходе занятий Вы просмотрите и обновите кэш протокола ARP (Address Resolution Protocol) и увидите сетевые пакеты при помощи Network Monitor.
- установить ОС Windows NT Server 4.0 с протоколом TCP/IP;
- установить сервис Network Monitor Tools and Agent Network, описанный в главе 2;
- найти прилагаемый к курсу компакт-диск с мультимедийной презентацией.
Кроме того, желательно приобрести звуковую плату, а также наушники или колонки.
Занятие1. Стек протоколов Microsoft TCP/IP
(Продолжительность занятия 30 минут)
На этом занятии описываются четыре уровня стека протоколов TCP/IP (TCP/IP protocol suite) и объясняется внутренняя работа протоколов каждого уровня, а также их взаимодействие с остальными протоколами. Перед началом занятия Вы посмотрите видеоролик, описывающий TCP/IP.
Изучив материал этого занятия, Вы сможете:
- описать семейство протоколов TCP/IP с помощью четырехуровневой модели;
- перечислить протоколы уровня сетевого интерфейса, поддерживаемые прото колом IP (Internet Protocol).
Видеоролик: обзор семейства протоколов TCP/IP
В этом 15-минутном видеоролике представлен обзор стека протоколов TCP/IP компании Microsoft и других фирм, описано их представление в виде четырехуровневой модели, рассказано о работе протоколов каждого уровня, а также о их взаимодействии с другими протоколами.
Запуск видеоролика
1. Вставьте прилагаемый к курсу компакт-диск в CD-ROM-дисковод, запустит- ся Microsoft Internet Explorer и откроется страница The Internetworking with Microsoft TCP/IP on Windows NT 4.0, или запустите Microsoft Internet Explorer, перейдите на прилагаемый к курсу компакт- диск и дважды щелкните мышью файл Open.htm.
2. Щелкните пиктограмму начальной страницы.
3. Щелкните Course Materials.
4. Щелкните Multimedia Presentation.
5. Щелкните Overview of the TCP/IP Protocol Suite.
Появится диалоговое окно Internet Explorer с вопросом, хотите Вы открыть файл или записать его на диск.
6. Выберите Open it, затем щелкните кнопку ОК.
7. Если на экране появится диалоговое окно системы безопасности, щелкните в нем кнопку ОК.
Начнется показ видеоролика. Если на Вашем компьютере нет звуковой платы и динамиков, то щелкните мышью Text On.
Четырехуровневая модель
Протоколы семейства TCP/IP можно представить в виде модели, которая состоит из четырех уровней: приложения (Application layer), транспортного (Transport layer), межсетевого, или уровня Интернета (Internet layer), и сетевого интерфейса (Network Interface layer). Основные протоколы Microsoft TCP/IP — это набор стандартов для соединения компьютеров и межсетевого взаимодействия.
Уровень сетевого интерфейса
В основании этой модели лежит уровень сетевого интерфейса. Соответствующие ему компоненты отвечают за отправку в сеть и прием из сети кадров, содержащих пакеты информации. Кадры передаются по сети как единое целое.
Межсетевой уровень
Протоколы Интернета инкапсулируют пакеты данных в датаграммы Интернета* и проводят необходимую маршрутизацию. Четыре основных протокола Интернета предназначены:
- IP (Internet Protocol) — в основном для отправки и маршрутизации пакетов между сетями и узлами;
- ARP (Address Resolution Protocol) — для получения адресов сетевых адаптеров узлов в рамках одной физической сети;
- ICMP (Internet Control Message Protocol) — для отправки извещений и сообщений об ошибках, связанных с доставкой пакетов;
- IGMP (Internet Group Management Protocol) используется IP-узлами для сообщения поддерживающим групповую передачу маршрутизаторам о своем участии в группах.
Транспортный уровень
Транспортный уровень обеспечивает сеансы связи между компьютерами. Существуют два транспортных протокола: TCP (Transmission Control Protocol) и UDP (User Datagram Protocol). Использование одного из них зависит от выбранного метода доставки данных.
TCP ориентирован на соединение и используется приложениями, обычно передающими большие объемы данных за одну операцию, так как обеспечивает надежное соединение, а также теми приложениями, которым необходимо подтверждение приема данных.
* Транспортируемые независимо от других массивы данных, далее — пакеты. — Прим. перев.
Протокол UDP обеспечивает не ориентированную на соединение передачу данных и не гарантирует доставку пакетов. Приложения, использующие протокол UDP, обычно передают небольшие объемы данных за одну операцию. Ответственность за надежную доставку данных несет само приложение.
Уровень приложения
Венчает модель TCP/IP уровень, на котором приложения получают доступ к сетевым компонентам. Здесь работает множество стандартных утилит и сервисов протокола TCP/IP, например FTP, Telnet, SNMP и DNS.
Технологии сетевых интерфейсов
Протокол IP использует спецификацию интерфейса сетевого драйвера (Network Driver Interface Specification, NDIS) для передачи кадров модулям уровня сетевого интерфейса. IP поддерживает технологии сетевых интерфейсов как для локальных (LAN), так и для глобальных (WAN) сетей.
Поддерживаемые протоколом TCP/IP технологии LAN включают Ethernet (Ethernet II и 802.3), Token Ring, ArcNet и технологии MAN (Metropolitan Area Network), например FDDI.
Для использования TCP/IP в глобальных сетях требуется служба удаленного доступа Windows NT RAS (Remote Access Service) или дополнительное аппаратное обеспечение. Существует две основных категории оборудования WAN, поддерживаемого протоколом TCP/IP: последовательные линии связи (serial lines) и сети с коммутацией пакетов (packet-switched networks). Последние включают технологию Х.25, сети с ретрансляцией кадров (frame relay) и сети асинхронной передачи (ATM).
Протоколы последовательной линии
По телефонным линиям данные TCP/IP обычно передаются при помощи протоколов SLIP (Serial Line Internet Protocol) или РРР (Point-to-Point Protocol).
Протокол SLIP — промышленный стандарт, разработанный в начале 80-х годов для поддержки TCP/IP при соединении через низкоскоростные последовательные интерфейсы. Применяя службу Windows NT RAS, компьютеры под управлением Windows NT могут использовать протоколы TCP/IP и SLIP для связи с удаленными узлами.
Примечание Windows NT поддерживает только клиентскую часть протокола SLIP, но не SLIP-сервер. Серверы Windows NT RAS не могут устанавливать соединения со SLIP-клиентами.
Протокол РРР, разработанный как расширение SLIP, является протоколом канального уровня (data-link protocol) и обеспечивает стандартный метод передачи сетевых пакетов через соединение типа «точка-точка» (point-to-point link). Поскольку NWLink в Windows NT тоже поддерживает NetBIOS-интерфейс. — Прим перев.
Обзор архитектуры стека протоколов TCP/IP •
протокол РРР обеспечивает лучшую защиту, управление конфигурацией и обнаружение ошибок, чем протокол SLIP, на последовательных линиях рекомендуется использовать именно его.
Примечание Передача данных протокола IP по телефонным линиям описана в RFC 1055. Протокол РРР описан в RFC 1547 и 1661. Копии этих документов находятся на Web-странице Course Materials прилагаемого к курсу компакт-диска.
Резюме
TCP/IP можно представить в виде четырехуровневой концептуальной модели, состоящей из следующих уровней: приложения, транспортного, Интернета (межсетевой) и сетевого интерфейса. Протокол IP можно использовать как в локальных, так и в глобальных сетях.
(Продолжительность занятия 45 минут)
Для того чтобы установить соединение, узлам должны быть известны адреса сетевых адаптеров других узлов. Разрешение адреса (address resolution) — это процесс определения аппаратного адреса сетевого адаптера по его IP-адресу. Протокол ARP (Address Resolution Protocol) — часть уровня Интернета модели TCP/IP — позволяет определять адреса сетевых адаптеров узлов, расположенных в одной физической сети.
Изучив материал этого занятия, Вы сможете:
- объяснить, как протокол ARP преобразует IP-адрес в адрес сетевого адаптера;
- объяснить, как протокол ARP добавляет и удаляет записи из своего кэша;
- просмотреть и изменить кэш протокола ARP
Протокол ARP нужен для получения адресов сетевых адаптеров TCP/IP-узлов в сетях, поддерживающих широковещание. Он использует широковещательные запросы, содержащие IP-адрес получателя, чтобы выяснить адрес сетевого адаптера этого узла или адрес необходимого шлюза.
Получив адрес сетевого адаптера, ARP сохраняет его вместе с соответствующим IP-адресом в своем кэше. Протокол ARP всегда сначала ищет адреса IP и сетевого адаптера в кэше перед формированием широковещательного ARP-запроса.
Обратное разрешение адреса (reverse address resolution) — отображение адреса сетевого адаптера узла в его IP-адрес. Microsoft TCP/IP этот механизм не поддерживает.
Примечание Протокол ARP описан в RFC 826. Копия этого документа нахо- дится на Web-странице Course Materials прилагаемого к курсу компакт-диска.
Разрешение локального IP-адреса
Перед соединением двух узлов IP-адрес каждого из них должен быть преобразован в адрес сетевого адаптера. Этот процесс состоит из выполнения ARP-запроса и получения ARP-ответа.
1. ARP-запрос формируется каждый раз при попытке одного узла связаться с другим. Если протокол IP определит, что IP-адрес принадлежит локальной сети, узел-отправитель ищет адрес узла-получателя в своем собственном ARP-кэше.
2. Если он не найден, протокол ARP формирует запрос типа «Чей это IP-адрес и каков Ваш адрес сетевого адаптера?», в который также включаются адреса IP и сетевого адаптера узла-отправителя. ARP-запрос посылается в широковещательном режиме, чтобы все узлы в локальной сети могли принять и обработать его.
3. Каждый узел в локальной сети получает этот широковещательный запрос и сравнивает указанный в нем IP-адрес со своим собственным. Если они не совпадают, запрос игнорируется.
4. Узел-получатель определяет, что IP-адрес в запросе совпадает с его собственным, и посылает на узел-отправитель ARP-ответ, в котором указывает свой адрес сетевого адаптера. Затем он обновляет свой ARP-кэш, занося в него соответствие IP-адреса узла-отправителя адресу его сетевого адаптера. После того как узел-отправитель получает ARP-ответ, соединение может быть установлено.
Разрешение удаленного IP-адреса
Протокол ARP также позволяет связываться двум узлам из различных сетей. В этом случае широковещательный ARP-запрос обеспечивает возможность выяснить адрес используемого отправителем шлюза по умолчанию, а не узла-получателя.
Если получатель находится в удаленной сети, то широковещательный ARP-запрос используется для поиска маршрутизатора, который может пересылать пакеты в эту сеть.
1. При соединении определяется, что IP-адрес узла-получателя принадлежит удаленной сети. Узел-отправитель ищет в локальной таблице маршрутизации путь к узлу-получателю или его сети. Если путь не найден в таблице, узел-отправитель определяет IP-адрес шлюза по умолчанию. Затем он ищет в кэше протокола ARP соответствующий ему адрес сетевого адаптера.
2. Если этот адрес в кэше отсутствует, то широковещательный ARP-запрос используется для получения адреса шлюза, а не узла-получателя.
Маршрутизатор (шлюз) в ответ на ARP-запрос узла-отправителя посылает адрес своего сетевого адаптера. Затем узел-отправитель адресует пакет на маршрутизатор для доставки его в сеть получателя и далее — узлу-получателю.
3. На маршрутизаторе выясняется, является ли IP-адрес получателя локальным или удаленным. Если он локальный, то маршрутизатор использует протокол ARP (кэш или широковещание) для получения его адреса сетевого адаптера. Если же — удаленный, маршрутизатор ищет в своей таблице маршрутизации необходимый шлюз, а затем использует протокол ARP (кэш или широковещание) для получения адреса его сетевого адаптера. Далее пакет отправляется непосредственно следующему получателю в этой цепочке.
4. Когда пакет достигнет получателя и будет обработан им, все исходящие пакеты таким же образом будут доставлены обратно. Например, при выполнении команды Ping в ответ на эхо-запрос узел-получатель пакета формирует эхо-ответ протокола ICMP (ICMP echo-reply). Поскольку узел-отправитель находится в удаленной сети, в локальной таблице маршрутизации ищется адрес шлюза к сети узла-отправителя. Если поиск завершается успехом, адрес сетевого адаптера шлюза выясняется с помощью ARP.
5. Если адреса сетевого адаптера указанного шлюза нет в кэше протокола ARP, то для его определения используется широковещательный ARP-запрос. Как только адрес получен, эхо-ответ протокола ICMP посылается на маршрутизатор, который перенаправляет его на исходный узел-отправитель.
Кэш протокола ARP
Для уменьшения числа широковещательных пакетов ARP кэширует адреса для последующего использования. Применяются два типа записей в кэше ARP — динамические и статические. Первые добавляются и удаляются автоматически. Вторые находятся в кэше до перезагрузки компьютера.
В дополнение к этому в кэше протокола ARP всегда присутствует адрес для широковещания в локальной подсети (FFFFFFFFFFFF) в виде статической записи, которая не отображается при просмотре кэша.
По умолчанию для кэша протокола ARP установлены тайм-ауты, равные 2 минутам для невостребованных записей и 10 минутам для записей, к которым обращались. Если в реестр добавить параметр ARPCacheLife и задать тайм-аут в секундах, именно эта величина будет использоваться вместо упомянутых ранее.
Примечание В некоторых реализациях TCP/IP при повторном использовании записи ей присваивается новая отметка о времени поступления, которая добавляет дополнительные 10 минут ко времени ее жизни. В Windows NT 4.0 эта функция не реализована.
Добавление статических (постоянных) записей
Добавление статической ARP-записи уменьшает количество ARP-запросов для узлов, к которым обращаются достаточно часто. На компьютере, работающем под управлением Windows NT 4.0, статическая запись, добавленная в кэш ARP, доступна до:
- перезагрузки компьютера;
- удаления записи вручную при помощи команды arp -d;
- получения в широковещательном ARP-сообщении другого адреса сетевого адаптера (в этом случае тип записи меняется со статического на динамический и полученный в сообщении адрес заменяет текущий).
Примечание Если Вы вручную помещаете запись в кэш протокола ARP, то адрес сетевого адаптера в команде агр следует разделять дефисами.
Структура ARP-пакета
Хотя протокол ARP был разработан для разрешения именно IP-адресов, структура ARP-пакета может быть использована и для разрешения адресов других типов. Кадрам, содержащим ARP-пакеты, в поле EtherType соответствует значение 0x08-06. Поля пакета ARP показаны в таблице.
Поле Описание
Hardware Type (Тип аппаратного обеспечения) Задается тип используемого сетевого оборудования (Network Access Layer), например Ethernet Protocol Type(Тип протокола) С помощью значений поля EtherType кадра Ethernet задается используемый при разрешении адресов протокол Для Протокола IP значение поля Protocol Туре равно 0x08-00 Hardware Address Length(Длина адреса сетевого адаптера) Задается длина адреса сетевого адаптера в байтах. Для Ethernet и Token Ring длины равны 6 байтам Protocol Address Length (Длина адреса протокола) Задается длина адреса протокола в байтах. Для протокола IP длина равна 4 байтам Operation (Opcode) [Операция (Код операции)] Задается выполняемая операция Sender`s Hardware Address (Адрес сетевого адаптера отправителя) Задается адрес сетевого адаптера отправителя Sender`s Protocol Address (Адрес протокола отправителя) Задается адрес протокола отправителя Target`s Hardware Address (Адрес сетевого адаптера получателя) Задается адрес сетевого адаптера получателя Target`s Protocol (Address Адрес протокола получателя) Задается адрес протокола получателя Упражнения
Вы используете Network Monitor для захвата и просмотра пакетов протокола ARP. Затем Вы подробно изучите ARP-запрос и ARP-ответ.
Примечание Для выполнения упражнения Вам потребуются два сетевых компьютера, описанных в разделе «Об этой книге». Выполняйте задание на компьютере, сконфигурированном как Serverl.
Запуск Network Monitor
1. Зарегистрируйтесь в системе как Administrator.
2. Щелкните кнопку Start, выберите Programs, укажите на Administrative Tools, затем щелкните Network Monitor. Появится окно Network Monitor.
3. Разверните окно Network Monitor до максимального размера.
4. Разверните окно Capture до максимального размера.
Перехват сетевых данных
1. Щелкните кнопку Start в меню Capture. Начнется перехват данных. Network Monitor зарезервирует для них буфер и начнет перехват кадров.
2. В командной строке наберите:
ping 131.107.2.211 Завершение перехвата сетевых данных
1. Переключитесь обратно в Network Monitor.
2. Щелкните кнопку Stop в меню Capture в Network Monitor.
Network Monitor прекратит перехват кадров и отобразит четыре панели: Graph, Total Stats, Session Stats и Station Stats.
Просмотр перехваченных данных
- Щелкните кнопку Display Captured Data в меню Capture.
Появится окно Network Monitor Capture Summary с итоговыми сведениями обо всех перехваченных кадрах.
А сейчас Вы попробуете поменять цвет, которым выделяются при отображении кадры протокола ARP. Это полезно при просмотре кадров конкретного протокола.
Выделение цветом перехваченных данных
1. Щелкните кнопкой мыши Colors в меню Display. Появится диалоговое окно Protocol Colors.
2. В поле Name выберите ARP_RARP.
3. В поле Colors установите значение Foreground в Red, затем щелкните ОК. Появится окно Network Monitor Capture Summary: в нем все кадры протокола ARP выделены красным цветом.
Подробный просмотр кадра ARP-запроса
1. В колонке Description дважды щелкните строку ARP: Request. Появятся три отдельных окна. Верхнее отображает общую информацию о кадрах, среднее — данные о выбранных кадрах, а нижнее — содержимое выбранных кадров в шестнадцатиричном представлении.
2. В окне Detail щелкните надпись Frame, которой предшествует знак плюс (+).
3. Раскройте список Frame, щелкнув знак (+). Появится подробная информация. Содержимое пакета, выделенное цветом, ото- бразится в шестнадцатеричном формате в нижнем окне.
Просмотрите полный размер кадра. 4 . Сверните окно свойств основного кадра.5. В окне Detail разверните ETHERNET. Появятся свойства кадра ETHERNET. Каков адрес получателя?
Соответствует ли адрес получателя какому-нибудь адресу сетевого адаптера?
Каков адрес отправителя?
Какой тип имеет этот кадр Ethernet?
6. Сверните свойства ETHERNET.
7. В окне Detail разверните ARP_RARP.
Каков адрес сетевого адаптера отправителя?
Каков адрес сетевого адаптера получателя?
Каков адрес протокола получателя?
Подробный просмотр кадра ARP-ответа
1. В поле Description дважды щелкните ARP: Reply.
2. В окне Detail разверните ETHERNET:ETYPE. Появятся свойства кадра ETHERNET:ETYPE.
Каков адрес получателя?
Соответствует ли адрес получателя какому-нибудь адресу сетевого адаптера?
Каков адрес отправителя?
Каков тип кадра Ethernet?
3. Сверните свойства ETHERNET.
4. В окне Detail разверните ARP_RARP.
Каков адрес сетевого адаптера отправителя?
Если Вы хотите сохранить перехваченные данные для дальнейшего анализа, то вы- полните операцию, описанную далее.
Запись перехваченных данных
1. Выберите пункт Save As в меню File.
2. В поле File Name наберите имя файла, затем щелкните кнопку ОК.
3. В меню File выберите пункт Close.
Появится окно Network Monitor Capture, отображающее статистическую инфор- мацию о последнем перехвате данных.
4. Выйдите из Network Monitor.
А сейчас Вы используете утилиту Агр сначала для просмотра записей в кэше протокола ARP Вашего компьютера, а затем — для его изменения.
Примечание Вам потребуются два сетевых компьютера, описанных в статье «Об этой книге». Если Вы закончили предьщущее упражнение несколько минут назад, необходимо обновить кэш протокола ARP. Для этого выполните Ping на адрес второго Вашего компьютера.
Просмотр кэша протокола ARP
1. Наберите arp -g в командной строке и нажмите ENTER для просмотра кэша про- токола ARP.
2. Запомните запись для шлюза по умолчанию (если он сконфигурирован), напри- мер:
131.107.2.1 08-00-02-6с-28-93 Ping на адрес локального узла
1. Выполните Ping на IP-адрес Вашего второго компьютера. В результате этого в кэш добавится новая запись.
2. Просмотрите новую запись в кэше протокола ARP. Какая запись была добавлена?
Какого она типа?
Примечание Адрес шлюза по умолчанию был добавлен в кэш протокола ARP при выполнении Ping на адрес удаленного узла. Это произошло потому, что Ping должен использовать шлюз по умолчанию для достижения удаленного узла.
Добавление ARP-записи
1. Наберите следующую команду для добавления в кэш записи, полученной на пер- вом этапе:
arp -s 131.107.2.1 адрес_адаптера
Примечание Убедитесь в том, что числа в адресе сетевого адаптера Вы разделили дефисами, как это показано раньше.
2. Просмотрите кэш протокола ARP и убедитесь, что запись добавлена.
Какого она типа? Почему тип этой записи отличается от предыдущих записей? Проблемы, связанные с разрешением IP-адресов
Возможны ситуации, когда протокол ARP не сумеет по заданному IP-адресу выяснить адрес сетевого адаптера. Если кэш протокола ARP содержит неправильный адрес сетевого адаптера, то попытка установить связь с удаленным узлом прекращается по истечении некоторого времени.
Резюме
Разрешение адреса — это поиск адреса сетевого адаптера, соответствующего заданному IP-адресу. Разрешение адреса состоит из ARP-запроса и ARP-ответа. Кэш протокола ARP поддерживает как статические, так и динамические записи. Статические записи остаются в кэше до перезагрузки компьютера, а динамические удаляются по истечении определенного времени.
Занятие3.Протоколы ICMP и IGMP
(Продолжительность занятия 10 минут)
В то время как протокол IP используется для маршрутизации в объединенных сетях, протокол ICMP (Internet Control Message Protocol) оповещает об ошибках и управляет сообщениями для протокола IP. Последний информирует маршрутизаторы о су-шествовании в сети узлов, принадлежащих некой группе, при помощи протокола Internet Group Management Protocol (IGMP).
- объяснить, как ICMP сообщает об ошибках протокола IP;
- дать определение IGMP и понять структуру его пакета.
Протокол ICMP
Протокол ICMP не используется для повышения надежности IP. Он лишь сообщает об ошибках и обеспечивает обратную связь в некоторых случаях. Сообщения протокола ICMP передаются в виде IP-датаграмм и поэтому ненадежны.
Если узел TCP/IP посылает датаграммы другому узлу со скоростью, перегружающей маршрутизаторы или каналы между ними, то маршрутизаторы могут ответить сообщением ICMP Source Quench, содержащим предложение снизить скорость передачи. Узел TCP/IP под управлением Windows NT выполняет это требование и уменьшает скорость отправки датаграмм. Однако, если компьютер, работающий под управлением Windows NT, используется как маршрутизатор и не успевает перенаправлять датаграммы, он отвергает все датаграммы, которые нельзя буферизовать. В таком случае он не посылает ICMP-сообщений отправителям*.
Структура ЮМР-пакета
Все пакеты протокола ICMP имеют одинаковую структуру.
Поле Описание .
Туре (Тип) 8-битное поле Туре отображает тип пакета протокола ICMP (Echo Request, Echo Reply и т.д.) Code (Код) 8-битное поле Code отображает одну из нескольких возможных функций для данного типа пакета. Если в типе только одна функция, то значение в поле Code устанавливается равным О Checksum 16-битовая контрольная сумма части пакета, (Контрольная сумма) относящейся к протоколу ICMP Type-Specific Data Дополнительные данные, различные для каждого (Специальные данные типа пакета типа)
Примечание Протокол ICMP описан в RFC 792. Копия этого документа нахо- дится на Web-странице Course Materials прилагаемого к курсу компакт-диска.
Маршрутизатор под управлением Windows NT с установленной службой Routing And Remote Access Update эту функцию выполняет. — Прим. перев.
Протокол IGMP
Информация протокола IGMP проходит через другие маршрутизаторы таким образом, что каждый поддерживающий групповую адресацию маршрутизатор знает, какая группа узлов в какой сети находится. Пакеты IGMP передаются датаграммами протокола IP и поэтому ненадежны.
Структура IGMP-пакета
Поля пакета протокола IGMP перечислены в таблице.
Поле Описание Version Версия протокола ICMP. Данное поле имеет (Версия) фиксированное значение 0x1 Туре (Тип) Тип IGMP-сообшения. Тип 0x1 называется Host Membership Query (запрос узла о принадлежности к некоторой группе) и используется групповыми маршрутизаторами для опроса нескольких членов указанной группы. Тип 0x2 — Host Membership Report (ответ узла принадлежности к некоторой группе) — используется для объявления членства в группе или для ответа на запрос Host Membership Query, поступивший от маршрутизатора
Unused He используемое поле. Обнуляется отправителем (Не используется) и игнорируется получателем Checksum 16-битная контрольная сумма на 8-байтный заголовок (Контрольная сумма) IGMP-пакета Group Address Используется узлами в сообщении Host Membership (Групповой адрес) Report для хранения группового IP-адреса. В запросе Host Membership Query групповой адрес заполняется нулями, а для идентификации группы узлов используется широковещательный адрес сетевого адаптера
Примечание Протокол IGMP описан в RFC 1112. Копия этого документа находится на Web-странице Course Materials прилагаемого к курсу компакт-диска.
Резюме
Протокол ICMP оповещает об ошибках и управляет сообщениями для протокола IP. Маршрутизаторы могут посылать узлам сообщение ICMP Source Quench с предложением снизить скорость передачи, если эти узлы отправляют датаграммы слишком быстро.
IGMP информирует маршрутизаторы о доступности специальных групп узлов в данной сети.
(Продолжительность занятия 15 минут)
Протокол IP не ориентирован на соединение и предназначен в первую очередь для отправки и маршрутизации пакетов между узлами. На этом занятии описана маршрутизация пакетов протокола IP.
Изучив материал этого занятия, Вы сможете:
- объяснить, как протокол IP фрагментирует и маршрутизирует пакеты;
- описать структуру IP-пакета.
Протокол IP не ориентирован на соединение, поскольку он не устанавливает сеанс связи, перед тем как начать обмен данными. Протокол IP ненадежный — он не гарантирует доставку, хотя делает все возможное для доставки пакета. По пути пакет может быть потерян, доставлен в неправильной последовательности, продублирован или задержан.
Протокол IP не требует подтверждения при приеме данных. Отправитель или получатель не информируется при потере пакета или доставке его в неправильной последовательности. Ответственность за подтверждение получения пакетов несут высокоуровневые транспортные протоколы, например TCP.
Поля IP-датаграммы в приведенной ниже таблице добавляются в заголовок пакета при его получении с транспортного уровня.
Поле Описание
Source I P-address Идентифицирует отправителя датаграммы при помощи (IP-адрес отправителя) IP-адреса Destination IP-address Идентифицирует получателя датаграммы при помощи (IP-адрес получателя) IP-адреса Protocol Информирует протокол IP узла-получателя о том, какому (Протокол) протоколу верхнего уровня — TCP или UDP — его следует передать Checksum Легко вычисляемое значение для проверки целостности (Контрольная сумма) пришедшего пакета Time to live, или TTL Определяет, сколько секунд находится датаграмма в сети, (Время существования) перед тем как она будет отвергнута (discarded). Предотвращает бесконечное блуждание пакетов по сети. Маршрутизаторы должны уменьшать TTL на количество секунд, проведенных датаграммой в маршрутизаторе. TTL уменьшается по меньшей мере на одну секунду каждый раз, когда датаграмма проходит через маршрутизатор. По умолчанию в Windows NT 4.0 TTL равно 128 секундам
Примечание Протокол IP описан в RFC 791. Копия этого документа нахо- дится на Web-странице Course Materials прилагаемого к курсу компакт-диска.
Если протокол IP идентифицирует адрес получателя как локальный, то он передаст пакет на этот узел напрямую. Если же IP-адрес получателя идентифицирован как удаленный, то IP начнет искать маршрут к удаленному узлу в локальной таблице маршрутизации. Если он не найдет подходящего маршрута, то отправит пакет на шлюз по умолчанию, заданный в конфигурации узла-отправителя. Шлюз по умолчанию (default gateway) также называют маршрутизатором (router).
Реализация IP на маршрутизаторе
Маршрутизатор обрабатывает полученные им IP-пакеты следующим образом.
1. Уменьшает значение TTL на 1 с или больше, если пакет надолго задерживается на маршрутизаторе. Если значение TTL достигает нуля, пакет отвергается.
2. Пакет может быть фрагментирован, если его размер слишком велик для сети даль- нейшего следования.
3. Если пакет фрагментирован, то IP создает для каждого нового пакета (фрагмента) отдельный заголовок, устанавливая:
- Flag (Флаг), указывающий, что существуют и другие фрагменты, которые бу- дут отправлены вслед;
- Fragment ID (Идентификатор фрагмента), идентифицирующий все фрагмен- ты, составляющие один пакет;
- Fragment Offset (Смещение фрагмента), обеспечивающий правильную сборку пакета на узле-получателе.
4. Вычисляет новую контрольную сумму.
5. Определяет адрес сетевого адаптера следующего маршрутизатора.
6. Направляет пакет дальше в сеть.
На следующем узле пакет попадает по стеку протоколов к TCP или UDP. Этот процесс повторяется на каждом маршрутизаторе до тех пор, пока пакет не дойдет до адресата; там протокол IP собирает из фрагментов пакет в первоначальном виде.
Структура IP-пакета
Поля заголовка IP-пакета (для IP версии 4) приведены в таблице.
Поле Описание Version (Версия) 4 бита используются для отображения версии протокола IP. Текущая версия — четвертая. Следующей будет шестая, она обсуждается в главе 4 Header Length 4 бита используются для отображения количества 32-битных (Длина заголовка) слов в заголовке IP-пакета. Минимальный размер заголовка — 20 байт, следовательно, длина минимального заголовка — 0x5. Опции IP могут увеличить минимальный размер заголовка на 4 байта. Если опция не использует их все, то оставшиеся биты заполняются нулями, поэтому длина заголовка всегда кратна 4 байтам
Type of Service 8 бит используются для обозначения требуемого для этой (Тип обслуживания) датаграммы качества обслуживания при доставке через маршрутизаторы объединенной IP-сети. В них есть биты, выделенные для приоритета, задержки, пропускной способности и характеристик надежности Total Length 16 бит используются для отображения общей длины датаграммы протокола (Общая длина) IP (заголовок IP-пакета + (продолжение) его содержание). Сюда не включен заголовок сетевого кадра Identification 16 бит используются в качестве идентификатора данного (Идентификация) IP-пакета. Если IP-пакет фрагментирован, то все фрагменты имеют одинаковые идентификаторы, используемые при сборке узлом-получателем
Fragmentation Flags 3 бита зарезервированы для флагов фрагментации; (Фрагментационные флаги)однако только 2 бита определены для текущего использования. Один флаг служит для обозначения фрагментированного пакета, другой — для идентификации последнего фрагмента Fragment Offset 13 бит используются как счетчик смещения для указания (Смещение фрагмента) положения фрагментов относительно начала поля данных IP-пакета. Если фрагментации нет, то смещение равно 0x0 Time to Live 8 бит используются в качестве индикатора времени (Время существования) (транзитов IP-пакета), максимально допустимого перед тем, как пакет будет отвергнут. Поле TTL используется как счетчик времени (в секундах), проведенного пакетом на маршрутизаторе, который соответственно уменьшает TTL. Современные маршрутизаторы почти всегда перенаправляют датаграммы менее чем за 1 с, однако, по требованиям RFC 791, они должны уменьшать TTL не менее чем на единицу. Поэтому TTL становится счетчиком максимального числа транзитов
Protocol 8 бит используются в качестве идентификатора протокола, (Протокол) данные которого инкапсулированы в IP-пакет. Поле протокола применяется для передачи IP-пакета протоколу верхнего уровня Header checksum 16 бит используются в качестве контрольной суммы (Контрольная суммазаголовка IP-пакета. Данные пакета не учитываются и заголовка) могут иметь свою собственную контрольную сумму для проверки ошибок. Когда узел получает IP-пакет, он проводит проверку контрольной суммы и при несовпадении значений отвергает пакет. Когда маршрутизатор пересылает IP-пакет, он, как минимум, уменьшает TTL. Поэтому контрольная сумма вычисляется снова при каждом транзите на пути от отправителя к получателю Source Address 32 бита используются для хранения IP-адреса (Адрес отправителя) узла-отправителя Destination Address 32бита используются для хранения IP-адреса (Адрес получателя) узла-получателя Options and Padding Для хранения опций используется кратное 32 число бит. (Опции и заполнение) Если же опции не занимают этот бит целиком, остаток заполняется нулями. Таким образом, длина IP-заголовка всегда может быть выражена количеством четверок байт и записана в поле Header Length
Резюме
Протокол IP не ориентирован на соединение, он отправляет и маршрутизирует пакеты между узлами. IP — ненадежный протокол, поскольку не гарантирует доставку. Если пакет отправлен по адресу в локальной сети, то он посылается непосредственно на узел. Если IP-адрес получателя является удаленным, то IP ищет маршрут в локальной таблице маршрутизации.
(Продолжительность занятия 25 минут) Протокол TCP предоставляет надежную, ориентированную на соединение службу доставки. На этом занятии описано, как протокол TCP передает данные, а также даны определения порта и сокета.
Изучив материал этого занятия, Вы сможете:
- описать, как протокол TCP передает данные;
- дать определение порта и сокета.
Данные протокола TCP передаются сегментами, и соединение должно быть установлено до того, как узлы начнут обмениваться данными. TCP использует потоки, в которых данные представлены в виде последовательности байт.
TCP обеспечивает надежность, присваивая номера последовательности (sequence number) каждому передаваемому сегменту. Если сегмент разбивается на мелкие пакеты, то узел-получатель сможет узнать, все ли части получены. Для этого используются подтверждения. Для каждого отправленного сегмента узел-получатель должен вернуть отправителю подтверждение (acknowledgement, АСК) в течение определенного времени.
Если отправитель не получил АСК, то данные передаются повторно. Если сегмент поврежден, то узел-получатель отвергает его. Поскольку АСК в этом случае не посылается, отправитель передает сегмент еще раз.
Примечание TCP описан в RFC 793. Копия этого документа находится на Web-странице Course Materials прилагаемого к курсу компакт-диска.
Порты
Приложения, использующие сокеты, идентифицируют себя на компьютере посредством номера порта протокола (protocol port number). Например, FTP-сервер использует определенный TCP-порт, поэтому другие приложения могут связаться с ним.
Порты могут иметь любой номер от 0 до 65 536. Номера портов для приложений клиентов динамически назначаются операционной системой при обработке запроса на обслуживание. Известные (well-known) номера портов для приложений-серверов назначаются группой Internet Assigned Numbers Authority (IANА) и не меняются.
Совет Вы можете узнать номера портов, просмотрев файл systemrootSys-tem32DriversEtcServices.
Номера известных портов расположены в интервале от 1 до 1 024. Окончательный список известных номеров портов задокументирован в RFC 1700. Копия этого документа находится на Web-странице Course Materials прилагаемого к курсу компакт-диска.
Сокеты
Сокет (socket) во многом аналогичен дескриптору файла (file handle). Он обеспечивает конечную точку сетевого соединения. Приложение, создавая сокет, указывает три параметра: IP-адрес узла, тип обслуживания (протокол TCP для ориентированного на соединение обслуживания и UDP для не ориентированного) и порт, используемый приложением.
Приложение может создать сокет и использовать его для отправки не ориентированного на соединение трафика удаленным приложениям или же подключить его к сокету другого приложения. Во втором случае данные будут посланы по надежному соединению.
Порты протокола TCP
Порт протокола TCP указывает место доставки сообщений. Номера портов, меньшие 256, определены как широко используемые. В таблице перечислены некоторые из таких портов.
Номер порта Описание 21 FTP 23 Telnet 53 Доменная система имен (DNS) 139 Сервис NetBIOS
Установка связи по протоколу TCP
Инициализация TCP-соединения происходит в три этапа. Делается это для синхро- низации отправки и получения сегментов, извещения другого узла о количестве дан- ных, которые можно послать за один раз, и установки виртуального соединения. Ниже перечислены операции, из которых состоит этот процесс.
1. Узел-отправитель запрашивает соединение, посылая сегмент с установлен- ным флагом синхронизации (SYN).
2. Узел-адресат подтверждает получение запроса, отправляя обратно сегмент с:
- установленным флагом синхронизации;
- порядковым номером начального байта сегмента, который он может послать, или номером последовательности (sequence number);
- подтверждением, включающим порядковый номер следующего сегмента, ко- торый он ожидает получить.
3. Запрашивающий узел посылает обратно сегмент с подтверждением номера по- следовательности и номером своего подтверждения (acknowledgement number).
Для завершения соединения TCP действует аналогично. Это гарантирует, что оба узла закончат передачу и примут все данные.
Скользящие окна протокола TCP
Протокол TCP буферизует данные для передачи между двумя узлами, используя скользящие окна (sliding windows). Каждый TCP/IP-узел поддерживает два скользящих окна: одно для приема данных, а другое для отправки. Размер окна определяет объем данных, которые могут быть буферизованы на компьютере.
Видеоролик: скользящие окна протокола TCP
В этой 7-минутной презентации показано, как работают скользящие окна про- токола TCP и как размер скользящего окна влияет на производительность.
Запуск видеоролика
1. Вставьте прилагаемый к курсу компакт-диск в CD-ROM-дисковод, запустится Microsoft Internet Explorer и откроется страница The Internetworking with Microsoft TCP/IP on Microsoft Windows NT 4.0, или запустите Windows NT Explorer, выберите прилагаемый к курсу компакт-диск, за- тем дважды щелкните кнопкой мыши файл Open.htm.
2. Щелкните пиктограмму начальной страницы.
3. Щелкните Course Materials.
4. Щелкните Multimedia Presentation.
5. Щелкните TCP Sliding Windows.
Появится диалоговое окно Internet Explorer с вопросом, хотите Вы открыть файл или записать его на диск.
6. Выберите Open, затем щелкните кнопкой мыши ОК.
7. Щелкните Yes, если появится окно системы безопасности.
Начнется показ видеоролика. Если на Вашем компьютере нет звуковой платы или динамиков, щелкните кнопку Text On.
Структура TCP-пакета
Все пакеты протокола TCP имеют две части — на данные и заголовок. В таблице приведены поля заголовка TCP-пакета.
Поле Описание Source Port TCP порт узла-отправителя (Порт отправителя) Destination Port TCP порт узла-получателя. Определяет конечную точку (Порт получателя) соединения Sequence Number Номер последовательности пакета. Используется для (Порядковый номер) проверки получения всех байт соединения Acknowledgment Number Порядковый номер байта, который локальный узел (Номер подтверждения) планирует получить следующим Data Length Длина TCP-пакета (Длина данных) Reserved Зарезервировано для будущего использования (Зарезервировано) Flags Это поле описывает содержимое сегмента (Флаги) Window (Окно) Показывает, сколько места доступно в настоящий момент в окне протокола TCP Checksum Проверяет, поврежден ли заголовок (Контрольная сумма) Urgent Pointer Когда отправляются срочные данные (указано в поле Rags), в этом поле (Указатель срочности) задается конечная граница области срочных данных в пакете
Резюме
Протокол TCP предоставляет надежную, ориентированную на соединение службу доставки. Приложения, применяющие сокеты, используют уникальные номера портов. Сокет — это конечная точка сетевого соединения. Номера портов и сокетов выбираются из соответствующего диапазона.
Сеанс протокола TCP начинается и заканчивается одной и той же трехэтапной последовательностью действий. Протокол TCP использует скользящие окна для буферизации данных, передаваемых между двумя узлами. Размер окна показывает количество данных, которые могут быть буферизованы на компьютере.
Протокол User Datagram Protocol (UDP) обеспечивает не ориентированную на соединение службу доставки датаграмм по принципу «максимального усилия». Это означает, что получение всей датаграммы или правильной последовательности отправленных пакетов не гарантируется.
- определить протокол UDPn описать структуру UDP-пакета.
Протокол UDP используется приложениями, не требующими подтверждения. Обычно такие приложения передают данные небольшого объема за один раз. Примеры служб и приложений, использующих UDP: сервис имен NetBIOS, сервис датаграмм NetBIOS и сервис SNMP.
Порты протокола UDP
Для использования протокола UDP приложение должно знать IP-адрес и номер порта получателя. Порт — место назначения при доставке сообщений — идентифицируется уникальным номером. Порт действует как мультиплексная очередь сообщений, то есть он может получать несколько сообщений одновременно. Важно отметить, что порты протокола UDP, перечисленные в таблице, отличаются от портов TCP несмотря на использование тех же значений номеров. Номер порта Ключевое слово Описание 15 NETSTAT Состояние сети 53 DOMAIN Сервер имен домена 69 TFTP Протокол TFTP 137 NETBIOS-NS Сервис имен NetBIOS 138 NETBIOS-DGM Сервис датаграмм NetBIOS 161 SNMP Сетевой монитор SNMP
Примечание Протокол UDP описан в RFC 768. Копия этого документа нахо- дится на Web-странице Course Materials прилагаемого к курсу компакт-диска.
Структура пакета протокола UDP
Поля 8-байтного заголовка UDP-пакета перечислены в таблице. Поле Описание Source Port UDP-порт узла-отправителя. Его задавать не обязательно. (Порт отправителя) Если не используется, то устанавливается равным нулю Destination Port UDP порт узла-получателя. Указывает конечную точку (Порт получателя) соединения Message Length Размер сообщения. Минимальный UDP-пакет содержит (Длина сообщения) только информацию заголовка (8 байт) Checksum Проверяет заголовок на предмет повреждения (Контрольная сумма)
Резюме
Протокол U DP обеспечивает не ориентированную на соединение службу доставки датаграмм, которая не гарантирует успешную доставку пакетов. Протокол UDP используется приложениями, не требующими подтверждения получаемых данных.
Эти вопросы помогут Вам лучше усвоить основные темы данной главы. Если Вы не сумеете ответить на вопрос, повторите материал соответствующего занятия.
1. Какие уровни используются в четырехуровневой модели TCP/IP?
2. Какие основные протоколы обеспечиваются в транспортном драйвере протокола Microsoft TCP/IP?
3. Какой протокол используется для информирования клиента о недоступности сети- получателя?
4. Как изменяется датаграмма протокола IP при прохождении через маршрутизатор?
5. Когда используется протокол UDP?
6. На какой адрес отправляются ARP-запросы?
7. Какой адрес выясняется при помощи ARP-запроса при отправке пакета на ло- кальный узел? На удаленный узел?