实验环境:
1.系统环境:Windows8.0系统 2.Wireshark 1.11.0
3.浏览器:搜狗浏览5.0.10.14122 4.WinPcap 4.1.3 实验步骤:
1.使用wireshark抓包
点start开始,在浏览器打开淘宝网页。
2.抓包完成后对所抓包进行文件设置,设置成TCP only
分析原理:
网络模型主要有两种,即OSI的七层模型和TCP/IP协议簇的四层模型。由于TCP/IP协议簇是互联网上的事实的标准协议,故本文按TCP/IP的体系结构讲述。但为了把原理描述清楚,将网络接口层分为数据链路层和物理层来讲。 如下图
wireshark与对应的OSI七层模型
运输层
从下图可以看到wireshark捕获到的TCP包中的每个字段
TCP:(TCP是面向连接的通信协议,通过三次握手建立连接,通讯完成时要拆除连接,由于TCP 是面向连接的所以只能用于点对点的通讯)源IP地址:发送包的IP地址;目的IP地址:接收包的IP地址;源端口:源系统上的连接的端口;目的端口:目的系统上的连接的端口。TCP是因特网中的传输层协议,使用三次握手协议建立连接。当主动方发出SYN连接请求后,等待对方回答SYN,ACK。这种建立连接的方法可以防止产生错误的连接,TCP使用的流量控制协议是可变大小的滑动窗口协议。第一次握手:建立连接时,客户端发送SYN包(SEQ=x)到服务器,并
进入SYN_SEND状态,等待服务器确认。第二次握手:服务器收到SYN包,必须确认客户的SYN(ACK=x+1),同时自己也送一个SYN包(SEQ=y),即SYN+ACK包,此时服务器进入SYN_RECV状态。第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ACK=y+1),此包发送完毕,客户端和服务器进入Established状态,完成三次握手。
TCP三次握手实例
报文分析:
wireshark所抓的一个含有http请求报文的帧:
图中可以看到wireshark截获到了三次握手的三个数据包。第四个包才是HTTP的, 这说明HTTP的确是使用TCP建立连接的。 帧的解释:链路层的信息上是以帧的形式进行传输的,帧封装了应用层、传输层、网络层的数据。而wireshark抓到的就是链路层的一帧。
Frame: 物理层的数据帧概况
Ethernet II: 数据链路层以太网帧头部信息
Internet Protocol Version 4: 互联网层IP包头部信息
Transmission Control Protocol: 传输层T的数据段头部信息,此处是TCP
Hypertext Transfer Protocol: 应用层的信息,此处是HTTP协议
第一行:帧Frame 4指的是要发送的数据块序号是4;其中,捕获字节等于传输的字节数(176bytes)
第二行:以太网,是数据链路层;源MAC地址是:20:1a:06:3b:b6:e4,目标MAC地址是:74:25:8a:11:88:df. 第三行:IPV4,源IP地址:10.22.200.118,目标IP地址:123.129.208.77 第四行:协议类型:TCP;源端51287(51287),目的端口:http(80),序列号:每发送一个数据包,序列号就加1;ACK是TCP数据包首部的确认标志,对已接收的TCP报文进行确认,其为1,表示确认号有效;长度为122字节。 第五行:HTTP协议,属应用层。
接口:0
封装类型:以太网
到达时间:2014年11月24,10:17:15.25852000 这个包的时间变化:0.000000000 秒
信息出现时间:14167935.258582000 秒 与之前捕获的数据帧时间差:0.010242000 秒 与之前的帧显示时间差:0.010242000 秒
距参考帧或第一帧的时间差:0.030806000 秒 帧编号:4
帧长度:176字节 捕获长度:176字节 帧标记:无 帧被忽略:无
协议帧:eth(以太网)、IP、TCP、HTTP 每个协议的数据数量:1 HTTP 协议,关键字,0 色彩规则名称:HTTP
色彩规则字符串:HTTP 或 TCP的接口 80 或 HTTP2
以太网ⅠⅠ,源MAC地址是:20:1a:06:3b:b6:e4,目标MAC地址:74:25:8a:11:88:df
目标MAC地址:74:25:8a:11:88:df LG位:全局唯一地址(默认出厂设置) IG位:个人地址(单播)
源MAC地址是:20:1a:06:3b:b6:e4 LG位:全局唯一地址(默认出厂设置) IG位:个人地址(单播) 类型:IP(0x0800)
IPV4,源IP地址:10.22.200.118,目标IP地址:123.129.208.77 版本号:IPV4
头部数据长度:20字节
区分的服务领域:0x00(默认的是0x00) 总长:162
不支持分组,分组偏移量为0 生存时间: 协议:TCP(6)
头校验和:0x1081[接收正确] 源IP地址:10.22.200.118 目标IP地址:123.129.208.77 基于IP查询的源地址:不知道 基于IP查询的目的地址:不知道
目标端口号:http(80) 流指数:0
TCP段长度:122 序列号:1
下一个序列号:123 确认号:1
头长度:20字节 标志:0x018 保留:不设置 非重复值:不设置
TCP_CA_CWR 状态:不设置 显式拥塞通知:不设置 紧急指针:不设置 确认号有效:设置
接收方应尽快将这个报文交给应用层:设置重建连接:不设置
同步序号发起一个连接:不设置 发端完成发送任务关闭连接:不设置 窗口大小初始值:256
计算出的窗口大小:65536 窗口大小缩放因子:256 校验和:0x5357[确认残疾] 好的校验和:错误 差的校验和:错误 紧急指针:0 SEQ/ACK 分析 飞行字节:122
方法字段 / / URL字段 /http协议的版本
该报文请求的时一个对象,该对象是一个程序 严重程度:一般 组: 序号
请求方法:GET 请求URL:
请求版本:http/1.0 主机: 接收: 满请求URL:http请求 1/1 帧回应:6
实验总结:对于包的分析,其每一层是和TCP/IP协议簇的四层模型一一对应的,分析抓到的包不仅可以得到其源地址,目的地址,还能得到包里面的数据,这次分析,使用我跟深入了解了TCP协议的工作方式,也了解了每层参考模型的工作原理。让我把课本上的理论运用到了实践当中,感觉收获很大。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务