Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
RFC1812 - Requirements for IP Version 4 Routers
[go: Go Back, main page]

Network Working Group
Request for Comments: 1812
Obsoletes: 1716, 1009
Category: Standards Track
F. Baker, Editor
Cisco Systems
June 1995

Requirements for IP Version 4 Routers



このメモのステータス

このドキュメントは、インターネット社会のためのインターネット標準トラックプロトコルを規定し、改善のための議論や提案を要求する。このプロトコルの標準化状態と状況については、「インターネット公式プロトコル標準」(STD 1) の現在の版を参照されたい。このメモの配布は制限されない。

序文

このドキュメントは、旧ルータ要件の RFC1716 の更新版である。その RFC はワーキンググループで実施された重要な作業を留めたが、現在の標準を考慮して IESG の現在の技術を適切に記述することが出来なかった。

現在の編者はドキュメントの更新を求め続け、調達規定や実装者向けの指針として有効になっている。ここにおいて、編者は提出されたものを公正に受け、本文の大半を専門家の寄稿者に頼っている。功績は全て彼らのものであり、エラーは編者によるものである。

このドキュメントの内容や形式は、大部分において、ワーキンググループの議長でありドキュメントの起草者と作成者である Philip Almquist によるものである。さらに、大半は以前の編者である Frank Kastenholz にもよっている。彼らの努力なしでは、このドキュメントは存在していなかったであろう。

Table of Contents

1. 導入
  1.1 このドキュメントを読むにあたって
    1.1.1 構成
    1.1.2 要件
    1.1.3 受諾
  1.2 他の標準との関係
  1.3 一般的な考慮
    1.3.1 インターネットの継続的な発展
    1.3.2 安定さの指針
    1.3.3 エラーログの採取
    1.3.4 設定
  1.4 アルゴリズム

2. インターネットアーキテクチャ
  2.1 導入
  2.2 アーキテクチャの要素
    2.2.1 プロトコル層
    2.2.2 ネットワーク
    2.2.3 ルータ
    2.2.4 自律システム
    2.2.5 アドレス体系
      2.2.5.1 IPアドレス体系クラス
      2.2.5.2 クラスレス内部ドメインルーティング (CIDR)
    2.2.6 IPマルチキャスト
    2.2.7 非番号回線とネットワークプレフィクス
    2.2.8 顕著な奇妙さ
      2.2.8.1 埋め込みルータ
      2.2.8.2 透過ルータ
  2.3 ルータの機能
  2.4 体系的な仮定条件

3. リンク層
  3.1 導入
  3.2 リンク/インターネット層インタフェース
  3.3 特定の問題
    3.3.1 トレイラカプセル化
    3.3.2 アドレス解決プロトコル - ARP
    3.3.3 イーサネットと 802.3 共存
    3.3.4 最大転送単位 - MTU
    3.3.5 ポイントツーポイントプロトコル - PPP
      3.3.5.1 導入
      3.3.5.2 リンク制御プロトコル (LCP) オプション
      3.3.5.3 IP 制御プロトコル (IPCP) オプション
    3.3.6 インタフェーステスト

4. インターネット層 - プロトコル
  4.1 導入
  4.2 インターネットプロトコル - IP
    4.2.1 導入
    4.2.2 プロトコル - ウォークスルー
      4.2.2.1 オプション: RFC791 セクション3.2
      4.2.2.2 オプション中のアドレス: RFC791 セクション3.1
      4.2.2.3 未使用 IP ヘッダビット: RFC791 セクション3.1
      4.2.2.4 サービスタイプ: RFC791 セクション3.1
      4.2.2.5 ヘッダチェックサム: RFC791 セクション3.1
      4.2.2.6 未知のヘッダオプション: RFC791 セクション3.1
      4.2.2.7 フラグメント化: RFC791 セクション3.2
      4.2.2.8 組み立て: RFC791 セクション 3.2
      4.2.2.9 生存時間: RFC791 セクション 3.2
      4.2.2.10 複数サブネットブロードキャスト: RFC922
      4.2.2.11 アドレス付け: RFC791 セクション3.2
    4.2.3 特定の問題
      4.2.3.1 IPブロードキャストアドレス
      4.2.3.2 IPマルチキャスト
      4.2.3.3 経路MTU検出
      4.2.3.4 サブネット化
  4.3 インターネット制御メッセージプロトコル - ICMP
    4.3.1 導入
    4.3.2 一般的な問題
      4.3.2.1 未知のメッセージタイプ
      4.3.2.2 ICMPメッセージTTL
      4.3.2.3 元のメッセージヘッダ
      4.3.2.4 ICMPメッセージ送信元アドレス
      4.3.2.5 TOSと優先度
      4.3.2.6 送信元経路
      4.3.2.7 ICMPエラーを送信しないケース
      4.3.2.8 レート制限
    4.3.3 特定の問題
      4.3.3.1 宛先未到達
      4.3.3.2 リダイレクト
      4.3.3.3 送信元消失
      4.3.3.4 時間超過
      4.3.3.5 パラメタ問題
      4.3.3.6 エコー要求/応答
      4.3.3.7 情報要求/応答
      4.3.3.8 タイムスタンプとタイムスタンプ応答
      4.3.3.9 アドレスマスク要求/応答
      4.3.3.10 ルータの告知と誘導
  4.4 インターネットグループ管理プロトコル - IGMP

5. インターネット層 - 転送
  5.1 導入
  5.2 転送ウォークスルー
    5.2.1 転送アルゴリズム
      5.2.1.1 一般
      5.2.1.2 ユニキャスト
      5.2.1.3 マルチキャスト
    5.2.2 IPヘッダ評価
    5.2.3 ローカル配送の決定
    5.2.4 次ホップアドレスの決定
      5.2.4.1 IP宛先アドレス
      5.2.4.2 ローカル/リモート決定
      5.2.4.3 次ホップアドレス
      5.2.4.4 管理上の優先
      5.2.4.5 負荷分散
    5.2.5 未使用 IPヘッダビット: RFC-791 セクション 3.1
    5.2.6 分割と組み立て: RFC-791 セクション 3.2
    5.2.7 インターネット制御メッセージプロトコル - ICMP
      5.2.7.1 宛先未到達
      5.2.7.2 リダイレクト
      5.2.7.3 時間超過
    5.2.8 インターネットグループ管理プロトコル - IGMP
  5.3 特定の問題
    5.3.1 生存時間 (TTL)
    5.3.2 サービスタイプ (TOS)
    5.3.3 IP 優先度
      5.3.3.1 優先度順序キューサービス
      5.3.3.2 下位層優先度マッピング
      5.3.3.3 全てのルータのための優先度処理
    5.3.4 リンク層ブロードキャストの転送
    5.3.5 インターネット層ブロードキャストの転送
      5.3.5.1 制限付きブロードキャスト
      5.3.5.2 直接ブロードキャスト
      5.3.5.3 全てのサブネット直接ブロードキャスト
      5.3.5.4 サブネット直接ブロードキャスト
    5.3.6 輻輳制御
    5.3.7 マーチャンアドレスフィルタ
    5.3.8 送信元アドレス評価
    5.3.9 パケットフィルタとアクセスリスト
    5.3.10 マルチキャストルーティング
    5.3.11 転送時の制御
    5.3.12 状態変更
      5.3.12.1 ルータが転送を終了する時
      5.3.12.2 ルータが転送を開始する時
      5.3.12.3 インタフェース障害か使用不可な時
      5.3.12.4 インタフェースが使用可能な時
    5.3.13 IP オプション
      5.3.13.1 認識できないオプション
      5.3.13.2 セキュリティオプション
      5.3.13.3 ストリーム識別子オプション
      5.3.13.4 送信元経路オプション
      5.3.13.5 経路記録オプション
      5.3.13.6 タイムスタンプオプション

6. トランスポート層
  6.1 ユーザデータグラムプロトコル - UDP
  6.2 転送制御プロトコル - TCP

7. アプリケーション層 - ルーティングプロトコル
  7.1 導入
    7.1.1 ルーティングセキュリティの考慮
    7.1.2 優先度
    7.1.3 メッセージ評価
  7.2 内部ゲートウェイプロトコル
    7.2.1 導入
    7.2.2 オープン最短パス第一 - OSPF
    7.2.3 中間システムツー中間システム - 二重 IS-IS
  7.3 外部ゲートウェイプロトコル
    7.3.1 導入
    7.3.2 境界ゲートウェイプロトコル - BGP
      7.3.2.1 導入
      7.3.2.2 プロトコルウォークスルー
    7.3.3 外部プロトコルの無い内部 AS ルーティング
  7.4 静的ルーティング
  7.5 ルーティング情報のフィルタリング
    7.5.1 経路評価
    7.5.2 基本経路フィルタリング
    7.5.3 拡張経路フィルタリング
  7.6 相互ルーティングプロトコル情報交換

8. アプリケーション層 - ネットワーク管理プロトコル
  8.1 簡易ネットワーク管理プロトコル - SNMP
    8.1.1 SNMP プロトコル要素
  8.2 コミュニティテーブル
  8.3 標準 MIBS
  8.4 ベンダ特定 MIB
  8.5 Saving Changes

9. アプリケーション層 - 雑多なプロトコル
  9.1 BOOTP
    9.1.1 導入
    9.1.2 BOOTP 配送エージェント

10. 運用と保守
  10.1 導入
  10.2 ルータの初期化
    10.2.1 最低限のルータ設定
    10.2.2 アドレスとプレフィクスの初期化
    10.2.3 BOOTP と TFTP を使用したネットワーク起動
  10.3 運用と保守
    10.3.1 導入
    10.3.2 帯域外アクセス
    10.3.2 ルータ O&M 機能
      10.3.2.1 保守 - ハードウェア診断
      10.3.2.2 制御 - ダンプ採取と再起動
      10.3.2.3 制御 - ルータの設定
      10.3.2.4 システムソフトウェアのネット起動
      10.3.2.5 設定誤りの検出と応答
      10.3.2.6 中断の最小限化
      10.3.2.7 制御 - トラブルシューティング問題
  10.4 セキュリティ考慮
    10.4.1 会計監査と追跡
    10.4.2 設定制御

