IPX

IPX (англ. internetwork packet exchange — межсетевой обмен пакетами) — протокол сетевого уровня модели OSI в стеке протоколов IPX/SPX. Является производным от Xerox Network Services' IDP. Он так же может выступать как протокол транспортного уровня.

Набор протоколов IPX/SPX был наиболее популярным с конца 1980-х до средины 1990-х годов, так как использовался в Novell NetWare[1], а также потому, что для DOS и Windows (до Windows 95) из-за ограниченного размера основной области памяти (до 640 килобайт) было очень важно, что драйверы IPX занимают небольшой объём памяти. Ещё одним преимуществом IPX является простота настройки на клиентских компьютерах. Но IPX плохо масштабируется для больших сетей, таких как Интернет, в то время как TCP/IP стало более универсальным решением. Компьютеры и сети используют несколько сетевых протоколов, что позволяет почти всем сайтам на IPX работать по протоколу TCP/IP, чтобы обеспечить подключение к интернету[2]. Так же можно запускать и более поздние продукты Novell без IPX, с полной поддержкой IPX и TCP/IP компанией Novell NetWare версии 5[3].

Главным преимуществом IPX является то, что он практически не нуждается в настройке. В то время, когда протоколы для динамической конфигурации хоста не существовали и протокол BOOTP не был распространен, сеть IPX могла быть настроена почти автоматически. Клиентский компьютер использовал MAC-адрес своей сетевой карты в качестве адреса узла и узнавал то, что ему надо было знать о топологии сети от серверов или маршрутизаторов. Маршруты распространяются по протоколу RIP, а услуги - по протоколу SAP

Структура пакета IPX

[править | править код]

У каждого пакета IPX есть заголовок с данной структурой:

Байты Поле
2 Контрольная сумма (Всегда 0xFFFF — без проверки контрольной суммы)
2 Размер пакета (включая сам заголовок IPX)
1 Транспортный контроль (количество передач)
1 Тип пакета
12 Адрес назначения
12 Адрес отправки

Тип пакета может быть следующим:

Значение Значение/Протокол
0 Неизвестный
1 RIP
2 Эхо-пакет
3 Пакет-ошибка
4 PEP
5 SPX
17 NCP

IPX-адресация

[править | править код]

IPX-адресация имеет следующую структуру:

Байты Поле
4 Номер сети
6 Номер узла
2 Номер сокета

Номер сети

[править | править код]

Номер сети позволяет связывать узлы IPX, которые не принадлежат одной сети или кабельной системе.

  • Логическим сетям присваивается уникальный 32-битный адрес в диапазоне от 0x116 до 0xFFFFFFFE16
  • У хостов 48-битный адрес узла, который изначально является последними 4 знаками MAC-адреса. Адрес узла добавляется для создания создания уникального локального сетевого адреса.
  • Номер сети 00:00:00:00 означает текущую сеть.
  • Широковещательный адрес - FF:FF:FF:FF.

Номер узла

[править | править код]

Номер узла используется для обращения к определённому компьютеру (сетевому интерфейсу) в данной сети. Клиентские компьютеры используют свой MAC-адрес в качестве номера узла.

Значение FF:FF:FF:FF:FF:FF может быть использовано в качестве номера узла, чтобы передать пакет всем узлам в текущей сети.

Номер сокета

[править | править код]

Наличие номера сокета в адресе IPX позволяет IPX работать как протокол транспортного уровня, похожий на UDP

Номер сокета Протокол
0x0001-0x0BB8 Зарегистрирован компанией Xerox
0x0001 информация по маршрутизации пакетов
0x0002 Пакет обработки эхо
0x0003 Пакет обработки ошибок
0x0020-0x003F Экспериментальный
0x0BB9-0xFFFF Динамическое назначение
0x0451 NetWare Core Protocol
0x0452 SAP
0x0453 RIP
0x0455 NetBIOS
0x0456 Пакет диагностики
0x0457 Пакет стерилизации
0x4000-0x4FFF Динамически назначаемые имена сокетов
0x4003 Используется Novell NetWare клиентами
0x8000-0xFFFF Статически присвоенные номера сокетов
0x8060 IPX
0x9091 TCP чрез IPXF
0x9092 UDP чрез IPXF
0x9093 IPXF, IPX протокол фрагментации

Типы кадров

[править | править код]

IPX может передаваться по сети интернет при помощи 4 типов кадров:

  • 802.3 (raw) содержит заголовок IEEE 802.3, затем - IPX-данные. Он используется в старых системах и может быть выявлен по первым двум байтам IPX 0xFFFF.
  • 802.2 (LLC или Novell) содержит заголовок IEEE 802.3, затем - заголовок LLC, а потом - IPX-данные. Поле заголовка LLC 0xE0 обозначает «NetWare».
  • 802.2 (SNAP) содержит заголовок IEEE 802.3, затем - заголовок LLC, затем - заголовок SNAP, а потом - IPX-данные. Поле заголовка LLC 0xAA обозначает «SNAP», а поле OUI 0x000000 в SNAP указывает на EtherType.
  • Ethernet II (Ethernet DIX) включает заголовок Ethernet II, а за тем следуют IPX-данные.

В сетях, отличных от Ethernet, доступны только 2 типа кадров 802.2 и SNAP.

Примечания

[править | править код]
  1. Simson Garfinkel, Gene Spafford. Practical UNIX and Internet Security. — 2nd. — O'Reilly Media, 1996. — «It does not scale well to large networks such as the Internet».
  2. Do you still support IPX/SPX on your Windows servers? TechRepublic (12 февраля 2001). Архивировано 10 июля 2012 года.
  3. Maintaining IPX Compatibility During a Migration to TCP/IP on a NetWare Network Архивная копия от 7 января 2021 на Wayback Machine. support.novell.com.