1、以太网(IEEE 802.3)帧格式

图 1.1
图1.1所示的为整个以太网帧格式,实际上以太网帧的最大长度为1518字节,其中以太网数据帧的帧头为14字节,以太网封装时会在尾部加上4字节帧校验序列(FCS);因为在物理层上网卡要去掉前导码和帧起始定位符做CRC校验,因此抓包只能抓到以太网的数据帧和帧头。
wireshark通常抓到的为加入FCS前的发送帧和剥离FCS的接收帧。以太网数据帧最小46字节,去掉IP头部和TCP头部各20字节,还需要6字节,因此出现6字节填充情况;图1.2是在192.168.102.54主机上的抓包的结果,可以看到FIN报文的有的为54字节,有的为60字节。(不同网卡结果可能不同):

图 1.2
原因:发送帧是由于wireshark抓到的为操作系统6字节填充之前的帧,所以最小为54字节;接收帧是对方操作系统已经进行6字节填充后发送过来的,所以最小为60字节。
2、IPv4报文格式

图 2.1
图2.1所示的为IPv4报文格式,头部大小可变,4位的首部长度字段被限定为15个32位字(60字节)。一个典型的IPv4头部包含20字节(没有选项)。首部校验和有助于确保头部字段被正确发送到目的地,但不保护数据内容。在此着重解释一下有关IP重组的字段:
16位标识:用来表示同一数据报的分片;
13位片偏移:用来表示每个分片在其原始数据的偏移,该偏移以8字节为单位;
3位标志:用来表示是否有更多分片,具体每位表示如图2.2所示:

图 2.2
3、IPv6报文格式

图 3.1
图3.1所示的为IPv6报文格式,基本报文头部大小固定(40字节),并包含128位(16字节)源地址和目的地址。通信量等级类似于IPv4报文中的服务类型(TOS),跳限制类似于IPv4报文中的生存时间(TTL),流标签用来标记报文中的数据流类型。
下一个头部字段用于说明IPv6头部之后其他扩展头部的存在和类型,它们形成一条包括特殊扩展或处理指令的头部链,应用数据跟在这条头部链之后。IPv6头部长度是IPv4典型头部的两倍,但没有任何选项。它可以有扩展头部,可提供类似的功能。IPv6下一报头字段值可能表示扩展头部或其他协议头部,在适当的情况下,它与IPv4的协议字段使用相同值;图3.2列出了下一个报头字段的可能取值。

图 3.2
本文详细解析了以太网帧格式及其最大长度、IPv4与IPv6报文格式,介绍了帧校验序列、IPv4报文重组字段及IPv6报文头部字段等内容。
3850

被折叠的 条评论
为什么被折叠?