11. 参照

付録 A. 送信元ルーティングホストの要件

付録 B. 用語解説

付録 C. 将来の方向性

付録 D. マルチキャストルーティングプロトコル
  D.1 導入
  D.2 距離ベクトルマルチキャストルーティングプロトコル - DVMRP
  D.3 OSPF のマルチキャスト拡張 - MOSPF
  D.4 プロトコル無依存マルチキャスト - PIM

付録 E. 追加の次ホップ選択アルゴリズム
  E.1 幾つかの歴史的な総体的見地
  E.2 追加の除去規則
  E.3 幾つかの経路検索アルゴリズム
    E.3.1 改訂されたクラシックアルゴリズム
    E.3.2 ルータ要件アルゴリズムの変形版
    E.3.3 OSPF アルゴリズム
    E.3.4 統合 IS-IS アルゴリズム

セキュリティの考慮

付録 F. 歴史的なルーティングプロトコル
  F.1 外部ゲートウェイプロトコル - EGP
    F.1.1 導入
    F.1.2 プロトコルウォークスルー
  F.2 ルーティング情報プロトコル - RIP
    F.2.1 導入
    F.2.2 プロトコルウォークスルー
    F.2.3 特定の問題
  F.3 ゲートウェイツーゲートウェイプロトコル - GGP

謝辞

編者のアドレス


1. 導入

このメモは RFC1716 "インターネットゲートウェイの要件" (INTRO:1)を置き換えている。

このメモは、インターネットプロトコルスイートのネットワーク層の転送機能を実現する装置に対する要件について定義し論じている。インターネット社会では通常、このような装置を IP ルータ、または単にルータと呼んでいる。OSI 社会ではこのような装置を中間システムと呼んでいる。多くのより古いインターネットドキュメントでは、これらの装置をゲートウェイと呼んでいるが、アプリケーションゲートウェイとの混乱を避けるために、最近はあまりこの名前では呼ばれていない。

IP ルータは、交換処理の一貫としてルータが IP ヘッダを調べるという点において、他のパケット交換装置とは区別されている。通常 IP ルータは受信されたメッセージに付いているリンク層ヘッダを削除し、IP ヘッダを更新し、再送するためにリンク層ヘッダを置き換える。

このメモの筆者は、読者も同様だと思うが、多くのルータが 1 つ以上のプロトコルをサポートしていると認識している。将来のインターネットの大部分において、複数のプロトコルスイートのサポートが必要とされるだろう。しかしながら、このメモは TCP/IP 以外のプロトコルスイートの要件を規定しようとはしない。

このドキュメントは、インターネットに接続されたルータが使用しなければならない標準プロトコルを列挙し、これらのプロトコルの現在の規定を記している RFC や他のドキュメントを参照することによって取り込んでいる。参照しているドキュメントのエラーを修正し、実装者のための付加議論やガイダンスを追加している。

また各々のプロトコルに対し、このメモは要件や推奨、オプションの明示的なセットを含んでいる。読者は、このメモの要件のリストはそれ自身では不完全であることを理解しなければならない。インターネットプロトコルルータの要件の完全なセットは、このメモに含まれている修正や改訂、補足と共に、基本的には標準プロトコル規定ドキュメントに定義されている。

このメモは、インターネットホストの要件の RFC ([INTRO:2][INTRO:3]) と共に読まなければならない。インターネットホストとルータの両方とも、IP データグラムの起動側能力と受信側能力を持たなければならない。インターネットホストとルータの主要な相違は、ルータは転送アルゴリズムを実装し、インターネットホストは転送機能を必要としないという点である。ルータとして動作するインターネットホストは、このメモに含まれている要件を守らなければならない。

オープンシステムの相互接続の目標は、ルータは必要時にインターネットホストとして正しく機能しなければならないことを命ずることである。これを達成するために、このメモはその様なインスタンスのための指針を提供する。ドキュメントの更新を単純で容易にするために、このメモはホストの要件と重複する議論 ([INTRO:2][INTRO:3]) を避けようとしており、参照することによってそのドキュメントの関連要件を取り込んでいる。幾つかのケースでは、[INTRO:2][INTRO:3] で述べられた要件が、このドキュメントによって代えらている。

RFC を注意深く読んだ後作成されたプロトコルの信頼性のある実装は、このメモの要件とわずかな点しか異ならないはずである。そうした実装を作成する際、インターネット技術社会との協調作業がしばしば必要であり、適切な通信ソフトウェアエンジニアリングの実践に従わなければならない。多くの場合、このドキュメントの要件は、既に標準プロトコルドキュメントで言及されているか含まれている。従って、それらをここに含めることは冗長である。幾つかの過去の実装が誤った選択を行っており、相互接続性やパフォーマンス、頑強性に問題がある場合は、ここに含めている。

このメモは、多くの要件や推奨についての議論と説明を含んでいる。要件を単に一覧化することは危険である。なぜなら、

しかしこのメモの規定は、インターネットの多様性や複雑性に渡って、任意のルータと相互接続を可能にする一般的な目標を適えるために従わなければならない。最近の実装は、あるものはマイナーな、またあるものはメジャーな様々な点においてこれらの要件に適合していないが、この規定は我々が向かうべき理想である。

これらの要件は、現在のインターネットアーキテクチャのレベルに基づいている。このメモは、追加説明を提供する必要がある場合や、規定が更に進歩してある範囲における追加情報が必要な場合に更新されるだろう。

1.1 このドキュメントを読むにあたって

1.1.1 構成

このメモは、[INTRO:2][INTRO:3] で用いられている層構成に習っている。そして、チャプタ 2 はインターネットアーキテクチャで見られる層について説明している。チャプタ 3 はリンク層をカバーしている。チャプタ 4 と 5 は、インターネット層プロトコルと転送アルゴリズムに関係している。チャプタ 6 はトランスポート層をカバーしている。上位層プロトコルは、チャプタ 7,8,9 に区分けされている。チャプタ 7 は、ルータがお互いに経路情報を交換するのに使用するプロトコルについて論じている。チャプタ 8 はネットワーク管理について論じている。チャプタ 9 は、他の上位層プロトコルについて論じている。最後のチャプタは、操作や保守の特徴をカバーしている。この構成は、単純かつ明確で、ホスト要件の RFC と一貫性を持たせるために選択された。このメモの付録は、参考図書、用語、ルータの標準の将来の方向性についての推測を含んでいる。

要件を記述する際、我々は実装体がプロトコルの層分けを厳密に反映していると仮定する。しかし厳密な層分けは、プロトコルスイートや推奨された実装アプローチの両方にとって不完全なモデルである。異なる層のプロトコルは複雑に、時には微妙な方法で相互作用し、ある特定の機能はしばしば複数の層を巻きこんでいる。実装における設計の選択肢は数多く存在し、それらの多くは厳密な層分けの創造的な破壊を伴っている。全ての実装者は、[INTRO:4][INTRO:5] を読むことが推奨される。

このメモの各々の主要なセクションは、以下のサブセクションから構成される。

  1. 導入

  2. プロトコルウォークスルー - プロトコル規定ドキュメントをセクション毎に考慮し、エラーを修正し、曖昧か不十分な定義かもしれない要件を開始し、更なる解明や説明を提供している。

  3. 特殊な問題 - ウォークスルーには含まれないプロトコル設計や実装の問題について論じている。

このメモの数多くの個々のトピックの下に、DISCUSSION や IMPLEMENTATION という記述で示された挿入文がある。この文は前述の要件のテキストを正当化、明確化、説明することを意図している。実装の挿入文は、実装者が考慮したいかもしれない提案されたアプローチを含んでいる。DISCUSSION と IMPLEMENTATION のセクションは、この標準の一部ではない。

1.1.2 要件

このメモでは、各々の特定の要件の重要性を定義するために使用する単語は大文字で記述される。これらの単語は、

MUST
この単語は、その項目がこの規定の絶対的な要件であることを意味する。この要件に反することは重大なエラーであり、正当化されるケースは存在しない。

MUST IMPLEMENT
このフレーズは、この規定ではその項目が実装される必要があることを意味するが、デフォルトで使用可能にする必要はない。

MUST NOT
このフレーズは、その項目がこの規定の絶対的な禁止であることを意味する。

SHOULD
この単語は、ある事情においてこの項目を無視する正当な理由が存在してもよいことを意味する。しかし、完全な実装が理解され、異なる方向を選択する前に注意深く熟慮しなければならない。

SHOULD IMPLEMENT
このフレーズは SHOULD の意味と同様であるが、ある特徴を提供することは推奨するが、デフォルトで使用可能とすることを推奨してはいない時に使用される。

SHOULD NOT
このフレーズは、規定された振る舞いは受諾可能または有効であるような事情で正当な理由が存在してもよいことを意味する。たとえそうであっても、完全な実装を理解し、この記述で説明された振る舞いを実装する前に注意深く熟慮しなければならない。

MAY
この単語は、この項目は全く任意であることを意味する。あるベンダは特定の市場で必要だからその項目を含む、あるいは製品を拡張することを選択するかもしれないし、またあるベンダは同じ項目を省略するかもしれない。

1.1.3 受諾

幾つかの要件は、全てのルータで受諾可能である。他の要件は、特定の特徴かプロトコルを実装する場合にのみ受諾可能である。以下のパラグラフでは、実装した特徴とプロトコルのセットのために、関連は全てのルータで受諾できる要件と、特定のルータで受諾できる要件のセットを合わせたものに関連する。

全ての関連要件が直接このメモで述べられているとは限らない。このメモの様々な部分は、ホスト要件規定 [INTRO:2][INTRO:3] のセクションを参照することによって取り入れている。このメモの受諾を決定するのに、関連要件がこのメモで直接述べてあるか、他のドキュメントのものから参照することによって取り込まれているかは大した問題ではない。

