Протокол - это набор правил и процедур, регулирующих порядок осуществления связи. Естественно, все компьютеры, участвующие в обмене, должны работать по одним и тем же протоколам, чтобы по завершении передачи вся информация восстанавливалась в первоначальном виде.
О протоколах самых нижних уровней (физического и канального), относящихся к аппаратуре, уже упоминалось в предыдущих разделах. В частности, к ним относятся методы кодирования и декодирования, методы управления обменом в сети. Подробнее о некоторых из них будет рассказано в специальных главах книги. А сейчас мы остановимся на особенностях протоколов более высоких уровней, реализуемых программно.
Связь сетевого адаптера с сетевым программным обеспечением осуществляют драйверы сетевых адаптеров. Именно благодаря драйверу компьютер может не знать никаких аппаратурных особенностей адаптера (ни его адресов, ни правил обмена с ним, ни его характеристик). Драйвер унифицирует, делает единообразным общение программных средств с любой платой данного класса. Сетевые драйверы, поставляемые вместе с сетевыми' адаптерами, позволяют сетевым программам одинаково работать с платами разных поставщиков и даже с платами разных локальных сетей (Ethernet, Arcnet, Token-Ring и т.д.). Если говорить о стандартной модели OSI, то драйверы, как правило, выполняют часть функций верхнего подуровня (подуровень управления доступом к среде, MAC) канального уровня, хотя иногда они выполняют и часть функций сетевого уровня. Например, драйверы формируют передаваемый пакет в буферной памяти адаптера, читают из этой памяти пришедший по сети пакет, дают команду на передачу и информируют компьютер о приеме пакета.
В любом случае перед приобретением платы адаптера не мешает ознакомиться со списком совместимого оборудования (Hardware Compatibility List, HCL), который публикуют все производители сетевых операционных систем. Выбор там довольно велик (например, для Microsoft Windows NT Server список включает более сотни драйверов сетевых адаптеров). Если в список HCL не входит адаптер какого-то типа, лучше не рисковать и не покупать его.
Рассмотрим теперь кратко протоколы более высоких уровней.
Существует несколько стандартных наборов (или, как их еще называют, стеков) протоколов, получивших сейчас наиболее широкое распространение:
• набор протоколов ISO/OSI;
• IBM System Network Architecture (SNA);
• Digital DECnet;
• Novell NetWare;
• Apple AppleTalk;
• набор протоколов глобальной сети Internet, TCP/IP.
Включение в этот список протоколов глобальной сети вполне объяснимо, ведь модель OSI используется для любой открытой системы, как на базе локальной сети, так и на основе глобальной сети или комбинации локальной и глобальной сетей.
Протоколы перечисленных наборов делятся на три основные типа:
• прикладные протоколы (выполняющие функции прикладного, представительского и сеансового уровней модели OSI);
• транспортные протоколы (выполняющие функции транспортного и сеансового уровней OSI);
• сетевые протоколы (выполняющие функции трех нижних уровней OSI).
Прикладные протоколы обеспечивают взаимодействие приложений и обмен данными между ними. К наиболее популярным из них относятся следующие: • FTAM (File Transfer Access and Management) - протокол OSI доступа к файлам;
• X.400 - протокол СС1ТТ для международного обмена электронной почтой;
• Х.500 - протокол СС1ТТ служб файлов и каталогов на нескольких системах;
• SMTP (Simple Mail Transfer Protocol) - протокол глобальной сети Internet для обмена электронной почтой;
• FTP (File Transfer Protocol) - протокол глобальной сети Internet для передачи файлов;
• SNMP (Simple Network Management Protocol) - протокол для мониторинга сети, контроля за работой сетевых компонентов и управления ими;
• Telnet — протокол глобальной сети Internet для регистрации на удаленных хостах и обработки данных на них;
• Microsoft SMBs (Server Message Blocks, блоки сообщений сервера) и клиентские оболочки или редиректоры Microsoft;
• NCP (Novell NetWare Core Protocol) и клиентские оболочки или редиректоры Novell.
Транспортные протоколы поддерживают сеансы связи между компьютерами и гарантируют надежный обмен данными между ними. Наиболее популярны из них следующие:
• TCP (Transmission Control Protocol) - TCP/IP-протокол для гарантированной доставки данных, разбитых на последовательность фрагментов;
• SPX - часть набора протоколов IPX/SPX (Internetwork Packet Exchange/Sequential Packet Exchange) для данных, разбитых на последовательность фрагментов, предложенный фирмой Novell;
• NWLink - реализация протокола IPX/SPX от фирмы Microsoft;
• NetBEUI - (NetBIOS Extended User Interface, расширенный интерфейс NetBIOS) — устанавливает сеансы связи между компьютерами (NetBIOS) и предоставляет верхним уровням транспортные услуги (NetBEUI).
Сетевые протоколы управляют адресацией, маршрутизацией, проверкой ошибок и запросами на повторную передачу. Наиболее популярны из них следующие:
• IP (Internet Protocol) - TCP/IP-протокол для передачи данных;
• IPX (Internetwork Packet Exchange) - протокол фирмы NetWare для передачи и маршрутизации пакетов;
• NWLink - реализация протокола IPX/SPX фирмой Microsoft;
• NetBEUI - транспортный протокол, обеспечивающий услуги транспортировки данных для сеансов и приложений NetBIOS.
Все перечисленные протоколы могут быть поставлены в соответствие тем или иным уровням эталонной модели OSI. При этом надо учитывать, что разработчики протоколов не слишком строго придерживаются этих уровней. Например, некоторые протоколы выполняют функции, относящиеся сразу к нескольким уровням модели OSI, а другие - только часть функций одного из уровней. Это приводит к тому, что протоколы разных фирм часто оказываются несовместимы между собой, а также к тому, что протоколы могут быть успешно использованы исключительно в составе своего набора протоколов (стека), который выполняет более или менее законченную группу функций. Как раз это и делает сетевую операционную систему «фирменной», то есть, по сути, несовместимой со стандартной моделью открытой системы OSI.
В качестве примера на рис. 4.7,4.8 и 4.9 схематически показано соотношение протоколов, используемых популярными фирменными сетевыми операционными системами, и уровней стандартной модели OSI. Как видно из рисунков, практически ни на одном из уровней нет четкого соответствия реального протокола какому-нибудь уровню идеальной модели.
Рассмотрим теперь подробнее некоторые наиболее распространенные протоколы.
Модель OSI допускает два различных метода взаимодействия в сети:
• Метод взаимодействия без логического соединения (метод дейтаграмм) - самый старый и простейший метод, в котором каждый пакет рассматривается как самостоятельный объект (рис. 4.10). Пакет передается без установления логического канала, то есть без предварительного обмена служебными пакетами для выяснения готовности приемника, а также без ликвидации логического канала, то есть без пакета подтверждения окончания передачи. Дойдет пакет до приемника или нет - неизвестно (проверка факта получения переносится на более высокие уровни). Метод дейтаграмм предъявляет повышенные требования к аппаратуре (так как приемник всегда должен быть готов к приему пакета). Достоинство метода в том, что передатчик и приемник работают независимо друг от друга, к тому же пакеты могут буферироваться и передаваться затем все вместе, можно также использовать широковещательную передачу, то есть адресовать пакет всем абонентам одновременно. Недостатки метода — это возможность потери пакетов, а также возможность бесполезной загрузки сети пакетами в случае отсутствия или неготовности приемника.
• Метод с логическим соединением (рис. 4.11, см. также рис. 3.2) — это более поздняя разработка с более сложным порядком взаимодействия. Пакет передается только после того, как будет установлено логическое соединение (канал) между приемником и передатчиком. Каждому информационному пакету сопутствует один или несколько служебных пакетов (установка соединения, подтверждение получения, запрос повторной передачи, разъединение соединения). Логический канал может устанавливаться на время передачи одного или нескольких пакетов. Метод более сложен, чем метод дейтаграмм, но гораздо надежнее его, так как к моменту ликвидации логического канала передатчик уверен, что все его пакеты дошли до места назначения, причем дошли успешно. Не бывает при данном методе и перегрузки сети из-за бесполезных пакетов, как в случае метода дейтаграмм. Недостаток метода с логическим соединением состоит в том, что довольно сложно разрешить ситуацию, когда принимающий абонент по тем или иным причинам не готов к обмену, например из-за обрыва кабеля, отключения питания, неисправности сетевого оборудования, сбоя в компьютере. При этом требуется алгоритм обмена с повторением неподтвержденного пакета заданное количество раз, причем важен и тип неподтвержденного пакета.
Примеры протоколов, работающих по первому методу - это IP и IPX, a протоколов, работающих по второму методу - это TCP и SPX. Именно поэтому эти протоколы используются в виде связанных наборов TCP/IP и IPX/SPX, в которых протокол более высокого уровня (TCP, SPX), работающий на базе протокола более низкого уровня (IP, IPX), гарантирует правильную доставку пакетов в требуемом порядке. Это позволяет объединить достоинства двух рассмотренных методов.
Протоколы IPX/SPX образуют набор, используемый в сетевых программных средствах локальных сетей фирмы Novell (NetWare), которые в наше время являются одними из самых популярных. Это сравнительно небольшой и быстрый протокол, поддерживающий маршрутизацию. Прикладные программы могут обращаться непосредственно к уровню IPX, например, для посылки широковещательных сообщений, но значительно чаще работают с уровнем SPX, гарантирующим быструю и надежную доставку пакетов. Если скорость не слишком важна, то используется еще более высокий уровень, например Net BIOS, предоставляющий более удобный сервис. Фирмой Microsoft предложена своя реализация IPX/SPX, называемая NWLink.
Протокол TCP/IP специально разработан для глобальных сетей и для межсетевого взаимодействия. Он рассчитан на низкое качество каналов связи, на большую вероятность ошибок и разрывов связей. Этот протокол принят во всемирной компьютерной сети Internet, значительная часть абонентов которой подключается по коммутируемым линиям (то есть обычным телефонным линиям). Протокол TCP/IP также поддерживает маршрутизацию. На его основе работают протоколы более высоких уровней, такие как SMTP, FTP, SNMP. Недостаток протокола TCP/IP - низкая скорость работы.
Протокол Net BIOS (сетевая базовая система ввода/вывода) был разработан фирмой IBM первоначально для сетей IBM PC Network и IBM Token-Ring no образцу системы BIOS персонального компьютера. С тех пор этот протокол стал фактическим стандартом (официально он не стандартизован), и многие сетевые операционные системы содержат в себе эмулятор Net BIOS для обеспечения совместимости. Первоначально Net BIOS реализовывал сеансовый, транспортный и сетевой уровни, однако в последующих сетях на более низких уровнях используются стандартные протоколы (например, IPX/SPX), а на долю эмулятора Net BIOS остается только сеансовый уровень. Net BIOS обеспечивает более высокий уровень сервиса, чем IPX/SPX, но он работает медленнее. Протокол NetBEUI - это развитие протокола Net BIOS до транспортного уровня.
Наконец, упоминавшийся набор протоколов OSI - это полный стек протоколов, где каждый протокол точно соответствует конкретному уровню стандартной модели OSI. Набор содержит маршрутизируемые и транспортные протоколы, серии протоколов IEEE 802, протокол сеансового уровня представительского уровня и несколько протоколов прикладного уровня. Пока широкого распространения этот набор протоколов не получил, хотя он и полностью соответствует эталонной модели.