この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:3
ページ更新者:atom
更新日時:2026-06-11 07:07:02

タイトル: IPX/SPX
SEOタイトル: IPX/SPX プロトコル完全ガイド (歴史的)

この記事の要点
  • IPX/SPX は Novell 社が 1980 年代に開発したネットワークプロトコル群。NetWare 4.11 までの標準
  • IPX (Internetwork Packet Exchange) = L3 ネットワーク層、SPX (Sequenced Packet Exchange) = L4 トランスポート層。TCP/IP の対 (IP/TCP) に相当
  • 1980-90 年代の LAN 市場で TCP/IP より優位だった (自動アドレス割当・設定不要・速度)。DOS 時代の LAN ゲーム (Diablo, Doom, Warcraft) で広く採用
  • NetWare 5.0 (1998) で TCP/IP 標準化、Microsoft NWLink (Windows 2000-XP) で同居サポート、Windows Vista 以降ドライバ削除
  • 現在は歴史的プロトコル。残存環境はレガシー業務システム移行の対象。DOSBox 等エミュレータでは IPX over UDP として復活可能

IPX/SPX とは

IPX/SPX は、Novell 社が 1980 年代初頭に開発した独自プロトコルスイートです。Xerox PARC の Xerox Network Systems (XNS) を起源としつつ、PC LAN 向けに最適化されました。当時主流の Novell NetWare OS の標準プロトコルとして、世界中の企業 LAN を支配していました。

プロトコルOSI 層役割TCP/IP での対応
IPXL3 (ネットワーク層)パケットルーティング・アドレッシングIP
SPXL4 (トランスポート層)コネクション指向・順序保証TCP
NCPL5-7NetWare Core Protocol。ファイル・印刷サービスSMB / NFS 相当
SAPL7Service Advertising Protocol。サービス広告DNS-SD 相当
RIP (IPX)L3ルーティング情報交換RIP (TCP/IP) と別物

IPX アドレスの構造

IPX は「IP の前身」とも言える設計で、80 ビットのアドレス空間を持っていました。

IPX アドレス: 80 bit = 10 bytes

[ネットワーク番号 4B] . [ノード番号 6B]
        |                       |
        |                       └─ MAC アドレスと同じ 6B (自動取得)
        └─ 管理者が割当 (or 0=ローカル)

例: 0000A1B2:00-04-AC-12-34-56

特徴:
- ノード番号は MAC アドレスを流用 → ★ 設定不要 (自動)
- ネットワーク番号は NetWare サーバが配布
- DHCP のような仕組み不要、つなぐだけで通信可能 (Plug & Play)

この「設定不要」こそ TCP/IP より優位とされた最大の理由です。1990 年代当時、TCP/IP は手動で IP / サブネット / DNS / ゲートウェイを設定する必要がありました (DHCP が普及していなかった)。

SPX の特徴

  • TCP と同様のコネクション指向 (相手と確立してから通信)
  • シーケンス番号・確認応答による順序保証と信頼性
  • SPXII (改良版) ではウィンドウサイズ拡張・パケットサイズ拡大
  • NetWare のファイル共有 (NCP) の下層として使用

当時の利点と限界

利点限界
設定不要 (Plug & Play)WAN・Internet で使えない (独自プロトコル)
LAN 内で高速ルーティング情報が SAP で大量に流れ帯域圧迫
NetWare のファイル共有が高性能独自・閉鎖的で OS ロックイン
セキュリティ機能あり標準化されていない (RFC でない)

歴史的タイムライン

出来事
1983Novell NetWare 86 リリース。IPX/SPX が登場
1989NetWare 3.x で企業 LAN の事実上標準に
1993NetWare 4.x (NDS)。世界の LAN 市場シェア 60% 超
1994Microsoft Windows NT が SMB / TCP/IP を強化、競争激化
1998NetWare 5 リリース。標準プロトコルが TCP/IP に変更
2000Windows 2000 が NWLink (IPX/SPX 互換) を提供
2006NetWare 6.5 が最終 NetWare 系。Linux ベース OES に移行
2007Windows Vista で NWLink ドライバ削除
2011Novell 自体が Attachmate / Micro Focus に買収
現在事実上絶滅。レガシー業務システムにのみ残存

DOS 時代の LAN ゲームと IPX

1990 年代の PC ゲームは、TCP/IP よりIPX/SPX で LAN 対戦を実装するのが主流でした。理由は (1) Plug & Play で設定不要、(2) 当時の PC は TCP/IP スタックを後から入れる必要があった、(3) ゲーム側の実装が簡単だったから。

  • DOOM (1993) — IPX で 4 人 LAN 対戦
  • Warcraft / StarCraft (Blizzard 初期)
  • Diablo / Diablo II — LAN モードで IPX
  • Quake シリーズ — IPX と TCP/IP 両対応
  • Command & Conquer

Windows での IPX 設定 (歴史記録)

Windows 95 / 98 / NT / 2000 / XP では NWLink を有効化
    コントロールパネル
        → ネットワーク
        → プロトコルの追加
        → Microsoft
        → NWLink IPX/SPX/NetBIOS 互換トランスポート

WAN を超えた通信は不可。LAN 内のみ。

Windows Vista (2007) で NWLink 削除。
それ以降、IPX で通信したいなら DOSBox + ipxnet 等を使う

現代での復活: DOSBox の IPX over UDP

DOS 時代のゲームを今プレイする際、DOSBox はIPX over UDP のトンネリングをサポートしています:

# DOSBox 設定 (dosbox.conf)
[ipx]
ipx=true

# サーバ (ホスト) 側
Z:\> ipxnet startserver 213
IPX Tunneling Server started on port 213

# クライアント側
Z:\> ipxnet connect server.example.com 213
Connected to IPX Server at server.example.com

# あとは Diablo, DOOM 等を起動して LAN モード選択

残存環境の TCP/IP 移行

未だ IPX/SPX が動いているのは、主に以下のケース:

  • 古いPOS レジスタや工場の制御 PC (Windows NT/2000 のまま稼働)
  • NetWare 5/6 の業務システム
  • 古い CAD ワークステーション (LAN ライセンスサーバが IPX)

移行手段:

  • NetWare ファイルサーバ → SMB ファイルサーバ (Samba / Windows Server)
  • NDS → Active Directory / LDAP
  • IPX 依存業務アプリ → リライト or Wine/エミュレータで仮想化

SAP (Service Advertising Protocol) の課題

IPX 時代の SAP は、ネットワーク上のすべてのサービス (ファイルサーバ / 印刷 / ライセンス) が60 秒ごとにブロードキャストする設計でした。LAN が大規模化するにつれ SAP 嵐と呼ばれる帯域圧迫が問題化し、TCP/IP の DNS-SD / SLP / DHCP に比べてスケーラビリティが劣ることが TCP/IP 移行の決定打になりました。

FAQ

Q: 今でも IPX/SPX を学ぶ価値はある?
A: 実務で必要な機会はほぼゼロ。ただし「TCP/IP は唯一の選択肢ではなかった」という歴史的教訓は意義があり、ネットワーク設計の判断材料として知っておくと良い。

Q: Linux で IPX を扱えるか?
A: 古い Linux カーネルには IPX サポート (CONFIG_IPX) があったが、Linux 5.15 で削除。事実上、現代の OS では扱えない。

Q: AppleTalk と何が違う?
A: AppleTalk も同じく独自プロトコルだったが、Mac 専用。IPX は Windows / DOS / Unix 等マルチ OS 対応で広く普及した。両者とも TCP/IP に取って代わられた歴史を持つ。