ИП в ИП
IP в IP — это протокол IP-туннелирования , который инкапсулирует один IP- пакет в другой IP-пакет. Чтобы инкапсулировать IP-пакет в другой IP-пакет, к внешнему заголовку добавляется Source IP
, точка входа в туннель, и Destination IP
, точка выхода из туннеля. При этом внутренний пакет не изменяется (за исключением TTL
поле, которое уменьшается). Don't Fragment
и Type Of Service
поля должны быть скопированы во внешний пакет. Если размер пакета, включая внешний заголовок, больше, чем Path MTU
, инкапсулятор фрагментирует пакет. Декапсулятор соберет пакет заново.
IP- пакет, инкапсулированный в IP-пакет
[ редактировать ]Внешний IP-заголовок | Внутренний IP-заголовок | IP-полезная нагрузка |
---|

Внешний заголовок IP имеет следующие поля:
Версия: 4 бита
Это поле представляет собой номер версии протокола. Всегда 4, поскольку IP в IP поддерживается для IPv4.
Длина заголовка: 4 бита
Это поле представляет собой длину внешнего IP-заголовка.
Тип услуги (TOS): 8 бит
Это поле копируется из внутреннего заголовка IP.
Общая длина: 16 бит
Это поле представляет собой длину инкапсулированного IP-пакета (включая внешний IP-заголовок, внутренний IP-заголовок и полезную нагрузку IP).
Идентификация: 16 бит
Это поле используется для идентификации фрагментов дейтаграммы, что будет полезно при повторной сборке дейтаграммы, поскольку инкапсулятор может фрагментировать дейтаграмму. Для заголовка внешнего IP генерируется новый номер.
Флаги: 3 бита
Р | ДФ | МФ |
---|
R: 1 bit
Этот бит зарезервирован и должен быть равен 0.
ДФ: 1 бит
Это поле определяет, может ли датаграмма быть фрагментированной или нет. Если во внутреннем заголовке этот бит установлен в 1, то во внешнем заголовке этот бит также будет установлен в 1, что означает, что эта дейтаграмма не может быть фрагментирована. Если во внутреннем заголовке этот бит установлен в 0, то внешний заголовок может быть установлен в 0/1.
СФ: 1 бит
Это поле является обязательным, если дейтаграмма фрагментирована. В ней указывается, содержит ли дейтаграмма еще несколько фрагментов. Это поле не копируется из внутреннего заголовка.
Смещение фрагмента: 13 бит.
Это поле используется при сборке фрагментов.
Время жизни (TTL): 8 бит
Это поле используется для отслеживания времени жизни дейтаграммы. TTL внутреннего заголовка уменьшается перед инкапсуляцией и не изменяется в декапсуляторе. TTL внешнего заголовка устанавливается таким образом, чтобы дейтаграмма доставлялась в конечную точку туннеля.
Протокол : 8 бит
Это поле указывает протокол дейтаграммы, следующей за этим заголовком. Значение установлено равным 4 для IP в IP.
Контрольная сумма заголовка: 16 бит.
Это поле представляет собой контрольную сумму IP внешнего заголовка.
Исходный IP-адрес: 32 бита.
Это поле является IP-адресом инкапсулятора.
IP-адрес назначения: 32 бита.
Это поле является IP-адресом декапсулятора.
Опции: Переменная длина.
Это поле обычно НЕ копируется из внутреннего заголовка IP. Могут быть добавлены новые опции.
Прокладка. Переменная длина.
Это поле используется для заполнения дейтаграммы, чтобы полезная нагрузка IP начиналась с 32-битной границы.