Функциональная схема маршрутизатора

Основная функция маршрутизатора — чтение заголовков пакетов сетевых протоколов, принимаемых и буферизуемых по каждому порту (например, IPX, IP, AppleTalk или DECnet) и принятие решения о дальнейшем маршруте следования пакета по его сетевому адресу, включающему, как правило, номера сети и узла.

Функции маршрутизатора могут быть разбиты на 3 группы в соответствии с уровнями модели OSI (рис. 9.14).

Рис. 9.14 Функциональная модель маршрутизатора

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

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

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

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

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

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

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

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

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

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

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

 

Классификация маршрутизаторов по областям применения

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

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

Для решения этой задачи магистральные маршрутизаторы оснащаются высокоскоростными интерфейсами, такими как ATM 155/622 Мбит/с, Gigabit Ethernet и 10G Ethernet, а также интерфейсами SONET/SDH со скоростями от 155 Мбит/с до 10 Гбит/с. Для получения отказоустойчивой топологии магистральной сети магистральные маршрутизаторы должны поддерживать несколько таких интерфейсов.

Очевидно, что для того чтобы не создавать «узких мест» в магистральной сети, магистральный маршрутизатор должен обладать очень высокой производительностью. Например, если маршрутизатор оснащен 8 интерфейсами по 10 Гбит/с (Ethernet или SDH), то его общая производительность должна составлять 80 Гбит/с. Для достижения такой производительности магистральные маршрутизаторы обладают распределенной внутренней архитектурой, подобной архитектуре коммутаторов локальных сетей. Каждый порт или группа портов оснащается собственным процессором, который самостоятельно выполняет продвижение IP-пакетов на основании локальной копии таблицы маршрутизации. Для передачи пакетов между портами служит коммутирующий блок на основе разделяемой памяти, общей шины или коммутатора каналов. Общие задачи, включая построение таблицы маршрутизации, хранение конфигурационных параметров, удаленное управление маршрутизатором и т. п., решает центральный блок управления.

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

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

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

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

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

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

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

Основным отличием корпоративных маршрутизаторов является их высокая надежность, а также поддержка полного набора функций, необходимых для коммерческой работы в Интернете, начиная от протокола BGP и кончая системами регистрации пользовательских потоков данных, что необходимо для биллинговых схем. Необходимость высокой надежности объясняется значительной стоимостью простоя маршрутизатора при оказании коммерческих услуг. Требования к надежности услуг передачи данных постоянно растут, пользователи Интернета и виртуальных частных сетей хотят, чтобы эти услуги были такими же надежными, как услуги телефонной сети. Поэтому когда мы говорим о том, что готовность некоторых моделей маршрутизаторов достигла рубежа 0,999 и стремится к показателям телефонного оборудования в 0,99999, то в первую очередь это относится к маршрутизаторам операторов связи, как магистральным, так и пограничным. Корпоративные маршрутизаторы предназначены для применения в пределах корпоративной сети, поэтому требования к надежности здесь ниже, а функциональность для работы в Интернете в качестве самостоятельной автономной системы не требуется.

Конечно, характеристики маршрутизаторов операторов связи и корпоративных маршрутизаторов в значительной степени зависят от масштаба и специфики оператора связи или корпорации. Для крупного международного оператора связи сегодня требуются магистральные маршрутизаторы с интерфейсами 10 Гбит/с, которые в недалеком будущем будут заменены маршрутизаторами с портами 100 Гбит/с. Пограничные маршрутизаторы такого оператора также будут относиться к лучшим маршрутизаторам этого класса по производительности, работая с портами доступа со скоростями от 622 Мбит/с до 2,5 Гбит/с.

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

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

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

Если он выполнен на основе шасси, то количество слотов его шасси меньше (4–5). Возможен также конструктив с фиксированным количеством портов. Поддерживаемые интерфейсы локальных и глобальных сетей менее скоростные. Это наиболее обширный класс выпускаемых маршрутизаторов, характеристики которых могут приближаться к характеристикам магистральных маршрутизаторов, а могут и опускаться до характеристик маршрутизаторов удаленных офисов.

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

Как правило, интерфейс локальной сети представляет собой Ethernet 100/1000 Мбит/с, а интерфейс глобальной сети — выделенную линию со скоростью 2–100 Мбит/с. Маршрутизатор удаленного офиса может поддерживать работу по коммутируемой телефонной линии в качестве резервной связи для выделенного канала. Существует очень большое количество типов маршрутизаторов удаленных офисов. Это объясняется как массовостью потенциальных потребителей, так и специализацией такого типа устройств, проявляющейся в поддержке какого-либо конкретного типа глобальной связи. Например, существуют маршрутизаторы, работающие только в сетях ISDN, существуют модели только для аналоговых выделенных линий и т. п.

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

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

