网络协议分析与仿真课程设计报告书Word文件下载.docx

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

网络协议分析与仿真课程设计报告书Word文件下载.docx

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

网络协议分析与仿真课程设计报告书Word文件下载.docx

内容:

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页面的URL,得到Web服务器的域名

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

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

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

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

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

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

少?

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.srceq

123.125.160.40orip.dsteq123.125.160.40)

脚本

Package_count.sh#!

/bin/bash

#byskyversion1.0#20121205functioncheckip{

dot=`echo$1|awk-F'

.'

'

{printNF-1}'

`if[$dot-ne3];

then

return1ifcount=0

forvarin`echo$1|awk-F.'

{print$1,$2,$3,$4}'

`do

echo$var|grep"

^[0-9]*$"

>

/dev/nullif[$?

-ne0];

return1fi

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

((count=count+1))continue

else

done

if[$count-eq4];

return0else

}

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

echo"

Usage:

shellnamefilenameipaddress"

justlike:

package_count.shhttp172.16.1.234"

exit1fi

if[!

-f$1]then

The$1isnoexist"

exit2

fi

#echo$2|grep'

\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}'

>

/dev/null

checkip${2}

if[$?

-ne0]then

PleaseinputeffectiveIP"

exit3

number=`grep"

Src:

$2"

$12>

/dev/null|wc-l`if[$number-eq0]

then

PleaseinputanIPthanincludethe$1"

exit4

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,确认号:

0,ACK:

(5)针对(4)中的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报文段的序号是436

(8)、在该TCP连接的数据传输过程中,找出每一个ACK报文段与相应数据报

根据

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

#!

#byskyversion1.0

#20121207

if[$#-ne1]then

shellnamefilename"

echo"

Justlike:

rtt_count.shhttp"

exit1

Pleaseinputaneffectivefile"

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

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

请求报文:

响应报文:

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

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

访问同一网站的另一网页

本次访问中的TCP连接是与上次访问不相同

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

访问这些页面(同一网站的不同页面)的过程中,采用了哪种方式?

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

a.非流水线方式:

客户在收到前一个响应后才能发出下一个请求,在TCP

连接已建好后,客户每次访问一次对象都要用去一个往返时间RTT。

b.流水线方式:

客户在收到HTTP的响应报文之前就能够接着发送新的请

求报文,客户访问所有的对象只需花费一个RTT时间。

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

四、设计技巧及体会

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

并且通过用wireshark流量分析工具,进行抓包、过滤、筛选等一系列操作获取

到有用的数据进行观察、分析、处理。

通过观察和处理数据,更加深刻的理解了

tcp建立的三次握手、以及释放的四次挥手过程以及更加明确的了解了tcp、udp、

http等协议的工作原理,以及他们的作用。

而且我们也学会了在Linux环境下用

shell或perl脚本编程实现一些数据的统计与计算功能,提高了我们的Linux操作

技能,丰富了我在Linux方面的知识。

本次试验我遇到了很多问题,包括抓包过程由于出现中断和丢包等问题总是

抓不到合适的可以用来整体分析的包,不过通过多次实验终于抓取到所需的包。

在开始编写脚本的过程中,由于对脚本语言运用不熟练,是编程过程不怎么顺利,

但我努力理解和学习脚本语言,最终克服了这个问题,并且完成了脚本的编写。

总的来说,通过本次课程设计,我学习到了很多东西,通过实践和动手操作是我

能够更加快速的学到实际并有用的东西,我受益良多。

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

当前位置:首页 > 求职职场 > 简历

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

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