Формат дейтаграммы
Теперь, после того, как мы описали общий формат IP-дейтаграммы, можно рассмотреть ее содержимое более детально. Рисунок 7.3 показывает расположение полей дейтаграммы:
0 4 8 16 19 24 31 ------------------------------------------------------------ |версия|длина| тип сервиса| общая длина | ------------------------------------------------------------ | идентификация |флаги |смещение фрагмента | ------------------------------------------------------------ |время жизни | протокол | КС заголовка | ------------------------------------------------------------ | IP-адрес отправителя | ------------------------------------------------------------ | IP-адрес получателя | ------------------------------------------------------------ | Опции IP(если есть) |заполнение | ------------------------------------------------------------ | Данные | ------------------------------------------------------------ | ... | ------------------------------------------------------------
Рисунок 7.3 Формат дейтаграммы Интернета, основного элемента передачи в интернете TCP/IP.
Так как обработка дейтаграммы происходит с помощью программного обеспечения, оборудование не накладывает никаких ограничений на ее содержимое и формат. Например, первое 4-битовое поле в дейтаграмме(ВЕРСИЯ) содержит версию протокола IP , используемую при создании дейтаграммы. Оно используется отправителем, получателем, и всеми шлюзами между ними для уверенности в том, что все они используют один и тот же формат дейтаграммы. Всему программному обеспечению IP требуется проверять поле версии перед обработкой дейтаграммы, чтобы быть уверенным в том, что ее формат соответствует тому формату, который ожидает это обеспечение. Если стандарт меняется, машины будут отбрасывать дейтаграммы с версией протокола, отличающейся от версии, на которой они работают, предохраняя себя от неправильной интерпретации содержимого дейтаграммы из-за устаревшего формата. Текущая версия протокола IP - 4.
Поле длины заголовка(ДЛИНА) также занимает 4 бита и хранит длину заголовка дейтаграммы в 32-битных словах. Как мы увидим, все поля в заголовке имеют фиксированную длину, за исключением поля ОПЦИИ IP и соответствующего ему поля ЗАПОЛНЕНИЕ. Наиболее простой заголовок, без опций и заполнения, занимает 20 октетов и имеет в поле длины заголовка значение 5.
Поле ОБЩАЯ ДЛИНА дает длину IP-дейтаграммы, измеренную в октетах, включая октеты в заголовке и данных. Размер области данных может быть вычислен с помощью вычитания длины заголовка(ДЛИНА) из ОБЩЕЙ ДЛИНЫ. Так как поле ОБЩАЯ ДЛИНА занимает 16 бит, максимально возможный размер дейтаграммы IP - 65535 октетов. В большинстве приложений это ограничение несущественно. Но оно может стать важным в будущем, когда сети с более высокими скоростями смогут передавать пакеты данных длиннее чем 65535 октетов.