第 12 回 シリアル通信(PPP)

本日の内容


このドキュメントは http://edu.net.c.dendai.ac.jp/ 上で公開されています。

12-1. シリアル接続

現在のインターネットで使用される代表的なデータリンクは Ethernet です。 一方、その他に広く使われるのが、一対一通信で用いられるシリアル伝送です。 シリアル伝送とはデータ列を時間的に分散して送る物で、最低限、一本の信号 線と一本のアース線があれば可能です。 パソコンのシリアルインタフェースには、RS-232C、モデムポート、USB、IEEE 1394 などがあります。 一方インターネットで良く使われるシリアル伝送には以下のものがあります。

モデム
Modular Demodular の単語を組み合わせたもの。 データを音声などに変調して送るもの。
ISDN などの ATM
固定長(5Byte ヘッダ+ 48Byte データ) のパケットを非同期でやりとりす る技術。電話の音声の伝送に最適化されている
ADSL などの xDSL
電話用に敷設されたより対線を高速伝送に利用する技術
FTTH
Fiber to the Home の頭文字をとったもの。家庭まで敷設された光ファイ バを指す。
SONET
Syncronous Optical Network の頭文字。SONET/SDH と書くこともある。 光ファイバを用いた高速伝送路。

特徴

シリアル伝送路の共通する特徴には次の物があります。

  1. bit 列あるいは文字を連続して送ることができる。
  2. 全二重
  3. リンクの切断、接続と言う状態を持つ。
  4. 一般には通信は 100% 保証されず、誤り率は 0 ではない。

12-2. フレーム化

通常のシリアル通信路は文字などを連続して送ることができるだけなので、そ のままではパケット通信はできません。 また、通信中に誤りが発生した時、送ったデータを最初から全て再送するのは 避けたいです。 そこで、文字列のならびにルールを与えて、文字列をフレーム化することを考 えます。このようにするとフレームにパケットを入れたり、また、フレーム毎 に誤り訂正符号を付加したりできます。

データの区切りを表す特殊な文字を フラグ と呼びます。

分割方式

シリアル伝送されるものを一桁の数字であると仮定します。 その時、始めの一文字はフレームの長さを表すとします。

フラグ データ フラグ データ フラグ データ
5 1 2 3 4 2 5 5 4 2 7 4 ...

欠点

フレーム長を表す部分に通信誤りが発生すると、それ以降のフレームが正しく 認識されなくなってしまいます。

フラグバイト

フラグバイト方式は、特殊な文字(フラグ文字)をフレームの区 切りとして用いるものです。 この方法だと、 通信誤りによって境界情報が失われてしまっても、その境界付近のフレームだ けに影響が限定します。

フラグ文字データ フラグ文字データ フラグ文字データ

さて、ここでバイナリデータと呼ばれる全文字の送信の可能性のあるデータの 通信を考えます。 つまりこれはフラグ文字もデータとして送る可能性があると言うことです。 素朴にフラグ文字を送ってしまうと、フラグ文字はデータの境界として認識さ れ、データとしては届きません。 そこで、文字詰めバイト詰めと呼ばれる方法を使います。 これには ESC 記号というフラグとは別の文字を選んで、次のルールでデータ を送ります。

  1. ESC 文字、フラグ文字以外はそのまま文字として送ります。
  2. フラグ文字を送りたい時は 「ESC フラグ」と二文字送ります。
  3. ESC 文字をデータとして送りたい時は「ESC ESC」と二文字送ります。

このようにすると受信側では以下の手順により正しくフラグ文字や ESC 文字 を受け取ることができます。

  1. フラグと ESC 以外はそのまま文字として受け取ります。
  2. フラグが来たらデータの区切りと見なします。
  3. ESC が来たら次の文字はデータとして受けとります。つまり、
    1. 「ESC フラグ」の順番で来たデータは ESC は無視し、フラグはデータの 境界ではなく単なる文字として受け取り、
    2. 「ESC ESC」の順番できたデータは ESC 文字一個として受け取る。