И только появление в глобальных сетях высокоскоростных технологий, таких как АТМ, Ethernet, SONET/SDH, DWDM, привело к резкому повышению требований к производительности маршрутизаторов, в результате представители наиболее совершенного класса маршрутизаторов повсеместно перешли на многопроцессорные схемы с коммутирующим блоком, успешно опробованные на коммутаторах локальных сетей.

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

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

Рис. 18.29. Комбинированный режим работы коммутатора 3-го уровня

Пример

Например, если два компьютера (C1 и C2 на рис. 18.31) имеют адреса, принадлежащие одной сети, то при обмене информацией они не будут передавать пакеты маршрутизатору по умолчанию, а задействуют протокол ARP, чтобы узнать MAC-адрес компьютера назначения. Пусть компьютеру C1 требуется передать пакет компьютеру C2. Коммутатор 3-го уровня передает кадр ARP-запроса компьютера C1 с широковещательным MAC-адресом всем портам, принадлежащим одной IP-сети, то есть портам P1, P2, P3 и P4. Компьютер C2 распознает свой IP-адрес (194.100.15.3) в этом запросе и отвечает направленным кадром с MAC-адресом назначения компьютера C1 (MAC1), помещая в ответ собственный MAC-адрес (MAC2). После этого компьютер C1 направляет IP-пакет компьютеру C2, помещая его в кадр с адресом назначения MAC2. Коммутатор 3-го уровня передает этот кадр с порта P1 на порт P2 в соответствии с алгоритмом моста на основе таблицы продвижения 2-го уровня. Аналогичным образом будет работать коммутатор 3-го уровня. В случае, когда компьютеры принадлежат разным IP-сетям, поведение компьютера отправителя диктует коммутатору 3-го уровня способ продвижения пакета. Если, например, компьютер C1 отправляет пакет компьютеру C3, находящемуся в другой сети, то он обязан передать пакет маршрутизатору по умолчанию, а не пытаться с помощью ARP узнать MAC-адрес компьютера назначения. Поэтому компьютер C1 делает ARP-запрос о MAC-адресе известного ему маршрутизатора по умолчанию, которым для него является порт P1 с IP-адресом IP-R1. После получения MAC-адреса порта P1 (MAC-P1) компьютер C1 посылает ему IP-пакет для компьютера C3 (то есть по IP-адресу назначения 194.100.17.11), оформив его как кадр Ethernet с адресом назначения MAC-P1. Получив кадр с собственным MAC-адресом, коммутатор 3-го уровня обрабатывает его по схеме маршрутизации, а не коммутации.

Коммутаторы 3-го уровня поддерживают технику VLAN, являясь основным типом устройств для соединения отдельных виртуальных сетей в составную IP-сеть. Обычно каждой виртуальной сети присваивается номер IP-сети, так что передача внутри сетей идет на основе MAC-адресов, а между сетями — на основе IP-адресов. В представленном на рис. 18.31 примере сети порты P1–P4 могут принадлежать одной виртуальной сети, а порты P5, P6 — другой.

 

 

Операционная система Cisco IOS

По способу реализации различают программные маршрутизаторы и аппаратные маршрутизаторы. Под  программными маршрутизаторами понимают  устройства, в которых программное обеспечение работает на универсальной аппаратной платформе (универсальном компьютере) под управлением универсальной ОС. Аппаратными маршрутизаторами называют устройства, в которых программное обеспечение работает на специализированной аппаратной платформе под управлением специализированной ОС.

Центральным элементом многих аппаратных маршрутизаторов является специализированная операционная система IOS (Internetwork Operating System — межсетевая операционная система), разработанная крупнейшим производителем коммуникационного оборудования Cisco. Эта ОС, как и любая другая ОС, выполняет функции по организации программного обеспечения и экранированию его от особенностей аппаратной платформы. Особенности IOS проистекают из того, что она должна служить средой для выполнения приложений,  решающих узкоспециализированную задачу - маршрутизацию пакетов. Эта задача должна решаться  в реальном времени, так как задержка маршрутизации пакета может серьезно ухудшить качество связанной с этими данными сетевой службы, например, Интернет-телефонии.

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

Рассмотрим эти свойства Cisco IOS подробнее.

Cisco IOS имеет модульную структуру, которая достаточно традиционна — она состоит из модулей ядра и сетевых модулей, которые соответствуют приложениям универсальной ОС.

