5.5.1. Общая характеристика
протокола IPX
Протокол Internetwork Packet Exchange (IPX)
является оригинальным протоколом сетевого
уровня стека Novell, разработанным в начале 80-х
годов на основе протокола Internetwork Datagram Protocol (IDP)
компании Xerox.
Протокол IPX соответствует
сетевому уровню модели ISO/OSI (рис. 5.29) и
поддерживает, как и протокол IP, только
дейтаграммный (без установления соединений)
способ обмена сообщениями. В сети NetWare
наиболее быстрая передача данных при
наиболее экономном использовании памяти
реализуется именно протоколом IPX.
Рис. 5.29. Соответствие
протоколов IPX/SPX семиуровневой модели OSI
Надежную передачу пакетов может
осуществлять транспортный протокол SPX (Sequenced
Packet Exchange Protocol), который работает с
установлением соединения и
восстанавливает пакеты при их потере или
повреждении. Как видно из рис. 5.29,
использование протокола SPX не является
обязательным при выполнении операций
передачи сообщений протоколами
прикладного уровня.
Прикладной уровень стека IPX/SPX
составляют два протокола: NCP и SAP. Протокол NCP
(NetWare Core Protocol) поддерживает все основные
службы операционной системы Novell NetWare -
файловую службу, службу печати и т. д.
Протокол SAP (Service Advertising Protocol) выполняет
вспомогательную роль. С помощью протокола
SAP каждый компьютер, который готов
предоставить какую-либо службу для
клиентов сети, объявляет об этом
широковещательно по сети, указывая в SAP-пакетах
тип службы (например, файловая), а также свой
сетевой адрес. Наличие протокола SAP
позволяет резко уменьшить
административные работы по
конфигурированию клиентского программного
обеспечения, так как всю необходимую
информацию для работы клиенты узнают из
объявлений SAP (кроме маршрутизаторов по
умолчанию, о которых можно узнать с помощью
протокола IPX).
В отличие от протокола IP, который
изначально разрабатывался для глобальных
сетей, протокол IPX создавался для
применения в локальных сетях. Именно
поэтому он является одним из самых
экономичных протоколов в отношении
требований к вычислительным ресурсам и
хорошо работает в сравнительно небольших
локальных сетях.
Специфика адресации в протоколе
IPX является источником как достоинств, так и
недостатков этого протокола. Протокол IPX
работает с сетевыми адресами, включающими
три компонента:
номер сети (4 байта);
номер узла (6 байт);
номер сокета (2 байта).
Номер сети в отличие от протокола
IP имеет всегда фиксированную длину - 4 байта.
В принципе для корпоративных сетей эта
длина является избыточной, так как вряд ли у
предприятия возникнет потребность
разделить свою сеть на 4 миллиарда подсетей.
В период доминирования сетей IPX/SPX компания
Novell рассматривала возможность создания
единого всемирного центра по распределению
IPX-адресов, аналогичного центру InterNIC. Однако
стремительный рост популярности сети Internet
лишил это начинание смысла. Хотя протоколы
IPX/SPX по-прежнему работают в огромном
количестве корпоративных сетей, заменить IP
во всемирной сети они уже не смогут. Надо
отметить, что специалисты компании Novell
приложили немало усилий, чтобы в новой
версии 6 протокол IP приобрел некоторые
черты, свойственные протоколу IPX, и тем
самым облегчил переход пользователей IPX на
IPv6 (когда это станет практически
необходимым). Обычно все три составляющие
IPX-адреса, в том числе и номер сети,
записываются в шест-надцатеричной форме.
Под номером узла в протоколе IPX
понимается аппаратный адрес узла. В
локальных сетях это МАС - адрес узла -
сетевого адаптера или порта маршрутизатора.
Размер адреса узла в 6 байт отражает
происхождение этого поля, но в него можно
поместить любой аппаратный адрес, если он
укладывается в размер этого поля.
Номер сокета (socket) идентифицирует
приложение, которое передает свои
сообщения по протоколу IPX. Сокет выполняет в
стеке IPX/SPX ту же роль, что порт в протоколах
TCP/UDP стека TCP/IP. Наличие этого поля в
протоколе сетевого уровня, которым
является IPX, объясняется тем, что в стеке Novell
прикладные протоколы NCP и SAP
взаимодействует с сетевым уровнем
непосредственно, минуя транспортный
протокол SPX. Поэтому роль мультиплексора-демультиплексора
прикладных протоколов приходится
выполнять протоколу IPX, для чего в его
пакете необходимо передавать номер сокета
прикладного протокола. Протоколы NCP и SAP не
пользуются услугами SPX для ускорения работы
стека, а скорость работы на маломощных
персональных компьютерах начала 80-х годов
была одной из основных целей компании Novell.
Каждый дополнительный уровень в стеке, хотя
бы и такой простой, как UDP, замедляет работу
стека. За отказ от транспортного уровня
компании Novell пришлось реализовывать
средства восстановления утерянных пакетов
в протоколе NCP. Тем не менее прикладные
программисты, разрабатывающие свои
собственные сетевые приложения для стека IPX/
SPX, могут пользоваться протоколом SPX, если не
захотят встраивать достаточно сложные
алгоритмы скользящего окна в свои
программы.
Протокол IPX является одним из
наиболее легко настраиваемых протоколов
сетевого уровня. Номер сети задается
администратором только на серверах, а номер
узла автоматически считывается из сетевого
адаптера компьютера. На клиентском
компьютере номер сети не задается - клиент
узнает эту информацию из серверных
объявлений SAP или локального
маршрутизатора.
Адрес маршрутизатора по
умолчанию также не нужно задавать вручную
на каждом клиентском компьютере. В
протоколе IPX есть специальный запрос,
который передается на заранее определенный
номер сокета. Если в сети клиента есть
маршрутизатор или сервер, выполняющий роль
программного маршрутизатора, то клиент при
старте системы выдает такой запрос
широковещательно, и все маршрутизаторы
сообщают ему свои МАС - адреса, которые
используются в качестве адреса следующего
маршрутизатора.
Как видно из описания,
административные издержки при
конфигурировании сети IPX/SPX сводятся к
минимуму. При этом отпадает необходимость в
протоколе типа ARP, выясняющего соответствие
между сетевыми адресами узлов и их МАС -
адресами. Однако при смене сетевого
адаптера нужно скорректировать адрес узла,
если для его выяснения используются не
широковещательные запросы-ответы, а
справочная служба типа Novell NDS, в которой
фиксируются сетевые адреса серверов.
Отсутствие протокола ARP повышает
производительность сети, так как позволяет
не тратить время на выполнение ARP-запросов и
ARP-ответов.
|