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

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ

コンピュータネットワークではポイントツーポイントプロトコルPPP)は、ホストやその他のネットワークを介さずに、2つのルーター間のデータリンク層(レイヤー2)通信プロトコルです。接続認証、送信暗号化[2]データ圧縮を提供できます。

PPPは、シリアルケーブル電話回線幹線回線携帯電話、専用無線リンク、ISDNSONETなどの光ファイバーリンクなど、さまざまな種類の物理ネットワークで使用されますIPパケットは、送信されたフレームの開始位置と終了位置を識別できるデータリンクプロトコルがないと、モデム回線を介して送信できないため、インターネットサービスプロバイダー(ISP)は、インターネットへの顧客ダイヤルアップアクセスにPPPを使用しています

PPPの2つの派生物であるPoint-to-PointProtocol over Ethernet(PPPoE)とPoint-to-Point Protocol over ATM (PPPoA)は、顧客とのデジタル加入者線(DSL)インターネットサービス接続を 確立するためにISPによって最も一般的に使用されます。

説明

PPPは、同期および非同期回線を介した接続用のデータリンク層プロトコルとして一般的に使用されます。PPPは、古いシリアルラインインターネットプロトコル(SLIP)および電話会社が義務付けた標準(リンクアクセスプロトコル、バランス(LAPB)など)に大きく取って代わりました。 X.25プロトコルスイート)。PPPの唯一の要件は、提供される回線がデュプレックスであることです。PPPは、インターネットプロトコル IP)、TRILL、Novellのインターネットワークパケットエクスチェンジ(IPX)、NBFDECnetAppleTalkSLIPと同様に、これはモデムを介した電話回線を介した完全なインターネット接続です。インターネットパケットが無傷で到着することを再確認するため、SLIPよりも信頼性が高くなります。[3]破損したパケットを再送信します。

PPPは、元のHDLC仕様に基づいて設計されました。PPPの設計者は、それまで独自のデータリンクプロトコルでしか見られなかった多くの追加機能を組み込んでいました。PPPはRFC1661で指定されています。

RFC 2516は、 DSLで使用されることがあるPPP over Ethernetを送信する方法として、Point-to-Point Protocol over Ethernet (PPPoE)について説明しています。RFC 2364は、ATMで使用されるPPPoEの一般的な代替手段でもある PPP over ATM Adaptation Layer 5(AAL5 )を送信する方法として、Point-to-Point Protocol over ATM (PPPoA)について説明しています。

PPP、PPPoEPPPoAはWAN回線 で広く使用されています。

PPPは、次の3つのコンポーネントを持つ階層型プロトコルです。[3]

  1. 指定された物理層を介してデータグラムを送信するために使用されるカプセル化コンポーネント
  2. リンクを確立、構成、およびテストし、設定、オプション、および機能の使用についてネゴシエートするためリンク制御プロトコル(LCP)。
  3. ネットワーク層のオプションの構成パラメーターと機能をネゴシエートするために使用される1つ以上のネットワーク制御プロトコル(NCP)。PPPでサポートされる上位層プロトコルごとに1つのNCPがあります。

自動自己構成

LCPは接続を適切に開始および終了し、ホストが接続オプションをネゴシエートできるようにします。これはPPPの不可欠な部分であり、同じ標準仕様で定義されています。LCPは、両端のインターフェイスの自動構成(データグラムサイズ、エスケープ文字、マジックナンバーの設定など)と、オプションの認証の選択を提供します。LCPプロトコルはPPP(PPPプロトコル番号0xC021)上で実行されるため、LCPで構成する前に、基本的なPPP接続を確立する必要があります。

RFC 1994は、ISPとのダイヤルアップ接続を確立するために推奨されるチャレンジハンドシェイク認証プロトコル(CHAP)について説明しています。非推奨ですが、パスワード認証プロトコル(PAP)が使用されることがあります。

PPPを介した認証の別のオプションは、RFC 2284で説明されて いる拡張認証プロトコル(EAP)です。

リンクが確立された後、追加のネットワーク(レイヤー3)構成が行われる場合があります。最も一般的には、インターネットプロトコル制御プロトコル(IPCP)が使用されますが、インターネットワークパケット交換制御プロトコル(IPXCP)とAppleTalk制御プロトコル(ATCP)はかつて人気がありました。[要出典] インターネットプロトコルバージョン6制御プロトコル(IPv6CP)は、IPv6が主要なレイヤー3プロトコルとしてIPv4に置き換わるときに、将来的に拡張された使用が見込まます

複数のネットワーク層プロトコル

PPPアーキテクチャ
IP
LCP CHAP PAP EAP IPCP
PPPカプセル化
HDLCのようなフレーミング PPPoE PPPoA
RS-232 POS イーサネット ATM
SONET / SDH

