一、 课程设计目的
加深对IP、DSN 、TCP、UDP、HTTP等协议的理解;
掌握流量分析工具的使用,学习基本的流量分析方法。
二、 课程设计内容
工具:Wireshark(Windows或Linux),tcpdump(Linux)
要求:使用过滤器捕获特定分组;用脚本分析大量流量数据(建议用perl)。
内容:Web流量分析
三、 设计与实现过程
清除本机DNS缓存:
(1)简述访问web页面的过程。
1)解析Web页面的URL,得到Web服务器的域名
2) 通过DNS服务器获得Web服务器的IP地址
3)与Web服务器建立TCP连接
4)与Web服务器建立HTTP连接
5)从Web服务器获得URL指定的文档
6)浏览器解释页面文档,并显示在屏幕
(2)找出DNS解析请求、应答相关分组,传输层使用了何种协议,端口号是多少?所请求域名的IP地址是什么?
答:请求域名:www.docin.com IP:211.147.220.163
请求、应答相关分组在传输层均使用了UDP协议,端口号为:53
请求分组:本地端口:63788;DNS服务器端口:53
应答分组:本地端口:64808;DNS服务器端口:53
(3)统计访问该页面共有多少请求IP分组,多少响应IP分组?(提示:用脚本编程实现)
应用“ip.dst223.202.25.15&&tcp.dstport443”过滤规则,对包进行过滤,然后点击菜单栏–“statics”–“summary”选项,可以看到过滤后显示的包的各项统计数据。
应用“ip.src192.168.200.156&&tcp.srcport61257”过滤规则,对包进行过滤,然后点击菜单栏–“statics”–“summary”选项,可以看到过滤后显示的包的各项统计数据。
(4)找到TCP连接建立的三次握手过程,并结合数据,绘出TCP连接建立的完整过程,注明每个TCP报文段的序号、确认号、以及SYN\ACK的设置。
TCP建立连接的三次握手分组:
第一次握手:建立连接时,客户端发送syn包给服务器,并进入SYN_SEND状态,等待服务器确认;
序号:seq=0 确认号:ack=0
第二次握手:服务器收到客户端的syn包后,立即回应一个ack包,并自己也发送一个SYN包,即SYN+ACK包,此时服务器进入SYN_RECV状态;
序号:seq=0 确认号:ack=1
第三次握手:客户端收到服务器的SYN+ACK包后,即向服务器发送ACK包,此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手.
序号:seq=0 确认号:ack=0
(5)针对(4)中的TCP连接,该TCP连接的四元组是什么?双方协商的起始序号是什么?TCP连接建立的过程中,第三次握手是否带有数据?是否消耗了一个序号?
答:源IP:192.168.200.26 源的端口:61248
目的IP:220.181.112.244 目的端口:443
双方协商的起始序号:0
第三次不携带数据,消耗序号。
(6)找到TCP连接的释放过程,绘出TCP连接释放的完整过程,注明每个TCP报文段的序号、确认号、以及FIN\ACK的设置。
第一次挥手 FIN=1 seq=1 ack=1
第二次挥手 ACK=1 seq=1 ack=2
第三次挥手 FIN=1 ACK=1 seq=1 ack=2
第四次挥手 ACK=1 seq=2 ack=2
(7)针对(6)中的TCP连接释放,请问释放请求由服务器还是客户发起?FIN报文段是否携带数据,是否消耗一个序号?FIN报文段的序号是什么?为什么是这个值?
答:释放是由客户发起的;FIN报文段不携带数据,消耗序号
FIN报文段的序号是:1
此报文前的一个报文的确认号为:ack=1,确认号是期望对方下一个报文段的第一个数据字节的序号。即它等于前面已经传送过的数据的最后一个字节的序号加1。
(8)在该TCP连接的数据传输过程中,找出每一个(客户)发送的报文段与其ACK报文段的对应关系,计算这些数据报文段的往返时延RTT(即RTT样本值)。根据课本200页5.6.2节内容,给每一个数据报文段估算超时时间RTO。(提示:用脚本编程实现 )
报文段的往返时间RTT(Round-Trip Time)
新的RTTs =(1-a)(旧的RTTs)+ a(新的RTT样本值)
新的RTTD = (1-b)(旧的RTTD) + b|RTTs – 新的RTT样本|
超时重传时间RTO = RTTs + 4 * RTTD;
(9)分别找出一个HTTP请求和响应分组,分析其报文格式。参照课本243页图6-12,在截图中标明各个字段。
请求报文:
请求方法:GET;请求URI:/gchatpic_new/;协议版本:HTTP/1.1;
主机名Host: 125.39.213.25\r\n;连接状态Connection: keep-alive\r\n;
响应报文:
状态行[Expert Info (Chat/Sequence): HTTP/1.1 200 OK\r\n];
协议版本:HTTP/1.1;
(10)访问同一网站的不同网页,本次访问中的TCP连接是否和上次访问相同?(与上次页面访问时间间隔不能过长,可连续访问,分别分析。)
答:HTTP采用了HTTP/1.1协议,使用了持续连接,所谓的持续连接就是万维服务器在发送响应后仍然在一段时间内保持这条连接,是同一客户和该服务器可以继续在这条连接上传送后续的HTTP请求报文和响应报文,所以访问中的TCP连接是相同的。
(11)请描述HTTP协议的持续连接的两种工作方式。访问这些页面(同一网站的不同页面)的过程中,采用了哪种方式?(参考课本241页)
答:HTTP/1.1协议的持续连接有两种工作方式,即非流水线方式(without pipelining)和流水线方式(with pipelining)
非流水线方式的特点,是客户端在收到前一个响应后才能发出下一个请求。
流水线方式的特点,是客户端在收到HTTP的响应报文之前就能够接着发送新的值来请求报文。于是一个接一个的请求报文到达服务器后,服务器就可连续发回响应报文。流水线工作方式使TCP连接中的空闲时间减少。
网络协议分析课程设计报告
最新推荐文章于 2024-08-10 14:36:41 发布