ポイントツーポイントプロトコル

コンピュータネットワークにおいて、ポイントツーポイントプロトコル(PPP)は、間にホストや他のネットワークを介さずに直接2つのルータ間で行われるデータリンク層(レイヤー2)通信プロトコルです。 [1]ループ検出、認証、伝送暗号化、[2]データ圧縮などの機能を提供します。
PPP は、シリアル ケーブル、電話回線、トランク回線、携帯電話、特殊な無線リンク、ISDN、SONETなどの光ファイバー リンクなど、多くの種類の物理ネットワークで使用されます。IP パケットは、送信されたフレームの開始位置と終了位置を識別できるデータ リンク プロトコルがないと、モデム回線だけで送信できないため、インターネット サービス プロバイダー(ISP) は、顧客のインターネットへのダイヤルアップ アクセスに PPP を使用しています。
PPPは、以前のダイヤルアップネットワーク回線で使用されています。 [3] PPPの2つの派生であるPoint-to-Point Protocol over Ethernet (PPPoE)とPoint-to-Point Protocol over ATM (PPPoA)は、ISPが顧客とのデジタル加入者線(DSL)インターネットサービスLP接続を確立するために最も一般的に使用されています。
説明
PPP は、同期回線および非同期回線上の接続用のデータリンク層プロトコルとして非常に一般的に使用されており、古いシリアルラインインターネットプロトコル(SLIP) や電話会社が義務付けた標準 ( X.25プロトコルスイートのリンクアクセスプロトコル、バランス(LAPB)など) に取って代わっています。 PPP の唯一の要件は、提供される回線が二重であることです。 PPP は、インターネットプロトコル(IP)、TRILL、Novell のインターネットワークパケット交換(IPX)、NBF、DECnet、AppleTalkなど、多数のネットワーク層プロトコルで動作するように作成されました。 SLIP と同様に、これはモデムを介した電話回線上の完全なインターネット接続です。 インターネットパケットが損傷を受けずに着信することを二重にチェックするため、SLIP よりも信頼性があります。[4]破損したパケットを再送信します。
PPP は、オリジナルのHDLC仕様に多少倣って設計されました。PPP を設計した人々は、それまで独自のデータリンク プロトコルでしか見られなかった多くの追加機能を組み込みました。PPP は RFC 1661 で規定されています。
RFC 2516 では、DSLで使用されることもあるイーサネット経由で PPP を伝送する方法として、Point-to-Point Protocol over Ethernet (PPPoE) について説明しています。 RFC 2364 では、 DSL で使用される PPPoE の一般的な代替手段でもあるATMアダプテーション レイヤー 5 ( AAL5 )経由で PPP を伝送する方法として、 Point-to-Point Protocol over ATM (PPPoA)について説明しています。
PPP、PPPoE、PPPoA はWAN回線 で広く使用されています。
PPPは3つのコンポーネントを持つ階層型プロトコルです。[4]
- 指定された物理層を介してデータグラムを送信するために使用されるカプセル化コンポーネント。
- リンクを確立、構成、テストし、設定、オプション、機能の使用をネゴシエートするためのリンク制御プロトコル( LCP)。
- ネットワーク層のオプションの構成パラメータと機能をネゴシエートするために使用される 1 つ以上のネットワーク制御プロトコル (NCP)。PPP でサポートされる上位層プロトコルごとに 1 つの NCP があります。
自動自己構成
LCP は接続を正常に開始および終了し、ホストが接続オプションをネゴシエートできるようにします。これは PPP の不可欠な部分であり、同じ標準仕様で定義されています。LCP は、各エンドでのインターフェイスの自動構成 (データグラムサイズ、エスケープ文字、マジック ナンバーの設定など) とオプションの認証の選択を提供します。LCP プロトコルは PPP (PPP プロトコル番号 0xC021) 上で実行されるため、LCP が構成できるようにするには、基本的な PPP 接続を確立する必要があります。
RFC 1994 では、ISP とのダイヤルアップ接続を確立するのに推奨されるチャレンジ ハンドシェイク認証プロトコル(CHAP) について説明しています。非推奨ではありますが、パスワード認証プロトコル(PAP) が今でも使用されることがあります。
PPP 経由の認証のもう 1 つのオプションは、 RFC 2284 で説明されている拡張認証プロトコル(EAP) です。
リンクが確立された後、追加のネットワーク(レイヤー3)構成が行われる場合があります。最も一般的にはインターネットプロトコル制御プロトコル(IPCP)が使用されますが、かつてはインターネットワークパケット交換制御プロトコル(IPXCP)とAppleTalk制御プロトコル(ATCP)が一般的でした。[5] [6]インターネットプロトコルバージョン6制御プロトコル(IPv6CP)は、将来、IPv6が主要なレイヤー3プロトコルとして IPv4に取って代わったときに、より広く使用されるようになります。
複数のネットワーク層プロトコル
IP | |||
LCCP の | チャップ パップ EAP | IPCP | |
PPPカプセル化 | |||
HDLCのようなフレーミング | PPPoE | PPPoA | |
RS-232 | POS | イーサネット | ATM |
ソネット/SDH |
PPP は、複数のネットワーク層プロトコルが同じ通信リンク上で動作することを可能にします。使用されるネットワーク層プロトコルごとに、複数のネットワーク層プロトコルのオプションをカプセル化してネゴシエートするために、個別のネットワーク制御プロトコル( NCP ) が提供されます。接続が確立された後、ネットワーク アドレスや圧縮オプションなどのネットワーク層情報をネゴシエートします。
たとえば、IP は IPCP を使用し、Internetwork Packet Exchange (IPX) は Novell IPX Control Protocol ( IPX/SPX ) を使用します。NCP には、PPP 接続がカプセル化するネットワーク層プロトコルの種類を示す標準化されたコードを含むフィールドが含まれます。
PPP では次の NCP を使用できます。
- IP 用 IPCP、プロトコル コード番号 0x8021、RFC 1332
- さまざまなOSI ネットワーク層プロトコル用の OSI ネットワーク層制御プロトコル (OSINLCP) 、プロトコル コード番号 0x8023、RFC 1377
- AppleTalk用の AppleTalk 制御プロトコル (ATCP) 、プロトコル コード番号 0x8029、RFC 1378
- インターネット パケット交換用のインターネットワークパケット交換制御プロトコル (IPXCP) 、プロトコル コード番号 0x802B、RFC 1552
- DNA Phase IV ルーティング プロトコル ( DECnet Phase IV ) 用の DECnet Phase IV 制御プロトコル (DNCP )、プロトコル コード番号 0x8027、RFC 1762
- NetBIOS フレームプロトコル (またはそれ以前はNetBEUIと呼ばれていた) 用の NetBIOS フレーム制御プロトコル (NBFCP)、プロトコル コード番号 0x803F、RFC 2097
- IPv6用の IPv6 制御プロトコル (IPV6CP) 、プロトコル コード番号 0x8057、RFC 5072
ループリンク検出
PPP は、マジック ナンバーの機能を使用してループしたリンクを検出します。ノードが PPP LCP メッセージを送信する場合、これらのメッセージにはマジック ナンバーが含まれることがあります。回線がループしている場合、ノードはピアのマジック ナンバーを含むメッセージではなく、独自のマジック ナンバーを含む LCP メッセージを受信します。
設定オプション
前のセクションでは、特定の WAN 接続要件を満たすための LCP オプションの使用について説明しました。PPP には、次の LCP オプションが含まれる場合があります。
- 認証- ピア ルータは認証メッセージを交換します。認証の選択肢は、パスワード認証プロトコル(PAP) とチャレンジ ハンドシェイク認証プロトコル(CHAP) の 2 つです。認証については次のセクションで説明します。
- 圧縮- BSD圧縮や Deflateなどの合意されたアルゴリズムを使用して、リンクを介して送信されるフレーム内のデータ量を削減することで、PPP 接続の実効スループットを向上させます。プロトコルは、送信先でフレームを解凍します。 詳細については、RFC 1962 を参照してください。
- エラー検出- 障害状態を識別します。品質およびマジック ナンバー オプションは、信頼性が高くループのないデータ リンクを確保するのに役立ちます。マジック ナンバー フィールドは、ループバック状態にあるリンクを検出するのに役立ちます。マジック ナンバー構成オプションが正常にネゴシエートされるまで、マジック ナンバーはゼロとして送信する必要があります。マジック ナンバーは、接続の両端でランダムに生成されます。
- マルチリンク- マルチリンク PPP を通じて PPP で使用される複数のインターフェイスの負荷分散を提供します (以下を参照)。
PPPフレーム
構造
PPP フレームはHDLCフレームのバリエーションです。
名前 | バイト数 | 説明 |
---|---|---|
フラグ | 1 | 0x7E、PPPフレームの始まり |
住所 | 1 | 0xFF、標準ブロードキャストアドレス |
コントロール | 1 | 0x03、番号なしデータ |
プロトコル | 2 | 埋め込みデータの PPP ID |
情報 | 変数(0以上) | データグラム |
パディング | 変数(0以上) | オプションのパディング |
フレームチェックシーケンス | 2 | フレームチェックサム |
フラグ | 1 | 0x7E、連続するPPPパケットでは省略 |
両方のピアが LCP 中にアドレス フィールドと制御フィールドの圧縮に同意する場合、それらのフィールドは省略されます。同様に、両方のピアがプロトコル フィールドの圧縮に同意する場合、0x00 バイトは省略できます。
プロトコルフィールドはペイロードパケットのタイプを示します。LCPの場合は0xC021 、さまざまなNCPの場合は0x80xy、IPの場合は0x0021、AppleTalkの場合は0x0029、IPXの場合は0x002B 、マルチリンクの場合は0x003D、NetBIOSの場合は0x003F、 MPPCおよびMPPEの場合は0x00FDなどです。[7] PPPには制限があり、 EtherTypeとは異なり、一般的なレイヤー3データを含めることはできません。
情報フィールドには PPP ペイロードが含まれます。このフィールドは可変長で、最大伝送単位と呼ばれるネゴシエートされた最大値を持ちます。デフォルトでは、最大値は 1500オクテットです。伝送時にパディングされる可能性があります。特定のプロトコルの情報がパディング可能な場合、そのプロトコルは情報とパディングを区別できるようにする必要があります。
カプセル化
PPP フレームは、フレーミングを提供し、伝送エラーを検出するためのチェックサムなどの他の機能を提供する下位層プロトコルにカプセル化されます。シリアル リンク上の PPP は通常、IETF RFC 1662 で説明されているHDLCに似たフレーミングにカプセル化されます。
名前 | バイト数 | 説明 |
---|---|---|
フラグ | 1 | フレームの開始または終了を示す |
住所 | 1 | ブロードキャストアドレス |
コントロール | 1 | 制御バイト |
プロトコル | 1 または 2 または 3 | 情報フィールドのl |
情報 | 変数(0以上) | データグラム |
パディング | 変数(0以上) | オプションのパディング |
FCCS | 2 (または 4) | エラーチェック |
フラグ フィールドは、HDLC のようなフレーミングを備えた PPP が使用される場合に存在します。
アドレス フィールドと制御フィールドの値は、常に 16 進数 FF (「すべてのステーション」) と 16 進数 03 (「番号なし情報」) であり、PPP LCP アドレスおよび制御フィールド圧縮 (ACFC) がネゴシエートされるときは省略できます。
フレームチェック シーケンス(FCS) フィールドは、個々のフレームにエラーがあるかどうかを判断するために使用されます。このフィールドには、フレームに対して計算されたチェックサムが含まれており、送信時のエラーに対する基本的な保護を提供します。これは、イーサネットで使用されるものなど、他のレイヤー 2 プロトコル エラー保護スキームで使用されるCRCコードに似ています。RFC 1662 によると、サイズは 16 ビット (2 バイト) または 32 ビット (4 バイト) のいずれかになります (デフォルトは 16 ビット - 多項式x 16 + x 12 + x 5 + 1)。
FCS は、メッセージがカプセル化された後、アドレス、制御、プロトコル、情報、およびパディング フィールドに基づいて計算されます。
ラインのアクティベーションとフェーズ
- リンクが切れました
- このフェーズは、リンクが失敗したとき、または一方が切断するように指示されたとき(たとえば、ユーザーがダイヤルアップ接続を終了したとき)に発生します。
- リンク確立フェーズ
- このフェーズでは、リンク制御プロトコルのネゴシエーションが試行されます。成功した場合、認証が必要かどうかに応じて、制御は認証フェーズまたはネットワーク層プロトコル フェーズに移ります。
- 認証フェーズ
- このフェーズはオプションです。接続を確立する前に、両側が相互に認証できるようにします。成功した場合、制御はネットワーク層プロトコル フェーズに移ります。
- ネットワーク層プロトコルフェーズ
- このフェーズでは、各希望プロトコルのネットワーク制御プロトコルが呼び出されます。たとえば、IPCP は回線上で IP サービスを確立するために使用されます。ネットワーク制御プロトコルを使用して正常に開始されたすべてのプロトコルのデータ転送もこのフェーズで行われます。ネットワーク プロトコルの終了もこのフェーズで行われます。
- リンク終了フェーズ
- このフェーズでは、この接続が閉じられます。これは、認証に失敗した場合、チェックサム エラーが多すぎて両者がリンクを自動的に切断することを決定した場合、リンクが突然失敗した場合、またはユーザーが接続を切断することを決定した場合に発生する可能性があります。
複数のリンク
マルチリンク PPP
マルチリンク PPP ( MLPPP、MP、MPPP、MLP 、またはマルチリンクとも呼ばれる) は、複数の異なる PPP 接続にトラフィックを分散する方法を提供します。これは RFC 1990 で定義されています。たとえば、従来の 56k モデム 2 つを使用して自宅のコンピュータをインターネット サービス プロバイダーに接続したり、2 つの専用回線を介して会社を接続したりするために使用できます。
単一の PPP 回線では、フレームが順序どおりに到着することはありませんが、フレームが複数の PPP 接続に分割されている場合は、順序どおりに到着しない可能性があります。したがって、マルチリンク PPP では、フラグメントが到着したときに正しい順序に戻せるように、フラグメントに番号を付ける必要があります。
マルチリンク PPP は、リンク アグリゲーションテクノロジーの一例です。Cisco IOSリリース 11.1 以降では、マルチリンク PPP がサポートされています。
マルチクラス PPP
PPP では、単一のリンク上で複数の異なる PPP 接続を同時に確立することはできません。
マルチリンク PPP では、これも不可能です。マルチリンク PPP は、パケットのすべてのフラグメントに連続した番号を使用するため、1 つのパケットのフラグメントのシーケンスの送信を中断して、別のパケットを送信することはできません。これにより、同じリンクでマルチリンク PPP を複数回実行することが防止されます。
マルチクラス PPPは、トラフィックの各「クラス」が個別のシーケンス番号空間と再構成バッファを使用するマルチリンク PPP の一種です。マルチクラス PPP は RFC 2686 で定義されています。
トンネル
応用 | FTP | メール | ウェブ | … | ドメイン名 | … |
輸送 | TCP | UDPI | ||||
ネットワーク | IP | |||||
データリンク | PPPP(官民パートナーシップ) | |||||
応用 | パスワード | |||||
輸送 | TCP | |||||
ネットワーク | IP | |||||
データリンク | イーサネット | ATM | ||||
物理的な | ケーブル、ハブなど |
派生プロトコル
PPTP (ポイントツーポイント トンネリング プロトコル)は、暗号化 ( MPPE ) と圧縮 ( MPPC ) を使用してGRE経由で 2 つのホスト間で行われる PPP の一種です。
トンネルの両端間のレイヤー2プロトコルとして
多くのプロトコルを使用して、 IP ネットワーク上でデータをトンネリングできます。SSL、SSH、L2TPなどの一部のプロトコルは、仮想ネットワーク インターフェイスを作成し、トンネル エンドポイント間の直接的な物理接続の印象を与えます。たとえば、Linuxホストでは、これらのインターフェイスはtun0またはppp0と呼ばれます。
トンネルにはエンドポイントが 2 つしかないため、トンネルはポイントツーポイント接続であり、仮想ネットワーク インターフェイス間のデータ リンク層プロトコルとしては PPP が当然の選択です。PPP はこれらの仮想インターフェイスに IP アドレスを割り当てることができ、これらの IP アドレスは、たとえばトンネルの両側のネットワーク間のルーティングに使用できます。
トンネリング モードのIPsecでは、トンネルが TCP/IP スタックによって直接処理されるため、トンネルの終端に仮想物理インターフェイスは作成されません。L2TP を使用すると、これらのインターフェイスを提供できます。この手法は L2TP/IPsec と呼ばれます。この場合も、PPP はトンネルの終端に IP アドレスを提供します。
IETF標準
PPP は RFC 1661 (ポイントツーポイントプロトコル、1994 年 7 月) で定義されています。RFC 1547 (インターネット標準ポイントツーポイントプロトコルの要件、1993 年 12 月) は、PPP の必要性とその開発に関する歴史的情報を提供します。TCP /IP、DECnet、AppleTalk、IPXなどのさまざまなネットワーク制御プロトコルがPPP でどのように機能するかを定義する一連の関連 RFC が作成されており、それらは Datatracker IETF の Web サイトで見つけることができます。[8]
参照
- 直径
- 拡張認証プロトコル
- ヘイズコマンドセット
- モデムのリンク アクセス手順(LAPM)
- MPEG トランスポート ストリームのマルチプロトコル カプセル化(MPE)
- ポイントツーポイント プロトコル デーモン(PPPD)
- PPPoX
- 半径
- MPEG トランスポート ストリーム用の単方向軽量カプセル化(ULE)
参考文献
- ^ RFC 1661
- ^ RFC 1968
- ^ 「41. ポイントツーポイント プロトコル - ダイヤルアップ ネットワーク」、Linux: Rute ユーザのチュートリアルと解説、2024 年 8 月 20 日取得
- ^ ab Stevens 1994、pp. 26–27、sec 2.6:「PPP:ポイントツーポイントプロトコル」
- ^ Simpson, William A. (1993 年 12 月). PPP インターネットワーキング パケット交換制御プロトコル (IPXCP) (レポート). インターネット エンジニアリング タスク フォース.
- ^ Parker, J. Bradford (1992 年 11 月)。PPP AppleTalk 制御プロトコル (ATCP) (レポート)。インターネット エンジニアリング タスク フォース。
- ^ 「ポイントツーポイント (PPP) プロトコル フィールド割り当て」。IANA。2015年9 月 3 日閲覧。
- ^ "IETF データトラッカー" . 2023 年8 月 26 日に取得。
- ウィリアム・リチャード・スティーブンス(2016) [1994]。TCP/IP の図解[ TCP/IP详解]。 Vol. 卷一:协议 (第 1 巻: プロトコル) (第 1 版)。Pearson Education Asia Ltd.、人民邮电出版社 (China Posts & Telecommunications Press)。ISBN 978-7-115-40132-8。