Пытался немного узнать о старых сетевых протоколах и решил, что начну с IPX / SPX. Итак, я построил две виртуальные машины MS-DOS в VirtualBox и установил связь по IPX (после долгих проб и ошибок).
Идея состоит в том, чтобы запустить несколько старых игр DOS, подключиться к многопользовательскому матчу, взаимодействовать с каждым игровым окном и захватывать трафик с помощью Wireshark с главной машины. Из этого я получил Quake, Masters of Orion 2 и MechWarrior 2, чтобы общаться взад и вперед. Doom, Doom2, Duke3d, Warcraft и некоторые другие либо ошибались под виртуальной машиной, либо просто не могли видеть другую виртуальную машину в сети IPX.
Что я обнаружил? Ни одна из рабочих игр не использовала SPX. Даже Microsoft NET DIAG не использовал SPX. Все они работали ТОЛЬКО поверх IPX. Я даже не могу найти примеры SPX или варианты использования трафика SPX, работающего через формирование кадров IEEE 802.3 Ethernet II. Я нашел упоминания о том, что он широко используется на Token Ring, но это все.
Тем не менее, любое приложение, поддерживающее IPX, которое я выследил до сих пор, обычно рекламирует себя как «IPX / SPX», что кажется немного неправильным, поскольку оно, похоже, не использует SPX.
Итак, для чего использовался SPX? Любые приложения DOS, которые его используют, и которые будут работать под моей настройкой виртуальной машины?
редактировать: Я знаю, что IPX относится к SPX, как IP относится к TCP (от уровня 3 к уровню 4), поэтому я ожидал увидеть уровень SPX под уровнем IPX в Wireshark, когда я запускал свои тесты.
Примеры применения:
SPX (аналог TCP) был оптимизирован для локальных сетей и использовал NACK для каждого пакета (предполагалось, что пакеты были получены вместо явного подтверждения) и не имел понятия окна передачи.
Сравните это с TCP, который использует ACK для каждого байта; это также означает, что вы буферизуете все неподтвержденные данные и повторно отправите их после потери пакета.
Однако IPX не подходил для WAN. Например, он не справлялся с разными размерами кадров. Т.е. две сети с разными кадрами (скажем, Ethernet и Ethernet с jumbo-кадрами) не могут взаимодействовать без прокси-сервера или какой-либо формы инкапсуляции.
Кроме того, переупорядочение пакетов в глобальных сетях является обычным явлением, но оно играет чертовски с SPX (по крайней мере, с реализацией Novell), вызывая множество ложных NAK. Примечание 1
Наконец, IPX / SPX поддерживает до 20 сокетов на одном узле. Сравните это с TCP, который поддерживает адресацию тысяч одновременных сокетов.
Примечание 1: Производительность IPX / SPX и TCP / IP