もし全ての関連 MUST, MUST IMPLEMENT, MUST NOT 要件を満足するならば、その実装体は条件付きで準拠していることになる。もし条件付きで準拠しており、さらに全ての関連 SHOULD, SHOULD IMPLEMENT, SHOULD NOT 要件も満足するならば、その実装体は無条件に準拠していることになる。もし条件付きで準拠していなければ (すなわち、一つ以上の関連 MUST, MUST IMPLEMENT, MUST NOT 要件を満足していない)、その実装体は準拠していない。

この規定はたまに、実装体が管理変数を実装すべき (SHOULD) で、あるデフォルト値を持つべき (SHOULD) であることを示す。無条件に準拠した実装体は、そのデフォルト振る舞いを実装し、もし別の振る舞いが実装されているならば、その変数を実装する。条件付きで準拠した実装は、変数のデフォルト設定が何か、あるいは変数を実装していない場合は、デフォルト設定をどのように解釈してよいかを明確にドキュメント化する。変数を実装しておらず、別の振る舞いも選択していない実装体は準拠していない。

いかなる SHOULD, SHOULD NOT 要件も、ルータはその要件で規定されている以外の動作を行わせる設定オプションを提供してもよい。たとえそのような設定オプションを持っていても、もしそのオプションがデフォルト設定を持っており、その設定によってルータが要求された方法で処理されるならば、無条件に準拠しているというルータの主張を無効にはしない。

同様に、このメモで明確に禁止されている場合を除いて、ルータは MUST や MUST NOT 要件に反する処理を行わせるオプションを提供してもよい。そのようなオプションを提供するルータは、各々のオプションがこのメモの要件に適合するデフォルト設定を持つ場合にのみ、(完全あるいは条件付きで) 準拠している。このメモの筆者はマーケットの現実は認識しているが、そのようなオプションは用意されないことを強く推奨することに注意されたい。要件が MUST か MUST NOT で記述されているのは、その道の専門家がインターネットの相互接続性や適切な機能性において特に重要であると判断したからである。ベンダは、これらの規則を破るオプションを提供する際、消費者サポートのコストを慎重に考慮すべきである。

もちろん、このメモは IP ルータの完全な規定ではなく、OSI の世界でいうプロファイルに近いものである。例えば、このメモは数多くのプロトコルが実装されることを要求している。それらのプロトコル規定の大半の内容はこのメモでは繰り返さないが、実装者はそれでもなお、それらの規定に従ってプロトコルを実装することを求められる。

1.2 他の標準との関係

プロトコル規定と標準の状態をチェックするための幾つかの参照ドキュメントが存在する。

INTERNET OFFICIAL PROTOCOL STANDARDS
このドキュメントはインターネット標準プロセスを記述し、プロトコルの状態を一覧化している。このメモが作成された時は、このドキュメントの現在のバージョンは STD 1, RFC1780 [ARCH:7] である。このドキュメントは定期的に再発行されている。RFC の保管場所を常に調べ、このドキュメントの最新の版を使用すべきである。

Assigned Numbers
このドキュメントは、様々なプロトコルで使用されるパラメタの値割当てをリスト化している。例えば、IP プロトコルのコードや TCP のポート番号、Telnet のオプションコード、ARP のハードウェアタイプ名がある。このメモが作成された時は、このドキュメントの現在のバージョンは STD 2, RFC1700 [INTRO:7] である。このドキュメントは定期的に再発行されている。RFC の保管場所を常に調べ、このドキュメントの最新の版を使用すべきである。

Host Requirements
この一組のドキュメントはホストに適用する規定をレビューし、指針や曖昧部分の説明を提供している。これらの要件はこのメモで規定されたもの以外を除いて、ルータにも適用される。このメモが作成された時、このドキュメントの現在のバージョンは RFC1122 と RFC1123 (STD 3) [INTRO:2][INTRO:3] である。

Router Requirements (formerly Gateway Requirements)
このメモである。

これらのドキュメントは異なるタイミングで改訂、更新される。これらのドキュメント間で異なる場合、最近のものが有効である。

これらや他のインターネットプロトコルドキュメントは、以下から入手できるだろう。

The InterNIC
DS.INTERNIC.NET
InterNIC Directory and Database Service
info@internic.net
+1-908-668-6587
URL: http://ds.internic.net/

1.3 一般的な考慮

インターネットソフトウェアのベンダが知っておくべき、また新たなベンダが深慮すべき幾つかの重要な教訓がある。

1.3.1 インターネットの継続的な発展

インターネットの莫大な成長は、大きなデータグラムパケット通信システムにおける管理や規模の問題を表面化させた。これらは問題として位置づけられ、結果的にこのメモで規定されている規約は、進化し続けるだろう。新しいルーティングプロトコル、アルゴリズム、アーキテクチャは、永続的に進化する。新しいインターネット層プロトコルや既存のプロトコルの更新によってもまた、永続的に改訂されていくだろう。ルータは、インターネットにおいて重要な役割を持ち、インターネットで開発されたルータの数はホストの数よりもずっと少ない。従って、ベンダはルータの標準はホストの標準よりもずっと早く進化し続けていくと予期すべきである。ベンダやネットワークの取り扱いに責任のある組織によるこの計画には、多数の参加者がいるので、これらの変更は慎重に計画され管理されるだろう。

発展、進化、改訂は今日のコンピュータネットワークプロトコルの特徴であり、こうした状態は数年続くだろう。インターネットプロトコルスイート (あるいは他のいかなるプロトコルスイートも!) のためのコンピュータ通信ソフトウェアを開発し、変更される規約に対してソフトウェアを保守、更新することができないベンダは、不幸な消費者を残して去ってしまうかもしれない。インターネットは大規模な通信ネットワークであり、ユーザは絶え間無くインターネットを通じて交信する。ベンダソフトエェアの欠陥の知識は、インターネット技術社会を通じて即座に伝播されるということは、経験から見てとれる。

1.3.2 安定さの指針

プロトコルの全ての層において、アプリケーションが頑強性と相互接続性に莫大な利益をもたらす一般的な規則が存在する (Jon Postel の [TRANS:2] より)。

    自ら行うことには保守的であれ、
    他から受けることには革新的であれ。

ソフトウェアは、たとえ起こりそうに無くても、考えられる全ての異常を扱うよう記述すべきである。結局、パケットは異常や属性の特定のコンビネーションで入ってくる。もしソフトウェアがそれに対して準備されていなければ、混沌が起こり得る。ネットワークは、最悪の事象を起こすよう設計されたパケットを送信する、悪意を持ったエンティティで満ちていると仮定することが最善である。この仮定は適切な防御設計につながるだろう。インターネットにおける最も重大な問題は、人間の悪意ですらそんな遠回りな道筋を辿らないような起きそうにもないイベントがトリガとなる、不測のメカニズムによって引き起こされるものである!

変更への順応性は、ルータソフトウェアの全てのレベルで設計しなければならない。簡単な例として、例えばタイプフィールドやポート番号、エラーコードといった特定のヘッダフィールドの列挙値を含むプロトコル規定を考える場合、この列挙は不完全であると仮定しなければならない。もしプロトコル規定が四つのあり得るエラーコードを定義しているならば、ソフトウェアは五つ目のコードが定義されたときに壊れてはならない。未定義のコードはログに採取してもよいが、失敗の要因になってはならない。

指針の二番目の部分も同様に重要である。ホストや他のルータ上のソフトウェアは、正しいが曖昧なプロトコル機能を利用することを不得策にする欠陥を含んでいるかもしれない。厄介な事象が別の場所に生じないよう、明確さや簡潔さからかけ離れて脱線するのは賢明ではない。この結果は誤動作するホストを警戒することであり、ルータソフトウェアは誤動作するホストが存在する中で生き残る準備をしておくべきである。インターネットにおけるルータの重要な機能は、そうしたホストが共有された通信設備に及ぼす混乱の量を制限することである。

1.3.3 エラーログの採取

インターネットは様々なシステムを含み、各々が多くのプロトコルやプロトコル層を実装している。これらの幾つかは、インターネットプロトコルソフトウェア中にバグや誤った機能を含んでいる。複雑さや多様性、機能の分散の結果、問題の診断は大抵非常に困難である。

もしルータが異常や奇妙なイベントのログを採取するために慎重に設計された機能を含んでいれば、問題の診断は助けになるだろう。エラーのログを採取する際、できる限り多くの診断情報を含むことは重要である。特に、エラーを引き起こしたパケットのヘッダを記録することはしばしば有効である。しかし、エラーログの採取により、禁止された資源の量を消費しないことや、ルータの処理を妨げないことを保証するよう注意しなければならない。

異常だが無害なプロトコルイベントが、エラーのログファイルを溢れさせる傾向がある。これは循環ログを使用するか、既知の障害を診断する場合にしかログ採取を有効にしないことによって回避できる。重複した成功メッセージをフィルターにかけたり、数えたりすることは有効かもしれない。上手く作用しそうな戦略は、以下の両方である。

このトピックは、さらに [MGT:5] で論じている。

1.3.4 設定

理想的な世界では、ルータは設定が容易で、恐らく完全に自己設定さえ行われるだろう。しかし、現実世界の実際の経験では、これが不可能な目標であることを示唆しており、設定を容易にしようとするベンダの試みは、実際には消費者の悲嘆を防ぐよりはむしろ助長させている。極端な例を挙げれば、設定情報を全く必要とせずに起動され開始するよう設計されたルータは、ほぼ確実に幾つかの誤ったパラメタを選択し、恐らくそれを接続するのに不適切なネットワーク上で重大な問題を引き起こしている。

しばしばこのメモは、パラメタが設定可能なオプションであることを要求する。これには幾つかの理由がある。あるケースでは、最適値について不確かで同意されていないことが現在存在し、将来推奨値を更新する必要があるかもしれない。また他のケースでは、値は実際には外的要因、例えば通信負荷の分散や隣接ネットワークの速度やトポロジに依存し、自己チューニングアルゴリズムが利用できなかったり、不十分でありえる。あるケースでは、管理上の要件のために設定可能である必要がある。

