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

实验八I2C通信协议一、实验目的:1、培养学生阅读资料的能力;2、加深学生对I2C总线通信协议的理解;3、加强学生对模块化编程的理解;二、实验环境:1、硬件环境:PC机一台、单片机实验板一块、母头串口交叉线、USB电源线;2、软件环境:keil uVision2集成开发环境;STC-ISP下载上位机软件;三、实验原理:要学会I2C通信协议的编程,关键是要看懂并掌握其时序图,理解对I2C通信协议相关子程序的实验编写。
I2C通信协议的总线时序图如下所示:I2C总线时序图I2C相关子程序的详细介绍1、起始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。
2、结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。
起始信号和结束信号的时序图如下所示:起始信号和结束信号的时序图起始信号的流程如下:1、SCL和SDA拉高,保持时间约为0.6us-4us;2、拉低SDA,保持时间为约为0.6us-4us;3、拉低时钟线结束信号的流程如下:1、SCL置高电平,SDA置低电平,保持时间约为0.6us-4us2、SDA拉高,保持时间约为1.2-4us;应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。
CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。
若未收到应答信号,由判断为受控单元出现故障。
应答信号的时序图如下所示:应答时序图发送时的应答信号;**********应答信号**********ACK: SETB SDA ;数据线置高SETB SCL ;时钟线置高ACALL DELAYJB SDA,$ ;等待数据线变低ACALL DELAYCLR SCL ;时钟线置低RET注意:这里如果数据线一直为高将进入死循环,所以一般我们都会在这做一个容错的处理。
具体的程序如下:ACK: MOV R4,#00HSETB SDASETB SCLLOP0: JNB SDA,LOPDJNZ R4,LOP0 ;循环255次LOP: ACALL DELCLR SCLRET接收时的应答信号ACK1: CLR SDA ;数据线置低SETB SCL ;时钟线置高NOPNOPCLR SCL ;时钟线置低SETB SDA ;数据线置高RET3、字节的发送和接收写周期时序图一字节数据发送子程序,流程如下:图6-22 发送子程序流程图(2)一字节数据接收子程序,流程如下:图6-23 接收子程序流程图7、写操作(1)字节写图6-24 字节写时序图流程如下:图6-25 字节写的流程图(2)页写图6-26 页写时序图页写流程如下:8、读操作(1)选择读图6-28 选择读时序图图6-29 NO ACK时序图(2)连续读图6-30 连续读时序图四、实验原理图:I2C总线电路图五、实验例题:例题一编写一程序,实现I2C的指定字节读写,用24C08来记录单片机复位或者开机的次数,并将复位或者开机的次数显示在数码管上。
计算机网络协议分析 - 教案

计算机网络协议分析教案一、引言1.1计算机网络协议的定义与重要性1.1.1定义:计算机网络协议是计算机网络中用于数据交换的规则集合。
1.1.2重要性:协议确保了不同计算机和网络设备之间的有效通信。
1.1.3应用范围:涵盖了互联网、局域网、广域网等多种网络环境。
1.1.4发展历程:从ARPANET到现代互联网,协议不断演进和更新。
1.2教学目的与背景1.2.1教学目的:使学生理解并掌握计算机网络协议的基本原理和应用。
1.2.2背景介绍:互联网的快速发展对计算机网络协议提出了更高的要求。
1.2.3与现实生活的联系:日常生活中的网络活动都离不开网络协议的支持。
1.2.4未来趋势:5G、物联网等新兴技术对协议发展的影响。
1.3教学内容概述1.3.1教学重点:TCP/IP协议族、网络层和传输层协议。
1.3.2教学难点:协议的工作原理和配置管理。
1.3.3教学方法:理论讲解、案例分析、实验操作相结合。
1.3.4教学资源:教科书、在线资源、实验室设备。
二、知识点讲解2.1网络协议的基本概念2.1.1协议的三要素:语法、语义、时序。
2.1.2协议分层:OSI七层模型与TCP/IP四层模型。
2.1.3协议标准化:国际组织与标准制定过程。
2.1.4协议的类型:应用层、传输层、网络层等。
2.2TCP/IP协议族2.2.1TCP/IP模型结构:应用层、传输层、网络层、链路层。
2.2.2IP协议:数据包的传输和路由选择。
2.2.3TCP协议:提供可靠的数据传输服务。
2.2.4常见应用层协议:、FTP、DNS等。
2.3网络层与传输层协议2.3.1网络层协议:IP、ICMP、IGMP等。
2.3.2传输层协议:TCP、UDP、SCTP等。
2.3.3协议的功能与特点:数据包封装、路由选择、流量控制等。
2.3.4协议的选择与配置:根据应用需求选择合适的协议。
三、教学内容3.1网络协议的基本原理3.1.1数据封装与解封装:数据在网络中的传输过程。
实验八 Telnet协议

实验八 Telnet协议一实验目的1、理解 Telnet 协议的工作原理;2、了解 Telnet 协议的常用命令;3、了解应用层协议与传输层协议的关系。
二实验内容1、学习 Telnet 协议的工作过程;2、学习 Telnet 的使用方法;3、了解 Telnet 命令.三实验环境其中一台作为Telnet客户端,另外一台主机作为Telnet服务器四实验流程五实验原理Telnet 是传输控制协议/因特网协议(TCP/IP)网络(例如Internet)的登录和仿真程序。
它最初是由ARPANET 开发的,但是现在它主要用于 Internet 会话。
它的基本功能是,允许用户登录进入远程主机系统。
起初,它只是让用户的本地计算机与远程计算机连接,从而成为远程主机的一个终端。
它的一些较新的版本在本地执行更多的处理,于是可以提供更好的响应,并且减少了通过链路发送到远程主机的信息数量。
1、基本内容Telnet 协议是 TCP/IP 协议族中的一员,是 Internet 远程登陆服务的标准协议。
应用 Telnet 协议能够把本地用户所使用的计算机变成远程主机系统的一个终端。
它提供了三种基本服务:1) Telnet 定义一个网络虚拟终端为远的系统提供一个标准接口。
客户机程序不必详细了解远的系统,他们只需构造使用标准接口的程序;2) Telnet 包括一个允许客户机和服务器协商选项的机制,而且它还提供一组标准选项;3) Telnet 对称处理连接的两端,即 Telnet 不强迫客户机从键盘输入,也不强迫客户机在屏幕上显示输出。
2、远程登录的工作过程使用 Telnet 协议进行远程登陆时需要满足以下条件:在本的计算机上必须装有包含 Telnet 协议的客户程序;必须知道远程主机的Ip 地址或域名;必须知道登录标识与口令。
Telnet 远程登录服务分为以下 4 个过程:1) 本地与远程主机建立连接。
该过程实际上是建立一个 TCP 连接,用户必须知道远程主机的Ip 地址或域名;2) 将本地终端上输入的用户名和口令及以后输入的任何命令或字符以 NVT(Net Virtual Terminal)格式传送到远程主机。
主要协议分析实验报告(3篇)

