IP пакет представляет собой отформатированную информацию в блоке, которая передается в сети. В настоящее время на практике применяются две версии ip пакетов: IPv4 и IPv6. В глобальной сети интернет в основном используется IP пакеты 4 версии, так как 6 версия находится на стадии внедрения. Отличительной особенностью IPv6 является высокая надежность, повышенный уровень шифрования, увеличения разрядности адреса и некоторые другие особенности.
Формат заголовка (структуры) секции IPv4
Содержимое полей Ip пакета 4 версии ( IPv4) представим в виде таблицы
№ п/п | Наименование | Назначение | Принимаемые значения | Диапазон значений | Длина поля, бит | Примечание |
1. | Версия | Определяет номер версии IP пакета | Номер версии | 0..15 | 4 | — |
2. | Заголовок | Метка пакета, используемая в различных иных целях | Количество 32-битных машинных слов | 5..15 машинных слов | 4 | По умолчанию имеет размер 20 байт, применяется совместно с полем «параметры». |
3. | Тип обслуживания | Управление качеством обслуживания пакета | Биты 0…2 — предпочтение IP-пакета;
3 бит — требование ко времени задержки передачи IP-пакета (0 — нормальная, 1 — низкая задержка); бит 4 — требование к пропускной способности маршрута, по которому должен отправляться IP-пакет (0 – низкая пропускная способность, 1 — высокая); бит 5 — требование к надежности передачи IP-пакета (0 -нормальная, 1 — высокая надежность); биты 6…7 — зарезервированы. |
— | 8 | На практике в большинстве случаях данное поле равно 0, в UNIX-системах это поле не используется. |
4. | Длина пакета | Определяет суммарный размер IP-пакета, включая заголовок, параметры и данные | Длина пакета в октетах | 20..65535 байт | 16 | Любой узел должен поддерживать размер более 576 байт. Могут содержаться не нужные данные. |
5. | Идентификатор | Используется для определения корректной последовательности фрагментов IP-пакета при его сборке | Значение, назначаемое отправителем пакета | 0.. 65535 | 16 | Значение каждого IP-пакета, по сравнению с предыдущим, увеличивается на единицу. В процессе отправки и получения остается неизменным. |
6. | Флаги | Используется для фрагментации IP-пакета | 3 бита флагов. Первый бит должен быть всегда равен нулю, второй бит DF определяет возможность фрагментации пакета и третий бит, MF показывает, не является ли IP-пакет последним в цепочке пакетов. | — | 3 | — |
7. | Смещение фрагмента | Указывает на смещение данных фрагмента IP-пакета относительно оригинала. Применяется для разделения, в зависимости от размера, больших IP-пакетов на более мелкие, а также их сбора в обратном порядке. | Значение, определяющее позицию фрагмента в потоке данных | 0..8191 | 13 | Смещение задается количеством восьми байтовых блоков, для перевода в байты необходимо умножить на 8 |
8. | Время жизни | Определяет время жизни IP-пакета | Количество узлов, которые может пройти IP-пакет. Наиболее часто используется значение 64. | 0..255 | 8 | n=число узлов;
while(n>0) { n=n-1; if(n=0) {error(Time Exceeded); exit; }} |
9. | Протокол | Указывает на данные, какого протокола содержит IP-пакета | Идентификатор интернет-протокола следующего уровня | 0..255 | 8 | ICMP, TCP, UDP, ESP, GRE и другие |
10. | Контрольная сумма заголовка | Осуществляет проверку на соответствия принадлежности к IP-пакету | 16-битные слова | — | 16 | Применяется алгоритм Header Checksum |
11. | IP-адрес отправителя | Индентифицирует IP-адрес отправителя | IP-адрес отправителя в 32-битном формате | 0..255. 0..255. 0..255. 0..255 | 32 | В процессе маршрута не должен изменятся. Обрабатываются на канальном уровне. |
12. | IP-адрес получателя | Индентифицирует IP-адрес получателя | IP-адрес получателя в 32-битном формате | 0..255. 0..255. 0..255. 0..255 | 32 | В процессе маршрута не должен изменятся. Обрабатываются на канальном уровне. |
13. | Параметры | Определяет свойство пакета | Количество машинных слов | 0..10 машинных слов | 32 | Используется совместно с полем «заголовок», редко используется |
14. | Данные | — | — | — | — | — |