Протоколы динамической маршрутизации
Часть записей в таблице маршрутизации заносится автоматически из информации о адресах интерфейсов устройства (операционной системой устройства). Например, если интерфейс имеет IP-адрес 123.45.67.89/20, то это означает, что данное устройство напрямую, через данный интерфейс, подключено к сети 123.45.64.0/20. Соответственно, все пакеты, адресованные в сеть 123.45.64.0/20, будут передаваться через интерфейс 123.45.67.89/20.
Информацию о всех, не напрямую подключенных сетях, в таблицу маршрутизации должен либо внести администратор вручную (статическая маршрутизация), либо на маршрутизаторе должен работать протокол динамической маршрутизации (динамическая маршрутизация).
Статическая маршрутизация допустима в небольшой, стабильной сети: при любых изменениях в структуре сети администратор должен изменять таблицы маршрутизации ВСЕХ маршрутизаторов.
Протоколы динамической маршрутизации предназначены для обмена информацией между маршрутизаторами о известных им сетях. Протоколы динамической маршрутизации не обеспечивают передачу пользовательских данных.
В качестве примера одного из наиболее простых протоколов можно назвать протокол (Routing Information Protocol). Согласно RIP каждый маршрутизатор каждые 30 секунд должен отправить своему соседу информацию о тех сетях, которые ему известны. Длина маршрута рассчитывает как количество маршрутизаторов, которые надо пройти, чтобы дойти до конца маршрута. Нетрудно понять, что при подобной организации динамической маршрутизации, маршрутизаторы существенно увеличивают нагрузку на сеть (увеличивая трафик), а также – увеличивают нагрузку на самих себя, регулярно выполняя задачу формирования пакетов с данными о известных сетях, передачи этой информации, приема подобной информации от соседей и ее обработки.
Более современным, но более сложным, является протокол OSPF (Open Shortest Path First). Согласно OSPF маршрутизаторы также обмениваются друг с другом информацией о известных сетях, но, сообщив соседу всю имеющуюся информации, продолжают поддерживать связь посылкой коротких сообщений, подтверждающих наличие устройства на связи. Передача информации о известных сетях производится только при изменении топологии сети, что существенно снижает объем трафика, но не уменьшает нагрузку на сам маршрутизатор. Кроме того, протокол OSPF рассчитает длину маршрута, основываясь на скорости канала связи между маршрутизаторами, а не на их количестве.
ICMP
В хорошо спроектированной и грамотно настроенной сети каждый маршрутизатор на основании информации в своей таблице маршрутизации принимает правильное решение о дальнейшем пути следования пакета. Но, как было показано выше, в случае неверной конфигурации сети время жизни пакета может стать равным нулю, а пакет при этом не быть доставленным.
Иной причиной невозможности доставки пакета является недоступность сети по причине выхода из строя участка сети, через который лежит путь пакета или самой сети. Существует возможность недоступности узла по причине его отсутствия в сети (узел выключен или неисправен).
В протокол IP встроено обеспечение доставки пакета, в случае, если узел и доступен; но не встроено оповещение отправителя о ситуации невозможности доставки пакета в случае отсутствия сети, или устройства в сети, или иных аварийных ситуациях. Для обработки подобных ситуаций в стек протоколов TCP/IP введен протокол ICMP (Internet Control Message Protocol — протокол межсетевых управляющих сообщений).
Устройство (маршрутизатор), обнаружившее, что не может передать далее пришедший на него IP-пакет, отправляет отправителю ICMP-сообщение о возникшей проблеме, а потом отбрасывает этот пакет. В ICMP сообщении указывается причина ошибки, заголовок недоставленного пакета и его первые 64 бита поля данных.
Устройство-отправитель, получив ICMP-сообщение, может учесть полученную информацию и предпринять какие-либо действия для того, чтобы ошибка больше не возникала. Но эти действия реализуются протоколами вышележащего уровня (или не реализуются в зависимости от протокола высшего уровня): протокол ICMP подобные ситуации не обрабатывает.
Также ICMP не позволяет передать заново потерянный пакет. Эта задача также ложится на протоколы более высоких уровней.
ICMP – протокол сообщения об ошибках, но не протокол коррекции ошибок.
В ответ на сообщение ICMP не предусмотрены какие-либо дальнейшие действия (подтверждения, вопросы, и проч.). Все сообщения ICMP передаются внутри пакета IP и маршрутизируются по правилам IP. Если ICMP-сообщение теряется, повторное ICMP-сообщение не вырабатывается (это привело бы к дополнительной нагрузке на маршрутизаторы).
Утилита ping использует сообщения протокола ICMP для тестирования достижимости узлов: она отправляет по сети эхо-запрос, в котором указывает IP-адрес проверяемого узла. Узел, получив эхо-запрос, формирует и отправляет эхо-ответ. Ping предоставляет пользователю статистику о отправленных и полученных запросах и ответах, а также – о среднем времени реакции сети на запросы.
Транспортный уровень
Доставка пакета по выбираемым маршрутам от отправителя к получателю реализуется сетевым уровнем. Разбиение сообщения на пакеты, их нумерация, отправка и организация приема обеспечивается транспортным уровнем. Транспортный уровень не занимается вопросами доставки пакетов.
Транспортный уровень может предоставлять или не предоставлять (в зависимости от протокола) следующие услуги:
- Подтверждение приема пакета для обеспечения гарантии доставки данных, если это требуется приложениям вышележащих уровней.
- Контроль ошибок и восстановление информации
- Управление потоком данных для повышения или понижения скорости передачи данных
Наиболее известные и распространенные протоколы транспортного уровня
- TCP (Transmission Control Protocol).
- UDP (User Datagram Protocol).