ベーシックフレーム
IEEE 802.3で定められた、VLANタグなどを含まない基本形のイーサネットフレーム。宛先アドレスからFCSまでで64〜1,518オクテットになる。
イマシルちゃんの解説
イーサネットのフレームには、いくつか「型」があるんだ。
その中でいちばんシンプルな、オプションなしの基本形がベーシックフレーム!
中身はこんな順番で並んでるよ。
宛先アドレス(6) + 送信元アドレス(6) + 長さ/タイプ(2) + データ + FCS(4)
データ以外を全部足すと18オクテット。
だから「データが1,400オクテットならフレームは何オクテット?」って聞かれたら、
1,400 + 18 = 1,418オクテット、ってすぐ出せちゃうんだ!
より深い解説
定義
IEEE 802.3 では、イーサネットのフレームを次の3種類に分類している。
| 種類 | 内容 | MACクライアントデータの最大長 | フレーム長(宛先〜FCS)の最大 |
|---|---|---|---|
| ベーシックフレーム | 追加情報を含まない基本形 | 1,500 | 1,518 |
| Qタグ付きフレーム | 802.1Q のVLANタグ(4オクテット)を含む | 1,500 | 1,522 |
| エンベロープフレーム | タグ等をカプセル化するための拡張形 | 1,982 | 2,000 |
試験で特に断りなく「イーサネットフレーム」とあれば、通常はベーシックフレームを指す。
フィールド構成
| フィールド | 長さ(オクテット) | 役割 |
|---|---|---|
| プリアンブル | 7 | 受信側のクロック同期用(10101010の繰り返し) |
| SFD | 1 | フレームの開始を示す(10101011) |
| 宛先アドレス | 6 | 宛先の MACアドレス |
| 送信元アドレス | 6 | 送信元のMACアドレス |
| 長さ/タイプ | 2 | データ長、または上位プロトコルの種別 |
| MACクライアントデータ | 0〜1,500 | 上位層のデータ(IPパケットなど) |
| パッド | 0〜46 | データが46オクテット未満のときの埋め草 |
| FCS | 4 | 誤り検出用のCRC値 |
フレーム長を問われた場合は、断りがなければ宛先アドレスからFCSまでで数え、プリアンブルとSFDは含めない。
フレーム長の計算
ヘッダとトレーラの固定部分は合計18オクテット(6 + 6 + 2 + 4)なので、次の式で求められる。
フレーム長 = MACクライアントデータ長 + 18 (データが46〜1,500オクテットの場合)
例:MACクライアントデータが1,400オクテットの場合
6 + 6 + 2 + 1,400 + 4 = 1,418オクテット
最小フレーム長とパッド
フレーム長には最小64オクテットという制約がある。データが46オクテット未満の場合は、パッドを付け加えてデータ部を46オクテットにそろえる。
データが10オクテットの場合:6 + 6 + 2 + 10 + 36(パッド) + 4 = 64オクテット
最小長がある理由は、半二重のCSMA/CDにおける衝突検出にある。送信側は、自分のフレームを送り終わる前に衝突を検知できなければならない。そのために、フレームの送信時間がネットワークの往復伝搬時間(スロットタイム:512ビット時間 = 64オクテット)以上になるよう定められている。全二重通信が主流の現在でも、互換性のためにこの最小長は維持されている。
MACクライアントデータとMTU
MACクライアントデータは、MAC副層から見た「上位層(クライアント)から渡されたデータ」を意味する。IPから見ると、この最大長1,500オクテットがイーサネットの MTU(Maximum Transmission Unit)にあたる。
- MTU:IPパケット全体の最大長(イーサネットでは1,500)
- MSS:TCPで運べるデータの最大長(MTUからIPヘッダ20とTCPヘッダ20を引いた1,460が典型)
MTUを超えるIPパケットは分割(フラグメンテーション)が必要になる。なお、9,000オクテット程度まで扱えるジャンボフレームは製品独自の拡張で、IEEE 802.3の規格外である。