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/SPX | TCP/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 →