Алгоритм работы маршрутизатора.
Вернемся к терминологии сетевых технологий и рассмотрим алгоритм работы маршрутизатора.
Маршрутизатор— это устройство, которое собирает информацию о топологии межсетевых соединений и на ее основании пересылает пакеты сетевого уровня в сеть назначения. Чтобы передать сообщение от отправителя, находящегося в одной сети, получателю, находящемуся в другой сети, нужно совершить некоторое количество транзитных передач между сетями, илихопов(отhop— прыжок), каждый раз выбирая подходящий маршрут. Таким образом, маршрут представляет собой последовательность маршрутизаторов, через которые проходит пакет.
ПРИМЕЧАНИЕ Необходимо отметить, что каждый из портов маршрутизатора находится в своей сети и может рассматриваться как узел этой сети.
Задачу выбора маршрута из нескольких возможных и продвижении пакета маршрутизаторы решают на основе таблиц маршрутизации, которые содержат информацию о том, куда в дальнейшем пакет направлять. Типичная таблица маршрутизации имеет следующий вид (таблица заполнена в соответствии со структурой сети изображенной на рис…. и справедлива для маршрутизатора М2).
Сетевой адрес узла назначения (Network Address)
Выходной номер порта текущего маршрутизатора
Сетевой адрес входного порта следующего маршрутизатора
ПРИМЕЧАНИЕ Некоторые сети могут присутствовать в таблице более чем в одной строке, это означает что к этим сетям существуют альтернативные маршруты. На практике маршрутизатор выберет путь с наилучшей на этот момент метрикой.
Каждая сеть известная маршрутизатору сопоставляется со своей строкой таблицы маршрутизации. В таблице, как правило, должна присутствовать строка, которая позволит маршутизатору продвигать пакеты адресованные сетям о которых маршрутизатор ничего не знает. Такая строка вместо адреса сети назначения отмечается как строка по умолчанию (Default). Пакеты направляются на какой либо ключевой маршрутизатор, который может быть знает, куда эти пакеты отправлять дальше.
Перечислим ключевые параметры, необходимые для работы маршрутизатора:
- адрес сети назначения (или что тоже самое сетевой адрес узла назначения),
- адрес входного порта следующего маршрутизатора,
- адрес порта, на который нужно направить пакет, этот адрес должен принадлежать одной из непосредственно присоединенных к маршрутизатору сетей,
- метрика — параметр характеризующий удаленность сети от маршрутизатора. В простейшем случае метрика будет равна количеству передач между сетями, или хопов. В более сложном случае метрика учитывает загруженность линии связи, скорость передачи, качество канала. Если метрика равна 0 это означает, что эта сеть непосредственно подключена к порту маршрутизатора.
- На порт маршрутизатора поступает кадр, внутри которого инкапсулирован пакет сетевого уровня. Маршрутизатор извлекает пакет из кадра и помещает его в буфер.
- Маршрутизатор читает заголовок пакета и проверяет время его существования. Прежде всего проверяется контрольная сумма, и если пакет пришел поврежденным, то он отбрасывается. Выполняется проверка, не превысило ли время, которое провел пакет в сети (время жизни пакета), допустимой величины. Если время жизни пакета превышает допустимый срок, то такой пакет считается «заблудившимся» и также отбрасывается (уничтожается).
- Если пакет должен быть отправлен дальше, маршрутизатор анализирует адрес сети-адресата, извлеченный из заголовка пакета. По номеру сети, извлеченному из заголовка пакета, находим в таблице маршрутизации строку, содержащую сетевой адрес следующего маршрутизатора, и номер порта, на который нужно передать данный пакет, чтобы он двигался в правильном направлении. Иначе, если соответствующей строки в таблице не найдено для маршрутизации пакета будет использоваться строка по умолчанию (Default). Если в таблице отсутствует запись о сети назначения пакета и к тому же нет записи о маршрутизаторе по умолчанию, то данный пакет отбрасывается.
- Определяется номер выходного порта маршрутизатора, на который нужно направить пакет. Далее пакет должен быть упакован в новый кадр для отправки через сеть, к которой подключен этот порт.
- Рассмотрим два возможных варианта. Первый – сеть назначения не подключена непосредственно к порту маршрутизатора, т.е. пакету чтобы достигнуть узла назначения нужно пройти еще хотя бы один маршрутизатор. В этом случае пакет должен быть отправлен на входной порт следующего маршрутизатора. Сетевой адрес этого порта будет извлечен из записи таблицы маршрутизации.
- Для пересылки пакета на этот порт необходимо упаковать его в кадр сетевой технологии для сети, которая соединяет два порта – выходной порт текущего маршрутизатора и входной порт следующего. Для того чтобы маршрутизатор мог создать такой кадр, необходимо знать локальный МАС-адрес следующего порта (нам известен его сетевой адрес). Для определения локального адреса по сетевому адресу используется протокол разрешения адреса (Address Resolution Protocol, ARP).
- Работа протокола ARP начинается с просмотра так называемой ARP-таблицы. Каждая строка таблицы устанавливает соответствие между сетевым адресом и МАС-адресом. В ARP-таблице содержатся записи не обо всех узлах сети, а только о тех, которые активно участвуют в сетевых операциях. Поскольку такой способ хранения информации называют кэшированием, ARP-таблицы иногда называют ARP-кэш. Если искомый адрес в ARP-таблице отсутствует протокол ARP формирует свой запрос (ARP-запрос), вкладывает его в кадр протокола канального уровня и рассылает запрос широковещательно.
- Все узлы локальной сети получают ARP-запрос и сравнивают указанный там сетевой адрес с собственным. В случае их совпадения узел формирует ARP-ответ, в котором указывает свой сетевой адрес и свой локальный адрес, а затем отправляет его уже направленно на порт его запросивший.
- Порт маршрутизатора создает кадр, упаковывает в него пакет. В поле адреса назначения заголовка кадра помещается локальный адрес входного порта следующего маршрутизатора. Готовый кадр отправляется в сеть и достигает следующего маршрутизатора. Следующий маршрутизатор повторяет эту же самую последовательность. Это будет повторяться до тех пор пока пакет не достигнет маршрутизатора к порту которого подключена сеть назначения.
- Когда пакет доходит до сети назначения реализуется второй вариант упаковки пакета в новый кадр (первый вариант был рассмотрен в п.5). При помощи протокола ARP находится МАС-адрес узла-адресата. Порт маршрутизатора создает кадр и пересылает в нем пакет через присоединенную сеть к узлу-адресату.