第1篇一、实验背景随着计算机网络技术的飞速发展,网络协议作为计算机网络通信的基础,扮演着至关重要的角色。
为了更好地理解网络协议的工作原理和功能,我们开展了主要协议分析实验。
本实验旨在通过分析常用网络协议的报文格式和工作机制,加深对网络协议的理解。
二、实验目的1. 熟悉常用网络协议的报文格式和工作机制。
2. 掌握网络协议分析工具的使用方法。
3. 培养网络故障排查和问题解决能力。
三、实验环境1. 实验设备:PC机、网线、Wireshark软件。
2. 实验网络:局域网环境,包括路由器、交换机、PC等设备。
四、实验内容本实验主要分析以下协议:1. IP协议2. TCP协议3. UDP协议4. HTTP协议5. FTP协议五、实验步骤1. IP协议分析(1)启动Wireshark软件,选择合适的抓包接口。
(2)观察并分析IP数据报的报文格式,包括版本、头部长度、服务类型、总长度、标识、标志、片偏移、生存时间、协议、头部校验和、源IP地址、目的IP地址等字段。
(3)分析IP分片和重组过程,观察TTL值的变化。
2. TCP协议分析(1)观察TCP数据报的报文格式,包括源端口号、目的端口号、序号、确认号、数据偏移、标志、窗口、校验和、紧急指针等字段。
(2)分析TCP连接建立、数据传输、连接终止的过程。
(3)观察TCP的重传机制和流量控制机制。
3. UDP协议分析(1)观察UDP数据报的报文格式,包括源端口号、目的端口号、长度、校验和等字段。
(2)分析UDP的无连接特性,观察UDP报文的传输过程。
4. HTTP协议分析(1)观察HTTP请求报文和响应报文的格式,包括请求行、头部字段、实体等。
(2)分析HTTP协议的请求方法、状态码、缓存控制等特性。
(3)观察HTTPS协议的加密传输过程。
5. FTP协议分析(1)观察FTP数据报的报文格式,包括命令、响应等。
(2)分析FTP的文件传输过程,包括数据传输模式和端口映射。
实验八 TLS协议分析

实验八TLS协议分析一、实验环境:win10专业版系统虚拟机,wireshark二、实验步骤1.选择https://网站,首先通过ping语句获得百度IP地址111.13.100.92。
图12.wireshark抓包,使用ip.src==113.13.100.92&ssl过滤包。
在浏览器中访问https://,结果如下图所示图2其中截取了多次包,但是都未捕捉到ClientHello的包,后来发现不止这一个包没有看到而是所有关于Client的包都没有找到,接着找到一个Server Hello Done的包跟踪其SSL流,终于观察到了完整的关于client的包,如下图所示:图3三、实验分析(1)客户端发起握手协商操作,它将发送一个ClientHello消息给服务器,消息中明确了其所支持的SSL/TLS版本、Cipher suite加密算法组合等,可以让服务器选择,并提供了一个客户端随机数,用于以后生成会话密钥使用。
图4(2)服务器返回ServerHello图5服务器将返回一个ServerHello消息,该消息包含了服务器选择的协议版本、加密算法,以及服务器随机数、会话ID等内容。
其中,服务器选择的协议版本应小于等于客户端ClientHello中的协议版本。
本次实验中服务器确认使用TLS 1.2版本的协议,并选择TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384加密算法组合(3)服务器发送Certificate图6服务器发送ServerHello消息,选择好协议版本和加密算法组合后,将发送Certificate 消息,该消息包含了服务器的证书等信息,可通过证书链认证该证书的真实性。
根据选择的加密算法组合的不同,服务器证书中的公钥也可被用于加密后面握手过程中生成的Premaster secret。
(4)服务器发送ServerKeyExchange图7服务器发送ServerKeyExchange消息,消息中包含了服务器这边的EC Diffie-Hellman算法相关参数。
实验八--网络性能监测分析工具Sniffer捕获高层协议数据包并分析

实验八-网络性能监测分析工具Sniffer捕获高层协议数据包并分析实验目的: 使用Sniffer抓取ftp的数据报分析FTP的三次“握手”的过程。
分析FTP客户端和服务器端通信过程实验环境: Windows环境下常用的协议分析工具: sniffer 搭建Serv-U FTP Server, 在计算机上建立FTP服务器VMware虚拟机, 用虚拟机进行登录FTP。
实验内容和步骤:1. 建立网络环境。
用Serv-U FTP Server在计算机上建立一台FTP服务器, 设置IP地址为: 192.168.0.10。
在Serv-U FTP Server中已设定用户xyz, 密码123123。
(也可以自行设定其他帐号)2. 在此计算机上安装了sniffer。
3.启动该机器上的虚拟机作为一台FTP客户端, 设置IP地址为: 192.168.0.12。
4. 使用ping命令看是否连通。
记录结果。
5. 使用虚拟机登录FTP服务器。
6. 运行sniffer嗅探器, 并在虚拟机的“运行”中输入ftp://192.168.0.10, 点确定后出现如下图的登录窗口:在登录窗口中输入:用户名(xyz), 密码(123123)使用sniffer抓包, 再在sniffer软件界面点击“stop and display”, 选择“Decode”选项, 完成FTP命令操作过程数据包的捕获。
8.在sniffer嗅探器软件上点击Objects可看到下图, 再点击“DECODE(反解码)。
记录FTP三次握手信息, 写出判断这三个数据包的依据(如syn及ack)。
记录端口信息等内容。
9.找出数据包中包含FTPUSER命令的数据包, 记录显示的用户名。
10.捕获用户发送PASS命令的数据包, 记录显示的密码。
11. 找出FTP服务器端与客户端端口20进行三次握手打开数据传输。
记录数据信息。
实验八 RIP协议分析

