Многоуровневая сетевая модель.
Сколько протоколов надо, чтобы организовать нормальное сетевое воздействие? Ответ на этот вопрос далеко не очевиден. Если проанализировать даже такую простую задачу, как передача битовой последовательности, оказывается, что она разбивается на множество подзадач. Надо разделить исходную последовательность на пакеты, снабдить каждый из пакетов заголовком и обеспечить его доставку. При прибытии пакетов на узел назначения надо проверить корректность данных, при необходимости организовать повторную передачу пакетов и восстановить исходную битовую последовательность.
Если все перечисленные подзадачи будут решены, это еще не значит, что узлы сети смогут взаимодействовать друг с другом. Возникают новые вопросы. Откуда взялась битовая последовательность? Была ли она прочитана из файла или сгенерирована прикладной программой? Что делать с данными по месту их назначения? Записать в файл? Передать приложению? Интерпретировать как команду?
Как видите, при обмене информацией по сети должны быть оговорены все детали, поэтому набор правил, регламентирующих сетевое взаимодействие, чрезвычайно велик. Если оформить их в виде одного протокола, он станет настолько сложным, что использовать его будет практически невозможно.
Выход - использовать для управления сетевым обменом несколько протоколов. Но так как эти протоколы предназначены для решения одной общей задачи, необходимо определить, как они должны взаимодействовать между собой.
Вернемся к рассмотрению процесса передачи битовой последовательности. После того как исходный набор данных разделен на информационные пакеты, каждый из пакетов должен быть передан на компьютер, которому он предназначен. Однако как только пакет будет сформирован и снабжен заголовком, с этого момента его можно рассматривать как отдельный независимый объект. Доставка двух пакетов на узел назначения никак не зависит от того, принадлежат ли эти пакеты к одной битовой последовательности ил к двум различным наборам данных. Из этого следует один очень важный вывод: процедура, занимающаяся разбиением данных на пакеты, не обязана знать о том, как пакеты будут доставляться.
После доставки всех пакетов по адресу назначения из них восстанавливается исходная последовательность. И опять же процедура восстановления данных может ничего не знать о том, как пакеты были доставлены. Как видите, процедуры, решающие одну и ту же задачу, действуют на разных уровнях; одна из них пользуется результатами действий другой.
Чем же определяется работа процедур, управляющих
сетевым обменом? Конечно же протоколами.
Процедуры реализуют правила, устанавливаемые
протоколами сетевого взаимодействия.
Протокол неотделим от реализующей его процедуры,
поэтому, описывая передачу данных по сети,
обычно говорят о взаимодействии протоколов
различных уровней, подразумевая при этом
взаимодействие процедур, реализующих эти протоколы.
Понятие взаимодействие протоколов различного
уровня положено в основу многоуровневой сетевой
модели.
На протяжении многих лет создавались самые
различные модели сетевого взаимодействия.
Сетевые модели не устанавливают каких-либо
стандартов и не определяют интерфейсов. Они
представляют собой лишь общее руководство по
построению сетей. На сегодняшний день самой
популярной из них является модель взаимодействия
открытых систем OSI (Open System Interconnection),
определяющая семь уровней сетевого взаимодействия.
Этой модели соответствует архитектура многих сетей,
за исключением… Internet.
Как это ни парадоксально, но семейство протоколов
TCP/IP, обеспечивающее функционирование глобальной
сети, построено по другой модели. Это модель DoD,
разработанная в середине 1960-х годов по инициативе
Министерства обороны США. Данная модель определяет
четыре уровня обмена данными по сети.
- Уровень сетевого доступа, или физический
уровень - самый низкий уровень сетевого взаимодействия.
На этом уровне регламентируются физические характеристики
соединений в сетях. Данный уровень оперирует такими
понятиями, как кабель, разъем, уровень сигнала,
скорость нарастания фронта и т.д. Здесь также решаются
задачи передачи пакетов в пределах одной сети при
условии, что локальные адреса узлов известны.
К этому уровню принято относить протоколы,
обеспечивающие работу локальных сетей.
- Межсетевой уровень. На этом уровне определяются
правила передачи пакетов между узлами и сетями.
Если для идентификации узла назначения используется
не локальный адрес, а IP-адрес, сетевое взаимодействие,
обеспечивающее доставку пакета, переходит с уровня
сетевого доступа на межсетевой уровень.
- Транспортный, или межузловой уровень.
Здесь определяются правила поддержки сетевых соединений.
Передача битовой последовательности, о которой мы говорили ранее, -
типичная задача данного уровня.
- Уровень процессов и приложений - это наивысший уровень
модели DoD. Он определяет интерфейс между двумя
системами на уровне приложений. Именно на этом уровне
решается, что должен делать компьютер с полученной им
битовой последовательностью. К этому уровню относятся
многие протоколы, с которыми вам приходилось встречаться
при работе в качестве пользователя: HTTP, FTP, SMTP и т.д.
В данных уроках подробно рассматриваются протоколы
межсетевого и транспортного уровней. Типичным, хотя и
не единственным, представителем протоколов
межсетевого уровня является протокол IP.
Говоря о протоколах транспортного уровня, чаще всего
упоминают TCP. Именно на нем мы и сосредоточим основное
внимание в следующем уроке.
Вы также можете подписаться на рассылку и получать по e-mail все уроки
по мере их выхода. Подписаться можно здесь.