Вопрос 12: Стек протоколов TCP/IP. Структура IP-пакета
Стек TCP/IP и его соотношение с моделью OSI
Протоколы ARP и RARP
n Для определения локального адреса по IP-адресу используется протокол разрешения адреса (Address Resolution Protocol, ARP). Протокол ARP работает различным образом в зависимости от того, какой протокол канального уровня работает в данной сети — протокол локальной сети (Ethernet, Token Ring, FDDI, Frame Relay). Существует также протокол, решающий обратную задачу — нахождение IP-адреса по известному локальному адресу. Он называется реверсивным ARP (Reverse Address Resolution Protocol, RARP) и используется при старте бездисковых станций, не знающих в начальный момент своего IP-адреса, но знающих адрес своего сетевого адаптера.
n Протокол, решающий обратную задачу — нахождение IP-адреса по известному локальному адресу, называется реверсивным ARP (Reverse Address Resolution Protocol, RARP).
Протокол UDP (User Datagram Protocol, RFC-768)
n является одним из основных протоколов, расположенных непосредственно над IP. Протокол UDP обеспечивает доставку дейтограмм, но не требует подтверждения их получения. Протокол UDP не требует соединения с удаленным модулем UDP. К заголовку IP-пакета udp добавляет поля порт отправителя и порт получателя, которые обеспечивают мультиплексирование информации между различными прикладными процессами, а также поля длина udp-дейтограммы и контрольная сумма, позволяющие поддерживать целостность данных. Таким образом, если на уровне ip для определения места доставки пакета используется адрес, на уровне UDP - номер порта.
n Так как максимальная длина IP-дейтограммы равна 65535 байтам, максимальная протяженность информационного поля UDP-дейтограммы составляет 65507 байт.
Протокол TCP (Transmission Control Protocol)
n в отличии от UDP осуществляет доставку дейтограмм, называемых сегментами, в виде байтовых потоков с установлением соединения. Протокол TCP применяется в тех случаях, когда требуется гарантированная доставка сообщений. Он использует контрольные суммы пакетов для проверки их целостности и освобождает прикладные процессы от необходимости таймаутов и повторных передач для обеспечения надежности. Для отслеживания подтверждения доставки в TCP реализуется алгоритм "скользящего" окна.
Процедура установления связи
осуществляется в три этапа:
n Клиент посылает SYN-сегмент с указанием номера порта сервера, который предлагается использовать для организации канала связи (active open).
n Сервер откликается, посылая свой SYN-сегмент, содержащий идентификатор (ISN - Initial Sequence Number). Начальное значение ISN не равно нулю. Процедура называется passive open.
n Клиент отправляет подтверждение получения SYN-сегмента от сервера с идентификатором равным ISN (сервера)+1.
n под словом “стандартная” подразумевается отсутствие каких-либо отклонений от штатного режима, например, одновременного открывание соединения со стороны сервера и клиента. Если же соединение одновременно инициируется клиентом и сервером, в конечном итоге будет создан только один виртуальный канал.
n Каждое соединение должно иметь уникальный код ISN. Для реализации режима соединения прикладная программа на одном конце канала устанавливается в режим пассивного доступа ("passive open"), а операционная система на другом конце ставится в режим активного доступа ("active open").
n Протокол TCP предполагает реализацию 11 состояний (established, closed, listen, syn_sent, syn_received и т.д.; см. также RFC-793), переход между которыми строго регламентирован.
Скользящее окно
n В протоколе TCP "скользящее окно" используется для регулировки трафика и препятствия переполнения буферов.
Протокол ICMP
n Протокол передачи команд и сообщений об ошибках (ICMP - internet control message protocol, RFC-792, 1256) выполняет многие и не только диагностические функции:
n передачу отклика на пакет или эхо на отклик;
n контроль времени жизни дейтограмм в системе;
n реализует переадресацию пакета;
n выдает сообщения о недостижимости адресата или о некорректности параметров;
n формирует и пересылает временные метки;
n выдает запросы и отклики для адресных масок и другой информации.
Протокол IGMP и передача мультимедиа по Интернет
n Протокол IGMP (internet group management protocol, RFC-1112) используется для видеоконференций, передачи звуковых сообщений, а также группового исполнения команд различными ЭВМ. Этот протокол использует групповую адресацию (мультикастинг).
n Групповая форма адресации нужна тогда, когда какое-то сообщение или последовательность сообщений необходимо послать нескольким (но не всем) адресатам одновременно.
n Адрес 224.0.0.1 предназначен для обращения ко всем группам (все узлы и серверы, вовлеченные в данный момент в мультикастинг-обмен, например, участвующие в видеоконференции).