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-модули. Длина этого поля может меняться в зависимости от количества параметров, которые дейтаграмме необходимо передать.
- 4. Программное обеспечение сетей
- 4.1. Структура стека tcp/ip. Краткая характеристика протоколов
- 4.2. Адресация в ip-сетях
- 4.2. Три основных класса ip-адресов
- Структура адресов сетей классов a – e
- Диапазон адресов сетей и хостов классов a и c
- 4.3. Использование масок в ip-адресации
- 4.4.Отображение физических адресов на ip-адреса: протокол arp
- 4.5. Автоматизация процесса назначения ip-адресов узлам сети - протокол dhcp
- 4.6. Протокол ip
- 4.6.1.Формат пакета ip
- 4.7. Маршрутизация. Виды и алгоритмы маршрутизации.
- 4.7.1. Алгоритм поиска маршрута в таблице маршрутизации
- 4.7.2. Протокол динамической маршрутизации rip
- 4.8. Протокол управляющих сообщений icmp
- 4.8.1. Формат сообщений протокола icmp
- 4.8.3.Сообщения о недостижимости узла назначения
- 4.8.4.Перенаправление маршрута
- 4.9. Протокол udp
- 4.9.1. Порты
- 4.9.2. Формат udp-пакета
- 4.10. Протокол tcp
- 4.10.1. Алгоритм установления tcp-соединения
- 4.10.3. Формат сообщений tcp
- 4.11. Протокол dns
- 4.11.1. Принцип работы dns
- 4.11.2. Алгоритм взаимодействия узлов в распределенной сети
- 4.12. Протокол управления сетью snmp
- 4.12.1. Основы технологии
- 4.12.2. Различия в представлении информации
- 4.12.3. Базы данных управления
- 4.12.4. Операции
- 4.13. Протоколы дистанционного управления. Протокол telnet
- 4.14. Протоколы файлового обмена
- 4.14.1. Тривиальный протокол передачи файлов (tftp)
- 4.14.2. Простой протокол передачи файлов (sftp)
- 4.14.3. Протокол передачи файлов ftp
- 4.14.4. Команды ftp
- 4.15. Электронная почта
- 4.15.1. Протокол smtp
- 4.15.2. Протокол pop3 (Post Office Protocol)
- 4.15.3. Протокол imap
- 4.16.1. Универсальный указатель ресурса url.
- 4.16.2. Протокол http
- 4.16.3. Методы протокола http
- 4.16.4. Статус-Код и пояснение к нему
- 4.16.5. Языки и средства создания Web-приложений.