Сетевой уровень контролирует работу подсети. Он определяет, по какому физическому пути передаются данные в зависимости от загруженности сети, приоритет обслуживания потоков и других факторов. Сетевой уровень отвечает за следующие функции.
· Передачу дейтаграмм маршрутизатору, если адрес сети назначения не указывает на сеть, к которой подключен компьютер.
· Контроль трафика в подсети, чтобы передающая станция не посылала свои дейтаграммы на маршрутизатор, буфер которого полностью заполнен.
· Фрагментацию дейтаграмм маршрутизатором.
· Разрешение логического адреса компьютера (на сетевом уровне) с использованием физического адреса сетевого адаптера (на канальном уровне), если есть необходимость.
Заголовок протокола сетевого уровня, как и заголовок протокола Канального уровня, содержит поля с адресами исходной и целевой систем. Однако в данном случае адрес целевой системы принадлежит конечному назначению пакета и может отличаться от адреса получателя в заголовке протокола Канального уровня. Например, в IP протоколе используется собственная система адресации, которая совершенно не зависит от адресов Канального уровня. Каждому компьютеру в сети с протоколом IP вручную или автоматически назначается 32-битовый IP-адрес, идентифицирующий как сам компьютер, так и сеть, в которой он находится.
|
|
Маршрутизацией (routing) называется процесс выбора в интерсети самого эффективного маршрута для передачи дейтаграмм от системы-отправителя к системе-получателю. В сложных интерсетях, например, в Интернете или больших корпоративных сетях, часто от одного компьютера к другому можно добраться несколькими путями. Сетевой уровень определяет два типа компьютеров, которые могут быть вовлечены в процесс пересылки пакетов:конечные системы и промежуточные системы.
Конечная система - это всегда либо компьютер, создавший и отправивший пакет, либо компьютер, которому пакет предназначен. Промежуточная система - это маршрутизатор либо коммутатор, который соединяет две или более сети, и перенаправляет пакеты по пути, ведущему к месту их назначения. В конечных системах все семь уровней стека протоколов вовлечены в создание или получение пакетов. Промежуточные системы обрабатывают пакеты и передают их вверх по стеку только до Сетевого уровня (рис. 11).
Рис. 11. В промежуточных системах пакет достигает только сетевого уровня
Когда промежуточная система получает пакет, протокол Канального уровня проверяет его на наличие ошибок и корректность аппаратного адреса, а затем отбрасывает заголовок и постинформацию своего уровня, после чего пакет передается протоколу Сетевого уровня. Протокол Сетевого уровня считывает из заголовка адрес системы-получателя и определяет, каким должен быть адрес следующего пункта назначения. Если пунктом назначения является рабочая станция, расположенная в локальной сети, то промежуточная система отправляет пакет прямо ей. Если пункт назначения расположен в удаленной сети, то промежуточная система обращается к таблице маршрутов, чтобы выбрать маршрутизатор, который обеспечит прохождение пакета к месту назначения по наиболее эффективному маршруту. Определив следующее место назначения пакета, протокол Сетевого уровня возвращает эту информацию вместе с дейтаграммой протоколу Канального уровня с той целью, чтобы она была заключена в новый кадр и передана далее.
|
|
Вследствие того, что маршрутизаторы могут соединять сети, использующие различные протоколы Канального уровня, иногда могут понадобиться промежуточные системы, разбивающие дейтаграммы на фрагменты, удовлетворяющие примененному протоколу. Например, если рабочая станция, расположенная в сети Token Ring, формирует пакеты длительностью 4500 байт данных, то промежуточная система, соединяющая сеть Token Ring с сетью Ethernet, должна разбивать их на фрагменты размером не более чем 1500 байт. Это связано с тем, что кадр сети Ethernet не может переносить большее количество данных. После разбиения каждый фрагмент становится самостоятельным пакетом и продолжает путь к целевой системе сетевого уровня. Исходная дейтаграмма формируется лишь после того, как места назначения достигнут все фрагменты.
Выделяются два типа протоколов, функционирующих на Сетевом и Транспортном уровнях: с установлением соединения и без установления соединения. В случае использования протокола с установлением соединения (connection-oriented), прежде чем будут переданы данные вышележащего уровня, должна быть установлена логическая связь между системой-отправителем и системой-получателем. После того как соединение установлено, система-отправитель передает данные, а система-получатель подтверждает их прием. Отсутствие соответствующего подтверждения приема рассматривается системой-отправителем как сигнал для повторной передачи пакетов. Когда передача данных успешно завершена, системы разрывают соединение. Использование данного типа протокола дает системе, отправляющей данные, уверенность в том, что данные успешно доставлены в место их назначения.
Протокол без установления соединения (connectionless protocol) просто упаковывает данные и посылает их по адресу назначения без проверки того, что система-получатель доступна, и ожидания подтверждения приема данных. В большинстве случаев протоколы без установления соединения используются, когда гарантия доставки и другие сервисы, присущие протоколу с установлением соединения, обеспечиваются другим уровнем стека. Эти дополнительные сервисы могут включать управление потоком данных, выявление и коррекцию ошибок.