Таблица маршрутизации
Теперь сосредоточим наше внимание на том, как IP выбирает gateway при доставке дэйтаграм к определенной сети.
Как мы видели раньше erdos, когда передавал дэйтаграмы для quark, проверил место назначения и нашел, что его нет в местной сети. Поэтому он посылает ее gateway, sophus, который теперь сталкивается с той же самой задачей. Sophus определяет, что quark не находится в сетях, с которыми он непосредственно связан, так что он передает эту дэйтаграм другому gateway, чтобы он перенаправил ее дальше. Правильный выбор был бы niels (gateway Отдела Физики). Но sophus нуждается в некоторой информации чтобы определить подходящий gateway.
Для этого используется таблица IP маршрутизации, которая определяет какие сети присоединены с помощью каких gateways. Обязательно должен быть указан маршрут по умолчанию (the default route), по которому будут направляться все пакеты с адресами в неизвестных сетях. Этот gateway связан с сетью 0.0.0.0.. На sophus, эта таблица могла бы напоминать эту:
----------------------------------------- +------------+-------------+------------+ | Сеть | Gateway | Интерфейс | +------------+-------------+------------+ +------------+-------------+------------+ | 149.76.1.0 | - | Fddi0 | | 149.76.2.0 | 149.76.1.2 | fddi0 | | 149.76.3.0 | 149.76.1.3 | fddi0 | | 149.76.4.0 | - | Eth0 | | 149.76.5.0 | 149.76.1.5 | fddi0 | |... | ... | ... | | 0.0.0.0 | 149.76.1.2 | fddi0 | +------------+-------------+------------+ +------------+-------------+------------+
Маршруты к сетям, с которыми sophus связан непосредственно обозначаются "-" в столбце gateway.
Таблицы маршрутизации могут быть построены различными средствами. Для маленькой сети, наиболее эффективно строить их вручную и передавать их IP, используя маршрутизирующую команду во время загрузки системы. (см. главу 6.). Для больших сетей, они строятся и регулируются во время работы маршрутизирующих демонов; они запускаются на центральном хосте и обмениваются информацией с другими компьютерами для вычисления "оптимального" маршрута между членами сетей.
В зависимости от размера сети используются различные протоколы маршрутизации. Для маршрутизации в автономной системе (типа университетского городка), лучше подходит RIP, Routing Information Protocol (протокол маршрутной информации), который предложен в BSD демоне. Для маршрутизации между автономными системами используются внешние протоколы маршрутизации типа EGP (Внешний Gateway Протокол), или BGP ( Пограничный Gateway Протокол); они ( а также RIP) были предложены в gated демоне( University of Cornell's).