4. Стеки протоколов
Протокол– правила обмена информацией. Стек протоколов– это связанный между собой набор протоколов. За время развития компьютерных сетей накопилось большое число стеков протоколов. Наиболее популярные стеки:
-
TCP/IP (Transmission Control Protocol / Internet Protocol),
-
IPX/SPX (Internetwork Packet Exchange / Sequenced Packet Exchange,Novell),
-
NetBIOS/SMB (Server Message Block),
-
DecNet (Digital),
-
SNA (IBM),
-
AppleTalk (Макинтош),
-
OSI.
Почти все стеки на физическом и канальном уровнях используют протоколы Ethernet, Token Ring, FDDI. Это позволяет использовать одну и ту же аппаратуру независимо от стека. Разбиение на уровни обычно следующее: прикладной, транспортный, сетевой.
4.1. OSI
Протоколы этого стека полностью отвечают уровням модели OSI. Это международный стек. Не зависит от производителей аппаратуры. Разработчики пытались учесть в протоколах все технологии и стандарты, поэтому эти протоколы требуют больших вычислительных затрат.
Самый распространенный протокол этого стека – протокол электронной почты X.400. Есть также протокол передачи файлов FTAM, файловая служба X.500
4.2. TCP/IP
Transmission Control Protocol / Internet Protocol (TCP/IP) – это промышленный стандарт стека протоколов, разработанный для глобальных сетей. Стек был разработан по инициативе Министерства обороны США более 30 лет назад для связи экспериментальной сети ARPAnet с другими сетями как набор общих протоколов для разнородной вычислительной среды. Имеет открытую спецификацию.
Протоколы этого стека были разработаны в 1974 г. Робертом Кэном (разработчик ARPAnet) и Винтоном Серфом (ученый-компьютерщик).
Рис.6. Структура протоколов TCP/IP
Протоколы TCP/IP делятся на 4 уровня. Самый нижний (уровень IV)–уровень сетевых интерфейсов соответствует физическому и канальному уровням модели OSI. Этот уровень в протоколах TCP/IP не регламентируется, но поддерживает все популярные стандарты физического и канального уровня: для локальных сетей это Ethernet, Token Ring, FDDI, Fast Ethernet, 100VG-AnyLAN, для глобальных сетей – протоколы соединений «точка-точка» SLIP и PPP, протоколы территориальных сетей с коммутацией пакетов X.25, frame relay.
Следующий уровень (уровень III) – это уровень межсетевого взаимодействия, который занимается передачей пакетов с использованием различных транспортных технологий локальных сетей, территориальных сетей, линий специальной связи и т. п.
В качестве основного протокола сетевого уровня (в терминах модели OSI) в стеке используется протокол IP, который изначально проектировался как протокол передачи пакетов в составных сетях, состоящих из большого количества локальных сетей, объединенных как локальными, так и глобальными связями. Поэтому протокол IP хорошо работает в сетях со сложной топологией, рационально используя наличие в них подсистем и экономно расходуя пропускную способность низкоскоростных линий связи. Протокол IP является дейтаграммным протоколом, то есть он не гарантирует доставку пакетов до узла назначения, но старается это сделать.
К уровню межсетевого взаимодействия относятся и все протоколы, связанные с составлением и модификацией таблиц маршрутизации, такие как протоколы сбора маршрутной информации RIP (Routing Internet Protocol) и OSPF (Open Shortest Path First), а также протокол межсетевых управляющих сообщений ICMP (Internet Control Message Protocol). Последний протокол предназначен для обмена информацией об ошибках между маршрутизаторами сети и узлом – источником пакета. С помощью специальных пакетов ICMP сообщается о невозможности доставки пакета, о превышении времени жизни или продолжительности сборки пакета из фрагментов, об аномальных величинах параметров, об изменении маршрута пересылки и типа обслуживания, о состоянии системы. В определенных типах физических сетей (Ethernet и Token Ring) для преобразования адресов сетевого уровня в адреса физической сети и обратно используются специальные протоколы разрешения адресов ARP (Adress Resolution Protocol) и RARP (Reverse Adress Resolution Protocol).
Следующий уровень (уровень II) называется основным. На этом уровне функционируют протокол управления передачей TCP (Transmission Control Protocol) и протокол дейтаграмм пользователя UDP (User Datagram Protocol). Протокол TCP обеспечивает надежную передачу сообщений между удаленными прикладными процессами за счет образования виртуальных соединений. Протокол UDP обеспечивает передачу прикладных пакетов дейтаграммным способом, как и IP, и выполняет только функции связующего звена между сетевым протоколом и многочисленными прикладными процессами.
Протокол UDP имеет и некоторые преимущества перед TCP. Для установления логических соединений нужно время. Так же логические соединения требуют дополнительных системных ресурсов для поддержки на компьютере информации о состоянии соединения. UDP занимает системные ресурсы только в момент отправки или получения данных. Поэтому если распределенная система осуществляет непрерывный обмен данными между клиентом и сервером, связь с помощью транспортного уровня TCP окажется для нее более эффективной. Если же коммуникации между хост-компьютерами осуществляются редко, предпочтительней использовать протокол UDP.
Верхний уровень (уровень I) называется прикладным. За долгие годы использования в сетях различных стран и организаций стек TCP/IP накопил большое количество протоколов и сервисов прикладного уровня. К ним относятся такие широко используемые протоколы, как протокол копирования файлов FTP, протокол эмуляции терминала telnet, почтовый протокол SMTP, используемый в электронной почте сети Internet, гипертекстовые сервисы доступа к удаленной информации, такие как WWW и многие другие.
Адресация IP
Особенностью TCP/IP является гибкая система адресации. Плата за это наличие централизованных служб типа DNS.
Адрес состоит из двух частей – номер сети и номер узла в сети. IP-адрес версии 4 имеет длину 4 байта, записывается в виде четырех десятичных чисел, разделенных точками. Для определения, какие байты принадлежат номеру сети, а какие номеру узла существует несколько подходов. Первым был реализован классовый подход.
Таблица 5. Классы IP-адресов
Класс
|
Первые биты
|
Число байт для № сети
|
Число байт для № узла
|
Число сетей
|
Число узлов
|
A
|
0
|
1
|
3
|
28-2=126
|
224
|
B
|
10
|
2
|
2
|
16 тыс.
|
216
|
C
|
110
|
3
|
1
|
2 млн.
|
248
|
D
|
1110
|
Групповой адрес
|
256 млн.
|
|
E
|
11110
|
Зарезервировано
|
128 млн.
|
|
Таблица 6. Нумерация IP-сетей
Класс
|
Первые биты
|
Наименьший номер сети
|
Наибольший номер сети
|
А
|
0
|
1.0.0.0
|
126.0.0.0
|
В
|
10
|
128.0.0.0
|
191.225.0.0
|
С
|
110
|
192.0.0.0
|
223.255.255.0
|
D
|
1110
|
224.0.0.0
|
239.255.255.255
|
F
|
11110
|
240.0.0.0
|
247.255.255.255
|
Уникальный IP-адрес назначается каждому сетевому интерфейсу специальной организацией, Internet Network Information Center (InterNIC), которая отвечает за выделение адресов сетям, объединенным в мировую сеть Internet. До 1 апреля 1993 г. (дата создания InterNIC) регистрационное обслуживание для Internet (назначение IP-адресов и имен доменов DNS) выполнялось организацией Network Information Center (NIC). В настоящее время NIC выполняет запросы только для сети DDN (Defеnse Data Network). Всех остальных пользователей Internet обслуживает регистрационный сервис InterNIC.
Особые IP-адреса
Адреса вида 127.х.х.x используются для отладки, вида 0.0.х.х – принадлежат той же сети, вида х.х.255.255 – широковещательные. Некоторые адреса предназначены только для локального использования и не обрабатываются маршрутизаторами. В классе А это 10.0.0.0, в классе В – диапазон 172.16.0.0–172.31.0.0.
Компьютеры, подсоединенные к нескольким физическим сетям (multihomed), имеют несколько IP-адресов – по одному для каждого сетевого интерфейса. Соответственно, эти IP-адреса различаются своими сетевыми идентификаторами. Таким образом, мы можем сделать вывод, что на самом деле адрес в internet задает не отдельную машину, а ее сетевое соединение.
Помимо адресов, предназначенных для одного хоста (unicast), существуют также широковещательные (broadcast) и групповые (multicast) адреса.
Широковещательные адреса позволяют обращаться ко всем хостам сети. В них поле идентификатора хоста состоит только из единиц. Механизм IP-адресации предоставляет возможность широковещательной передачи, но не гарантирует ее, поскольку она зависит от характеристик конкретной физической сети. В Ethernet, например, широковещательная передача может выполняться с той же эффективностью, что и обычная передача данных, но есть сети, которые вообще не поддерживают такой тип передачи или имеют для этого ограниченные возможности.
Групповые адреса (адреса класса D) используются для отправки сообщений определенному множеству адресатов (multicasting). Такая возможность необходима для многих приложений, например для реализации интерактивных конференций, отправки почты или новостей группе получателей. Для поддержки групповой передачи хосты и маршрутизаторы используют протокол IGMP, который предоставляет всем системам в физической сети информацию о том, какие хосты принадлежат к какой группе в настоящее время.
В связи с бурным ростом Internet 32-битная схема адресации нынешней версии IPv4, уже не удовлетворяет потребности мировой сети. Новая версия, IРv6, проект которой был обнародован в 1991 г., призвана решить эти проблемы. IPv6 обеспечит 128-битный формат IP-адреса и будет поддерживать автоматическое назначение адресов.
Использование масок
Второй подход для разбиения адреса на номер узла и номер сети заключается в использовании масок. Маска – это число, с помощью которого устанавливается граница между номером сети и номером узла. Маска содержит единицы в тех разрядах (последовательно, с левого края), которые должны интерпретироваться как номер сети. Маска для стандартного класса А:
255.0.0.0 (11111111.00000000.00000000.00000000)
Число единиц в маске не обязательно кратно 8 (8 дает деление на байты).
При помощи масок возможна структуризация сетей.
Рассмотрим адрес класса В. Под номер сети выделено 2 байта – 16 бит. Используем маску 255.255.192.0. после этого под номер сети выделено 18 бит. Образовались подсети 00, 01, 10, 11 с числом узлов 214. Для их разделения надо использовать внутренний маршрутизатор. Реально конечные узлы можно разделить на 3 подсети, а четвертый номер подсети используется для связи портов внутреннего маршрутизатора и внешнего. При использовании масок постоянной длины в четвертой сети номера узлов не используются.
Более рациональное использование адресного пространства возможно при применении масок переменной длины.
Для сети из 8 узлов – маска 255.255.255.248 (для узлов последние 3 бита).
К первой категории продуктов управления IP-адресами относятся интеллектуальные утилиты распределения адресов, например системы NetID компании Isotro и QIP компании Quadritek Systems, и созданный в 1993 г. протокол динамической конфигурации хоста (Dynamic Host Configuration Protocol DHCP). По этому протоколу системный администратор конфигурирует одну машину в сети как сервер DHCP, а все остальные становятся его клиентами. DHCP поддерживает динамическое назначение IP-адресов, при котором адрес из заданного при конфигурации пула IP-адресов выделяется на ограниченный период времени или до отказа клиента от его использования. Это позволяет эффективнее использовать ограниченное число IP-адресов. Если какие-либо компьютеры подключаются к сети время от времени, то для них можно совместно использовать не очень большую область адресов (во всяком случае, меньшую, чем, если бы каждый из них имел свой собственный постоянный адрес). DHCP также поддерживает автоматическое назначение постоянного IP-адреса и назначение вручную, при котором выбором адреса занимается системный администратор, а сервер DHCP только извещает клиента о назначении. Протокол DHCP разработан на базе старого протокола стека TCP/IP, Bootstrap Protocol (BOOTP), который обеспечивает при начальной загрузке автоматическое получение информации о конфигурации ВООТР-клиентом от ВООТР-сервера. Серверы DHCP реализованы в ОС Windows NT и системе управления сетью SolarNet компании SunSoft. Клиентскую часть протокола поддерживает большинство пакетов, реализующих TCP/IP.
ТCP/IP дает пользователям возможность работать не с адресами хост-компьютеров, а с их именами, что, конечно, намного удобнее для человеческого восприятия. Распределенная база данных DNS (Domain Name System) обеспечивает отображение IР-адресов в имена хостов. Любое приложение может вызвать стандартную библиотечную функцию для преобразования IP-адреса в соответствующее имя хоста или наоборот. Эта база данных является распределенной, поскольку ни один объект в Internet не обладает всей информацией об именах. Каждый объект (например, университетский факультет, компания или подразделение компании) поддерживает свою базу данных и имеет серверную программу, к которой могут обращаться другие системы (клиенты) в cети. DNS обеспечивает протокол, по которому взаимодействуют эти клиенты и серверы.
Особенности протокола TCP/IP
Internet Protocol – основной протокол сетевого уровня, позволяющий реализовывать межсетевые соединения. Он используется обоими протоколами более высокого транспортного уровня. IP определяет базовую единицу передачи данных в internet, IP-дейтаграмму, указывая точный формат всей информации, проходящей по сети TCP/IP.
Структура IP-пакета. Заголовок (20 байт) и поле данных.
-
Номер версии 4 бита (IPv4 или IPv6 )
-
Длина заголовка 4 бита, обычно 20 байт, может быть больше для передачи служебной информации за счет поля Опции
-
Тип сервиса 1 байт задает приоритет пакета при маршрутизации
-
3 бита. 0 – обычный пакет, 7 – управляющий пакет.
-
Еще 3 бита указывают, по какому критерию выбирать маршрут: максимизация пропускной способности, минимизация задержки, надежность
-
6 и 7 биты – резерв
-
Общая длина пакета. 2 байта. Можно указать до 65535, но реально бывает 1500 байт для Ethernet. Рекомендовано не делать пакеты больше 576 байт.
-
Идентификатор пакета. 2 байта. Исходный пакет можно фрагментировать.
-
Флаги 3 бита, признаки фрагментации. Первый бит всегда 0, второй 1,если нельзя фрагментировать, третий 1, если фрагмент промежуточный.
-
Смещение фрагмента 13 бит. Для сборки пакета из фрагментов. Кратно 8 байтам.
-
Время жизни в секундах 1 байт. Уменьшается каждым маршрутизатором, если = 0, то пакет самоуничтожается.
-
Протокол верхнего уровня, передающий пакет.
-
Контрольная сумма. Вычисляются в каждом маршрутизаторе, т.к. изменяются поля заголовка.
-
IP-адрес источника 4 байта.
-
IP-адрес назначения 4 байта.
-
Опции (1 бит – копировать опции во все фрагменты, 2 бита – класс опции – управлении, отладка, 5 бит – номер опции – например, запись маршрута).
Программное обеспечение IP выполняет функции маршрутизации, выбирая путь данных во множестве физических сетей. Для определения маршрута поддерживаются специальные таблицы; выбор осуществляется на основе адреса сети, к которой подключен компьютер-адресат. Протокол IP определяет маршрут отдельно для каждого пакета данных, не гарантируя надежной доставки в нужном порядке. Он задает непосредственное отображение данных на нижележащий физический уровень передачи и реализует тем самым высокоэффективную доставку пакетов.
Кроме IP, на сетевом уровне используются также протоколы ICMP и IGMP. ICMP (Internet Control Message Protocol) отвечает за обмен сообщениями об ошибках и другой важной информацией с сетевым уровнем на другом хосте или маршрутизаторе. IGMP (Internet Group Management Protocol) используется для отправки IP-дейтаграмм множеству хостов в сети.
TCP и UDP – протоколы транспортного уровня, организующие поток данных между конечными системами для приложений верхнего уровня. Эти протоколы значительно отличаются друг от друга.
TCP обеспечивает надежную передачу данных между двумя прикладными процессами путем установления логического соединения. Он позволяет устанавливать логическое соединение и затем использовать его для передачи больших массивов данных, как если бы существовало прямое физическое соединение. Протокол позволяет осуществлять:
-
дробление потока данных,
-
подтверждать получение пакетов данных,
-
задавать таймауты (которые позволяют подтверждать получение информации), организовывать повторную передачу в случае потери данных и т.д.
Поскольку этот транспортный протокол реализует гарантированную доставку информации, то использующие его приложения получают возможность игнорировать все детали такой передачи.
Реализация метода скользящего окна
Единицей данных протокола TCP является сегмент. Информация, поступающая к протоколу TCP в рамках логического соединения от протоколов более высокого уровня, рассматривается протоколом TCP как неструктурированный поток байт. Поступающие данные буферизуются средствами TCP. Для передачи на сетевой уровень из буфера «вырезается» некоторая непрерывная часть данных, называемая сегментом. Участники соединения должны договориться о максимальном размере сегмента, который они будут использовать
В протоколе TCP реализована разновидность алгоритма квитирования с использованием окна. Особенность этого алгоритма состоит в том, что, хотя единицей передаваемых данных является сегмент, окно определено на множестве нумерованных байт неструктурированного потока данных, поступающих с верхнего уровня и буферизуемых протоколом TCP. В качестве квитанции получатель сегмента отсылает ответное сообщение (сегмент), в которое помещает число, на единицу превышающее максимальный номер байта в полученном сегменте. Если размер окна равен W, а последняя квитанция содержала значение N, то отправитель может посылать новые сегменты до тех пор, пока в очередной сегмент не попадет байт с номером N+W. Этот сегмент выходит за рамки окна, и передачу в таком случае необходимо приостановить до прихода следующей квитанции
Протокол UDP реализует гораздо более простой сервис передачи, обеспечивая подобно протоколам сетевого уровня, ненадежную доставку данных без установления логического соединения, но, в отличие от IP – для прикладных систем на хост-компьютерах. Он просто посылает пакеты данных, дейтаграммы, с одной машины на другую, но не предоставляет никаких гарантий их доставки. Все функции надежной передачи должны встраиваться в прикладную систему, использующую UDP.
Среди известных распределенных приложений, использующих TCP такие как Telnet, FTP и SMTP. Протоколом UDP пользуется, в частности, протокол сетевого управления SNMP.
Порты
Протоколы TCP и UDP связывают процессы, а не узлы (это сделал протокол IP). TCP и UDP идентифицируют приложения по 16-битным номерам портов. Операционная система распределяет пакеты транспортного уровня по очередям к точкам входа прикладных процессов.
Серверы приложений обычно имеют заранее известные номера портов. Например, в каждой реализации TCP/IP, которая поддерживает сервер FTP, этот протокол передачи файлов получает для своего сервера номер TCP-порта 21. Каждый Telnet-сервер имеет TCP-порт 23, а сервер протокола TFTP (Trivial File Transfer Protocol) – UDP-порт 69. Службам, которые могут поддерживаться любой реализацией TCP/IP, назначаются номера портов в диапазоне от 1 до 1023. Назначение номеров портов находится в ведении организации Internet Assigned Numbers Authority (IANA).
Номер порта, номер сети, номер узла однозначно определяют прикладной процесс, и их совокупность называется сокетом.
Клиент приложения обычно не интересуется номером своего порта для транспортного уровня, который он использует. Ему лишь необходимо гарантировать, что этот номер уникален для данного хоста. Номера портов клиентов приложений принято называть краткосрочными, поскольку в общем случае клиенты существуют ровно столько времени, сколько работающий с ним пользователь нуждается в соответствующем сервере. Серверы, напротив, находятся в рабочем состоянии все время, пока включен хост, на котором они работают. В большинстве реализаций TCP/IP краткосрочным номерам портов выделен диапазон от 1024 до 5000.
На самом нижнем уровне (сетевой интерфейс) используются специальные протоколы разрешения адресов ARP (Adress Resolution Protocol) и RARP (Reverse Adress Resolution Protocol). Эти протоколы применяются только в определенных типах физических сетей (Ethernet и Token Ring) для преобразования адресов сетевого уровня в адреса физической сети и обратно.
4.3. IPX/SPX
IPX/SPX – Internetwork Packet Exchange / Sequenced Packet Exchange
Это стек протоколов фирмы Novell, разработанных для сетевой ОС NetWare в начале 80-х годов. Им пользуются и сетевые ОС других фирм. Спецификации этого фирменного стека не открытые. Этот стек создавался для локальных сетей. Он не требователен к ресурсам и хорош для небольших сетей.
По своей структуре этот стек схож с TCP/IP. Основа стека – протокол сетевого уровня IPX. Он отвечает за адресацию, маршрутизацию пакетов и их негарантированную доставку. Поверх него работает протокол SPX, который обеспечивает установление соединения и гарантированную доставку пакетов в правильном порядке.
Прикладной уровень – NCP (NetWare Core Protocol) поддерживает ОС Novell NetWare (файловую систему, службу печати), SAP (Service Advertising Protocol) – при помощи широковещательных сообщений узлы отдают ресурсы в пользование.
Формат адреса 12байт
-
Номер сети 4 байта
-
Номер узла 6 байт. Часто это МАС-адрес
-
Номер сокета 2 байта. Это аналог порта, который идентифицирует приложение.
Формат пакета IPX
-
Контрольная сумма, 2 байта.
-
Длина пакета, 2 байта короткий пакет 30 байт(только заголовок), обычно 576 байт.
-
Управление транспортировкой, 1 байт Время жизни 15 маршрутизаторов.
-
Тип пакета, 1 байт. Служебный=5, прикладной=4.
-
IPX-адрес назначения, 12 байт.
-
IPX-адрес источника, 12 байт.
В отличие от IP-адреса, в IPХ-адресе в качестве адреса узла выступает физический адрес адаптера.
Ограничения:
-
нет динамической фрагментации на сетевом уровне, размер пакета формируется прикладным уровнем,
-
много служебной информации (30 байт заголовок от 546 полезных это 5%),
-
короткое время жизни 15 (в IP до 255с),
-
нет поля качества сервиса,
-
обмен квитанциями с простоями,
-
до версии 4 соответствие символьных имен и сетевых адресов выполнялось широковещательными сообщениями.
5. Литература -
Гук М. Аппаратные средства локальных сетей. Энциклопедия – СПб: Питер, 2000. 576 с.
-
Олифер В.Г., Олифер Н.А. Компьютерные сети: принципы, технологии, протоколы. – СПб.: Питер, 2001. 672 c.
-
Олифер В.Г., Олифер Н.А. Новые технологии и оборудование IP-сетей. – СПб.: БХВ-Петербург, 2001. 512 c.
-
Таненбаум Э. Компьютерные сети. 4-е изд. – СПб.: Питер, 2006. – 992 с.
Достарыңызбен бөлісу: |