标签归档:TCPIP

以太网帧结构

帧结构图:

clip_image002

前同步码和帧开始定界符:一个帧以7个字节的前导码和1个字节的帧开始符作为帧的开始。在线路上帧的这部分的位模式是10101010 10101010 10101010 10101010 10101010 10101010 10101010 10101011。

MAC 目的地址:第三个字段是6字节(MAC地址占48位,如:FF,FF,FF,FF,FF),发送方的网卡(MAC)地址,用处是当网卡接收到一个数据帧时,首先会检查该帧的目的地址,是否与当前适配器的物理地址相同,如果相同则会进一步处理,不同则直接丢弃。

源MAC地址:发送端的MAC地址同样占6个字节。

类型:该字段在网络协议栈分解中及其重要,考虑当PDU(协议数据单元)来到某一层时,它需要将PDU交付给上层,而上层协议众多,所以在处理数据的时候,必须要一个字段标识我这个交付给谁。如,该字段为0x0800时,表示将有效载荷交付给IP协议,为0x0806交付给ARP,0X8035交付给RARP。

数据:数据也叫有效载荷,除过当前层协议需要使用的字段外,即需要交付给上层的数据,以太网帧数据长度规定最小为46字节,最大为1500字节,如果有不到46字节时,会用填充字节填充到最小长度。最大值也叫最大传输单元(MTU)。

帧检验序列FCS(使用CRC校验法):检测该帧是否出现差错。抓包时无法看到4字节校验值。

以太网规定以太网帧数据域部分最小为64字节(6字节目的MAC地址+6字节源MAC地址+2字节协议类型+最小46字节数据+4字节CRC校验),CRC校验抓包时无法看到。数据字段长度小于46字节时,MAC子层会在数据字段的后面填充以满足数据帧长度不小于64字节。由于填充数据由MAC子层负责,不同的抓包软件抓到的数据帧大小可能不同,比如一个TCP的ACK确认帧,有的抓包软件显示是54字节,有的显示是60字节。显示60字节的后面有填充数据段。