Открыть сервис

IPX/SPX

IPX/SPX (Internetwork Packet Exchange/Sequenced Packet Exchange) — это стек протоколов, разработанный компанией Novell для использования в локальных сетях (LAN) и глобальных сетях (WAN), преимущественно в операционных системах NetWare. Он представляет собой набор правил и форматов, обеспечивающих обмен данными между узлами сети, включая адресацию, маршрутизацию и гарантированную доставку пакетов. IPX/SPX был доминирующим стеком протоколов в корпоративных и образовательных сетях в 1980-х и первой половине 1990-х годов, пока его не вытеснил стек TCP/IP.

История

Стек IPX/SPX был создан компанией Novell в начале 1980-х годов как часть сетевой операционной системы NetWare, предназначенной для организации файловых серверов и рабочих станций. Протоколы были разработаны на основе более ранних протоколов Xerox Network Systems (XNS), созданных компанией Xerox в 1970-х годах. Novell адаптировала XNS, упростив его и добавив поддержку для своих собственных технологий.

Первая версия NetWare (NetWare 86, 1983 год) уже использовала IPX/SPX для базовой передачи данных. В 1985 году вышла NetWare 286, которая сделала IPX/SPX стандартом де-факто для сетей на базе IBM PC. В 1989 году с выходом NetWare 386 (версия 3.x) стек получил расширенные возможности, включая поддержку маршрутизации и протокола Service Advertising Protocol (SAP) для автоматического обнаружения серверов.

В середине 1990-х годов, с ростом популярности Интернета и протокола TCP/IP, использование IPX/SPX начало сокращаться. Novell сама начала поддерживать TCP/IP в NetWare 4.x (1993 год), а в 1998 году с выходом NetWare 5.x IPX/SPX был полностью заменён на TCP/IP в качестве основного стека. К началу 2000-х годов IPX/SPX практически исчез из коммерческих сетей, хотя некоторые устаревшие системы продолжали его использовать до конца десятилетия.

Архитектура и протоколы

Стек IPX/SPX состоит из нескольких уровней, соответствующих модели OSI (Open Systems Interconnection), хотя и не полностью с ней совпадает. Основные протоколы:

IPX (Internetwork Packet Exchange)

IPX — это протокол сетевого уровня (уровень 3 модели OSI), отвечающий за адресацию и маршрутизацию пакетов между узлами в составной сети. Он является аналогом IP (Internet Protocol) в стеке TCP/IP, но не гарантирует доставку пакетов (работает по принципу «best effort» — «с наилучшими усилиями»).

  • Адресация: Каждый узел в сети IPX имеет уникальный 10-байтовый адрес. Первые 4 байта — это номер сети (назначается администратором), последние 6 байт — это MAC-адрес сетевого адаптера (аппаратный адрес, заданный производителем). Таким образом, адресация IPX является плоской и не требует иерархии, как в IP.
  • Формат пакета: Пакет IPX содержит заголовок длиной 30 байт, включающий контрольную сумму (checksum), длину пакета, управляющую информацию (transport control), тип пакета (например, данные, маршрутная информация), адреса отправителя и получателя.
  • Маршрутизация: IPX поддерживает динамическую маршрутизацию через протокол RIP (Routing Information Protocol) для IPX, который обновляет таблицы маршрутизации на маршрутизаторах. RIP для IPX использует метрику «тики» (ticks) — единицу времени, примерно равную 1/18 секунды, а также количество хопов (шагов) для выбора оптимального пути.

SPX (Sequenced Packet Exchange)

SPX — это протокол транспортного уровня (уровень 4 модели OSI), работающий поверх IPX. Он обеспечивает надёжную, ориентированную на соединение передачу данных, гарантируя доставку пакетов в правильном порядке и без потерь. SPX является аналогом TCP (Transmission Control Protocol) в стеке TCP/IP.

  • Функции: SPX устанавливает логическое соединение между двумя узлами (клиентом и сервером), нумерует пакеты, подтверждает их получение (acknowledgements) и повторно отправляет потерянные или повреждённые пакеты.
  • Формат: Заголовок SPX добавляется к пакету IPX и содержит поля для номера соединения, номера последовательности, номера подтверждения, флагов управления потоком и длины данных.
  • Использование: SPX применялся для приложений, требующих высокой надёжности, таких как передача файлов, базы данных и удалённый доступ.

