
заголовке канального уровня поле, показывающее, что внутри кадра лежит IP
пакет, будет принимать одно и то же значение для всех версий протокола IP
(например, поле Type в Ethernet 08 00), а конкретная версия IP будет выясняться
из первого поля самого IP заголовка. Т.е. некий единый блок обработки IP пакетов
будет получать IP пакеты всех версий от протокола канального уровня и на
основании первого поля решать, как анализировать данный пакет. Однако на
практике оказалось, что когда протокол IP версии 6 стали применять, за ним было
закреплено новое значение поля Type (86 DD) и аналогичных полей в прочих
канальных протоколах. Так что, по сути, функциональность поля Version
фактически отсутствует сегодня. Но при этом, если на узел или маршрутизатор,
поддерживающий только IPv4, поступит пакет с полем Version отличным от 4,
такой пакет просто будет отброшен.
Следующее поле – IHL (Internet Header Length) – длина заголовка IP пакета,
длина этого поля тоже 4 бита.
Version
IHL
0 1 0 0
Так как заголовок IP пакета имеет переменную длину, приемной стороне
необходимо правильно отделить заголовок IP пакета от данных, которые за ним
следуют. Это необходимо с одной стороны для правильной интерпретации самого
заголовка, с другой стороны для правильного извлечения данных из пакета. Нам
известно несколько способов указания окончания поля переменного размера:
полем длина и управляющими символами. Самый простой и часто употребляемый
способ указания окончания поля переменной длины – заранее указать в
специальном поле длину поля переменной длины. Именно так и поступают в
заголовке IP – поле IHL показывает длину всего заголовка пакета, притом, что
этот заголовок, как уже было сказано, состоит из стационарной части, длиной 20
байт и переменной длины опций. Какое самое большее значение принимает
четырехбитовое поле? Очевидно, максимальное значение равно 15, т.к.
максимальное значение 4-х бит это 1111 = 15. А мы сказали, что минимальная
длина заголовка пакета без опций равна 20 байт, следовательно поле IHL не
может выражать длину заголовка пакета в байтах – для этого данное поле
слишком короткое. Поле IHL описывает длину IP заголовка в четырехбайтовых
словах. Отсюда можно сделать следующие выводы:
Минимальное значение поля IHL = 5, так как именно 5 четырехбайтовых
слов и составляют 20 байт заголовка без опций.
В случае применения опций в IP пакета их количество должно быть таковым,
чтобы длина всех опций была кратна четырем байтам, так как указание
окончания заголовка пакета делается с точность 4 байта.
Максимальная длина IP пакета не может превысить 60 байт, так как самое
большое значение, которое может принять поле IHL = 15, что означает, что
длина заголовка пакета равна пятнадцати четырехбайтовым словам, т.е. 60
байт.
Максимальная длина опций в IP пакета ограничена 40 байтами, так как из
всего как максимум 60 байт IP заголовка, 20 байт занимает стационарная
часть заголовка.
Рассмотренные выше ограничения и зависимости не стоит заучивать
наизусть.
Главное
понять
идею
рассуждения
и
суть
рассмотренных