Lesson3は,イーサネット・フレームそのものに目を向けよう。

 実はイーサネット・フレームには「DIX(ディックス)」と「IEEE(アイトリプルイー)802.3」,IEEE802.3から派生した「IEEE802.3+802.2(LLC)」(LLC),「IEEE802.3+802.2(LLC+SNAP(スナップ))」(SNAP)の四つの規格がある。

 どの規格を使うかは実装次第で,プロトコルによって選択できる場合もある。ただ,「今のネットワークはDIXを使うTCP/IPが主流で,LAN上のイーサネット・フレームの約9割はDIXになっている」(東陽テクニカ情報システム営業第2部の花澤 秀幸(はなざわ ひでゆき)主任)。ここではDIXを中心に説明していこう(図3)。

図3●イーサネット・フレームの構成
図3●イーサネット・フレームの構成
イーサネット・フレームは,「プリアンブル」「MACヘッダー」「データ」「FCS」の四つの部分に大きく分かれている。全体の長さは,プリアンブルを除き64~1518バイトと決まっている。イーサネット・フレームの規格は4種類あり,細部の構成が違う。  [画像のクリックで拡大表示]

四つの部分で成るシンプルな構成

 イーサネット・フレームは,「プリアンブル」「MACヘッダー」「データ」「FCS」の四つの部分から成る。

 プリアンブルはフレームの始まりを表す合図のようなものだ。中には「1010101010101010…10101011」という特殊なパターンの信号が並んでいる。LAN上の機器はこのパターンを検知してフレームの送信開始を認識し,データを受信するタイミングを取る。

 プリアンブルの次が「MACヘッダー」と呼ぶ部分だ。「あて先MACアドレス」「送信元MACアドレス」「タイプ」の三つのフィールドから成る。LAN機器はプリアンブルの最後の「10101011」を検出すると,次のビットから6バイトをあて先MACアドレス,その次の6バイトを送信元MACアドレス,さらに次の2バイトをタイプと機械的に判断する。タイプには,データ部分に入っているデータのプロトコル(例えば,IPやNetWare用プロトコルであるIPXなど)を示す識別子が入る。

 データ部分の次に付いているのがFCSだ。FCSには,MACヘッダーやデータ部分に誤りがないかを検査するための値が含まれる。この値は送信元がフレームを作るときに計算して追加するもので,受信側がフレームの受信時に同じ計算をして値を照合する。値が合わなければ誤りがあると判断し,そのフレームを丸ごと廃棄する。

長さとタイプは数値で判別

 DIX以外の規格も見てみよう。基本構成はほぼ変わらない。違いは,送信元MACアドレスの次のフィールドがデータの「タイプ」ではなく「長さ」を示すことがある点だ。

 IEEE802.3の策定時はこのフィールドは長さを示すことになっていた。ただ,実際のネットワークではタイプを示すDIXのイーサネット・フレームが主流だったため,DIXのタイプもIEEE802.3のフレームとして扱えるように規格を変更した。

 示しているのが長さかタイプかはフィールド内の値で見分ける。

 値が1500以下の場合は長さを示す。データ部分に入るデータは1500バイト以下なので,長さは1500を超えないからだ。値が1536以上の場合はタイプを表す。例えば,IPは10進表記で2048,IPXは33079だ。なお,1501~1535は値として規定されていない。

 LLCとSNAPはIEEE802.3を拡張した規格だ。LLCは信頼性のある通信を実行するために作られた802.3の上位プロトコル(IEEE802.2で規定)である。LLCヘッダーは,通信内容を内部で識別するためのアドレス情報「DSAP」/「SSAP」と,制御情報からなる。一方のSNAPは,DIXや802.3で使ってきたプロトコル識別子をLLC利用時に使うためのフレーム・フォーマット。SNAPヘッダーの中にある「タイプ」フィールドの使い方は,DIXや802.3の「タイプ」と同じである。

■変更履歴
掲載当初,図3下の説明文で「FSC」とありましたが,正しくは「FCS」です。お詫びして訂正します。本文は修正済みです。 [2008/06/11]