Перейти к содержимому

Как маршрутизатор понимает кому необходимо передавать данные

  • автор:

Как маршрутизатор узнает, куда направить пакет

Если к маршрутизатору подключено несколько компьютеров с локальными адресами (192.168.0. #), И каждый компьютер открывает веб-браузер и запрашивает страницу по HTTP, при отправке этих пакетов TCP:80 маршрутизатор переключает локальный адрес с помощью статический IP-адрес маршрутизатора (т.е. IP-адрес, предоставленный провайдером), поэтому сервер может ответить на соответствующий адрес.

Но как маршрутизатор узнает, на какой компьютер пересылать ответ HTTP, поскольку заголовок TCP не содержит локальный IP-адрес (не так ли?), И все компьютеры используют порт 80?

Это как-то связано с MAC-адресами?

Как именно это работает?

2 ответа 2

Большинство домашних маршрутизаторов используют специальный случай NAT, называемый PAT.

Вы также увидите, что это называется NAPT или IP Masquerading. Все три последних термина означают одно и то же в общем использовании. (Сокращения — Трансляция сетевых адресов / Трансляция адресов портов / Трансляция сетевых адресов)

Когда пакет выходит с вашего внутреннего компьютера, адрес источника переписывается, как вы знаете. Порт источника также изменяется, обычно на большое число, и маршрутизатор хранит таблицу трансляции адресов.

Например, предположим, у вас есть клиентский компьютер, который идет на www.google.com. Ваш компьютер (например, 192.168.1.100) ищет этот адрес и устанавливает TCP-соединение с 72.14.204.147 на порту 80 со своего внутреннего IP-адреса, используя случайный исходный порт.

К вашему компьютеру соединение выглядит так:

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

* В качестве примера я использовал адрес, начинающийся с 10, но он не является общедоступным. Таблица также несколько упрощена.

Для Google соединение выглядит так:

Google отправит ответ на 10.6.23.5 через порт 59273. Затем ваш маршрутизатор ищет эту информацию в таблице и пересылает пакет на 192.168.1.100:37641.

Маршрутизаторы между локальной сетью и остальной частью Интернета используют технику, называемую NAT.

Просто отрывок из иллюстрированного тома TCP/IP 1 о NAPT со словами о недостатках его простого кузена, Basic NAT:

Базовый NAT выполняет перезапись только IP-адресов. По сути, частный адрес переписывается как публичный, часто из пула или диапазона публичных адресов, предоставляемых провайдером. Этот тип NAT не является самым популярным, потому что он не помогает резко сократить потребность в IP-адресах — количество глобально маршрутизируемых адресов должно равняться или превышать количество внутренних хостов, которые хотят получить доступ к Интернету одновременно. Гораздо более популярный подход, NAPT предполагает использование идентификаторов транспортного уровня (т. Е. Портов для TCP и UDP, идентификаторов запросов для ICMP), чтобы различать, какой хост на частной стороне NAT связан с конкретным пакетом (см. Рисунок 7- 4). Это позволяет большому количеству внутренних хостов (т. Е. Нескольким тысячам) одновременно получать доступ к Интернету, используя ограниченное количество публичных адресов, часто только один. Мы обычно используем термин NAT для включения как традиционных NAT, так и NAPT, если различие не является важным в конкретном контексте.

Алгоритм работы маршрутизатора.

Вернемся к терминологии сетевых технологий и рассмотрим алгоритм работы маршрутизатора.

Маршрутизатор— это устройство, которое собирает информацию о топологии межсетевых соединений и на ее основании пересылает пакеты сетевого уровня в сеть назначения. Чтобы передать сообщение от отправителя, находящегося в одной сети, получателю, находящемуся в другой сети, нужно совершить некоторое количество транзитных передач между сетями, илихопов(отhop— прыжок), каждый раз выбирая подходящий маршрут. Таким образом, маршрут представляет собой последовательность маршрутизаторов, через которые проходит пакет.

ПРИМЕЧАНИЕ Необходимо отметить, что каждый из портов маршрутизатора находится в своей сети и может рассматриваться как узел этой сети.

Задачу выбора маршрута из нескольких возможных и продвижении пакета маршрутизаторы решают на основе таблиц маршрутизации, которые содержат информацию о том, куда в дальнейшем пакет направлять. Типичная таблица маршрутизации имеет следующий вид (таблица заполнена в соответствии со структурой сети изображенной на рис…. и справедлива для маршрутизатора М2).

Сетевой адрес узла назначения (Network Address)

Выходной номер порта текущего маршрутизатора

Сетевой адрес входного порта следующего маршрутизатора

ПРИМЕЧАНИЕ Некоторые сети могут присутствовать в таблице более чем в одной строке, это означает что к этим сетям существуют альтернативные маршруты. На практике маршрутизатор выберет путь с наилучшей на этот момент метрикой.

Каждая сеть известная маршрутизатору сопоставляется со своей строкой таблицы маршрутизации. В таблице, как правило, должна присутствовать строка, которая позволит маршутизатору продвигать пакеты адресованные сетям о которых маршрутизатор ничего не знает. Такая строка вместо адреса сети назначения отмечается как строка по умолчанию (Default). Пакеты направляются на какой либо ключевой маршрутизатор, который может быть знает, куда эти пакеты отправлять дальше.

Перечислим ключевые параметры, необходимые для работы маршрутизатора:

адрес сети назначения (или что тоже самое сетевой адрес узла назначения),

адрес входного порта следующего маршрутизатора,

адрес порта, на который нужно направить пакет, этот адрес должен принадлежать одной из непосредственно присоединенных к маршрутизатору сетей,

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

Разберем последовательность шагов, которую выполняет маршрутизатор при продвижении пакета:

На порт маршрутизатора поступает кадр, внутри которого инкапсулирован пакет сетевого уровня. Маршрутизатор извлекает пакет из кадра и помещает его в буфер.

Маршрутизатор читает заголовок пакета и проверяет время его существования. Прежде всего проверяется контрольная сумма, и если пакет пришел поврежденным, то он отбрасывается. Выполняется проверка, не превысило ли время, которое провел пакет в сети (время жизни пакета), допустимой величины. Если время жизни пакета превышает допустимый срок, то такой пакет считается «заблудившимся» и также отбрасывается (уничтожается).

Если пакет должен быть отправлен дальше, маршрутизатор анализирует адрес сети-адресата, извлеченный из заголовка пакета. По номеру сети, извлеченному из заголовка пакета, находим в таблице маршрутизации строку, содержащую сетевой адрес следующего маршрутизатора, и номер порта, на который нужно передать данный пакет, чтобы он двигался в правильном направлении. Иначе, если соответствующей строки в таблице не найдено для маршрутизации пакета будет использоваться строка по умолчанию (Default). Если в таблице отсутствует запись о сети назначения пакета и к тому же нет записи о маршрутизаторе по умолчанию, то данный пакет отбрасывается.

Определяется номер выходного порта маршрутизатора, на который нужно направить пакет. Далее пакет должен быть упакован в новый кадр для отправки через сеть, к которой подключен этот порт.

Рассмотрим два возможных варианта. Первый – сеть назначения не подключена непосредственно к порту маршрутизатора, т.е. пакету чтобы достигнуть узла назначения нужно пройти еще хотя бы один маршрутизатор. В этом случае пакет должен быть отправлен на входной порт следующего маршрутизатора. Сетевой адрес этого порта будет извлечен из записи таблицы маршрутизации.

Для пересылки пакета на этот порт необходимо упаковать его в кадр сетевой технологии для сети, которая соединяет два порта – выходной порт текущего маршрутизатора и входной порт следующего. Для того чтобы маршрутизатор мог создать такой кадр, необходимо знать локальный МАС-адрес следующего порта (нам известен его сетевой адрес). Для определения локального адреса по сетевому адресу используется протокол разрешения адреса (Address Resolution Protocol, ARP).

Работа протокола ARP начинается с просмотра так называемой ARP-таблицы. Каждая строка таблицы устанавливает соответствие между сетевым адресом и МАС-адресом. В ARP-таблице содержатся записи не обо всех узлах сети, а только о тех, которые активно участвуют в сетевых операциях. Поскольку такой способ хранения информации называют кэшированием, ARP-таблицы иногда называют ARP-кэш. Если искомый адрес в ARP-таблице отсутствует протокол ARP формирует свой запрос (ARP-запрос), вкладывает его в кадр протокола канального уровня и рассылает запрос широковещательно.

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

Порт маршрутизатора создает кадр, упаковывает в него пакет. В поле адреса назначения заголовка кадра помещается локальный адрес входного порта следующего маршрутизатора. Готовый кадр отправляется в сеть и достигает следующего маршрутизатора. Следующий маршрутизатор повторяет эту же самую последовательность. Это будет повторяться до тех пор пока пакет не достигнет маршрутизатора к порту которого подключена сеть назначения.

Когда пакет доходит до сети назначения реализуется второй вариант упаковки пакета в новый кадр (первый вариант был рассмотрен в п.5). При помощи протокола ARP находится МАС-адрес узла-адресата. Порт маршрутизатора создает кадр и пересылает в нем пакет через присоединенную сеть к узлу-адресату.

Основные принципы работы сетевой маршрутизации

Основные принципы работы сетевой маршрутизации

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

Для маршрутизации пакета маршрутизатор должен владеть следующей информацией:

  • Адрес назначения
  • Соседний маршрутизатор, от которого он может узнать об удаленных сетях
  • Доступные пути ко всем удаленным сетям
  • Наилучший путь к каждой удаленной сети
  • Методы обслуживания и проверки информации о маршрутизации

Маршрутизатор узнает об удаленных сетях от соседних маршрутизаторов или от сетевого администратора. Затем маршрутизатор строит таблицу маршрутизации, которая описывает, как найти удаленные сети.

Если сеть подключена непосредственно к маршрутизатору, он уже знает, как направить пакет в эту сеть. Если же сеть не подключена напрямую, маршрутизатор должен узнать (изучить) пути доступа к удаленной сети с помощью статической маршрутизации (ввод администратором вручную местоположения всех сетей в таблицу маршрутизации) или с помощью динамической маршрутизации.

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

Что такое маршрутизатор (шлюз, gateway)?

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

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

Процесс IP-маршрутизации

IP-маршрутизация — простой процесс, который одинаков в сетях любого размера. Например, на рисунке показан процесс пошагового взаимодействия хоста А с хостом В в другой сети. В примере пользователь хоста А запрашивает по ping IP-адрес хоста В. Дальнейшие операции не так просты, поэтому рассмотрим их подробнее:

  • В командной строке пользователь вводит ping 172.16.20.2. На хосте А генерируется пакет с помощью протоколов сетевого уровня IP и ICMP.

  • IP обращается к протоколу ARP для выяснения сети назначения для пакета, просматривая IP-адрес и маску подсети хоста А. Это запрос к удаленному хосту, т.е. пакет не предназначен хосту локальной сети, поэтому пакет должен быть направлен маршрутизатору для перенаправления в нужную удаленную сеть.
  • Чтобы хост А смог послать пакет маршрутизатору, хост должен знать аппаратный адрес интерфейса маршрутизатора, подключенный к локальной сети. Сетевой уровень передает пакет и аппаратный адрес назначения канальному уровню для деления на кадры и пересылки локальному хосту. Для получения аппаратного адреса хост ищет местоположение точки назначения в собственной памяти, называемой кэшем ARP.
  • Если IP-адрес еще не был доступен и не присутствует в кэше ARP, хост посылает широковещательную рассылку ARP для поиска аппаратного адреса по IP-адресу 172.16.10.1. Именно поэтому первый запрос Ping обычно заканчивается тайм-аутом, но четыре остальные запроса будут успешны. После кэширования адреса тайм-аута обычно не возникает.
  • Маршрутизатор отвечает и сообщает аппаратный адрес интерфейса Ethernet, подключенного к локальной сети. Теперь хост имеет всю информацию для пересылки пакета маршрутизатору по локальной сети. Сетевой уровень спускает пакет вниз для генерации эхо-запроса ICMP (Ping) на канальном уровне, дополняя пакет аппаратным адресом, по которому хост должен послать пакет. Пакет имеет IP-адреса источника и назначения вместе с указанием на тип пакета (ICMP) в поле протокола сетевого уровня.
  • Канальный уровень формирует кадр, в котором инкапсулируется пакет вместе с управляющей информацией, необходимой для пересылки по локальной сети. К такой информации относятся аппаратные адреса источника и назначения, а также значение в поле типа, установленное протоколом сетевого уровня (это будет поле типа, поскольку IP по умолчанию пользуется кадрами Ethernet_II). Рисунок 3 показывает кадр, генерируемый на канальном уровне и пересылаемый по локальному носителю. На рисунке 3 показана вся информация, необходимая для взаимодействия с маршрутизатором: аппаратные адреса источника и назначения, IP-адреса источника и назначения, данные, а также контрольная сумма CRC кадра, находящаяся в поле FCS (Frame Check Sequence).
  • Канальный уровень хоста А передает кадр физическому уровню. Там выполняется кодирование нулей и единиц в цифровой сигнал с последующей передачей этого сигнала по локальной физической сети.

  • Сигнал достигает интерфейса Ethernet 0 маршрутизатора, который синхронизируется по преамбуле цифрового сигнала для извлечения кадра. Интерфейс маршрутизатора после построения кадра проверяет CRC, а в конце приема кадра сравнивает полученное значение с содержимым поля FCS. Кроме того, он проверяет процесс передачи на отсутствие фрагментации и конфликтов носителя.
  • Проверяется аппаратный адрес назначения. Поскольку он совпадает с адресом маршрутизатора, анализируется поле типа кадра для определения дальнейших действий с этим пакетом данных. В поле типа указан протокол IP, поэтому маршрутизатор передает пакет процессу протокола IP, исполняемому маршрутизатором. Кадр удаляется. Исходный пакет (сгенерированный хостом А) помещается в буфер маршрутизатора.
  • Протокол IP смотрит на IP-адрес назначения в пакете, чтобы определить, не направлен ли пакет самому маршрутизатору. Поскольку IP-адрес назначения равен 172.16.20.2, маршрутизатор определяет по своей таблице маршрутизации, что сеть 172.16.20.0 непосредственно подключена к интерфейсу Ethernet 1.
  • Маршрутизатор передает пакет из буфера в интерфейс Ethernet 1. Маршрутизатору необходимо сформировать кадр для пересылки пакета хосту назначения. Сначала маршрутизатор проверяет свой кэш ARP, чтобы определить, был ли уже разрешен аппаратный адрес во время предыдущих взаимодействий с данной сетью. Если адреса нет в кэше ARP, маршрутизатор посылает широковещательный запрос ARP в интерфейс Ethernet 1 для поиска аппаратного адреса для IP-адреса 172.16.20.2.
  • Хост В откликается аппаратным адресом своего сетевого адаптера на запрос ARP. Интерфейс Ethernet 1 маршрутизатора теперь имеет все необходимое для пересылки пакета в точку окончательного приема. На рисунке показывает кадр, сгенерированный маршрутизатором и переданный по локальной физической сети.

Кадр, сгенерированный интерфейсом Ethernet 1 маршрутизатора, имеет аппаратный адрес источника от интерфейса Ethernet 1 и аппаратный адрес назначения для сетевого адаптера хоста В. Важно отметить, что, несмотря на изменения аппаратных адресов источника и назначения, в каждом передавшем пакет интерфейсе маршрутизатора, IP-адреса источника и назначения никогда не изменяются. Пакет никоим образом не модифицируется, но меняются кадры.

  • Хост В принимает кадр и проверяет CRC. Если проверка будет успешной, кадр удаляется, а пакет передается протоколу IP. Он анализирует IP-адрес назначения. Поскольку IP-адрес назначения совпадает с установленным в хосте В адресом, протокол IP исследует поле протокола для определения цели пакета.
  • В нашем пакете содержится эхо-запрос ICMP, поэтому хост В генерирует новый эхо-ответ ICMP с IP-адресом источника, равным адресу хоста В, и IP-адресом назначения, равным адресу хоста А. Процесс запускается заново, но в противоположном направлении. Однако аппаратные адреса всех устройств по пути следования пакета уже известны, поэтому все устройства смогут получить аппаратные адреса интерфейсов из собственных кэшей ARP.

В крупных сетях процесс происходит аналогично, но пакету придется пройти больше участков по пути к хосту назначения.

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

В стеке TCP/IP маршрутизаторы и конечные узлы принимают решения о том, кому передавать пакет для его успешной доставки узлу назначения, на основании так называемых таблиц маршрутизации (routing tables).

Таблица представляет собой типичный пример таблицы маршрутов, использующей IP-адреса сетей, для сети, представленной на рисунке.

Таблица маршрутизации для Router 2

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

Как нетрудно видеть, в таблице определено несколько маршрутов с разными параметрами. Читать каждую такую запись в таблице маршрутизации нужно следующим образом:

Чтобы доставить пакет в сеть с адресом из поля Сетевой адрес и маской из поля Маска сети, нужно с интерфейса с IP-адресом из поля Интерфейс послать пакет по IP-адресу из поля Адрес шлюза, а «стоимость» такой доставки будет равна числу из поля Метрика.

В этой таблице в столбце «Адрес сети назначения» указываются адреса всех сетей, которым данный маршрутизатор может передавать пакеты. В стеке TCP/IP принят так называемый одношаговый подход к оптимизации маршрута продвижения пакета (next-hop routing) – каждый маршрутизатор и конечный узел принимает участие в выборе только одного шага передачи пакета. Поэтому в каждой строке таблицы маршрутизации указывается не весь маршрут в виде последовательности IP-адресов маршрутизаторов, через которые должен пройти пакет, а только один IP-адрес — адрес следующего маршрутизатора, которому нужно передать пакет. Вместе с пакетом следующему маршрутизатору передается ответственность за выбор следующего шага маршрутизации. Одношаговый подход к маршрутизации означает распределенное решение задачи выбора маршрута. Это снимает ограничение на максимальное количество транзитных маршрутизаторов на пути пакета.

Для отправки пакета следующему маршрутизатору требуется знание его локального адреса, но в стеке TCP/IP в таблицах маршрутизации принято использование только IP-адресов для сохранения их универсального формата, не зависящего от типа сетей, входящих в интерсеть. Для нахождения локального адреса по известному IP-адресу необходимо воспользоваться протоколом ARP.

Одношаговая маршрутизация обладает еще одним преимуществом — она позволяет сократить объем таблиц маршрутизации в конечных узлах и маршрутизаторах за счет использования в качестве номера сети назначения так называемого маршрута по умолчанию – default (0.0.0.0), который обычно занимает в таблице маршрутизации последнюю строку. Если в таблице маршрутизации есть такая запись, то все пакеты с номерами сетей, которые отсутствуют в таблице маршрутизации, передаются маршрутизатору, указанному в строке default. Поэтому маршрутизаторы часто хранят в своих таблицах ограниченную информацию о сетях интерсети, пересылая пакеты для остальных сетей в порт и маршрутизатор, используемые по умолчанию. Подразумевается, что маршрутизатор, используемый по умолчанию, передаст пакет на магистральную сеть, а маршрутизаторы, подключенные к магистрали, имеют полную информацию о составе интерсети.

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

Специфичный для узла маршрут содержит вместо номера сети полный IP-адрес, то есть адрес, имеющий ненулевую информацию не только в поле номера сети, но и в поле номера узла. Предполагается, что для такого конечного узла маршрут должен выбираться не так, как для всех остальных узлов сети, к которой он относится. В случае, когда в таблице есть разные записи о продвижении пакетов для всей сети N и ее отдельного узла, имеющего адрес N,D, при поступлении пакета, адресованного узлу N,D, маршрутизатор отдаст предпочтение записи для N,D.

Записи в таблице маршрутизации, относящиеся к сетям, непосредственно подключенным к маршрутизатору, в поле «Метрика» содержат нули («подключено»).

Алгоритмы маршрутизации

Основные требования к алгоритмам маршрутизации:

  • точность;
  • простота;
  • надёжность;
  • стабильность;
  • справедливость;
  • оптимальность.

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

  • алгоритмы простой маршрутизации;
  • алгоритмы фиксированной маршрутизации;
  • алгоритмы адаптивной маршрутизации.

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

Простая маршрутизация

Это способ маршрутизации не изменяющийся при изменении топологии и состоянии сети передачи данных (СПД).

Простая маршрутизация обеспечивается различными алгоритмами, типичными из которых являются следующие:

  • Случайная маршрутизация – это передача сообщения из узла в любом случайно выбранном направлении, за исключением направлений по которым сообщение поступило узел.
  • Лавинная маршрутизация – это передача сообщения из узла во всех направлениях, кроме направления по которому сообщение поступило в узел. Такая маршрутизация гарантирует малое время доставки пакета, засчет ухудшения пропускной способности.
  • Маршрутизация по предыдущему опыту – каждый пакет имеет счетчик числа пройденных узлов, в каждом узле связи анализируется счетчик и запоминается тот маршрут, который соответствует минимальному значению счетчика. Такой алгоритм позволяет приспосабливаться к изменению топологии сети, но процесс адаптации протекает медленно и неэффективно.

В целом, простая маршрутизация не обеспечивает направленную передачу пакета и имеет низкую эффективности. Основным ее достоинством является обеспечение устойчивой работы сети при выходе из строя различных частей сети.

Фиксированная маршрутизация

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

  • Однопутевая фиксированная маршрутизация – это когда между двумя абонентами устанавливается единственный путь. Сеть с такой маршрутизацией неустойчива к отказам и перегрузкам.
  • Многопутевая фиксированная маршрутизация – может быть установлено несколько возможных путей и вводится правило выбора пути. Эффективность такой маршрутизации падает при увеличении нагрузки. При отказе какой-либо линии связи необходимо менять таблицу маршрутизации, для этого в каждом узле связи храниться несколько таблиц.

Адаптивная маршрутизация

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

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

  • Локальная адаптивная маршрутизация – каждый узел содержит информацию о состоянии линии связи, длины очереди и таблицу маршрутизации.
  • Глобальная адаптивная маршрутизация – основана на использовании информации получаемой от соседних узлов. Для этого каждый узел содержит таблицу маршрутизации, в которой указано время прохождения сообщений. На основе информации, получаемой из соседних узлов, значение таблицы пересчитывается с учетом длины очереди в самом узле.
  • Централизованная адаптивная маршрутизация – существует некоторый центральный узел, который занимается сбором информации о состоянии сети. Этот центр формирует управляющие пакеты, содержащие таблицы маршрутизации и рассылает их в узлы связи.
  • Гибридная адаптивная маршрутизация – основана на использовании таблицы периодически рассылаемой центром и на анализе длины очереди с самом узле.

Показатели алгоритмов (метрики)

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

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

  • Длина маршрута.
  • Надежность.
  • Задержка.
  • Ширина полосы пропускания.

Длина маршрута

Длина маршрута является наиболее общим показателем маршрутизации. Некоторые протоколы маршрутизации позволяют администраторам сети назначать произвольные цены на каждый канал сети. В этом случае длиной тракта является сумма расходов, связанных с каждым каналом, который был траверсирован. Другие протоколы маршрутизации определяют «количество пересылок» (количество хопов), т. е. показатель, характеризующий число проходов, которые пакет должен совершить на пути от источника до пункта назначения через элементы объединения сетей (такие как маршрутизаторы).

Надежность

Надежность, в контексте алгоритмов маршрутизации, относится к надежности каждого канала сети (обычно описываемой в терминах соотношения бит/ошибка). Некоторые каналы сети могут отказывать чаще, чем другие. Отказы одних каналов сети могут быть устранены легче или быстрее, чем отказы других каналов. При назначении оценок надежности могут быть приняты в расчет любые факторы надежности. Оценки надежности обычно назначаются каналам сети администраторами. Как правило, это произвольные цифровые величины.

Задержка

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

Полоса пропускания

Полоса пропускания относится к имеющейся мощности трафика какого-либо канала. При прочих равных показателях, канал Ethernet 10 Mbps предпочтителен любой арендованной линии с полосой пропускания 64 Кбайт/с. Хотя полоса пропускания является оценкой максимально достижимой пропускной способности канала, маршруты, проходящие через каналы с большей полосой пропускания, не обязательно будут лучше маршрутов, проходящих через менее быстродействующие каналы.

Как роутер определяет путь до ip-адреса назначения?

Не пойму, как роутер понимает через какие еще маршрутизаторы нужно пройти пакету, чтобы добраться до требуемого IP-адреса? Т.е., например, отправляется запрос на открытие html-страницы с домашнего компьютера (через домашний роутер) в Волгограде на сайт, хостинг которого находится в Мексике. И как этот домашний роутер поймет, через какие из тясяч промежуточных роутеров нужно пропустить пакет, чтобы добраться до Мексики?

В маршрутизации есть понятие «шлюз по умолчанию» (default gateway). Фактически, наличие его означает следующее: «если не знаешь маршрута к адресу назначения, отправь его на шлюз по умолчанию».

Кроме маршрута по умолчанию роутер может знать и про конкретные подсети. Например, домашний роутер обычно знает только свою внутреннюю подсеть, к которой подключены устройства пользователя. Всё остальное он «кидает» на шлюз провайдера. Домашний роутер может также знать про внутреннюю сеть провайдера, но обычно на этом его «знания» заканчиваются.

А вот роутеры провайдеров «знают» гораздо больше. Если не вникать во внутреннюю маршрутизацию сети провайдера, то можно упрощённо сказать, что роутер провайдера знает про все внутренние подсети провайдера, а также про подсети других провайдеров, к которым у него есть прямые подключения (так называемый «пиринг»). Как ни странно, у большинства провайдеров тоже есть шлюз по умолчанию, который ведёт к провайдеру более высокого уровня и масштаба (так называемый «аплинк», uplink).

Но! На самой вершине сети находятся провайдеры из группы Tier-1. Их роутеры не имеют шлюза по умолчанию. Они «знают» где находится любой IP-адрес. Провайдеры Tier-1 и обеспечивают связность сети, т.е. позволяют соединиться между собой любым двум «белым» IP-адресам. Естественно, что оборудование этих провайдеров не идёт ни в какое сравнение с обычными домашними «железочками».

Следует добавить, что если мы знаем где находится адрес назначения, т.е. адрес роутера, за которым он находится, это не означает, что этот целевой роутер единственный. Фактически, с адресом роутера связывается подсеть, т.е. непрерывная группа адресов (или несколько групп), которые обслуживает этот роутер (так называемый «префикс»). За этим роутером может стоять группа других, каждый из которых обслуживает только часть этих адресов. Например, провайдер может ставить по маршрутизатору на район и иметь один общегородской, объединяющий районные подсети. Такая структура позволяет агрегировать адреса, уменьшая число префиксов на уровне аплинков.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *