Опубликован: 11.08.2008 | Уровень: специалист | Доступ: свободно
Лекция 4:

Протокол Интернет версии 4

Модуль обработки

Модуль обработки – центральный в совокупности модулей IP (алгоритм рис. 4.20). Обрабатывающий модуль получает дейтаграмму от интерфейса или от модуля, дополняющего заголовок. В обоих случаях их обрабатывают одинаково. Дейтаграмма должна быть обработана и маршрутизирована независимо от того, откуда она прибыла.

Алгоритм модуля обработки

Рис. 4.20. Алгоритм модуля обработки

Модуль обработки сначала осуществляет проверку, чтобы определить, является дейтаграмма пакетом тестовой обратной связи с адресом конечного пункта 127.X.Y.Z или пакетом, который достиг своего конечного пункта. В любом случае, пакет посылают модулю реассемблирования.

Если модуль – это маршрутизатор, он уменьшает поле времени жизни (TTL — time to live) на единицу. Если значение поля меньше или равно нулю, дейтаграмма отклоняется и посылается сообщение системы управления Интернета (ICMP) на начальную станцию. Если значение TTL после уменьшения больше чем нуль, обрабатывающий модуль посылает дейтаграмму к модулю-маршрутизатору.

Очереди

Наше пакетирование использует два типа очередей: исходящие очереди и входящие очереди. Исходящие очереди накапливают дейтаграммы, приходящие от уровня звена данных или протоколов высшего уровня. Входящие очереди накапливают дейтаграммы, идущие к уровню звена данных или протоколов высшего уровня. Модуль обработки выбирает дейтаграммы из исходящих очередей. Модули фрагментации и ассемблирования добавляют дейтаграммы во входящие очереди.

Таблица маршрутизации

Таблица маршрутизации используется модулем маршрутизации для определения адреса следующего участка пакета.

Модуль маршрутизации

Модуль маршрутизации получает IP-пакет от модуля обработки. Если пакет передается дальше, то это делает этот модуль. Модуль находит IP-адрес следующей станции в соответствии с номером, который должен быть послан в пакете. Затем он посылает пакет с этой информацией в модуль фрагментации.

Модуль фрагментации

В нашей блок-схеме модуль фрагментации (рис. 4.21). получает IP-дейтаграммы от модуля маршрутизации. Модуль маршрутизации пересылает: IP-дейтаграмму, IP-адрес следующей станции (либо конечный пункт назначения для прямой доставки, либо следующий маршрутизатор для непрямой доставки) и номер интерфейса, с помощью которого дейтаграмма будет выслана.

Алгоритм модуля фрагментации

увеличить изображение
Рис. 4.21. Алгоритм модуля фрагментации

Таблица MTU (Maximum Transferred Unit) используется модулем фрагментации, чтобы найти максимальную передаваемую единицу в конкретном интерфейсе.

Модуль фрагментации обращается к таблице MTU, чтобы найти MTU для заданного интерфейса. Если длина дейтаграммы больше чем MTU, модуль фрагментации фрагментирует дейтаграмму, добавляя заголовок к каждому фрагменту, и посылает их в ARP(Address Resolution Protocol) - для определения адреса и доставки.

Таблица реассемблирования

Таблица реассемблирования используется модулем реассемблирования. В нашем пакетировании таблица реассемблирования имеет пять полей: состояние, адрес источника, IP-дейтаграммы, отсчет времени, ID-дейтаграммы и фрагменты (рис. 4.22).

Таблица реассемблирования

Рис. 4.22. Таблица реассемблирования

Значение поля состояние может быть одним из двух: FREE (СВОБОДНО) или IN_USE (в использовании). Поле IP-адреса определяет IP-адреса источника дейтаграммы и все фрагменты, принадлежащие этой дейтаграмме. Отсчет времени – заранее определенное количество времени, в которое каждый фрагмент должен прибыть. В заключение определим: поле "фрагменты" — это указатель списка связи фрагментов.

Модуль реассемблирования

Модуль реассемблирования принимает от модуля обработки те фрагменты, которые прибывают на их конечный пункт. В нашем пакетировании модуль реассемблирования обращается с не фрагментированными дейтаграммами как с фрагментированными, принадлежащими дейтаграмме только с одним фрагментом.

Поскольку IP — протокол без коммутации, нет гарантий, что фрагменты прибывают в порядке. С другой стороны, фрагменты одной дейтаграммы могут быть перемешаны с фрагментами от других дейтаграмм. Для того чтобы зафиксировать такую ситуацию, модуль использует таблицу реассемблирования с вспомогательной таблицей связей, как мы это описывали ранее.

Задача модуля реассемблирования — найти дейтаграмму, которой принадлежат по порядку все фрагменты одной и той же дейтаграммы, и реассемблировать все фрагменты, когда они все прибудут. Если истекает установленный отсчет времени и некоторый фрагмент не соответствует порядку следования, модуль отклоняет фрагмент.

Евгений Виноградов
Евгений Виноградов
Экстернат
Илья Сидоркин
Илья Сидоркин
Как получить диплом?
Анатолий Федоров
Анатолий Федоров
Россия, Москва
Геннадий Шестаков
Геннадий Шестаков
Беларусь, Орша