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

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

西安郵電大學

网络协议分析与仿真

课程设计报告书

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

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

学号:

时间: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三次握手过程

第一次握手:建立连接时,客户端发送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

#by sky version1.0

#20121207

if[$#-ne1]

then

echo"Usage:shellname filename"

echo"Just like:rtt_count.sh http"

exit1

fi

if[!-f$1]

then

echo"Please input an effective file"

exit2

fi

grep RTT$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("The number is%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协议的持续连接的两种工作方式。访问这些页面(同一网站的不同页面)的过程中,采用了哪种方式?(参考课本241页)

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

a.非流水线方式:客户在收到前一个响应后才能发出下一个请求,在TCP

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

b.流水线方式:客户在收到HTTP的响应报文之前就能够接着发送新的请

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

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

四、设计技巧及体会

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

并且通过用wireshark流量分析工具,进行抓包、过滤、筛选等一系列操作获取到有用的数据进行观察、分析、处理。通过观察和处理数据,更加深刻的理解了tcp建立的三次握手、以及释放的四次挥手过程以及更加明确的了解了tcp、udp、http等协议的工作原理,以及他们的作用。而且我们也学会了在Linux环境下用shell或perl脚本编程实现一些数据的统计与计算功能,提高了我们的Linux操作技能,丰富了我在Linux方面的知识。

本次试验我遇到了很多问题,包括抓包过程由于出现中断和丢包等问题总是抓不到合适的可以用来整体分析的包,不过通过多次实验终于抓取到所需的包。在开始编写脚本的过程中,由于对脚本语言运用不熟练,是编程过程不怎么顺利,但我努力理解和学习脚本语言,最终克服了这个问题,并且完成了脚本的编写。总的来说,通过本次课程设计,我学习到了很多东西,通过实践和动手操作是我能够更加快速的学到实际并有用的东西,我受益良多。

TCP IP网络协议分析实验报告

TCP/IP网络协议分析实验 一、实验目的 1. 通过实验,学习和掌握TCP/IP协议分析的方法及其相关工具的使用; 2. 熟练掌握 TCP/IP体系结构; 3. 学会使用网络分析工具; 4. 网络层、传输层和应用层有关协议分析。 二、实验类型 分析类实验 三、实验课时 2学时 四、准备知识 1.Windows 2003 server 操作系统 2.TCP/IP 协议 3.Sniffer工具软件 五、实验步骤 1.要求掌握网络抓包软件Wireshark。内容包括: ●捕获网络流量进行详细分析 ●利用专家分析系统诊断问题 ●实时监控网络活动 ●收集网络利用率和错误等 2.协议分析(一):IP协议,内容包括: ●IP头的结构 ●IP数据报的数据结构分析 3.协议分析(二):TCP/UDP协议,内容包括: ●TCP协议的工作原理 ●TCP/UDP数据结构分析

六、实验结果 1.IP协议分析: (1)工作原理:IP协议数据报有首部和数据两部分组成,首部的前一部分是固定长度,共20字节,是IP数据报必须具有的。首部分为,版本、首部长度、服务类型、总长度、标识、标志、片偏移、生存时间、协议、首部检验和、源地址、目的地址、可选字段和数据部分 (2)IPV4数据结构分析:

2.TCP协议分析: (1)工作原理:TCP连接是通过三次握手的三条报文来建立的。第一条报文是没有数据的TCP报文段,并将首部SYN位设置为1。因此,第一条报文常被称为SYN分组,这个报文段里的序号可以设置成任何值,表示后续报文设定的起始编号。连接时不能自动从1开始计数,选择一个随机数开始计数可避免将以前连接的分组错误地解释为当前连接的分组。

网络协议分析实验报告

实 验 报 告 课程名称 计算机网络 实验名称 网络协议分析 系别 专业班级 指导教师 学号 姓名 实验日期 实验成绩 一、实验目的 掌握常用的抓包软件,了解ARP 、ICMP 、IP 、TCP 、UDP 协议的结构。 二、实验环境 1.虚拟机(VMWare 或Microsoft Virtual PC )、Windows 2003 Server 。 2.实验室局域网,WindowsXP 三、实验学时 2学时,必做实验。 四、实验内容 注意:若是实验环境1,则配置客户机A 的IP 地址:192.168.11.X/24,X 为学生座号;另一台客户机B 的IP 地址:192.168.11.(X+100)。在客户机A 上安装EtherPeek (或者sniffer pro )协议分析软件。若是实验环境2则根据当前主机A 的地址,找一台当前在线主机B 完成。 1、从客户机A ping 客户机B ,利用EtherPeek (或者sniffer pro )协议分析软件抓包,分析ARP 协议; 2、从客户机A ping 客户机B ,利用EtherPeek (或者sniffer pro )协议分析软件抓包,分析icmp 协议和ip 协议; 3、客户机A 上访问 http://biz.doczj.com/doc/da11111622.html, ,利用EtherPeek (或者sniffer pro )协议分析软件抓包,分析TCP 和UDP 协议; 五、实验步骤和截图(并填表) 1、分析arp 协议,填写下表 客户机B 客户机A

2、分析icmp协议和ip协议,分别填写下表 表一:ICMP报文分析

3、分析TCP和UDP 协议,分别填写下表

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

编号:_______________本资料为word版本,可以直接编辑和打印,感谢您的下载 网络协议分析与仿真课程设计预习报告 甲方:___________________ 乙方:___________________ 日期:___________________

(计算机学院) 网络协议分析与仿真课程设计 预习报告 专业名称:__________ 网络工程_________________ 班级:_______________________________________ 学生姓名:____________________________________ 学号(8位): ________________________________ 指导教师:____________________________________ 设计起止时间:2013年12月2日一2013年12月13日

题目一网络流量分析 一、课程设计目的 里加深对IP、DNS、TCR UDP、HTTP等协议的理解; 里掌握流量分析工具的使用,学习基本的流量分析方法。 二、课程设计地点及时间 二号实验楼442网络实验室,12月2日至12月6日,每天8: 00-14: 00 三、课程设计实验条件 工具:Wireshark (Windows 或Linux), tcpdump (Linux) 要求:使用过滤器捕获特定分组;用脚本分析大量流量数据(建议用perl)。 内容:Web流量分析 四、课程设计原理 1、DNS域名解析:首先,客户端的应用层会封装数据到达传输层,在传输层标识源端口号 与目的端口号(源端口号为大于1023随机,目的端口号为UDP5狒口)及应用层服务(这 里因该是请求DN硒询服务吧)。传输层封装数据产生数据段传给网络层,在网络层标识源IP地址及目的IP地址(源IP地址为客户端IP ,目的IP地址为DNS服务器IP地址),网络层将数据段封装为数据包传给数据链路层,在数据链路层将会在数据包里加入源MACM址及目的MA砸址(源MACM址为客户端网卡MA弛址,目的MAC%址为DNS服务器MACM址),这里应该查询MA或存。数据链路层根据客户端与DNS服务器之间的链路,将数据包封装成 帧,传给物理层。物理层会将数据帧转化为电信号放到物理介质上。 电信号到达DNS服务器后会从物理层到达应用层(这里和客户端发送数据差不多,只不过这 个过程变成了解封装),DNS服务器做完域名解析后再将数据传给客户端,传输过程同客户端发送数据。 2、建立TCP/IP连接:客户端知道WE囹艮务器IP地址之后,在网络层产生建立TCP/IP三次握手的数据包(TCP/IP三次握手:客户端向服务器端发送SYN信息,服务器端收到SYN信 息后回复给客户端SYN+AC褊认信息,客户端收到确认信息后再向服务器发送ACK信息建立 连接),应用层标识HTTP服务将数据发送到传输层,传输层将数据+源端口号(大于1023)、目的端口号(80)+上层服务WW如装为数据段传给网路层。网络层将数据段+源ip与目的 ip (WW服务器的ip地址)封装为数据包发送到数据链路层。数据链路层参照ARP缓存表确定源MAC%址(本机MACM址)及目的MACM址(客户端与路由B相连端口的MACM址)将数据包封装成数据帧。这里还需要CR破验。。。。。。数据帧到达物理层后变成电信号发送 到介质上(这里还需要访问控制方法DSMA/CD 路由B收到电信号后传给路由器的数据链路层,这里还需要CRC,FC眼验。。。…确定数据 帧没有损坏后查看目的MACM址与路由器端口地址是否相同,如果相同将解封装,将数据包 发送到路由器B的物理层,路由器查看路由表确定数据包的转发端口,路由器B确定与路由 A之间的链路,创建帧。 路由B与路由A可以看成是点对点,即路由B将创建PPP帧。路由A收到电信号后,确定帧的完整性,如果完整即将数据帧解封装发送到网络层,路由A查询路由表将数据包转发到与WEBf连的路由端口。 路由A的数据链路层将查询ARP缓存表确定WW服务器的MACM址,路由A将创建源MAC 地址

网络协议实践课程设计报告-

成都信息工程学院网络工程系 《网络协议实践》 课程设计报告 签名:

目录 第一章 TCP和ARP协议基础............................................................................... 错误!未定义书签。 1.1什么是TCP协议........................................ 错误!未定义书签。 1.2TCP报文类型与格式 .................................... 错误!未定义书签。 1.3什么是ARP协议........................................ 错误!未定义书签。 1.4ARP报文类型和结构 .................................... 错误!未定义书签。第二章抓包验证TCP协议和ARP协议.............................................................. 错误!未定义书签。 2.1实验环境.............................................. 错误!未定义书签。 2.2实验步骤与抓包结果分析................................ 错误!未定义书签。 2.3实验结论.............................................. 错误!未定义书签。第三章 OSPF路由协议验证分析.. (3) 3.1实验环境及工具介绍 (9) 3.2实验步骤及抓包结果分析 (10) 3.3实验结论--OSPF运行过程说明 (12) 3.4实验心得体会 (12)

《网络协议分析》实验报告

网络协议分析 ——计算机+自动化0902班易珊珊学号:200926100427 1 实验目的 ?掌握如何利用协议分析工具分析IP数据报报文格式,体会数据报发送,转发的过程。 ?通过分析截获TCP报文首部信息,理解首部中的序号,确认号等字段是TCP可靠连接的基础.通过分析TCP连接的三次握手建立和释放过程,理解TCP连接建立和释放机制。 2 实验内容 ?(1)IP协议分析 ?IP协议分析 (图一)IP数据报的格式

(图二)捕获的IP数据报 version:4,版本,占四位。 Header length:20 bytes,IP数据报首部为20字节,等于固定部分长度,说明没有可选字段。 Differentiated services field:ox00,所有服务类型都为0,说明这是一种缺省情况,IP数据报的发送者没有规定IP数据报的服务类型。 Total length:52,IP数据报总长度为52字节。 Identification:oxa47b,标识,占16位。 Flags: 标志,占3位。DF=1,MF=0, Fragment offset:0,说明该数据报没有分片。 Time to live:128,生存时间是128,每过一个路由器它就减1。 Protocol:TCP(ox06)此IP 数据报携带的数据使用TCP协议,协议字段

值为6。 Header checksum:oxdf8a,首部校验和,占16位。Source:192.168.2.10 源地址,占32位。Destination:202.102.233.164 目的地址,占32位。 ?(2)TCP协议分析: (图三)TCP报文段的首部格式

网络协议课程设计报告

目录 1.课程设计目的 ---------------------------------------------------- 2 2.课程设计要求 ---------------------------------------------------- 2 3.课程设计题目分析 ------------------------------------------------ 2 3.1 网卡设置 -------------------------------------------------- 2 3.2 程序设计 -------------------------------------------------- 3 3.2.1 使用原始套接字------------------------------------------ 3 3.2.2 接收数据包---------------------------------------------- 4 3.2.3 定义IP头部的数据结构---------------------------------- 4 3.2.4 IP包的解析 --------------------------------------------- 5 4.解析IP数据包设计相关知识 -------------------------------------- 5 5.程序流程图------------------------------------------------------- 6 6.程序设计--------------------------------------------------------- 7 6.1 协议的定义 ------------------------------------------------ 7 6.2捕获处理--------------------------------------------------- 7 6.3 运行界面 -------------------------------------------------- 8 7.实验结果--------------------------------------------------------- 9 8.自我评析和总结 -------------------------------------------------- 9 8.1 实训心得-------------------------------------------------- 9 8.2 实训日记-------------------------------------------------- 9 9.主要参考资料 -------------------------------------------------- 10 [2]《网络协议分析》寇晓蕤罗俊勇编著机械工业出版社--------- 10 [3]《C语言程序设计》张建伟李秀琴主编科学出版社--------- 10 [4]《C++程序设计教程——面向对象分册》郑秋生主编 --------- 10电子工业出版社 -------------------------------------------------- 10 10.附录 ---------------------------------------------------------- 10

网络协议分析软件的使用实验报告

实验报告 项目名称:网络协议分析工具的使用课程名称:计算机网络B 班级: 姓名: 学号: 教师: 信息工程学院测控系

一、实验目的 基于网络协议分析工具Wireshark(原为Ethereal),通过多种网络应用的实际操作,学习和掌握不同网络协议数据包的分析方法,提高TCP/IP协议的分析能力和应用技能。 二、实验前的准备 ● 二人一组,分组实验; ● 熟悉Ping、Tracert等命令,学习FTP、HTTP、SMTP和POP3协议; ● 安装软件工具Wireshark,并了解其功能、工作原理和使用方法; ● 安装任一种端口扫描工具; ● 阅读本实验的阅读文献; 三、实验内容、要求和步骤 3.1 学习Wireshark工具的基本操作 学习捕获选项的设置和使用,如考虑源主机和目的主机,正确设置Capture Filter;捕获后设置Display Filter。 3.2 PING命令的网络包捕获分析 PING命令是基于ICMP协议而工作的,发送4个包,正常返回4个包。以主机210.31.40.41为例,主要实验步骤为: (1)设置“捕获过滤”:在Capture Filter中填写host 210.31.38.94; (2)开始抓包; (3)在DOS下执行PING命令; (4)停止抓包。 (5)设置“显示过滤”: IP.Addr=210.31.38.94 (6)选择某数据包,重点分析其协议部分,特别是协议首部内容,点开所有带+号的内容。(7)针对重要内容截屏,并解析协议字段中的内容,一并写入WORD文档中。

分析:从这个数据包的分析结果来看我们可以得知: 数据包的到达时间为2013年11月28日14:43:15 帧的序号为20411 帧的长度为74bytes(592bits),同时抓取的长度也是74bytes,说明没有丢失数据 目的MAC地址为00:25:11::4b:7a:6e 源MAC地址为00:25:11:4b:7d:6e 使用的协议为Ipv4 网络层的首部长度为20bytes 目的Ip地址为222.31.38.94 源Ip地址为222.31.38.93 数据没有分片说明数据大小没有超过最大传输单元MUT,其中用到了ICMP协议,数据包的生存周期为128 头部校验和为0x01正确 ICMP的校验和为0x01序列号为2304 数据有32bytes 3.3 TRACERT命令数据捕获 观察路由跳步过程。分别自行选择校内外2个目标主机。比如, (1)校内:tracert 210.31.32.8 (2)校外:tracert http://biz.doczj.com/doc/da11111622.html,

网络协议实验报告6

组号:3F 学号:53131016 姓名:杨灵 实验7.1 FTP协议 【实验目的】 学习FTP协议的连接过程;理解FTP协议的工作原理。一人一组,一组提交报告。 【实验环境】 本实验采用网络结构一, 一定要设置DNS服务器,地址是:172.16.0.253 主机的IP地址使用172.16.0.0段。掩码255.255.255.0. IP地址分配方法: 172.16.0.组号、主机号 例如:第2组的B主机的IP地址设置为172.16.0.22 第5组的F主机的IP地址设置为 172.16.0.56 【实验内容】 本实验要求: FTP服务器已经启动,并提供一个公共帐户,用户名是:anonymous,口令:无。或用户名:group2_1,口令:group2_1 (可以上传数据)。练习一 FTP 本实验学生独立完成,目的是了解FTP协议的端口和连接过程。 实验步骤: 1、主机启动协议分析器,打开数据捕获窗口,设置过滤条件(提取FTP协议); 2、主机登录FTP服务器:在仿真端的命令行提示符下运行: >ftp 172.16.0.253 LOGIN:>group2_1 PASS:>group2_1 >dir >quit 3、查看主机捕获的数据,在会话分析中,查看TCP会话中的21端口和20端口的会话情况,记录21端口和20端口的会话过程; ●记录实验结果: ①粘贴捕获包的截图;

②是否可以捕获到用户名和密码? 答:可以,在USER和PASS会话中。 ③21端口和20端口分别传输什么内容? 答:一个是数据端口,一个是控制端口,控制端口一般为21,而数据端口不一定是20,这和FTP的使用模式有关,如果是主动模式,应该为20,如果为被动模式,由服务器端和客户端协商而定。练习二使用浏览器登入FTP 1、主机启动协议分析器,打开数据捕获窗口; 2、主机启动IE浏览器,在“地址”框中输入ftp://172.16.0.253 3、查看主机捕获的数据,在会话分析中,查看TCP会话中的端口情况。 4、结合练习1的会话过程,说明浏览器登入FTP的工作过程。 ●记录实验结果: ①粘贴捕获包的截图; ②对比上个实验,FTP服务器用哪个端口传输数据,数据连接是谁发起的连接? 答:ftp服务器用21端口传输数据,数据连接是客户端发起的的连接。 练习三在窗口模式下,上传/下传数据文件 熟悉FTP在窗口方式下的命令使用;在本地机的D:上建立一个文本文件,文件名为你的学号+姓名; 1、主机登录FTP服务器:在命令行提示符下运行: D:>ftp 172.16.0.253 >LOGIN:group2_1 >PASS: group2_1 >put 文件名(文件名为你的学号+姓名) >dir (查看FTP上是否已经上传) >get 文件名(FTP服务器) >quit 2、回到本地硬盘上查看是否已经下载到本地?(进入FTP时的目录下) ●记录实验结果: ①粘贴FTP上的文件列表;

网络协议分析与仿真

****** 网络协议分析与仿真 课程设计报告书 院系名称:计算机学院实验内容:网络流量分析学生姓名:*** 专业名称:网络工程班级:**** 学号:********* 时间:20**年**月**日

网络协议分析与仿真课程设计报告 网络流量分析 一、课程设计目的 加深对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,在截图中标明各个字段。

计算机网络课程设计报告文件传输协议的简单实现

课程设计 课程名称计算机网络课程设计 题目名称文件传输协议的简单设计与实现学生学院 专业班级___ _ 学号 学生姓名______ _________ 指导教师______ _____ 2010 年 1 月 5 日

设计摘要 关键词:SOCKET编程,FTPclient/server程序 摘要:本课程设计包含了文件传输协议的简单设计与实现。 文件传送是各种计算机网络实现的基本功能,文件传送协议是一种最基本的应用层协议按照客户/服务器的模式进行工作,提供交互式的访问,是INTERNET使用最广泛的协议之一。文件传输协议的简单设计与实现建立在计算机网络实验环境TCP/IP 网络体系结构之上,使用socket 编程接口编写两个程序,分别为客户程序和服务器程序(),实现下述命令功能:get , put, pwd, dir, cd, ?, quit 等,利用了已有网络环境设计并实现简单应用层协议。 本设计包括了具体设计任务,基本思路及所涉及的相关理论,设计流程图,调试过程中出现的问题及相应解决办法,实验运行结果,核心程序,个人体会及建议等。

目录 1、文件传输协议的简单设计与实现------------------------------18 1. 1 具体设计任务----------------------------------------------18基本思路及所涉及的相关理论--------------------------------18 1.2.1基本思路-------------------------------------------------18 2.2.2 相关理论--------------------------------------------18 设计流程图------------------------------------------------19 实验运行情况----------------------------------------------19 核心程序--------------------------------------------------22 2.5.1 服务器(sever)程序---------------------------------22 2.5.2 客户(client)程序----------------------------------29 心得体会-----------------------------------------------------------------------------37 参考文献--------------------------------------------------------38

网络协议实验报告

实验一: unsigned short checkSum(char*pBuffer,int nLen) { unsigned short nWord; unsigned int nSum=0; int i; for(i=0;i>16) { nSum=(nSum&0xFFFF)+(nSum>>16); } nSum=~nSum; return((unsigned short)nSum); } int timeout=1000; setsockopt(sock_raw,SOL_SOCKET,SO_RCVTIMEO,(char*)&timeout,sizeof(timeout)); setsockopt(sock_raw,SOL_SOCKET,SO_SNDTIMEO,(char*)&timeout,sizeof(timeout)); ICMPheader*pIcmpHeader=(ICMPheader*)sendBuffer; pIcmpHeader->byType=8; pIcmpHeader->byCode=0; pIcmpHeader->nId=(USHORT)::GetCurrentProcessId(); pIcmpHeader->nChecksum=0; pIcmpHeader->nSequence=htons(nSeq++); memset(sendBuffer+sizeof(ICMPheader),'*',32); pIcmpHeader->nChecksum=htons(checkSum(sendBuffer, sizeof(ICMPheader)+32)); int nRet=sendto(sock_raw,sendBuffer,sizeof(ICMPheader)+32,0, (SOCKADDR*)&dest_addr,sizeof(SOCKADDR_IN)); IPheader*ipHdr=(IPheader*)recvBuffer; ICMPheader*icmpHdrRet=(ICMPheader*)(recvBuffer+sizeof(IPheader)); if(icmpHdrRet->byCode==0&& icmpHdrRet->nId==pIcmpHeader->nId&& icmpHdrRet->nSequence==pIcmpHeader->nSequence) { nPacketReceived++; unsigned long dwRecvTime=::GetTickCount(); int nRoundTime=dwRecvTime-dwSendTime; nTotalRoundTime+=nRoundTime;

网络协议分析实验报告

课程设计 课程设计题目网络协议分析实验报告学生姓名: 学号: 专业: 2014年 6 月 29日

实验1 基于ICMP的MTU测量方法 实验目的 1)掌握ICMP协议 2)掌握PING程序基本原理 3)掌握socket编程技术 4)掌握MTU测量算法 实验任务 编写一个基于ICMP协议测量网络MTU的程序,程序需要完成的功能: 1)使用目标IP地址或域名作为参数,测量本机到目标主机经过网络的MTU; 2)输出到目标主机经过网络的MTU。 实验环境 1)Linux系统; 2)gcc编译工具,gdb调试工具。 实验步骤 1.首先仔细研读ping.c例程,熟悉linux下socket原始套接字编程模式,为实验做好准备; 2.生成最大数据量的IP数据报(64K),数据部分为ICMP格式,ICMP报文为回送请求报 文,IP首部DF位置为1;由发送线程发送; 3.如果收到报文为目标不可达报文,减少数据长度,再次发送,直到收到回送应答报文。 至此,MTU测量完毕。

