Технические основы IP-сетей. Структура сетевого протокола TCP/IP. Уровень канала данных. Прикладной уровень, страница 8

Протокол: Поле протокола занимает 8 бит и показывает, какой протокол используется на уровне передачи данных. На основе поля протокола уровень IP хоста-адресата определяет, какому протоколу верхнего уровня принадлежит данный пакет. Самые распространенные протоколы и соответствующие им значения поля (указаны в скобках за названием протокола) включают UDP (17), TCP (6), ICMP (1), GGP (3), EGP (8), IGP (9), OSPF (89) и TP4 (29) модели ISO.

Контрольная сумма заголовка: Данное поле осуществляет проверку только заголовка дейтаграммы, не включая поле данных. Поле данных не включается в расчет, так как каждый раз, когда дейтаграмма проходит через узел, процессор данного узла повторно рассчитывает контрольную сумму заголовка (поскольку некоторые поля - время жизни, флаг, смещение фрагмента и др. могут изменяться). Поэтому проверка контрольной суммы не затрагивает поле данных, и тем самым снижается нагрузка на сеть. 

Адрес: Оба поля – IP-адрес получателя и IP-адрес отправителя занимают по  4 байта каждый.

Рис. 3-8 Формат октета кода опций

2. Поле переменной длины IP-заголовка

Поле переменной длины IP-заголовка является необязательным. Данное поле может обладать достаточно объемным содержимым, поддерживая отладку,  измерения и безопасность. Длина поля колеблется в пределах от 1 до 40 байт в зависимости от выбранных опций. Некоторые типы опций требуют всего 1 байт – в таком случае код опций состоит из 1 байта. Формат кода опций показан на рис. 3-8. Для задания некоторых других опций требуется несколько байт. Первый байт всегда имеет формат, изображенный на рис. 3-8. Опции следуют одна за другой без разделителей и дополняются полем из нулей (0) до размера, кратного 4 байтам.

Как показано на рисунке, код опций включает три поля.

Первое поле является флагом копирования и занимает 1 бит. Используется для контроля выбора маршрутизатора при фрагментации дейтаграммы в сети. Если флаг копирования содержит единицу, поле опций должно быть скопировано в каждый фрагмент дейтаграммы. При наличии 0 поле опций копируется только в первый фрагмент дейтаграммы.

Второе поле является полем класса опции и занимает 2 бита. В настоящий момент существуют только два класса (см. рис. 3-9).

Рис. 3-9 Классы опций и их значения

Третье поле – номер опции – занимает 5 бит, указывает номер опции внутри каждого класса. 

Номера опций, относящихся к классу 0:

Номер опции 0: означает, что данная опция является последней в списке опций.

Номер опции 1: Нет операции. Используется для выравнивания очередной опции по 32-битной границе, имеет те же функции, что и поле заполнения. 

Две опции, описанные выше, используют всего по 1 байту. Ниже перечислены номера опций, использующих по несколько байт:

Номер опции 2: Безопасность. Используется для передачи конфиденциальных файлов системы безопасности США. Если маршрутизатор определяет данную опцию, он следит за тем, чтобы дейтаграмма не покидала заданной ограниченной области. Опция не имеет широкого применения. 

Номер опции 7: Используется для записи маршрута. Ее длина может изменяться. Формат опции записи маршрута изображен на рис. 3-10.

Рис. 3-10Формат опции записи маршрута

Данная опция осуществляет мониторинг и контроль передачи дейтаграммы по сети Internet маршрутизатором. Станция-отправитель посылает пустую таблицу всем маршрутизаторам, обрабатывающим данную дейтаграмму, которые заносят в нее свои IP-адреса – таким образом, станция-отправитель получает информацию о маршрутизации.   

Первые три байта данной опции следующие:

n  Код типа опции---- включает три поля, содержащие соответственно 0, 0 и 7.

n  Длина опции ---- указывает длину данной опции, включая первые три байта.

n  Указатель----определяет смещение до начала поля IP-адреса.