IP-пакет состоит из заголовка и поля данных. Заголовок, как правило, имеющий длину 20 байт.
Формат дейтограммы Интернет
Версия - характеризует версию IP-протокола (например, 4 или 6). Формат пакета определяется программой и, вообще говоря, может быть разным для разных значений поля версия. Только размер и положение этого поля незыблемы.
Длина заголовка (Hlen), измеряемая в 32-разрядных словах, обычно содержит 20 октетов.
Полная длина определяет полную длину IP-дейтограммы (до 65535 октетов), включая заголовок и данные.
Тип сервиса - (TOS) характеризует то, как должна обрабатываться дейтограмма. Имеет 6 субполей:
Приоритет | D | T | R | C | Не используется |
Формат поля TOS.
Субполе «приоритет» (3 бита) предоставляет возможность присвоить код приоритета каждой дейтограмме (в настоящее время это поле не используется).
Биты C, D, T, R характеризуют пожелания относительно способа доставки дейтограммы. Так D=1 требует минимальной задержки, T=1 – высокую пропускную способность, R=1 – высокую надежность, а C=1 – низкую стоимость. TOS играет важную роль в маршрутизации пакетов.
Идентификатор, флаги и указатель фрагмента. Поля управляют процессом фрагментации и последующей "сборки" дейтограммы. Идентификатор представляет собой уникальный код дейтограммы, позволяющий идентифицировать принадлежность фрагментов и исключить ошибки при "сборке" дейтограмм. Бит 0 поля «флаги» является резервным, бит 1 служит для управления фрагментацией пакетов (0 – фрагментация разрешена; 1 – запрещена), бит 2 определяет, является ли данный фрагмент последним (0 – последний фрагмент; 1 – следует ожидать продолжения). Указатель фрагмента используется при сборке/разборке фрагментов пакетов при передачах их между сетями с различными величинами MTU.
Время жизни (TTL). Задает время жизни дейтограммы в секундах, то есть предельно допустимое время пребывания дейтограммы в системе. При каждой обработке дейтограммы, например в маршрутизаторе, это время уменьшается в соответствии со временем пребывания в данном устройстве или согласно протоколу обработки. Если TTL=0, дейтограмма из системы удаляется.
Протокол -указывает, какому протоколу верхнего уровня принадлежит информация, размещенная в поле данных пакета (например ТСР).
Контрольная сумма заголовка - занимает 2 байта и рассчитывается только по заголовку. В ычисляется с использованием операций сложения 16-разрядных слов заголовка по модулю 1. Сама контрольная сумма является дополнением по модулю один полученного результата сложения.
Поля IP-адрес отправителя и IP-адресполучателя имеют одинаковую длину - 32 бита - и одинаковую структуру.
Опции не обязательно присутствует в каждой дейтограмме. Размер поля опции зависит от того, какие опции применены. Если используется несколько опций, они записываются подряд без каких-либо разделителей. Каждая опция содержит один октет кода опции, за которым может следовать октет длины и серия октетов данных. Если место, занятое опциями, не кратно 4 октетам, используется заполнитель (состоит из нулей).
IP-адреса представляют собой основной тип адресов, на основании которых сетевой уровень передает пакеты между сетями. Эти адреса состоят из 4 байт, например 109.26.17.100. IP-адрес назначается администратором во время конфигурирования компьютеров и маршрутизаторов. Номер сети может быть выбран администратором произвольно, либо назначен по рекомендации специального подразделения Internet - InterNIC, если сеть должна работать как составная часть Internet. Обычно поставщики услуг Internet получают диапазоны адресов у подразделений InterNIC, а затем распределяют их между своими абонентами. Номер узла в протоколе IP назначается независимо от локального адреса узла. Маршрутизатор по определению входит сразу в несколько сетей. Поэтому каждый порт маршрутизатора имеет собственный IP-адрес. Конечный узел также может входить в несколько IP-сетей. В этом случае компьютер должен иметь несколько IP-адресов, по числу сетевых связей. Таким образом, IP-адрес характеризует не отдельный компьютер или маршрутизатор, а одно сетевое соединение.
Адрес состоит из двух логических частей - номера сети и номера узла в сети. Какая часть адреса относится к номеру сети, а какая - к номеру узла, определяется значениями первых бит адреса. Значения этих бит являются также признаками того, к какому классу относится тот или иной IP-адрес.
IP адрес класса А.
IP адрес класса В.
IP адрес класса С.
Если адрес начинается с 0, то сеть относят к классу А и номер сети занимает один байт, остальные 3 байта интерпретируются как номер узла в сети. Сети класса А имеют номера в диапазоне от 1 до 126.
Если первые два бита адреса равны 10, то сеть относится к классу В. В сетях класса В под номер сети и под номер узла отводится по 16 бит. Таким образом, сеть класса В является сетью средних размеров с максимальным числом узлов 216, что составляет 65 536 узлов.
Если адрес начинается с последовательности 110, то это сеть класса С. В этом случае под номер сети отводится 24 бита, а под номер узла - 8 бит.
Если адрес начинается с последовательности 1110, то он является адресом класса D и обозначает особый, групповой адрес - multicast. Если в пакете в качестве адреса назначения указан адрес класса D, то такой пакет должны получить все узлы, которым присвоен данный адрес.
Если адрес начинается с последовательности 11110, то это значит, что данный адрес относится к классу Е, Адреса этого класса зарезервированы для будущих применений.