Насколько правильно мы представляем себе маршрутизацию сетевых пакетов IP?
DestIP - IP адрес назначения, куда нужно передать данные. SourIP - IP адрес хоста, которому надо передать пакет на DestIP. SourMASK - маска сетевого адаптера SourIP, см. mask SourGW - IP адрес шлюза по умолчанию для передающего хоста SourIP. Route1 - маршрут 1 Roure2 - маршрут 2 ... RouteN- маршрут N
Здесь Route1..N - дополнительные маршруты, которые могут быть, а могут и не быть. Каждый маршрут характеризует диапазон IP-адресов, и имеет следующие параметры:
Route.IP- один IP из диапазона адресов, ограниченных Route.MASK. Обычно это адрес сети, то есть часть адреса, на который наложена Route.MASK по операции логическое "И". Route.MASK- маска для вычисления диапазона адресов, см. mask Route.Metric- приоритет маршрута, см. metric Route.GW- адрес шлюза (роутера) для маршрута
Алгоритм передачи хостом SourIP пакета на адрес DestIP:
1. Хост вычисляет результат выражения: (DestIP & SourMASK) == (SourIP & SourMASK)
2. Если результат TRUE, то это означает, что оба хоста находятся в одной подсети. В этом случае компьютер SourIP применяет протокол ARP для выяснения MAC-адреса компьютера с DestIP, и затем передает пакет на указанный MAC-адрес. Пакет попадает по назначению - на компьютер DestIP.
3. Результат FALSE означает, что пакет нужно направить на маршрутизатор. Адрес нужного маршрутизатора хост выясняет, начиная просматривать таблицу маршрутизации, т. е. маршруты Route1..N. Порядок выборки маршрутов из таблицы определятся метрикой маршрута.
4. При просмотре проверяется условие для каждого маршрута: (DestIP & Route.MASK) == (Route.IP & Route.MASK)
Как только условие для какого-нибудь маршрута станет TRUE, то это означает, что пакет нужно пересылать по адресу Route.GW. Для получения MAC-адреса маршрутизатора применяется все тот же протокол ARP.
5. При просмотре таблицы маршрутов не найдено ни одного подходящего маршрута (такое может быть, например, если таблица маршрутов пустая). В этом случае пакет посылается на шлюз по умолчанию, то есть на адрес маршрутизатора SourGW.
Маршрутизаторы при передаче пакета действуют по точно такому же сценарию. При передаче пакета от хоста SourIP и далее по цепочке маршрутизаторов до хоста DestIP в пакете остаются неизменными SourIP и DestIP, меняются только SourMAC и DestMAC. |
Комментарии
>Если результат TRUE, то это означает, что >оба хоста находятся в одной подсети. В >этом случае компьютер SourIP применяет >протокол ARP для выяснения MAC-адреса >компьютера с DestIP, и затем передает >пакет на указанный MAC-адрес.
Подскажите, почему хост SourIP отправляет пакет по МАС адресу, разве IP адреса DedtIP недостаточно для безошибочной адресации?
microsin: потому что так придумали систему передачи данных в сетях Ethernet - самая популярная на сегодняшний день сетевая модель жестко разделена на уровни. Причем для работы TCP/IP обязательно наличия как MAC адресации, так и IP адресации - одно другое не исключает, обе адресации работают одновременно и выполняют раздельные функции. Подробнее см. статьи в Википедии.
RSS лента комментариев этой записи