以太网封装及vlan封装类型

以下是各种封装:

 

  1. 以太网II封装:

以太网技术的基础是以太网帧,也作标准以太网帧,也称为ARPA,即以太网II帧(最初的以太网II标准也称为DIX,由Digital,Intel和Xerox三家发起公司的首字母拼合而成)。帧格式如下:

 

图1:以太网II报文格式

 

下面解释以太网II帧中的各个字段:

·        Preamble—也作“Syncword”,用来同步。(在这里为10101010)

·        Des-MAC—此目的地址可以是广播地址0xFFFFFFFFFFFF;可以是基于目的节点MAC地址的特定的48比特的单播地址;或者多播地址。此MAC地址可以从协议同步期间消息的源地址字段中找到。

·        Sou-MAC—此源地址是发送方的48比特的MAC地址。

·        Type—即“以太网类型”,此字段用于识别上层协议。(详见下文)

·        Payload—负载,即数据,包含了封装的数据(如:IP分组)。以太网II的数据有效长度范围是46~1500字节。

·        FCS—此字段包含32比特的循环冗余校验(Cyclic Redundancy Check,CRC)值,用来校验损坏的帧。

 

最初的以太网II帧格式有一些缺陷。为了允许冲突检测,10Mbits/s以太网要求分组大小最小为64字节。这就意味着如果帧长达不到标准就必须用0来填充短帧。因此,上层协议需要包含一个“长度”字段来将实际数据与填充值区分开来。

幸运的是,为“以太网类型”字段所分配的值—0x0600XNS(施乐)、0x0800IP(Internet协议)和0x6003DECNET—总是大于十进制值1500(0x05DC)这一最大帧长度。所以IEEE的802委员会对这一任务的解决方案提供了一个标准,即802.3。此方法通过以长度两个8位组的“类型/协议”字段代替同样两个8位组的“以太网类型”字段。从而将以太网II帧与802.3帧区分开来。具体如下:

·        如果此字段值大于十进制值1500,则此字段表示以太网类型,且是类型II。

·        如果此字段值小于等于十进制值1500,则此字段表示长度,且是802.3。(相见2. IEEE 802.3 LLC封装中的描述)

 

  1. IEEE 802.3 LLC封装:

由于在改进了以太网II帧后仍然需要一个新的分组来表示类型以识别上层协议,因此在802.3的基础帧中的“长度”字段后面又紧跟了一个逻辑链路控制首部(Logical Link Control,LLC,遵循IEEE 802.2)。帧格式如下:

 

下面解释IEEE 802.3 LLC帧中的各个字段:

·        Preamble—同以太网II帧。(此为10101011)

·        Des-MAC—同以太网II帧。

·        Sou-MAC—同以太网II帧。

·        Len—即“长度”字段,此处为以太网II帧中“以太网类型”字段的替换,表示帧的长度,但是不包括前同步码(Preamble)、FCS、目的和源MAC地址以及长度字段本身等字段。

·        DSAP—(Destination Service Access Point,目标服务接入点)字节,8位比特。当此值为0xAA时,表示子网访问协议(Subnetwork AccessProtocol,SNAP)。

·        SSAP—(Source Service Access Point,来源服务接入点)字节,8位比特。当此值为0xAA时,表示子网访问协议(Subnetwork AccessProtocol,SNAP)。

·        CTRL—“控制”字段,指定了LLC帧的类型。

·        Payload—同以太网II帧。802.3LLC的数据有效长度范围是43~1497字节。

·        FCS—同以太网II帧。值须重新计算。

 

  1. IEEE 802.3 SNAP封装:

继承了802.3LLC的帧格式,并且添加了SNAP字段。

 

下面解释IEEE 802.3 SNAP帧中的各个字段:

·        Preamble—同802.3LLC帧。

·        Des-MAC—同802.3LLC帧。

·        Sou-MAC—同802.3LLC帧。

·        Len—同802.3LLC帧。

·        DSAP—在此值为0xAA,表示SNAP。

·        SSAP—在此值为0xAA。

