Стандартизация компьютерных сетей. Понятия интерфейса, протокола и стека

 

По своей сущности компьютерная сети является совокупностью компьютеров и сетевого оборудования, соединенных каналами связи. Поскольку компьютеры и сетевое оборудование могут быть разных производителей, то возникает проблема их совместимости. Без принятия всеми производителя общепринятых правил построения оборудования создание компьютерной сети было бы невозможно. Поэтому разработка и создание компьютерных сетей может происходить только в рамках утвержденных стандартов.

В основу стандартизации компьютерных сетей положен принцип декомпозиции, т.е. разделения сложных задач на отдельные более простые подзадачи. Каждая подзадача имеет четко определенные функции и строго установленные связи между подзадачами. При более внимательном рассмотрении работы компьютера в сети можно выделить две основные подзадачи:

- взаимодействие программного обеспечения пользователя с физическим каналом связи (посредством сетевой карты) в пределах одного компьютера

- взаимодействие компьютера через канал связи с другим компьютером

Современное программное обеспечение компьютера имеет многоуровневую модульную структуру, т.е. программный код, написанный программистом и видимый на экране монитора (модуль верхнего уровня), проходит несколько уровней обработки, прежде чем превратится в электрический сигнал (модуль нижнего уровня), передаваемый в канал связи.

При взаимодействии компьютеров через канал связи оба компьютера должны выполнять ряд соглашений. Например, они должны согласовать величину и форму электрических сигналов, длину сообщений, методы контроля достоверности и т.д. Соглашения должны быть такими, чтобы они были поняты каждым модулем на соответствующе уровне каждого компьютера.

Суть работы многоуровневого протокола можно пояснить как «письмо в конверте». Каждый уровень протокола надписывает на «конверте» свою информацию. Сетям нужно только понимать «надпись» на «конверте», чтобы предать его в место назначения, а до содержания письма им дела нет.

На Рис.2 схематически показана модель взаимодействия двух компьютеров в сети. Для упрощения показаны четыре уровня модулей для каждого компьютера. Процедура взаимодействие каждого уровня этих компьютеров может быть описана в виде набора правил взаимодействия каждой пары модулей соответствующих уровней.

Формализованные правила, определяющие последовательность и формат сообщений, которыми обмениваются модули, лежащие на одном уровне, но в различных компьютерах называются протоколами. Модули, реализующие протоколы соседнего уровня и находящиеся в одном компьютере, также взаимодействуют друг с другом в соответствии с четко определенными правилами и с помощью стандартизованных форматов сообщений. Эти правила называются интерфейсом и определяют набор сервисов, предоставляемых данным уровнем соседнему уровню. Другими словами, в сетевых технологиях традиционно принято, что протоколы определяют правила взаимодействия модулей одного уровня, но в разных компьютерах, а интерфейсы – соседних уровней в одном компьютере. Модули, таким образом, должны обрабатывать: во- первых свой собственный протокол, а во- вторых интерфейсы с соседними уровнями.

Иерархически организованный набор протоколов для взаимодействия компьютеров в сети называется стеком коммуникационных протоколов.

 

Модули, реализующие протоколы соседнего уровня и находящиеся в одном компьютере, также взаимодействуют друг с другом в соответствии с четко определенными правилами и с помощью стандартизованных форматов сообщений. Эти правила называются интерфейсом и определяют набор сервисов, предоставляемых данным уровнем соседнему уровню.

Другими словами, в сетевых технологиях традиционно принято, что протоколы определяют правила взаимодействия модулей одного уровня, но в разных компьютерах, а интерфейсы – соседних уровней в одном компьютере. Модули, таким образом, должны обрабатывать: во- первых свой собственный протокол, а во- вторых интерфейсы с соседними уровнями.

Иерархически организованный набор протоколов для взаимодействия компьютеров в сети называется стеком коммуникационных протоколов.

 

Коммуникационные протоколы могут быть реализованы как программно, так и аппаратно. Протоколы нижних уровней, как правило, реализуются комбинацией программно- аппаратных средств, а протоколы верхних уровней- чисто программными средствами.