Сетевые модули выполняют функции коммуникационных протоколов, таких как сетевые протоколы IP, IPX или же протоколы маршрутизации RIP, OSPF или BGP. Кроме того, в состав сетевых модулей входят некоторые модули, реализующие общие для коммуникационных протоколов функции, например, управление очередями для поддержки QoS. Большая часть сетевых модулей Cisco IOS реализуются как процессы, вызываемые диспетчером ядра.

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

Модульное строение Cisco IOS «видно» только разработчикам IOS, так как для потребителя маршрутизатора, которым является администратор сети, конфигурирующий маршрутизатор, модульность скрыта за монолитным образом IOS, который представляет собой исполняемый файл, хранящийся во флэш-памяти маршрутизатора и загружающийся в оперативную память при его старте.

И ядро, и процессы работают в одном и том же режиме процессора.   Это дает очевидное преимущество в реактивности системы благодаря отсутствию постоянного переключения между контекстами привилегированного и обычного режимов.

Диспетчер IOS ведет четыре очереди готовых к выполнению процессов, имеющих критический, высокий, средний и низкий приоритет. Большая часть процессов работает со средним приоритетом, например, процессы IP Input, ARP Input и RIP Router. Критический приоритет имеют некоторые системные процессы, например, процесс измерения нагрузки маршрутизатора. Высокий приоритет назначается чаще всего тем процессам, которые выполняют срочную часть работы коммуникационного протокола (например, процесс RIP Send периодически посылает маршрутные объявления в сеть). Фоновые процессы, такие как проверка устаревших записей кэша, получают низкий приоритет.

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

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

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

 

Рис. 1. Организация буферов пакетов в IOS.

Память ввода-вывода полностью отводится под буферы пакетов, а основная память процессора содержит код операционной системы. Управление оперативной памятью в Cisco IOS происходит на двух уровнях: уровне пулов памяти и уровне буферов пакетов. На первом уровне управление памятью осуществляется менеджером памяти, на втором — менеджеров буферов. Пул памяти IOS — это непрерывная область памяти произвольного размера. Пулы памяти управляются менеджером памяти и выделяются по запросу модулям IOS; в этом отношении функции IOS не отличаются от функций универсальной ОС.

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

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

В памяти ввода вывода IOS поддерживает три типа очередей:

Контроллер самостоятельно выполняет запись кадра в первичную очередь, а затем выполняет прерывание. Код ядра IOS, вызываемый по этому прерыванию, пытается переместить ячейку с принятым кадром из очереди Tx-ring в  локальную входную очередь интерфейса или же, если она полна, в одну из системных очередей.  В том случае, когда ни в локальной, ни в системной очередях нет указателей на свободные ячейки, кадр отбрасывается. Для этого в очереди Tx-ring  признак указателя на ячейку, содержащую кадр, меняет свое значение с «заполненная ячейка» на «свободная ячейка».

После того как кадр, содержащий пакет, подлежащий маршрутизации, попадает в локальную или системную очередь, программа обработки прерываний определяет, какому протоколу сетевого уровня соответствует пришедший пакет, и перемещает его во входную очередь процесса, реализующего этот протокол. Пусть это будет процесс IP Input, который занимается маршрутизацией IP-пакетов. Когда процесс IP Input, в очередной раз получив управление, обнаружит данный кадр в начале очереди, он производит необходимые операции с таблицей маршрутизации и ARP-таблицей. Просмотр таблицы маршрутизации может занять много времени, если маршрутизатор работает на магистрали Интернета, так как в этом случае таблица может включать несколько десятков тысяч записей. После определения МАС-адреса назначения и выходного интерфейса, через который нужно передать кадр в сеть, процесс IP Input формирует новый кадр, помещая найденный адрес в поле адреса назначения кадра. Процесс IP Input помещает кадр, готовый к отправке в сеть, в очередь Tx-ring выходного интерфейса. Обнаружив новый кадр в очереди Tx-ring, контроллер интерфейса переписывает его в свой буфер, а затем побитно пересылает в канал связи.

Описанный процесс может быть ускорен за счет кэширования таблицы маршрутизации и ARP-таблицы, благодаря чему, все операции по маршрутизации пакета могут быть выполнены самостоятельно программой обработки прерывания без обращения к процессу IP Input. Эта программа просматривает кэш маршрутов, и только в том случае, когда в кэше нужный адрес отсутствует, пакет помещается в очередь процесса IP Input и обрабатывается по обычной процедуре. Размер кэша для протокола IP определяется автоматически в зависимости от размера свободной памяти, оставшейся после размещения там кодов IOS и буферов пакетов. При изменении состояния таблицы маршрутизации или ARP-таблицы кэш перестраивается. Кроме того, из кэша периодически удаляются «устаревшие» записи, то есть, записи, срок жизни которых превысил определенный порог.

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