先来看看IP协议头部:
image.png
字段说明:
- Version(版本号):标识IP协议的版本,目前V4版本地址已经枯竭,V6慢慢成为主流。
- Header Length(头部长度):默认为20字节,最大为60字节,就是整个头部的长度。
- Differentiated Services Field (DSCP服务区分符):用于为不同的IP数据包定义不同的服务质量,一般应用在QoS技术中。(就是着急发送还是不着急,要和路由器上的区分服务一同配,比如买票如果有教师优先窗口,那么如果一个包拿着教师资格证他就可以先买票,如果没有这个窗口,那么它有教师资格证,或者说它说他着急转发也没有用)
- Total Length (总长度):标识IP头部加上上层数据的数据包大小,IP包总长度最大为65535个字节。
- Identification (标识符):用来实现IP分片的重组,标识分片属于哪个进程,不同进程通过不同ID区分。
- Flags(标志符):用来确认是否还有IP分片或是否能执行分片。
- Fragment offset (分片偏移量):用于标识IP分片的位置,实现IP分片的重组。
- Time to live (生存时间):标识IP数据包还能生存多久,根据操作系统不同,TTL默认值不同,每经过一个三层设备如路由器的处理,则TTL减去1,当TTL=0时,则此数据包被丢弃。(如果没有的话,一个永远无法到达目的地的包就会一直在网上被转发)
- Protocol (协议号):标识IP协议上层应用。当上层协议为ICMP时,协议号为1,TCP协议号为6,UDP的协议号为17。
- Header checksum (头部校验):用于检验IP数据包是否完整或被修改,若校验失败则丢弃数据包。
- Source(源IP地址):标识发送者IP地址,占用32bit(4字节)。
- Destination (目的IP地址):标识接收者IP地址,占用32bit。
抓包
随便抓了一个包:
image.png
在数据链路层就决定了拆包用IPv4协议:
image.png
这是IP协议头部的全部内容:
image.png
版本为version 4:
image.png
首部长度20字节:
image.png
没有区分服务,也就是如果排队了这个包会正常排队,不会优先转发它:
image.png
数据包总的长度是40:
image.png
当前的标识符是17132:
image.png
所以如果找到他的下一个包,他的标识符应该是17133:
image.png
再看分片,片的偏移量是0,所以他没有分片:
image.png
TTL是128,也就是说如果在网络中由路由器转发超过128次,这个包还没到达就会丢失:
image.png
上层协议是TCP:
image.png
首部还未校验:
image.png
剩下的就是源IP地址和目标IP地址:
image.png
网友评论