Маршрутизация в сетях TCP/IP. Сети класса D. Семейство протоколов ТСР/IР. Диапазон адресов. Диапазон значений, страница 6

Во-первых, не зря придумали маршрут по умолчанию. Когда какая-нибудь не очень сообразительная машина не может самостоятельно переслать пакет по затребованному пользователем адресу, она отсылает запрос умному компьютеру по умолчанию, как правило, это шлюз. А уж он разбирается, чего его заблудшая овца замыслила, и высылает вопрошающему ответ в виде сети, куда надо переслать пакет, чтобы он дошел до адресата, после чего эта машина вписывает указанную сеть к себе в таблицу маршрутов. Тогда вся проблема заключается в «прописывании» на рабочей станции адреса шлюза в качестве компьютера по умолчанию, сам шлюз, конечно, требует больше внимания. Он должен располагать информацией о всей сети, по крайней мере близлежащей. В конце концов самому шлюзу может быть предписано обращаться к еще более умному компьютеру по умолчанию, а тот, в свою очередь, может ссылаться не второй, на третий и т. д. компьютеры. Если представить себе статистику обращений по сети, то окажется, что большинство обращений – к рядомстоящим компьютерам, поэтому шлюз довольно низкого ранга разрешит большинство ситуаций, связанных с маршрутизацией. Кроме того, существуют различные протоколы маршрутизации, аналогичные RIP (routing information protocol – протокол информации маршрутизации) в «новелловских» сетях.

Во-вторых, совсем не напрасно в сетях с несколькими шлюзами существует такое понятие, как перенаправление маршрутов. Допустим, в некоторой сети есть несколько шлюзов между несколькими подсетями, и некоторый узел решил отправить пакет за пределы своей подсети. Допустим, сделал он это не лучшим образом, и отправил пакет к шлюзу на неоптимальном маршруте. Шлюз воспринял этот пакет, подумал и отправил сообщение типа: «В следующий раз для сети ХХХ используйте шлюз YYY, а не меня». Это приводит к замене в таблице маршрутов записи для данной сети. Откуда шлюз берет информацию об оптимальности маршрутов? Например, подсчитывает число мостов до указанной сети, или замеряет время от отправки запроса в ту сеть, до прихода ответа, но самый распространенный способ – число мостов. По любому, шлюз – это самое «узкое» место в сети, на пересылку пакета требуется время, даже если он не делает никаких запросов при этом, а сразу занимается отправкой пакета. Он все равно тратит время на извлечение пакета из линии связи, передачу его на уровень модуля IP, процессорную обработку информации пакета, обратную передачу в другой сетевой адаптер и отправку его по линиям связи. Чем больше шлюзов – тем хуже. Даже если один раз, даже если десять раз по линии с пятью шлюзами пакет прошел быстрее, чем по линии с четырьмя, среднестатистически 4 шлюза все же лучше 5. Не спорю, многое зависит и от линий связи, но все же… Шлюз с высокой вероятностью может быть занят другими делами или вообще отключен, так ведь? Где матожидание времени прохождения будет меньше? Кстати, а что делать если маршрут вдруг стал неоптимальным? Тогда тот, другой шлюз сообщит бедному модулю IP о смене маршрута. А если вдруг тот шлюз пропал? Тогда модуль поймет это либо по долгому отсутствию ответа, либо по отсутствию соответствия адресов в ARP-таблице. Например так.