PPPは、複数のネットワーク層プロトコルが同じ通信リンクで動作することを許可します。使用されるネットワーク層プロトコルごとに、複数のネットワーク層プロトコルのオプションをカプセル化してネゴシエートするために、個別のネットワーク制御プロトコル(NCP)が提供されます。接続が確立された後、ネットワークアドレスや圧縮オプションなどの ネットワーク層情報をネゴシエートします。

たとえば、IPはIPCPを使用し、インターネットワークパケット交換(IPX)はNovell IPX制御プロトコル(IPX / SPX)を使用します。NCPには、PPP接続がカプセル化するネットワーク層プロトコルタイプを示す標準化されたコードを含むフィールドが含まれています。

次のNCPをPPPで使用できます。

ループリンク検出

PPPは、マジックナンバーを含む機能を使用してループリンクを検出しますノードがPPPLCPメッセージを送信する場合、これらのメッセージにはマジックナンバーが含まれる場合があります。回線がループしている場合、ノードは、ピアのマジック番号を持つメッセージを取得する代わりに、独自のマジック番号を持つLCPメッセージを受信します。

構成オプション

前のセクションでは、特定のWAN接続要件を満たすためのLCPオプションの使用について説明しました。PPPには、次のLCPオプションが含まれる場合があります。

  • 認証-ピアルーターは認証メッセージを交換します。2つの認証の選択肢は、パスワード認証プロトコル(PAP)とチャレンジハンドシェイク認証プロトコル(CHAP)です。認証については、次のセクションで説明します。
  • 圧縮-リンクを通過する必要のあるフレーム内のデータ量を減らすことにより、PPP接続の実効スループットを向上させます。プロトコルは、宛先でフレームを解凍します。詳細については、RFC1962を参照してください。
  • エラー検出-障害状態を識別します。品質とマジックナンバーのオプションは、信頼性が高く、ループのないデータリンクを確保するのに役立ちます。マジックナンバーフィールドは、ループバック状態にあるリンクを検出するのに役立ちます。Magic-Number構成オプションが正常にネゴシエートされるまで、Magic-Numberはゼロとして送信される必要があります。魔法数は、接続の両端でランダムに生成されます。
  • マルチリンク-マルチリンクPPPを介してPPPで使用されるいくつかのインターフェイスの負荷分散を提供します(以下を参照)。

PPPフレーム

構造

PPPフレームは、HDLCフレーム の変形です。

名前 バイト数 説明
国旗 1 0x7E、PPPフレームの始まり
住所 1 0xFF、標準のブロードキャストアドレス
コントロール 1 0x03、番号なしデータ
プロトコル 2 埋め込まれたデータのPPPID
情報 変数(0以上) データグラム
パディング 変数(0以上) オプションのパディング
フレームチェックシーケンス 2 フレームチェックサム
国旗 1 0x7E、連続するPPPパケットでは省略

両方のピアがLCP中にアドレスフィールドと制御フィールドの圧縮に同意する場合、これらのフィールドは省略されます。同様に、両方のピアがプロトコルフィールドの圧縮に同意する場合は、0x00バイトを省略できます。

プロトコルフィールドは、ペイロードパケットのタイプを示します:LCPの場合は0xC021、さまざまなNCPの場合は0x80xy、IPの場合は0x0021、IPXの場合は0x0029 AppleTalk、IPXの場合は0x002B、マルチリンクの場合は0x003D、NetBIOSの場合は0x003F、MPPCMPPEの場合は0x00FDなど。[4] PPPは制限されており、EtherTypeとは異なり、一般的なレイヤ3データを含めることはできません

情報フィールドにはPPPペイロードが含まれます。これは、 Maximum TransmissionUnitと呼ばれるネゴシエートされた最大値を持つ可変長ですデフォルトでは、最大は1500オクテットです。送信時にパディングされる可能性があります。特定のプロトコルの情報をパディングできる場合、そのプロトコルでは、情報をパディングと区別できるようにする必要があります。

カプセル化

PPPフレームは、フレーミングを提供し、送信エラーを検出するためのチェックサムなどの他の機能を提供する可能性のある下位層プロトコルにカプセル化されます。シリアルリンク上のPPPは通常、IETF RFC1662で説明され ているHDLCと同様のフレーミングにカプセル化されます。

名前 バイト数 説明
国旗 1 フレームの開始または終了を示します
住所 1 ブロードキャストアドレス
コントロール 1 制御バイト
プロトコル 1または2または3 l情報フィールド
情報 変数(0以上) データグラム
パディング 変数(0以上) オプションのパディング
FCS 2(または4) エラーチェック

Flagフィールドは、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 ( MLPPPMPMPPPMLP 、またはマルチリンクとも呼ばれます)は、複数の異なるPPP接続にトラフィックを分散する方法を提供します。これはRFC1990で定義されています。たとえば、2つの従来の56kモデムを使用して自宅のコンピュータをインターネットサービスプロバイダーに接続したり、2つの専用回線を介して会社を接続したりするために使用できます。

単一のPPP回線では、フレームが順不同で到着することはありませんが、これは、フレームが複数のPPP接続に分割されている場合に可能です。したがって、マルチリンクPPPはフラグメントに番号を付けて、到着時に正しい順序に戻すことができるようにする必要があります。