Отметим, что протоколы каждого уровня обладают независимостью друг от друга, т.е. протокол любого уровня может быть изменен не оказывая при этом никакого влияния на протокол другого уровня. Главное, чтобы интерфейсы между уровнями обеспечивали необходимые связи между ними.

 

1-й компьютер 2-й компьютер

 
 

 

 


 
 


Рис. 2 Взаимодействие двух компьютеров в сети

 

Принцип взаимодействия компьютеров в сети можно объяснить на примере сотрудничества двух фирм. Два генеральных менеджера каждой из фирм осуществляют сделки между собой на основании заключенных договоров и соглашений. Указанные взаимодействия являются «протоколом уровня генеральных менеджеров». На каждой из фирм у менеджеров есть секретари, причем каждый менеджер имеет свой метод и стиль работы с секретарем. Один, например, предпочитает устные указания, а второй дает только письменные распоряжения. Таким образом, каждая фирма имеет свой собственный интерфейс «главный менеджер - секретарь», что не мешает, однако, нормально работать генеральным менеджерам между собой. Секретари в свою очередь договорились обмениваться информацией с помощью факсов, реализуя протокол «секретарь - секретарь». В случае, если секретари перейдут на электронную почту, то генеральные менеджеры этого даже и не заметят- главное, чтобы секретари выполняли их распоряжения, т.е. должен безукоризненно работать интерфейс «менеджер - секретарь». С другой стороны, менеджеры могут заключить совершенно новый договор, т.е. изменить «протокол уровня генеральных менеджеров». Передача не старого, а нового договора на уровне секретарей пройдет для этих секретарей абсолютно не замеченной.

В рассмотренном примере мы определили два уровня протоколов – уровень генеральных менеджеров и уровень секретарей. Каждый из указанных уровней имеет свой собственный протокол, который может быть изменен независимо от протокола другого уровня. Такую независимость обеспечивает правильное функционирование интерфейсов «менеджер - секретарь».

Независимость протоколов каждого уровня друг от друга и взаимодействие самих уровней посредством интерфейсов является важнейшей предпосылкой для создания ряда стандартных протоколов для компьютерных сетей.

 

6.5. Протокол ТCP/IP

 

 

Как уже указывалось выше, основойсети Интернет является стек проколов TCP/ IP (Transmission Control Protocol/ Internet Protocol). В этом протоколе существую четыре уровня взаимодействия: канальный + физический уровен , уровень IP (адресация пакетов), TCP (управление передачей), прикладной уровень.

Рассмотрим в самом общем виде принцип взаимодействия компьютеров в сети, основываясь на выше описанной многоуровневой модели.

Взаимодействие компьютеров в сети начинается с того, что приложение (программа пользователя) одного компьютера обращается к прикладному уровню другого компьютера, например, к файловой системе. Приложение первого компьютера формирует с помощью операционной системы блок данных стандартного формата, состоящее из заголовка и поля данных.

Заголовок содержит служебную информацию, которую необходимо предать через сеть прикладному уровню другого компьютера, чтобы сообщить ему, какую работу необходимо выполнить. Кроме этого в заголовке имеется информация для следующего нижнего уровня, чтобы он «знал», что делать с этим сообщением. В поле данных находится информация, которую необходимо поместить в найденный файл. Сформировав сообщение, прикладной уровень направляет его «вниз» уровню TCP. Прочитав заголовок, TCP- уровень выполняет требуемые действия над сообщением и добавляет к сообщению собственную служебную информацию – заголовок TCP -уровня, в котором содержаться указания для протоколов TCP -уровня второго компьютера. Полученное в результате сообщение передается вниз IP- уровню, который в свою очередь добавляет свой заголовок и т.д. При достижении сообщением нижнего, физического уровня, у него имеется множество заголовков, добавленных на каждом предыдущем уровне (сообщение вложено внутрь, как в матрешку). В таком виде оно и передается по сети (Рис. 3).