实验八RIP协议分析1实验拓扑图本实验由4人一组进行实验,其中实验主机D作为服务器来启动VLC进行路由环境搭建。
注意将与网络切换器相连的实验主机的网络切换器拨到B的位置(A为与网络测试接口TAP 的连接),以保证其直接接入实验室网络交换机上。
同时,请将TAP中TAP/IN和TAP/OUT:接口上的网线拔出。
以避免与TAP中host接口相连的计算机不能正常上网。
拓扑图如下其中在VLC服务器中简单的搭建一个由3个路由器组建的简单RIP路由环境,拓扑图如下:路由器R1路由器R2路由器R3拓扑图中的互联网网关用于实验主机与VLC中的路由器进行通信.例如互联网网关E1用于连接实验主机A和路由器R1.需要注意的是,各个分组的IP配置信息是不相同的,请按照各个分组的配置信息进行实验。
五人一组实验分组1配置信息实验主机AIP:192.168.11.10 子网掩码:255.255.255.0 网关:192.168.11.1实验主机BIP:192.168.12.10 子网掩码:255.255.255.0 网关:192.168.12.1IP:192.168.13.10 子网掩码:255.255.255.0 网关:192.168.13.1实验主机D(也是本实验中VLC服务器)不需要更改配置路由器R1eth0:192.168.1.1/24 eth1:192.168.11.1/24路由器R2eth0:192.168.1.2/24 eth1:192.168.2.2/24 eth2:192.168.12.1/24 路由器R3eth0:192.168.13.1/24 eth1:192.168.2.3/24分组2配置信息实验主机AIP:192.168.21.10 子网掩码:255.255.255.0 网关:192.168.21.1实验主机BIP:192.168.22.10 子网掩码:255.255.255.0 网关:192.168.22.1实验主机CIP:192.168.23.10 子网掩码:255.255.255.0 网关:192.168.23.1实验主机D(也是本实验中VLC服务器)不需要更改配置路由器R1eth0:192.168.1.1/24 eth1:192.168.21.1/24路由器R2eth0:192.168.1.2/24 eth1:192.168.2.2/24 eth2:192.168.22.1/24 路由器R3eth0:192.168.23.1/24 eth1:192.168.2.3分组3配置信息实验主机AIP:192.168.31.10 子网掩码:255.255.255.0 网关:192.168.31.1实验主机BIP:192.168.32.10 子网掩码:255.255.255.0 网关:192.168.32.1实验主机CIP:192.168.33.10 子网掩码:255.255.255.0 网关:192.168.33.1实验主机D(也是本实验中VLC服务器)不需要更改配置路由器R1eth0:192.168.1.1/24 eth1:192.168.31.1/24路由器R2eth0:192.168.1.2/24 eth1:192.168.2.2/24 eth2:192.168.32.1/24 路由器R3eth0:192.168.33.1/24 eth1:192.168.2.3/24分组4配置信息IP:192.168.41.10 子网掩码:255.255.255.0 网关:192.168.41.1实验主机BIP:192.168.42.10 子网掩码:255.255.255.0 网关:192.168.42.1实验主机CIP:192.168.43.10 子网掩码:255.255.255.0 网关:192.168.43.1实验主机D(也是本实验中VLC服务器)不需要更改配置路由器R1eth0:192.168.1.1/24 eth1:192.168.41.1/24路由器R2eth0:192.168.1.2/24 eth1:192.168.2.2/24 eth2:192.168.42.1/24 路由器R3eth0:192.168.43.1/24 eth1:192.168.2.3/24分组5配置信息实验主机AIP:192.168.51.10 子网掩码:255.255.255.0 网关:192.168.51.1实验主机BIP:192.168.52.10 子网掩码:255.255.255.0 网关:192.168.52.1实验主机CIP:192.168.53.10 子网掩码:255.255.255.0 网关:192.168.53.1实验主机D(也是本实验中VLC服务器)不需要更改配置路由器R1eth0:192.168.1.1/24 eth1:192.168.51.1/24路由器R2eth0:192.168.1.2/24 eth1:192.168.2.2/24 eth2:192.168.52.1/24 路由器R3eth0:192.168.53.1/24 eth1:192.168.2.3/24分组6配置信息实验主机AIP:192.168.61.10 子网掩码:255.255.255.0 网关:192.168.61.1实验主机BIP:192.168.62.10 子网掩码:255.255.255.0 网关:192.168.62.1实验主机CIP:192.168.63.10 子网掩码:255.255.255.0 网关:192.168.63.1实验主机D(也是本实验中VLC服务器)不需要更改配置路由器R1eth0:192.168.1.1/24 eth1:192.168.61.1/24路由器R2eth0:192.168.1.2/24 eth1:192.168.2.2/24 eth2:192.168.62.1/24eth0:192.168.63.1/24 eth1:192.168.2.3/24分组7配置信息实验主机AIP:192.168.71.10 子网掩码:255.255.255.0 网关:192.168.71.1实验主机BIP:192.168.72.10 子网掩码:255.255.255.0 网关:192.168.72.1实验主机CIP:192.168.73.10 子网掩码:255.255.255.0 网关:192.168.73.1实验主机D(也是本实验中VLC服务器)不需要更改配置路由器R1eth0:192.168.1.1/24 eth1:192.168.71.1/24路由器R2eth0:192.168.1.2/24 eth1:192.168.2.2/24 eth2:192.168.72.1/24 路由器R3eth0:192.168.73.1/24 eth1:192.168.2.3/24分组8配置信息实验主机AIP:192.168.81.10 子网掩码:255.255.255.0 网关:192.168.81.1实验主机BIP:192.168.82.10 子网掩码:255.255.255.0 网关:192.168.82.1实验主机CIP:192.168.83.10 子网掩码:255.255.255.0 网关:192.168.83.1实验主机D(也是本实验中VLC服务器)不需要更改配置路由器R1eth0:192.168.1.1/24 eth1:192.168.81.1/24路由器R2eth0:192.168.1.2/24 eth1:192.168.2.2/24 eth2:192.168.82.1/24 路由器R3eth0:192.168.83.1/24 eth1:192.168.2.3/24分组9配置信息实验主机AIP:192.168.91.10 子网掩码:255.255.255.0 网关:192.168.91.1实验主机BIP:192.168.92.10 子网掩码:255.255.255.0 网关:192.168.92.1实验主机CIP:192.168.93.10 子网掩码:255.255.255.0 网关:192.168.93.1实验主机D(也是本实验中VLC服务器)不需要更改配置eth0:192.168.1.1/24 eth1:192.168.91.1/24路由器R2eth0:192.168.1.2/24 eth1:192.168.2.2/24 eth2:192.168.92.1/24 路由器R3eth0:192.168.93.1/24 eth1:192.168.2.3/24分组10配置信息实验主机AIP:192.168.101.10 子网掩码:255.255.255.0 网关:192.168.101.1实验主机BIP:192.168.102.10 子网掩码:255.255.255.0 网关:192.168.102.1 实验主机CIP:192.168.103.10 子网掩码:255.255.255.0 网关:192.168.103.1 实验主机D(也是本实验中VLC服务器)不需要更改配置路由器R1eth0:192.168.1.1/24 eth1:192.168.101.1/24路由器R2eth0:192.168.1.2/24 eth1:192.168.2.2/24 eth2:192.168.102.1/24 路由器R3eth0:192.168.103.1/24 eth1:192.168.2.3/24分组11配置信息实验主机AIP:192.168.111.10 子网掩码:255.255.255.0 网关:192.168.111.1实验主机BIP:192.168.112.10 子网掩码:255.255.255.0 网关:192.168.112.1 实验主机CIP:192.168.113.10 子网掩码:255.255.255.0 网关:192.168.113.1 实验主机D(也是本实验中VLC服务器)不需要更改配置路由器R1eth0:192.168.1.1/24 eth1:192.168.111.1/24路由器R2eth0:192.168.1.2/24 eth1:192.168.2.2/24 eth2:192.168.112.1/24 路由器R3eth0:192.168.113.1/24 eth1:192.168.2.3/24分组12配置信息实验主机AIP:192.168.121.10 子网掩码:255.255.255.0 网关:192.168.121.1实验主机BIP:192.168.122.10 子网掩码:255.255.255.0 网关:192.168.122.1IP:192.168.123.10 子网掩码:255.255.255.0 网关:192.168.123.1 实验主机D(也是本实验中VLC服务器)不需要更改配置路由器R1eth0:192.168.1.1/24 eth1:192.168.121.1/24路由器R2eth0:192.168.1.2/24 eth1:192.168.2.2/24 eth2:192.168.122.1/24 路由器R3eth0:192.168.123.1/24 eth1:192.168.2.3/24分组13配置信息实验主机AIP:192.168.131.10 子网掩码:255.255.255.0 网关:192.168.131.1实验主机BIP:192.168.132.10 子网掩码:255.255.255.0 网关:192.168.132.1 实验主机CIP:192.168.133.10 子网掩码:255.255.255.0 网关:192.168.133.1 实验主机D(也是本实验中VLC服务器)不需要更改配置路由器R1eth0:192.168.1.1/24 eth1:192.168.131.1/24路由器R2eth0:192.168.1.2/24 eth1:192.168.2.2/24 eth2:192.168.132.1/24 路由器R3eth0:192.168.133.1/24 eth1:192.168.2.3/24分组14配置信息实验主机AIP:192.168.141.10 子网掩码:255.255.255.0 网关:192.168.141.1实验主机BIP:192.168.142.10 子网掩码:255.255.255.0 网关:192.168.142.1 实验主机CIP:192.168.143.10 子网掩码:255.255.255.0 网关:192.168.143.1 实验主机D(也是本实验中VLC服务器)不需要更改配置路由器R1eth0:192.168.1.1/24 eth1:192.168.141.1/24路由器R2eth0:192.168.1.2/24 eth1:192.168.2.2/24 eth2:192.168.142.1/24 路由器R3eth0:192.168.143.1/24 eth1:192.168.2.3/24分组15配置信息IP:192.168.151.10 子网掩码:255.255.255.0 网关:192.168.151.1实验主机BIP:192.168.152.10 子网掩码:255.255.255.0 网关:192.168.152.1 实验主机CIP:192.168.153.10 子网掩码:255.255.255.0 网关:192.168.153.1 实验主机D(也是本实验中VLC服务器)不需要更改配置路由器R1eth0:192.168.1.1/24 eth1:192.168.151.1/24路由器R2eth0:192.168.1.2/24 eth1:192.168.2.2/24 eth2:192.168.152.1/24 路由器R3eth0:192.168.153.1/24 eth1:192.168.2.3/24分组16配置信息实验主机AIP:192.168.161.10 子网掩码:255.255.255.0 网关:192.168.161.1实验主机BIP:192.168.162.10 子网掩码:255.255.255.0 网关:192.168.162.1 实验主机CIP:192.168.163.10 子网掩码:255.255.255.0 网关:192.168.163.1 实验主机D(也是本实验中VLC服务器)不需要更改配置路由器R1eth0:192.168.1.1/24 eth1:192.168.161.1/24路由器R2eth0:192.168.1.2/24 eth1:192.168.2.2/24 eth2:192.168.162.1/24 路由器R3eth0:192.168.163.1/24 eth1:192.168.2.3/24分组17配置信息实验主机AIP:192.168.171.10 子网掩码:255.255.255.0 网关:192.168.171.1实验主机BIP:192.168.172.10 子网掩码:255.255.255.0 网关:192.168.172.1 实验主机CIP:192.168.173.10 子网掩码:255.255.255.0 网关:192.168.173.1 实验主机D(也是本实验中VLC服务器)不需要更改配置路由器R1eth0:192.168.1.1/24 eth1:192.168.171.1/24路由器R2eth0:192.168.1.2/24 eth1:192.168.2.2/24 eth2:192.168.172.1/24eth0:192.168.173.1/24 eth1:192.168.2.3/242实验步骤步骤1:将实验主机D以VLC进行启动运行,其中实验主机A-C均进入到Windows 2000操作系统中,并且要求实验主机A-C均安装有WinSCP和Putty工具,一般情况下,这些工具都在Windows桌面上.步骤2:实验主机D上系统启动完成之后,点击运行桌面上的“虚拟实验中心”图标,如图:然后通过访问VLC服务器来下载实验包.在实验主机上可以打开一个IE浏览器,在地址栏中输入http://172.16.32.250,在该页面当中点击进入到“VLC实验课件下载”目录下,然后点击目录“18”,进入到该目录,再各自下载所需的实验包,以第一小组为例来说,则需要下载文件PA-18-1.mar,点击该文件就可以下载到本地计算机上.在打开的“虚拟实验中心”界面中,点击“实验项目->打开(O)”来打开刚刚所下载的实验包,如PA-18-1.mar.最后点击界面下方的“运行”按钮图标来启动VLC中的所有实验设备.步骤3:在此过程中,其余的实验主机A-C则可以按照每个分组的配置信息来配置其IP 地址等信息(每个小组请按照所在分组进行正确的IP地址等配置).步骤4:当VLC中设备全部启动完成之后,在实验主机A-C的命令提示符中ping各自所连接的路由器,例如在实验主机A中ping路由器的R1的eth1端口地址,即192.168.11.1.如不能ping通则检查自己实验主机的配置信息.此时在实验主机D(即VLC)中,需要使用用户名vyatta和密码vyatta进行登陆各个路由器,然后在路由器中输入如下命令确保能够顺利完成步骤6,如图路由器R1:登陆之后需要输入以下命令进行配置(黑体字部分是需要输入的命令):vyatta@R1:~$ configure[edit]vyatta@R1# set service ssh allow-root true[edit]vyatta@R1# commitRestrating OpenBSD Secure Shell serverLsshd.[edit]vyatta@R1#同样在路由器R2和R3上也必须进行如上操作.步骤5:继续ping路由器R1的其他端口地址和其他路由器的端口地址,而且在实验主机A中也能够尝试是否能够ping通其他的实验主机.步骤6:实验主机A-C分别使用Putty登录到相应的路由器当中,例如在实验主机A中登录到路由器R1.具体步骤如下:打开Putty,在Host Name(or IP address)栏中输入路由器R1的端口地址,如图:然后点击“Open”按钮进行登陆.在其登陆过程中,可能会出现一个要进行密钥更新的窗口,点击“是”即可.最后输入路由器R1的用户名(root)和密码(vyatta)进行登陆就可以进入到路由器当中了.同样的,在实验主机B和C中,分别使用Putty登陆到所对应的路由器当中去.步骤7:在路由器R1中,使用tcpdump命令来捕捉路由器上的RIP报文,并且使用指定的文件保存下来,使用RIP-RX-Y.pcap进行命名(其中RX表示为所对应的路由器,如R1或R2;Y 表示的你所在的实验小组,如1小组,).如图所示:由于这样所捕捉的报文是保存在一个当中,而不会在当前窗口中进行显示,并且RIP路由更新的时间为30秒,因此确保你使用该命令捕捉报文的的时间要在30秒以上,建议捕捉报文时间为1分钟.使用CTRL+C快捷键进行停止捕获报文.捕捉报文命令tcpdump –w RIP-R1-1.pcap –s 0 –i eth0解释:-w:将捕捉报文写入所指定的文件当中,其RIP-R1-1.pcap就是所指定的文件名-s 0:tcpdump默认抓包大小限制为96byte.设置为0则忽略包大小的限制,按照包的长度实际进行抓取.-i:指定捕捉报文的接口名称需要注意的是,捕捉报文时必须指定端口,不然会默认的使用eth0端口.而且在本实验当中,实验主机A在路由器R1上捕捉报文时必须使用eth0端口,实验主机B在路由器R2上捕捉报文时必须使用eth1端口,实验主机C在路由器R3上捕捉报文时必须使用eth0端口.步骤8:在其他实验主机上按照步骤6和7进行报文捕捉.但是必须登陆到所对应的路由器当中.登陆之后使用tcpdump命令进行报文捕捉,其中:在实验主机B中使用命令tcpdump –w RIP-R2-1.pcap –s 0 –i eth1在实验主机C中使用命令tcpdump –w RIP-R3-1.pcap –s 0 –i eth0步骤9:在各个实验主机中使用WinSCP工具从所对应的路由器当中将捕捉的报文文件复制到本地实验主机上.以实验主机A为例,打开WinSCP,输入路由器的IP地址,用户名以及密码就可以进行登陆了.随后就可以点击“登陆”按钮进行登陆了.然后就将我们所需要的RIP-R1-1.pcap文件复制到本地实验主机A上就可以了.同样在实验主机B和C中将对应路由器上所捕捉的报文文件复制到本地实验主机上.并对这些文件按19-学号.pcap进行命名。
《网络协议分析》实验指导书

