Материал: Протоколы сети доступа - Гольдштейн

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

276 Глава 10______________________________________

Порт источника (16 битов)

 

Порт назначения (16 битов)

 

 

 

Длина сообщения UDP (16 битов)

 

Контрольная сумма UPD (16 битов)

 

 

 

 

Данные

 

 

 

Рис. 10.3 Заголовок UDP

Существуют номера порта-отправителя (source port) и порта назначения (destination port), поля длины (length) и контрольной суммы (checksum). Поле порта-отправителя может, если нужно, содержать номер порта, из которого был отправлен пакет (например, если отправитель ожидает ответа). Если это поле не используется, оно заполняется нулями. Поле длины содержит сведения о длине дейтаграммы (в байтах), включая заголовок и данные. Минимальная длина равна 8. Поле контрольной суммы UDP-пакета содержит побитное дополнение 16-битовой суммы 16-битовых слов (аналогично TCP).

Больше ничего не требуется. Очевидно, именно это позволяет принимающим главным компьютерам обрабатывать блоки данных гораздо быстрее, так как все, что требуется — это передать принятые блоки данных соответствующему приложению, идентифицируемому номером порта.

Могут возникать ситуации, когда при передаче дейтаграммы возникают ошибки, о которых необходимо сообщить отправителю или другому хост-компьютеру. Для передачи этих сообщений или информации служебного характера предназначен протокол передачи управляющих сообщений ICMP (Internet Control Message Protocol). Как и протоколы TCP и UDP, протокол ICMP использует IP в качестве протокола нижнего уровня, однако по своей структуре и назначению ICMP является частью IP, рассматриваемого в следующем параграфе.

На рис. 10.4 показана структура заголовка ICMP-пакета. Данному заголовку ICMP предшествует обычный IP-заголовок без поля опций

(Options) и выравнивания (Padding), а поля TOS=0, Protocol=l.

Различные типы сообщений ICMP определяются полем «типа», которое показывает, почему генерировалось сообщение ICMP, например, «destination unreachable» (пункт назначения недосягаем). Для протокола определено 13 типов сообщений. Поле «код заголовка» также носит служебный характер и обеспечивает дополнительную информацию об ошибке, расширяя иерархию

Протоколы Интернет

277

сообщений данного типа. ICMP по нескольку раз в день пользуются администраторы сетей и разработчики сетевого программного обеспечения, поскольку на его основе работают такие популярные утилиты,

как пакетный межсетевой щуп PING (packet internetwork grouper) и TRACEROUTE, позволяющая просматривать путь маршрутизации пакета от пользователя до удаленного хост-компьютера.

Тип (8 битов)

Код (8 битов)

Контрольная сумма UPD (16 битов)

 

 

 

Данные

Рис. 10.4. Заголовок ICMP

Обычно шлюзы генерируют сообщение ICMP с исходящим хосткомпьютером в качестве получателя. Это означает, что программное обеспечение ICMP, находящееся в шлюзах, является более сложным, чем находящееся в хост-компьютерах.

Следует подчеркнуть, что ICMP не обеспечивает обнаружение ошибок для IP, а является просто средством, используемым IP для передачи сообщений об ошибках хост-компьютерам.

10.4. МЕЖСЕТЕВОЙ ПРОТОКОЛ IP

Как уже подчеркивалось ранее в данной главе, протокол IP вовсе не обязателен для TCP. Протокол TCP может использовать для доставки данных почти любой протокол сетевого уровня, если тот способен обеспечить услуги маршрутизации и поддерживает интерфейс между двумя уровнями. Тем не менее, информация маршрутизации для данных от TCP, которые должны транспортироваться через сети, в подавляющем большинстве приложений обеспечивается протоколом IP. И это притом, что сам протокол не исправляет ошибки, а только сообщает об ошибках в исходящие хост-компьютеры с помощью рассмотренного в предыдущем параграфе протокола ICMP, размещаемого на том же уровне 3 в хосткомпьютере.

Структура IP-заголовка и его поля представлены на рис. 10.5. Поле «версия» (version, 4 бита) в заголовке IP предназначено для идентификации версии IP, использованной для создания заголовка. Если заголовок IP был создан в сети, использующей более новую версию IP, он может содержать информацию, которая не распознается более старой версией IP. В этом случае принимающая сеть, работающая со старой версией IP, уведомляется о необходимости

278 Глава 10 ___________________________________

пропустить нераспознаваемые поля. В данной главе рассматриваются версии 4 и 6.

Рис. 10.5. Заголовок IP

Поле «длина заголовка» (IHL — Internet Header Length, 4 бита)

содержит длину заголовка IP-пакета в 32-разрядных словах. Значение этого поля не может быть меньше 5.

