Некоторые секреты IP-протокола
Бред ТЕРНЕР Журнал
"Сети", #03/2000
Пожалуй, в последние годы ни о чем так много не писали в
области сетевых технологий, как о протоколе IP. Однако, несмотря на такое
внимание к данной теме, до сих пор почти ничего не сказано о базовых функциях
IP, а именно о том, как маршрутизаторы и коммутаторы третьего уровня работают с
IP-информацией и перемещают пакеты данных по сетям.
Напомним, что IP относится к группе протоколов TCP/IP. Протокол
TCP реализует транспортные функции модели OSI (Open Systems Interconnection), ее
четвертого уровня. Его основная обязанность - обеспечение надежной связи между
начальной и конечной точками пересылки данных. IP располагается в OSI на
сетевом, или третьем, уровне; он должен поддерживать передачу маршрутизаторам
адресов отправителя и получателя каждого пакета на всем пути его следования.
Маршрутизаторы и коммутаторы третьего уровня считывают записанную в пакетах по
правилам IP и других протоколов третьего уровня информацию и используют ее
совместно с таблицами маршрутизации и некоторыми другими интеллектуальными
средствами поддержки работы сети, пересылая данные по сетям TCP/IP любого
масштаба - от "комнатной" до глобальной, охватывающей всю планету.
Процесс маршрутизации начинается с определения IP-адреса,
уникального для станции-отправителя (адреса источника), который может быть
постоянным или динамическим. Каждый пакет содержит такой адрес, длина которого,
в соответствии с современной спецификацией IPv4, составляет 32 бита.
Кроме того, в заголовке пакета записан IP-адрес его места
назначения. Если отправляющая станция определяет, что адрес доставки не
локальный, пакет направляется маршрутизатору первого сетевого сегмента. Этот
маршрутизатор определяет IP-адрес пакета и проверяет по своей таблице, не
расположена ли станция получателя в локальной физически подключенной к нему
сети, которая называется IP-подсетью (обычно она назначается для всех сетевых
интерфейсов маршрутизатора). Если же выясняется, что IP-адрес получателя
локальный, маршрутизатор начинает искать внутреннее хранилище IP- и MAC-адресов
локальных устройств - ARP-кэш (Adress Resolution Protocol), позволяющий
сопоставлять IP- и MAC-адреса.
При обнаружении нужного MAC-адреса маршрутизатор помещает его в
заголовок пакета (удаляя собственный MAC-адрес, который больше не нужен) и
направляет пакет по месту назначения. Если MAC-адрес получателя не найден в
ARP-кэше, маршрутизатор пересылает ARP-запрос в подсеть, соответствующую
IP-адресу получателя пакета, где конечная станция с этим IP-адресом передает
ответ на запрос, содержащий необходимый MAC-адрес. Затем маршрутизатор обновляет
содержимое кэша, устанавливает новый MAC-адрес в заголовке пакета и отправляет
его. Если пакет не предназначен для локальной подсети, маршрутизатор направляет
его на маршрутизатор следующего сегмента по MAC-адресу последнего.
Процесс построения и обновления таблиц маршрутизации
практически непрерывен. Он осуществляется средствами, использующими
интеллектуальные протоколы обнаружения, например RIP или OSPF. В таблице каждого
маршрутизатора указан оптимальный маршрут до адреса назначения или до
маршрутизатора следующего сегмента (если адрес не принадлежит локальной
подсети). Последовательно просматривая собственные таблицы маршрутизации,
соответствующие устройства передают пакет "по этапу", запрашивая, при
необходимости, MAC-адрес конечной станции. Этот процесс продолжается до тех пор,
пока пакет не доберется до пункта назначения.
Однако при пересылке пакета через множество сетевых сегментов
существует опасность образования "петель": неправильно сконфигурированный
маршрутизатор постоянно возвращает пакет тому маршрутизатору, через который
данный пакет уже проходил. Во избежание этого в IP предусмотрена TTL-функция
(time-to-live), позволяющая задать предел времени путешествия пакета по сети.
Значение TTL устанавливается заранее и уменьшается на единицу при каждом
прохождении любого сегмента. Если величина TTL становится равной нулю, пакет
удаляется, а маршрутизатор отсылает отправителю сообщение ICMP.
Механизм IP- маршрутизации
Маршрутизатор проверяет IP-адрес входящего пакета и просматривает таблицу,
определяя, не является ли пунктом назначения локальная сеть.
Если IP-адрес назначения локальный, то маршрутизатор находит во внутреннем
хранилище IP- и MAC-адресов локальных устройств MAC-адрес места назначения,
помещает его в заголовок пакета и направляет пакет получателю.
Если MAC-адрес получателя не обнаруживается, маршрутизатор должен послать
запрос о нем по IP-адресу получателя. Если после просмотра таблицы выясняется,
что пакет не предназначен для локальной сети, маршрутизатор переправляет его
маршрутизатору следующего сетевого сегмента, используя MAC-адрес последнего.
|