Протокол IP является самым главным во всей иерархии протоколов семейства TCP/IP. Именно он используется для управления рассылкой TCP/IP пакетов по сети Internet. Среди различных функций, возложенных на IP, обычно выделяют следующие:
а) определение пакета, который является базовым понятием и единицей передачи данных в сети Internet. Многие зарубежные авторы называют такой IP-пакет датаграммой;
б) определение адресной схемы, которая используется в сети Internet;
в) передача данных между канальным уровнем (уровнем доступа к сети) и транспортным уровнем (другими словами. мультиплексирование транспортных датаграмм во фреймы канального уровня);
г) маршрутизация пакетов по сети, т.е. передача пакетов от одного шлюза к другому с целью передачи пакета машине-получателю;
д) «нарезка» и сборка из фрагментов пакетов транспортного уровня.
Главными особенностями протокола IP является отсутствие ориентации на физическое или виртуальное соединение. Это значит, что прежде, чем послать пакет в сеть, модуль операционной системы, реализующий IP, не проверяет возможность установки соединения, т.е. никакой управляющей информации, кроме той, что содержится в самом IP-пакете, по сети не передается. Кроме этого, IP не заботится о проверке целостности информации в поле данных пакета, что заставляет отнести его к протоколам ненадежной доставки. Целостность данных проверяется протоколами транспортного уровня (TCP) или протоколами приложений.
Таким образом, вся информация о пути, по которому должен пройти пакет, берется из самой сети в момент прохождения пакета. Принцип маршрутизации является одним из тех факторов, который обеспечил гибкость сети Internet. Для успешного администрирования и сопровождения IP-сетей необходимо понимание использования таблицы маршрутов и техники межсетевого взаимодействия.
Правила маршрутизации в модуле IP
Для отправляемых IP-пакетов, поступающих от модулей верхнего уровня, модуль IP должен определить способ доставки – прямой или косвенный – и выбрать сетевой интерфейс. Этот выбор делается на основании результатов поиска в таблице маршрутов.
Для принимаемых IP-пакетов, поступающих от сетевых драйверов, модуль IP должен решить, нужно ли ретранслировать IP-пакет по другой сети или передать его на верхний уровень. Если модуль IP решит, что IP-пакет должен быть ретранслирован, то дальнейшая работа с ним осуществляется так же, как с отправляемыми IP-пакетами.
Входящий IP-пакет никогда не ретранслируется через тот же сетевой интерфейс, через который он был принят. Решение о маршрутизации принимается до того, как IP-пакет передается сетевому драйверу, и до того, как происходит обращение к ARP-таблице.
Прямая маршрутизация
На рисунке 3.2 показана небольшая IP-сеть, состоящая из 3 машин: A, B и C. Каждый сетевой адаптер этих машин имеет свой Ethernet-адрес. Менеджер сети должен присвоить машинам уникальные IP-адреса.
Рис. 3.2. Простая IP-сеть
Когда A посылает IP-пакет B, то заголовок IP-пакета содержит в поле отправителя IP-адрес узла A, а заголовок Ethernet-кадра содержит в поле отправителя Ethernet-адрес A. Кроме этого, IP-заголовок содержит в поле получателя IP-адрес узла B, а Ethernet-заголовок содержит в поле получателя Ethernet-адрес B.
Таблица 3.1