EtherType
EtherType is a two-octet field in an Ethernet frame. It is used to indicate which protocol is encapsulated in the payload of an Ethernet Frame. The same field is also used to indicate the size of some Ethernet frames. EtherType was first defined by the Ethernet II framing standard, and later adapted for the IEEE 802.3 standard.
Overview
In modern implementations of Ethernet, the field within the Ethernet frame used to describe the EtherType also can be used to represent the size of the payload of the Ethernet Frame. Historically, depending on the type of Ethernet framing that was in use on an Ethernet segment, both interpretations were simultaneously valid, leading to potential ambiguity. Ethernet v2 framing considered these octets to represent EtherType while the original IEEE 802.3 framing considered these octets to represent the size of the payload in bytes.
In order to allow packets using Ethernet v2 framing and packets using the IEEE 802.3 framing to be used on the same Ethernet segment, a unifying standard (IEEE 802.3x-1997) was introduced that required that EtherType values be greater than or equal to 1536 (0x0600). That value was chosen because the maximum length (MTU) of the data field of an Ethernet 802.3 frame is 1500 bytes. Thus, values of 1500 and below for this field indicate that the field is used as the size of the payload of the Ethernet Frame while values of 1536 and above indicate that the field is used to represent EtherType. The interpretation of values 1501–1535, inclusive, is undefined.[1]
Jumbo frames
The size of the payload of non-standard jumbo frames, typically ~9000 Bytes long, falls within the range used by EtherType, creating a conflict. The proposition to resolve this conflict was to substitute the special EtherType 0x8870 when a length would otherwise be used.[2] However, the proposition was not accepted and it is defunct. The chair of IEEE 802.3 at the time, Geoff Thompson, responded to the draft outlining IEEE 802.3's official position and the reasons behind the position.[3] The draft authors also responded to the chair's letter, but no subsequent answer from the IEEE 802.3 has been recorded.[4] Currently, the value used for Ethertype in jumbo frames is not clear. The IEEE Registration Authority lists all the Ethertype values registered, and no reference to jumbo frames is found in the list.[5]
VLAN tagging
|
|
This section provides insufficient context for those unfamiliar with the subject. Please help improve the article with a good introductory style. (December 2015) (Learn how and when to remove this template message) |
With 802.1Q VLAN tagging and QinQ the sparse 16-bit EtherType is being completely used. The 16-bit EtherType not only tags the payload class, it also serves to help end any VLAN tagging or QinQ stacking. Via look-ahead peeking in streams, the 16-bit EtherType can help to confirm or package a QinQ 32+32+16=80-bit header between the 48-bit MAC addresses and the payload. Of those 80-bits only 32-bits are used for dynamic information. For a full 66-bit addressing system, 18 bits are needed beyond the MAC. Thus, additional EtherType values are required and used for Triple Tagging QinQinQ.
Inefficient and conservative use of a 16-bit Tag Protocol Identifier (TPID) on each four octets VLAN tag, followed by the trailing lone 16-bits creates a 48-bit signature that cannot easily be mistaken as part of the payload. Vendor implementations may avoid wasting bandwidth sending those 48-bits in proprietary link compression schemes. The EtherType usually does not contain any CRC or FCS information.
Examples
| EtherType | Protocol |
|---|---|
| 0x0800 | Internet Protocol version 4 (IPv4) |
| 0x0806 | Address Resolution Protocol (ARP) |
| 0x0842 | Wake-on-LAN[7] |
| 0x22F3 | IETF TRILL Protocol |
| 0x6003 | DECnet Phase IV |
| 0x8035 | Reverse Address Resolution Protocol |
| 0x809B | AppleTalk (Ethertalk) |
| 0x80F3 | AppleTalk Address Resolution Protocol (AARP) |
| 0x8100 | VLAN-tagged frame (IEEE 802.1Q) and Shortest Path Bridging IEEE 802.1aq[8] |
| 0x8137 | IPX |
| 0x8204 | QNX Qnet |
| 0x86DD | Internet Protocol Version 6 (IPv6) |
| 0x8808 | Ethernet flow control |
| 0x8819 | CobraNet |
| 0x8847 | MPLS unicast |
| 0x8848 | MPLS multicast |
| 0x8863 | PPPoE Discovery Stage |
| 0x8864 | PPPoE Session Stage |
| 0x8870 | Jumbo Frames (proposed)[2][3] |
| 0x887B | HomePlug 1.0 MME |
| 0x888E | EAP over LAN (IEEE 802.1X) |
| 0x8892 | PROFINET Protocol |
| 0x889A | HyperSCSI (SCSI over Ethernet) |
| 0x88A2 | ATA over Ethernet |
| 0x88A4 | EtherCAT Protocol |
| 0x88A8 | Provider Bridging (IEEE 802.1ad) & Shortest Path Bridging IEEE 802.1aq[9] |
| 0x88AB | Ethernet Powerlink[citation needed] |
| 0x88CC | Link Layer Discovery Protocol (LLDP) |
| 0x88CD | SERCOS III |
| 0x88E1 | HomePlug AV MME[citation needed] |
| 0x88E3 | Media Redundancy Protocol (IEC62439-2) |
| 0x88E5 | MAC security (IEEE 802.1AE) |
| 0x88E7 | Provider Backbone Bridges (PBB) (IEEE 802.1ah) |
| 0x88F7 | Precision Time Protocol (PTP) over Ethernet (IEEE 1588) |
| 0x88FB | Parallel Redundancy Protocol (PRP) |
| 0x8902 | IEEE 802.1ag Connectivity Fault Management (CFM) Protocol / ITU-T Recommendation Y.1731 (OAM) |
| 0x8906 | Fibre Channel over Ethernet (FCoE) |
| 0x8914 | FCoE Initialization Protocol |
| 0x8915 | RDMA over Converged Ethernet (RoCE) |
| 0x891D | TTEthernet Protocol Control Frame (TTE) |
| 0x892F | High-availability Seamless Redundancy (HSR) |
| 0x9000 | Ethernet Configuration Testing Protocol[10] |
Not all well known de facto uses of EtherTypes are always recorded in the IEEE list of EtherType values.[11] For example, EtherType 0x0806 (used by ARP) appears in the IEEE list only as "Symbolics, Inc., Protocol unavailable."[11] However, the IEEE Registration Authority lists all the accepted EtherTypes, including the 0x0806.[5]
https://en.wikipedia.org/wiki/EtherType
EtherType的更多相关文章
- EtherType :以太网类型字段及值
Ethernet II即DIX 2.0:Xerox与DEC.Intel在1982年制定的以太网标准帧格式.Cisco名称为:ARPA Ethernet II类型以太网帧的最小长度为64字节(6+6+2 ...
- Neutron 理解 (6): Neutron 是怎么实现虚拟三层网络的 [How Neutron implements virtual L3 network]
学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...
- Neutron 理解 (7): Neutron 是如何实现负载均衡器虚拟化的 [LBaaS V1 in Juno]
学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...
- Neutron 理解 (8): Neutron 是如何实现虚机防火墙的 [How Neutron Implements Security Group]
学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...
- 理解 OpenStack 高可用(HA)(3):Neutron 分布式虚拟路由(Neutron Distributed Virtual Routing)
本系列会分析OpenStack 的高可用性(HA)概念和解决方案: (1)OpenStack 高可用方案概述 (2)Neutron L3 Agent HA - VRRP (虚拟路由冗余协议) (3)N ...
- 理解 OpenStack 高可用(HA)(2):Neutron L3 Agent HA 之 虚拟路由冗余协议(VRRP)
本系列会分析OpenStack 的高可用性(HA)概念和解决方案: (1)OpenStack 高可用方案概述 (2)Neutron L3 Agent HA - VRRP (虚拟路由冗余协议) (3)N ...
- Netruon 理解(11):使用 NAT 将 Linux network namespace 连接外网
学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...
- Windows下底层数据包发送实战
1.简介 所谓“底层数据包”指的是在“运行”于数据链路层的数据包,简单的说就是“以太网帧”,而我们常用的Socket只能发送“运行”在传输层的TCP.UDP等包,这些传输层数据包已经能满足绝大部分需求 ...
- SpirentTestcenter测试仪的自动化
SpirentTestcenter,美国思博伦公司的网络测试仪表,覆盖以太网L2~L7层,使用过的仪表中功能最强大的. 1.SpirentTestcenter的自动化测试场景 测试PC上的AT框架-- ...
随机推荐
- dom事件与event对象总结
1 事件:就是文档或浏览器窗口中发生的一些特定的交互瞬间. tips:js和xhtml的交互是通过当用户或浏览器操作网页时发生的事件来处理的. 1.1 事件流:即事件的顺序. 事件 ...
- 数据表格datagrid内容整理
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- 读IT小小鸟有感
第一次阅读<我是一只IT小小鸟>是在老师的推荐下的,我是一名软工大一新生,那天在课堂上听到了这本书,由于是10年前的老书,要找到它非常不易,终于在网上看到一些部分电子档. ...
- Java泛型学习笔记 - (二)泛型类
1. 我们先写一个没有泛型的类Box: public class Box { private Object obj; public Box() {} public Object getObj() { ...
- people have been arrested under other offences instead.
Homosexuality is not explicitly banned in Egypt but gay people have been arrested under other offenc ...
- 如何修复Outlook 2007源文件.PST及性能优化补丁
kb961752 微软发布了改善 Outlook 2007 个人数据文件性能的补丁,该补丁未来将会集成于 SP2 中,但是现在对于SP1用户可以提前得到它. 获取地址: http://suppor ...
- window下安装pip工具,再利用pip安装工具来安装其他的python包
1.在安装pip前,请确认你window系统中已经安装好了python,和easy_install工具,如果系统安装成功,easy_install在目录C:\Python27\Scripts 下面,如 ...
- 视频控件VideoView的简单使用
一.在布局文件中放置VideoView控件 二.在Activity中获取到该控件后,通过给该控件设置视频控制器(setMediaController(new MediaController(this) ...
- Material Design使用记录
出现过的问题记录: 1.Crash on Android 6.0 in RippleView.draw() 解决方法: This has very simple solution. Just down ...
- Hadoop中如何查看文件的block size
因为对控制文件的分片数目,进而控制文件的map个数非常感兴趣,因此有查找如下资料的需求.下面来看看我总结的吧:) 当向HDFS上写文件时,可以通过设置dfs.blocksize配置项来设置文件的blo ...