最後に、ある設定オプションは、インターネットの多くの部分でまだ使用されている、ソース無しで配布された、時代遅れや正しくないプロトコル実装と通信するために必要である。正しいシステムをこれらの欠陥システムと共存させるために、管理者は時折、正しいシステムに誤りを含む設定をしなければならない。この問題は、欠陥システムが撤廃されるにつれて徐々に正されるだろうが、ベンダは無視できない。

パラメタが設定可能であると宣言する場合は、その値を明示的に設定ファイルから、ブート時に毎回読み込む必要があることを意図していない。多くのパラメタにとって、最も一般的でない状況を除き、適切な一つの値が存在する。そのような場合、もし明示的に設定されていなければ、その値をパラメタのデフォルト値とすることは極めて効率的である。

このメモは、あるケースでそうしたデフォルトのための特定の値を要求する。設定項目が既存の欠陥システムへの適応を制御する場合、デフォルトの選択は繊細な問題である。もしインターネットが相互接続性を完遂する方向に収束するならば、実装体に作り込まれたデフォルト値は、欠陥実装に適応するための誤った設定ではなく、公式的なプロトコルを実装しなければならない。商用を考慮すると、ベンダは誤った設定のデォルト値を選択したいかもしれないが、我々はベンダが標準に適合したデフォルト値を選択することを強く推奨する。

注記: 最後に、ベンダは全ての設定パラメタの制限や効果について、十分なドキュメントを提供する必要がある。

1.4 アルゴリズム

このメモの幾つかの場所で、ルータが従うべき特定のアルゴリズムが規定されている。これらのアルゴリズムはルータの要件ではない。ルータは、このメモに書かれてある各々のアルゴリズムを実装する必要は無い。むしろ実装体は、厳密的で文字通りの、規定されたアルゴリズムの実装と同じ動作を外部世界に提供しなければならない。

アルゴリズムは、優れた実装体が実装するのとは異なる方法で規定されている。解説目的のために、簡潔さや明確さ、実装の詳細に依存しないことを強調したスタイルが選択されている。優れた実装体は、これらのアルゴリズムと同じ結果を生み出すが、より効率的であったり、一般的でないアルゴリズムや実装方法を選択する。

注記: 効率的なルータの実装技術は、このメモの適用外である。

2. インターネットアーキテクチャ

このチャプタは、如何なる要件も含まない。しかし、インターネットとルータの一般的なアーキテクチャについての有効な背景情報を含む。

インターネットアーキテクチャとサポートするプロトコルスイートの一般背景や議論は、DDN プロトコルハンドブック [ARCH:1] に見ることができる。背景については、例えば [ARCH:2], [ARCH:3], [ARCH:4] を参照されたい。インターネットアーキテクチャとプロトコルは、例えば [ARCH:5], [ARCH:6] といった、絶えず増え続けているテキストブックでカバーされている。

2.1 導入

インターネットシステムは、インターネットプロトコルを使用したホストコンピュータ間の通信をサポートしている、数多くの相互接続パケットネットワークから構成されている。これらのプロトコルは、インターネットプロトコル (IP)、インターネット制御メッセージプロトコル (ICMP)、インターネットグループ管理プロトコル (IGMP)、これらと独立した多様なトランスポートやアプリケーションプロトコルである。セクション [1],[2] に記述されているように、インターネット技術運営グループは、全てのインターネットプロトコルを一覧化している公式プロトコルのメモを定期的に発行している。

全てのインターネットプロトコルは、基本データ転送メカニズムとしてIPを使用する。IP はデータグラムで、コネクションレスの相互ネットワークサービスであり、アドレス付けやサービスタイプ指定、分割、組立、セキュリティを含む。ICMP と IGMP はアーキテクチャ上は IP 上に位置するが、IP の一部として必要な部分と見なされる。ICMP は、エラー通知、フロー制御、第一ホップルータリダイレクション、その他の保守や管理機能を提供する。IGMP は、ホストとルータが IP マルチキャストグループに加入したり、離脱するためのメカニズムを提供する。

信頼性のあるデータ配送は、インターネットプロトコルスイートでは、エンドツーエンドの再送、再順序付け、コネクション制御を提供する転送制御プロトコル (TCP) 等のトランスポート層プロトコルによって提供される。トランスポート層のコネクションレスサービスは、ユーザデータグラムプロトコル (UDP) によって提供される。

2.2 アーキテクチャの要素

2.2.1 プロトコル層

インターネットシステムを使用して通信するために、ホストはインターネットプロトコルスイートを構成するプロトコルの層に分けられたセットを実装しなければならない。ホストは一般に、各々の層に対して少なくとも一つのプロトコルを実装しなければならない。

インターネットアーキテクチャで使用されるプロトコルの層は以下の通り [ARCH:7]

アプリケーション層

アプリケーション層は、インターネットプロトコルスイートの最上位層である。幾つかのアプリケーション層プロトコルが内部に存在するが、インターネットスイートはアプリケーション層を更に分割しない。インターネットスイートは、OSI 参照モデル [ARCH:8] の上位の二つの層 - プレゼンテーションとアプリケーション - の機能を本質的に結合している。インターネットプロトコルスイートのアプリケーション層は、OSI 参照モデルのセション層に属する幾つかの機能も含む。

我々は、アプリケーション層プロトコルの二つのカテゴリを区別する。それは、直接ユーザにサービスを提供するユーザプロトコルと、共通のシステム機能を提供するサポートプロトコルである。最も一般的なインターネットユーザプロトコルは、

- Telnet (リモートログイン)
- FTP (ファイル転送)
- SMTP (電子メール配送)

他の標準化されたユーザプロトコルや私的ユーザプロトコルは、数多く存在する。

ホスト名のマッピング、ブート、管理で使用されるサポートプロトコルは、SNMP,BOOTP,TFTP,ドメイン名システム (DNS) プロトコル、様々なルーティングプロトコルを含む。

ルータに関係するアプリケーション層プロトコルは、このメモのチャプタ 7,8,9 で論じられている。

トランスポート層

トランスポート層は、エンドツーエンドの通信サービスを提供する。この層は、OSI 参照モデルのトランスポート層に凡そは等しい。ただし、OSI トランスポート層は OSI のセション層の確立/破棄機能の幾つかとも協調している点は除く。

現状、二つの主要なトランスポート層プロトコルが存在する。

- 転送制御プロトコル (TCP)
- ユーザデータグラムプロトコル (UDP)

TCP は、エンドツーエンドの信頼性、再順序付け、フロー制御を提供する、信頼性のあるコネクション型トランスポートサービスである。UDP は、コネクションレス(データグラム)のトランスポートサービスである。その他のトランスポートプロトコルは研究団体によって開発されており、公式インターネットプロトコルのセットは、将来拡張されるかもしれない。

ルータに関係するトランスポート層プロトコルは、チャプタ 6 で論じられる。

インターネット層

全てのインターネットトランスポート層プロトコルは、送信元ホストから宛先ホストにデータを運ぶためにインターネットプロトコル (IP) を使用する。IP はコネクションレスでデータグラムの相互ネットワークサービスであり、エンドツーエンドの配送の保証は提供しない。IP データグラムは、宛先ホストに破損したり、重複したり、順序通りで無く到着するかもしれないし、あるいは全く到着しないかもしれない。IP 上の層は、必要であれば、信頼できるサービスを提供する責任がある。IP プロトコルはアドレス付けの提供、サービスタイプの指定、分割、組立、セキュリティを含む。

IP のデータグラムでコネクションレスの特性は、インターネットアーキテクチャの基礎であり、特徴的な性質である。

インターネット制御メッセージプロトコル (ICMP) は、アーキテクチャ上は IP の上に位置し、データをエンドツーエンドに運ぶために IP を使用するが、IP の一部として必要な部分と見なされる制御プロトコルである。ICMP は、エラー通知、輻輳通知、第一ホップルータリダイレクションを提供する。

インターネットグループ管理プロトコル (IGMP) は、IP マルチキャストの動的なホストグループを確立するために使用されるインターネット層プロトコルである。

インターネット層プロトコルの IP,ICMP,IGMP は、チャプタ 4 で論じられる。

リンク層

直接接続されたネットワーク上で通信するために、ホストはそのネットワークにインタフェースするために使用される通信プロトコルを実装しなければならない。我々はこれをリンク層プロトコルと呼ぶ。

幾つかの古いインターネットドキュメントは、この層をネットワーク層と呼んでいるが、OSI 参照モデルのネットワーク層と同じではない。

この層はインターネット層の下で、物理層 (媒体接続、通常電気的か光学的、メッセージを符号化して転送する) の上の全てを含む。その責任は、区別の無いメッセージの正しい配送である。

この層のプロトコルは通常、インターネット標準化の範囲外であり、インターネットは (意図的に) 可能であれば必ず既存の標準を使用する。従って、インターネットリンク層標準は大抵、アドレス解決や特定のリンク層プロトコル上で IP パケットを運ぶための規則のみ扱っている。インターネット層標準は、チャプタ 3 で論じられている。

2.2.2 ネットワーク

インターネットシステムのネットワーク構成要素は、パケット (コネクションレス) 転送を提供する必要があるだけである。IP サービス規定に従い、データグラムの送信は順序通りでない、損失または重複、エラーが含まれる可能性がある。

IP を使用するプロトコル (例えば TCP) の効率的なパフォーマンスのために、ネットワークの損失割合は非常に低くあるべきである。コネクション型サービスを提供するネットワークでは、仮想回線によって提供される余分な信頼性はエンド/エンドのシステムの頑強性を高めるが、インターネット処理では必要ない。

ネットワーク構成要素は通常、二つのクラスに分割される。

ローカルエリアネットワーク (LAN)

LAN は多様な設計を持つ。LAN は通常、地理上の小規模なエリア (例えば一つのビルや工場) をカバーし、遅延の少ない高帯域を提供する。LAN は受動的 (イーサネットと同様) かもしれないし、能動的 (例えば ATM) かもしれない。

ワイドエリアネットワーク (WAN)

地理的に散在したホストや LAN はワイドエリアネットワークによって相互接続され、遠距離転送ネットワークとも呼ばれる。これらのネットワークは回線/パケット交換の複雑な内部構造を持つか、あるいはポイントツーポイントと同じ位単純かもしれない。