データ送られる列受信データ
A Bフラグ A B フラグA B
A フラグ Bフラグ A ESC フラグ B フラグA フラグ B
A ESC Bフラグ A ESC ESC B フラグA ESC B

この手法はパソコンのモデムなどで利用されてます。

ビット詰め

フラグバイト方式は 1Byte が基本になってましたが、これは8bit 1 文字を単 位に全てを考えなければなりません。 ここで議論している内容は文字と言う概念が必要なアプリケーション寄りの話 ではなく、どちらかというと電圧や光線の有無などの信号の連続において、フ レームと言う概念を導入することです。 したがって、フレームの中に 8bit 1 文字のデータが入ると勝手に決めない方 が良いです。 そのため、任意の長さのビット列をフレームに分けて送る方法を考えます。

ビット詰めという手法は次のようなものです。

  1. フレームの区切りは 01111110 というビット列
  2. 1 が 5 個以上連続しているデータは 5 個おきに 0 を挿入して送る。
  3. 受信側では 1 が 5 個連続した後の 0 は取り除く
データ送られる列受信データ
1101 01111110 1101 011111101101
1111101111110 111110 0111111011111
1111111101111110 111110111 0111111011111111

12-3. データリンクプロトコル

HDLC

HDLC(High-level Data Link Control) はシリアル伝送でパケット 通信を実現するプロトコルです。 もともとは IBM の開発した SDLC(Syncronous Data Link Control) を ISO が修正して規格としたものです。 情報通信工学実験のルータネットワークでシリアルケーブルを使いますが、そ の時の通信方式は、なにも設定していなければ HDLC です。

PPP (RFC 1661, 1662)

PPP(Point to Point Protocol) は次のような特徴を持つプロトコ ルです。

  1. フレーム方式であり、誤り訂正機能がある
  2. ネットワークプロトコルである IP, IPX, AppleTalk などを多重化できる
  3. リンク制御プロトコル(LCP) 機能がある。これはリンクの接続、切断など のコントロールができる。
  4. 認証(PAP, CHAP)機能がある
  5. ネットワーク制御プロトコル(NCP)機能がある。 例えば IP に対しては、接続すると自動的に IP アドレスを発行したりできる。

モデムを使用してインターネットを使用することは少なくなりました。 しかし、ADSL などの回線において、接続、認証、IPアドレスの交付などをさ せるために、接続方式は Ethernet にも関わらず、 PPP を利用する PPPoE(PPP over Ethernet) はよく使われています。 PPP は DHCP と違い、ユーザアカウントとパスワードを持っているコンピュータだけに接続を許可することができます。

PPPの状態遷移

PPP の状態遷移

PPPの認証方式

PAP
Password Authentication Protocol の略で、通常のユーザー名とパスワード を聞く方式。 電話回線を盗聴されないという前提で、暗号化されない。
CHAP
Challenge-Handshake Authentication Protocol の略(RFC1994)。
  1. 認証者はチャレンジメッセージを送る
  2. ハッシュ関数のような一方向関数を用いてレスポンスを返す
  3. 認証者も同様の計算を行い、値が一致するか確認する。一致したら Success。 そうでなければ Failure。
  4. これをランダムな間隔で繰り返す

12-4. 認証

IEEE 802.1X は LAN でポートベースで認証を行う機能です。 EAP(Extensible Authentication Protocol RFC 3748)を有線上で カプセル化したのが 802.1X で、無線上でカプセル化したのが 802.11i(WPA2) になります。

EAP(Extensible Authentication Protocol)

EAPは PPP や 802 プロトコル等のデータリンクのプロトコルで IP を必要とせずに直接動作する認証プロトコルです。 RFC3748 に規定されています。

AAA モデル(Authentication, Authorize, Account)と言う形態をとっています。 HUB は通過するのみで、実際の認証サーバは別に設置できます。 認証サーバとして RADIUS などが使用されます。

EAP のモデルとして、 EAP chap(MD5), LEAP(Cisco), PEAP(Microsoft), TLS, TTLS などがあります。


坂本直志 <sakamoto@c.dendai.ac.jp>
東京電機大学工学部情報通信工学科