以太网传输数据格式

EThernetII格式:


前同步码:



这个字段有7个字节(56位)交替出现的0和1,它的作用就是提醒接收系统有帧的到来,以及使到来的帧与计时器进行同步。前同步码其实是在物理层添加上去的,并不是(正式的)帧的一部分。前同步码的目标是允许物理层在接收到实际的帧起始符之前检测载波,并且与接收到的帧时序达到稳定同步。

帧起始定界符:



这个字段用1字节(10101011)作为帧开始的信号,表示一帧的开始。最后两位是11,表示下面的字段是目的地址。

目的地址:



目的地址(DA) 48位,表示帧准备发往目的站的地址,共6个字节,可以是单址(代表单个站)、多址(代表一组站)或全地址(代表局域网上的所有站)。

当目的地址出现多址时,表示该帧被一组站同时接收,称为“组播”(Multicast)。目的地址出现全地址时,表示该帧被局域网上所有站同时接收,称为“广播”(Broadcast),通常以DA的最高位来判断地址的类型,若第一字节最低位为“0”则表示单址,第一字节最低位为“1”则表示组播。
源地址:


源地址(SA)48位,表明该帧的数据是哪个网卡发的,即发送端的网卡地址。
类型:


该字段用于标识数据字段中包含的高层协议,也就是说,该字段告诉接收设备如何解释数据字段。例如:0X0800代表为IP,0X0806代表为ARP。
数据字段:


数据字段的最小长度必须为46字节以保证帧长至少为64字节,这意味着传输一字节信息也必须使用46字节的数据字段:如果填入该字段的信息少于46字节,该字段的其余部分也必须进行填充。数据字段的默认最大长度为1500字节。
帧校验序列( FCS ):

帧检验序列(FCS)是32位冗余检验码(CRC),检验除前导、SFD和FCS以外的内容。当发送站发出帧时,一边发送,一边逐位进行CRC检验。最后形成一个32位CRC检验和填在帧尾FCS位置中一起在媒体上传输。接收站接收后,从DA开始同样边接收边逐位进行CRC检验。最后接收站形成的检验和若与帧的检验和相同,则表示媒体上传输帧未被破坏。反之,接收站认为帧被破坏,则会通过一定的机制要求发送站重发该帧。
Ethernet实际解码:





你可能感兴趣的:(C/C++程序)