ICMP协议是一种面向无连接的协议,用于传输出错报告控制信息。它是一个非常重要的协议,它对于网络安全具有极其重要的意义。[1] 它是TCP/IP协议族的一个子协议,属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。ICMP报文在IP帧结构的首部协议类型字段(Protocol 8bit)的值=1.

ICMP原理 ICMP提供一致易懂的出错报告信息。发送的出错报文返回到发送原数据的设备,因为只有发送设备才是出错报文的逻辑接受者。发送设备随后可根据ICMP报文确定发生错误的类型,并确定如何才能更好地重发失败的数据包。但是ICMP唯一的功能是报告问题而不是纠正错误,纠正错误的任务由发送方完成。 我们在网络中经常会使用到ICMP协议,比如我们经常使用的用于检查网络通不通的Ping命令(Linux和Windows中均有),这个“Ping”的过程实际上就是ICMP协议工作的过程。还有其他的网络命令如跟踪路由的Tracert命令也是基于ICMP协议的。 ICMP(Internet Control Message,网际控制报文协议)是为网关和目标主机而提供的一种差错控制机制,使它们在遇到差错时能把错误报告给报文源发方.是IP层的一个协议。但是由于差错报告在发送给报文源发方时可能也要经过若干子网,因此牵涉到路由选择等问题,所以ICMP报文需通过IP协议来发送。ICMP数据报的数据发送前需要两级封装:首先添加ICMP 报头形成ICMP报文,再添加IP报头形成IP数据报 通信术语最大传输单元(Maximum Transmission Unit,MTU)是指一种通信协议的某一层上面所能通过的最大数据包大小(以字节为单位)。最大传输单元这个参数通常与通信接口有关(网络接口卡、串口等)。 实验2 基于UDP的traceroute程序 实验目的 1)掌握UDP协议 2)掌握UDP客户机/服务器编程模式 3)掌握socket编程技术 4)掌握traceroute算法

