68
правок
Изменения
→Введение, сервисы
Ещё раз вкратце: сетевой уровень прежде всего должен прокладывать маршрут между узлами. Если на канальном уровне мы просто передавали пакет с одного конца провода на другой, то на сетевом мы уже хотим передавать данные по большой сети, то есть не факт, что напрямую. Помимо этого хорошо бы стараться равномерно распределять нагрузку на узлы. Ещё одна проблема для сетевого уровня состоит в том, что разные узлы могут находиться в разных сетях, с разными гарантиями от канального уровня.
Есть два подхода: дейтаграмный и с установлением канала. В первом случае мы не тратим время на установку соединения, не боимся отказа узла. Во втором случае получаются поменьше пакеты, не нужно каждый раз думать, куда пересылать пакет, можно боговорить параметры передачи (для обеспечения QoS, например).
== Роутинг на сетевом уровне ==
{{Определение
|definition =
'''Сетевой уровень''' (англ. ''Network layer'') - третий уровень в сетевой модели OSI, отвечающий за трансляцию логических адресов (IP) в физические (MAC), определения пути передачи данных, отслеживания неполадок и заторов в сети.
}}
На сетевом уровне работает такое сетевое устройство, как маршрутизатор.
=== Схемы доставки данных ===
* Unicast - доставить данные одному выбранному устройству
* Anycast - доставить данные одному устройству из некоторой выбранной группы
* Multicast - доставить данные выбранной группе устройств
* Geocast - доставить данные некоторому географическому региону
* Broadcast - доставить данные всем устройствам в сети
Unicast - это основная схема доставки данных в Интернете. Далее речь пойдет об алгоритмах доставки для схемы Unicast.
=== Алгоритмы роутинга ===
В общем случае с момента отправки и до момента получения проходит через множество роутеров. Происходит это потому, что отправитель и получатель не могут общаться напрямую из-за размеров сети.
В больших сетях топология постоянно изменяется, поэтому необходимо изменять стратегии доставки сообщений в зависимости от этих изменений, а также в зависимости от загруженности сети. Для решения этой задачи существуют алгоритмы маршрутизации, благодаря которым роутер понимает, какому устройству нужно отправить сообщение, чтобы добиться хороших результатов в его доставке.
==== Алгоритмы на основе расстояния между устройствами ====