2.2.3 ルータ

インターネットモデルでは、ネットワーク構成要素はルータ又は IP ルータと呼ばれる IP データグラムの転送によって相互に接続される。このドキュメントでは、ルータという用語は全て、IP ルータに相当する。多くの古いインターネットドキュメントは、ルータをゲートウェイと呼んでいる。

歴史的に、ルータは汎用的な CPU 上で実行されるパケット交換ソフトウェアで実現されてきた。しかし、カスタムハードウェア開発が安価になり、より高いスループットが求められるようになったので、専用的なハードウェアがますます一般的になりつつある。この規約は、ルータがどのような実装であるかに関わらず適用される。

ルータは、IP サブネットや非番号ポイントツーポイント回線 (セクション [2.2.7] で論じられる) によって表わされる、二つ以上の論理的なインタフェースに接続する。従って、ルータは少なくとも一つの物理インタフェースを持っている。IP データグラムの転送では通常、ルータは次ホップのルータか、(最終ホップとして) 宛先ホストに関連するアドレスとインタフェースを選択する必要がある。この選択は、ルータ内部の経路データベースに依存したリレー、または転送と呼ばれる。経路データベースはルーティングテーブル、または転送テーブルとも呼ばれる。"ルータ" という用語は、この経路データベースを生成するプロセス、つまりルーティングプロトコルやルーティングと呼ばれるプロセスにおける設定動作に由来する。

ルーティングデータベースは、インターネットシステムの現在のトポロジを反映するために動的に維持されるべきである。ルータは通常、他のルータとの分散ルーティング、到達性アルゴリズムに参加することによってこれを実現する。

ルータはデータグラム転送のみを提供し、ルーティングの融通性や頑強性のために、このサービスを支えるのに必要な状態情報を最小化することが求められる。

パケット交換デバイスはまたリンク層で処理してもよく、そのようなデバイスは通常ブリッジと呼ばれる。ブリッジによって接続されたネットワークセグメントは、単一の IP サブネットを形成する同じ IP ネットワークプレフィクスを共有する。これらの他のデバイスは、このドキュメントの適用外である。

2.2.4 自律システム

自律システム (AS: Autonomous System) は、一セットの経路によって相互接続されたサブネットワーク (と所属するホスト) の集合体で構成される、ネットワークトポロジの接続されたセグメントである。サブネットワークとルータは、単一の運用と保守 (O&M: operations and maintenance) 組織の支配下にあることが期待される。AS の中では、ルータは一つ以上の内部的なルーティングプロトコルと、時には複数のセットのメトリックを使用してもよい。AS は一貫した内部ルーティング計画の概観と、AS を通じて到達可能な宛先の一貫した構図を他の AS に提供することが期待される。AS は、自律システム番号によって識別される。

AS の概念は、インターネットルーティングにおいて重要な役割を演じる (セクション 7.1参照)。

2.2.5 アドレス体系

IP データグラムは32ビットの送信元/宛先アドレスを運び、その各々は二つの部分 - ネットワークプレフィクスとそのネットワーク上のホスト番号の構成要素 - に区切られる。記号では、

  IP-address ::= { <Network-prefix>, <Host-number> }

最後にデータグラムを配送するために、そのパスの最後のルータは、IP アドレスのホスト番号 (あるいは残り) の部分を、そのホストのリンク層アドレスにマッピングする。

2.2.5.1 IP アドレス体系クラス

他のドキュメント [INTERNET:2] に詳述されているが、ネットワークプレフィクスの歴史的な使用について記述することは有効である。それを記述するために開発された言語は、このドキュメントや他のドキュメントで使用され、多くのプロトコルの背景の考えに浸透している。

最も簡単なネットワークプレフィクスのクラスは、クラス A,B,C,D,E のネットワークプレフィクスである。これらのアドレス範囲は、アドレスの最上位ビットの値を見ることによって区別され、アドレスを簡単なプレフィクスとホスト番号フィールドに分ける。これは [INTERNET:18] で説明されている。簡単に言うと、そのクラスは

0xxx クラス A 標準的な 8 ビットプレフィクスを持つ、汎用のユニキャストアドレス
10xx クラス B 標準的な 16 ビットプレフィクスを持つ、汎用のユニキャストアドレス
110x クラス C 標準的な 24 ビットプレフィクスを持つ、汎用のユニキャストアドレス
1110 クラス D IP マルチキャストアドレス - 28 ビットプレフィクス、非集合
1111 クラス E 実験で使用するため予約

この単純な記法は、サブネットの概念によって拡張された。これらは、ネットワークプレフィクスの割当てやルーティングの複雑性の爆発的な増加に対して、インターネットシステムを保護する一方、組織内の相互接続された LAN 構造を任意に複雑化できるよう導入された。サブネットは、インターネットシステムに対する複数レベルの階層的なルーティング構造を提供する。[INTERNET:2] で説明されているサブネット拡張は、インターネットアーキテクチャの必要な部分である。その基本的な考え方は、<Host-number> フィールドを二つの部分、サブネット番号とサブネット上の真のホスト番号に区切ることである。

  IP-address ::= { <Network-number>, <Subnet-number>, <Host-number> }

組織内の相互接続された物理ネットワークは同じネットワークプレフィクスを持つが、サブネット番号は異なる。サブネット化されたネットワークのサブネット間の区別は、通常そのネットワークの外側には見えない。従って、インターネットの残りのルーティングは、IP 宛先アドレスの <Network-prefix> 部のみを使用する。ネットワークの外側のルータは、<Network-prefix> と <Host-number> の両方を、32 ビット IP アドレスの解釈されていない残りの部分として扱う。サブネット化されたネットワーク内では、ルータは以下の拡張されたネットワークプレフィクスを使用する。

  { <Network-number>, <Subnet-number> }

この拡張ネットワーク部を含んでいるビット位置は、歴史的にサブネットマスクと呼ばれる 32 ビットマスクによって識別されてきた。<Subnet-number> ビットは、<Network-number> と <Host-number> フィールドの間に連続して存在すべきである (SHOULD)。より最近のプロトコルはサブネットマスクとは呼ばず、プレフィクス長と呼んでいる。アドレスの "プレフィクス" 部は、上位ビットが全て 1 で残りが 0 のサブネットマスクによって選択されるものである。プレフィクスの長さは、サブネットマスクの 1 の個数に等しい。このドキュメントは、全てのサブネットマスクがプレフィクス長で表現可能であると仮定している。

サブネットメカニズムの発明者は、組織のネットワークの各々の部分が一つのサブネット番号しか持たないと仮定していた。実際は、複数のサブネットに一つの物理ケーブルを共有させることが必要であり、有効であることが判明している。そのため、ルータは同一の物理インタフェース上で、複数のサブネットを構成できるべきであり、(ルーティングや転送の見地から) あたかも別の物理インタフェースであるかのようにそれらを扱うべきである。

2.2.5.2 クラスレス内部ドメインルーティング (CIDR)

インターネットが爆発的に成長したことにより、アドレス割当て指針を再検証せざる得なくなった。一般用途 (クラス A, B, C) のネットワークの伝統的な使用方法は、IP の 32 ビットアドレス空間のより良い使用を達成するために修正された。クラスレス内部ドメインルーティング (CIDR: Classless Inter Domain Routing) [INTERNET:15] は、この追加された有効性を達成するために、インターネットバックボーンで現在開発されている方法である。CIDR は任意のサイズのネットワークへの展開とルーティングによる。このモデルでは、ホストとルータはインターネットでのアドレス付けの使用について仮定しない。クラス D (IP マルチキャスト) とクラス E (実験的) アドレス空間は基本的には割当て指針であるが、使用しない。

定義によると、CIDR は三つの要素から構成される。

ネットワークとサブネットの使用は、それらを記述するために使用される言語は現在使用されたままであるが、今は過去のものである。それらは、より扱いやすいネットワークプレフィクスの概念に置き換えられつつある。定義によると、ネットワークプレフィクスは、システムのセットを定義するアドレスの上位終端の連続したビットのセットである。ホスト番号は、それらのシステムの中から選択する。インターネット全体で、プレフィクスを一律に使用する要件はない。ルーティング情報を分けるので、インターネットをアドレスの付いたドメインに分割することは有効である。そのようなドメインの中では、その構成ネットワークについての詳細情報は利用可能であり、その外側では共通のネットワークプレフィクスのみが通知される。

旧来の IP アドレス体系は、ホスト番号とネットワークプレフィクスを区別するためにアドレスとサブネットマスクを使用した。ネットワークプレフィクスでは、プレフィクス中のビット数を示すだけで十分である。両方の表現は共通して使用される。体系的に正しいサブネットマスクは、プレフィクス長の記述を使用した表現が可能である。それらは、以下のあり得るビットパターン全てのサブセットを構成する。

ルータは経路を常にネットワークプレフィクスとして扱うべきであり (SHOULD)、そのモデルに矛盾する設定やルーティング情報を拒否すべきである (SHOULD)。

  IP-address ::= { <Network-prefix>, <Host-number> }

CIDR を使用する効果は、ルーティングテーブル中でアドレスプレフィクスに割り当てられた宛先のセットが、サブセットの関係を示すことである。宛先の小さいセット (プレフィクスが長い) を示す経路は、宛先の大きいセット (プレフィクスが短い) を示す経路よりも特定的であると言える。同様に、宛先の大きいセット (プレフィクスが短い) を示す経路は、宛先の小さいセット (プレフィクスが長い) を示す経路よりも非特定的であると言われる。ルータはトラフィックを転送するとき、最も特定的な一致経路 (一致するネットワークプレフィクスが最も長い) を使用しなければならない。

2.2.6 IP マルチキャスト

IP マルチキャストは、リンク層マルチキャストの IP インターネットへの拡張である。IP マルチキャストを使用して、単一のデータグラムを全てのホストに送信せずに、複数のホスト宛てに送信することかできる。拡張した場合、これらのホストが異なるアドレスドメインに存在していてもよい。このホストの集合体は、マルチキャストグループと呼ばれる。各々のマルチキャストグループは、クラス D の IP アドレスで表現される。そのグループに送信された IP データグラムは、ユニキャスト IP トラフィックで提供されるものと同じ最善努力方式の配送で、各グループメンバに配送される。データグラムの送信者自身は、宛先グループのメンバである必要はない。

