当前位置:文档之家› 网络协议分析课程设计-web流量分析

网络协议分析课程设计-web流量分析

网络协议分析与仿真课程设计报告

网络流量分析

一、课程设计目的

加深对IP、DSN 、TCP、UDP、HTTP等协议的理解;

掌握流量分析工具的使用,学习基本的流量分析方法。

二、课程设计内容

流量分析

工具:Wireshark(Windows或Linux),tcpdump(Linux)

要求:使用过滤器捕获特定分组;用脚本分析大量流量数据(建议用perl)。

内容:Web流量分析

清除本机DNS缓存,访问某一网站主页,捕获访问过程中的所有分组,分析并回答下列问题(以下除1、3、8、11外,要求配合截图回答):

(1)简述访问web页面的过程。

(2)找出DNS解析请求、应答相关分组,传输层使用了何种协议,端口号是多少所请求域名的IP地址是什么

(3)统计访问该页面共有多少请求IP分组,多少响应IP分组(提示:用脚本编程实现)

(4)找到TCP连接建立的三次握手过程,并结合数据,绘出TCP连接建立的完整过程,注明每个TCP报文段的序号、确认号、以及SYN\ACK的设置。

(5)针对(4))中的TCP连接,该TCP连接的四元组是什么双方协商的起始序号是什么TCP连接建立的过程中,第三次握手是否带有数据是否消耗了一个序号

(6)找到TCP连接的释放过程,绘出TCP连接释放的完整过程,注明每个TCP报文段的序号、确认号、以及FIN\ACK的设置。

(7)针对(5)中的TCP连接释放,请问释放请求由服务器还是客户发起FIN报文段是否携带数据,是否消耗一个序号FIN报文段的序号是什么为什么是这个值(8)在该TCP连接的数据传输过程中,找出每一个ACK报文段与相应数据报文段的对应关系,计算这些数据报文段的往返时延RTT(即RTT样本值)。根据课

本200页节内容,给每一个数据报文段估算超时时间RTO。(提示:用脚本编

程实现)

(9)分别找出一个HTTP请求和响应分组,分析其报文格式。参照课本243页图6-12,在截图中标明各个字段。

(10)访问同一网站的不同网页,本次访问中的TCP连接是否和上次访问相同(与上次页面访问时间间隔不能过长,可连续访问,分别分析。)

(11)请描述HTTP协议的持续连接的两种工作方式。访问这些页面(同一网站的不同页面)的过程中,采用了哪种方式(参考课本241页)

三、设计与实现过程

1.简述访问web页面的过程。

1.浏览器分析链接指向页面的url

2.浏览器向dns请求解析url的ip地址

3.Dns解析出ip地址

4.浏览器与服务器建立tcp连接(ip地址,端口80)

5.浏览器发出取文件命令

6.服务器给出响应,将指定文件发给浏览器

7.释放tcp连接

8.浏览器显示文件内容

2.找出DNS解析请求、应答相关分组,传输层使用了何种协议,端口号是多少所请求域名的IP地址是什么

访问

请求分组

应答分组

由上可知:传输层使用了udp协议,本机端口号57949,服务器端口号:53 由下可知:的ip地址为

统计访问该页面共有多少请求IP分组,多少响应IP分组(提示:用脚本编程实现)

1.过滤:

2.将数据导出到文件中

3.执行下面脚本

echo | grep "No." | wc -l

统计出共有66个请求包

4.同理可得共有66个应答包

4.找到TCP连接建立的三次握手过程,并结合数据,绘出TCP连接建立的完整过程,注明每个TCP报文段的序号、确认号、以及SYN\ACK的设置。

1.过滤

2.三次握手包如下:

3.绘图如下:

5.针对(4)中的TCP连接,该TCP连接的四元组是什么双方协商的起始序号是什么TCP连接建立的过程中,第三次握手是否带有数据是否消耗了一个序号

1.该tcp连接的四元组为:本机IP:端口:80,

目的IP:端口:2141

2.第三次握手包的len为0,没有携带数据

3.第四个包的seq与第三次握手报的seq相同为1,没有消耗序号。

6.找到TCP连接的释放过程,绘出TCP连接释放的完整过程,注明每个TCP报文段的序号、确认号、以及FIN\ACK的设置。

情况一(谷歌浏览器):

1.过滤:

2.找到fin包如下图:

3.绘图如下:

情况二(用IE浏览器):

1.过滤:

2.找到fin包如下图:

3.绘图如下:

7.针对(5)中的TCP连接释放,请问释放请求由服务器还是客户发起FIN报文段是否携带数据,是否消耗一个序号FIN报文段的序号是什么为什么是这个值

1.释放连接是由服务器发起的,FIN报文段不携带数据。(len=0)

2.消耗一个序号(138124->138125)

报文段的序号是138124,因为前一个包对方给出的Ack数值是138124.

也就是说138124以前的数据包正确到达,FIN包从138124序号开始。

8.在该TCP连接的数据传输过程中,找出每一个(客户)发送的报文段与其ACK报文段的对应关系,计算这些数据报文段的往返时延RTT(即RTT样本值)。根据课本200页节内容,给每一个数据报文段估算超时时间RTO。(提示:用脚本编程实现)公式:报文段的往返时间RTT(Round-Trip Time)

新的RTTs =(1-a)*(旧的RTTs)+ a*(新的RTT样本值)

新的RTTD = (1-b)*(旧的RTTD) + b*| RTTs –新的RTT样本|

超时重传时间RTO = RTTs + 4 * RTTD;

相关主题