802.3?以太网?看完你就懂了
关注、星标公众号,不错过精彩内容
上一篇文章《以太网数据包结构》讲解了以太网数据包结构,其中牵扯到了802.3,以太网数据包等名词,本文将详解讲解一下这方面的内容。
在TCP/IP世界中,以太网IP数据报的封装是在RFC894中定义的,IEEE802网络的IP数据报封装是在RFC1042中定义的。最常使用的封装格式是RFC 894定义的格式。下图显示了两种不同形式的封装格式。
从上图看到,两种帧格式都采用48bit(6字节)的目的地址和源地址。
接下来的2个字节在两种帧格式中互不相同。
在802标准定义的帧格式中,长度字段是指它后续数据的字节长度,但不包括CRC检验码。
以太网的类型字段定义了后续数据的类型。而在802标准定义的帧格式中,类型字段则由后续的子网接入协议的首部给出。
幸运的是,802定义的有效长度值与以太网的有效类型值无一相同,这样,就可以对两种帧格式进行区分。
长度/类型有两个意义,小于1518,代表后面字段的长度(也就是IEEE802.2/802.3(RFC1042)),大于1518,代表不同的类型(以太网的封装格式(RFC894))
0800 指IP数据类型
0806 指ARP协议,通过IP地址获得对应的MAC地址,称为地址解析协议
8035 指RARP协议,通过MAC地址来获得对应的IP地址,称为逆向地址解析协议
在以太网帧格式中,类型字段之后就是数据。而在802帧格式中,后面是3字节的802.2LLC,它是由目的服务访问点(DestinationService Access Point,DSAP)、源服务访问点(SourceService Access Point,SSAP)和Ctrl字段组成,DSAP和SSAP默认值是0xaa,Ctrl默认是3。再接下来的2个字节类型字段和以太网帧格式一样。
802.3标准定义的帧和以太网的帧都有最小长度要求。802.3规定数据部分必须至少为38字节,而对于以太网,则要求最少要有46字节。为了保证这一点,必须在不足的空间插入填充(pad)字节。
下面只讲最常用的以太网的封装格式(RFC894)
特别说明:上面的目的地址和源地址是MAC,不是IP!!!!
MAC地址解析
MAC地址前3个字节:组织身份标记 后3个字节:组织自行分配
第1个字节
b0:0表示单播,1表示组播
b1:0表示被某个组织使用,1表示个人使用
例子:
02-00-00-00-00-01:本地分配
00-50-C2-xx-xx-xx:ST的MAC地址
01-00-5E-xx-xx-xx:IPv4的多播地址
FF-FF-FF-FF-FF-FF:广播地址
上文说到,以太网和802.3对数据帧的长度都有一个限制,其最大值分别是1500和1492字节。链路层的这个特性称作MTU,最大传输单元。不同类型的网络大多数都有一个上限。如果IP层有一个数据包要传,而且数据的长度比链路层的MTU还大,那么IP层就需要进行分片,把数据包分成若干片,这样每一片都小于MTU,IP分片的问题会在讲解IP协议的时候讲解。下图列出了一些典型的MTU值。
我们将用netstat命令打印出网络接口的MTU。
- i参数将打印出接口信息,- n参数则打印出IP地址,而不是主机名字。
这个命令打印出每个接口的MTU、输入分组数、输入错误、输出分组数、输出错误、冲突以及当前的输出队列长度。