Стандартные стеки коммуникационных протоколов
Иерархически организованный набор протоколов, достаточный для организации взаимодействия узлов в сети, называется стеком коммуникационных протоколов. Важнейшим направлением стандартизации в области вычислительных сетей является стандартизация коммуникационных протоколов. В настоящее время в сетях используется большое количество стеков коммуникационных протоколов. Эти протоколы часто не соответствуют рекомендуемому моделью OSI разбиению на уровни. В частности, функции сеансового и представительного уровня, как правило, объединены с прикладным уровнем. Такое несоответствие связано с тем, что модель OSI появилась как результат обобщения уже существующих и реально используемых стеков, а не наоборот. Протоколы разных компаний часто оказываются несовместимы между собой, они могут быть успешно использованы исключительно в составе своего стека протоколов, который выполняет более или менее законченную группу функций. В качестве примера на рис. … схематически показано соотношение протоколов, используемых популярными фирменными сетевыми операционными системами, и уровней стандартной модели OSI. Как видно из рисунков, практически ни на одном уровне нет четкого соответствия реального протокола какому-нибудь уровню идеальной модели. Выстраивание подобных соотношений довольно условно, так как трудно четко разграничить функции всех частей программного обеспечения. К тому же компании-производители программных средств далеко не всегда подробно описывают внутреннюю структуру продуктов.
Чаще всего в стеке явно выделяются 3-4 уровня: уровень сетевых адаптеров, в котором реализуются протоколы физического и канального уровней, сетевой уровень, транспортный уровень и уровень служб, вбирающий в себя функции сеансового, представительного и прикладного уровней. Приведем некоторые сведенья о стеках показанных в таблице. IBM/Microsoft – этот стек широко используется в продуктах компаний IBM и Microsoft. На сеансовом и транспортном уровне включает протокол NetBIOS (сетевая базовая система ввода/вывода), который был разработан компанией IBM для сетей IBM PC Network по образцу системы BIOS персонального компьютера. На основе протокола NetBIOS был разработан протокол NetBEUI. Недостаток NetBEUI состоит в том, что он не поддерживает межсетевое взаимодействие. В настоящее время он считается устаревшим. Протокол SMB (Server Message Block) выполняет функции сеансового, представительного и прикладного уровней. На основе SMB реализуется файловая служба, а также службы печати и передачи сообщений между приложениями Windows. Nowell NetWare (IPX/ SPX) - этот стек является оригинальным стеком протоколов фирмы Novell, разработанным для сетевой операционной системы NetWare еще в начале 80-х годов. Протоколы сетевого и сеансового уровней Internetwork Packet Exchange (IPX) и Sequenced Packet Exchange (SPX). Это сравнительно небольшой и быстрый протокол, поддерживающий маршрутизацию. Протокол NCP перекрывает прикладной, представительский и сеансовый уровень, он обеспечивает файловую службу операционной системы Novell NetWare. Стек протоколов TCP/IP был специально разработан для глобальных сетей и для межсетевого взаимодействия. Он изначально ориентирован на низкое качество каналов связи, на большую вероятность ошибок и разрывов связей. Этот протокол принят во всемирной компьютерной сети Интернет, значительная часть абонентов которой подключается по коммутируемым линиям (то есть обычным телефонным линиям). Основными протоколами стека, давшими ему название, являются протоколы IP и TCP. Эти протоколы в терминологии модели OSI относятся к сетевому и транспортному уровням соответственно. IP обеспечивает продвижение пакета по составной сети, a TCP гарантирует надежность его доставки. На основе нижних уровней стека работают протоколы высоких уровней, такие как протокол пересылки файлов FTP, протокол эмуляции терминала telnet, почтовый протокол SMTP, используемый в электронной почте сети Internet, гипертекстовые сервисы службы WWW. Недостаток протокола TCP/IP – более низкая скорость работы, чем у IPX/SPX. Однако сейчас протокол TCP/IP используется и в локальных сетях, чтобы упростить согласование протоколов локальных и глобальных сетей. В настоящее время он считается основным в самых распространенных операционных системах. 2.4. Взаимодействие уровней модели OSI (на примере стека TCP/IP) Прикладной уровень порождает поток данных (байт), который необходимо передать через сеть на какой либо узел. Каждый такой поток необходимо направить конкретному процессу-получателю. Каждый компьютер может выполнять несколько процессов, более того, прикладной процесс тоже может иметь несколько точек входа, выступающих в качестве адреса назначения. Процесс, к которому направляется поток (или его точка входа) описывается идентификатором (номера) порта прикладной службы. Номер порта в совокупности с номером сети и номером конечного узла однозначно определяют прикладной процесс в сети. Этот набор идентифицирующих параметров имеет название сокет (socket). Представительский уровень может при необходимости преобразовать наш поток. Далее поток поступает на вход транспортного уровня, который «нарезает» его на некоторые непрерывные части (порции) данных для передачи на сетевой уровень. К этой порции протокол сетевого уровня добавляет заголовок и концевик. В результате получаем часть потока, которая обрабатывается транспортным уровнем и называется сегментом (segment). Не все сегменты, посланные через соединение, будут одного и того же размера, однако оба участника соединения должны договориться о максимальном размере сегмента, который они будут использовать (функция договаривания относится к сеансовому уровню). При передаче сегментов осуществляется обязательное подтверждение правильности приема. На стороне адресата сетевой уровень на основании информации содержащейся в заголовках сегментов соединит полученные сегменты и снова получит поток данных. Каждый сегмент будет иметь свой собственный заголовок и концевик. Сегменты поступают на сетевой уровень, где упаковываются внутрь пакета, который является порцией данных на сетевом уровне. Понятно что у каждого пакета должен быть свой собственный заголовок и концевик. Пакеты передаются вниз канальному уровню, который вкладывает их в свои кадры, добавляя свой собственный заголовок. Наконец, сообщение достигает нижнего, физического уровня, который собственно и передает его по линиям связи узлу-адресату. К этому моменту сообщение «обрастает» заголовками всех уровней (рис. …). Когда сообщение по сети поступает на узел-адресат, оно принимается его физическим уровнем и последовательно перемещается вверх с уровня на уровень. Каждый уровень анализирует и обрабатывает заголовок своего уровня, выполняя соответствующие данному уровню функции, а затем удаляет этот заголовок и передает сообщение вышележащему уровню. Все будет закончено, когда поток данных будет передан процессу, к которому он направляется. Процесс последовательной упаковки данных для передачи называется также инкапсуляцией пакетов. Обратный процесс последовательной распаковки данных приемником называется декапсуляцией пакетов. ПРИМЕЧАНИЕ Термины «пакет» (packet) и «кадр» (frame) в литературе нередко путаются. Иногда под этими терминами имеется в виду одно и то же. Но иногда подразумевается, что кадр и пакет различаются. В дальнейшем мы будем употреблять эти термины в соответствии с терминологией устоявшейся в стандартах TCP/IP. Сегмент – на транспортном уровне, пакет – на сетевом, кадр – на канальном.
|