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 есть заголовок с данной структурой:
Байты | Поле |
---|---|
2 | Контрольная сумма (Всегда 0xFFFF — без проверки контрольной суммы) |
2 | Размер пакета (включая сам заголовок IPX) |
1 | Транспортный контроль (количество передач) |
1 | Тип пакета |
12 | Адрес назначения |
12 | Адрес отправки |
Тип пакета может быть следующим:
Значение | Значение/Протокол |
---|---|
0 | Неизвестный |
1 | RIP |
2 | Эхо-пакет |
3 | Пакет-ошибка |
4 | PEP |
5 | SPX |
17 | NCP |
IPX адресация имеет следующую структуру:
Байты | Поле |
---|---|
4 | Номер сети |
6 | Номер узла |
2 | Номер сокета |
Номер сети позволяет связывать узлы IPX, которые не принадлежат одной сети или кабельной системе.
Номер узла используется для обращения к определённому компьютеру (сетевому интерфейсу) в данной сети. Клиентские компьютеры используют свой 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-х типов кадров:
В сетях, отличных от Ethernet, доступны только 2 типа кадров 802.2 и SNAP.