协议分析与实现实验报告.docx
《协议分析与实现实验报告.docx》由会员分享,可在线阅读,更多相关《协议分析与实现实验报告.docx(5页珍藏版)》请在冰豆网上搜索。
协议分析与实现实验报告
协议分析与实现实验报告
篇一:
IP协议分析实验报告
广东第二师范学院计算机科学系实验报告
计算机网络
实
验
报
告
实验名称:
IP协议分析
实验分组号:
实验人:
郑微微
班级:
12计算机科学系本四B班
学号:
12551102019
实验指导教师:
阮锦新
实验场地:
网络实验室706
实验时间:
20XX年11月17号
成绩:
一、实验目的
1、掌握IP协议分析的方法
2、掌握TCP/IP体系结构
3、加深网络层协议的理解
4、学会使用网络分析工具
二、实验要求
1、实验前下载安装Ethereal/Wireshark/Sniffer中的一款网络分析工具软件
2、了解网络分析工具软件的常见功能与常见操作
3、每位学生必须独立完成所有实验环节
三、实验环境
1、操作系统:
WindowsXP/Windows7/Windows20XX
2、已安装网络分析工具软件
3、PC机能访问互联网
四、实验内容及原理
1、实验内容
IP头的结构
IP报文分析
2、实验原理
网络之间互连的协议(InternetProtocol,IP)就是为计算机网络相互连接进行通信而设计的协议。
在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。
任何厂家生产的计算机系统,只要遵守IP协议就可以与因特网互连互通。
IP报文由报头和数据两部分组成,如图1所示:
图1IP报文格式
五、需求分析
IP协议是TCP/IP体系中两个主要的协议之一,而IP地址位于IP数据报的首部,在网络层及以上使用的是IP地址,因此在数据链路层是看不见数据报的IP地址,另外首部的前一部分是固定长度,共20字节。
在TCP/IP的标准中,各种数据格式常以32位为单位来描述,通过分析IP数据报的格式就能够知道IP协议都具有哪些功能。
六、实验步骤
1、打开网络分析工具软件
2、抓取浏览器数据包
启动网络分析工具软件,设置抓包过滤条件。
启动浏览器,在地址栏输入要访问的IP地址。
关闭浏览器,停止抓包。
存储所捕获的数据包。
分析数据包。
七、实验分析
1.启动网络分析工具软件,设置抓包过滤条件为“==”
2.启动浏览器,访问网易邮箱,在命令运行窗口ping它的网址“”
在网络分析工具软件中输入要访问的IP地址“”
3.选取一段报文,报文信息截图如下:
通过这次的实验我了解并学会使用网络分析工具,掌握IP协议分析的方法,掌握TCP/IP体系结构,网络分析工具可以帮助我们更加直观地看见数据报的具体信息,比方说版本信息,也可以筛选出满足我们需要的数据报,让我们加深了对网络层协议的理解。
篇二:
网络协议分析实验报告
网络协议分析实验报告
姓名:
***
学号:
20XX211887
班级:
0431102
专业:
网络工程
网络协议分析实验环境要求实验报告指导教师实验时间:
年月日学院计算机科学与技术学院专业网络工程
班级0431102学号20XX211887姓名***实验室S318
一、实验目的
熟悉网络协议分析实验环境和要求
二、实验内容
熟悉网络协议分析实验环境和要求
三、实验步骤
(1)本指导书按照TCP/IP的层次结构对网络互连中的主要协议进行分析。
本章实验的基本思路是使用协议分析工具从网络中截获数据报,对截获的数据报进行分析。
通过试验,使学生了解计算机网络中数据传输的基本原理,进一步理解计算机网络协议的层次结构、协议的结构、主要功能和工作原理,以及协议之间是如何相互配合来完成数据通信功能的。
Windows环境下常用的协议分析工具有:
SniferPro、Natxray、Iris、Ethereal以及Windows20XX自带的网络监视器。
本书选用Ethereal作为协议分析工具。
(2)网络协议图
四、心得体会
通过本次实验,我熟悉了网络协议分析实验环境和要求,收获很大。
网络协议分析器Ethereal实验报告
指导教师实验时间:
年月日学院计算机科学与技术学院专业网络工程
班级0431102学号20XX211887姓名***实验室S318
一、实验目的
熟悉网络协议分析起Ethereal的使用
二、实验内容
熟悉网络协议分析起Ethereal的使用
三、实验步骤
图1是抓包完成后的Ethereal的主窗口。
过滤栏以上是Ethereal本身的菜单,过滤栏以下是抓获的包经过分析后的显示信息。
图1抓包完成后的Ethereal主窗口
其中:
1.菜单栏通常用来启动Ethereal有关操作;
2.工具栏提供菜单中常用项目的快速访问;
3.过滤器栏提供一个路径,来直接控制当前所用的显示过滤器;
4.包列表窗格显示当前抓包文件的全部包的摘要。
包列表的每一行对应抓包文件中的一个包,不同报文有不同的颜色,但是没有明显的规律。
如果你选择了一行,则更详细的信息显示在协议窗格和包字节数据窗格中。
注意:
在此窗格里单击某个包,就会在另外的第二个窗口里显示这个包的信息。
当Ethereal解析一个包时,由协议解析器将信息放置到行列中去,比较高级协议会
改写较低级协议的信息,你只能看到最高级协议的信息。
例如,IP内部包含有TCP的Ethernet
包,Ethernet解析器将写出它的数据(如Ethernet地址),而IP解析器将用自己的数据改写它(如IP地址),等等。
在包列表窗格中的每一列代表抓获的一个包,每个包的摘要信息包括:
*No:
抓包文件中包的编号。
,即使已经用了一个显示过滤器也不会改变。
*Time:
包的时间戳,即抓获该包的时间,该时间戳的实际格式可以改变。
*Source:
包的源地址。
*Destination:
包的目标地址。
*Protocol:
包协议的缩写。
*Info:
包内容的附加信息,这是一种可用的上下文菜单(鼠标右键)。
Ethereal工具栏提供主菜单中常用的选项的快速访问。
工具栏不能由用户定制,但是如果屏幕空间需要显示更多的包数据,就可以用视图菜单将它隐蔽。
作为菜单,只有当前程序被选用时该选项才是可用的,其它选项变成灰色(如果尚未装
载数据就不能存入抓包文件)。
图3为各种工具图标的名称。
接口选项开始停止重开始打开存储为关闭重载打印
查询包向后向前指定包到首包到末包包着色卷屏放大取消放大图3各种工具图标的名称
*接口:
单击此图标,出现一个抓包选项表对话框;
*选项:
引出一个抓包选项对话框;
*开始:
根据选项在最近时间开始抓包;
*停止:
停止当前运行的抓包过程;
*重开始:
为了方便起见,停止当前运行的抓包过程,重新开始;
*打开:
出现打开文件对话框,让你打开一个抓包文件来观察;
*存储为:
让你将当前的抓包文件存储为你希望的文件。
弹出“SaveCaptureFileAs”对话框;
*关闭:
关闭当前的抓包文件,如果没有存储该包被会询问是否存储;
*重载:
允许重装当前的抓包文件;
篇三:
TCPIP协议分析与编程实验报告
至诚学院实验报告
课程名称:
TCP/IP协议编程实践
姓名:
学号:
系别:
计算机工程系
专业:
软件工程年级:
20XX级
年月日
实验一系统时间同步程序
【设计目的】
设计简单的客户/服务器程序实现客户系统时间和服务器系统时间同步
【设计要求】
TCP:
客户:
(1)客户创建流套接字,向服务器发起TCP连接。
(2)连接创建成功后,接收服务器返回的时间,更新客户系统时间。
(3)断开与服务器的连接。
服务器:
(1)服务器创建监听套接字,监听客户TCP连接请求。
(2)当收到一个客户TCP连接请求,创建连接套接字同意与其创建连接。
(3)获取系统时间,通过连接套接字返回给客户。
UDP:
客户:
(1)客户创建数据报套接字,通过该套接字向服务器发出”time”命令获取服务
器系统时间。
(2)接收服务器返回的时间,更新客户系统时间。
(3)断开与服务器的连接。
服务器:
(1)服务器创建数据报套接字,等待接收客户数据。
(2)接收客户发来的“time”命令,获取系统时间,通过套接字返回给客户。
【开发环境】
1、操作系统:
Windows7操作系统
2、Winpcap开放代码函数库3、语言:
C++
4、整个程序的核心就是利用WindowsSocket进行网络设计实现,使用C/S结构
【背景知识】
时间协议(TIMEprotocol)是一个在RFC868内定义的网络协议。
它用作提供机器可读的日期时间资讯。
时间协议可以在TCP或UDP上使用。
在TCP上,主机会连接支援时间协议的服务器的TCP埠37。
服务器会传送32位二进制数字然后断开连接,数字表示由格林威治时间1900年1月1日午夜0时0分0秒至当时的总秒数。
主机在接收到时间后断开连接。
在UDP上,客户端会每送一个(通常为空的)数据包到UDP埠37。
服务器会把包含时间的数据包传回。
在过程中没有进行连线。
TCP协议为终端设备提供了面向连接的、可靠的网络服务,UDP协议为终端设备提供了无连接的、不可靠的数据报服务。
从下图我们可以看出,TCP协议为了保证数据传输的可靠性,相对于UDP报文,TCP报文头部有更多的字段选项。
【设计思路】
系统客户端与服务端建立连接,发送同步请求到同步系统时间的流程图如下,在整个时间同步的过程中服务器必须处于工作状态,时刻监听客户端的请求信息,监听到客户端的时间同步请求时,根据客户端的需要,来进行服务响应,客户端在接收到服务器的响应报文后,根据算服务器发过来的时间来同步系统时间。
【核心代码】
TCPserver:
//获取系统时间
printf;
time_ttimep;//间值time_t整型longint,保存19701月1000秒现刻秒数structtm*p;
time;//获取1970到现在的秒数p=localtime;//将秒数转换线现在的时间
//年份从1900年算起至今的年数//月份从一月算起,范围从0-11
printf,,p->tm_mday,p->tm_hour,
p->tm_min,p->tm_sec);
//ctime将参数timep所指的time_t结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果以字符串形态返回。
//printf);
send_buf[0]=p->tm_year;send_buf[1]=p->tm_mon;send_buf[2]=p->tm_mday;send_buf[3]=p->tm_hour;send_buf[4]=p->tm_min;send_buf[5]=p->tm_sec;//打印当前客户端时间time_ttimep;structtm*p;time;
p=localtime;//取得当地时间printf;
printf,,p->tm_mday,p->tm_hour,printf;
//unsigned__cdecl_getsystime;获取系统时间
//unsigned__cdecl_setsystime;修改系统时间
p->tm_year=recv_buf[0];p->tm_mon=recv_buf[1];p->tm_mday=recv_buf[2];p->tm_hour=recv_buf[3]-3;p->tm_min=recv_buf[4];p->tm_sec=recv_buf[5];
setsystime;//修改系统时间p是结构体0是无符号日期没有符号printf;
printf;
TCPclient:
p->tm_min,p->tm_sec);
p->tm_min,p->tm_sec);
UDP与TCP代码类似
【界面及运行结果】
TCPserver:
TCPclient:
UDPserver:
UDPclient: