先来看看IP协议头部:
![](https://img.haomeiwen.com/i14394806/491c2e6eca987976.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。
抓包
随便抓了一个包:
![](https://img.haomeiwen.com/i14394806/a0f01e8f54f0013e.png)
在数据链路层就决定了拆包用IPv4协议:
![](https://img.haomeiwen.com/i14394806/7cac849c65880478.png)
这是IP协议头部的全部内容:
![](https://img.haomeiwen.com/i14394806/1f5eff76bacfe20b.png)
版本为version 4:
![](https://img.haomeiwen.com/i14394806/6746bd17acc90a5d.png)
首部长度20字节:
![](https://img.haomeiwen.com/i14394806/584b784dcf848f68.png)
没有区分服务,也就是如果排队了这个包会正常排队,不会优先转发它:
![](https://img.haomeiwen.com/i14394806/2c7296c10ee3a9a2.png)
数据包总的长度是40:
![](https://img.haomeiwen.com/i14394806/0b24d8b0ebccde5f.png)
当前的标识符是17132:
![](https://img.haomeiwen.com/i14394806/1c1595f9e9fbc307.png)
所以如果找到他的下一个包,他的标识符应该是17133:
![](https://img.haomeiwen.com/i14394806/02c488a9991cd612.png)
再看分片,片的偏移量是0,所以他没有分片:
![](https://img.haomeiwen.com/i14394806/3f5b09a0d90d6b4d.png)
TTL是128,也就是说如果在网络中由路由器转发超过128次,这个包还没到达就会丢失:
![](https://img.haomeiwen.com/i14394806/c63dd1ce7718161b.png)
上层协议是TCP:
![](https://img.haomeiwen.com/i14394806/bf640e7f92ad912c.png)
首部还未校验:
![](https://img.haomeiwen.com/i14394806/6c09cd7f3e616564.png)
剩下的就是源IP地址和目标IP地址:
![](https://img.haomeiwen.com/i14394806/ce7b282d2160e0fe.png)
网友评论