Ethernet帧结构

TCP/IP支持多种不同的链路层协议,这取决于网络所使用的硬件,如Ethernet,令牌环网,FDDI(Fiber Distributed Data Interface,光纤分布式数据接口)等。基于不同的硬件的网络使用不同形式的帧结构,Ethernet是当今应用最广泛的局域网技术。

Ethernet V2.0的帧结构:

前导码 帧前定界符 目的地址DA 源地址SA 类型字段 数据字段 帧校验字段
7B 1B 6B 6B 2B 46~1500B 4B

1.前导码和帧前定界符字段
前导码由56位(7B)的101010...1010比特序列组成,帧前定界符由一个8位的字节组成,其比特序列为10101011。
如果将前导码与帧前定界符一起看,那么在62位101010...1010比特序列之后出现11。在这个11之后便是Ethernet帧的目的地址字段。从Ethernet物理层角度看,接收电路从开始接收比特到进入稳定状态,需要一定的时间。设计前62位1和0的交替比特序列的目的是保证接收电路在帧的目的地址到来之前到达正常状态。接收端在收到最后两位11时,标志在他之后应该是帧的目的地址。前导码与帧前定界符主要起到接收同步的作用,这8个字节接收后不需要保留,也不计入帧头长度。
2.目的地址和源地址
目的地址与源地址分别表示帧的接收节点与发送节点的硬件地址。硬件地址一般称作MAC地址,物理地址或Ethernet地址。地址长度为6B(即48位)。为了方便起见,通常使用十六进制数字书写。
Ethernet帧的目的地址可分为3种:
单播地址(unicast address):目的地址的第一位为0表示单播地址。目的地址是单播地址,则表示该帧只被与目的地址相同的节点所接收。
多播地址(multicast address):目的地址第一位为1表示多播地址。目的地址是多播地址,则表示该帧被一组节点所接收。
广播地址(broadcast address):目的地址全为1表示广播地址。目的地址是广播地址,则表示该帧被所有所有节点接收。
3.类型字段
类型字段表示的是网络层使用的协议类型。常见的协议类型:0800表示网络层使用IP协议,0806表示网络层使用ARP协议,8137表示网络层使用Novell IPX协议,809b表示网络层使用Apple Talk协议。
4.数据字段
IEEE 802.3协议规定数据的长度在46~1500B之间。如果数据的长度少于46B,需要加填充字节,补充到46B。填充字节是任意的,不计入长度字段中。帧头部分长度为18B,包括6B的目的地址字段,6B的源地址字段,2B的类型字段和4B的帧校验和字段,而前导码与帧前界定符不计入帧头长度中,那么,Ehternet帧的最小长度为64B(46B+18B),最大长度为1518B(1500B+18B)。设置最小帧长度的一个目的是使每个接收节点能够有足够的时间检测到冲突。
5.帧校验字段
帧校验字段FCS采用CRC校验。校验的范围包括目的地址字段,源地址字段,类型字段,数据字段。在接收端进行校验,如果发生错误,帧将被丢弃。
32位CRC校验的生成多项式为:
G(x)=x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x1+1

原文地址:https://www.cnblogs.com/TerryLiang/p/1447817.html