В поле «тип обслуживания» (TOS — Type of Service, 8 битов) указывается требуемое качество обслуживания данных. В других протоколах это поле часто называют качеством обслуживания (QoS). Данное поле включает четыре параметра, содержащих информацию о приоритете дейтаграммы, о возможности поступления последовательности таких дейтаграмм с регулярными интервалами, о критичности ошибок, о важности скорости доставки дейтаграммы и, наконец, об относительной важности скорости по сравнению с надежностью на случай конфликта между двумя этими критериями. Введены следующие обозначения: РРР — приоритет, D — атрибуты задержки, Т — атрибуты пропускной способности, R — атрибуты надежности. Трехбитовый код РРР указывает уровень приоритета блока данных, применяемый для управления перегрузкой (блоки данных с меньшим приоритетом могут быть отброшены, в то время как блокам данных с более высоким приоритетом разрешается прохождение) и для управления потоком. Поле задержки D указывает, какова допустимая задержка при передаче пакета. Данное поле может принимать два значения: нормальная задержка и малая задержка. Значение 1 соответствует малой задержке. Поле пропускной способности Т указывает, какова должна быть пропускная способность средств доставки данного блока данных. Например, если блок данных сгенерирован приложением реального времени (интерактивный режим), приложение

Протоколы Интернет

279

может запросить ускоренную доставку блоков данных, что требует высокой пропускной способности средств доставки. Допустимые значения — нормальная или высокая пропускная способность. Поле надежности R используется аналогичным образом, указывая, требует ли этот блок данных высокой или обычной надежности обслуживания.

Поле «общая длина» (Total length, 16 битов), аналогичное полю длины TCP-заголовка, содержит измеряемую в байтах суммарную длину дейтаграммы, включая длину IP-заголовка и данных. Этот параметр позволяет узлам определять длину поля данных путем вычитания из его значения длины заголовка. Максимально допустимая длина всей дейтаграммы целиком, считая байты, входящие в заголовок дейтаграммы, и данные, составляет 65535 байтов, т. е. длина дейтаграммы может достигать 216— 1 байтов. Однако длинные дейтаграммы не используются при работе IP-протокола. Все хост-ком- пьютеры и шлюзы сети, как правило, работают с длинами до 576 байтов. Число 576 выбрано из тех соображений, что этой длины пакета вполне достаточно для того, чтобы передать заголовок (64 байта) и блок данных (длиной 512 байтов).

Поле «идентификатор» (Identification, 16 битов) представляет собой уникальный номер, характеризующий конкретную дейтаграмму, и используется для связи фрагментов блока данных. Значение этого поля устанавливается отправителем и служит идентификатором дейтаграммы, например, в случае ее фрагментации.

Наличие поля флагов (flags) и поля смещения (fragmentation) связано с тем, что, учитывая ограничения на длину кадра в конкретной реализации сети, протокол IP разбивает большой исходный блок данных на фрагменты и упаковывает их в пакеты. Для определения принадлежности пакетов — фрагментов одному блоку данных и обеспечения его правильной сборки, в поле флагов устанавливается специальный признак, а величины смещения помещаются в поле смещения. Поле флага содержит 3 бита: первый бит этого поля всегда имеет значение ноль, второй бит определяет, разрешена или нет фрагментация для блока данных. Величина поля смещения задает смещение в 64-битовых блоках. Первый фрагмент имеет нулевое смещение.

Поле «период жизни» (TTL - Time to live) содержит сведения о том, в течение какого времени дейтаграмме разрешено находиться в сети, и фактически представляет собой счетчик транзитов. Указанное в поле значение уменьшается на 1 на каждом этапе обработки

280 Глава 10___________________

дейтаграммы в процессе ее следования по сети, а при достижении нуля дейтаграмма уничтожается в целях экономии ресурсов сети. Таким же образом предотвращаются зацикленные маршруты в сети, когда группа маршрутизаторов может «гонять» блок данных по кругу из-за какой-то неисправности сети. Когда маршрутизатор обнаруживает, что значение параметра «период жизни» достигло нуля, он немедленно удаляет блок данных и передает сообщение источнику об ошибке с помощью рассмотренного выше протокола ICMP.

Поле «протокол» (protocol, 8 битов) содержит указание, какой протокол следует за IP. Каждый протокол, относящийся к TCP/IP, идентифицируется фиксированным номером. В таблице 10.1 содержатся номера, назначенные стандартами для наиболее распространенных протоколов. Если имеется TCP-заголовок, то в этом поле будет стоять его номер.

 

Таблица 10.1. Значения поля протокола

 

 

 

Протокол

 

 

 

1

Протокол сообщений управления Интернет (ICMP)

 

 

 

2

Протокол управления группами Интернет (IGMP)

 

 

 

3

Межшлюзовой протокол (GGP)

 

6

Протокол управления передачей (TCP)

 

8

Протокол внешнего шлюза (EGP)

 

 

 

9

Протокол внутреннего шлюза (IGP)

 

 

 

17

Протокол дейтаграммы пользователя (UDP)

 

 

 

Поле контрольной суммы (Header checksum, 16 битов) служит для проверки правильности информации заголовка дейтаграммы. Контрольная сумма заголовка проверяет только данные заголовка, которые включают в себя адреса IP источника и пункта назначения. При проверке заголовка IP контрольная сумма анализирует правильность номера версии IP и подтверждает отличие поля «времени жизни» от нуля. Она также позволяет проверить отсутствие искажения заголовка IP и допустимость длины сообщения.

Поле опций содержит информацию о различных задачах, например, спецификации маршрутизации, и обычно используется сетевым управлением или для целей отладки. Данные, которые обеспечивают опции IP, варьируются и зависят от конкретного приложения, использующего их. Когда требуется услуга «записать маршрут», поле опции указывает и это.