memoryboxes blog

Been here so long got to calling it home.

再谈以太网帧格式

| Comments

又重新读了一遍《tcp/ip详解》,又重温了一遍万年知识以太网,为了不能忘却的回忆,我决定原文摘抄一遍。

以太网这个术语是指DEC、Intel和Xerox公司在1982年联合公布的一个标准。它是当今TCP/IP采用的主要局域网技术。 几年后,IEEE802委员会公布了一个稍有不同的标准集,其中802.3针对整个CSMA/CD网络,802.4针对令牌总线网络, 802.5针对令牌环网络,这三者的共同特性由802.2标准来定义,那就是802网络共有的逻辑链路控制(LLC)。不幸的 是,802.3定义了一个与以太网不同的帧格式。

下图定义了两种不同形式的封装格式:

802.3

在以太网帧格式中,类型字段之后就是数据,而在802帧格式中,跟随在后面的3字节的802.2LLC和5字节的802.2SNAP。

目的服务访问(DSAP)和源服务访问点(SSAP)的值都设为0xaa。ctrl字段的值设为3.随后的3个字节org code都设置为0。

再接下来的2个字节类型字段和以以太网帧格式一样。

CRC字段用于帧内后续字节差错的循环冗余码检验。

802.3标准定义的帧和以太网的帧都有最小长度要求。802.3规定数据部分必须至少为38字节,而对于以太网,则要求最少要有46字节。为了保证这一点,必须在不足的空间插入填充字节。

最后注意一下,mtu的大小只是指帧内容的大小,不包括帧头。所以mtu是1500时,QinQ又额外的四个字节,加上帧头共1522个字节,会丢包,最小要把mtu设置为1504。

Comments