欢迎来到天天文库
浏览记录
ID:11670885
大小:1.18 MB
页数:14页
时间:2018-07-13
《网络协议分析课程设计-流量分析报告模板-http》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、西安邮电大学(计算机学院)网络协议分析课程设计报告题目:HTTP流量分析专业名称:网络工程班级:网络1201学生姓名:惠朋博学号(8位):04122009指导教师:孙韩林设计起止时间:2014年12月15日—2014年12月19日网络协议分析与仿真课程设计报告网络流量分析一、 课程设计目的l加深对IP、DSN、TCP、UDP、HTTP等协议的理解;l掌握流量分析工具的使用,学习基本的流量分析方法。二、 课程设计内容l流量分析Ø工具:Wireshark(Windows或Linux),tcpdump(Linux)Ø要求:使用过滤器捕获特定分组;用脚本分析大量流量数据(建议
2、用perl)。Ø内容:Web流量分析清除本机DNS缓存,访问某一网页(如:http://www1.freep.cn/),捕获访问过程中的所有分组,分析并回答下列问题(以下除1、3、8、11外,要求配合截图回答):(1)简述访问web页面的过程.解析Web页面的URL,得到Web服务器的域名通过DNS服务器获得Web服务器的IP地址从Web服务器获得URL指定的文档获得PC机的IP地址与Web服务器建立HTTP连接与访问路由器建立数据链路浏览器解释页面文档,并显示在屏幕通过电话网拨号与访问路由器建立物理连接与Web服务器建立TCP连接(2)找出DNS解析请求、应答相关分组,传输层使
3、用了何种协议,端口号是多少?所请求域名的IP地址是什么?请求、应答相关分组分组:(本人访问的是www.baidu.com)请求:端口:本机端口(49325)DNS服务器端口(53)应答:端口:本机端口(49325)DNS服务器端口(53)(1)统计访问该页面共有多少请求IP分组,多少响应IP分组?(提示:用脚本编程实现)将抓的包保存到一个请求文件src.txt里,响应的包放在一个响应文件dst.txt,然后在linux编写脚本来统计请求ip分组,和响应ip分组。请求:响应:如下图所示,请求ip分组:40响应ip分组:341)2)(1)找到TCP连接建立的三次握手过程,并结合数据,
4、绘出TCP连接建立的完整过程,注明每个TCP报文段的序号、确认号、以及SYNACK的设置第一次握手:序号:seq=0;无确认号;ACK=0(notset);SYN=1;第二次握手:序号:seq=1;确认号:ack=0;ACK=1;SYN=1第三次握手:序号:seq=1;确认号:ack=1;ACK=1;SYN=0(notset);(1)针对(4)中的TCP连接,该TCP连接的四元组是什么?双方协商的起始序号是什么?TCP连接建立的过程中,第三次握手是否带有数据?是否消耗了一个序号?四元组:源IP地址:192.168.1.226、源端口:(51471)、目的IP地址220.181.
5、32.87、目的端口(80);由上图,第三次挥手后的报文段。序号seq=1和第三次握手报文中的序号相同,由此可以看出第三次报文没有消耗序号,没有带数据。(1)找到TCP连接的释放过程,绘出TCP连接释放的完整过程,注明每个TCP报文段的序号、确认号、以及FINACK的设置。第一次挥手:序号:seq=1、确认号:ack=1、FIN=1、ACK=1;第二次挥手:序号:seq=1、确认号:ack=2、FIN=0、ACK=1;第三次挥手:序号:seq=1、确认号:ack=2、FIN=1、ACK=1;第四次挥手:序号:seq=2、确认号:ack=2、FIN=0,、ACK=1;(1)针对(
6、5)中的TCP连接释放,请问释放请求由服务器还是客户发起?FIN报文段是否携带数据,是否消耗一个序号?FIN报文段的序号是什么?为什么是这个值?释放请求由客户端(192.168.1.226)发起的;FIN报文段不携带数据,消耗一个序号。根据TCP规定,FIN报文端即使不携带数据,也消耗掉一个序号。根据第二次挥手,确认号seq=1,说明没有携带数据。FIN报文段序号是1;由下图可以看得到此报文前一个报文的确认号:ack=1,确认号是期望对方下一个报文段的第一个数据字节的序号。即它等于前面已经传送过的数据的最后一个字节的序号加1;(1)在该TCP连接的数据传输过程中,找出每一个(客户
7、)发送的报文段与其ACK报文段的对应关系,计算这些数据报文段的往返时延RTT(即RTT样本值)。根据课本200页5.6.2节内容,给每一个数据报文段估算超时时间RTO。(提示:用脚本编程实现)Perl脚本如下,以及其运行结果,因为本人只打开了一个网页所以只有一项结果#!/usr/bin/perl $i=0; @RTT; while(<>){ if(/RTT/){ @words = split(/ +/,$_);
此文档下载收益归作者所有