网络协议分析及仿真课程设计报告书.docx

上传人:b****6 文档编号:12668266 上传时间:2023-06-07 格式:DOCX 页数:14 大小:496.92KB
下载 相关 举报
网络协议分析及仿真课程设计报告书.docx_第1页
第1页 / 共14页
网络协议分析及仿真课程设计报告书.docx_第2页
第2页 / 共14页
网络协议分析及仿真课程设计报告书.docx_第3页
第3页 / 共14页
网络协议分析及仿真课程设计报告书.docx_第4页
第4页 / 共14页
网络协议分析及仿真课程设计报告书.docx_第5页
第5页 / 共14页
网络协议分析及仿真课程设计报告书.docx_第6页
第6页 / 共14页
网络协议分析及仿真课程设计报告书.docx_第7页
第7页 / 共14页
网络协议分析及仿真课程设计报告书.docx_第8页
第8页 / 共14页
网络协议分析及仿真课程设计报告书.docx_第9页
第9页 / 共14页
网络协议分析及仿真课程设计报告书.docx_第10页
第10页 / 共14页
网络协议分析及仿真课程设计报告书.docx_第11页
第11页 / 共14页
网络协议分析及仿真课程设计报告书.docx_第12页
第12页 / 共14页
网络协议分析及仿真课程设计报告书.docx_第13页
第13页 / 共14页
网络协议分析及仿真课程设计报告书.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

网络协议分析及仿真课程设计报告书.docx

《网络协议分析及仿真课程设计报告书.docx》由会员分享,可在线阅读,更多相关《网络协议分析及仿真课程设计报告书.docx(14页珍藏版)》请在冰点文库上搜索。

网络协议分析及仿真课程设计报告书.docx

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

郵電大學

网络协议分析与仿真

课程设计报告书

 

院系名称

计算机学院

实验容

网络流量分析

学生XX

专业名称

网络工程

班级

学号

时间

2012年12月15日

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

网络流量分析

一、    课程设计目的

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

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

二、    课程设计容

流量分析

Ø工具:

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)分别找出一个请求和响应分组,分析其报文格式。

参照课本243页图6-12,在截图中标明各个字段。

(10)访问同一的不同网页,本次访问中的TCP连接是否和上次访问一样?

〔与上次页面访问时间间隔不能过长,可连续访问,分别分析。

(11)请描述协议的持续连接的两种工作式。

访问这些页面〔同一的不同页面〕的过程中,采用了哪种式?

〔参考课本241页〕

三、设计与实现过程

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

1〕解析Web页面的URL,得到Web效劳器的域名

2〕通过DNS效劳器获得Web效劳器的IP地址

3〕与Web效劳器建立TCP连接

4〕与Web效劳器建立连接

5〕从Web效劳器获得URL指定的文档

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

(2)、找出DNS解析请求、应答相关分组,传输层使用了种协议,端口号是多少?

所请求域名的IP地址是什么?

DNS解析请求,应答分组:

请求:

〔本机端口:

59257;DNS效劳器端口:

53〕

应答:

〔DNS效劳器端口:

53;本机端口:

59257〕

传输层协议:

udp协议。

所请求域名ip是:

123.125.160.40

〔3〕、统计访问该页面共有多少请求IP分组,多少响应IP分组?

〔提示:

用脚本编程实现〕

请求分组:

(ip.srceq172.16.1.234orip.dsteq172.16.1.234)and(ip.srceq123.125.160.40orip.dsteq123.125.160.40)

脚本

Package_count.sh

#!

/bin/bash

#byskyversion1.0

#20121205

