通过本次实验,掌握使用Wireshark抓取TCP/IP协议数据包的技能,能够深入分析TCP帧格式及“TCP三次握手”。通过抓包和分析数据包来理解TCP/IP协议,进一步提高理论联系实践的能力。
1.本次实验重点:利用Wireshark抓TCP包及TCP包的分析。
2.本次实验难点:分析抓到的TCP包。
3.本次实验环境:Windows 7,Wireshark。
4.本次实验内容:
TCP协议是在计算机网络中使用最广泛的协议,很多的应用服务如FTP,HTTP,SMTP等在传输层都采用TCP协议,因此,如果要抓取TCP协议的数据包,可以在抓取相应的网络服务的数据包后,分析TCP协议数据包,深入理解协议封装,协议控制过程以及数据承载过程。两幅图分别是TCP帧格式及TCP三次握手。
1. TCP包抓取及分析过程如下:
第一步,确定使用的协议,使用HTTP服务。选择http://www.sina.com.cn/作为目标地址。
第二步,启动抓包:点击【start】开始抓包,在浏览器地址栏输入http://www.sina.com.cn。
第三步,通过显示过滤器得到先关数据包:通过抓包获得大量的数据包,为了对数据包分析的方便,需要使用过滤器,添加本机IP地址和TCP协议过滤条件。
(1)打开命令提示符,通过ipconfig /all来查看本机IP地址。
(2)在工具栏上的Filter对话框中填入过滤条件:tcp and ip.addr==196.168.100.131,过滤结果如下:
结果发现效果不是很好,于是将过滤条件中的IP地址更换为http://www.sina.com.cn的IP地址,操作过程如下:
(1)打开命令提示符,通过ping www.sina.com.cn来查看目标IP地址。
(2)打开命在工具栏上的Filter对话框中填入过滤条件:tcp and ip.addr==218.30.66.248,过滤结果如下:
其中,红色框内即为一个三次握手过程:
第四步,分析TCP数据包,根据第一幅图中的数据帧格式,分析TCP包的各部分。
URG(Urgent Pointer Field Significant):紧急指针标志,用来保证TCP连接不被中断,并且督促中间设备尽快处理这些数据,图中其值为1。
ACK(Acknowledgement Field Signigicant):确认号字段,该字段为1时表示应答字段有效,即TCP应答号将包含在TCP报文中,图中其值为1。
PSH(Push Function): 推送功能,所谓推送功能指的是接收端在接收到数据后立即推送给应用程序,而不是在缓冲区中排队,图中其值为0。
RST(Reset the connection): 重置连接,不过一搬表示断开一个连接,图中其值为0。
SYN(Synchronize sequence numbers):同步序列号,用来发起一个连接请求,图中其值为1。
FIN(No more data from sender)表示发送端发送任务已经完成(既断开连接)。
2. TCP三次握手:
第一次握手数据包:客户端发送一个TCP,标志位为SYN,序列号为0, 代表客户端请求建立连接,如下图所示(第一条):
第二次握手的数据包:服务器发回确认包, 标志位为 SYN,ACK. 将确认序号(Acknowledgement Number)设置为客户的I S N加1以.即0+1=1,如下图所示(第二条):
第三次握手的数据包:客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.并且把服务器发来ACK的序号字段+1,放在确定字段中发送给对方。在进过三次握手后和服务器建立了TCP连接,如下图所示(第三条):