IP マルチキャストグループメンバシップの意味は、[INTERNET:4] で定義されている。そのドキュメントは、ホストとルータがどのようにマルチキャストグループに加わるか、どのように外れるかを規定している。また、そのドキュメントは、IP マルチキャストグループメンバシップを監視する、インターネットグループ管理プロトコル (IGMP: Internet Group Management Protocol) もまた定義している。

IP マルチキャストデータグラムの転送は、静的ルーティング情報を通じて、あるいはマルチキャストルーティングプロトコルを経由して達成される。IP マルチキャストデータグラムを転送するデバイスは、マルチキャストルータと呼ばれる。それらは、IP ユニキャストを転送してもよいし、転送しなくともよい。マルチキャストデータグラムは、送信元と宛先アドレスの両方に基づいて転送される。IP マルチキャストパケットの転送は、セクション [5.2.1]で詳述されている。Appendix D はマルチキャストルーティングプロトコルについて論じている。

2.2.7 非番号回線とネットワークプレフィクス

伝統的に、IP ホストかルータ上の各々のネットワークインタフェースは、自分自身の IP アドレスを持つ。これは、全てのホイントツーポイント回線に IP ネットワークプレフィクスの割当てを強いるので、不足した IP アドレス空間の使用効率が悪い。

この問題を解決するために、多くの人々が非番号ポイントツーポイント回線の概念を提案し、実装した。非番号ポイントツーポイント回線は、それに割り当てられたネットワークプレフィクスを全く持たない。結果的に、非番号ポイントツーポイント回線に接続されたネットワークインタフェースは、IP アドレスを持たない。

IP 体系は伝統的に全てのインタフェースが IP アドレスを持つと仮定してきたので、これらの非番号インタフェースはいくつかの興味深いジレンマを引き起こす。例えば、ある IP オプション (例えば経路記録) は、ルータがそのオプションにインタフェースアドレスを挿入しなければならないと規定しているが、非番号インタフェースは IP アドレスを持たない。より根本的なのは (チャプタ 5 にあるように)、経路は次ホップルータの IP アドレスを含むことである。ルータは、ルータが接続されている IP (サブ) ネット上にこの IP アドレスがあることを期待する。その想定は無論、コネクションが非番号ポイントツーポイント回線に接続されているだけで破られる。

これらの困難を解決するために、二つのスキームが考案された。一つ目のスキームは、非番号ポイントツーポイント回線によって接続された二つのルータは、実際には二つのルータではなく、一つの仮想ルータを共に形成している半ルータと見なすことである。非番号ポイントツーポイント回線は、本質的に仮想ルータの内部バスと見なされる。仮想ルータの二つの半ルータは正確に一つのルータとして動作するよう、作業を協調しなければならない。

このスキームは IP 体系にうまく適応するが、二つの重要な欠点を持つ。一つ目の欠点は、それは一本の非番号ポイントツーポイント回線の一般的なケースを扱うが、ルータと非番号ポイントツーポイント回線のメッシュのケースを扱うのに容易に拡張できないことである。二つ目の欠点は、半ルータ間の相互動作は、かなり複雑で標準化されておらず、非番号ポイントツーポイント回線を使用する異なるベンダ製の機器間の接続を、実際上妨げることである。

これらの欠点があるため、このメモは別のスキームを採用した。これは何度か創案されているが、恐らく元は Phil Karn によるものだろう。このスキームでは、非番号ポイントツーポイント回線を持つルータは、特殊な IP アドレスも持つ。このメモでは、それをルータ ID と呼ぶ。ルータ ID は、ルータの IP アドレス (ルータは少なくとも一つの IP アドレスを持つ必要がある) の一つである。このルータ ID は、あたかも全ての非番号インタフェースの IP アドレスであるかのように使用される。

2.2.8 顕著な奇妙さ

2.2.8.1 埋め込みルータ

ルータは、IP ルータ機能専用のスタンドアロンコンピュータシステムであってもよい。また、二つ以上のネットワークへのコネクションをサポートするホストのオペレーティングシステムに、ルータ機能を埋め込むことも可能である。埋め込みルータのコードを持つオペレーティングシステムの最も良く知られた例は、バークレイ BSD システムである。埋め込みルータの特徴は、ネットワークを容易に構築するようにみえるが、数多くの隠れた落とし穴がある。

  1. もしホストが、ネットワークインタフェース構成要素を一つしか持たないならば、ルータとして振る舞うべきではない。

    例えば、ブロードキャストパケットやデータグラムを同じのネット上に余計に転送する埋め込みルータコードを持つホストは、しばしばパケットのなだれ込みの原因になる。

  2. もし (マルチホームの) ホストがルータとして振る舞うならば、このドキュメントに含まれているルータの要件に従う。

    例えば、ルーティングプロトコルの問題やルータ制御と監視の問題は、スタンドアローンルータと同様に、埋め込みルータにとっても大変であり重要である。

    インターネットルータ要件と規約は、オペレーティングシステムの変更とは独立して変更されるかもしれない。インターネットで埋め込みルータを運用する管理において、ルータコードを保守し、更新することが強く推奨される。これは、ルータのソースコードを必要とするかもしれない。

  3. ホストが埋め込みルータコードを実行するとき、それはインターネットの基盤の一部となる。従って、ソフトウェアや設定のエラーが他のホスト間の妨げになる可能性がある。つまり、ホスト管理者は、幾つかの自主性を失わなければならない。

    多くの環境において、ホスト管理者はオペレーティングシステムに埋め込まれたルータコードを無効にする必要がある。このため、埋め込みルータの機能を無効にする方が簡単なはずである。

  4. 埋め込みルータのコードを実行しているホストが、同時に他のサービスでも使用される時、運用と管理要件の二つの使用モードが競合するかもしれない。

    例えば、多くの場合ルータの O&M はオペレーションセンターで遠隔に実現される。これにより、ホスト管理者が分散することを通常望まない、特権的なシステムアクセスを必要とするかもしれない。

2.2.8.2 透過ルータ

インターネットで、ローカルエリアネットワークとワイドエリア (遠距離) ネットワークを相互接続するための、二つの基本的なモデルが存在する。一つ目は、ローカルエリアネットワークにネットワークプレフィクスが割り当てられ、インターネット中の全てのルータが、そのネットワークへのルーティング方法を知らなければならない。二つ目は、ローカルエリアネットワークが、ワイドエリアネットワークのアドレス空間 (の少しの部分) を共有する。二つ目のモデルをサポートするルータはアドレス共有ルータ、または透過ルータと呼ばれる。このメモは一つ目のモデルに焦点を絞っているが、透過ルータの使用を除外することは意図していない。

透過ルータの基本的な考え方は、そうしたルータの後方にあるローカルエリアネットワーク上のホストが、ルータの前方にあるワイドエリアネットワークのアドレス空間を共有することである。ある状況ではこれは非常に有効なアプローチであり、その制限が重要な欠点になることはない。

前方や後方という単語はこのアプローチの制限の一つを示す。相互接続のこのモデルは、地理的に (トポロジ的に) 制限されたスタブ環境にのみ適切である。ワイドエリアネットワークのネットワークレベルのアドレス付けにおいて、論理的なアドレス付けの幾つかの形態が存在する必要がある。ローカル環境の IP アドレスは、ワイドエリアネットワークの幾つかの (大抵は一つ) 物理アドレスにマッピングされる。これは、ワイドエリアネットワーク全体で使用される { IP アドレス <-> ネットワークアドレス } のマッピングと整合する方法でマッピングされる。

マルチホーミングはワイドエリアネットワーク上で可能であるが、もしインタフェースが地理的かトポロジ的に切り離されていたら、ルーティングの問題が起きるかもしれない。二つ (以上) のワイドエリアネットワーク上のマルチホーミングは、アドレス混在の問題がある。

ホストが透過的に同じネットワークにある他のホストから見える振る舞いは、もし透過ルータが通常のワイドエリアネットワークのサービスを完全にエミュレートできなければ、異なるかもしれない。例えば ARPANET は、オフラインのホストに送信する試みに対する応答で、宛先デッド指示を提供するリンク層プロトコルを使用していた。しかし、もし ARPANET とイーサネットの間に透過ルータが存在すると、ARPANET 上のホストはイーサネットのホストの宛先デッド指示を受信しないだろう。

2.3 ルータの機能

インターネットルータは、以下の機能を実現する。

  1. このドキュメントに記述された特定のインターネットプロトコルに適合する。それは、インターネットプロトコル (IP)、インターネット制御管理プロトコル (ICMP)、必要に応じ他のプロトコルを含む。

  2. 二つ以上のパケットネットワークのインタフェースを持つ。各々の接続されたネットワークに対して、ルータはそのネットワークで必要とされる機能を実装しなければならない。これらの機能は、通常以下を含む。
  1. インターネットデータグラムの受信や転送。この処理における重要な問題はバッファ管理、輻輳制御、公正さである。
  1. ルーティングデータベース中の情報に基づく、各 IP データグラムの次ホップ宛先の選択。詳細は、チャプタ 3 (インターネット層 - 転送) を参照のこと。

  2. (通常) 同じ自律システムの他のルータと共に、分散ルーティングと到達性アルゴリズムを実行するための、内部ゲートウェイプロトコル (IGP: interior gateway protocol) のサポート。加えて、幾つかのルータは他の自律システムとトポロジ情報を交換するために、外部ゲートウェイプロトコル (EGP: exterior gateway protocol) をサポートする必要があるだろう。詳細は、チャプタ 7 (アプリケーション層 - ルーティングプロトコル) を参照のこと。

  3. 負荷、デバッグ、状態通知、例外通知や管理を含むネットワーク管理とシステムサポート機能の提供。詳細は、チャプタ 8 (アプリケーション層 - ネットワーク管理プロトコル) とチャプタ 10 (操作と保守) を参照のこと。

