原文:ftp://ftp.rfc-editor.org/in-notes/rfc1332.txt


Network Working Group
Request for Comments: 1332
Obsoletes: RFC 1172

G. McGregor
Merit
May 1992

The PPP Internet Protocol Control Protocol (IPCP)

この文書の位置付け

この文書はインターネットコミュニティのための IAB 標準トラックプロトコルについて述べており、改良に向けての議論と提案を求めている。このプロトコルの標準化の状態と状況は、 "IAB Official Protocol Standards" を参照して欲しい。この文書の配布は無制限である。

要約

Point-to-Pint プロトコル(PPP)[1]は、 ポイントツーポイントリンク上でネットワーク層のプロトコル情報をカプセル化するための標準的手段を提供する。また PPP は拡張可能なリンクコントロールプロトコル(Link Control Protocol)も定義しており、様々なネットワーク層プロトコルの確立と設定とのためのネットワークコントロールプロトコル(Network Control Protocol:NCP)ファミリを提案してる。

この文書は、PPP 上でインターネットプロトコル(Internet Protocol)[2]の確立と設定とを行うための NCP と、PPP 上で Van Jacobson TCP/IP ヘッダ圧縮[3]をネゴシエートおよび利用する方法とを定義する。

この RFC は Internet Engineering Task Force (IETF) の Point-to-Point Protocol Working Group による成果物である。

目次

1. 導入

2. IP のための PPP ネットワークコントロールプロトコル(NCP)
2.1 IP データグラムの送信

3. IPCP 構成オプション
3.1 IP-Addresses
3.2 IP-Compression-Protocol
3.3 IP-Address

4. Van Jacobson TCP/IP ヘッダ圧縮
4.1 構成オプションのフォーマット

付録

A. IPCP 推奨オプション

セキュリティ考察

参考文献

謝辞

代表者のアドレス

著者のアドレス

1. 導入

PPP は3つの主要なコンポーネントを持つ:

  1. シリアルリンク上でデータグラムをカプセル化する手段
  2. データリンク接続の確立・設定・テストのための、リンクコントロールプロトコル(LCP)
  3. 様々なネットワーク層プロトコルの確立と設定とを行うための、ネットワークコントロールプロトコル(NCP)ファミリ

ポイントツーポイントリンク上での通信を確立するために、まず最初に PPP リンクの両終端は、データリンクの設定とテストとを行うための LCP パケットを送信しなければならない。このリンクが確立し、LCP が必要としたオプション機能がネゴシエートされた後、PPP は1つ以上のネットワーク層プロトコルの選択と設定とを行うために、NCP パケットを送信しなければならない。選ばれた各ネットワーク層プロトコルが設定された時点で、各ネットワーク層プロトコルはそのリンク上でデータグラムを送信することが可能となる。

そのリンクは、LCP パケットまたは NCP パケットにより明示的にリンクが閉じられるか、何らかの外部イベント(不活性タイマーの期限切れや、ネットワーク管理者の介入)が発生するまで、通信のために設定された状態であり続けるだろう。

2. IP のための PPP ネットワークコントロールプロトコル(NCP)

IP コントロールプロトコル (IPCP)は、ポイントツーポイントリンクの両終端において IP プロトコルモジュールの設定・有効化・無効化を行う責任を持つ。IPCP はリンクコントロールプロトコル(LCP)と同じパケット交換メカニズムを使用する。PPP がネットワーク層プロトコルのフェーズに達するまでは、IPCP パケットが交換されてはならない。そのフェーズに達する前に到達した IPCP パケットは、暗黙のうちに破棄されるべきである。

以下の例外を除き、IP コントロールプロトコルはリンクコントロールプロトコル[1] と正確に同じである。

Data Link Layer Protocol Field
PPP データリンク層フレームの Information フィールド内に正確に1つの IPCP パケットがカプセル化される。そのフレームの Protocol フィールドは、16進の 8021(IP Control Protocol)である。
Code field
コード 1 〜 7 (Configure-Request, Configure-Ack, Configure-Nak, Configure-Reject, Terminate-Request, Terminate-Ack, Code-Reject)だけが使用される。その他のコードは認識されないものとして扱われるべきであり、結果として Code-Reject が返されるべきである。
Timeouts
PPP がネットワーク層プロトコルのフェーズに達するまでは、IPCP パケットが交換されてはならない。実装は、Configure-Ack やその他の応答待ちでのタイムアウト前に Authentication と Quality Determination とが終了するのを待つように準備されているべきである。実装には、ユーザの介入または設定可能な時間が経過した場合にのみ、諦めることが推奨される。
Configuration Option Types
IPCP は独自の構成オプション(Configuration Option)の集合を持つ。それらは以下で定義されている。