Дополнительные протоколы

  • NCP (NetWare Core Protocol): Протокол прикладного уровня, предоставляющий доступ к файлам, принтерам и другим ресурсам сервера NetWare. Работает поверх IPX/SPX и обеспечивает аутентификацию, управление сессиями и передачу данных.
  • SAP (Service Advertising Protocol): Протокол, позволяющий серверам объявлять о своих услугах (например, файловых или печатных) в сети. Клиенты используют SAP для автоматического обнаружения доступных серверов без ручной настройки.
  • RIP (Routing Information Protocol) для IPX: Протокол маршрутизации, используемый для обмена информацией о сетях между маршрутизаторами. Он основан на алгоритме Беллмана-Форда и поддерживает до 15 хопов (шагов) между узлами.

Преимущества и недостатки

Преимущества

  • Простота настройки: Благодаря использованию MAC-адресов в качестве части адреса, IPX/SPX не требовал ручной настройки IP-адресов (как в TCP/IP). Сети IPX могли быть развёрнуты с минимальной конфигурацией, что упрощало администрирование.
  • Автоматическое обнаружение: Протокол SAP позволял клиентам автоматически находить серверы, что было удобно для пользователей, не знакомых с сетевыми настройками.
  • Эффективность в локальных сетях: IPX/SPX был оптимизирован для высокоскоростных локальных сетей (Ethernet, Token Ring) и обеспечивал низкую задержку при передаче данных.
  • Поддержка широковещательных рассылок: Стек хорошо работал с широковещательными (broadcast) и многоадресными (multicast) сообщениями, что было полезно для служб объявлений.

Недостатки

  • Ограниченная масштабируемость: IPX/SPX не был рассчитан на глобальные сети с тысячами узлов. Широковещательные пакеты SAP и RIP создавали избыточный трафик, который перегружал медленные каналы WAN.
  • Отсутствие поддержки Интернета: Стек не был совместим с TCP/IP, что делало его непригодным для подключения к глобальной сети Интернет без дополнительных шлюзов.
  • Сложность маршрутизации в больших сетях: Протокол RIP для IPX имел ограничение в 15 хопов, что не позволяло строить очень большие сети. Кроме того, метрика «тики» не всегда точно отражала реальную задержку.
  • Зависимость от оборудования: Адресация на основе MAC-адресов делала сеть чувствительной к замене сетевых карт (при замене карты менялся адрес узла).

Применение

IPX/SPX был основным стеком протоколов в сетях на базе Novell NetWare, которые широко использовались в корпоративных и образовательных учреждениях в 1980-х и 1990-х годах. Типичные сценарии применения включали:

  • Файловые серверы: Обеспечение доступа к общим файлам и папкам на сервере NetWare.
  • Печать: Управление сетевыми принтерами и очередями печати через протокол NCP.
  • Базы данных: Передача данных между клиентскими приложениями и серверами баз данных (например, Btrieve).
  • Удалённый доступ: Подключение удалённых рабочих станций к серверу через модемы или локальные сети.

После вытеснения TCP/IP, IPX/SPX остался в основном в устаревших системах и эмуляторах. Некоторые старые игры (например, Doom, Quake) поддерживали IPX/SPX для многопользовательской игры по локальной сети, что позволяло играть без настройки IP-адресов.

Сравнение с TCP/IP

ХарактеристикаIPX/SPXTCP/IP
Адресация10 байт (сеть + MAC)4 байта (IPv4) или 16 байт (IPv6)
НадёжностьОпционально (SPX)Встроенная (TCP)
МаршрутизацияRIP (тики + хопы)RIP, OSPF, BGP и др.
МасштабируемостьОграниченная (до 15 хопов)Высокая (глобальные сети)
Совместимость с ИнтернетНетДа
Автоматическая настройкаДа (через MAC)Нет (требуется DHCP или ручная настройка)
Широковещательный трафикВысокийНизкий (при правильной настройке)

Интересные факты

  • Протокол IPX/SPX был разработан на основе XNS (Xerox Network Systems), который, в свою очередь, повлиял на создание протокола TCP/IP. Некоторые идеи, такие как использование контрольных сумм и нумерация пакетов, были заимствованы из XNS.
  • В 1990-х годах Novell предпринимала попытки сделать IPX/SPX совместимым с TCP/IP, создав шлюзы и эмуляторы, но это не остановило переход на открытый стек.
  • Некоторые старые игры, такие как StarCraft (1998 год) и Warcraft II (1995 год), поддерживали IPX/SPX для многопользовательской игры по локальной сети, что позволяло обходить ограничения TCP/IP в то время.

Источники

  • Novell NetWare Documentation (1993-1998)
  • «Computer Networks» by Andrew S. Tanenbaum (4th edition, 2003)
  • «TCP/IP Illustrated, Volume 1» by W. Richard Stevens (1994)
  • RFC 1075 (Distance Vector Multicast Routing Protocol) — исторический контекст
  • Статьи из журнала «Byte» (1985-1995)

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →