EtherType

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

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

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

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

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

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

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

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

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

 タグVLAN 

IEEE 802.1QによるVLANタグ(Qタグ)では、EtherType値として0x8100を使用するIEEE 802.1Q-2022, Clause 9.4 TPID formats。このような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ヘッダと組み合わせてヘッダを使うことがあり、この中でプロトコルIDとしてEtherTypeを使う。イーサネット以外のIEEE 802規格や、FDDIなどのネットワーク規格で用いる。なお、イーサネットでは現在LLCヘッダはほとんど使われずEthernet II書式が使われている。

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

 例 

以下に主なプロトコルのEtherType値を示す。これは全てのEtherType値を網羅したものではない。
+ プロトコルのEtherType値 EtherType  プロトコル 0x0800  IPv4 0x0806  ARP 0x0842  Wake-on-LAN 0x22F3   0x22EA   0x6003  DECnet フェーズIV 0x8035  RARP 0x809B  AppleTalk (Ethertalk) 0x80F3  AppleTalk 用 ARP (AARP) 0x8100  タグVLAN (IEEE 802.1Q) / Shortest Path Bridging (NNI互換用, IEEE 802.1aq) 0x8137  IPX 0x8204  QNX Qnet 0x86DD  IPv6 0x8808  MAC制御フレーム (PAUSEフレームなど) 0x8809  スロープロトコル (リンクアグリゲーションなど) 0x8819   0x8847  MPLSユニキャスト 0x8848  MPLSマルチキャスト 0x8863  PPPoE Discovery Stage 0x8864  PPPoE Session Stage 0x886D  Intel 拡張機能 0x8870  ジャンボフレーム（draft-ietf-isis-ext-eth-01として提案されたが廃止） 0x887B  HomePlug 1.0 MME 0x888E  EAPoL (EAP over LAN, IEEE 802.1X) 0x8892   0x889A   (SCSI over Ethernet) 0x88A2  ATA over Ethernet 0x88A4  EtherCAT 0x88A8  Q-in-Q VLAN (IEEE 802.1ad) / Shortest Path Bridging (IEEE 802.1aq) 0x88B8  GOOSE (Generic Object Oriented Substation event) 0x88B9  GSE (Generic Substation Events) Management Services 0x88BA  SV (Sampled Value Transmission, ) 0x88CC  LLDP (IEEE 802.1AB) 0x88CD   0x88DC  WAVE Short Message Protocol (WSMP, IEEE 802.11p) 0x88E3   (IEC 62439-2) 0x88E5  MACsec (IEEE 802.1AE) 0x88E7  Provider Backbone Bridges (PBB, ) 0x88F7  PTP over Ethernet (IEEE 1588) 0x88F8   0x88FB   (PRP, IEC 62439-3) 0x8902   (CFM),  (IEEE 802.1ag, ITU-T Y.1731) 0x8906  FCoE 0x8914  FCoE 初期化プロトコル (FIP) 0x8915   (RoCE) 0x891D   (TTE) 制御フレーム 0x892F   (HSR, IEC 62439-3) 0x9000  DIX仕様の試験用フレーム () 0x9100  Q-in-Q VLAN (非標準の実装)

 関連項目 
ポート番号

 脚注 

 外部リンク 
IEEE Registration Authority Tutorials
IEEE EtherType Registration Authority

Category:イーサネット