网络协议分析实验报告样本

网络协议分析实验报告样本 网络协议分析实验报告本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 实验报告99实验名称网络协议分析姓名学号班级313计本班实验目的掌握常用的抓包软件,了解EtherV 2、ARP、P IP协议的结构。 实验内容 11、分析2EtherV2协议 22、分析P ARP协议 33、分析P IP协议实验步骤 11、在S DOS状态下,运行ipconfig,记录本机的IP地址和硬件地址,网关的IP地址。 如下图11所示::本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 图图 12、分析数据链路层协议( (1)、在:PC1的“运行”对话框中输入命令“Ping192.168.191.1,单击“Enter”按钮;图如下图2所示:图图2( (2)、在本机上运行wireshark截获报文,为了只截获和实验内容有关的报文,将Ethereal的的Captrue Filter设置为“No

Broadcastand noMulticast”;如下图3所示:本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 图图3 (33)停止截获报文::将结果保存为MAC--学号,并对截获的报文进行分析:11)列出截获的报文中的协议类型,观察这些协议之间的关系。 答::a a、UDP:用户数据包协议,它和P TCP一样位于传输层,和P IP协议配合使用,。 在传输数据时省去包头,但它不能提供数据包的重传,所以适合传输较短的文件。 b b、WSP:是无线局域网领域推出的新协议,用来方便安全地建立无线连接。 c c、ARP:地址解析协议,实现通过P IP地址得知其物理地址。 在P TCP/IP网络环境下,每个主机都分配了一个232位的P IP 地址,这种互联网地址是在网际范围标本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 识主机的一种逻辑地址。 为了让报文在物理网路上传送,必须知道对方目的主机的物理地址。 这样就存在把P IP地址变换成物理地址的地址转换问题。

实验八协议分析器程序的设计和实现

实验八协议分析器程序的设计和实现 1.实验目的: (1)掌握对网络上传输数据包的捕获方法。 (2)解析Ethernet网数据帧头部的全部信息。 (3)解析IP、ICMP数据包 (4) 解析传输层和应用层相关协议的头部信息 (5)设置过滤规则,能过滤相应协议的数据包。 (6)要求有良好的编程规范与注释信息,要求有详细的说明文档,包括程序的设计思想、活动图、关键问题以及解决方法。 2实验环境: (1)VC6.0 (2)局域网能连接Internet。 3.程序设计的关键问题以及解决方法有哪些? 当应用程序通过IP网络传送数据时,数据被送入TCP/IP协议栈中,然后从上至下逐一通过每一层,直到最后被当作一串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息,这个过程被称作封装。通过以太网传输的比特流称作帧。在传输的另一端,当目的主机收到一个以太网数据帧时,数据就开始从协议栈由底向上逐层解析,去掉各层协议所加上的报文头部。每层协议均要检查报文头部中的协议标识字段,以确定要接收数据的上层协议,最终从报文中解析出应用层数据后交给应用程序处理。 本次要编写的协议分析器,就是从网络中捕获数据包并对其进行解析的过程。因此,我们需要了解每层协议所规定的报文格式,然后由底向上逐层对数据包进行解码,最后将分析的结果显示出来。 4.描述程序设计过程,并画出程序活动图。 协议分析器总体结构: 协议分析器的整体结构按功能应分为三个部分,自底向上分别是数据捕获模块、协议解析模块和用户显示模块。

数据包捕获流程: 捕获数据包的算法一般分为以下几步: (1)获取并列出当前网络设备列表。 (2)由用户选择并打开指定网卡。 (3)根据过滤规则设置过滤器。 捕获数据包并进行解析处理: 协议解析模块: 对捕获的数据包按照数据链路层(MAC)、网络层(IP、ARP/RARP)、传输层(TCP、UDP、ICMP)和应用层(HTTP等)的层次结构自底向上进行解析,最后将解析结果显示输出。

计算机网络课程设计利用java实现UDP协议

?????? 计算机网络课程设计利用java 实现UDP协议 系别计算机与通信工程学院 专业计算机科学与技术 学号4110415 姓名张振 指导教师王聪 2014年7月4日

1.需求分析 程序是如何通过网络进行相互通信的呢?各个孤立的工作站或主机用物理链路相连在一起,组成数据链路,从而达到资源共享和通信的目的,就形成网络。通信是人与人之间同过某种媒体进行的信息交流与传递。网络通信一般指网络协议。当今网络协议有很多,其中基本最常用的就是TCP/IP 协议族。UDP 协议就是属于TCP/IP协议族中的协议。在网络中它与TCP协议一样用于处理数据包。在OSI模型中,UDP协议在第四层——传输层,处于IP协议的上一层。与TCP 相比,UDP有不提供数据报分组、组装和不能对数据包的排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。 本文利用Java语言网络编程的思想,编写UDP协议程序,实现UDP协议在网络中所要完成的功能。在Java语言为实现程序的相互通信提供了许多有用的抽象应用程序接口(API, Application Programming Interface),这类应用程序接口被称为套接字(sockets)。 因此,本文UDP协议的编程所需要用到的接口就是套接字。 2.实验环境 开发环境: 个人PC+win8.1+myeclipse 10 3.实验原理以及相关内容 3.1 UDP简介 UDP 是User Datagram Protocol的简称,中文全称是用户数据包协议,是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。在网络中它与TCP协议一样用于处理数据包。在OSI模型中,UDP协议在第四层——传输层,处于IP协议的上一层。与TCP相比,UDP有不提供数据报分组、组装和不能对数据包的排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。 3.2 使用UDP原因 UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议 所掩盖,但是即使是在今天,UDP仍然不失为一项非常实用和可行的网络传输层协议。 这是因为UDP 有以下特点: (1)UDP是一个无连接协议,传输数据之前源端和终端不建立连接,当它想传送时 就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。 (2)由于传输数据不建立连接,因此也就不需要维护连接状态,包括收发状态等, 因此一台服务机可同时向多个客户机传输相同的消息。 (3)UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包的额 外开销很小。 (4)吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、 源端和终端主机性能的限制。

IP协议分析实验报告

计算机网络 实 验 报 告 实验名称: IP协议分析 实验分组号: 实验人:郑微微 班级: 12计算机科学系本四B班学号: 实验指导教师:阮锦新 实验场地:网络实验室706 实验时间: 2014年11月 17号 成绩:

一、实验目的 1、掌握IP协议分析的方法 2、掌握TCP/IP体系结构 3、加深网络层协议的理解 4、学会使用网络分析工具 二、实验要求 1、实验前下载安装Ethereal/Wireshark/Sniffer中的一款网络分析工具软件 2、了解网络分析工具软件的常见功能与常见操作 3、每位学生必须独立完成所有实验环节 三、实验环境 1、操作系统:Windows XP/Windows 7/Windows 2008 2、已安装网络分析工具软件 3、PC机能访问互联网 四、实验内容及原理 1、实验内容 (1)IP头的结构 (2)IP报文分析 2、实验原理 网络之间互连的协议(Internet Protocol,IP)就是为计算机网络相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守IP协议就可以与因特网互连互通。 IP报文由报头和数据两部分组成,如图1所示:

图1 IP报文格式 五、需求分析 IP协议是TCP/IP体系中两个主要的协议之一,而IP地址位于IP数据报的首部,在网络层及以上使用的是IP地址,因此在数据链路层是看不见数据报的IP地址,另外首部的前一部分是固定长度,共20字节。在TCP/IP的标准中,各种数据格式常以32位为单位来描述,通过分析IP数据报的格式就能够知道IP协议都具有哪些功能。 六、实验步骤 1、打开网络分析工具软件 2、抓取浏览器数据包 (1)启动网络分析工具软件,设置抓包过滤条件。 (2)启动浏览器,在地址栏输入要访问的IP地址。 (3)关闭浏览器,停止抓包。 (4)存储所捕获的数据包。 (5)分析数据包。 七、实验分析 1.启动网络分析工具软件,设置抓包过滤条件为“==”

网络协议分析课程设计-流量分析报告模板-http

西安邮电大学 (计算机学院) 网络协议分析设计报告题目:Web流量分析 专业名称:网络工程 班级:1201 学生姓名:司联波 学号(8位):04122007 指导教师:孙韩林 设计起止时间:2014年12月15日—2014年12月19日

网络协议分析与仿真课程设计报告 网络流量分析 一、课程设计目的 加深对IP、DSN 、TCP、UDP、HTTP等协议的理解; 掌握流量分析工具的使用,学习基本的流量分析方法。 二、课程设计内容 流量分析 工具:Wireshark(Windows或Linux),tcpdump(Linux) 要求:使用过滤器捕获特定分组;用脚本分析大量流量数据(建议用perl)。 内容:Web流量分析 清除本机DNS缓存,访问某一网页(http://biz.doczj.com/doc/da11111622.html,/),捕获访问过程中的所有分组,分析并回答下列问题(以下除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页5.6.2节内容,给每一个数据报文段估算超时时间RTO。(提示: 用脚本编程实现 (9)分别找出一个HTTP请求和响应分组,分析其报文格式。参照课本243页图6-12,在截图中标明各个字段。

相关主题