北邮大三-Intenet技术-实验四-周俊雯.doc
文本预览下载声明
实验四实验报告
实验名称 分析典型P2P软件的工作过程 实验目的 1、利用逆向工程的方法,分析典型的P2P软件的基本工作过程 实验完成人 周俊霞 实验日期 2014-05-22 实验环境 windows7系统//和虚拟机的windows XP系统
通过校园网与Internet连接
使用wireshark进行抓包,使用P2P软件迅雷 实验步骤与结果分析 使用ipconfig查询本机IP
2、将查毒软件等可能需要联网程序都关闭,使之不干扰抓包过程
启动迅雷下载并启动wireshark进行抓包
P2P的启动阶段
用123查:我们查看一下与主机IP互动消息频繁的IP是哪家机子
迅雷的服务器
可以看到主机频繁与另一台机子通信,也同时和迅雷的服务器通信:
这台主机在山西,是联通ADSL;
即是主机下载的资源来源处;
后来,又发现一个IP:
经查看,也是迅雷的服务器;
由此可以看出,在下载开始的时候,下载主机频繁与多个服务器进行DNS解析。经过查询,知道了这些服务器就是迅雷的服务器。
当本机发出下载请求时,首先访问迅雷的索引服务器,询问拥有此资源的可供用户下载资源的点。索引服务器搜索用户所要下载的资源的拥有者的信息列表,并将信息返回给用户。
用户收到列表后,会尝试去连接其中的资源,如果请求都失败则会再次向迅雷的索引服务器发出请求。当请求成功时,则开始下载。
(2)P2P的传输阶段
通过TCP协议和ACK标示可知在下载资源时通过TCP端口和资源提供者进行三次握手的过程。
通过不同的seq和Ack号可以看出本机在下载这个任务时与资源提供者进行请求连接和下载资源。
本主机从不同的提供资源的主机接收数据包。P2P软件下载资源通常是使用UDP协议的,因为UDP是无连接的,传输速度比较快,下载的该资源是从多个机器获取的。但是我这次貌似是TCP居多。
分析:主机建立一个资源的下载任务后,向迅雷服务器发送资源名请求服务器返回给本主机多个资源主机的信息,主机通过三次握手协议连接资源提供者下载任务,并实时监控资源提供者的信息选择最优的进行下载,同时也作为资源提供者供其他连接到迅雷服务器的下载本机资源。
P2P的释放过程
下载完成时,根据FIN和ACK标示可知本机下载完成后同资源提供者采用三次握手释放资源。
关于TCP建立连接和释放连接的补充说明:
TCP头部: 其中 ACK SYN 序号 这三个部分在以下会用到,它们的介绍也在下面。
暂时需要的信息有:
ACK : TCP协议规定,只有ACK=1时有效,也规定连接建立后所有发送的报文的ACK必须为1
SYN(SYNchronization) : 在连接建立时用来同步序号。当SYN=1而ACK=0时,表明这是一个连接请求报文。对方若同意建立连接,则应在响应报文中使SYN=1和ACK=1. 因此, SYN置1就表示这是一个连接请求或连接接受报文。
FIN (finis)即完,终结的意思, 用来释放一个连接。当 FIN = 1 时,表明此报文段的发送方的数据已经发送完毕,并要求释放连接。
三次握手的过程:
首先由Client发出请求连接即 SYN=1 ACK=0 (请看头字段的介绍), TCP规定SYN=1时不能携带数据,但要消耗一个序号,因此声明自己的序号是 seq=x
然后 Server 进行回复确认,即 SYN=1 ACK=1 seq=y, ack=x+1,
再然后 Client 再进行一次确认,但不用SYN 了,这时即为 ACK=1, seq=x+1, ack=y+1.
然后连接建立,为什么要进行三次握手呢(两次确认)。
下面是释放连接的过程:
当客户A 没有东西要发送时就要释放 A 这边的连接,A会发送一个报文(没有数据),其中 FIN 设置为1, 服务器B收到后会给应用程序一个信,这时A那边的连接已经关闭,即A不再发送信息(但仍可接收信息)。 A收到B的确认后进入等待状态,等待B请求释放连接, B数据发送完成后就向A请求连接释放,也是用FIN=1 表示, 并且用 ack = u+1(如图), A收到后回复一个确认信息,并进入 TIME_WAIT 状态, 等待 2MSL 时间。
为什么要等待呢?
为了这种情况: B向A发送 FIN = 1 的释放连接请求,但这个报文丢失了, A没有接到不会发送确认信息, B 超时会重传,这时A在 WAIT_TIME 还能够接收到这个请求,这时再回复一个确认就行了。(A收到 FIN = 1 的请求后 WAIT_TIME会重新记时)
分析与思考 1、迅雷工作过程分析
P2P是
显示全部