《网络协议分析》实验指导书verO.01计算机与信息工程系shhkun2014年9月、八前《网络协议分析》课程是针对计算机及网络工程专业的本科生而设置的一门课程,它具有很强的理论性和实践性。
本实验指导书是专门为《网络协议分析》理论课程配套的、指导学生完成相关实验及操作而编写的。
本实验指导书按照TCP/IP的层次结构对网络互连中的主要协议进行分析,由下而上的设计了 9个实验,涉及ARP协议分析、IP协议分析、ICMP协议分析、UDP协议分析、TCP协议分析、DHCP协议分析、DNS协议分析、HTTP协议分析、SMTP协议与POP3协议分析。
在实验内容之前对实验采用的Wireshark软件进行了介绍。
希望学生们通过以上实验进一步加深对网络协议的理解和掌握协议分析的方法。
特别说明:1、本指导书中给出的实验网络物理模型,不需要学生动手搭建,所有网络物理模型都基于现有的实验室运行环境。
2、本指导书中实验内容的开展与实验室使用的交换机和路由器的品牌无关,实验指导书中指出实验品牌等,只是为了举例方便。
3、实验中设备的ip地址以实际实验机器的ip地址为准,不同学生的IP地址应该不同。
目录1.网络协议分析实验环境要求 (4)2.网络协议分析器Wireshark (5)2.1Wireshark 主窗口简介 (5)2.2Wireshark 菜单栏简介 (6)2.3Wireshark 的工具栏 (7)2.4Wireshark 的网络数据抓包过程 (8)2.5由Wireshark协议窗口分析协议的格式 (10)3.网络层协议分析 (11)实验一ARP协议分析 (12)实验二IP 协议分析 (15)实验三ICMP协议分析 (19)4.传输层协议分析 (27)实验四UDP协议分析 (28)实验五TCP协议分析 (31)5.应用层协议分析 (34)实验六DHCP协议分析 (34)实验七DNS协议分析 (37)实验八HTTP协议分析 (39)实验九SMTP及POP3协议分析 (42)(1) 本指导书按照 TCP/IP 的层次结构对网络互连中的主要协议进行分析。
《计算机网络》实验指导书

