Xerox Network Services
Стек протоколов XNS (англ. Xerox network services) – это набор протоколов, разработанных корпорацией «Xerox» в конце 1970 – начале 1980 годов. Протоколы XNS делятся на 5 уровней, соответствующих 7‑и уровням модели OSI. Обеспечивают маршрутизацию и доставку пакетов. Предназначены для использования в разнообразных средах передачи данных. Использовались коммерческими компаниями для построения первых внутренних локальных сетей.
История
Протоколы XNS изначально использовались в локальных сетях. В некоторой степени протоколы XNS копировались практически всеми сетевыми системами, используемыми в 1980-х и 1990-х годах (хотя это мало повлияло на протоколы стека TCP/IP). Благодаря доступности и раннему появлению на рынке, стек XNS был принят большинством компаний, использовавших локальные сети с момента их появления, в том числе компаниями:
- «Novell, Inc.»;
- «Ungermann-Bass, Inc.» (англ.), которая теперь является частью «Tandem Computers» (англ.);
- «3Com Corporation».
За время, прошедшее с тех пор, каждая из этих компаний внесла в XNS различные изменения.
Компания «Novell»:
- добавила в XNS протокол SAP (англ. service access protocol, протокол доступа к услугам). SAP предназначен для объявления о ресурсах;
- внесла изменения в протокол уровня 3 и выпустила изменённую версию под имеем IPX (англ. internetwork packet exchange, обмен межсетевыми пакетами). В отличие от оригинального протокола, IPX предназначен для работы в сетях IEEE 802.3, а не в сетях Ethernet.
Компания «Ungermann-Bass» (англ.) изменила протокол RIP: добавила поддержку задержек, число пересылок и внесла другие незначительные изменения.
С течением времени изменённые реализации стека XNS стали популярнее, чем оригинальный стек, разработанный компанией «Xerox». Протоколы XNS использовались для объединения компьютеров PC в локальные сети.
Уровни XNS
Протоколы стека XNS разделены на 5 уровней (в отличие от модели OSI, делящей протоколы на 7 уровней).
- Протоколы уровня 0 отвечают за доступ к каналу и за манипуляции потоками битов, примерно соответствуют уровням 1 и 2 модели OSI.
- Протоколы уровня 1 примерно соответствуют той части уровня 3 модели OSI, которая относится к сетевому трафику.
- Протоколы уровня 2 примерно соответствуют части уровня 3 модели OSI, связанной с маршрутизацией в объединённой сети, и уровню 4 модели OSI, который занимается связью отдельных процессов.
- Протоколы уровней 3 и 4 примерно соответствуют двум верхним уровням модели OSI, занимаются структурированием данных, организуют взаимодействие между отдельными процессами.
XNS не содержит протоколов, соответствующих уровню 5 модели OSI (сеансовый уровень).
Сетевой уровень
Протоколом сетевого уровня в стеке XNS является протокол IDP (англ. internet datagram protocol, протокол дейтаграмм интернета). IDP спроектирован на основе протокола из набора PARC Universal Packet (PUP), созданного «Xerox» в 1970‑х годах. IDP примерно соответствует IP (англ. internet protocol, протокол интернета) из стека TCP/IP. IDP разработан в качестве дополнения к протоколу «Ethernet Local Area Network» (также разработанного «Xerox»).
Адреса логических сетей в IDP состоят из трёх полей:
- номер сети (англ. network number) размером 32 бита — число, являющееся уникальным для каждой подсети в объединённой сети;
- номер хоста (англ. host number) размером 48 бит — число, являющееся уникальным для каждого из хостов;
- номер гнезда (англ. socket number) размером 16 бит — число, являющееся уникальным для каждого процесса (гнезда) в пределах одного хоста (аналог порта в TCP, UDP).
Адресами хостов в IDP, как правило, являются их MAC-адреса.
В отличие от TCP/IP, у IDP все четыре поля сокета (адрес отправителя, порт отправителя, адрес получателя, порт получателя) входят в заголовок IDP, так что протоколам верхнего уровня не приходится выполнять демультиплексирование.
В заголовке IDP также содержится поле для контрольной суммы. Контрольная сумма вычисляется для всего пакета, хотя это не является обязательным.
В стеке XNS также имеется протокол, предназначенный для проверки доступности хоста в сети. Этот протокол выполняет те же функции, что и ping в IP, но работает на более низком уровне.
В качестве протокола маршрутизации использовался RIP. RIP был создан на основе протокола англ. gateway information protocol, входящего в набор PARC Universal Packet (PUP). RIP используется и сегодня в других семействах протоколов с небольшими изменениями. Изменения коснулись формата адресов — поля адресов в RIP были изменены таким образом, чтобы появилась возможность хранить в них адреса других семейств протоколов.
Транспортный уровень
Существовало два основных транспортных протокола и оба сильно отличались от транспортного протокола из набора PUP.
Первый — SPP (англ. sequenced packet protocol, протокол упорядоченной передачи пакетов). Отличается от TCP только тем, что порядковые номера подсчитываются не для байтов (как у TCP или у BSP из набора PUP), а для пакетов. Длина пакетов SPP не может быть больше 576 байтов. Процессы клиента могут согласовывать использование различных размеров пакетов на этапе установки соединения, однако SPP не определяет характер таких согласований.
Второй протокол транспортного уровня XNS — PEP (англ. packet exchange protocol, протокол обмена пакетами). PEP — протокол, не гарантирующий доставку и не требующий установки соединения. Похож на UDP и на своего предшественника — PXP от компании «Novell». PEP основан на принципе одного пакета, обеспечивая повторные передачи, но не обеспечивая выявление дублированных пакетов. Полезен для прикладных задач, в которых транзакции запрос-ответ могут повторяться без изменения контекста (являются идемпотентными) или в которых надёжная передача выполняется на другом уровне.
Для передачи сообщений об ошибках (например, «потеря пакета») используется протокол ЕР (англ. error protocol). EP используется и в наборе PUP. В стеке TCP/IP для этих же целей используется ICMP.
Прикладной уровень
Протоколы XNS прикладного уровня не получили широкого распространения. Для большинства коммерческих продуктов, использующих XNS (например, ОС NetWare), были созданы собственные протоколы прикладного уровня.
В первоначальной концепции «Xerox», протоколы XNS прикладного уровня, такие как:
- протокол удалённой печати;
- протокол «Ведение картотеки»;
- и т. д.
работали в дополнение к протоколу «Курьер».
Вклад
В связи с популярностью и широким распространением протокола IP протоколы XNS больше не используются.
В 1980‑х протоколы XNS сыграли важную роль в развитии сетевых технологий, заставив поставщиков программного и аппаратного обеспечения серьёзно рассмотреть вопрос о необходимости создания вычислительных платформ, одновременно поддерживающих более одного стека сетевых протоколов.
Ссылки
- «Xerox System Integration Standard — Internet Transport Protocols» (Xerox, Stamford, 1981)
- «Xerox System Integration Standard — Courier: The Remote Procedure Call Protocol» (Xerox, Stamford, 1981)
- «Cisco Internetworking Technology Overview»