ルータベンダは特定のルータ製品に対して力、複雑性、機能性で沢山の選択肢がある。インターネットシステムは同質でも完全に接続されるものでもないことに気づくことは有効である。技術や地理的な理由により、インターネットはグローバルな相互接続システムに加え、端周辺の LAN の外辺にまで大きくなっている。これらの外辺の LAN がますます数多く相互接続されるに従って、除外される LAN はますます減り、ルータへの要求がますます高くなる。

グローバルな相互システム中のルータは一般的に以下を必要とする。

進歩したルーティングと転送アルゴリズム

これらのルータは高度に動的で、処理と通信負担を最小限とし、サービスタイプのルーティングを提供するルーティングアルゴリズムを必要とする。輻輳はまだ完全に解決された問題ではない (セクション[5.3.6] 参照)。研究団体はこれらの問題に対して活発に検討しており、これらの分野での改善が期待される。

高可用性

これらのルータは信頼性が高く、1 日 24 時間、1 週間 7 日のサービスを提供する必要がある。装置やソフトウェアの障害は、広範囲 (時にはグローバル) への影響を引き起こす可能性がある。障害が発生した場合、即刻回復しなければならない。如何なる環境においても、ルータは高度に頑強性を持ち、極端な輻輳状態やネットワーク資源の障害の下で、質の低下した状態でも運用できなければならない。

進歩した O&M の機能

インターネットルータは通常、無人モードで運用される。ルータは通常、中央監視センタから遠隔操作される。ルータは、監視やトラフィックの計測、他のイベントや障害診断のための洗練された手段を提供する必要がある。

高いパフォーマンス

インターネットにおける遠距離回線は今日、大半が全二重 56 Kbps、DS1 (1.544Mbps)、DS3 (45Mbps) の速度である。半二重マルチアクセスメディアの LAN は通常、イーサネット (10Mbps)、規模は小さいが FDDI (100Mbps) である。しかし、ネットワークメディア技術は永続的に発展しており、将来はより高速になりそうである。

LAN 周り (例えばキャンパスネットワーク) で使用されるルータは、ローカルネットワークの要求に強く依存している。これらは高度あるいは中度のパフォーマンスデバイスで、おそらく複数の異なるベンダから競札で調達し、内部組織 (例えばキャンパスコンピュータセンタ) によって運用される。これらのルータの設計は、遅延やサービスタイプを意識した資源管理と共に、平均応答時間が短く、適切なバーストパフォーマンスを強調すべきである。この環境では形式的な O&M は少ないが、重要性は低くない。高度に動的なルーティングメカニズムの要件は、ネットワークが複雑で相互接続が増すにつれてより重要になるだろう。利用者は、グローバルな相互接続の速度のために、ローカル接続からより多くを要求するだろう。

ネットワークが大きくなるにつれ、そして古い機器を徐々に撤去する程ネットワークが古くなるにつれて、ルータが他ベンダ製のルータと相互運用することは、ますます避けられなくなる。

たとえインターネットシステムが完全に相互接続されていなくとも、システムの多くの部分は冗長な接続性を持つ必要がある。豊富な接続性は、通信回線やルータの障害にもかかわらず信頼できるサービスをを可能にし、また、インターネット経路を短縮し、付加的な許容力を提供することによってサービスを改善することもできる。不幸にも、この豊富なトポロジは特定の宛先への最善経路の選択を非常に難しくする。

2.4 体系的な仮定条件

現在のインターネット体系は、通信システムに関する一連の仮定条件に基づいている。最もルータに関連する仮定は、以下のものである。

・インターネットはネットワークのネットワークである。

各々のホストは幾つかの特定のネットワークに直接接続されており、インターネットとの接続は単なる概念上のものである。同一ネットワーク上の二つのホストは、離れたネットワーク上のホストと通信するために使用する同一セットのプロトコルを使用して、お互いに通信する。

・ルータはコネクション状態情報を保存しない

通信システムの頑強性を改善するため、ルータは状態無しで設計され、他のパケットに依存せずに各々の IP パケットを転送する。結果的に、ルータとネットワーク間で障害が発生しても、強いサービスを提供するために冗長パスを利用することができる。

エンドツーエンドフロー制御と信頼性に必要な全ての状態情報は、ホストのトランスポート層かアプリケーションプログラムに実装される。従って、全てのコネクション制御情報は通信の両終端に保持され、その情報が失われるのは、終端に障害が起きた場合だけである。ルータはパケットを落とすかネットワーク遅延を増すことによって、間接的にしかメッセージフローを制御できない。

将来のプロトコル改善で、ルータに幾つかの状態が組み込まれるようになるかもしれないことに注意されたい。これは特に、マルチキャストルーティングや資源予約、フローベース転送でありそうである。

・ルーティングの複雑さはルータ内にあるべきである。

ルーティングは複雑で難しい問題であり、ホストではなくルータによって実現されるべきである。重要な目的は、インターネットルーティング体系の必然的な発展によって発生する変更から、ホストソフトウェアを保護することである。

・システムはネットワークの多様性を許容しなければならない。

インターネット設計の基本的な目的は、広範囲なネットワーク特性、例えば帯域や遅延、パケット損失、パケットの再順序、最大パケット長等を許容することである。もう一つの目的は、個々のネットワークやルータやホストの障害に対し、まだ利用可能な帯域を使用する頑強性である。最後に、目標は完全なオープンシステム相互接続であり、インターネットルータは多様なインターネット経路に渡って、他のいかなるルータあるいはインターネットホストとも、強く効率的に相互運用できなければならない。

時々、実装者は野心的ではない目標で設計している。例えば、LAN 環境は通常、インターネットよりも総括的に非常に良好である。LAN のパケット損失や遅延は低く、パケットを再順序化することもない。幾つかのベンダは、単純な LAN 環境に適した実装体を提供したが、一般的な相互運用では上手く動作しなかった。ベンダは、限定された LAN マーケットの範囲内で経済的であるとして、製品を正当化している。しかし、独立した LAN はめったに独立したまま長い間留まることはない。それらは間もなくお互いに接続され、組織単位で相互接続され、最終的に世界的なインターネットシステムに接続された。結局のところ消費者もベンダも、不完全でサブ標準的なルータを使用しなくなっている。

このドキュメントの要件は、完全な機能を有するルータに対して設計されている。これに完全に従っているルータは、インターネットのほぼいかなる部分に置いても利用できることを意図している。

3. リンク層

[INTRO:1] はリンク層の標準 (ARP 等の様々なリンク層上の IP) をカバーしているが、このドキュメントでは、リンク層に関連する内容は別のリンク層要件のドキュメントでカバーされるだろうと見越している。リンク層要件のドキュメントは、ホストとルータの両方に適用できるだろう。従って、このドキュメントはリンク層の問題を扱っている [INTRO:1] の部分を廃止してはいない。

3.1 導入

ルータは、他のインターネットシステムと同様に、本質的にリンク層プロトコル要件を持つ。これらの要件は、インターネットゲートウェイ要件 [INTRO:1] のチャプタ 3 に示されている。ルータはその要件に従わなければならず (MUST)、その推奨に従うべきである (SHOULD)。そのドキュメントの幾つかの資料は古くなったので、幾つかの要件と説明を以下に含めている。

DISCUSSION
インターネット社会がインターネットリンク層のための標準を作成し、このチャプタと [INTRO:1] の "インターネット層プロトコル" とタイトル付けされたチャプタを上書きすることを期待している。

3.2 リンク/インターネット層インタフェース

このドキュメントは、リンク層とその上位層間のインタフェースを規定することを試みない。しかし、このドキュメントの別の部分、特にチャプタ 5 は、この層境界で渡すべき様々な種類の情報を要求している。

このセクションは以下の定義を使用する。

送信元物理アドレス

送信元物理アドレスはパケットをどこから受信したかを示す、ホストかルータのリンク層アドレスである。

宛先物理アドレス

宛先物理アドレスはパケットをどこへ送信したかを示すリンク層アドレスである。

各々の受信パケットについて、リンク層からインターネットワーク層に渡さなければならない情報は、

  1. IP パケット [5.2.2]
  2. リンク層フレームの (すなわちリンク層フレームを含まない) データ部の長さ [5.2.2]
  3. IP パケットを受信した物理インタフェースの識別 [5.2.3]
  4. リンク層ユニキャスト、ブロードキャスト、マルチキャストのパケットの宛先物理アドレスの分類
  5. 送信元物理アドレス

各々の送信パケットについて、インターネットワーク層からリンク層に渡さなければならない情報は、

  1. IP パケット [5.2.1]
  2. IP パケットの長さ [5.2.1]
  3. 宛先物理インタフェース [5.2.1]
  4. 次ホップ IP アドレス [5.2.1]
  5. リンク層優先度の値 [5.3.3.2]

リンク層はインターネットワーク層に、送信されたパケットがリンク層の手続き関連異常を引き起こしたか否かを通知しなければならない。[5.3.3.3]

3.3 特定の問題

3.3.1 トレイラカプセル化

10 メガビットのイーサネットに接続できるルータは、[LINK:1] で規定されているトレイラカプセル化を使用してカプセル化されたイーサネットパケットを送受信できてもよい (MAY)。しかし、ルータはトレイラカプセル化されたパケットを発行すべきではない (SHOULD NOT)。ルータは、最初に [INTRO:2] で規定されているメカニズムを使用して、パケットの直接の宛先がトレイラカプセル化パケットを受信するつもりであり、受信できることを照合せずに、トレイラカプセル化されたパケットを発行してはならない (MUST NOT)。

3.3.2 アドレス解決プロトコル - ARP

ARP を実装しているルータは、[INTRO:2] の要件に従わなければならず (MUST)、無条件に従うべきである (SHOULD)。

リンク層は、宛先未到達エラーを IP に単独で通知してはならない (MUST NOT)。なぜなら、その宛先に対する ARP キャッシュエントリが存在しないからである。リンク層は ARP 要求/応答シーケンスを手短に実行する間、少量のデータグラムにキューイングすべきであり、これが実を結ばないと証明された時にのみ、キューイングされたデータグラムの一つに対して、宛先が未到達であることを応答すべきである (SHOULD)。

