Глава 5. Сетевой уровень
Сетевой уровень отвечает за передачу пакетов от отправителя получателю. Чтобы достичь пункта назначения, пакет может совершить множество скачков между маршрутизаторами. Это резко контрастирует с деятельностью канального уровня, цель которого намного скромнее — просто перемещать фреймы с одного конца «провода» (виртуального) на другой. Таким образом, сетевой уровень является самым нижним уровнем, имеющим дело с передачей данных по всему пути от начала до конца.
Для достижения этих целей сетевой уровень должен знать топологию сети (то есть весь набор маршрутизаторов и каналов) и рассчитывать подходящие маршруты, даже если она достаточно крупная. При выборе пути он также должен заботиться о равномерной нагрузке на маршрутизаторы и линии связи. Наконец, когда источник и адресат находятся в разных независимо управляемых сетях (иногда называемых автономными системами), приходится решать ряд дополнительных вопросов, включая проблему координации потоков трафика в рамках нескольких сетей и управление загруженностью сети. Эти проблемы обычно решаются на сетевом уровне; операторам сетей часто приходится делать это вручную. Обычно они самостоятельно перенастраивали сетевой уровень путем изменения низкоуровневой конфигурации. Однако с появлением программно-конфигурируемых сетей и программируемого оборудования появилась возможность настраивать сетевой уровень с помощью более эффективного ПО, и даже полностью переопределять его функции. В данной главе мы рассмотрим и проиллюстрируем все эти вопросы — в основном на примере интернета и протокола его сетевого уровня, IP (Internet Protocol).