《计算机网络》 实验指导书 课 程:计算机网络 编 著:孙兴春 讲 师 审 批: 文立斌 高级工程师计算机与信息科学系计算机科学与技术教研室 2009 年 9 月 8 日 东莞理工学院城市学院CITY COLLEGE OF DGUT《计算机网络》是计算机科学与技术和软件工程专业的一门重要的专业基础课程。
它是集计算机技术、通信技术、计算机软件、硬件和操作系统为一体的综合应用课程。
通过本课程的学习、实验,使学生能够掌握计算机网络的基本知识和基本技能,并提高其实验动手能力,增强其实际应用能力,更好地为以后的工作、学习服务。
通过实验,进一步加深理解计算机网络原理、提高学生的实践能力以及对网络相关研究方向的认识。
在学习完该课程的相关内容后,学生能够更深入地使用网络命令进行网络测试和维护、合理地规划和实现局域网、配置相应的服务、对交换机和路由器进行基本的配置和管理。
在此基础上利用实验室现有的设备构建一个局域网,完成所有的配置和测试,提高网络工程能力,同时加深对理论的理解以及应用。
本实验指导书是作为《计算机网络》课程学习的补充,对于《计算机网络》的实验环境和实验所需的预备知识进行了详细的介绍,同时对每个实验都根据实验目的精心设计了实验内容,给出了实验步骤。
共20学时的实验学时。
拟定安排以下9个实验,其中实验四占4个课时,其他各两个课时。
实验一:双绞线的制作实验二:CRC的VC++/C++实现实验三:IP协议分析实验四:子网划分与多网段互连互通实验五:动态路由协议配置实验六:TCP/UDP协议分析实验七:DNS服务器的搭建实验八:FTP、WWW服务器的搭建实验九:电子邮件的加密处理总则 (1)实验一双绞线的制作 (2)实验二CRC的VC++/C++实现 (7)实验三IP协议分析 (8)实验四子网划分与多网段互连互通 (12)实验五动态路由协议配置 (16)实验六TCP/UDP协议分析 (21)实验七DNS服务器的搭建 (22)实验八FTP、WWW服务器的搭建 (24)实验九电子邮件的加密处理 (27)本实验指导书的编写依据是《计算机网络》课程实验教学大纲。
计算机组成原理实验八简单模型计算机实验

计算机组成原理实验八简单模型计算机实验关键信息项:1、实验目的2、实验设备3、实验原理4、实验步骤5、数据记录与分析6、注意事项7、故障处理8、实验结果评估标准11 实验目的本实验旨在通过构建和操作简单模型计算机,深入理解计算机组成原理中的核心概念,包括数据存储、运算处理、指令执行等,培养学生的实际动手能力和对计算机系统的综合理解能力。
111 具体目标1111 掌握简单模型计算机的基本结构和工作原理。
1112 熟悉各种指令的编码和执行过程。
1113 能够运用所学知识设计和实现简单的计算任务。
12 实验设备121 硬件设备计算机主机、实验箱、连接线等。
122 软件工具特定的模拟软件、编程环境等。
13 实验原理131 模型计算机结构包括运算器、控制器、存储器、输入设备和输出设备等主要部件,以及它们之间的连接和协同工作方式。
132 指令系统定义了各种操作指令的格式、功能和编码方式。
133 数据存储与传输说明数据在存储器中的存储方式和在各部件之间的传输机制。
14 实验步骤141 连接实验设备按照正确的方式将计算机主机与实验箱等设备进行连接,并确保连接稳定可靠。
142 启动软件工具打开相应的模拟软件和编程环境,进行初始化设置。
143 设计指令序列根据实验要求,设计一系列的指令来完成特定的计算任务。
144 输入指令到模型计算机通过编程环境将指令输入到模型计算机的存储器中。
145 启动模型计算机运行设置相关参数,启动模型计算机执行指令序列。
146 观察运行过程和结果密切观察模型计算机在执行指令过程中的各种状态变化,以及最终的输出结果。
15 数据记录与分析151 记录实验过程中的关键数据包括指令的执行时间、存储器的状态变化、运算结果等。
152 对数据进行分析对比预期结果,分析实验数据的准确性和合理性,找出可能存在的偏差和错误原因。
16 注意事项161 设备操作规范严格按照设备的操作说明进行连接和使用,避免因不当操作造成设备损坏。
实验八 IPSec安全通信

实验八IPSec实现安全通信【实验目的】1.了解IPSec主要协议;2.理解IPSec工作原理;3.掌握Windows环境下利用IPSec在两台主机间建立安全通道的方法。
【实验环境】两台以上装有Windows 2000/XP/2003操作系统的计算机,其中必须有一台为Windows 2000/2003。
【实验原理】IPSec作为一套标准的集合,包括加密技术、Hash算法、Internet密钥交换、AH、ESP 等协议,在需要时还可以互相结合。
IPSec是基于OSI第三层的隧道协议,第三层隧道协议对于OSI模型的网络层,使用包作为数据交换单位,将IP包封装在附加的IP包头中,通过IP网络发送。
IPSec提供了一种标准的、健壮的以及包容广泛的机制,可用为IP层协议及上层协议提供以下几种服务:数据源验证,确保收到的数据的发送者为实际发送者;数据完整性,确保数据在传输过程中未被非法篡改;抗重播保护,防止数据被假冒者复制存储并重复发送;信息的机密性,确保数据在传输过程中不被偷看。
IPSec定义了一套默认的、强制实施的算法,以确保不同的实施方案可以共通。
IPSec包含四类组件:IPSec进程本身,验证头协议(AH)或封装安全载荷协议ESP; Internet 密钥交换协议(IKE, Internet Key Exchange),进行安全参数的协商;SADB(SA Database),用于存储安全关联(SA,Security Association)等安全相关的参数;SPD(Security Policy Database),用于存储安全策略。
(1)IPSec的工作模式在IPSec协议中,无论是AH还是ESP,都可工作于传输模式(Transport Mode)和隧道模式(Tunnel Mode)。
①传输模式,传输模式主要为上层协议提供保护,即传输模式的保护扩充到IP分组的有效载荷。
传输模式使用原始的明文IP头,只加密数据部分(包括TCP头或UDP头),如图8-1所示。
实验报告——精选推荐

