4.2. Протокол ip
IP является базовым протоколом всего стека TCP/IP. Модуль IP является базовым элементом технологии Internet, а центральной частью IP является его таблица маршрутов. Протокол IP исполь-зует эту таблицу при принятии всех решений о маршрутизации IP-пакетов. Содержание таблицы маршрутов определяется адми-нистратором сети. Ошибки при установке маршрутов могут заблокировать передачи. IP является протоколом сетевого уровня. При этом для каждой среды передачи данных, например, Ethernet и ATM, определен способ инкапсуляции IP-дейтаграмм. Маршру-тизаторы пересылают инкапсулированные дейтаграммы по различ-ным сетям, образуя объединение IP-сетей, по которому каждая рабочая станция может поддерживать связь по протоколу IP с любой другой рабочей станцией. Информация передается блоками, которые называются дейтаграммами (рис. 4.1). Максимальный размер дейтаграммы может составлять 65 535 байт. В подавляющем большинстве сетей столь большой размер дейтаграмм не используется. По стандарту все устройства в сети должны быть готовы принимать дейтаграммы длиной 576 байт. Эти ограничения необходимы для передачи дейтаграмм в физических кадрах. Передача дейтаграммы в кадре называется инкапсуляцией. С точки зрения низших уровней дейтаграмма выглядит так же, как и любое другое сообщение в сети. Сетевое оборудование не работает с дейтаграммами, поэтому дейтаграмма является частью области данных кадра.
Рис. 4.1. Формат дейтаграммы протоколы IPv4
Заголовок дейтаграммы организован как 5 или более 32-раз-рядных слов. Максимальная длинна заголовка – 15 слов (т.е. 60 октетов), но на практике большинство дейтаграмм имеют мини-мально возможную длину в 5 слов (20 октетов). Поля заголовка структурированы как последовательность слов. Биты пронумеро-ваны от 0 до 31.
Услуги, предлагаемые протоколом IP, сводятся к негаранти-рованной доставке дейтаграмм. Протокол IP не исключает потерь дейтаграмм, доставки дейтаграмм с ошибками, а также дублиро-вания и нарушения порядка следования дейтаграмм, заданного при их отправлении.
Протокол IP выполняет фрагментацию и сборку дейтаграмм, если принятый размер кадров в данной сети (или участке распределенной сети) отличается от размера исходных дейтаграмм. В протоколе IP отсутствуют механизмы повышения достоверности передачи данных, управления протоколом и синхронизации, кото-рые обычно предоставляются в протоколах более высокого уровня. Протокол IP получает информацию для передачи от протоколов, расположенных по сравнению с ним на более высоком уровне. К этим протоколам, прежде всего, относятся протоколы TCP и UDP. После получения информации от них протокол IP передает дейтаграммы через распределенную сеть, используя сервисы локальных сетей.
Фрагментация дейтаграмм – это разделение большой дейта-граммы на несколько небольших частей. В большинстве локальных и глобальных сетей есть ограничения на максимальный размер передаваемых в кадре данных. Эту величину называют макси-мальной единицей передачи (Maximum Transmission Unit, MTU). Например, в сетях Ethernet данная величина составляет 1500 байт, а в сетях FDDI – 4478 байт. Когда маршрутизатор переправляет дейтаграмму из одной сети в другую, то может оказаться, что ее размер окажется недопустимым в новой сети. Спецификация IP предусматривает следующее решение этой проблемы: маршру-тизатор может разбить дейтаграмму на более мелкие фрагменты, приемлемые для выходной среды, а в пункте назначения эти фрагменты будут вновь объединены в дейтаграмму исходного вида. Рассмотрим пример фрагментации. Предположим, отправи-телю необходимо передать сообщение длиной 5600 байт. Отправи-тель работает в сети, у которой значение MTU составляет 4478 байт. При поступлении пакета на сетевой уровень протокол IP делит его на две равные дейтаграммы по 2800 байт, устанавливая в первой дейтаграмме признак фрагментации и присваивая пакету уникальный идентификатор. Бит фрагментации во второй дейта-грамме равен нулю, что указывает на последний фрагмент сообщения. Таким образом, дейтаграммы укладываются в кадр физического уровня данной сети (2800 байт + 20 байт заголовка меньше 4478 байт). После маршрутизатора дейтаграммы необхо-димо передать в сеть с MTU, равной 1500 байт. Для этого маршру-тизатор делит поступающие дейтаграммы пополам. Он формирует новые дейтаграммы, каждая из которых имеет размер 1400 + 20 байт, чтобы уложиться в MTU второй сети. Отметим, что марш-рутизатор не собирает фрагменты в более крупные дейтаграммы, даже если на пути встречается сеть, допускающая такое укруп-нение. Использование фрагментации повышает вероятность потери исходной дейтаграммы, так как потеря даже одного фрагмента приводит к потере всей дейтаграммы. Сборка дейтаграммы осу-ществляется на месте назначения. Такой метод позволяет маршру-тизировать фрагменты независимо.
Для каждого устройства в сетях IP можно говорить об адресах трех уровней:
Физический адрес устройства (точнее – определенного интер-фейса). Для устройств в сетях Ethernet – это МАС-адрес сетевой карты или порта маршрутизатора. Эти адреса назначаются производителями оборудования. Физический адрес имеет шесть байтов: старшие три байта – идентификатор фирмы-производителя, младшие три байта назначаются самим производителем;
IP-адрес. На данный момент повсеместно используется четвёртая версия этого протокола (IPv4), но она уже давно устарела и на смену ей пришла альтернатива – шестая версия (IPv6). Но на современном этапе IPv6 почти не используется в мире и не является основным стандартом, но надо понимать, что переход на него неизбежен и произойдёт уже в ближайшем будущем. Этот адрес используется на сетевом уровне эталонной модели OSI;
Символьный идентификатор – имя. Этот идентификатор может назначаться администратором произвольно.
