ネットワーク技術解説講座詳説 TCP/IPプロトコル
|
![]() |
|
イーサネットでは、パケットという用語の代わりににフレームという用語が使われ、イーサネット・フレームとも呼ばれている。DIXイーサネットとIEEE 802.3のフレーム・フォーマットは、「タイプ」フィールドが「長さ/タイプ」フィールドとして使われている点と、オプション・フィールドが追加された点以外は基本的には同じである。
![]() |
| イーサネットのフレーム・フォーマット |
| DIXイーサネットとIEEE 802.3のフレーム・フォーマットは、「タイプ」フィールドが「長さ/タイプ」フィールドとして使われている点と、オプションが追加された点以外は基本的には同じである。 |
■プリアンブル
イーサネットのフレームは「プリアンブル」から始まる。これはLANに接続しているインターフェイスにフレーム送信の開始を認識させ、同期をとるタイミングを与えるための信号である。DIXイーサネットでは、サイズが8オクテット(64bit)のフィールドで、1と0が交互に続き、最後の1ビット(64bit目)が1で終わる。
IEEE 802.3ではサイズが7オクテットの「プリアンブル」フィールドと、1オクテットの「SFD(Start Frame Delimiter)」フィールドに分けられている。「プリアンブル」は1と0が交互に続くパターンで、「SFD」は「10101011」というパターンであり、DIXと同じである。プリアンブルを受信中に、その最後が「10101011」となっていることを検出すると、その次のビットから宛先アドレス部が始まると解釈される。プリアンブルは8オクテット分あるが、リピータなどを1段ずつ通過する際に、(内部処理の遅れや、同期回路の起動の遅れなどによって)何ビットか消失することがある。そのため、全体の長さで判断せず、最後の連続する「10101011」によってプリアンブルの終了と宛先アドレス部の始まりを検出することになっている。
![]() |
| プリアンブルのフォーマット |
| LANに接続しているインターフェイスにフレーム送信の開始を認識させ、同期をとるタイミングを与えるための信号。8オクテット目の最後のビットが“1”になっていることに注意。この最後のオクテットのことを、IEEE 802.3では特にSFDと呼んでいる(DIXイーサネットでは特に名前はない)。プリアンブルは、「1」と「0」の繰り返しであり、その最後が「10101011」になっていると、その次のビットから宛先アドレス部が始まると解釈される。プリアンブルは、8オクテット分あるが、リピータなどを1段ずつ通過する際に、(内部処理の遅れや、同期回路の起動の遅れなどによって)何ビットか消失することがある。そのため全体の長さで判断せず、最後の連続する「10101011」によってプリアンブルの終了と宛先アドレス部の始まりを検出することになっている。 |
■宛先アドレス
サイズが6オクテット(48bit)のフィールドで、宛先となるステーションのインターフェイスのMACアドレスを設定する。複数のインターフェイス宛てのマルチキャスト・アドレスを設定することもできる。
■送信元アドレス
サイズが6オクテット(48bit)のフィールドで、フレームを送信したインターフェイスのMACアドレスを設定することになっている。上位のプロトコルやラーニング・ブリッジが参照するフィールドである。
■VLANタグヘッダ
サイズが4オクテット(32bit)のフィールドで、VLAN(Virtual LAN)用のタグヘッダを指定することができる。VLANはスイッチング・ハブが利用するもので、IEEE 802.1Qで規定されている。このフィールドはVLANを利用する場合にだけ付加するオプションのフィールドである。VLANとは、1つのスイッチング・ハブの各ポート(もしくはMACアドレス)をグループ分けし、それぞれのグループを独立したLAN(ブロードキャスト・ドメイン)として機能させるメカニズムである。詳細については次回解説する。
■長さ/タイプ
DIXイーサネットでは「タイプ」、IEEE 802.3では「長さ/タイプ」と定義されている、サイズが2オクテット(16bit)分のフィールドである。DIXイーサネットとIEEE 802.3のフレーム・フォーマットで実質的に違うのはこのフィールドだけである。
「タイプ」フィールドは、多重化/多重分離のために、次に続く「データ」フィールドに格納する上位層プロトコルを示すIDを設定する。例えばTCP/IPならば、IPv4(0x0800)やARP(0x0806)などがここに入り、データ部には、IPv4やARPプロトコルのパケットが入ることになる。このIDはSTD2「Assigned Numbers」で参照できる。
IEEE 802.3における「長さ/タイプ」フィールドは、当初は「長さ」フィールドと定義されていて、「データ」フィールド部のサイズ(オクテット数)を指定するフィールドであった。フィールドには「データ」フィールドの最大サイズである1500までしか指定できないため、フィールドの値が1500以下の場合はIEEE 802.3のフレーム、それ以外はDIXイーサネットのフレームと判断でき、イーサネット・インターフェイスはDIXイーサネットとIEEE 802.3の両方をサポートすることができた。
IEEE 802.3が「タイプ」フィールドを「長さ」フィールドに変更した理由は、通信のオーバーヘッドとエラーレートを減らすためであったようだ。IEEE 802.3のフレームは、その上位層としてIEEE 802.2で規定される「LLCパケット」をデータとして転送する。LLCはさまざまなLANで利用する目的で作られたため、LLC中には多重化/多重分離のための「DSAP(Destination Service Access Point)」フィールドがある。これはDIXイーサネットの「タイプ」フィールドと同様な役割を持つので、DIXイーサネットの「タイプ」フィールドを残すと、無駄な重複ができてしまい、通信のオーバーヘッドにつながる。また、DIXイーサネットでは通信路がアイドル状態(信号の無い状態)になるのを見てフレームの最後を判断するため、フレームに続くノイズを拾ってしまい、エラーとなる可能性がある。フレームのサイズが分かっていれば、フレームサイズ以上の信号(ノイズ)を受信することもないため、IEEE 802.3では「タイプ」フィールドを「長さ」フィールドに変更したのであろう。
しかし、TCP/IPはもともとDIXイーサネット形式を利用していたので、STD3「Host Requirements ? Applications」でもDIXイーサネット形式のフレームを推奨しており、ほとんどのイーサネット・インターフェイスは互換性のためにこのフィールドをタイプ・フィールドとして使用している。そのため、IEEE 802.3でも、後に「長さ」フィールドを「長さ/タイプ」フィールドに改訂した。「長さ/タイプ」フィールドはその値が1500以下の場合はデータのサイズ、1536(0x0600)以上の場合はタイプと判断する。1501から1535については未定義となっている。
■データ
「データ」フィールドには、最小46オクテットから最大1500オクテットまでのデータを格納することができる。もし、データが46オクテット未満の場合にはパディング データを付加し46オクテットにする。これは、フレームの全体長(先頭のプリアンブル部は除き、宛先アドレスからFCS部まですべて含んだ長さ)が64オクテット以上になるようにするためである。前回述べたように、この長さはセグメント内での衝突検出を確実に行うために(コリジョンの範囲を決定するために)必要な長さである。
「長さ/タイプ」フィールドに1500以下の値が設定されている場合は、IEEE 802.2のLLCパケットを格納する。しかし、TCP/IPでは一般的にDIXイーサネットのフレームを利用しているため、LLCパケットは使われない。
■FCS(Frame Check Sequence)
フレームのエラーを検出するための4オクテットのフィールド。宛先アドレス、送信元アドレス、長さ/タイプ、データの各フィールドから計算したCRC(Cyclic
Redundancy Check)値を設定する。受信側でも同様にCRCを計算し、FCSフィールドの値と一致しない場合はエラーが発生したと判断し、そのフレームを破棄する。![]()
|
今回のまとめ
|
| INDEX | ||
| 第7回 イーサネット(その2)イーサネットのフレーム構造 | ||
| 1.MACアドレス | ||
| 2.MACアドレスの確認方法 | ||
| 3.イーサネットのフレーム・フォーマット | ||
| 連載(バックナンバ) |
TechTargetジャパン
- WebサーバのSSL証明書が「正しい」か確認する (2012/2/10)
SSLに必要なサーバ証明書の取得/インストールのミスはWebサイトの信頼を失墜させかねない。証明書ベンダ提供のツールで手軽かつ確実にチェックしよう - クライアントでも利用可能になるHyper-V 3.0とは? (2012/2/9)
Windows 8では、従来のWindows Virtual PCに代わって新しくHyper-V 3.0がクライアント向けにも導入される。その概要を解説 - 第303話 ペアプロ2 (2012/2/7)
あっ、またまたいつぞやの幽霊が! …っと思ったら、何だ倉井さんかぁ…。はぁー、驚いた… - Excelで郵便番号変換ウィザードを活用する (2012/2/3)
Excelで管理している顧客名簿などで、不足している郵便番号や住所を入力するのは意外と面倒。郵便番号変換ウィザードを使えば、これらの入力が簡単になる
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -



