X.25

X.25 は、ITU-T勧告であり、パケット交換WAN通信のためのネットワーク層通信プロトコルである。
概要.
X.25 WAN ネットワークは、パケット交換方式 (PSE) ノードを物理層、専用線、Plain Old Telephone Service 接続またはISDN接続を物理層およびデータリンク層に使用する。
X.25 はOSIプロトコルスタックの一部であり、主に1980年代に通信事業者や金融業者の現金自動預け払い機の接続などに使われた。
X.25 は現在ではほとんどがより単純で安全なプロトコル（特に Internet Protocol）に置換されているが、ISDNのDチャネルでX.25通信を提供している電話会社もある。
歴史.
X.25 は最も古くからあるパケット交換サービスの1つであり、OSI参照モデル以前に開発された。しかし実はTCP/IPモデルよりも新しい。その3層構造はOSI参照モデルの下位3層と密接に対応している。その機能はOSI参照モデルのネットワーク層に直接対応している。また、OSIのネットワーク層にはない機能もサポートしている。
X.25 はITU-T（当時は CCITT）の Study Group VII が、いくつかのデータネットワークプロジェクトの成果に基づいて開発した。様々な更新と追加が標準に加えられ、ITU-T勧告に記録された。勧告は4年ごとに書籍として出版されている。X.25 は公衆データ網に関する規定を定めたXシリーズ勧告の一部である。
公衆データ網は、X.25プロバイダの国際的な集合体を表す名称であり、X.25プロバイダは各国の国有電話会社であることが多かった。X.25 は現在も特定用途で使われ続けている。
アーキテクチャ.
X.25 は汎用の世界的なパケット交換網を構築することを目的としていた。X.25システムの大部分は、これを達成するのに必要とされる厳密な誤り検出訂正の仕様と、資本集約的な物理資源のより効率的な共有の説明である。
X.25規格では、加入者（DTE、データ端末装置）とX.25ネットワーク（DCE、データ回線終端装置）の間のインタフェースだけを定義している。X.25 によく似た X.75 プロトコルは、X.25ネットワーク同士のインタフェースを規定しており、複数のネットワークを経由した接続が可能になる。X.25 ではネットワーク内の運用を規定していないため、多くのX.25ネットワークは X.25 や X.75 によく似た方式を内部でも採用していたが、全く違うプロトコルをネットワーク内で使っている例もあった。X.25 と互換性のあるISO 8208 では、X.25 DTE 同士を間にネットワークを挟まずに接続する形態も規定していた。
X.25モデルは公衆網を通して信頼できる回線を確立するという伝統的な電話網の概念に基づいているが、ソフトウェアを使ってネットワーク経由の "Virtual Call" を作成する。これはデータ端末装置 (DTE) 同士の相互接続を行い、一種のポイント・ツー・ポイント接続を提供する。各エンドポイントは多数の Virtual Call をそれぞれ別のエンドポイントとの間で確立できる。
当初の仕様にはコネクションレス方式も含まれていたが、次のリビジョンでは排除された。「限定された応答ファシリティでのファストセレクト」は完全な呼確立とコネクションレス型通信の中間である。それは、クエリ応答型のトランザクション処理でよく使われ、1回の要求と128バイト以内の応答で構成される。データは拡張された発呼要求パケットで運ばれ、応答は呼リジェクトパケットの拡張フィールドで運ばれる。この際、接続が完全に確立されることはない。
X.25と密接に関連するプロトコルとして、非同期機器（ダム端末やプリンター）をX.25ネットワークに接続するためのプロトコルがある（X.3、X.28、X.29）。この機能は、パケット組み立て/分解装置 (PAD) を使って実現される。
OSI参照モデルとの関係.
X.25はOSI参照モデルより以前から存在しているが、OSI参照モデルの物理層はX.25の「物理レベル」に対応し、データリンク層はX.25の「リンクレベル」に対応し、ネットワーク層はX.25の「パケットレベル」に対応している。X.25のリンクレベルである LAPB は信頼できない可能性もあるデータリンク上（複数の場合はマルチリンクと呼ぶ）で信頼できるデータ経路を提供する。X.25 のパケットレベルは Virtual Call 機構を提供するもので LAPB 上で動作する。リンクレベルが信頼できるデータ伝送を提供する限り、パケットレベルは誤りのない Virtual Call を提供する。ただし、リンクレベルが信頼できるデータ伝送を提供しない場合に備えて、パケットレベルでも誤りを通知する機構を備えている。初期バージョン以外のX.25では、OSIのネットワーク層のアドレッシング（後述するNSAPアドレッシング）を提供するファシリティを含む。
ユーザー機器サポート.
X.25はダム端末をホストコンピュータに接続していた時代に開発されたが、コンピュータ同士の通信にも使えるものである。直接ホストコンピュータと電話回線で接続すると、ホスト側は多数のモデムと電話回線を用意しなければならず、相手側は遠距離であれば長距離接続で料金が高くつくことになる。その代わりに、ホストコンピュータをネットワーク・サービス・プロバイダの網にX.25接続することができる。すると、ダム端末側は最も近いネットワークの PAD（パケット組み立て/分解装置）にダイヤルアップ接続すればよい。PAD は電話回線とX.25のシリアルリンクのゲートウェイであり、ITU-Tの X.29 および X.3 で定義されている。
PAD にダム端末を接続すると、ユーザーはPADに対してどのホストと接続するかを指示するため、X.121 で規定されている電話番号のようなアドレスを入力する（サービスプロバイダがホスト名とX.121アドレスのマッピングを提供している場合は、ホスト名を入力すればよい）。すると、PADはホストに対してX.25の呼を発行し、仮想回線 (VC) を確立する。X.25 が仮想回線を提供するものであることから、これを回線交換網と呼ぶことがあるが、実際にはパケット交換を内部で行っている。2つのX.25ホストが互いに接続することも可能であり、その場合は間にPADは不要である。理論上は、両者が同じキャリアの網に接続しているかどうかは問題にはならないが、実際には業者をまたがった接続が不可能な場合もあった。
フロー制御の目的で、デフォルトのウィンドウサイズが2のスライディングウィンドウプロトコルを使う。肯定応答はローカルなものとエンドツーエンドのものがある。データパケットにあるD (Data Delivery) ビットで送信側がエンドツーエンドの肯定応答を要求しているかどうかを指定する。D=1 なら、肯定応答は相手側のDTEまでデータが到達した後でそのDTEが発行する。D=0 なら、相手側DTEまでデータが届く前にネットワークが肯定応答してもよい（必須ではない）。
PAD機能は X.28 と X.29 で定義されており、特に非同期テキスト端末をサポートするためのものである。様々な通信機器を接続するための PAD と等価な機器が開発された（例えば、IBM の SNA 機器など）。
誤り制御.
パケットレベルの誤り回復手続きは、誤りのある受信データの再送指示は下位のレベルで行われるという前提で行われる。パケットレベルの誤り制御は接続（呼）における情報フローの再同期を行うものであり、同時に回復不能な状態となった接続を解放する役目も担う。
アドレッシングと仮想回線.
X.25では2種類の仮想回線 (VC) をサポートしている。通常の VC は要求に応じて接続が確立される。恒久仮想回線 (PVC) はネットワーク内に事前設定された仮想回線である。通常の VC を交換仮想回線 (SVC) とも呼ぶ。
VC の確立では X.121 アドレスを使う。X.121 アドレスは、3桁の国コード (CCC) と1桁のネットワークIDで4桁のデータコードネットワークID (DNIC) を構成し、その後に最大10桁の国内端末番号 (NTN) が続く（いずれも数字）。ネットワークIDが1桁であるため、1つの国に10までしか通信業者がないと仮定しているように思われるが、それ以上の業者がある国では国コードを複数取得して対応していた。1つの業者のネットワークでNTNの全部の桁を必要とすることは稀で、使わない桁を加入者が利用できるようになっていた（これをサブアドレスとも呼ぶ）。サブアドレスは、アプリケーションの識別や加入者側のネットワーク内のルーティングに使われた。
X.25(1984)では仕様にNSAPアドレスファシリティが追加され、OSI CONS (Connection-Oriented Network Service) の要求仕様に合致するようになった。公衆X.25網はNSAPアドレスの利用を要求されたわけではないが、OSI CONS をサポートするため、NSAPアドレスと他のITU-T指定のDTEファシリティをDTEからDTEへ透過的に搬送することを要求された。その後、同じ DTE-DCE インタフェースでX.121アドレス以外の各種アドレスも追加サポートするようになった。それは、テレックスのアドレス、公衆交換電話網のアドレス（E.163）、ISDNアドレス（E.164）、Internet Protocol アドレス (IANA ICP)、IEEE 802.2 MAC アドレスである。
PVC は恒久的に確立された接続なので、アドレスを使うことはない。PVC は加入者インタフェースで論理チャネル識別子（後述）によって識別される。ただし、PVCをサポートしていたX.25ネットワークは多くはない。
X.25ネットワークへの1つのDTE-DCEインタフェースで、最大4095の論理チャネルを持つことができ、それぞれの論理チャネルに1つの仮想回線または恒久仮想回線が対応する。ただし、ネットワーク側が4095の仮想回線をサポートしていたとは限らない。パケットがどの論理チャネルのものかを示すため、各パケットには12ビットの論理チャネル識別子があり、8ビットの論理チャネル番号と4ビットの論理チャネルグループ番号で構成されている。論理チャネル番号は接続が続く間は割り当てられている。論理チャネル識別子は加入者側のDTEとネットワーク側のDCEの間の論理チャネルの識別に使われるだけで、そこから先の仮想回線には無関係である。つまり、ネットワークの先の相手側のDTEでも同様に全く別の論理チャネル識別子を割り当てている。論理チャネルは、恒久仮想回線用、相手から接続してきた仮想回線用、双方向の仮想回線用、こちらから接続する仮想回線用の4種類に分けられている。接続方向はDTEから見た仮想接続の発行元がどちらなのかという意味であって、通信は常に双方向である。それぞれに割り当てる論理チャネル数は加入者が設定できる。しかし、ネットワーク側がサポートしていない種類の論理チャネルは使えず、中には双方向仮想回線用の論理チャネルしかサポートしないネットワークもある。国際ネットワークでは、入ってくる方向の論理チャネルはオプションで、それ以外のサポートが必須とされている。DTE-DCEインタフェースが複数の論理チャネルをサポートすることは必須ではない。論理チャネル識別子としてゼロが恒久仮想回線や仮想回線に割り当てられることはない。ゼロは特定の仮想回線とは関係しないパケットに使用する（例えば、パケット層のリスタート、登録、診断）。
料金.
公衆網では、X.25 は月ごとの定額部分があり、リンク速度によって価格が設定されていて、さらにセグメント毎の料金が上乗せされる。リンク速度は2400bit/sから2Mbit/sまで各種存在するが、64kbit/s以上のものは公衆網ではめったにない。セグメントとは64バイトのデータであり、呼び出した側に課金される（コレクトコールがサポートされていれば、相手側に課金する場合もある）。「ファストセレクト」ファシリティを使った呼び出し（発呼要求内に128バイトのデータを含み、それに対する応答がある）には特別料金が加算される。PVCではリンク速度による定額分に加えて月額レンタル料が課金され、セグメント毎の課金はVCよりも低額である。このため、大量のデータを転送する場合だけVCよりも割安になる。
衰退.
公衆X.25網は1970年代から1980年代に多くの国で構築され、各種オンラインサービスへのアクセスコストの低減に貢献した。
しかし電話網がデジタル化され、モデムが高性能化すると、X.25のオーバーヘッドでは太刀打ちできなくなった。結果として、X.25 から誤り訂正機能を除いたフレームリレーが登場し、ある程度のスループット向上を実現した。仮想回線の概念はATMなどに引き継がれた（ネットワーク多重化のため）。
パケット交換におけるX.25プロトコル処理は複雑であり、Internet Protocol のネットワーク層のルーティング機能より性能が悪い。TCP/IPはエンドツーエンド原理により、ネットワーク自体のコストを低減して性能向上を図っている。このため、X.25 は経済的にもそれに太刀打ちできなくなり、衰退した。
最近の状況.
X.25ネットワークは今も一部で使われ続けており、特に開発途上国での利用が多い。アマチュア無線のパケット通信では X.25 から派生した AX.25 がよく使われているが、最近ではTCP/IPへの移行の動きもある。Racal Paknet は Widanet と名前を変え、今も世界各国で X.25 ベースのネットワークを運営している。Widanet は低データレートの無線プラットフォームであり、GPS位置情報追跡やPOSソリューションなどに使われている。オランダやドイツでは、ISDN上で簡略化したX.25を使い、POS端末などに利用しているが、今後これがどうなるかは定かではない（オランダ語版のおよびを参照）。
日本ではNTTコミュニケーションズの法人向けパケット通信サービス（DDX-P、DDX-TP、INS-P）でX.25を使ってきたが、2010年3月末でDDX-P/DDX-TPのサービスを終了、現在はINS-Pを残すのみとなった。またKDDIも国際パケット通信サービスとして「VENUS-P」を提供していたが、こちらは2006年3月末でサービスを終了している。
詳細.
1パケット内のデータフィールド長は16オクテットから4096オクテット（2nの値のみ）で、仮想回線毎に呼設定時に決定する。これは、通信相手が扱える最大データ長がこちら側と違っている可能性があるためである。
X.25ファシリティ.
X.25 には一連のユーザファシリティがあり、ITU-T Recommendation X.2 に定義されている。X.2 のユーザファシリティは以下の5種類に分類される。
また、ITU-T Recommendation X.7 には、X.25 向けのDTEオプション・ユーザファシリティが定義されている。X.7 のファシリティは以下の4種類に分類される。
X.25プロトコルのバージョン.
CCITT/ITU-T のこのプロトコルについての仕様は公衆データ網に関するものである。ISO/IEC の仕様ではプライベートネットワーク向け機能が追加されており（例えばLANでの利用を意図している）、同時にCCITT/ITU-Tの仕様とも互換を保っている。
ユーザファシリティなどの機能のサポート状況は版によって異なる。以下に主なX.25プロトコルの版を示す。
X.25 勧告では、多数のオプションを定義しており、各ネットワークがそれらをサポートするか否か、あるいはどう実行するかを選択できるようにしている。従って、各ネットワークは自身のX.25実装がどうなのかを文書で明らかにする必要があり、それによってDTE機器製造業者がそのネットワーク向けの設定を評価できるようになる。設定が間違っていると、ネットワーク内のリソースを浪費して他の接続にまで影響を与えることがある。従って、加入者のDTE機器は接続するネットワークに合わせて設定する必要がある。設定が間違っていると、全く通信できないこともある。また、機器とネットワークの組合せが不可能な場合もある。これはTCP/IPとの大きな違いである。
公衆網はプロトコルの初期の版から採用しているが、加入者は非互換の発生を恐れて新しい版に移行したがらないため、新版の実装費用の捻出に苦労した。多くの公衆網は1980年版までをサポートし、一部が1984年版までサポートしていた。1990年ごろにはX.25向けの新しいネットワークスイッチの開発は下火になり、1993年版や1996年版を実装した機器はほとんどない。
さらに CCITT/ITU-T のプロトコル規格に加えて、ISO/IEC 8208 にも以下の4つの主な版がある。