ルータは、別のホストかルータのリンク層アドレスがブロードキャストかマルチキャストアドレスであると主張する如何なる ARP 応答も信じてはならない (MUST NOT)。

3.3.3 イーサネットと 802.3 共存

10MB のイーサネットに接続できるルータは、[INTRO:2] のイーサネット要件に従わなければならず (MUST)、無条件に従うべきである (SHOULD)。

3.3.4 最大転送単位 - MTU

各々の論理インタフェースの MTU は、そのインタフェースに対する正しい MTU の範囲内で設定可能にすべきである。

多くのリンク層プロトコルは、送信してもよい最大フレーム長を定義している。そのような場合、ルータはリンク層プロトコルで許されているサイズよりも大きいフレームの送信を可能にするような MTU の設定を許してはならない (MUST NOT)。しかし、ルータはたとえ MTU よりも大きくとも、最大フレーム長と同じ大きさのパケットは受諾すべきである (SHOULD)。

これは、[INTRO:2] でホストに課せられている、各々の物理インタフェースの MTU を設定可能にすることを要求する要件よりも厳しい要件であることに注意されたい。

もしネットワークがリンク層の最大フレーム長よりも小さい MTU を使用しているならば、ルータは誤って設定されたか初期化が不完全なホストからの、MTU よりも大きいパケットを受信してもよい。頑強性の原則は、ルータは可能ならばこれらのパケットを正常に受信すべきであることを指示している。

3.3.5 ポイントツーポイントプロトコル - PPP

[INTRO:1] とは反対に、インターネットには標準的なポイントツーポイント回線プロトコルがある。それは、 [LINK:2], [LINK:3], [LINK:4], [LINK:5] で定義されたポイントツーポイントプロトコル (PPP) である。

ポイントツーポイントインタフェースは、ポイントツーポイント回線上にデータを送信するために設計されたインタフェースである。このようなインタフェースは、電話回線、専用回線、専用線、直接回線 (2 線か 4 線) を含み、ポイントツーポイントチャネルや ISDN 等の多重化インタフェースの仮想回線を使用してもよい。それらは同期か非同期クロックを使用した、標準化されたモデムかビットシリアルインタフェース (RS-232, RS-449, V.35 等) を通常使用する。多重化インタフェースは、しばしば特殊な物理インタフェースを持つ。

一般目的シリアルインタフェースは、ポイントツーポイント回線と同じ物理媒体を使用するが、ポイントツーポイントの接続性だけでなく、リンク層ネットワークの使用もサポートしている。リンク層ネットワーク (X.25 やフレームリレー等) は、別の IP リンク層規約を使用する。

ポイントツーポイントか一般目的シリアルインタフェースを実装するルータは、PPP を実装しなければならない (MUST IMPLEMENT)。

ルータの全ての一般目的シリアルインタフェースで、PPP がサポートされなければならない (MUST)。ルータは、PPP 以外のポイントツーポイント回線を使用するよう、回線の設定を可能にしてもよい (MAY)。ポイントツーポイントインタフェースは、利用可能なときデフォルトで PPP を使用するか、利用可能になる前にリンク層プロトコルの設定を要求するべきである (SHOULD)。一般目的シリアルインタフェースは、利用可能になる前にリンク層プロトコルの設定を要求すべきである (SHOULD)。

3.3.5.1 導入

このセクションは、ルータ実装者に、同期/非同期回線上で PPP を使用する他のルータとの相互接続性を保証するためのガイドラインを提供する。

実装者がオプション折衝メカニズムを理解することは重要である。オプションは、ローカルデバイスがリモートの相手から何を受諾し何を送信して欲しくないかを、ローカルデバイスがリモートの相手に示す手段である。ローカルデバイスが受諾できると主張したオプションセットの制限の中で、何を送信するのが最も効率的であるかを決定することはリモートの相手次第である。従って、たとえリモートの相手がそれらのオプションの幾つかをサポートしていなくても、リモートの相手が LCP 通信設定要求 (CR) で指示された全てのオプションに ACK を送信することは、完全に受諾できるし、一般的である。また、オプションはいずれかのデバイスが何を受諾するかを相手に示す簡単なメカニズムであり、何を送信するかは必要ではない。

3.3.5.2 リンク制御プロトコル (LCP) オプション

PPP リンク制御プロトコル (LCP) は、折衝してもよい数多くのオプションを提供する。これらのオプションは、(他の中でも) アドレスと制御フィールド圧縮、プロトコルフィールド圧縮、同期キャラクタマッピング、最大受信単位 (MRU)、リンク品質監視 (LQM)、マジックナンバ (ループバックの検出のため)、パスワード認証プロトコル (PAP)、同期認証プロトコル (CHAP)、32 ビットフレームチェックシーケンス (FCS) を含む。

ルータは、同期/非同期回線のいずれかでアドレス/制御フィールド圧縮を使用してもよい (MAY)。ルータは、同期/非同期回線のいずれかでプロトコルフィールド圧縮を使用してもよい (MAY)。これらの圧縮を受諾できることを示すルータは、非圧縮の PPP ヘッダ情報も受諾できなければならない (MUST)。

DISCUSSION
これらのオプションは PPP ヘッダの外観を制御する。通常、PPP ヘッダはアドレス、制御フィールド、プロトコルフィールドで構成される。ポイントツーポイント回線上のアドレスは 0xFF であり、"ブロードキャスト" を示す。制御フィールドは 0x03 であり、"非番号情報" を示す。プロトコル識別子は 2 バイト値で、フレームのデータ域の内容を示す。もしシステムがアドレスと制御フィールド圧縮を折衝するならば、これらのフィールドを持つか、あるいは持たない PPP フレームの受諾を、ヘッダの前で相手に示す。それは、これらのフィールドを削除して送信することを示すわけではない。

プロトコルフィールド圧縮が折衝された場合、システムが 1 バイトに圧縮されたプロトコルフィールドを、正しい場合に受信することを示す。そのように送信する要件はない。

アドレス/制御フィールド圧縮の使用は、番号モードの (信頼できる) PPP の使用と相反する。

IMPLEMENTATION
あるハードウェアは、可変長のヘッダ情報を上手く扱うことができない。そのような場合、リモートの相手が完全な PPP ヘッダを送信することが最も重要である。実装体は、アドレス/制御フィールドとプロトコルフィールド圧縮オプションをリモートの相手に送信しないことによってこれを保証してもよい。たとえリモートの相手が圧縮ヘッダの受信能力を示したとしても、ローカルルータが圧縮したヘッダを送信する要件はない。

ルータは、非同期 PPP リンクでは非同期制御キャラクタマッピング (ACCM) を折衝しなければならない (MUST) が、同期リンクでは ACCM を折衝すべきではない (SHOULD NOT)。もしルータが同期リンク上で ACCM を折衝する試みを受信したら、そのオプションに対して ACK を送信し、それを無視しなければならない (MUST)。

DISCUSSION
同期と非同期の両方の操作モードを提供し、オプション折衝を実装するのに同じコードを使用している実装体が存在する。この場合、いずれかの終端が同期リンク上で ACCM オプションを送信する可能性がある。

ルータは、最大受信単位 (MRU) を正確に折衝すべきである (SHOULD)。たとえシステムが、MRU を 1500 バイト以下で折衝したとしても、1500 バイトのフレームを受信できなければならない (MUST)。

ルータはリンク品質監視 (LQM) オプションを折衝し、利用可能にすべきである (SHOULD)。

DISCUSSION
このメモは、リンクの品質が適切であるか否かを決定するための指針を規定しない。しかし、障害のあるリンクを利用不可にすることは重要である (セクション [3.3.6]参照)。

ルータはループバック検出のために、マジックナンバオプションを実装し、折衝すべきである (SHOULD)。

ルータは認証オプション (PAP - パスワード認証プロトコルや CHAP - 同期認証プロトコル)をサポートしなければならない (MUST)。

ルータは 16 ビット CRC フレームチェックシーケンス (FCS) をサポートしなければならず (MUST)、32 ビット CRC をサポートしてもよい (MAY)。

3.3.5.3 IP 制御プロトコル (IPCP) オプション

ルータは IP アドレス折衝を実行してもよい (MAY)。ルータは相手からの IP アドレス折衝に対して拒否 (REJect) を受諾しなければならない (MUST)。

19200bps かそれ以下の回線速度で運用するルータは、Van Jacobson ヘッダ圧縮の実行を実装し提供すべきである (SHOULD)。VJ 圧縮を実装するルータは、VJ 圧縮を利用可/不可にする管理制御を実装すべきである (SHOULD)。

3.3.6 インタフェーステスト

ルータは、物理インタフェースがパケット送信で利用可能か否かを、ルーティングソフトウェアが決定するためのメカニズムを持たなければならない (MUST)。永久的な仮想回線が隣接者の制限されたセットに対してオープンされている多重化インタフェース上では、ルータは仮想回線が利用できるか否かを決定できなけばならない (MUST)。ルータは、物理インタフェースの品質をルーティングソフトウェアが判定するためのメカニズムを持つべきである (SHOULD)。ルータは、物理インタフェースが管理上の動作のためにパケット送信で利用可能になるか利用不可になるかを、ルーティングソフトウェアに通知するメカニズムを持たなければならない (MUST)。ルータは如何なる理由においても、リンクレベルインタフェースが利用可能になるか利用不可になるかを検出した時に、ルーティングソフトウェアに通知するメカニズムを持たなければならない (MUST)。

DISCUSSION
ルータが、そのネットワークコネクションが正常に機能していることを決定するために動かせるメカニズムを持つことは重要である。リンク損失を検出しないか、問題を検出したときに適切な動作を実行しないことは、ブラックホールを招く可能性がある。

ネットワークコネクションの問題を検出することができるメカニズムは、使用するリンク層プロトコルやインタフェースハードウェアによってかなり変化する。その意図は、リンク層の制約の中で障害を検出する能力を最大化することである。


次へ