トップ > スキル : ネットワーク > プロトコル(PPP)

ネットワーク

PPPの応用

PPPをMACで運ぶ

PPPoEは、パソコンやルータがイーサネットでPPPを動作させるために開発されたものです。では、PPPoE対応のブロードバンド・ルータを例にして動作を見ていきます。まず、パソコンがIPパケットをMACフレームでルータに送信します。ルータはMACフレームからIPパケットを一度取りだし、IPパケットの先頭にPPPヘッダとPPPoEヘッダを付加し、これを再びMACフレーの中に入れてPPPoEフレームを作ります。ルータはこれをモデムに送り出し、最終的にプロバイダのサーバに届けられます。PPPoEといっても、運ばれるPPPは通常のPPPと何ら違いはないですが、1つだけ使用条件が加わります。それは、PPPのデータ部分(ペイロード)の最大長が1492バイトとなることです。これは、イーサネット・フレームが運べるパケットの最大値が1500バイトであることと、PPPoEヘッダとPPPヘッダ(両方で8バイト)が加わるためです。

PPPoEの動作

PPPoEの動作を見ていくと、まずPPPoEクライアントが開始メッセージを流すことから始まります。これはクライアントがPPPoEの通信を引き受けてくれるPPPoEサーバを探すメッセージとなります。この開始メッセージを受け取ったPPPoEサーバは、クライアントにオファー・メッセージを返します。このオファー・メッセージは、クライアントの要請に応える用意があるというメッセージです。オファーをもらったクライアントはセッションの開始を要求するメッセージを送り、そのあとサーバがセッションIDを指定した確認メッセージを送り返して、PPPoEセッションが確立されます。この直後からPPPのLCPネゴシエーションが始まります。もし、PPPoEが動作しているイーサネットに複数のPPPoEサーバがある場合、クライアントは一番最初に返信したサーバを選んでPPPoEセッションを始めます。

フレッツでのPPP

通常のPPPoEは、PPPパケットをイーサネットで包み、それを通信する両側の間で運ぶ形を取ります。ADSLでのインターネットでは、ユーザ側とサーバ側との間でPPPパケットがやりとりされることになります。ただ、フレッツ・ADSLは通常のADSLとの構造が少し違います。フレッツ・ADSLでは、PPPoEクライアントのユーザIDを「ユーザ名@プロバイダ名」という形式で運用しています。これは、複数のプロバイダを選べるようにするためで、@以降の文字列でプロバイダ名を識別しています。

具体例を記述すると、ユーザからPPPoEの起動を受け付けたNTT側のサーバは、PPPoEセッションを確立し、LCPネゴシエーションを始めます。LCPの交渉が終了すると、認証プロセスが始まります。このときPPPoEクライアントは、ユーザIDと認証用データをNTTのサーバに送ります。受け取ったサーバは、@の後ろの文字列から契約しているプロバイダを判断し、そのプロバイダの認証サーバにユーザIDと認証用データを送ります。ユーザIDと認証用データを受け取ったプロバイダの認証サーバは、照合して正規のユーザかどうかを判断し、その結果をNTTのサーバに返信します。認証に成功したクライアントは、次にIPCPを起動してIPアドレスの通知を要求します。クライアント側が求める各種のIPアドレスはプロバイダごとに異なるので、NTTのサーバが勝手に割り当てることはできません。そこで、NTTサーバはプロバイダの認証サーバに問い合わせをして、認証サーバからIPアドレス情報を返信してもらいます。このように、フレッツ・ADSLでは、PPPをユーザ側のPPPoEクライアントとやりとりするのはNTTのサーバですが、ユーザ認証とアドレスの割り当てはプロバイダの認証サーバに任せています。この方法は、フレッツ・ISDNやBフレッツにも採用されています。なお、NTTサーバと認証サーバはRADIUSと呼ばれる認証プロトコルで通信されます。

ブロードバンド・ルータでのPPPの特性

では、最後にPPPoE対応のブロードバンド・ルータの独特の機能を紹介します。ADSLをフレッツ接続ツールで使うとき、PPPの最大パケット・サイズ(MRU)は1454バイトに設定されます。WebブラウザがWebサイトにアクセスするとき、Webブラウザは相手のWebサーバに自分が受け取れる最大のデータ・サイズを通知します。これをMSS(maximum segment size)と呼びます。MSSは通常、MRUからIPとTCPヘッダ(両方で40バイト)を取り除いた長さとなるため、フレッツ・ADSLの場合1454-40=1414バイトになります。つまり、WebブラウザがMSS値を1414バイトとしていれば問題が起こりません。しかし、ブロードバンド・ルータ経由で接続すると、WebブラウザはMRUの制限を知らないのでMSSの値が変わってきます。MRUをイーサネット・フレームの最大値である1500バイトと考えると、MSSが1500-40=1460バイトになってしまいます。こうなるとPPPoEのパケット・サイズはNTTの想定する値を超えてしまいます。これだとWebページが見えなくなったり、極端に表示が遅くなる問題が生じます。最近のPPPoE対応のブロードバンド・ルータは、Webアクセスのデータを監視し、MSSが1414バイトより大きく設定してあると、それを1414バイト以下の値に変更します。こうすることでトラブルを未然に回避する仕組みを取り入れています。

【PPP:PPPの応用】