网络协议分析与仿真课程设计报告
网络流量分析
一、课程设计目的
加深对IP、DSN 、TCP、UDP、HTTP等协议的理解;
掌握流量分析工具的使用,学习基本的流量分析方法。
二、课程设计内容
流量分析
工具:Wireshark(Windows或Linux),tcpdump(Linux)
要求:使用过滤器捕获特定分组;用脚本分析大量流量数据(建议用perl)。
内容:Web流量分析
清除本机DNS缓存,访问某一网站主页,捕获访问过程中的所有分组,分析并回答下列问题(以下除1、3、8、11外,要求配合截图回答):
清除本机dns缓存:
(1)简述访问web页面的过程。
输入网址,然后按回车,浏览器连接dns服务器,查找你输入的域名对应的ip地址,查到ip地址以后,浏览器连接该ip地址的80端口,发送查询网页请求,web服务器收到查询请求,发送被查询网页给请求浏览器,一次访问完成.
(2)找出DNS解析请求、应答相关分组,传输层使用了何种协议,端口号是多少?
所请求域名的IP地址是什么?
首先访问
然后使用过滤器捕获特定分组。过滤显示DNS协议的分组:
第三个包的详细信息:(DNS解析请求的分组)
传输层使用的协议是UDP,源端口为:1025,目的端口为:53
DNS服务器的ip地址为202.117.128.2,本地ip地址为:192.168.1.118 第四个包的详细信息:(DNS解析应答的分组)
传输层使用的协议是UDP,源端口为:53,目的端口为:1025
在应答分组中,DNS服务器给出了所请求的域名ip地址为:119.75.217.109 即为的ip地址。
(3)统计访问该页面共有多少请求IP分组,多少响应IP分组?(提示:用脚本编程实现)
(4)找到TCP连接建立的三次握手过程,并结合数据,绘出TCP连接建立的完整过程,注明每个TCP报文段的序号、确认号、以及SYN\ACK的设置。
Tcp建立连接的过程如下图所示:
第一次握手:(源端口ip地址:192.168.1.129,目标端口ip地址:119.75.217.109)
源端口:1042目标端口:80 syn=1,fin=null,seq=0,ack=null,没有携带数据。
第二次握手:(源端口ip地址:119.75.217.109,目标端口ip地址: 192.168.1.129)
第三次握手:(源端口ip地址:192.168.1.129,目标端口ip地址:119.75.217.109)
源端口:1042目标端口:80 syn=null,fin=null,seq=1,ack=1,没有携带数据。
(5)针对(4)中的TCP连接,该TCP连接的四元组是什么?双方协商的起始序号是什么?TCP连接建立的过程中,第三次握手是否带有数据?是否消耗了一个序号?
四元组:源ip地址:192.168.1.129 目的ip地址:119.75.217.109
源端口:1042 目的端口:80
双方协商的SEQ为0,第三次握手没有携带数据,消耗了一个序列号。
(6)找到TCP连接的释放过程,绘出TCP连接释放的完整过程,注明每个TCP报文段的序号、确认号、以及FIN\ACK的设置。
第一次挥手:
Seq=6811,ack=971,FIN=1,ACK=1; 第二次挥手:
Seq=971,ack=6812,FIN=0,ACK=1; 第三次挥手:
Seq=1445,ack=615,FIN=1,ACK=1; 第四次挥手:
Seq=615,ack=1446,FIN=0,ACK=1;
(7)针对(6)中的TCP连接释放,请问释放请求由服务器还是客户发起?FIN报文段是否携带数据,是否消耗一个序号?FIN报文段的序号是什么?为什么是这个
值?
答:释放请求是由服务器主动发起。FIN报文段携带数据,消耗一个序号。FIN报文段的序号是6811和1445,因为FIN的序号是等于它前面已经传过的数据的最后一个字节的序号加1。
(8)在该TCP连接的数据传输过程中,找出每一个ACK报文段与相应数据报文段的对应关系,计算这些数据报文段的往返时延RTT(即RTT样本值)。根据课本200
页5.6.2节内容,给每一个数据报文段估算超时时间RTO。(提示:用脚本编程
实现)
(9)分别找出一个HTTP请求和响应分组,分析其报文格式。参照课本243页图6-12,在截图中标明各个字段。
http请求报文:
http响应报文:
(10)访问同一网站的不同网页,本次访问中的TCP连接是否和上次访问相同?(与上次页面访问时间间隔不能过长,可连续访问,分别分析。)
以上是两个端口号都为2547的包,说明两次连接采用的是连续连接。
(11)请描述HTTP协议的持续连接的两种工作方式。访问这些页面(同一网站的不同页面)的过程中,采用了哪种方式?(参考课本241页)
HTTP协议的持续连接的两种工作方式有非流水线方式和流水线方式.
非流水线方式:客户在收到钱一个响应后才能放出下一个请求
。这比非持续性连接的两倍rtt的开销节省建立tcp连接所需的一个rtt时间。但服务器在发完成一个对象后,其tcp连接处于空闲状态,浪费的服务器资源。
流水线方式:客户在收到HTTP响应报文之前就能够接着发送新的请求报文。一个接一个的请求报文到达服务器后,服务器就可连续发回响应报文。使用流水线发式时,客户访问所有的对象只需要话费一个rtt时间使tcp连接中的空闲时间减少,提高下在文档效率。、
访问这些页面采用的是流水线方式.
三、设计与实现过程
针对以上的所有问题,一一给出详细的回答,必须配有相关截图,必要时需在截图上框示相关数据。要求有绘图的地方,必须有手绘图。
四、设计技巧及体会
通过本次实验,我对Wireshark有了深刻的了解,学会了使用Wireshark抓包,捕获ip数据报,对计算机网络知识有了更深刻的理解,这次实验加深了我对IP、DSN 、TCP、UDP、HTTP等协议的理解,同时动手能力也得到了提高,总的来说从这次实验学到了很多知识,获益匪浅。