- 以太网报文
- ARP报文
- IP报文
- UDP报文
- TCP报文
- ICMP报文
以太网报文
- DMAC,6字节,目的MAC地址,IPV4为6字节,该字段确定帧的接收者。可以是一个单播MAC地址,或组播MAC地址或者广播MAC地址。
- SMAC,6字节,源MAC地址,IPV4为6字节,该字段标识发送帧的工作站。只能是一个单播MAC地址。
- Type,2字节,用来表示荷载数据的类型。例如:该字段值如果是0x0800,则表示荷载数据是一个IPv4 Packet ,0x86dd是IPv6 Packet,0x0806是ARP Packet,0x8848是MPLS报文等。
- Data,变长,数据字段的最小长度必须为46字节以保证帧长至少为64字节,这意味着传输一字节信息也必须使用46字节的数据字段。如果填入该字段的信息少于46字节,该字段的其余部分也必须进行填充。数据字段的最大长度为1500字节。
- CRC,4字节,用于帧内后续字节差错的循环冗余检验(也称为FCS或帧检验序列)
注意:CRC在wireshark中无显示,若CRC错误,可能在网卡层或传入内核时被丢弃
ARP报文
- 目的MAC地址,请求报文为ff-ff-ff-ff-ff-ff,应答报文为请求端的MAC地址。
- 源MAC地址,请求报文为请求端的MAC地址,应答报文为被请求的MAC地址。
- 类型,长度为2个字节,取值为0x0806。
- 硬件类型,长度为2个字节。表示网络类型;以太网取值为1。
- 协议类型,长度为2个字节。表示协议地址类型;取值为0x0800即表示根据IP地址来进行映射。
- hln,硬件地址长度,长度为1个字节。表示硬件地址的长度;以太网中取值为6,表示MAC地址长度为6个字节。
- pln,协议地址长度,长度为1个字节。表示协议地址长度;取值为4表示IP地址长度为4个字节。
- op,请求报文的长度为2个字节,表示ARP报文的种类;取值为1表示是ARP请求报文。应答报文的长度也为2个字节,+ 表示ARP报文种类;取值为2表示是ARP应答报文。
- 发送端的MAC地址,请求报文为请求端的MAC地址;应答报文为被请求端的MAC地址。
- 发送端的IP地址,请求报文为请求端的IP地址;应答报文为被请求端的IP地址。
- 目的端MAC地址,请求端发出该请求时,还不知道该MAC地址。接收方忽略该字段。应答报文为请求端的MAC地址。
- 目的端IP地址,请求端希望映射的IP地址,也就是被请求端的IP地址。应答报文为请求端的IP地址。
IP报文
版本,长度为4bit,表示IP报文版本信息。该字段值为0x4,表示是IPv4报文,该字段值为0x6,表示是IPv6报文。
包头部长度,长度为4bit,用来表示IP包的头部长度。如果不带Option字段,则为20,最长为60,“包头部长度”字段的值×4=包头部的字节数。
DS域, 长度为8bit,只有在有QoS差分服务要求时这个字段才起作用,用来区分报文的转发优先级。
总长度,长度为16bit,整个IP数据报的长度,包括首部和数据之和,单位为字节,最长65535,总长度必须不超过最大传输单元MTU。
标识,长度为3bit,用于IP报文的分片和重组。主机每发一个报文,加1,分片重组时会用到该字段。
标志,长度为3bit,用于IP报文的分片和重组Bit 0: 保留位,必须为0 Bit 1: DF(Don’t Fragment),能否分片位,0表示可以分片,1表示不能分片 Bit 2: MF(More Fragment),表示是否该报文为最后一片,0表示最后一片,1代表后面还有
分段位移,长度为13bit,用于IP报文的分片和重组。分片重组时会用到该字段。表示较长的分组在分片后,某片在原分组中的相对位置。以8个字节为偏移单位。
存活时间,TTL,长度为8bit,可经过的最多路由数,即数据包在网络中可通过的路由器数的最大值,每过一个路由器TTL值减1,用它的值结合ping命令可以判断对方主机操作系统。
协议,长度8bit,。指出此数据包携带的数据使用何种协议,以便目的主机的IP层将数据部分上交给哪个进程处理。
0x01: ICMP, Internet Control Message 0x02: IGMP, Internet Group Management 0x06: TCP Transmission Control Protocol 0x11: UDP User Datagram Protocol
头部校验和,长度为16bit,用来对IP报文的头部进行差错校验。只检验数据包的首部,不检验数据部分。这里不采用CRC检验码,而采用简单的计算方法。
源IP地址,长度为32bit,表示产生并发送该IP报文的设备接口的IP地址。
目的IP地址,长度为32bit,表示该IP报文的目的接口的IP地址。
选项/长度填充,选项字段长度可变,从1字节到40字节不等,取决于所选项的功能。填充字段全为0。