实验报告实验⼀交换机及路由器的简单配置3.如果两个接头的线序发⽣同样的错误,⽹线还能⽤吗?会有什么后果?4. 完成交换机的以下配置,应是⽤什么命令?(1)由⽤户视图进⼊系统视图:(2)进⼊交换机的端⼝1:(3)显⽰交换机端⼝1的信息:5.写出交换机端⼝1的显⽰信息,并解释交换机端⼝0所显⽰信息的含义。
6、完成路由器的以下配置,应是⽤什么命令?(1)配置路由器的名称为R:(2)进⼊路由器的端⼝1:(3)设置端⼝1的IP地址和和⼦⽹掩码分别为192.168.5.1、255.255.255.248: (4)显⽰端⼝1的信息:7、写出路由器端⼝1的显⽰信息,并解释路由器端⼝1所显⽰信息的含义。
实验⼆简单组⽹2. 配置完路由器后,如何查看路由器的E0及E1的接⼝状态?将路由器的E0及E1的接⼝状态信息记录下来。
3. 如果把主机IP地址设成与路由器端⼝不同⽹段的IP地址,主机间能否互通?为什么?4. 如果公⽹端⼝E1的IP地址不包含在地址池中,但在⼀个⽹段,还能正常连通吗?5. 如果公⽹端⼝E1的IP地址和地址池中的地址不在⼀个⽹段,还能连通吗?6.写出可⽤于私有⽹络的三个保留⽹段。
7. 写出实验中所遇到的故障和解决办法,评论和建议。
实验三链路层协议分析注意:(1)因为在实验过程中,⽤Ethereal截获报⽂时,会得到⼀些交换机的刷新报⽂,这些报⽂与本次实验⽆关,不⽤填写在实验报告中去分析。
(以后的实验同理)1.找到发送消息的报⽂并进⾏分析,研究主窗⼝中的数据报⽂列表窗⼝和协议树窗⼝2. 在⽹络课程学习中,802.3和ETHERNETII规定了以太⽹MAC层的报⽂格式分为7字节的前导符,1字节的起始符,6字节的⽬的MAC地址,6字节的源MAC地址,2字节的类型、数据字段和4字节的数据校验字段。
对于选中的报⽂,缺少哪些字段,为什么?3. 在配置流镜像和端⼝镜像前,执⾏PA PING PC,在PB上运⾏Ethereal截获报⽂;在配置流镜像和端⼝镜像后,执⾏PA PING PC,再在PB上运⾏Ethereal截获报⽂;对⽐两次截获的报⽂,进⾏分析(要求)。
TFTP实验报告

河南农业大学计算机网络综合实验实验报告综合实验名称:ftp、tftp、telnet 实验学期:学院:专业:班级:姓名:学号:指导教师:实验日期:概述:ftp是应用层的协议,它基于传输层,为用户服务,它们负责进行文件的传输。
ftp是一个8位的客户端-服务器协议,能操作任何类型的文件而不需要进一步处理,就像mime或unencode一样。
但是,ftp有着极高的延时,这意味着,从开始请求到第一次接收需求数据之间的时间会非常长,并且不时的必需执行一些冗长的登陆进程。
ftp服务一般运行在20和21两个端口。
端口20用于在客户端和服务器之间传输数据流,而端口21用于传输控制流,并且是命令通向ftp服务器的进口。
当数据通过数据流传输时,控制流处于空闲状态。
而当控制流空闲很长时间后,客户端的防火墙会将其会话置为超时,这样当大量数据通过防火墙时,会产生一些问题。
此时,虽然文件可以成功的传输,但因为控制会话会被防火墙断开,传输会产生一些错误。
ftp的工作原理:文件传输协议(ftp)是tcp/ip提供的标准机制,用来将文件从一个主机复制到另一个主机。
ftp使用tcp的服务。
ftp优缺点:优点:1.促进文件的共享(计算机程序或数据)2.鼓励间接或者隐式的使用远程计算机3.向用户屏蔽不同主机中各种文件存储系统的细节4.可靠和高效的传输数据缺点:1.密码和文件内容都使用明文传输,可能产生不希望发生的窃听。
2.因为必须开放一个随机的端口以建立连接,当防火墙存在时,客户端很难过滤处于主动模式下的ftp流量。
这个问题通过使用被动模式的ftp得到了很大解决。
3.服务器可能会被告知连接一个第三方计算机的保留端口。
ftp虽然可以被终端用户直接使用,但是它是设计成被ftp客户端程序所控制。
运行ftp服务的许多站点都开放匿名服务,在这种设置下,用户不需要帐号就可以登录服务器,默认情况下,匿名用户的用户名是:“anonymous”。
这个帐号不需要密码,虽然通常要求输入用户的邮件地址作为认证密码,但这只是一些细节或者此邮件地址根本不被确定,而是依赖于ftp服务器的配置情况。
网络协议分析器设计与实现

企业技术开发2010年1月企业技术开发TECHNOLOGICAL DEVELOPMENT OF ENTERPRISE 2010年1月Jan.2010网络协议分析器设计与实现黄俊杰,王建新,张静摘要:文章选用Linux+Qt 的开发模式,采用多线程编程、信号槽等技术,设计并实现了基于Libpcap+Libnet 开发包的TCP/IP 网络协议组协议分析器。
通过对系统进行了较为全面的测试和结果分析,表明系统具有易用性、准确性的特点。
关键词:TCP/IP 协议族;Qt ;Libpcap ;Libnet中图分类号:TP393文献标识码:A 文章编号:1006-8937(2010)01-0012-04Abstract:This paper propose and implement an interactive Network Protocol Analyzer based on the Libpcap and Libnet.We choose Linux and Qt as the development platform and adopt a lot of key technologies such as signals and slots,multi-threaded programming.The testing results show that NPLS is accurate and easy to use.Keywords :TCP/IP protocols ;Qt ;Libpcap ;Libnet(中南大学信息科学与工程学院,湖南长沙410083)Design and implementation of network protocol analyzerHUANG Jun-jie ,WANG Jian-xin ,ZHANG Jing(SchoolofInformationScienceandEngineering,Engineering,CentralSouthUniversity,Changsha,Hunan410083,China)收稿日期:2009-10-15作者简介:黄俊杰(1979—),男,湖北大冶人,硕士研究生,讲师,主要研究方向:计算机网络和无线传感器网络。
路由协议分析实验八 PIM协议分析

实验八、PIM协议分析一、实验目的(1)掌握PIM协议的dense模式工作原理(2)掌握PIM协议sparse模式工作原理(3)掌握多播路由选择协议和单播路由选择协议的异同和关系(4)掌握PIM协议的配置方法(5)掌握PIM报文格式二、实验拓扑图8-1 PIM协议分析实验拓扑三、实验步骤1、给路由器各接口配置IP地址,IP地址第2字节修改为自己学号后3位2、在路由器R1、R2、R3、R6上配置OSPF,所有路由器在一个区域0中,进程号使用学号后3位。
3、在路由器R5上删除路由功能,配置默认网关为35.1.1.3,参考命令:R5(config)#no ip routingR5(config)#ip default-gateway 35.1.1.34、分别在R1的s1/1接口、f0/0接口,R2的s1/0接口,R3的s1/0,R4的s1/1接口启动抓包。
5、在R1的f0/0、s1/0、s1/1,R2的s1/0、s1/1,R3的s1/0、s1/1,R6的f0/0启动pim-dense 协议,参考命令如下:R1(config)#ip multicast-routing 开启多播路由协议R1(config)#int s1/0R1(config-if)#ip pim dense-modeR1(config-if)#int s1/1R1(config-if)#ip pim dense-modeR1(config-if)#int f0/0R1(config-if)#ip pim dense-mode6、配置后查看在R1的f0/0接口抓起的PIM hello报文,填写表9-1。
问题1:在R1上使用show ip igmp interface f0/0查看结果,R1和R6之间谁是DR?7、在R1上修改pim的优先级为10,配置后填写表9-2参考命令:R1(config)#int f0/0R1(config-if)#ip pim dr-priority 10表9-2过此配置说明PIM中DR选举和OSPF中有什么不同?8、在R1上添加回环接口lo0,并通告进OSPF协议,参考命令如下:R1(config)#int lo0R1(config-if)#ip address 1.1.1.1 255.255.255.0R1(config)#router ospf 110R1(config-router)#network 1.1.1.0 0.0.0.255 area 09、修改PIM为sparse模式,在路由器R1、R2、R3、R6上静态指定R1为RP,参考命令:R1(config)#ip pim rp-address 1.1.1.110、设置后,查看在R1与R2之间抓取的修剪报文和rp-reachable报文填写表9-3和表9-4表9-3 修剪报文11、在R1和R3之间的链路上查看抓取的数据包,找到修剪报文中组地址为224.1.1.1的报文,填写表9-5。
实验指导书-实验八:NS3基础仿真实验

