Works by

Ren's blog

@rennnosuke_rk 技術ブログです

【NW】PPPoE

PPPoEとは

PPPoEとは、イーサネットを利用してPPPの機能を提供するプロトコルです。

イーサネットはデータリンクとして広く普及した規格です。多くのネットワーク機器やNICがこのイーサネットに準拠しています。

rennnosukesann.hatenablog.com

rennnosukesann.hatenablog.com

しかし、イーサネットがサポートする機能だけでは限界があります。例えば、イーサネットにはコネクションの確立・切断機能はありません。また二点間の認証機能も持ち合わせておりません。

そのような機能に対するニーズをイーサネットで満たすため、インタフェースとしてはイーサネットでありながら、PPPの機能を提供する新しい形のプロトコルが生まれました。それがPPPoEです。

利用用途として、一般家庭とプロバイダ間のデータリンク接続が挙げられます。プロバイダとしてはデータ通信の利用者の識別や利用時間等の計測を行いたいので、コネクションの確立や認証を必要とします。PPPoEであれば、これらをイーサネットの形で行うことができるので、多くのプロバイダが顧客とのデータリンクの接続にPPPoEを採用しています。

※PPPについてはこちらの記事参照 rennnosukesann.hatenablog.com

PPPoEのステージ

PPPにおける通信では、すでに送信先の相手との通信経路が固定された状態で通信が行われます。一方で、イーサネットではブロードキャスト通信などにより多数の送信先に対して無指向通信を行い、データの送信先ホストだけが返信を行うという形でデータの送受信を行います。そのため、イーサネット上でPPPとして振る舞うPPPoEは、このイーサネットの無指向通信の上でPPPの通信を再現する必要があります。

PPPの通信を再現するため、PPPoEでは通信処理を以下の二段階に分けて定義しています。

  • ディスカバリステージ
  • PPPセッションステージ

ディスカバリステージ

ディスカバリステージでは、送信先相手へのMACアドレスの伝達を行います。また、後述するPPPセッションステージで用いるセッションIDの特定・セッションの確立も行います。

PPPセッションステージ

ディスカバリステージによってセッションが確立されて以降は、PPPに則った通信が開始されます。

PPPoEのフレームフォーマット

f:id:rennnosukesann:20180722163810p:plain

イーサネットヘッダ

イーサネットで規定されているヘッダです。詳しくはこちら

PPPoEヘッダ

PPPoEで必要な情報を含むヘッダ。

PPPプロトコル

PPP上で用いられるプロトコル

FCS

フレームの破損を検出するためのシーケンス番号。

参考

(マスタリングTCP/IP 入門編 第5版)[https://www.amazon.co.jp/%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0TCP-IP-%E5%85%A5%E9%96%80%E7%B7%A8-%E7%AC%AC5%E7%89%88-%E7%AB%B9%E4%B8%8B/dp/4274068765)

milestone-of-se.nesuke.com

PPPoE - Wikipedia