Главная » Сетевые технологии » Протокол сетевого уровня — IP
Протокол IP — основной протокол стека протоколов TCP/IP и основной протокол сетевого уровня. Именно он отвечает за передачу информации по сети и между отдельными сетями (подсетями). В его основе заложен дейтаграммный метод, который не гарантирует доставку пакета.
Функции протокола IP определены в стандарте RFC-791 следующим образом:
“Протокол IP обеспечивает передачу блоков данных, называемых дейтаграммами, от отправителя к получателям, где отправители и получатели являются компьютерами, идентифицируемыми адресами фиксированной длины (IP-адресами). Протокол IP обеспечивает при необходимости также фрагментацию и сборку дейтаграмм для передачи данных через сети с малым размером пакетов”.
Протокол IP является ненадежным протоколом без установления соединения. Это означает, что протокол IP не подтверждает доставку данных, не контролирует целостность полученных данных и не производит операцию квитирования (handshaking) – обмена служебными сообщениями, подтверждающими установку соединения с узлом назначения и его готовность к приему данных.
Протокол IP обрабатывает каждую дейтаграмму как независимую единицу, не имеющую связи ни с какими другими дейтаграммами в Интернет.
После того, как дейтаграмма отправляется в сеть, ее дальнейшая судьба никак не контролируется отправителем (на уровне протокола IP). Если дейтаграмма не может быть доставлена, она уничтожается. Узел, уничтоживший дейтаграмму, может оправить по обратному адресу ICMP-сообщение о причине сбоя.
Гарантию правильной передачи данных предоставляют протоколы вышестоящего уровня (например, протокол TCP или сервисы прикладного уровня), которые имеют для этого необходимые механизмы.
Одна из основных задач, решаемых протоколом IP, – маршрутизация дейтаграмм, т.е. определение пути следования дейтаграммы от одного узла сети к другому на основании адреса получателя.
Общий сценарий работы модуля IP на каком-либо узле сети, принимающего дейтаграмму из сети, не зависимо от конкретной реализации, то-есть операционной системы, таков:
При получении данных от вышестоящего уровня для отправки их по сети IP-модуль формирует дейтаграмму с этими данными, в заголовок которой заносятся адреса отправителя и получателя (также полученные от транспортного уровня) и другая информация; после чего выполняются следующие шаги:
Формат заголовка дейтаграммы IP (v4):
Октет | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Версия | IHL | Тип обслуживания | Длина пакета | ||||||||||||||||||||||||||||
4 | Идентификатор | Флаги | Смещение фрагмента | |||||||||||||||||||||||||||||
8 | Время жизни (TTL) | Протокол | Контрольная сумма заголовка | |||||||||||||||||||||||||||||
12 | IP-адрес отправителя | |||||||||||||||||||||||||||||||
16 | IP-адрес получателя | |||||||||||||||||||||||||||||||
20 | Параметры (от 0 до 10-и 32-х битных слов) | |||||||||||||||||||||||||||||||
Данные |
На практике в большинстве реализаций протокола IP данное поле почти всегда равно 0.