2. Internet Architecture (インターネットアーキテクチャ)
2. Internet Architecture (インターネットアーキテクチャ)
この章には要件は含まれていません。ただし、インターネットとルーターの全体的なアーキテクチャに関する有用な背景情報が含まれています。
インターネットアーキテクチャと支援プロトコルファミリーに関する一般的な背景と議論は、DDN Protocol Handbook [ARCH:1] にあります。背景については、たとえば [ARCH:2]、[ARCH:3]、[ARCH:4] を参照してください。インターネットアーキテクチャとプロトコルは、増加する教科書、たとえば [ARCH:5] および [ARCH:6] でもカバーされています。
2.1 Introduction (はじめに)
インターネットシステムは、インターネットプロトコルを使用してホストコンピューター間の通信をサポートする、多くの相互接続されたパケットネットワークで構成されています。これらのプロトコルには、Internet Protocol (インターネットプロトコル、IP)、Internet Control Message Protocol (インターネット制御メッセージプロトコル、ICMP)、Internet Group Management Protocol (インターネットグループ管理プロトコル、IGMP)、およびそれらに依存するさまざまなトランスポートおよびアプリケーションプロトコルが含まれます。セクション [1.2] で述べたように、Internet Engineering Steering Group は、すべてのインターネットプロトコルをリストする公式プロトコルメモを定期的に発行しています。
すべてのインターネットプロトコルは、基本的なデータ伝送メカニズムとして IP を使用します。IP は、アドレッシング、サービスタイプ指定、フラグメンテーションと再構成、およびセキュリティの規定を含む、データグラムまたはコネクションレスのインターネットワークサービスです。ICMP と IGMP は IP の不可欠な部分と見なされますが、アーキテクチャ的には IP の上に階層化されています。ICMP は、エラー報告、フロー制御、ファーストホップルーター・リダイレクト、およびその他のメンテナンスと制御機能を提供します。IGMP は、ホストとルーターが IP マルチキャストグループに参加および脱退できるメカニズムを提供します。
インターネットプロトコルファミリーでの信頼性のあるデータ転送は、たとえば Transmission Control Protocol (伝送制御プロトコル、TCP) などのトランスポート層プロトコルによって提供されます。TCP は、エンドツーエンドの再送信、再順序付け、および接続制御を提供します。トランスポート層のコネクションレスサービスは、User Datagram Protocol (ユーザーデータグラムプロトコル、UDP) によって提供されます。
2.2 Elements of the Architecture (アーキテクチャの要素)
2.2.1 Protocol Layering (プロトコルの階層化)
インターネットシステムを使用して通信するには、ホストはインターネットプロトコルファミリーを構成する階層化されたプロトコルセットを実装する必要があります。ホストは通常、各層から少なくとも1つのプロトコルを実装する必要があります。
インターネットアーキテクチャで使用されるプロトコル層は次のとおりです [ARCH:7]:
Application Layer (アプリケーション層)
アプリケーション層は、インターネットプロトコルファミリーの最上位層です。インターネットプロトコルファミリーは、アプリケーション層をさらに細分化しませんが、一部のアプリケーション層プロトコルには内部サブ階層化が含まれています。インターネットプロトコルファミリーのアプリケーション層は、本質的に OSI 参照モデル [ARCH:8] の最上位2層 - プレゼンテーション層とアプリケーション層 - の機能を組み合わせています。インターネットプロトコルファミリーのアプリケーション層には、OSI 参照モデルでセッション層に分類される一部の機能も含まれています。
2つのクラスのアプリケーション層プロトコルを区別します: ユーザーに直接サービスを提供するユーザープロトコルと、一般的なシステム機能を提供するサポートプロトコルです。最も一般的なインターネットユーザープロトコルは次のとおりです:
- Telnet (リモートログイン)
- FTP (ファイル転送)
- SMTP (電子メール配信)
他にも多くの標準化されたユーザープロトコルと多くのプライベートユーザープロトコルがあります。
サポートプロトコルは、ホスト名マッピング、ブートストラップ、および管理に使用され、SNMP、BOOTP、TFTP、Domain Name System (DNS、ドメインネームシステム) プロトコル、およびさまざまなルーティングプロトコルが含まれます。
ルーターに関連するアプリケーション層プロトコルは、このメモの第7、8、9章で説明されています。
Transport Layer (トランスポート層)
トランスポート層は、エンドツーエンドの通信サービスを提供します。この層は、OSI 参照モデルのトランスポート層とほぼ対応していますが、OSI のセッション層の確立と破棄機能の一部も組み合わせています。
現在、2つの主要なトランスポート層プロトコルがあります:
- Transmission Control Protocol (TCP、伝送制御プロトコル)
- User Datagram Protocol (UDP、ユーザーデータグラムプロトコル)
TCP は、エンドツーエンドの信頼性、再順序付け、およびフロー制御を提供する、信頼性のある接続指向のトランスポートサービスです。UDP は、コネクションレス (データグラム) トランスポートサービスです。研究コミュニティは他のトランスポートプロトコルを開発しており、公式インターネットトランスポートプロトコルのセットは将来拡大される可能性があります。
ルーターに関連するトランスポート層プロトコルは、第6章で説明されています。
Internet Layer (ネットワーク層)
すべてのインターネットトランスポートプロトコルは、Internet Protocol (IP、インターネットプロトコル) を使用して、ソースホストから宛先ホストにデータを転送します。IP は、エンドツーエンド配信保証を提供しない、コネクションレスまたはデータグラムインターネットワークサービスです。IP データグラムは、破損したり、重複したり、順序が狂って宛先ホストに到着したり、まったく到着しなかったりする可能性があります。IP の上の層は、必要に応じて信頼性のある配信サービスを提供する責任があります。IP プロトコルには、アドレッシング、サービスタイプ指定、フラグメンテーションと再構成、およびセキュリティの規定が含まれています。
IP のデータグラムまたはコネクションレス性は、インターネットアーキテクチャの基本的かつ特徴的な特性です。
Internet Control Message Protocol (ICMP、インターネット制御メッセージプロトコル) は、IP の不可欠な部分と見なされる制御プロトコルですが、アーキテクチャ的には IP の上に階層化されています - データをエンドツーエンドで転送するために IP を使用します。ICMP は、エラー報告、輻輳報告、およびファーストホップルーター・リダイレクトを提供します。
Internet Group Management Protocol (IGMP、インターネットグループ管理プロトコル) は、IP マルチキャスト用の動的ホストグループを確立するために使用されるネットワーク層プロトコルです。
ネットワーク層プロトコル IP、ICMP、および IGMP は、第4章で説明されています。
Link Layer (リンク層)
直接接続されたネットワーク上で通信するには、ホストはそのネットワークとのインターフェイスに使用される通信プロトコルを実装する必要があります。これをリンク層プロトコルと呼びます。
一部の古いインターネット文書では、この層をネットワーク層 (Network Layer) と呼んでいますが、OSI 参照モデルのネットワーク層とは異なります。
この層には、ネットワーク層の下および物理層の上のすべてが含まれます (物理層は、メッセージをエンコードおよび送信するメディア接続で、通常は電気的または光学的です)。その責任はメッセージを正しく配信することであり、メッセージを区別しません。
この層のプロトコルは通常、インターネット標準化の範囲外です。インターネットは (意図的に) 可能な限り既存の標準を使用します。したがって、インターネットリンク層標準は通常、アドレス解決と特定のリンク層プロトコルを介した IP パケットの送信規則にのみ関係します。インターネットリンク層標準は第3章で説明されています。
2.2.2 Networks (ネットワーク)
インターネットシステムの構成ネットワークは、パケット (コネクションレス) 伝送を提供するだけで済みます。IP サービス仕様によれば、データグラムは順序が狂って配信されたり、失われたり、重複したり、および/またはエラーを含んだりする可能性があります。
IP を使用するプロトコル (たとえば TCP) が妥当なパフォーマンスを得るには、ネットワークの損失率は非常に低くなければなりません。接続指向サービスを提供するネットワークでは、仮想回路によって提供される追加の信頼性は、システムのエンドツーエンドの堅牢性を強化しますが、インターネット操作に必要ではありません。
構成ネットワークは通常、2つのカテゴリに分類できます:
Local-Area Networks (LANs) (ローカルエリアネットワーク)
LAN は、さまざまな設計を持つ場合があります。LAN は通常、小さな地理的領域 (たとえば、単一の建物または工場敷地) をカバーし、低遅延の高帯域幅を提供します。LAN は、パッシブ (イーサネットのような) またはアクティブ (ATM など) の場合があります。
Wide-Area Networks (WANs) (広域ネットワーク)
地理的に分散したホストと LAN は、広域ネットワーク (長距離ネットワークとも呼ばれます) を介して相互接続されています。これらのネットワークは、複雑な内部回線とパケットスイッチ構造を持つ場合もあれば、ポイントツーポイント回線のように単純な場合もあります。
2.2.3 Routers (ルーター)
インターネットモデルでは、構成ネットワークは、ルーターまたは IP ルーターと呼ばれる IP データグラムフォワーダーを介して接続されています。この文書では、「ルーター」という用語の使用はすべて IP ルーターと同等です。多くの古いインターネット文書では、ルーターをゲートウェイ (gateways) と呼んでいます。
歴史的に、ルーターは汎用 CPU 上で実行されるパケット交換ソフトウェアによって実装されていました。ただし、カスタムハードウェア開発が安価になり、より高いスループットが必要になるにつれて、専用ハードウェアがますます一般的になっています。この仕様は、実装方法に関係なく、ルーターに適用されます。
ルーターは、IP サブネットまたは番号なしポイントツーポイント回線で表される2つ以上の論理インターフェイスに接続されます (セクション [2.2.7] で説明)。したがって、少なくとも1つの物理インターフェイスを持っています。IP データグラムの転送には、通常、ルーターがネクストホップルーターのアドレスと関連インターフェイス、または (最後のホップの場合) 宛先ホストを選択する必要があります。この選択は、中継 (relaying) または転送 (forwarding) と呼ばれ、ルーター内のルーティングデータベースに依存します。ルーティングデータベースは、ルーティングテーブル (routing table) または転送テーブル (forwarding table) とも呼ばれます。「ルーター」という用語は、このルーティングデータベースを構築するプロセスに由来します。ルーティングプロトコルと構成は、ルーティング (routing) と呼ばれるプロセスで相互作用します。
ルーティングデータベースは、インターネットシステムの現在のトポロジを反映するために動的に維持される必要があります。ルーターは通常、同じ自治システム内の他のルーターと共に分散ルーティングおよび到達可能性アルゴリズムに参加することによってこれを実現します。
ルーターはデータグラム伝送のみを提供し、ルーティングの柔軟性と堅牢性を得るために、このサービスの維持に必要な状態情報を最小限に抑えようとします。
パケット交換デバイスは、リンク層でも動作する場合があります。このようなデバイスは通常、ブリッジ (bridges) と呼ばれます。ブリッジによって接続されたネットワークセグメントは、同じ IP ネットワークプレフィックスを共有し、単一の IP サブネットを形成します。これらの他のデバイスは、この文書の範囲外です。
2.2.4 Autonomous Systems (自治システム)
Autonomous System (AS、自治システム) は、一連のサブネットワーク (ホストが接続されている) が一連のルーターによって相互接続された、ネットワークトポロジの接続されたセグメントです。サブネットワークとルーターは、単一の運用および保守 (O&M) 組織の制御下にあることが期待されます。AS 内では、ルーターは1つ以上の内部ルーティングプロトコルを使用でき、時にはいくつかのメトリックセットを使用します。AS は、他の AS に対して、一貫した内部ルーティング計画の外観と、AS を介して到達可能な宛先の一貫した図を提示することが期待されます。AS は、自治システム番号によって識別されます。
AS の概念は、インターネットルーティングで重要な役割を果たします (セクション7.1を参照)。
2.2.5 Addressing Architecture (アドレッシングアーキテクチャ)
IP データグラムは、32ビットのソースアドレスと宛先アドレスを運び、各アドレスは2つの部分に分割されます - 構成ネットワークプレフィックスとそのネットワーク上のホスト番号。表記法:
IP-address ::= { <Network-prefix>, <Host-number> }
データグラムを最終的に配信するには、パス内の最後のルーターが、IP アドレスの Host-number (または残りの) 部分をホストのリンク層アドレスにマッピングする必要があります。
2.2.5.1 Classical IP Addressing Architecture (古典的 IP アドレッシングアーキテクチャ)
他の場所で十分に文書化されていますが [INTERNET:2]、ネットワークプレフィックスの歴史的使用を説明することは有用です。それを説明するために使用される言語は、この文書や他の文書で使用され、多くのプロトコルの背後にある思考に浸透しています。
最も単純な古典的ネットワークプレフィックスは、Class A、B、C、D、または E ネットワークプレフィックスです。これらのアドレス範囲は、アドレスの最上位ビットの値を観察し、アドレスを単純なプレフィックスとホスト番号フィールドに分解することによって区別されます。これは [INTERNET:18] で説明されています。簡単に言えば、分類は次のとおりです:
0xxx - Class A - 標準8ビットプレフィックスを持つ汎用ユニキャストアドレス
10xx - Class B - 標準16ビットプレフィックスを持つ汎用ユニキャストアドレス
110x - Class C - 標準24ビットプレフィックスを持つ汎用ユニキャストアドレス
1110 - Class D - IP マルチキャストアドレス - 28ビットプレフィックス、集約不可
1111 - Class E - 実験的使用のために予約
この単純な概念は、サブネット (subnets) の概念によって拡張されています。サブネットは、組織内の相互接続された LAN 構造が任意の複雑さを持つことを可能にしながら、ネットワークプレフィックスの割り当てとルーティングの複雑さの爆発的増加からインターネットシステムを保護するために導入されました。サブネットは、インターネットシステムに多レベルの階層的ルーティング構造を提供します。サブネット拡張は [INTERNET:2] で説明されており、インターネットアーキテクチャの必須部分です。基本的なアイデアは、<Host-number> フィールドを2つの部分に分割することです: サブネット番号とそのサブネット上の実際のホスト番号:
IP-address ::=
{ <Network-number>, <Subnet-number>, <Host-number> }
組織内の相互接続された物理ネットワークは、同じネットワークプレフィックスを使用しますが、異なるサブネット番号を使用します。このようなサブネット化されたネットワークのサブネット間の区別は、通常、そのネットワークの外部では見えません。したがって、インターネットの残りの部分でのルーティングは、IP 宛先アドレスの <Network-prefix> 部分のみを使用します。ネットワーク外のルーターは、<Network-prefix> と <Host-number> を一緒に、32ビット IP アドレスの未解釈の残りの部分として処理します。サブネット化されたネットワーク内では、ルーターは拡張ネットワークプレフィックスを使用します:
{ <Network-number>, <Subnet-number> }
この拡張ネットワーク番号を含むビット位置は、歴史的にサブネットマスクと呼ばれる32ビットマスクによって示されていました。<Subnet-number> ビットは連続であり (SHOULD)、<Network-number> フィールドと <Host-number> フィールドの間に位置する必要があります。新しいプロトコルはサブネットマスクを参照せず、代わりにプレフィックス長を参照します。アドレスの「プレフィックス」部分は、サブネットマスクによって選択される部分であり、そのマスクの最上位ビットはすべて1で、残りは0です。プレフィックスの長さは、サブネットマスク内の1の数に等しくなります。この文書は、すべてのサブネットマスクがプレフィックス長として表現できることを前提としています。
サブネットメカニズムの発明者は、組織ネットワークの各部分に1つのサブネット番号のみがあると仮定しました。実際には、複数のサブネットが単一の物理ケーブルを共有することが必要または有用であることが頻繁に証明されています。したがって、ルーターは、同じ物理インターフェイス上で複数のサブネットを構成でき、(ルーティングまたは転送の観点から) それらを異なる物理インターフェイスとして扱うことができる必要があります。
2.2.5.2 Classless Inter Domain Routing (CIDR) (クラスレス・ドメイン間ルーティング)
インターネットの爆発的な成長により、アドレス割り当てポリシーの見直しが余儀なくされました。汎用 (Class A、B、および C) ネットワークの従来の使用は、IP の32ビットアドレス空間をより有効に利用するために変更されました。Classless Inter Domain Routing (CIDR、クラスレス・ドメイン間ルーティング) [INTERNET:15] は、この効率の向上を実現するために、現在インターネットバックボーンに展開されている方法です。CIDR は、任意のサイズのネットワークへの展開とルーティングに依存しています。このモデルでは、ホストとルーターは、インターネットでのアドレッシング使用について何も仮定しません。Class D (IP マルチキャスト) および Class E (実験的) アドレス空間は予約されていますが、これは主に割り当てポリシーです。
定義上、CIDR には3つの要素が含まれます:
- トポロジ的に意味のあるアドレス割り当て
- ネットワーク層到達可能性情報を集約できるルーティングプロトコル、および
- 一貫した転送アルゴリズム (「最長一致」)
ネットワークとサブネットの使用は現在歴史的ですが、それらを説明するために使用される言語は現在も使用されています。それらは、より扱いやすいネットワークプレフィックスの概念に置き換えられました。定義上、ネットワークプレフィックスは、アドレスのより重要な端にある連続したビットのセットであり、システムのセットを定義します。ホスト番号は、これらのシステム内で選択を行います。すべてのインターネットがネットワークプレフィックスを均一に使用する必要はありません。ルーティング情報を圧縮するために、インターネットをアドレッシングドメインに分割することが有用です。このようなドメイン内では、構成ネットワークに関する詳細情報を取得できます。ドメイン外では、共通ネットワークプレフィックスのみがアドバタイズされます。
古典的 IP アドレッシングアーキテクチャは、アドレスとサブネットマスクを使用して、ホスト番号とネットワークプレフィックスを区別します。ネットワークプレフィックスを使用すると、プレフィックス内のビット数を示すだけで十分です。両方の表現が一般的です。アーキテクチャ的に正しいサブネットマスクは、プレフィックス長の記述を使用して表現できます。それらには、次のようなすべての可能なビットパターンのサブセットが含まれます:
- より重要な端に連続した1の文字列
- より重要でない端に連続した0の文字列、および
- 中間ビットなし
ルーターは常にルートをネットワークプレフィックスとして扱い (SHOULD)、そのモデルと一致しない構成とルーティング情報を拒否する必要があります (SHOULD)。
IP-address ::= { <Network-prefix>, <Host-number> }
CIDR を使用する影響の1つは、ルーティングテーブル内のアドレスプレフィックスに関連付けられた宛先セットがサブセット関係を示す可能性があることです。より小さい宛先セット (より長いプレフィックス) を記述するルートは、より大きい宛先セット (より短いプレフィックス) を記述するルートよりも具体的 (more specific) と呼ばれます。同様に、より大きい宛先セット (より短いプレフィックス) を記述するルートは、より小さい宛先セット (より長いプレフィックス) を記述するルートよりも具体的でない (less specific) と呼ばれます。ルーターは、トラフィックを転送する際に、最も具体的な一致ルート (最長一致ネットワークプレフィックス) を使用する必要があります。
2.2.6 IP Multicasting (IP マルチキャスト)
IP マルチキャストは、リンク層マルチキャストの IP インターネットへの拡張です。IP マルチキャストを使用すると、単一のデータグラムをすべてのホストに送信することなく、複数のホストに送信できます。拡張された場合、これらのホストは異なるアドレスドメインに存在する可能性があります。このホストのセットは、マルチキャストグループ (multicast group) と呼ばれます。各マルチキャストグループは、Class D IP アドレスとして表されます。そのグループに送信された IP データグラムは、ユニキャスト IP トラフィックに提供されるのと同じベストエフォート配信方法で、各グループメンバーに配信されます。データグラムの送信者自体は、宛先グループのメンバーである必要はありません。
IP マルチキャストグループメンバーシップのセマンティクスは [INTERNET:4] で定義されています。この文書では、ホストとルーターがマルチキャストグループに参加および脱退する方法について説明しています。また、IP マルチキャストグループメンバーシップを監視するためのプロトコル、Internet Group Management Protocol (IGMP、インターネットグループ管理プロトコル) も定義しています。
IP マルチキャストデータグラムの転送は、静的ルーティング情報またはマルチキャストルーティングプロトコルを介して行われます。IP マルチキャストデータグラムを転送するデバイスは、マルチキャストルーター (multicast routers) と呼ばれます。それらは IP ユニキャストを転送する場合もしない場合もあります。マルチキャストデータグラムは、ソースアドレスと宛先アドレスに基づいて転送されます。IP マルチキャストパケットの転送については、セクション [5.2.1] でより詳細に説明されています。付録 D では、マルチキャストルーティングプロトコルについて説明しています。
2.2.7 Unnumbered Lines and Networks Prefixes (番号なし回線とネットワークプレフィックス)
伝統的に、IP ホストまたはルーター上の各ネットワークインターフェイスには、独自の IP アドレスがあります。これにより、各ポイントツーポイントリンクに IP ネットワークプレフィックスを割り当てることを強制するため、希少な IP アドレス空間の非効率的な使用につながる可能性があります。
この問題を解決するために、多くの人が番号なしポイントツーポイント回線 (unnumbered point to point lines) の概念を提案し、実装しています。番号なしポイントツーポイント回線には、関連付けられたネットワークプレフィックスがありません。したがって、番号なしポイントツーポイント回線に接続されたネットワークインターフェイスには、IP アドレスがありません。
IP アーキテクチャは伝統的にすべてのインターフェイスが IP アドレスを持つことを前提としているため、これらの番号なしインターフェイスはいくつかの興味深いジレンマを引き起こします。たとえば、一部の IP オプション (Record Route など) では、ルーターがインターフェイスアドレスをオプションに挿入する必要がありますが、番号なしインターフェイスには IP アドレスがありません。より基本的には (第5章で見るように)、ルートにはネクストホップルーターの IP アドレスが含まれています。ルーターは、この IP アドレスがルーターが接続されている IP (サブ) ネットワーク上にあることを期待しています。唯一の接続が番号なしポイントツーポイント回線である場合、その仮定はもちろん違反されます。
これらの困難を解決するために、2つのスキームが構想されています。最初のスキームは、番号なしポイントツーポイント回線を介して接続された2つのルーターは、実際には2つのルーターではなく、単一の仮想ルーターを一緒に構成する2つの半ルーターであると述べています。番号なしポイントツーポイント回線は、本質的に仮想ルーター内の内部バスとして扱われます。仮想ルーターの2つの半分は、単一のルーターとまったく同じように動作するように活動を調整する必要があります。
このスキームは IP アーキテクチャに適合しますが、2つの重要な欠点があります。1つ目は、単一の番号なしポイントツーポイント回線の一般的なケースを処理しますが、ルーターと番号なしポイントツーポイント回線のメッシュのケースを処理するように簡単に拡張できないことです。2つ目の欠点は、半ルーター間の相互作用が必然的に複雑で標準化されていないため、番号なしポイントツーポイント回線接続を使用して異なるベンダーのデバイスを接続することが実際に排除されることです。
これらの欠点のため、このメモは代替スキームを採用しています。これは何度も発明されていますが、おそらく最初に Phil Karn に帰属します。このスキームでは、番号なしポイントツーポイント回線を持つルーターには、このメモで router-id と呼ばれる特別な IP アドレスもあります。router-id は、ルーターの IP アドレスの1つです (ルーターには少なくとも1つの IP アドレスが必要です)。この router-id は、すべての番号なしインターフェイスの IP アドレスとして使用されます。
2.2.8 Notable Oddities (注目すべき特殊ケース)
2.2.8.1 Embedded Routers (組み込みルーター)
ルーターは、IP ルーター機能専用の独立したコンピューターシステムである場合があります。または、2つ以上のネットワークへの接続をサポートするホストオペレーティングシステムにルーター機能を埋め込むことができます。組み込みルーターコードを持つ最もよく知られたオペレーティングシステムの例は、Berkeley BSD システムです。組み込みルーター機能は、ネットワークの構築を容易にするように見えますが、多くの隠された落とし穴があります:
(1) ホストに1つの構成ネットワークインターフェイスしかない場合、ルーターとして機能してはなりません。
たとえば、無償でブロードキャストパケットを転送したり、同じネットワーク上でデータグラムを転送したりする組み込みルーターコードを持つホストは、通常、パケット雪崩を引き起こします。
(2) (マルチホーム) ホストがルーターとして機能する場合、この文書に含まれるルーター要件の対象となります。
たとえば、ルーティングプロトコルの問題、およびルーター制御と監視の問題は、組み込みルーターにとって独立したルーターと同じくらい困難で重要です。
インターネットルーター要件と仕様は、オペレーティングシステムの変更とは独立して変更される可能性があります。インターネットで組み込みルーターを運用する管理部門は、ルーターコードを維持および更新することを強くお勧めします。これにはルーターソースコードが必要になる場合があります。
(3) ホストが組み込みルーターコードを実行すると、インターネットインフラストラクチャの一部になります。したがって、ソフトウェアまたは構成のエラーは、他のホスト間の通信を妨げる可能性があります。したがって、ホスト管理者は、ある程度の自律性を失う必要があります。
多くの場合、ホスト管理者は、オペレーティングシステムに埋め込まれたルーターコードを無効にする必要があります。したがって、組み込みルーター機能を無効にすることは簡単である必要があります。
(4) 組み込みルーターコードを実行するホストが他のサービスにも使用される場合、2つの使用モードの運用および保守要件が競合する可能性があります。
たとえば、多くの場合、ルーター O&M は運用センターからリモートで実行されます。これには、ホスト管理者が通常配布したくない特権システムアクセスが必要になる場合があります。
2.2.8.2 Transparent Routers (透過ルーター)
インターネットでローカルエリアネットワークと広域ネットワーク (または長距離ネットワーク) を相互接続するための2つの基本的なモデルがあります。最初のモデルでは、ローカルエリアネットワークにネットワークプレフィックスが割り当てられ、インターネット内のすべてのルーターがそのネットワークへのルーティング方法を知る必要があります。2番目のモデルでは、ローカルエリアネットワークが広域ネットワークのアドレス空間の (小さな部分を) 共有します。2番目のモデルをサポートするルーターは、アドレス共有ルーターまたは透過ルーター (transparent routers) と呼ばれます。このメモの焦点は、最初のモデルをサポートするルーターですが、これは透過ルーターの使用を排除することを意図したものではありません。
透過ルーターの基本的なアイデアは、このようなルーターの背後にあるローカルエリアネットワーク上のホストが、ルーターの前にある広域ネットワークのアドレス空間を共有することです。場合によっては、これは非常に有用なアプローチであり、制限は重大な欠点をもたらしません。
「前」と「後ろ」という言葉は、このアプローチの制限の1つを示しています: この相互接続モデルは、地理的 (およびトポロジ的) に制限されたスタブ環境にのみ適しています。広域ネットワークのネットワークレベルアドレッシングに何らかの形式の論理アドレッシングが存在することが必要です。ローカル環境の IP アドレスは、広域ネットワークの少数 (通常は1つ) の物理アドレスにマッピングされます。このマッピングは、広域ネットワーク全体で使用される { IP アドレス <-> ネットワークアドレス } マッピングと一貫した方法で行われます。
1つの広域ネットワーク上のマルチホームは可能ですが、インターフェイスが地理的またはトポロジ的に分離されている場合、ルーティングの問題が発生する可能性があります。2つ (またはそれ以上) の広域ネットワーク上のマルチホームは、アドレスの混乱のために問題になります。
透過ルーターが通常の広域ネットワークサービスを完全にエミュレートできない場合、ホストが同じネットワーク内の他のホストから見るものとは異なる動作を見る可能性があります。たとえば、ARPANET で使用されるリンク層プロトコルは、オフラインホストへの送信を試みた場合に宛先デッド (Destination Dead) 指示を提供します。ただし、ARPANET とイーサネットの間に透過ルーターがある場合、ARPANET 上のホストはイーサネットホストの宛先デッド指示を受け取りません。
2.3 Router Characteristics (ルーターの特性)
インターネットルーターは次の機能を実行します:
(1) この文書で指定された特定のインターネットプロトコル、Internet Protocol (IP)、Internet Control Message Protocol (ICMP)、および必要に応じて他のプロトコルに準拠します。
(2) 2つ以上のパケットネットワークインターフェイスとインターフェイスします。接続された各ネットワークに対して、ルーターはそのネットワークに必要な機能を実装する必要があります。これらの機能には通常、次のものが含まれます:
-
接続されたネットワークフレーム (たとえば、イーサネットヘッダーとチェックサム) で IP データグラムをカプセル化および脱カプセル化する
-
IP データグラムを送受信し、最大サイズはそのネットワークがサポートする最大サイズで、これはネットワークの Maximum Transmission Unit (最大伝送単位) または MTU です
-
必要に応じて、IP 宛先アドレスを接続ネットワークの適切なネットワークレベルアドレス (たとえば、イーサネットハードウェアアドレス) に変換し、
-
ある場合、ネットワークトラフィック制御とエラー指示に応答します
第3章 (リンク層) を参照してください。
(3) インターネットデータグラムを受信および転送します。このプロセスの重要な問題は、バッファ管理、輻輳制御、公平性です。
-
エラー状態を識別し、必要に応じて ICMP エラーおよび情報メッセージを生成します。
-
生存時間 (time-to-live) フィールドがゼロに達したデータグラムを破棄します。
-
次のネットワークの MTU に適合するために、必要に応じてデータグラムをフラグメント化します。
詳細については、第4章 (ネットワーク層 - プロトコル) および第5章 (ネットワーク層 - 転送) を参照してください。
(4) ルーティングデータベースの情報に基づいて、各 IP データグラムのネクストホップ宛先を選択します。詳細については、第5章 (ネットワーク層 - 転送) を参照してください。
(5) (通常) 同じ自治システム内の他のルーターと分散ルーティングおよび到達可能性アルゴリズムを実行するために、内部ゲートウェイプロトコル (IGP) をサポートします。さらに、一部のルーターは、他の自治システムとトポロジ情報を交換するために、外部ゲートウェイプロトコル (EGP) をサポートする必要があります。詳細については、第7章 (アプリケーション層 - ルーティングプロトコル) を参照してください。
(6) ロード、デバッグ、ステータスレポート、例外レポート、制御を含む、ネットワーク管理およびシステムサポート施設を提供します。詳細については、第8章 (アプリケーション層 - ネットワーク管理プロトコル) および第10章 (運用と保守) を参照してください。
ルーターベンダーは、特定のルーター製品の能力、複雑さ、機能について多くの選択肢を持ちます。インターネットシステムが同質でも完全に接続されているわけでもないことを観察することは役立つかもしれません。技術的および地理的理由により、グローバルな相互接続システムに加えて、端に LAN エッジがある状態に発展しています。これらのエッジ LAN はますます豊かに相互接続されており、それによりあまり端ではなくなり、ルーター要件に対してより高い要求を課します。
-
グローバルな相互接続システムは、複数の自治システム (AS) のルーターを接続する多くの広域ネットワークで構成されています。システムに直接接続されたホストは比較的少ないです。
-
ほとんどのホストは LAN に接続されています。多くの組織には、ローカルルーターによって相互接続された LAN のクラスターがあります。各このようなクラスターは、1つ以上のポイントでルーターを介してグローバルな相互接続システムに接続されています。1つのポイントでのみ接続されている場合、LAN はスタブネットワーク (stub network) と呼ばれます。
グローバルな相互接続システムのルーターには通常、次のものが必要です:
Advanced Routing and Forwarding Algorithms (高度なルーティングおよび転送アルゴリズム)
これらのルーターには、最小限の処理および通信負荷を課し、サービスタイプルーティングを提供する、高度に動的なルーティングアルゴリズムが必要です。輻輳は依然として完全に解決された問題ではありません (セクション [5.3.6] を参照)。研究コミュニティがこれらの問題を積極的に研究しているため、これらの分野での改善が予想されます。
High Availability (高可用性)
これらのルーターは、週7日24時間のサービスを提供する、高度に信頼性の高いものである必要があります。機器およびソフトウェアの障害は、広範囲 (時にはグローバル) の影響を及ぼす可能性があります。障害が発生した場合、迅速に回復する必要があります。どの環境でも、ルーターは高度に堅牢であり、極端な輻輳またはネットワークリソース障害の条件下で、おそらく劣化した状態で動作できる必要があります。
Advanced O&M Features (高度な O&M 機能)
インターネットルーターは通常、無人モードで動作します。通常、集中監視センターからリモートで操作されます。トラフィックやその他のイベントを監視および測定し、障害を診断するための高度な方法を提供する必要があります。
High Performance (高性能)
今日のインターネットで最も一般的な長距離回線は、全二重 56 KBPS、DS1 (1.544 Mbps)、または DS3 (45 Mbps) 速度です。LAN は半二重マルチアクセスメディアで、通常はイーサネット (10Mbps)、より少ない程度で FDDI (100Mbps) です。ただし、ネットワークメディア技術は継続的に進歩しており、将来はより高速になる可能性があります。
LAN エッジ (たとえば、キャンパスネットワーク) に使用されるルーターの要件は、ローカルネットワークのニーズに大きく依存します。これらは、いくつかの異なるベンダーから競争的に調達され、内部組織 (たとえば、キャンパスコンピューティングセンター) によって運用される、高性能または中性能のデバイスである可能性があります。これらのルーターの設計は、低平均遅延と優れたバースト性能、および遅延とサービスタイプに敏感なリソース管理を強調する必要があります。この環境では、O&M はそれほど正式ではないかもしれませんが、重要性は劣りません。ネットワークがより複雑で相互接続されるようになるにつれて、ルーティングメカニズムが高度に動的である必要性がより重要になります。ユーザーは、グローバル相互接続の速度のために、ローカル接続からより多くを要求するでしょう。
ネットワークが成長し、ますます多くのネットワークが古い機器を廃止するのに十分な年齢になるにつれて、ルーターが他のベンダーのルーターと相互運用することがますます緊急になります。
インターネットシステムは完全に相互接続されていませんが、システムの多くの部分には冗長接続が必要です。豊かな接続性により、通信回線とルーター障害の場合でも信頼性の高いサービスを提供でき、インターネットパスを短縮し、追加容量を提供することでサービスを改善できます。残念ながら、このより豊かなトポロジは、特定の宛先への最適なパスの選択をより困難にする可能性があります。
2.4 Architectural Assumptions (アーキテクチャの前提)
現在のインターネットアーキテクチャは、通信システムに関する一連の前提に基づいています。ルーターに最も関連する前提は次のとおりです:
The Internet is a network of networks (インターネットはネットワークのネットワークです)
各ホストは、特定のネットワークに直接接続されています。インターネットとの接続は概念的なものに過ぎません。同じネットワーク上の2つのホストは、リモートネットワーク上のホストと通信するために使用するのと同じプロトコルセットを使用して通信します。
Routers do not keep connection state information (ルーターは接続状態情報を保持しません)
通信システムの堅牢性を向上させるために、ルーターはステートレスに設計され、各 IP パケットを独立して転送します。したがって、中間ルーターとネットワーク障害にもかかわらず堅牢なサービスを提供するために、冗長パスを利用できます。
エンドツーエンドのフロー制御と信頼性に必要なすべての状態情報は、トランスポート層またはアプリケーションでホスト内に実装されます。したがって、すべての接続制御情報は通信のエンドポイントと共存し、エンドポイントが失敗した場合にのみ失われます。ルーターは、パケットを破棄するか、ネットワーク遅延を増加させることによって、間接的にのみメッセージフローを制御します。
将来のプロトコル開発では、最終的にルーターにより多くの状態が配置される可能性が高いことに注意してください。これは、マルチキャストルーティング、リソース予約、およびフローベースの転送に特に当てはまる可能性があります。
Routing complexity should be in the routers (ルーティングの複雑さはルーターにあるべきです)
ルーティングは複雑で困難な問題であり、ホストではなくルーターによって実行されるべきです。重要な目標は、インターネットルーティングアーキテクチャの避けられない進化によって引き起こされる変更からホストソフトウェアを免除することです。
The system must tolerate wide network variation (システムは広範なネットワーク変動を許容する必要があります)
インターネット設計の基本的な目標は、帯域幅、遅延、パケット損失、パケット再順序付け、最大パケットサイズなど、広範囲のネットワーク特性を許容することです。別の目標は、単一のネットワーク、ルーター、ホスト障害の場合でも、利用可能な帯域幅を使用して堅牢性を維持することです。最後に、目標は完全なオープンシステム相互接続です: インターネットルーターは、異なるインターネットパスを介して、他のルーターまたはインターネットホストと堅牢かつ効果的に相互運用できる必要があります。
実装者は、それほど野心的でない目標のために設計することがあります。たとえば、LAN 環境は通常、インターネット全体よりも友好的です。LAN は、低パケット損失と遅延を持ち、パケットを再順序付けしません。一部のベンダーは、シンプルな LAN 環境には十分だが、一般的な相互運用にはうまく機能しない実装を出荷しました。ベンダーは、制限された LAN 市場で経済的であるため、このような製品を正当化します。ただし、孤立した LAN が長期間孤立したままであることはめったにありません。すぐに相互に接続され、組織全体のインターネットに接続され、最終的にグローバルインターネットシステムに接続されます。最終的に、不完全または非標準のルーターは、顧客にもベンダーにも役立ちません。
この文書の要件は、フル機能のルーターのために設計されています。完全に準拠したルーターは、インターネットのほぼすべての部分で使用できます。