当前位置:文档之家› 网络协议分析与仿真课程设计报告书

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

西安郵電大學

网络协议分析与仿真

课程设计报告书

院系名称:计算机学院实验内容:网络流量分析学生姓名:

专业名称:网络工程班级:

学号:

时间:2012年12月15日

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

网络流量分析

一、课程设计目的

加深对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)针对(6)中的TCP连接释放,请问释放请求由服务器还是客户发起?FIN 报文段是否携带数据,是否消耗一个序号?FIN报文段的序号是什么?

为什么是这个值?

(8)在该TCP连接的数据传输过程中,找出每一个ACK报文段与相应数据报文段的对应关系,计算这些数据报文段的往返时延RTT(即RTT样本值)。

根据课本200页5.6.2节内容,给每一个数据报文段估算超时时间RTO。

(提示:用脚本编程实现)

(9)分别找出一个HTTP请求和响应分组,分析其报文格式。参照课本243

页图6-12,在截图中标明各个字段。

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

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

三、设计与实现过程

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

1)解析Web页面的URL,得到Web服务器的域名

2)通过DNS服务器获得Web服务器的IP地址

3)与Web服务器建立TCP连接

4)与Web服务器建立HTTP连接

5)从Web服务器获得URL指定的文档

6)浏览器解释页面文档,并显示在屏幕

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

DNS解析请求,应答分组:

请求:(本机端口:59257;DNS服务器端口:53)

应答:(DNS服务器端口:53;本机端口:59257)

传输层协议:udp协议。

所请求域名ip是:123.125.160.40

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

请求分组:

(ip.src eq172.16.1.234or ip.dst eq172.16.1.234)and(ip.src eq 123.125.160.40or ip.dst eq123.125.160.40)

脚本

Package_count.sh

#!/bin/bash

#by sky version1.0

#20121205

function checkip{

dot=`echo$1|awk-F'.''{print NF-1}'`

if[$dot-ne3];then

return1

if

count=0

for var in`echo$1|awk-F.'{print$1,$2,$3,$4}'`

do

echo$var|grep"^[0-9]*$">/dev/null

if[$?-ne0];then

return1

fi

if[$var-ge0-a$var-le255];then

((count=count+1))

continue

else

return1

fi

done

if[$count-eq4];then

return0

else

return1

fi

}

if[$#-eq0-o$#-ne2]

then

echo"Usage:shellname filename ipaddress" echo"just like:package_count.sh http172.16.1.234"

exit1

fi

if[!-f$1]

then

echo"The$1is no exist"

exit2

fi

#echo$2|grep'\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}'>>/dev/null

checkip${2}

if[$?-ne0]

then

echo"Please input effective IP"

exit3

fi

number=`grep"Src:$2"$12>/dev/null|wc-l`

if[$number-eq0]

then

echo"Please input an IP than include the$1"

exit4

fi

echo"The$2as source has$number packages"

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

与tcp建立连接的三次握手的分组:

TCP三次握手过程

相关主题