EtherType

From Wikipedia, the free encyclopedia

EtherType(イーサタイプ)は、イーサネットフレームのデータ種別を示す 1536~65535 (=十六進数0x06000xFFFF)の値。イーサネットフレームのヘッダ部に2バイト値として配置される。

この値は、フレームのペイロードカプセル化されているプロトコルを表し、受信側のデータリンク層がペイロードのデータをどの上位層プロトコルに引き渡せばいいかを決定するのに用いる。

EtherTypeは1982年に初めてEthernet IIの規格で定義され[1]、後に1997年にIEEE 802.3規格に取り込まれた[2]

ペイロード長との併用

EtherTypeフィールドを含むイーサネットフレーム。下部の各枠は1バイトを示す。EtherTypeは2バイト。

イーサネットフレーム内でEtherTypeを格納するフィールドは「長さ/タイプ」という名前で、EtherType(タイプ)だけでなくペイロード長(長さ)を示すのにも使う場合がある。

歴史的には、1982年のEthernet II規格ではこのフィールドはEtherTypeを表し、1983年の初期IEEE 802.3規格ではバイト単位のペイロード長を表すものとした[3]。当時イーサネット環境で混用されていたフレーム種類によっては、両方の解釈が同時に有効であり、曖昧さが生じる可能性があった。

Ethernet II規格と初期IEEE 802.3規格を同じイーサネット環境内で混在できるように、統一規格としてIEEE 802.3x-1997ではEtherType値を1536 (=0x0600)以上とする仕様が導入された。この値は、802.3のフレームのデータフィールドの最大長(MTU)が1500バイトであることから選ばれた。 結果として、このフィールドが1500以下であればイーサネットフレームのペイロード長を表し、1536以上であればEtherTypeを表す。1501から1535までの値の解釈は未定義である[4]

フレームの終わりは、キャリアの損失や物理層の特殊シンボル・シーケンスによって判別できる[5]ため、イーサネットフレームにおいてペイロード長を明示する必要は必ずしもない。ただし、イーサネットフレームの最小ペイロードは46バイトなので、EtherTypeを使うフレームで受信側がそのデータ長を判断する必要があれば、ペイロード内に別途データ長を含める必要がある。

ジャンボフレーム

ジャンボフレームはIEEE 802.3の規格外のフレームであり、通常9000バイト程度のペイロード長を持つ。この値はEtherTypeとして扱う範囲のものであり、そのようなフレームのペイロード長を示すことはできない。

ジャンボフレームのフレーム長を示す方法として、2000年にEtherTypeの特殊値0x8870を用いる方法が提案された[6]が、この仕様提案は標準化に際して棄却されている。これはIS-ISでの大きいパケットの用途のためであり、シスコシステムズルータでもIS-ISのIIH Helloパケットのパディング用途で実装された[7]。棄却理由については、当時のIEEE 802.3議長であるGeoff Thompsonが802.3の公的な立場と棄却に至った背景を提案者に概説しており、これに提案者も議長に回答したが、その後の802.3からの回答は記録されていない[8]

タグVLAN

4バイトのQタグをイーサネットフレームに挿入した様子(下段水色)。TPID EtherTypeの値は0x8100

IEEE 802.1QによるVLANタグ(Qタグ)では、EtherType値として0x8100を使用する[9]。このようなEtherTypeはTPID (Tag Protocol Identifier)と呼び、タグ付きフレームであることを表す。その後にVLAN情報を示す2バイトのTCP (Tag Control Information)が続き、さらにその後にカプセル化されたパケットのプロトコルを示す本来のEtherTypeが続く。

IEEE 802.1adで規定された二重タグ (Q-in-Qタグ)ではこのタグ付けを拡張し、さらに入れ子にしたEtherTypeとTCIの組が挿入される。

イーサネット以外の使用

IEEE 802.2で規定されたLLCでは、LLCヘッダと組み合わせてSNAP英語版ヘッダを使うことがあり、この中でプロトコルIDとしてEtherTypeを使う[10]。イーサネット以外のIEEE 802規格や、FDDIなどのネットワーク規格で用いる。なお、イーサネットでは現在LLCヘッダはほとんど使われずEthernet II書式が使われている。

登録

EtherTypeは、IANAによって割り当てられる[11]。IANAでは IEEE Registration Authority などの複数の参照先をもとにした一覧を作成している[12]

以下に主なプロトコルのEtherType値を示す。これは全てのEtherType値を網羅したものではない。

さらに見る プロトコル ...
プロトコルのEtherType値[12]
EtherTypeプロトコル
0x0800IPv4
0x0806ARP
0x0842Wake-on-LAN[13]
0x22F3TRILL英語版
0x22EAStream Reservation Protocol英語版
0x6003DECnet フェーズIV
0x8035RARP
0x809BAppleTalk (Ethertalk)
0x80F3AppleTalkARP (AARP)
0x8100タグVLAN (IEEE 802.1Q) / Shortest Path Bridging (NNI互換用[14], IEEE 802.1aq)
0x8137IPX
0x8204QNX Qnet
0x86DDIPv6
0x8808MAC制御フレーム (PAUSEフレームなど)
0x8809スロープロトコル (リンクアグリゲーションなど)
0x8819CobraNet英語版
0x8847MPLSユニキャスト
0x8848MPLSマルチキャスト
0x8863PPPoE Discovery Stage
0x8864PPPoE Session Stage
0x886DIntel 拡張機能[15]
0x8870ジャンボフレーム(draft-ietf-isis-ext-eth-01として提案されたが廃止)
0x887BHomePlug 1.0 MME
0x888EEAPoL (EAP over LAN, IEEE 802.1X)
0x8892Profinet英語版
0x889AHyperSCSI英語版 (SCSI over Ethernet)
0x88A2ATA over Ethernet
0x88A4EtherCAT
0x88A8Q-in-Q VLAN (IEEE 802.1ad) / Shortest Path Bridging (IEEE 802.1aq)[14]
0x88B8GOOSE (Generic Object Oriented Substation event)
0x88B9GSE (Generic Substation Events) Management Services
0x88BASV (Sampled Value Transmission, IEC 61850英語版)
0x88CCLLDP (IEEE 802.1AB)
0x88CDSERCOS III英語版
0x88DCWAVE Short Message Protocol (WSMP, IEEE 802.11p)
0x88E3Media Redundancy Protocol英語版 (IEC 62439-2)
0x88E5MACsec (IEEE 802.1AE)
0x88E7Provider Backbone Bridges (PBB, IEEE 802.1ah英語版)
0x88F7PTP over Ethernet (IEEE 1588)
0x88F8NC-SI英語版
0x88FBParallel Redundancy Protocol英語版 (PRP, IEC 62439-3)
0x8902Connectivity Fault Management英語版 (CFM), Ethernet OAM英語版 (IEEE 802.1ag, ITU-T Y.1731)
0x8906FCoE
0x8914FCoE 初期化プロトコル (FIP)
0x8915RDMA over Converged Ethernet英語版 (RoCE)
0x891DTTEthernet英語版 (TTE) 制御フレーム
0x892FHigh-availability Seamless Redundancy英語版 (HSR, IEC 62439-3)
0x9000DIX仕様の試験用フレーム (Ethernet Configuration Testing Protocol英語版)[16]
0x9100Q-in-Q VLAN (非標準の実装)
閉じる

関連項目

脚注

外部リンク

Related Articles

Wikiwand AI