Маршрутизация - одна из основных функций компьютерной сети, определяющая эффективность передачи данных. Проблема маршрутизации в компьютерных сетях аналогична проблеме организации автомобильного движения по улицам города и состоит в выборе в каждом узле сети направления передачи данных (выходного канала) из множества возможных направлений в соответствии с адресом назначения и с учётом требований, предъявляемых к качеству передачи. Очевидно, что наиболее просто маршрутизация реализуется в узлах с двумя каналами: данные, поступившие по одному каналу, автоматически направляются в другой канал узла.
При наличии нескольких выходных каналов, по которым могут быть переданы данные, маршрутизация реализуется на основе таблицы маршрутизации,вид которой зависит от используемого в сети алгоритма маршрутизации. В простейшем случае каждому адресу назначения ставится в соответствие адрес следующего соседнего узла, к которому должен быть направлен пакет с указанным в заголовке адресом назначения. При наличии альтернативных маршрутов, например в многосвязных сетях, дополнительно могут быть указаны адреса других соседних узлов, через которые проходят альтернативные маршруты. При этом для каждого маршрута задаётся значение некоторой метрики, на основе которой выбирается тот или иной маршрут. В качестве метрики может использоваться расстояние до узла назначения, измеряемое, например, в хопах, пропускная способность соответствующего выходного канала связи и т.д.
На рис. 1.37,а) показан пример простейшей таблицы маршрутизации узла 4 сети с топологией, представленной на рис. 1.37,б). В таблице для каждого адреса назначения указывается направление передачи данных по основному пути и альтернативному пути в случае невозможности передачи по основному пути, например в случае отказа основного пути.
На рис. 1.38 показана концептуальная модель функционирования маршрутизатора. По входным каналам связи (ВхКС) пакеты с данными поступают во входной буфер (ВхБ) маршрутизатора. Центральный процессор (ЦП) последовательно анализирует заголовки пакетов и в соответствии с таблицей маршрутизации (ТМ) определяет направление передачи пакета и соответствующий выходной канал связи (ВыхКС). Затем пакет направляется в выходной буфер (ВыхБ) этого канала, где он ожидает освобождения канала, если последний занят передачей предыдущих пакетов. Пакеты, находящиеся в выходном буфере, образуют очередь перед каналом связи. Для дифференцированного обслуживания пакетов разных типов, имеющих разные требования к качеству обслуживания, выбор очередного пакета для передачи по каналу связи может осуществляться в соответствии с некоторой, например приоритетной, дисциплиной обслуживания.
Отметим, что конкретные реализации реальных маршрутизаторов могут существенно различаться. Например, буферная память для хранения пакетов может быть разделена на входную и выходную, как это показано на рис. 1.38, либо выполнена как единая память, где хранятся все пакеты.