2.1. IP データグラムの送信

IP パケットの通信が許可される前に、PPP はネットワーク層プロトコルのフェーズに達していなければならず、IP Control Protocol は Opened 状態に達していなければならない。

PPP データリンク層フレームの Information フィールド内に正確に1つの IPCP パケットがカプセル化される。そのフレームの Protocol フィールドは 16 進数の 8021(IP Control Protocol)である。

PPP リンク上を送信される IP パケットの最大長は、PPP データリンク層フレームの Information フィールドの最大長と同じである。それ以上の長さの IP データグラムは必要に応じて分割されなければならない。分割と再構築を避けたい場合、システムは TCP Maximum Segment Size オプション[4]と MTU discovery[5] とを使用するべきである。

3. IPCP Configuration Options

IPCP Configuration Option は、Internet Protocol パラメータのネゴシエートを可能にする。IPCP は LCP[1] のために定義されているのと同じ構成オプションのフォーマットを、別のオプションセットと共に使用する。

IPCP Option Type フィールドの最新の値は、最新の "Assigned Numbers" RFC [6] で規定されている。現在、以下の値が割り当て済みである:

1 IP-Addresses
2 IP-Compression-Protocol
3 IP-Address

3.1. IP-Addresses

説明
IP-Addresses の使用は非推奨である。実装実験を通して、この構成オプションを使用する全ての場合においてネゴシエートの収束を確実にするのは難しいと判断された。後方互換性を必要とする実装のための情報として RFC 1172 [2] が提供されている。IP-Address はこの構成オプションを置き換えるものであり、より好ましい。
IP-Addresses オプションまたは IP-Address オプションのどちらかが含まれる Configure-Request を受け取った場合、Configure-Request の中でこの構成オプションを送信するべきではない(SHOULD NOT)。この構成オプションは、IP-Address オプションに対する Configure-Reject を受信した場合、または追加オプションとして IP-Addresses オプションを持つ Configure-Nak を受信した場合に送信しても良い(MAY)。
IPCP プロトコルが Internet Draft Standard の状態に進んだ後、この構成オプションのサポートは削除されても良い。

3.2. IP-Compression-Protocol

説明
この構成オプションは特定の圧縮プロトコルの利用をネゴシエートする方法を提供する。デフォルトでは圧縮は有効ではない。

IP-Compression-Protocol のフォーマットの概要は以下の通りである。フィールドは左から右へ送信される。

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |    Length     |     IP-Compression-Protocol   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Data ...
   +-+-+-+-+
Type
2
Length
<= 4
IP-Compression-Protocol
IP-Compression-Protocol フィールドは2バイトで、目的の圧縮プロトコルを示す。このフィールドの値は同じ圧縮プロトコルを表す PPP データリンク層プロトコルフィールドの値と常に同じである。
IP-Compression-Protocol フィールドの最新の値は、最新の "Assigned Numbers" RFC [6] で規定されている。現在、以下の値が割り当て済みである:
値(16進) Protocol プロトコル
002d Van Jacobson Compressed TCP/IP
Data
Data フィールドはゼロ個以上のオクテットから成り、特定の圧縮プロトコルにより決定される追加情報を含む。
デフォルト
どの圧縮プロトコルも有効ではない。

3.3. IP-Address

説明
この構成オプションは、リンクのローカル側終端で使用される IP アドレスをネゴシエートする手段を提供する。これにより Configure-Request の送信者は希望する IP-address を伝えたり、相手側ピアに情報提供を要求することが可能になる。相手側ピアは、この構成オプションに対して NAK とともに有効な IP アドレスを返すことで、その情報を提供することが出来る。
リモート側 IP アドレスに関するネゴシエートが必要とされ、なおかつ相手側ピアが Configure-Request でこの構成オプションを提供しない場合、この構成オプションは Configure-Nak に付加されるべきである(SHOULD)。IP-Address に与えられる値はリモート側の IP アドレスとして受け入れ可能なものであるか、相手側ピアに対して情報提供を要求するものでなければならない。
デフォルトでは IP アドレスは割り当てられない。

IP-Address のフォーマットの概要は以下の通りである。フィールドは左から右へ送信される。

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |    Length     |           IP-Address
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
           IP-Address (cont)       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type
3
Length
6
IP-Address
4オクテットの IP-Address は、Configure-Request の送信元が希望するローカルアドレスである。4つのオクテットが全てゼロの場合、相手側ピアに対して IP-Address 情報の提供を要求していることを表す。
デフォルト
どの IP アドレスも割り当てられない。

