wireshark抓取分析IP

一.介绍IP协议报文及意义
IP协议提供不可靠连接的数据传输服务,IP层提供的服务是通过IP层对数据报的封装与拆封来实现的。IP数据报的格式分为报头区与数据区两大部分,其中报头区是为了正确传输高层数据而加的各种控制信息,数据区包括高层协议需要传输的数据。
(一)IP数据报的格式如下

最高位在左边,总共记为31位。在网络中传输数据时,先传输07位,其次是815位,依上图显示分段传输。由于TCP/IP协议头部中所有的二进制在网络中传输时都要求以这种顺序进行,因此把他称为网络字节顺序。在实际编程中,以其他形式存储的二进制必须在传输数据前使用网络编码API相应的函数把头部转换成网络字节顺序。
(二)IP数据报各字段的含义如下
1.版本号:占用4位二进制,表示该IP数据报使用的IP协议版本。目前Internet中使用的主要是TCP/IP协议族中的版本为4的IP协议。
2.头长度:占用4位二进制位,此域指出整个报头的长度(包括选项),该长度是以32位二进制位一个计数单位的,接收端通过此域可以计算出报头在何处结束及何处开始读取数据。普通IP数据报(没有任何选项)该字段的值是5(即20个字节的长度)。
3.服务类型(TOS、type of service):占用8位二进制位,用于规定本数据报的处理方式。服务类型字段的8位分成了5个子域:

(1)优先权(0-7)数越大,表示该数据报的优先权越高。网络中路由器可以使用优先权进行拥塞控制,如当网络发生拥塞时可以根据数据报的优先权来决定数据报的取舍。
(2)短延迟位D(Delay):该位置1时,数据报请求以短延迟信道传输,0表示正常延时。
(3)高吞吐量位(Throughput):该位置1时,数据报请求以高吞吐量信道传输,0表示普通。
(4)高可靠位R(Reliability):该位置1时,数据报请求以高可靠性通道传输,0表示普通。
(5)保留位。
目前在Internet中使用的TCP/IP协议大多情况下网路并未对TOS进行处理,但在实际编程时,有专门的函数来设置该字段的各域。一些重要的网络应用协议中都设置了建议使用的TOS值:

从上表我们可以看出,对于与用户直接交互的应用,一般使用短延时;对于有大量数据需要进行传输的应用,一般选用高吞吐量;对于数据报要传输控制信息的应用,一般选用高可靠性。在数据报的生存期内不支持TOS的,TOS字段就设置为0x00。
4.总长度:占用16位二进制位,总长度字段是指整个IP数据报的长度(报头区+数据区),以字节为单位。利用头部长度字段和总长度字段就可以计算出IP数据报中数据内容的起始位置和长度。由于该字段长度为16位二进制数,因此理论上IP数据报最长可达65536个字节(事实上受物理网络的限制,要比这个数值小很多)
5.生存时间(TTL,time to live):占用8位二进制位,它指定了数据报可以在网络中传输的最长时间。实际应用中把生存时间字段设置成了数据报可以经过的最大路由器数。TTL的初始值由源主机设置(通常为32、64、128或256),一旦经过一个处理它的路由器,它的值就减1。当该字段为0时,数据报就丢弃,并发送ICMP报文通知源主机,因此可以防止进入一个循环回路时,数据报无休止地传输下去。
6.上层协议标识:占用8位二进制位,IP协议可以承载各种上层协议,目标端根据协议标识就可以把收到的IP数据报送到TCP或UDP等处理此报文的上层协议了。
常用网际协议编号:

7.校验和:占用16位二进制数,用于协议头数据有效性的校验,可以保证IP报头区在传输时的正确性和完整性。头部检验和字段是根据IP协议头计算出的检验和,它不对头部后面的数据进行计算。
原理:发送端首先将检验和字段置0,然后对头部中每16位二进制数进行反码求和的运算,并将结果存在校验和字段中。 由于接收方在计算过程中包含了发送方放在头部的校验和,因此,如果头部在传输过程中没有发生任何差错,那么接收方计算的结果应该是全1。
8.源地址:占用32位二进制数,表示发送端IP地址。
9.目的地址:占用32位二进制数,表述目的端IP地址。
二.抓取IP包的操作
第一步:确定使用的协议,使用Https服务,选择https://www.baidu.com/作为目标网页
第二步:启动抓包,使用的版本是Wireshark3.0.1版,选择当前使用的网络(流量起起伏伏的接口),使用过滤器输入IP

第三步,通过显示过滤器得到相关数据包,为了对数据包分析的方便,需要使用过滤器添加本机IP地址和IP协议过滤条件。
通过控制面板找到相关信息

填入过滤条件ip后捕获,双击一条TCP报文进入详细信息,不选Protocal类型为IP是因为没有,IP协议是TCP协议底下的协议。

三.分析IP数据包
IP数据报各字段的含义如下:
1.版本号: 版本号为4
2.首部长度: 头部长度20bytes
3.服务类型:
0x00对应DNS TCP查询,各方面均为普通特性
4.总长度: IP 包的总长度40字节
标识字段表示主机总共发送了52157份报文
唯一标志
保留位
1表示不能被分割
更多分片,0表示这是若干个数据包中的最后一个分片
碎片偏移量
5.生存时间(TTL): 最多经过128个路由
此包内封装的上层协议为 TCP
7.校验和: 将61 db置为00 00
4500+0028+cbbd+4000+8006+0000+c0a8+0103+246e+e71d=39e21
将将进位3加到9e21上0003+9e21=9e24取反码61db,计算原始
4500+0028+cbbd+4000+8006+61db+c0a8+0103+246e+e71d=3fffc
0003+fffc=ffff取反码后为0,表示该过程没有发生任何差错
8.源地址:
9.目的IP地址:

发布了37 篇原创文章 · 获赞 0 · 访问量 727

猜你喜欢

转载自blog.csdn.net/weixin_43704007/article/details/104511006