マルチリンクPPPは、リンクアグリゲーションテクノロジーの一例です。Cisco IOS Release 11.1以降は、マルチリンクPPPをサポートしています。

マルチクラスPPP

PPPでは、単一のリンクを介して複数の個別のPPP接続を同時に確立することはできません。

マルチリンクPPPでもそれは不可能です。マルチリンクPPPは、パケットのすべてのフラグメントに連続した番号を使用するため、別のパケットを送信するために、あるパケットのフラグメントのシーケンスの送信を一時停止することはできません。これにより、同じリンクでマルチリンクPPPを複数回実行することが防止されます。

マルチクラスPPPは、トラフィックの各「クラス」が個別のシーケンス番号スペースと再構成バッファを使用する一種のマルチリンクPPPです。マルチクラスPPPはRFC2686で定義されています

トンネル

SSH + PPPトンネルの例の簡略化されたOSIプロトコルスタック
申し込み FTP SMTP HTTP DNS
輸送 TCP UDP
通信網 IP
データリンク PPP
申し込み SSH
輸送 TCP
通信網 IP
データリンク イーサネット ATM
物理的 ケーブル、ハブなど

派生プロトコル

PPTP(Point-to-Point Tunneling Protocol)は、暗号化(MPPE)と圧縮(MPPC )を使用したGREを介した2つのホスト間のPPPの形式です。

トンネルの両端間のレイヤー2プロトコルとして

多くのプロトコルを使用して、IPネットワークを介してデータをトンネリングできます。SSLSSHL2TPなどの一部は、仮想ネットワークインターフェイスを作成し、トンネルエンドポイント間の直接的な物理接続の印象を与えます。たとえば、Linuxホストでは、これらのインターフェイスはtun0またはppp0呼ばれます。

トンネルにはエンドポイントが2つしかないため、トンネルはポイントツーポイント接続であり、仮想ネットワークインターフェイス間のデータリンク層プロトコルとしてPPPが自然に選択されます。PPPはこれらの仮想インターフェイスにIPアドレスを割り当てることができ、これらのIPアドレスは、たとえば、トンネルの両側のネットワーク間をルーティングするために使用できます。

トンネルはTCP / IPスタックによって直接処理されるため、トンネリングモードのIPsecは、トンネルの最後に仮想物理インターフェイスを作成しません。L2TPを使用してこれらのインターフェイスを提供できます。この手法は、L2TP / IPsecと呼ばれます。この場合も、PPPはトンネルの端にIPアドレスを提供します。

IETF標準

PPPは、RFC 1661(Point-to-Point Protocol、1994年7月)で定義されています。RFC 1547(インターネット標準ポイントツーポイントプロトコルの要件、1993年12月)は、PPPの必要性とその開発に関する履歴情報を提供します。TCP / IPDECnetAppleTalkIPXなどのさまざまなネットワーク制御プロトコルがPPPとどのように連携するかを定義するために、一連の関連するRFCが作成されています。

  • RFC  1332、PPPインターネットプロトコル制御プロトコル(IPCP)
  • RFC  1661、標準51、ポイントツーポイントプロトコル(PPP)
  • RFC  1662、標準51、HDLCのようなフレーミングのPPP
  • RFC  1962、PPP圧縮制御プロトコル(CCP)
  • RFC  1963、PPPシリアルデータトランスポートプロトコル
  • RFC  1877、ネームサーバーアドレスのPPPインターネットプロトコル制御プロトコル拡張
  • RFC  1990、PPPマルチリンクプロトコル(MP)
  • RFC  1994、PPPチャレンジハンドシェイク認証プロトコル(CHAP)
  • RFC  2153、情報提供、PPPベンダー拡張
  • RFC  2284、PPP拡張認証プロトコル(EAP)
  • RFC  2364、PPP over ATM
  • RFC  2516、PPP over Ethernet
  • RFC  2615、PPP over SONET / SDH
  • RFC  2686、マルチリンクPPPへのマルチクラス拡張
  • RFC  2687、提案された標準、リアルタイム指向のHDLCのようなフレーミングでのPPP
  • RFC  5072、IPバージョン6 over PPP
  • RFC  5172、IPv6制御プロトコルを使用したIPv6データグラム圧縮のネゴシエーション
  • RFC  6361、多くのリンクのPPP透過的相互接続(TRILL)プロトコル制御プロトコル

追加ドラフト:

も参照してください

参考文献

  1. ^ W. Richard Stevens、 TCP / IP Illustrated、Volume 1:The Protocols、Addison Wesley、1994、ISBN0-201-63346-9。
  2. ^ RFC 1968 
  3. ^ a b Stevens 1994、pp。26–27、sec 2.6: "PPP:Point-to-PointProtocol"
  4. ^ 「ポイントツーポイント(PPP)プロトコルフィールドの割り当て」IANA 2015年9月3日取得