logo search
Часть 4

4.6.1.Формат пакета ip

0 4 8 16 20 31

Version

IHL

Type of Service

Total Length

Identification

Flags

Fragment Offset

Time to Live

Protocol

Header Checksum

Source Address

Destination Address

Options Padding

Рис. 4.2. Заголовок IP-дейтаграммы

Version (4 бита). Поле версии. Значение поля устанавливает формат заголов­ка Internet-пакета. Рассматривается версия 4.

IHL (4 бита). Поле длины заголовка IP-пакета (Internet Header Length) в 32-битных словах. Значение этого поля не может быть меньше 5.

Type of Service (TOS) (8 бит). Поле типа сервиса. Это поле используется для идентификации используемого дейтаграммой сервиса, т. е. принадлежность ее к тому или иному из предусмотренных видов IP-дейтаграмм, что, соот­ветственно, определяет вид ее обработки. Так, некоторые сети предоставля­ют сервис работы с пакетами различной важности, обрабатывая и пропуская сначала дейтаграммы с выставленным флагом приоритетности. Сетевые мо­дули таких сетей используют такие параметры поля TOS, как категория срочности или важности пакета, возможная задержка передачи, уровень обеспечения достоверной доставки и др. Поле используется, по преимуще­ству, маршрутизаторами IP-пакетов для выбора параметров передачи пакета по дан­ной сети до сети следующего узла или маршрутизации.

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

Число 576 выбрано из тех соображений, что этой длины пакета вполне доста­точно для того, чтобы передать заголовок (64 байта) и блок данных (512 байт). Identification (16 бит). Поле идентификатора дейтаграммы. Значение этого поля устанавливается отправителем. Оно служит идентификатором дейта­граммы, например, в случае ее фрагментации на части. Выбор идентифика­тора дейтаграммы основан на необходимости обеспечения уникальности фрагментов данной дейтаграммы. Модули обслуживания протокола группи­руют фрагменты с одинаковым адресом источника, адресом назначения, типом протокола и идентификатором.

Flags (3 бита). Поле управляющих флагов.

Бит 0 — зарезервировано (должен быть 0).

Бит 1 (DF)=0 — можно фрагментировать, Бит 1 (DF)=1 — не фрагментировать.

Бит 1 (MF)=0 — последний фрагмент, Бит 1 (MF)=1 — есть сле­дующий фрагмент.

Fragment Offset (13 бит). Поле смещения фрагмента. Это поле указывает, где в исходной дейтаграмме расположен данный фрагмент. Величина этого поля задает смешение в 64-битных блоках. Первый фрагмент имеет нулевое сме­щение.

Time To Live (TTL) (8 бит). Поле "времени жизни" пакета. Величина этого поля определяет верхнее значение периода времени, в течение которого данная дейтаграмма может находиться в сети, т. е. путешествовать от маршрутизатора к марщрутизатору, от сегмента к сегменту. Этот параметр устанавливается отправите­лем дейтаграммы и уменьшается в каждой точке маршрутизации или обра­ботки дейтаграммы. Если в этом поле оказывается нулевое значение до того, как дейтаграмма достигла своего адресата, она уничтожается — маршрутизатор не пропускает такую дейтаграмму дальше. Этот параметр служит своего рода "саморегулятором" сетевого трафика.

Указанное время измеряется в секундах. Максимальное значение этого поля может достигать 255 секунд, а при прохождении через каждый маршрутизатор вели­чина этого поля должна уменьшаться хотя бы на 1, даже если процедура об­работки заняла значительно меньше времени.

Protocol (8 бит). Поле типа протокола. Это поле содержит число, опреде­ляющее тип следующего (верхнего) протокола, который использует данную дейтаграмму (TCP, UDP и т. д.).

Header Checksum (16 бит). Поле контрольной суммы заголовка. Это поле служит для проверки правильности информации только заголовка дейта­граммы. При этом данные дейтаграммы могут содержать ошибки. При об­наружении несоответствия контрольной суммы заголовку дейтаграммы, дей­таграмма сразу же уничтожается.

Поскольку часть заголовка при передаче меняется (TTL и др.), она пересчи­тывается и проверяется в каждой точке обработки дейтаграммы. Алгоритм вычисления представляет собой побитное дополнение побитной суммы всех 16-битных слов заголовка. При вычислении поле контрольной суммы пола­гается равным нулю.

Source Address (32 бита). Адрес отправителя.

Destination Address (32 бита). Адрес получателя.

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