计算机网络实验实验指导书实验名称NS3基础仿真实验一、实验目的1.了解网络仿真的意义2.熟悉NS-3的基本语句3.安装并熟悉使用NS-34.用NS-3搭建最基本的网络仿真场景二、实验背景(一)网络仿真技术近年来,随着计算机和网络通信技术的不断发展,网络技术的研究也进入到了一个飞速发展的时期。
研究人员不断开发出新的网络协议、算法和应用,以适应日益增长的网络通信需要。
然而由于网络的不可控、易变和不可预测等特性的存在,给新的网络方案的验证、分析和比较带来了极大的困难。
目前网络通信的研究一般分为以下3种方法。
1)分析方法:在理论和协议层面上对网络通信技术或系统进行研究分析,抽象出数学分析模型,利用数学分析模型对问题进行求解。
如采用数学建模、协议分析、状态机、集合论以及概率统计等对多种理论分析手段和方法对通信网络及其算法、协议、网络性能等各个方面进行研究。
2)网络模拟:即计算机模拟仿真算法。
网络模拟日益成为分析、研究、设计和改善网络性能的强大工具,它通过在计算机上建立一个虚拟的网络平台,来实现真实网络环境的模拟,网络技术研究人员在这个平台上不仅能对网络通信、网络设备、协议以及网络应用进行设计研究,还能对网络的性能进行分析和评价。
3)实验网方法:对网络协议、网络行为和网络性能采用建立实验室测试网络、网络测试平台(network testbed)和小规模商用实验网络的方式对网络进行实战检验。
就是设计出研究所需要的合理硬件和软件配置环境,建立测试床和实验室,在现实的网络上进行研究。
以上3种方法有利有弊,相辅相成并各有侧重点。
理论研究适用于早期研究与设计阶段,对新算法和新技术进行理论准备和验证,除了人力和知识,几乎不需要什么额外成本。
实验网方法是网络和系统在投入实际应用前的一次系统的演练,能够发现网络设计与用户需求之间的相合度以及检验网络实际使用的效用和性能。
该阶段建设成本很高,要求技术和设备开发相对成熟,网络系统基本成型,主要是对业务、系统稳定性能和服务性能的检验。
计算机网络实验八