Второй компьютер принимает его на физическом уровне и последовательно перемещает его вверх с уровня на уровень (Рис.4). Каждый уровень анализирует и обрабатывает заголовок своего уровня, выполняя соответствующие этому уровню функции, а затем удаляет этот заголовок и передает сообщение дальше вышележащему уровню.

Как видно из рис 3., информация, передающаяся в линию связи содержит большое количество служебных заголовков, которые по величине могут превосходить даже собственно данные. В результате взаимодействия протоколов всех уровней и их единому стандарту на прикладном уровне второго компьютера получаются данные, переданные первым компьютером.

 

 

                                           
   
1- й компьютер
 
   
 
 
 
   
     
IP- уровень
 
 
   
 
   
В линию связи
 
   
Рис. 3 Передача сообщения в сеть
 
 
 
   
   
IP- уровень
 
 
   
 
   

 


 


 

 
 
Рис. 4 Прием сообщения из сети

 

 


Что же конкретно делает протокол TCP ? Основной задачей TCP – уровня является доставка всей информации компьютеру получателя, контроль последовательности предаваемой информации, повторная отправка не доставленных пакетов в случае сбоев работы сети. Надежность доставки информации достигается следующим образом. В заголовке TCP – уровня содержится порядковый номер блока данных (сегмента), полученных от прикладного уровня, а также специальный идентификатор, который называется портом. (Принимающий компьютер должен «знать, что ему пересылают»). Назначение идентификаторов портов осуществляется либо централизовано, если прикладные программы являются популярными и общедоступными (например, служба удаленного доступа к файлам FTP имеет порт 21, а служба WWW – порт 80), или локально – если разработчик своего приложения просто связывает с этим приложением любой доступный, произвольно выбранный номер. Этот набор идентифицирующих параметров процесса носит название сокет. Для каждого отправленного в сеть сегмента предающий компьютер ожидает прихода от принимающего компьютера специального сообщения – квитанции, подтверждающей тот факт, что компьютер нужный сегмент принял. Время ожидания прихода соответствующей квитанции называется временем тайм- аута. Переданный сегмент хранится в буфере на все время ожидания квитанции. В случае получения квитанции о правильности приема, TCP передает следующий сегмент, удаляя переданный из буфера, а в случае отсутствия квитанции о подтверждении приема, TCP повторяет передачу сегмента. Для ускорения передачи сегментов в протоколе TCP организован принцип их передачи, который называется принцип «скользящего окна». Этот принцип основывается на возможности передачи нескольких сегментов в пределах одного «окна», не дожидаясь прихода квитанции на первый отправленный сегмент. На принимающем компьютере TCP, получая от уровня межсетевого взаимодействия сегменты, собирает их в блок по номерам и передает этот блок на верхний уровень приложений, отправляя обратно в сети квитанции о правильности принятого сегмента. Для производительности сети является очень важным установления времени тайм- аута и размера «скользящего окна». В общем случае для их выбора необходимо учитывать пропускную способность физических линий связи, отметим, однако, что в протоколе ТСР предусмотрен специальный автоматический алгоритм определения этих величин.

На IP- уровне происходит адресация компьютеров в сети Интернет. Адрес отправителя и адрес получателя помещается в заголовок пакета. IP- адресация построена на концепции сети, состоящей из хостов. Хост представляет собой объект сети, который может передавать и принимать IP- пакеты, например, компьютер, рабочая станция или специальное устройство маршрутизатор. Хосты соединяются между собой через одну или несколько сетей. IP – адрес любого из хостов состоит из адреса (номера) сети и адреса хоста в этой сети.

В соответствии принятым в момент разработки IP – протокола соглашением, адрес представляется четырьмя десятичными числами, разделенными точками. Например, сеть имеет адрес 10.1.1.10. Каждое из этих чисел не может превышать 255 и представляет один байт 4- байтного IP- адреса. Выделение всего лишь четырех байт для адресации всей сети Интернет связано с тем, что в то время массового распространения локальных сетей пока не предвиделось. О персональных компьютерах и рабочих станциях вообще не было речи. В результате под IP-адрес было отведено 32 бита.

IP – адрес назначается администратором сети во время конфигурирования компьютеров и маршрутизаторов. Номер сети может быть выбран администратором произвольным образом, или назначен по рекомендации специального подразделения Интернет – InterNIC. Обычно поставщики услуг Интернет получают диапазоны адресов у подразделений InterNIC, а затем распределяют их среди своих абонентов. Отметим, что маршрутизатор может входить сразу в несколько сетей, поэтому каждый порт маршрутизатора имеет свой IP – адрес. Таким же образом и конечный компьютер так же может входить в несколько сетей, а значит иметь несколько IP- адресов. Таким образом IP- адрес характеризует не отдельный компьютер или маршрутизатор, а одно сетевое соединение.

 

IP- адресация определяет пять классов сетей: A,B,C,D,E

 

Сети класса А предназначены главным образом для использования крупными организациями. Для номеров сети выделяются 8 бит, для номеров хостов – 24 бита. Все адреса сетей класса А начинаются с 0 в двоичной записи, или с 1 в десятичной записи, они имеют номера от 1 до 126 (если все семь бит равны «1» = 1111111= 127, номер сети 0 не используется, а номер 127 используется для специальных целей ). В сетях класса А предусмотрено большое количество хостов – 2 24 = 16 777 216 узлов.

 

В сетях класса В выделяют 16 бит для номера сети и 16 бит для номеров хостов, их адрес начинается с 10 в двоичной записи, или со 128 в десятичной записи, они имеют номера от 128.0 до 191.255 (10000000.00000000= 128.0, 10111111.11111111= 191.255.Сети В представляют хороший компромисс между адресным пространством номера сети и номерами хостов. Сеть класса В является сетью среднего размера с максимальным числом хостов 216 = 65 536.

 

Сети класса С выделяют 24 бита для номера сети и 8 бит для номеров хостов, их адрес начинается с 110 в двоичной записи, или со 192 в десятичной записи, они имеют номера от 192.0.0 до 223.255.255 (11000000.00000000.00000000= 192.0.0, 11011111.11111111.11111111= 223.255.255. Сети класса С являются наиболее распространенными сетями, число хостов в одной сети равно 28 = 256.

Адреса сетей класса D начинаются с 1110 в двоичной записи, или с 224 в десятичной записи, они имеют номера от 224.0.0.0 до 239.255.255.255 (11100000.00000000.00000000.00000000.=224.0.0.0, 111011111.11111111.11111111.1111111= 239.255.255.255)

Если в пакете указан адрес сети класса D, то его получат все узлы этой сети. Поэтому сети класса D называются сетями multicast – широковещательными сетями и используются для обращения к группам узлов. Основное назначение multicast - распространение информации по схеме «один- ко- многим». Групповая адресация предназначена для экономичного распространения в Интернет или большой корпоративной сети аудио- или видеопрограмм, предназначенных сразу большой аудитории слушателей или зрителей

 

Адреса сетей класса E начинаются с 11110 в двоичной записи, или с 240 в десятичной записи, они имеют номера от 240.0.0.0 до 247.255.255.255 (11110000.00000000.00000000.00000000.=240.0.0.0, 111101111.11111111.11111111.1111111= 247.255.255.255). Сети класса Е зарезервированы для будущих использований.

 

Основной недостаток использования классов IP- адресов напрямую состоит в том, что если организация имеет несколько сетевых номеров, то все компьютеры вне сети имеют доступ к этим адресам и сеть организации становится прозрачной.

 

Для устранения указанного недостатка адресное пространство сети разбивается на более мелкие непересекающиеся пространства – подсети (subnet) с помощью специальных кодов, которые называются маски. Маски используются также для увеличения адресного пространства IP- сетей. С каждой из подсетей можно работать как с обычной TCP/IP – сетью.

 



20633.php">Далее ⇒