4. Van Jacobson TCP/IP ヘッダ圧縮

Van Jacobson TCP/IP ヘッダ圧縮は、TCP/IP ヘッダを最低3バイトにまで削減する。これは低速シリアル回線上の、特に対話的なトラフィックにおいては著しい改善である。

IP-Compression-Protocol は圧縮パケットを受け取る能力を表すために使用される。双方向圧縮を望む場合、リンク上の両終端はそれぞれにこの構成オプションを要求しなければならない。

IP パケットが送信される場合、PPP プロトコルフィールドには以下の値がセットされる:

値 (16進)
0021 Type IP。その IP プロトコルはTCP ではないか、パケットが分割されているか、圧縮できない。
002d 圧縮 TCP。TCP/IP ヘッダは圧縮ヘッダに置き換えられる。
002f 非圧縮 TCP。IP プロトコルフィールドはスロット識別子に置き換えられる。

4.1. 構成オプションのフォーマット

Van Jacobson TCP/IP ヘッダ圧縮のネゴシエートに使用される IP-Compression-Protocol のフォーマットの概要は以下の通り。フィールドは左から右へ送信される。

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |    Length     |     IP-Compression-Protocol   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Max-Slot-Id  | Comp-Slot-Id  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type
2
Length
6
IP-Compression-Protocol
Van Jacobson 圧縮 TCP/IP ヘッダを表す 002d(16進)。
Max-Slot-Id
Max-Slot-Id フィールドは 1 オクテットで、スロット識別子の最大数を表す。スロット識別子はゼロから Max-Slot-Id までの値を持つため、この値は実際のスロット数より1だけ小さくなる。
注意: スロットが1つだけ(Max-Slot-Id = 0)だと問題を起こす実装があるかもしれない。参考文献 [3] を参照して欲しい。[3] の実装サンプルは、スロット数が 3 から 254 の場合にのみ正常に動作するだろう。
Comp-Slot-Id
Comp-Slot-Id フィールドは 1 オクテットで、スロット識別子フィールドが圧縮されても良いかどうかを表す。
0 スロット識別子は圧縮されてはならない。全ての圧縮 TCP パケットは全ての変更マスクの C ビットをセットしなければならず、またスロット識別子も含まなければならない。

1 スロット識別子は圧縮されても良い。
PPP リンクが展開モジュールの受け入れにおけるエラーを示す能力を持たないレベルの場合、スロット識別子は圧縮されてはならない。エラー後の同期は、スロット識別子を持つパケットの受信に依存する。参考文献 [3] の議論を参照して欲しい。

A. IPCP 推奨オプション

以下の構成オプションが推奨されている:

IP-Compression-Protocol -- 最低でも 4 スロット、通常は 16 スロット。

IP-Address -- ダイアルアップ回線上でのみ。

セキュリティ考察

この文書でセキュリティ問題は議論されていない。

参考文献

[1] Simpson, W., "The Point-to-Point Protocol", RFC 1331, May 1992.

[2] Postel, J., "Internet Protocol", RFC 791, USC/Information Sciences Institute, September 1981.

[3] Jacobson, V., "Compressing TCP/IP Headers", RFC 1144, January 1990.

[4] Postel, J., "The TCP Maximum Segment Size Option and Related Topics", RFC 879, USC/Information Sciences Institute, November 1983.

[5] Mogul, J., and S. Deering, "Path MTU Discovery", RFC 1191, November 1990.

[6] Reynolds, J., and J. Postel, "Assigned Numbers", RFC 1060, USC/Information Sciences Institute, March 1990.

[7] Perkins, D., and R. Hobby, "Point-to-Point Protocol (PPP) initial configuration options", RFC 1172, August 1990.

謝辞

この文書内の文章の一部は、Carnegie Mellon University の Drew Perkins と、Davis にある University of California の Russ Hobby とによる RFC 1171 および RFC 1172 に由来している。

拡張された IP-Compression へと誘導する情報は、SIGCOMM '90 において Van Jacobson により提供された。

Bill Simpson はこの文書の書式化を手助けしてくれた。

代表者のアドレス

このワーキンググループには、以下の現代表者を通して連絡可能である:

Brian Lloyd
Lloyd & Associates
3420 Sudbury Road
Cameron Park, California 95682

Phone: (916) 676-1147

EMail: brian@ray.lloyd.com

著者のアドレス

この文書に関する質問は、以下のアドレスへ送って欲しい:

Glenn McGregor
Merit Network, Inc.
1071 Beal Avenue
Ann Arbor, MI 48109-2103

Phone: (313) 763-1203

EMail: Glenn.McGregor@Merit.edu