计算机⽹络实验⼋计算机⽹络实验指导书昆明理⼯⼤学信⾃学院实验⼋:计算机⽹络协议分析实验⼀、实验⽬的:了解各种协议的格式与⼯作机制,学习使⽤Wireshaek协议分析⼯具。
通过eNSP抓包⼯具,分析所获取报⽂的内容。
⼆、实验原理:1.TCP协议通讯的双⽅由IP地址和端⼝号标识。
32位序号、32位确认序号、窗⼝⼤⼩。
4位⾸部长度和IP协议头类似,表⽰TCP协议头的长度,以4字节为单位,因此TCP协议头最长可以是4x15=60字节,如果没有选项字段,TCP协议头最短20字节。
URG、ACK、PSH、RST、SYN、FIN是六个控制位。
16位检验和将TCP协议头和数据都计算在内。
2.UDP协议3.IP协议IP数据报的⾸部长度和数据长度都是可变长的,但总是4字节的整数倍。
对于IPv4,4位版本字段是4。
4位⾸部长度的数值是以4字节为单位的,最⼩值为5,也就是说⾸部长度最⼩是4x5=20字节,也就是不带任何选项的IP⾸部,4位能表⽰的最⼤值是15,就是说⾸部长度最⼤是60字节。
8位TOS字段有3个位⽤来指定IP数据报的优先级(⽬前已经废弃不⽤),还有4个位表⽰可选的服务类型(最⼩延迟、最⼤呑吐量、最⼤可靠性、最⼩成本),还有⼀个位总是0。
总长度是整个数据报的字节数。
每传⼀个IP数据报,16位的标识加1,可⽤于分⽚和重新组装数据报。
3位标志和13位⽚偏移⽤于分⽚。
TTL(Time to live)是这样⽤的:源主机为数据包设定⼀个⽣存时间,⽐如64,每过⼀个路由器就把该值减1,如果减到0就表⽰路由已经太长了仍然找不到⽬的主机的⽹络,就丢弃该包,因此这个⽣存时间的单位不是秒,⽽是跳(hop)。
协议字段指⽰上层协议是TCP、UDP、ICMP还是IGMP。
然后是校验和,只校验IP⾸部,数据的校验由更⾼层协议负责。
IPv4的IP地址长度为32位。
4.ICMP报⽂类型ICMP全称Internet Control Message Protocol(⽹际控制信息协议)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验八协议分析器程序的设计和实现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等)的层次结构自底向上进行解析,最后将解析结果显示输出。
1)解析Ethernet帧2)解析ARP数据包3)解析IP数据包4)解析ICMP,TCP和UDP数据包5.给出关键代码,并附注释。
1)解析Ethernet帧typedef struct{BYTE DesMacAddr[6]; //目的地址BYTE SrcMacAddr[6]; //源地址WORD LengthOrType; //数据长度或类型} MAC_HEADER;//MAC帧类型定义const u_short MAC_TYPE_IP = 0x0800; const u_short MAC_TYPE_ARP = 0x0806; const u_short MAC_TYPE_RARP = 0x8035;MAC_HEADER* pMacHdr = (MAC_HEADER*) pPkt;// Mac目的地址strItem.Format("Destination address: %02X:%02X:%02X:%02X:%02X:%02X",pMacHdr->DesMacAddr[0],pMacHdr->DesMacAddr[1],pMacHdr->DesMacAddr[2],pMacHdr->DesMacAddr[3],pMacHdr->DesMacAddr[4],pMacHdr->DesMacAddr[5]);// Mac源地址strItem.Format("Source address: %02X:%02X:%02X:%02X:%02X:%02X",pMacHdr->SrcMacAddr[0],pMacHdr->SrcMacAddr[1],pMacHdr->SrcMacAddr[2],pMacHdr->SrcMacAddr[3],pMacHdr->SrcMacAddr[4],pMacHdr->SrcMacAddr[5]);//类型/长度字段if (ntohs(pMacHdr->LengthOrType) > 1500)//类型字段(Ethernet V2.0){//根据类型字段调用相应的上层协议处理函数if (ntohs(pMacHdr->LengthOrType) == MAC_TYPE_IP) //IP协议{strItem = "IP";ParseIPPacket((BYTE*)pMacHdr+sizeof(MAC_HEADER),iLen-sizeof(MAC_HEADER));}else if (ntohs(pMacHdr->LengthOrType) == MAC_TYPE_ARP) //ARP协议{strItem = "ARP";ParseARPPacket((BYTE*)pMacHdr+sizeof(MAC_HEADER),iLen-sizeof(MAC_HEADER));}else if (ntohs(pMacHdr->LengthOrType) == MAC_TYPE_RARP) //RARP协议{strItem = "RARP";ParseRARPPacket((BYTE*)pMacHdr+sizeof(MAC_HEADER),iLen-sizeof(MAC_HEADER));}else //其他strItem = "UNKNOWN";}else //长度字段(IEEE802格式){strItem.Format("Length: %d bytes", ntohs(pMacHdr->LengthOrType));……/*解析IEEE802数据帧,省略*/}2)解析ARP数据包//ARP头部结构typedef struct{u_short hardware_type; //16位硬件类型u_short proto_type; //16位协议类型u_char hardware_addr_len; //8位硬件地址长度u_char proto_addr_len; //8位协议地址长度u_short operation_code; //16位操作码u_char src_mac_addr[6]; //源Ethernet网地址u_char scr_ip_addr[4]; //源IP地址u_char dest_mac_addr[6]; //目的Ethernet网地址u_char dest_ip_addr[4]; //目的IP地址} ARP_HEADER;//ARP报文操作码类型,1为请求,2位应答const u_short ARP_OP_REQUEST = 1; //ARP请求const u_short ARP_OP_REPL Y = 2; //ARP应答ARP_HEADER* pARPHdr = (ARP_HEADER*)pPkt;ntohs(pARPHdr->hardware_type); //硬件类型ntohs(pARPHdr->proto_type); //上层协议类型pARPHdr->hardware_addr_len; //硬件地址长度pARPHdr->proto_addr_len; //协议地址长度//操作类型if (ntohs(pARPHdr->operation_code) == ARP_OP_REQUEST)strItem = " (Request)";else if (ntohs(pARPHdr->operation_code) == ARP_OP_REPL Y)strItem = " (Reply)";//源Mac地址strItem.Format("Sender's hardware address: %02X:%02X:%02X:%02X:%02X:%02X",pARPHdr->src_mac_addr[0],pARPHdr->src_mac_addr[1],pARPHdr->src_mac_addr[2],pARPHdr->src_mac_addr[3],pARPHdr->src_mac_addr[4],pARPHdr->src_mac_addr[5]);//源IP地址in_addr ipAddr;memcpy(&ipAddr, pARPHdr->scr_ip_addr, sizeof(in_addr));inet_ntoa(ipAddr); //转化为点分十进制字符串//目的Mac地址strItem.Format("Target's hardware address: %02X:%02X:%02X:%02X:%02X:%02X",pARPHdr->dest_mac_addr[0],pARPHdr->dest_mac_addr[1],pARPHdr->dest_mac_addr[2],pARPHdr->dest_mac_addr[3],pARPHdr->dest_mac_addr[4],pARPHdr->dest_mac_addr[5]);//目的IP地址memcpy(&ipAddr, pARPHdr->dest_ip_addr, sizeof(in_addr));inet_ntoa(ipAddr); //转化为点分十进制字符串//填充字段长度strItem.Format("Frame padding: %d bytes", iLen-sizeof(ARP_HEADER));3)解析IP数据包//IP头部结构typedef struct{unsigned char hdr_len :4; //4位头部长度unsigned char version :4; //4位版本号unsigned char tos; //8位服务类型unsigned short total_len; //16位总长度unsigned short identifier; //16位标识符unsigned short frag_and_flags; //3位标志+13位片偏移unsigned char ttl; //8位生存时间unsigned char protocol; //8位上层协议号unsigned short checksum; //16位校验和unsigned long source_ip; //32位源IP地址unsigned long dest_ip; //32位目的IP地址} IP_HEADER;IP_HEADER* pIPHdr = (IP_HEADER*)pPkt;……/*解析IP头部各字段并显示输出*///根据不同上层协议调用相应解析函数switch (pIPHdr->protocol){case IPPROTO_TCP:strItem = "TCP";ParseTCPPacket((BYTE*)pIPHdr+iIPHdrLen, iLen-iIPHdrLen);break;case IPPROTO_UDP:strItem = "UDP";ParseUDPPacket((BYTE*)pIPHdr+iIPHdrLen, iLen-iIPHdrLen);break;case IPPROTO_ICMP:strItem = "ICMP";ParseICMPPacket((BYTE*)pIPHdr+iIPHdrLen, iLen-iIPHdrLen);break;default:strItem = "OTHERS";}4)解析ICMP,TCP和UDP数据包//ICMP基本头部typedef struct{BYTE type; //8位类型BYTE code; //8位代码USHORT c ksum; //16位校验和} ICMP_BASE_HEADER;//----------------------------------------------------//ICMP回显头部(回显请求、回显应答)typedef struct{ICMP_BASE_HEADER base_hdr; //基本头部USHORT i d; //16位标识符USHORT s eq; //16位序列号} ICMP_ECHO_HEADER;//----------------------------------------------------//ICMP差错报文头部(超时及目的不可达)typedef struct{ICMP_BASE_HEADER base_hdr; //基本头部ULONG unused; //32位未用,必须为0} ICMP_ERROR_HEADER;pICMPHdr->type; //类型pICMPHdr->code; //代码ntohs(pICMPHdr->cksum); //校验和//根据不同类型解析后续字段switch (pICMPHdr->type){case ICMP_ECHO_REQUEST: //回显请求报文case ICMP_ECHO_REPL Y: //回显应答报文{ICMP_ECHO_HEADER* pICMPEchoHdr = (ICMP_ECHO_HEADER*)pPkt;ntohs(pICMPEchoHdr->id); //标识符ntohs(pICMPEchoHdr->seq); //序列号if (iLen > sizeof(ICMP_ECHO_HEADER)) //选项数据{for (int i=0; i<iLen-sizeof(ICMP_ECHO_HEADER); i++)……/*打印选项数据*/}break;}case ICMP_TIMEOUT: //超时差错报文case ICMP_HOST_UNREACHABLE: //目的不可达差错报文{ICMP_ERROR_HEADER* pICMPErrHdr = (ICMP_ERROR_HEADER*)pPkt;ntohl(pICMPErrHdr->unused); //保留字段//解析产生差错的数据报IP首部(含选项字段)及其载荷的前8个字节ParseIPPacket((BYTE*)pICMPErrHdr+sizeof(ICMP_ERROR_HEADER),iLen-sizeof(ICMP_ERROR_HEADER));break;}5)解析HTTP数据包/*HTTP消息的拷贝存放在pHttpPkt指向的缓冲区中首先在HTTP消息中查找代表消息头结束的空行*/char* pStopPos = strstr(pHttpPkt, "\r\n\r\n"); //结束指针指向最后的空行if (pStopPos != NULL) //存在空行{char* pBegPos = pHttpPkt; //每行的首指针char* pCurPos = pHttpPkt; //每行的尾指针int iLine = 1;while (pCurPos < pStopPos){//查找消息头中每行的结束符pCurPos = strstr(pBegPos, "\r\n");if (pCurPos != NULL)*pCurPos = '\0'; //将该行变为以NULL结尾的字符串/*如果第一行含有版本字段前缀“HTTP/”则认为是一个正确的HTTP头*/if (iLine++ == 1){if (strstr(pBegPos, "HTTP/") == NULL)break;}strItem.Format(“%s”, pBegPos); //输出该行信息pCurPos += 2; //跳过回车换行符指向下一行开始pBegPos = pCurPos;}}。