functioncheckip{

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

if[$dot-ne3];then

return1

if

count=0

forvarin`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:

shellnamefilenameipaddress"

echo"justlike:

package_count.sh172.16.1.234"

exit1

fi

if[!

-f$1]

then

echo"The$1isnoexist"

exit2

fi

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

checkip${2}

if[$?

-ne0]

then

echo"PleaseinputeffectiveIP"

exit3

fi

number=`grep"Src:

$2"$12>/dev/null|wc-l`

if[$number-eq0]

then

echo"PleaseinputanIPthanincludethe$1"

exit4

fi

echo"The$2assourcehas$numberpackages"

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

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

TCP三次握手过程

第一次握手:

建立连接时,客户端发送syn包(syn=j)到效劳器,并进入SYN_SEND状态,等待效劳器确认;

第二次握手:

效劳器收到syn包,必须确认客户的SYN〔ack=j+1〕,同时自己也发送一个SYN包〔syn=k〕,即SYN+ACK包,此时效劳器进入SYN_RECV状态;

第三次握手:

客户端收到效劳器的SYN+ACK包,向效劳器发送确认包ACK(ack=k+1),此包发送完毕,客户端和效劳器进入ESTABLISHED状态,完成三次握手。

实现过程如下:

第一次:

〔序号:

0,SYN:

1〕

第二次:

〔序号:

0,确认号:

1,SYN:

1,ACK:

1〕

第三次:

〔序号:

1,确认号:

1,SYN:

0,ACK:

1〕

〔5〕针对〔4〕中的TCP连接,该TCP连接的四元组是什么?

双协商的起始序号是什么?

TCP连接建立的过程中,第三次握手是否带有数据?

是否消耗了一个序号?

四元组:

源地址---172.16.1.234;目的地址---123.125.160.40;

源端口---49382目的端口---80

协商的起始序号:

0;

第三次握手未携带数据。

消耗一个序号。

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

TCP释放过程:

A、效劳器向本机请求释放:

B、本机响应效劳器的请求释放:

〔半关闭〕

C、本机向效劳器请求释放连接:

D、效劳器响应本机的请求释放:

TCP的释放过程流程图:

 

(7):

针对〔6〕中的TCP连接释放,请问释放请求由效劳器还是客户发起?

FIN报文段是否携带数据,是否消耗一个序号?

FIN报文段的序号是什么?

为什么是这个值?

释放请求由效劳器发起。

FIN报文段未携带数据。

消耗了一个序号:

实现过程如下:

FIN报文段的序号是436

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

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

 

脚本

#!

/bin/bash

#byskyversion1.0

#20121207

if[$#-ne1]

then

echo"Usage:

shellnamefilename"

echo"Justlike:

rtt_count.sh"

exit1

fi

if[!

-f$1]

then

echo"Pleaseinputaneffectivefile"

exit2

fi

 

grepRTT$1|awk'BEGIN{s1=0.125;s2=0.875;d1=0.25;d2=0.75}{RTT[NR]=$9;line_num=NR}

END{

for(i=1;i<=line_num;i++)

{

RTTS[i]=s2*RTT[i-1]+s1*RTT[i];

RTTD[i]=d2*RTTD[i-1]+d1*(RTTS[i]>RTT[i]?

RTTS[i]-RTT[i]:

RTT[i]-RTTS[i]);

printf("Thenumberis%d\t\tRTTS->%0.8f\tRTTD->%0.8f\tRTTS->%0.8f\n",i,RTTS[i],RTTD[i],RTTS[i]+4*RTTD[i])

}

}'

(9)、分别找出一个请求和响应分组,分析其报文格式。

参照课本243页图6-12,在截图中标明各个字段。

请求报文:

响应报文:

10〕、访问同一的不同网页,本次访问中的TCP连接是否和上次访问一样?

〔与上次页面访问时间间隔不能过长,可连续访问,分别分析。

访问同一的另一网页

本次访问中的TCP连接是与上次访问不一样

(11)、请描述协议的持续连接的两种工作式。

访问这些页面〔同一的不同页面〕的过程中,采用了哪种式?

〔参考课本241页〕

协议的持续连接的两种工作式:

a.非流水线式:

客户在收到前一个响应后才能发出下一个请求,在TCP连接已建好后,客户每次访问一次对象都要用去一个往返时间RTT。

b.流水线式:

客户在收到的响应报文之前就能够接着发送新的请求报文,客户访问所有的对象只需花费一个RTT时间。

访问这些页面过程中采用流水线式

四、设计技巧及体会

 

通过本次课程设计,我们加深对IP、DSN、TCP、UDP、等协议的理解;

并且通过用wireshark流量分析工具,进展抓包、过滤、筛选等一系列操作获取到有用的数据进展观察、分析、处理。

通过观察和处理数据,更加深刻的理解了tcp建立的三次握手、以及释放的四次挥手过程以及更加明确的了解了tcp、udp、等协议的工作原理,以及他们的作用。

而且我们也学会了在Linux环境下用shell或perl脚本编程实现一些数据的统计与计算功能,提高了我们的Linux操作技能,丰富了我在Linux面的知识。

本次试验我遇到了很多问题,包括抓包过程由于出现中断和丢包等问题总是抓不到适宜的可以用来整体分析的包,不过通过屡次实验终于抓取到所需的包。

在开场编写脚本的过程中,由于对脚本语言运用不熟练,是编程过程不怎么顺利,但我努力理解和学习脚本语言,最终克制了这个问题,并且完成了脚本的编写。

总的来说,通过本次课程设计,我学习到了很多东西,通过实践和动手操作是我能够更加快速的学到实际并有用的东西,我受益良多。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2