Протокол IP. Формат пакетов.

Июнь 30, 2011

Чтобы не попасть в беду, соблюдайте дома и в общественных места элементарные правила пожарной безопасности. А именно, не курите в неположенном месте, оборудуйте любое помещение в доме противопожарными средствами, не курите в постели и регулярно проверяйте проводку. Все это сделает вашу жизнь более безопасной!
____________________________________

Формат IP-датаграммы в общем случае выглядит так:

ЗАГОЛОВОК ———- ТЕЛО

В теле датаграммы передаются данные. Как правило это пакет протокола транспортного уровня. С т.з. протокола IP тело м.б. произвольным. Заголовок IP-датаграммы содержит служебную информацию, которая во многом определяет порядок её обработки драйвером протокола IP. Формат заголовка выглядит так:

image

Version. Поле указывает номер версии протокола IP. В настоящее время используется IP версии 4, и значение этого поля равно 4.
IHL. Поле указывает длину заголовка датаграммы в 32-битных словах. Необходимость поля вызвана тем, что заголовок в общем случае имеет переменную длину, а по этому полю можно определить границу заголовка и смещение тела датаграммы от её начала.
Type of Service. Определяет некоторые характеристики датаграммы, влияющие на её обработку. Разные биты этого поля определяют раз-ные характеристики:
0 – 2: характеристика precedence (приоритет датаграммы)
3: delay (задержка в обработке датаграммы)
0 – норм. задержка  1 – миним. задержка
4: throughput (пропускная способность, скорость передачи)
0 – норм. скорость   1 – высокая скорость
5: reliability (надёжность передачи)
0 – обычная надёжность   1 – высокая надёжность
6 – 7: зарезервированы для использования в будущем.
Total Length. Содержит обычную длину IP-датаграммы, включая и тело и заголовок в битах (технически максимальный размер ограни-чен 65535 байтами).
Identification. Поле используется при выполнении фрагментации с последующим реассемблированием IP-датаграмм.
Необходимость фрагментации возникает при передаче датаграммы из одной физической сети в другую при различных ограничениях максимальной длины кадра физического уровня, которые в этих сетях существуют. Фрагменты одной датаграммы от фрагментов другой отличаются значением поля Identification. При этом поле Fragment Offset указывает смещение данного фрагмента относительно начала исходной датаграммы.
TTL. Поле определяет максимальное количество маршрутизаторов, через которые датаграмма может пройти от отправителя до получателя. Каждый маршрутизатор и проходящая через него датаграмма уменьшает значение поля TTL на единицу. При достижении нуля датаграмма уничтожается без дальнейшей передачи. Смысл такой функции – исключить засорение сети датаграммами, следующими по циклическому маршруту.
Protocol. Указывает номер протокола верхнего уровня, данные ко-торого содержатся в теле IP-датаграммы (1 – ICMP, 6 – TCP, 17 – UDP).
Source Address и Destination Address. Поля содержат IP машины-отправителя и машины-получателя соответственно.
Options. Необязательное поле переменной длины, которое позволяет при необходимости использовать дополнительные возможности про-токола IP.
Padding. Используется для выравнивания заголовка IP-датаграммы до ближайшей 32-разрядной границы и заполняется нулями. Необхо-димость обусловлена переменной длиной поля Options.
Flags. Занимает 3 бита. Их назначение следующее:
0 – зарезервирован.
1 – DF (указывает возможность фрагментации датаграммы)
0 – фрагментация разрешена     1 – фрагментация запрещена
2 – MF (указывает последний фрагмент)
0 – фрагмент последний     1 – фрагмент не последний
Header Checksum. Содержит контрольную сумму, вычисленную по заголовку IP-датаграммы для повышения надежности доставки датаграммы. Сумма вычисляется сложением 16-разрядных слов, на которые разбивается заголовок. Сложение ведётся с учетом знака, а результат инвертируется. В процессе вычисления поле полагается равным 0.

Продолжение следует…

комментария 2 to “Протокол IP. Формат пакетов.”


  1. […] уже рассказывал об основах работы и применения IP протокола. Продолжим серию […]


Comments are closed.