计算机网络协议仿真实验
- 格式:doc
- 大小:1.20 MB
- 文档页数:96
科技与创新┃Science and Technology&Innovation ·122·2023年第17期文章编号:2095-6835(2023)17-0122-03基于OPNET的网络协议TCP仿真实验平台的设计与实现游胜玉,刘琳(东华理工大学软件学院,江西南昌330013)摘要:计算机网络是一门实践性非常强的学科,但由于实验实训的环境条件有限,很多网络实验无法开展,仿真软件成为了网络实验的必要选择。
网络仿真技术的使用,既可以降低实验成本,又可以培养初学者的创造能力。
采用OPNET 网络仿真软件搭建实验平台,对TCP(Transmission Control Protocol,传输控制协议)的慢启动算法、拥塞避免算法、快速重传算法和快速修复算法4种不同算法实验进行设计与实现。
关键词:OPNET;TCP;仿真实验;网络中图分类号:TP393.2文献标志码:A DOI:10.15913/ki.kjycx.2023.17.036随着经济的迅猛发展,计算机网络已经离不开人们的生活。
社会需求的日益增加,网络拓扑结构也不断复杂化,网络的应用也不断多元化,传统的网络实验操作环境已远远不能满足现代实验操作的要求。
在计算机网络技术中,服务器、交换机、防火墙及路由器是网络的主流设备[1-2],即使实际的网络实验中采用一定数量的网络设备,但意味着需要投入更高的成本,且网络设备维护也比较复杂,特别是对于那些复杂的大型网络建设,更需要大量的人力物力来建设。
另外,对于初学者来说,如果在硬件设备搭建实验过程中出现故障导致实验失败,也不知道问题出现在哪,从而影响实验效果[3-4]。
因此,针对这样的情况,引入仿真技术来搭建网络实验环境,可以减少投资成本,并且对于初学者而言又锻炼了实践能力。
本文采用OPNET 网络仿真软件搭建仿真实验平台,对传输控制协议TCP的慢启动算法、拥塞避免算法、快速重传算法和快速修复算法进行设计与实现。
西安电子科技大学计算机网络实验课程实验报告实验名称 RIP协议原理及配置通信工程学院班Array姓名学号同作者实验日期 2020 年 4 月 5 日一、实验目的1.1掌握动态路由协议的作用及分类1.2掌握距离矢量路由协议的简单工作原理1.3掌握RIP协议的基本特征1.4熟悉RIP的基本工作过程二、实验所用仪器(或实验环境)实验所使用软件为 Cisco Packet Tracer。
三、实验基本原理及步骤(或方案设计及理论计算)3.1动态路由协议概述路由协议是运行在路由器上的软件进程,与其他路由器上相同路由协议之间交换路由信息,学习非直连网络的路由信息,加入路由表。
并且在网络拓扑结构变化时自动调整,维护正确的路由信息。
图一动态路由协议前面提到,路由器之间的路由信息交换是基于路由协议实现的。
交换路由信息的最终目的在于形成路由转发表,进而通过此表找到一条数据交换的“最佳”路径。
每一种路由算法都有其衡量“最佳”的一套原则。
大多数算法使用一个量化的参数来衡量路径的优劣,一般说来,参数值越小,路径越好。
该参数可以通过路径的某一特性进行计算,也可以在综合多个特性的基础上进行计算,几个比较常用的特征是:n 路径所包含的路由器结点数(hop count)n 网络传输费用(cost)n 带宽(bandwidth)n 延迟(delay)n 负载(load)n 可靠性(reliability)n 最大传输单元MTU(maximum transmission unit)依据路由器间交换路由信息的内容及路由算法,将路由协议分为:距离-矢量路由协议和链路状态路由协议。
距离-矢量路由协议 ( 如RIP )定期广播整个路由信息易形成路由环路收敛慢链路状态路由协议(如OSPF)收集网络拓扑信息,运行协议算法计算最佳路由根本解决路由环路问题收敛快图二距离-矢量路由协议图二链路状态路由协议3.2RIP协议概述RIP(Routing Information Protocol)路由信息协议最早的动态路由协议,基于距离矢量算法实现使用UDP报文来交换路由信息以跳数多少选择最优路由RIPv1协议报文不携带掩码信息3.3路由回路及解决办法定义最大跳数水平分割(Split Horizon)毒性逆转(Poisoned Reverse)触发更新(Triggered Update)Hold-Down 定时器3.4RIP的配置关于RIP的配置步骤如下:开启RIP路由功能(路由进程):Router(config)#router rip宣告相关网段:Router(config-router)# network network wildmask 请注意:掩码是用反码的形式。
中南大学计算机网络实验报告---- 分槽ALOHA协议仿真实验班级:_______________________姓名:_______________________学号:_______________________日期:—一、实验目的Aloha 是一个解决信道分配的简单而巧妙的方法。
本次实验写的是分槽aloha ,就是将时间分成离散的间隔,每个数据包只能在时间槽的起点发送。
本次实验的目的是1•掌握VB、VC++、VS或JAVA等集成开发环境编写仿真程序的方法;2•理解并掌握分槽ALOHA协议原理。
二、实验内容与实现原理实验内容:编写仿真程序,对一定网络环境下MAC层的多路访问协议的分槽ALOHA协议进行实现。
通过仿真,学习协议采取的介质访问管理,包括介质分配和冲突解决机制,并对协议的性能与理论结果进行比较分析。
实验原理:分槽Aloha 的基本思想是把信道时间分成离散的时间槽,槽长为一个帧所需的发送时间。
每个站点只能在时槽开始时才允许发送。
其他过程与纯ALOHA协议相同。
分槽Aloha 的信道效率比纯Aloha 要高。
分槽Aloha 的易受冲突区比纯Aloha 小了一半。
它的重发策略是等待一段随机的时间,然后重发;如再次冲突,则再等待一段随机的时间,直到重发成功为止,但是发送的时间也是在每个时间槽的开始。
三、实验具体设计代码包括六个类:AlohaThread.java,jsp_1.java,jsq.java,Se ndPot.java,time.java,Ma in .java。
Main.java是主类。
主要是负责时间槽的初始化,以及多个线程的启动。
Sen dPot.java是发送站类。
里面包含了开始发送数据的时间,时间的间隔,以及成功发送完所有数据包的发送次数。
AlohaThread.java 是实现了Thread 接口的类。
他是Aloha 的线程,run 方法里面写了判断冲突的方法和数据包发送的计数方法。
《计算机网络》网络仿真软件的使用实验一、实验目的通过对Packet Tracer软件操作和性能分析工具的使用,了解Packet Tracer仿真原理,熟悉Packet Tracer仿真工具的使用;熟悉计算机网络构建和配置方法,了解基本的网络连接性能分析方法。
二、实验内容1.运用3台PC机、1台HUB构建简单网络拓扑,配置各主机IP地址依次为192.168.1.1~3,子网掩码255.255.255.0。
给出该网络拓扑图。
2.点击每一步后面的信息(蓝色方框)可以查看OSI模型和出站PDU详情。
给出PC3的PDU输出格式截图,并简要说明。
三、实验设备1.硬件实验平台:通用个人计算机;2.软件实验平台:32位或64位Windows操作系统,Cisco Packet Tracer仿真软件。
软件。
四、基本原理Packet Tracer软件是Cisco公司开发的功能强大的网络仿真工具,可以运行在Windows、Linux和MAC OS平台上,提供了非常真实的网络仿真环境。
可以为网络初学者提供计算机网络设计、配置、网络故障排查的仿真环境的学习平台。
1.Packet Tracer的基本界面Packet Tracer 5.3以上版本的界面类似下图所示:为自动选择)。
五、实验步骤添加设备并连线,构建如下图所示网络拓扑。
1.实验任务1:配置网络设备设置PC机IP地址,鼠标左键单击PC-PT PCx,选择Desktop,选择IP Configuration,设置IP Address:192.168. xxx.xxx,点击子网掩码会自动配置。
依次配置所有PC机。
2.实验任务2:检测网络是否可以通信选择右侧工具栏倒数第二个信封图标,此时鼠标状态改变,点击要发送数据包的原主机及需要接收数据的另一台主机,实时模式下(realtime)会即时显示是否成功。
仿真/模拟模式(simulation)下查看网络通信过程数据每一步是如何传输的。
【实验六TCP传输控制协议】【实验目的】1、掌握TCP协议的工作原理;2、理解TCP协议的通信过程。
【实验学时】4学时【实验类型】综合型【实验内容】1、理解TCP首部中各字段的含义及作用;2、理解三次握手的过程;3、能够分析TCP协议的建立连接、会话和断开连接的全过程;4、学会计算TCP校验和的方法;5、了解TCP的标志字段的作用。
【实验原理】TCP协议是面向连接的、端到端的可靠传输协议,它支持多种网络应用程序。
TCP必须解决可靠性,流量控制的问题,能够为上层应用程序提供多个接口,同时为多个应用程序提供数据,TCP也必须能够解决通信安全性的问题。
1、TCP的封装20字节20字节图6-1 TCP的封装2、TCP首部格式:各字段含义:16位源端口号和16位目的端口号:端口号通常也称为进程地址。
32位序号:序号用来标识从TCP发送端向TCP接收端发送的数据字节流。
32位确认序列号:表示一个准备接收包的序列号。
4位首部长度:首部长度指出了首部中32 bit字的数目。
正常的TCP首部长度是20字节。
6个标志字段:U R G 紧急指针;A C K 确认序号;P S H 推标志;R S T 重建连接;S Y N 同步序号;F I N 结束标志。
16位窗口:TCP的流量控制由连接的每一端通过声明的滑动窗口大小来提供,窗口大小为字16位检验和:检验和字段覆盖了TCP首部和TCP数据。
TCP检验和的计算方法和UDP检验和的计算方法一样,计算时需要考虑伪报头。
16位紧急指针:URG标志置1时紧急指针才有效。
1161732图6-2TCP分组格式示意图【实验步骤】注意:本实验要求服务器端启动TELNET服务。
练习一:运行netstat命令1、在浏览器的地址栏输入:,在命令行下输入: netstat -n 回车。
2、观察TCP状态,记录Local Address、Foreign Address和State。
3、在浏览器的地址栏输入:,在命令行下输入: netstat -n 回车。
计算机网络课程设计实验报告-- CSMA/CD协议仿真学院:班级:学号:姓名:指导老师:1.CSMA/CD协议工作原理及性能分析:答:CSMA/CD协议的工作原理: CSMA/CD即载波监听多点接入/碰撞检测,它是一种争用型的、分布式的介质访问控制协议。
该协议的实质是“载波监听”和“碰撞检测”,其网络中的各个站(节点)都能独立地决定数据帧的发送与接收。
“载波监听”就是“发送前先监听”,即每一个站在发送数据帧之前先要检测一下总线上是否有其他站在发送数据,如果有,则暂时不要发送数据,要等待信道变为空闲时再发送。
这时,如果两个以上的站同时监听到介质空闲并发送帧,则会产生冲突现象,这使发送的帧都成为无效帧,发送随即宣告失败。
“碰撞检测”就是“边发送边监听”,即适配器边发送数据边检测信道上的信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据。
每个站必须有能力随时检测冲突是否发生,一旦发生冲突,则应停止发送,以免介质带宽因传送无效帧而被白白浪费,然后随机延时一段时间后,再重新争用介质,重发送帧。
CSMA/CD协议简单、可靠,其网络系统(如Ethernet)被广泛使用。
CSMA/CD协议的性能分析:评价一个协议的好坏,按照其单位时间冲突概率,发送成功次数,以及对节点是否公平。
2、CSMA/CD协议基本工作流程:NNN N3.分析、理解所给的仿真程序(对照流程图说明是如何仿真的、每个sleep函数的作用):答:根据流程图,先看线程A的工作流程:首先检查总线是否空闲,若空闲则发送数据,用sleep()函数模拟传输时延。
边发送边检测总线上的数据是否是A 线程发送的数据,以此来模拟是否有碰撞产生,若没有,则直至数据发送完再用sleep()函数模拟帧时隙。
如果有碰撞产生,则立即停止发送数据,再用Sleep(randNum*(int)pow(2.0,(CollisionCounter>10)?10:CollisionCounter)*Collisionwindow函数执行二进制指数退避算法重发数据,若重发次数超过16次,则认为发送数据失败。
计算机网络仿真实验报告一、实验目的本次计算机网络仿真实验的主要目的是深入理解计算机网络的工作原理和性能特点,通过仿真工具对网络模型进行构建和分析,观察不同参数设置对网络性能的影响,从而为实际网络的设计、优化和故障诊断提供理论依据和实践经验。
二、实验环境本次实验使用了具体仿真软件名称作为仿真工具,该软件具有强大的网络建模和性能分析功能,能够支持多种网络协议和拓扑结构的模拟。
实验在 Windows 10 操作系统上进行,计算机配置为处理器型号、内存大小、硬盘容量。
三、实验内容(一)网络拓扑结构的构建首先,我们构建了一个简单的星型网络拓扑结构,包括一个中心节点和多个边缘节点。
中心节点作为服务器,边缘节点作为客户端。
通过设置不同的链路带宽和延迟参数,模拟了不同网络环境下的数据传输情况。
(二)网络协议的配置在构建好网络拓扑结构后,我们配置了常用的网络协议,如 TCP/IP 协议。
设置了 IP 地址、子网掩码、网关等参数,确保网络的连通性。
(三)流量生成与性能监测为了测试网络的性能,我们使用了流量生成工具,模拟了不同类型的网络流量,如文件传输、视频流、语音通话等。
同时,通过内置的性能监测模块,实时监测网络的吞吐量、延迟、丢包率等关键性能指标。
四、实验步骤1、打开仿真软件,创建一个新的项目。
2、在项目中绘制星型网络拓扑结构,添加中心节点和边缘节点,并连接它们之间的链路。
3、为链路设置带宽和延迟参数,例如,将某些链路的带宽设置为10Mbps,延迟设置为 50ms。
4、配置网络协议,为每个节点设置 IP 地址、子网掩码和网关。
5、启动流量生成工具,选择流量类型和流量强度,例如,生成一个持续的文件传输流量,速率为 5Mbps。
6、运行仿真实验,观察网络性能指标的变化。
7、调整参数,如增加链路带宽、减少延迟、改变流量类型和强度等,重复实验,比较不同参数设置下的网络性能。
五、实验结果与分析(一)带宽对网络性能的影响当链路带宽增加时,网络的吞吐量显著提高,延迟和丢包率降低。
计算机网络仿真实验步骤
1、在PT仿真环境下,添加实验设备及其接口板。
按照实验原理添加仿真设备(路由器、集线线器HUT、交换机、主机等)。
并要求在仿真图上标出所有设备及名称、所使用的设备接口名与IP、vlan、分区、路由配置等。
2、连接仿真设备。
用正确的通信线路将网络设备(交换机、路由器、主机等)的接口连接起来。
3、配置IP地址等基本参数。
登录到网络设备(交换机、路由器等)里,进入正确的工作模式,按照规定配置接口IP地址与子网掩码。
要注意的是:同一条通信线路两端接口的IP,必须属于同一个网络;路由器接口一般默认为关闭,要激活接口。
4、配置设备的其它参数。
按照原理图标示,登录到网络设备(交换机、路由器)里,进入适当的工作模式,配置vlan、路由等命令。
5、通信测试、查看参数
在一台设备中,使用ping命令,测试本设备与一台设备之间通信能否成功。
使用show命令(show run, show mac-, show arp ,show ip route等)查看有关参数,并截图。
6、按要求撰写实验报告。
教师:阳西述制订
2015.9。
计算机网络实验报告学生姓名学号专业班级指导教师学院信息科学与工程学院完成时间2014年5月实验一分槽ALOHA协议仿真实验用于在多路访问信道上确定下一个使用者的协议属于数据链路层的一个子层,称为介质访问控制(Medium Access Control,MAC)子层,许多局域网都使用多路访问信道作为它的通信基础。
最简单的信道分配方案是FDM(为每个站专门分配一段频率)和TDM(为每个站分配一个时槽),当站的数量比较大而且可变,或者流量具有突发性变化的时候,就需要用到纯ALOHA协议或分槽ALOHA协议。
如果信道的状态可以被检测到,可以用到1-坚持型CSMA、非坚持CSMA和P-坚持CSMA等协议。
本实验模拟常见的几种MAC层多路访问协议,具体实验要求及内容如下。
【实验目的】1.掌握VB、VC++、VS或JAVA等集成开发环境编写仿真程序的方法;2.理解并掌握分槽ALOHA协议原理。
【实验内容】编写仿真程序,对一定网络环境下MAC层的多路访问协议的分槽ALOHA协议进行实现。
通过仿真,学习协议采取的介质访问管理,包括介质分配和冲突解决机制,并对协议的性能与理论结果进行比较分析。
【编程语言和环境】1.编程语言C/C++/C#/Java/Matlab等均可;2.编程环境Windows(MS Visual系列,VC/VB/;)和Linux(编辑器vi+编译器GCC)均可;【实验报告】所交实验报告内容包括:1.实验目的与要求;2.实验内容与实现原理;3.实验具体设计实现及结果(含流程图及关键代码说明);4.实验设备与实验环境;5.实验总结1.实验内容与原理设置各站点初始产生包的时间点及产生包的时间间隔(均为随机值),得到所有站点成功发送1000个数据包的总时间以及这段时间内所有数据包的个数(包括各站点每次新产生的包以及由于冲突而重发的包),从而计算出每包时内尝试次数及其对应的吞吐量。
2. 实验具体设计实现及结果#include <iostream>#include<time.h>#include<stdlib.h>using namespace std;#define MAX_PORT_NUM 5class Port{public:float P;//站点发包概率0<P<1int Apply;//站点状态0=空闲,1=请求发送float PackTime;int CountPackNum_Suc;int CountPackNum_Col;Port(){P=0.5;CountPackNum_Suc=0;CountPackNum_Col=0;ChangeApply(0);}Port(float p){P=p;CountPackNum_Suc=0;CountPackNum_Col=0;ChangeApply(0);}void ChangeApply(float NowTime);};void Port::ChangeApply(float NowTime){float P1=(rand()%1000)/1000.0;if(P1<P) Apply=1;else Apply=0;PackTime=NowTime;}class SlottedAloha{public:float SlotTime;float NowTime;int Current[MAX_PORT_NUM];//记录当前时槽内要发送的包,及发包站点,成为“包缓存”int CountAllPort_suc;int CountAllPort_all;SlottedAloha(float t){SlotTime=t;NowTime=0;CountAllPort_suc=0;CountAllPort_all=0;}void ALOHA(Port prt[],int n);};void SlottedAloha::ALOHA(Port prt[],int n){for(int i=0;;i++)//用一个死循环代表时间流逝,如果成功发送包达到1000则break{NowTime=SlotTime*i;int PackLen=0;//记录时槽内要发包的总长度(个数)for(int k=0;k<n;k++){if(prt[k].Apply==1&&prt[k].PackTime==NowTime) {Current[k]=1;PackLen++;}else Current[k]=0;}if(PackLen==1)//只有一个包,可以发{for(int k=0;k<n;k++){if(Current[k]==1) //从“包缓存”中找出要发的包{prt[k].Apply=0;//发送成功,此站点状态变为空闲prt[k].ChangeApply(NowTime+SlotTime*(rand()%n+1));//随机下一个发包时间prt[k].CountPackNum_Suc++;//成功数++}else if(prt[k].Apply==0) //当前不发又处于空闲的站点就测试下一个时间点是否发包{prt[k].ChangeApply(NowTime+SlotTime);}}}else if(PackLen>1)//有多个包,冲突{for(int k=0;k<n;k++)//给所有当前冲突的包下一个随机发送时间{if(Current[k]==1){prt[k].ChangeApply(NowTime+SlotTime*(rand()%n+1));prt[k].CountPackNum_Col++;} //冲突数++else if(prt[k].Apply==0) prt[k].ChangeApply(NowTime+SlotTime);}}else if(PackLen==0)//无包发送{for(int k=0;k<n;k++) if(prt[k].Apply==0) prt[k].ChangeApply(NowTime+SlotTime);}CountAllPort_suc=0;CountAllPort_all=0;for(int k=0;k<n;k++)//计算是成功发送包数是否达到1000{CountAllPort_suc+=prt[k].CountPackNum_Suc;CountAllPort_all+=prt[k].CountPackNum_Suc+prt[k].CountPackNum_Col;if(CountAllPort_suc>=1000) break;}}//——————————————以下是主函数————————————————int main(int argc, char *argv[]){srand((int)time(0));Port prt[3];prt[0]=Port(0.2);prt[1]=Port(0.2);prt[2]=Port(0.2);//设有三个站点,每个时槽内发包概率为0.2SlottedAloha A(1.0);//创建时槽,时槽长度为1A.ALOHA(prt,3);float G,S;G=A.CountAllPort_all/A.NowTime;S=A.CountAllPort_suc/A.NowTime;cout<<"成功发送包"<<A.CountAllPort_suc<<"个,\n冲突包"<<A.CountAllPort_all-A.CountAllPort_suc<<"个,\n总共发送包"<<A.CountAllPort_all<<"个。
计算机网络TCP协议的仿真与实现作为计算机网络中较为重要的一种运输层协议,TCP连接着应用层和网络层,发挥着非常关键的作用。
在TCP/IP协议中,我们重点关注TCP。
本文主要立足于TCP协议的特点,详细介绍了TCP协议的主要特性。
一、TCP协议的概述(一) TCP协议的特点首先,TCP提供的连接服务稳定性有保证。
相关的连接有着和打电弧相似的建立过程。
先拨电话号码,当对方接通回复“喂”的时候,再告知对方自己是谁,完成任务后释放;其次,TCP提供连接必须是只针对两个客户端,也就是实现一对一的传输;最后,TCP提供全双工通信。
这个特点就是保证通信的两端在使用TCP的时候可以随时通信,这样就可以及时传输数据。
(二) TCP端口号和套接字地址TCP端口号:端口号只能对计算机中的进程进行标记,一般使用两个字节来完成标记工作,这也就是端口号的本地意义。
当端口号并不是我们熟悉的状况时,要使用数值为1024~49151的等记端口号,使用的过程中要在UANA上登记,避免中间重复使用。
无连接的UDP和TCP也有着自己的端口号,但是两个端口号彼此之间是相互独立的,各自有着不同的用途。
套接字地址:CP中的套接字,一般在表达的过程中会用同一个名词表达不一样的含义。
也就是说,当套接字被一个程序使用,那么socket函数中使用的函数以及调用它的端口都会叫做scocket。
当紧急URG给系统发出有关紧急数据传输的通知时,相关的紧急数据应该作为优先级任务,尽快被传送。
二、 TCP的连接与释放(一)建立连接全双工是TCP传输数据的主要方式,在整个过程中有三次握手的方式来完成对该项目的建立,并且TCP的连接和释放都是使用客户—服务器方式,连接的建立也是从服务器开始。
首先将SYN设置为1,然后将数据包头部的那个确认字段设置为x+1,接下来将最开始的序列号放在数据包头部的数列中。
当这个链接的数据段被接受之后,那么相应的数据段就会被送到缓冲区,同时,服务器也能够及时收到客户端从另外一边发来的数据段,最后完成相关输出的确认。
计算机网络协议仿真实验周斌霍严梅黄声烈吉林大学计算机科学与技术学院目录【实验概述】------------------------------------------------------------------------------ 错误!未定义书签。
【网络协议仿真编辑器的使用说明】 ---------------------------------------------- 错误!未定义书签。
【实验一以太网数据帧的构成】-------------------------------------------------- 错误!未定义书签。
【实验二 IP地址分类与IP数据包的组成】----------------------------------- 错误!未定义书签。
【实验三ARP地址解析协议】 ----------------------------------------------------- 错误!未定义书签。
【实验四 ICMP互连控制管理协议】---------------------------------------------- 错误!未定义书签。
【实验五UDP用户数据报协议】 -------------------------------------------------- 错误!未定义书签。
【实验六TCP传输控制协议】 ---------------------------------------------------- 错误!未定义书签。
【实验七 TCP与UDP端口扫描】 -------------------------------------------------- 错误!未定义书签。
【实验八 TELNET和FTP协议】---------------------------------------------------- 错误!未定义书签。
【实验九 DNS域名服务协议】 ----------------------------------------------------- 错误!未定义书签。
【实验十 DHCP协议】 ---------------------------------------------------------------- 错误!未定义书签。
【实验十一 SMTP和POP3协议】 -------------------------------------------------- 错误!未定义书签。
【实验十二 SNMP协议与网络管理】---------------------------------------------- 错误!未定义书签。
【实验十三 HTTP协议】 ------------------------------------------------------------- 错误!未定义书签。
【实验十四WINS和NETBIOS协议】----------------------------------------- 错误!未定义书签。
【实验十五SOCKET基础网络程序设计】 ---------------------------------- 错误!未定义书签。
【实验十六Ping实现程序设计】 ----------------------------------------------- 错误!未定义书签。
【实验十七文件传输工具程序设计】------------------------------------------ 错误!未定义书签。
【实验十八主机信息获取工具程序设计】 ----------------------------------- 错误!未定义书签。
【实验十九网络性能监测及故障分析】 ---------------------------------------- 错误!未定义书签。
【附录1:常见问题及解决方法】 -------------------------------------------------- 错误!未定义书签。
【实验概述】网络协议仿真教学系统结合高校教育的实际情况,将网络方面的理论知识通过软件来实现,让学生在实践的过程中更深入地掌握网络方面的基础理论知识。
本系统能够使学生清楚的理解和掌握网络的内部结构和协议,通过编辑各种协议的数据包深入学习计算机网络的内部原理,同时也可以很好的辅助网络编程的调试。
网络协议仿真教学系统作为一门独立的课程体系,以实验为主,强调学生的主动性和设计性,能够拓宽学生的思路,达到真正的教学互动。
【实验环境】每个实验都要求有以下实验环境:1、仿真端:运行网络协议仿真教学系统仿真编辑器软件;2、监控端:运行网络协议仿真教学系统协议分析器软件;3、可以连接Internet的多子网环境;4、服务器一台,装有FTP、TELNET、MAIL、DNS、DHCP、SNMP等服务;5、VC程序开发环境(Microsoft Visual c++集成开发环境);6、VB程序开发环境(Microsoft Visual VB集成开发环境);【实验内容】网络协议仿真及分析实验共分14个实验,每个实验4学时,要求学生完成每个实验及编写实验报告。
通过一系列实验希望学生能对TCP/IP协议有一个更深刻的了解。
实验教学内容按照验证性、设计性和综合性三个层次,共设置了十四个实验项目。
实验1 以太网帧的构成:该实验类型为验证性实验,要求学生在了解仿真教学系统平台的基础上,学会使用数据包编辑器编辑以太网帧,学会观察并分析地址本中的MAC地址,学会分析以太网帧的MAC首部。
实验教学效果达到理解MAC地址的作用与MAC首部中的LLC―PDU长度及类型字段。
实验2 IP地址分类与数据包组成:该实验类型为验证性实验,要求学生学会分类IP 地址,掌握IP数据报的格式、长度以及各字段的功能。
实验教学效果达到学会利用子网掩码确定IP地址的网络号、子网号和主机号,学会分析给定数据包的IP首部信息,学会手工计算IP校验和的方法。
实验3 地址解析协议—ARP:该实验类型为设计性实验,要求学生在理解IP地址与MAC地址的对应关系的基础上,掌握ARP协议的作用与工作原理。
实验教学效果达到利用ARP 协议的工作原理,设计类似ARP协议程序。
学会在局域网中查找MAC地址。
实验4 互联网控制报文协议—ICMP:该实验类型为设计性实验,要求学生理解和掌握ICMP协议的基本作用与报文格式,理解ICMP协议与IP协议的封装关系。
实验教学效果达到能根据各种响应信息进行出错分析。
实验5 UDP协议:该实验类型为设计性实验,要求学生在理解UDP协议的基础上,学会UDP“校验和”的计算方法,理解UDP协议各字段的作用及工作原理。
实验教学效果达到学会应用C语言与WinSock2进行网络程序设计。
实验6 TCP协议:该实验类型为设计性实验,要求学生理解TCP首部中各字段的含义及作用,理解三次握手的过程。
实验教学效果达到分析TCP协议的建立连接、会话和断开连接的全过程,学会计算TCP校验和的方法。
实验7 TCP与UDP端口扫描:该实验类型为设计性实验,要求学生掌握常用的TCP、UDP端口扫描的原理及其各种手段。
增强学生的网络安全意识。
实验8 TELNET和FTP协议:该实验类型为综合型实验,要求学生理解TELNET和FTP协议的工作原理。
了解他们的网络安全性和具体使用方法。
实验9 DNS协议:该实验类型为设计性实验,要求学生学习DNS协议的格式,理解DNS协议的工作原理。
实验教学效果达到学会应用C语言与WinSock2进行DNS程序设计。
实验10 DHCP协议:该实验类型为设计性实验,要求学生学习DHCP协议的格式,理解DHCP协议的工作原理。
验证获取IP地址与重新登陆过程。
实验11 POP、SMTP协议:该实验类型为验证性实验,要求学生理解POP协议、SMTP 协议及作用。
学习POP、SMTP协议命令的使用方法。
实验12 SNMP协议与网络管理:该实验类型为验证性实验,要求学生理解SNMP协议的作用与格式,了解SNMP与UDP的关系。
实验教学效果达到了解MIB、基本的MIB变量,了解ASN.1的编码标准。
实验13 HTTP协议:该实验类型为设计性实验,要求学生学习HTTP协议的格式,理解HTTP协议与TCP协议的关系,理解HTTP协议的无连接、无状态特性。
实验14 WINS协议和NETBIOS:通过发送NETBIOS名字请求包,学习WINS协议和NETBIOS协议的原理。
学习NETBIOS请求的报文格式,了解NETBIOS使用的端口。
要求学生理解WINS协议和DNS协议的不同。
实验15 SOCKET网络程序设计:该实验类型为设计性实验,要求学生进一步掌握UDP 及TCP协议的工作原理,掌握SOCKET编程的基本方法。
实验教学效果达到应用C语言与WinSock2,进行无连接的、面向连接的网络程序设计,实现网络数据传输。
实验16 Ping实现程序设计:该实验类型为设计性实验,使学生加深对ICMP协议的理解,掌握原始套接字的编程方法。
并学习设制TTL等自定义参数的编程方法。
实验17 文件传输工具程序设计:该实验类型为设计性实验,使学生加深对TCP协议的理解,掌握一对多的客户服务器模型的编程方式。
实验18 主机信息获取工具程序设计:该实验类型为设计性实验,使学生掌握使用套接字获取主机信息的方法,理解Windows的WMI信息的获取方法,并掌握在Windows下的网络函数库IpHelp的功能与用法。
实验19 网络性能和故障分析:该实验类型为综合性实验,要求学生掌握监测网络性能的基本方法,能够根据性能检测结果分析网络性能问题,能够分析常见故障及原因。
实验教学效果达到检验学生对TCP/IP协议原理的掌握情况,以及综合分析问题的能力。
【网络协议仿真编辑器的使用说明】一、网络协议仿真编辑器简介协议仿真编辑器主界面如下:图1-1协议仿真编辑器的主界面本系统的初始界面显示分为五个部分:多帧编辑器、单帧编辑器、协议模型图、地址本和十六进制显示区。
1、多帧编辑器具体界面设计如图1-2所示:图1-2 多帧编辑器①第一列为帧的序号,此序号无其他特殊含义,即为各个帧顺序向下的计数号码。
点击“+”可展开为多行,相邻两帧发送的时间间隔默认值为1000,如果点击展开的为第一帧,则为发送延迟时间。
发送次数默认为1 次。
②第二列为帧的概要信息:MAC 源地址、目的地址、下层协议(如果在协议类型中选择了下拉框中的协议)LLC LLC Unnumbered/LLC Information/LLC Superisor,DSAP,CtrlARP 请求:who has 172.16.0.1 tell 172.16.0.34ARP 应答:172.16.0.34 is at 0000E8-2215D2IP 源IP、目的IP、IP总长度、下层协议(如果在协议类型中选择了已有的协议),(如果分片或偏移量≠0)Flagment 偏移量:偏移量+(总长度-首部长度-1)TCP 源端口、目的端口、TCP类型(SYN,FIN,ACK,RST)、序号、ACK确认序号和窗口大小。