Сети TCP/IP > IP-пакет

IP-пакет состоит из заголовка (header), опциональной части (options) и самой информации (data).

IP header
options
IP data

IP-header состоит из 20 байт, опциональная часть может быть размером от 0 до 40 байт. Теперь поподробнее про заголовок IP-пакета.

IP version (4 бита) длина header'а (4 бита) TOS (8 бит) длина пакета (16 бит)
ID пакета (16 бит) (16 бит)
TTL (8 бит) protocol (8 бит) checksum (16 бит)
IP-адрес отправителя (32 бита)
IP-адрес получателя (32 бита)

IP version – версия IP, на данный момент четвертая.

Длина header'a (плюс длина опциональной части) хранится в четверках байт. (Например, если длина options – 40 байт, то в сумме с длиной header'а она будет равна 60, а в пакете будет записано число 15.)

ID пакета – номер пакета. (Каждый следующий пакет, посланный компьютером, имеет номер, на 1 больший, чем предыдущий.)

checksum – это такое число, которое дополняет сумму всех чисел в header'е до -1 (до 11...11 в двоичной записи). C его помощью часто можно определить не произошло ли ошибки при передаче пакета. Например, если случайно в header'е поменялось одно число, то новое значение checksum не будет равно тому, что передалось в пакете. В этом случае получатель может попросить отправителя послать еще раз пакет с таким-то ID.

TTL (Time To Live) – "время жизни" пакета, то есть, наибольшее количество раз, которое его можно переслать. (Каждый компьютер, получивший IP-пакет, уменьшает TTL на 1 перед тем, как послать его дальше.) Когда TTL становится равным нулю, то пакет больше никуда не посылается. Это сделано для того, чтобы пакет не мог передаваться по сети бесконечно. Обычно начальное TTL у пакета – 64.

TOS (Type Of Service) – "тип сервиса". (Существуют 4 возможных значения TOS: для самой быстрой пересылки, самой надежной, самой дешевой и с наибольшей пропускной способностью. Router может учесть то, что написано в пакете, и послать информацию через канал, который он считает наиболее подходящим. Однако, он может ее и не учитывать.)

Александр Ильин