·        CTRL—同802.3LLC帧。

·        SNAP—即“子网访问协议(Subnetwork Access Protocol)”,SNAP首部包括3个字节的厂商代码和2个字节的本地代码。厂商代码为0x000000时表示本地代码是一个以太网类型II以便能向后兼容。这种新格式将“以太网类型”字段从它在以太网II中的原始位置向右移动的8个字节。

·        Payload—同802.3LLC帧。802.3SNAP的数据有效长度范围是38~1492字节。

·        FCS—同802.3LLC帧。值须重新计算。

 

  1. IEEE 802.1Q封装:

802.1Q 的首部并非实际封入原始帧中,而是以太网II帧里,在原始帧里的MAC源地址字段与“以太网类型”字段之间添加一个32位元的域(field)。

 

下面解释IEEE 802.1Q帧中的各个字段:

·        Preamble—同以太网II帧。

·        Des-MAC—同以太网II帧。

·        Sou-MAC—同以太网II帧。

·        802.1Q Header—表示了这是一个VLAN的帧,保存了VLAN的信息。(详见下文)

·        Type—同以太网II帧。

·        Payload—同以太网II帧。数据有效长度范围是46~1500字节。

·        FCS—同以太网II帧。值须重新计算。

 

其中的802.1Q头部封装遵守如下格式:

 

 

·        TPID—标签协议识别符(Tag Protocal Identifier, TPID):一组16位元的域,用来识别802.1Q帧,其数值被设定在0x8100以用来辨别某个IEEE 802.1Q的帧为已被标签头部,因为这个域所被标定位置与以太网类型II帧中的“以太网类型”字段在未标签帧的域相同,这是为了用来区别未标签的帧。

·        TCI—标签控制信息(Tag Control Information,TCI):长度为2字节,包含有PCP、CFI和VID3个字段。

·        PCP—优先权代码点(Priority Code Point, PCP):以一组3位元的域当作IEEE802.1P优先权的参考,从0(最低)到7(最高),用来对数据流(音讯、影像、档案等等)作传输的优先级,也被称为“服务等级(Class of Service,CoS)”。

·        CFI—标准格式标识符(Canonical Format Indicator, CFI):1位元的域。若这个域的值为1,则MAC地指为非标准格式;若为0,则为标准格式;在以太交换器中它通常默认为0。在乙太和令牌环中,CFI用来解决两者的兼容性问题。若帧在以太端中接收数据,则CFI的值必须设为1,且这个端口不能与未标签的其他端口桥接。

·        VID—虚拟局域网识别符(VLAN Identifier, VID): 12位元的域,用来具体指出帧是属于哪个特定VLAN的。值为0时,表示帧不属于任何一个VLAN;此时,802.1Q标签仅代表优先权。12位元的值0xFFF为保留值,其他的值都可用来做为总共4094个VLAN的标识符。在桥接器上,VLAN1在管理上作为保留值。

 

  1. IEEE 802.1AD封装:

双重标记(IEEE 802.1AD),也叫作QinQ,对于互联网服务提供商(ISP)是非常有用的。它允许已被打上VLAN标签的混合数据从客户端送出时ISP仍然可以在内部使用VLAN。

 

下面解释IEEE 802.1AD帧中的各个字段:

·        Preamble—同以太网II帧。

·        Des-MAC—同以太网II帧。

·        Sou-MAC—同以太网II帧。

·        802.1Q OuterTag—外部标签(next toSource MAC and representing ISP VLAN)会先于内部标签(inner)被解封装。此时,一个可变的TPID在16进位值可能为9100、9200或是9300,通常作为外部标签;然而在值为88a8时会违反802.1AD而无法作为外部标签。

·        802.1Q InnerTag—内部标签,格式同IEEE 802.1Q头部。

·        Type—同以太网II帧。

·        Payload—同以太网II帧。数据有效长度范围是46~1500字节。

·        FCS—同以太网II帧。值须重新计算。

 

你可能感兴趣的:(以太网封装及vlan封装类型)