网络原理实验报告(GBN)
gbn协议

gbn协议GBN协议(Go-Back-N Protocol)是一种混合ARQ协议,主要用于解决数据分组在网络传输过程中可能发生丢失、损坏或重复的问题。
GBN协议采用了窗口滑动的机制,能够实现高效可靠的数据传输。
GBN协议的基本原理是在发送方和接收方之间维护一个滑动窗口。
发送方每次发送一个数据分组后,会等待接收方的确认消息。
如果发送方收到了确认消息,它就会将滑动窗口向前滑动一个位置,并发送下一个数据分组。
如果发送方在规定的时间内没有收到确认消息,就会认为该数据分组丢失了,并重新发送该分组。
接收方会记录已经收到的数据分组,并发送一个确认消息给发送方,确认已接收到的数据分组。
GBN协议的窗口滑动机制可以提高网络链路的利用率。
在网络传输过程中,发送方可以持续发送数据分组,而无需等待接收方的确认消息,从而减少了传输时延。
只有在接收方出现丢包或乱序情况时,发送方才会重新发送数据分组。
GBN协议还能够提供可靠的数据传输。
接收方会按序接收数据分组,并发送确认消息给发送方。
如果接收方收到一个已经接收过的分组,它会丢弃该分组,并继续等待下一个分组。
发送方在接收到确认消息后,会将滑动窗口向前滑动一个位置,继续发送数据分组。
由于接收方可能会出现网络延迟,发送方需要在一定时间内等待确认消息。
如果在超时时间内,发送方没有收到确认消息,就会重新发送已经发送过但没有被确认的数据分组。
GBN协议也存在一些缺点。
首先,发送方可能会在网络传输时延比较高的情况下重发已经发送过的数据分组,这会导致网络资源的浪费。
其次,接收方需要按序接收数据分组,一旦发生丢包或乱序,会对传输性能造成影响。
此外,GBN协议只适用于具有较低的网络丢包率和延迟的情况,对于高丢包率和延迟的网络环境来说,GBN协议的性能可能会变得很差。
总结起来,GBN协议是一种高效可靠的数据传输协议,通过窗口滑动机制实现了高利用率的网络传输。
它能够提供可靠的数据传输,但在一些特殊的网络环境下可能会存在性能问题。
网络原理实验报告

网络原理实验报告网络原理实验报告一、引言网络原理是计算机科学中的重要基础知识,通过实验可以更好地理解和掌握网络的工作原理。
本实验报告旨在总结和分析我们在网络原理实验中所做的实验内容和实验结果。
二、实验目的本次实验的主要目的是通过搭建一个简单的局域网,了解和掌握网络的基本概念和工作原理。
具体实验内容包括网络拓扑结构的搭建、IP地址的配置、网络通信的测试等。
三、实验过程1. 网络拓扑结构的搭建我们使用了三台计算机和一个交换机来搭建一个简单的局域网。
首先,我们将三台计算机连接到交换机上,确保每台计算机都能够正常连接到交换机。
然后,我们通过配置交换机的端口,将这三台计算机连接在同一个局域网中。
2. IP地址的配置在搭建好网络拓扑结构后,我们需要为每台计算机配置IP地址,以便它们能够相互通信。
我们使用了静态IP地址的方式进行配置,为每台计算机分配了一个唯一的IP地址。
通过配置IP地址,我们可以实现计算机之间的互联和数据传输。
3. 网络通信的测试在完成网络拓扑结构的搭建和IP地址的配置后,我们进行了网络通信的测试。
我们通过在不同计算机上运行ping命令,测试计算机之间的连通性。
通过ping命令,我们可以发送一个网络数据包到目标计算机,并接收到该计算机的响应。
通过测试,我们可以判断网络是否正常工作。
四、实验结果与分析通过实验,我们成功搭建了一个简单的局域网,并配置了IP地址。
在进行网络通信测试时,我们发现所有计算机之间都能够正常通信,ping命令的结果都为成功。
这表明我们的网络拓扑结构和IP地址配置是正确的。
在实验过程中,我们还发现了一些问题。
首先,网络拓扑结构的搭建需要注意连接线的正确插入。
如果连接线插入不正确,计算机之间可能无法正常通信。
其次,IP地址的配置要确保每台计算机的IP地址不重复,并且属于同一个网段。
如果IP地址配置错误,计算机之间也无法正常通信。
通过本次实验,我们深入理解了网络的工作原理。
网络是由多台计算机通过网络设备连接在一起,通过IP地址进行通信的。
网络实验报告1

网络实验报告1一、实验目的本次网络实验的主要目的是深入了解网络的工作原理,掌握网络配置和管理的基本技能,以及探究网络性能优化的方法。
通过实践操作,提高对网络技术的实际应用能力,为今后在网络领域的学习和工作打下坚实的基础。
二、实验环境本次实验在学校的网络实验室进行,实验室配备了多台计算机、网络交换机、路由器等设备。
操作系统为 Windows 10,使用的网络模拟软件为 Packet Tracer。
三、实验内容(一)网络拓扑结构设计首先,根据实验要求设计了一个简单的网络拓扑结构。
该结构包括一个核心交换机、两个接入交换机、多个终端设备(如计算机、服务器等)以及一个路由器,用于连接不同的网段。
(二)IP 地址规划与分配为了确保网络中的设备能够正常通信,需要对各个设备进行合理的IP 地址分配。
根据网络拓扑结构,划分了不同的子网,并为每个子网分配了相应的 IP 地址范围。
同时,还设置了子网掩码、网关等参数。
(三)网络设备配置1、交换机配置对核心交换机和接入交换机进行了基本配置,包括创建 VLAN、将端口划分到相应的 VLAN 中、设置端口速率和双工模式等。
2、路由器配置在路由器上配置了静态路由,实现不同网段之间的通信。
同时,还进行了 NAT 转换,使内网中的设备能够访问外网。
(四)网络性能测试1、带宽测试使用测速软件对网络的带宽进行测试,测量了不同设备之间的数据传输速率,以评估网络的性能。
2、延迟测试通过 Ping 命令对网络中的设备进行延迟测试,测量了数据包从发送到接收所经历的时间,以了解网络的响应速度。
(五)网络安全设置为了提高网络的安全性,设置了访问控制列表(ACL),限制了某些设备对特定网络资源的访问。
同时,还启用了防火墙功能,对网络中的数据包进行过滤和监控。
四、实验步骤(一)网络拓扑结构搭建1、打开 Packet Tracer 软件,从设备库中选择所需的网络设备,如交换机、路由器、计算机等,并将它们拖放到工作区中。
计算机网络实验报告(6篇)

计算机网络实验报告(6篇)计算机网络实验报告(通用6篇)计算机网络实验报告篇1一、实验目的1、熟悉微机的各个部件;2、掌握将各个部件组装成一台主机的方法和步骤;3、掌握每个部件的安装方法;4、了解微型计算机系统的基本配置;5、熟悉并掌握DOS操作系统的使用;6、掌握文件、目录、路径等概念;7、掌握常用虚拟机软件的安装和使用;8、熟悉并掌握虚拟机上WINDOWS操作系统的安装方法及使用;9、掌握使用启动U盘的制作和U盘安装windows操作系统的方法;10、了解WINDOWS操作系统的基本配置和优化方法。
二、实验内容1.将微机的各个部件组装成一台主机;2.调试机器,使其正常工作;3.了解计算机系统的基本配置。
4.安装及使用虚拟机软件;5.安装WINDOWS7操作系统;6.常用DOS命令的使用;7.学会制作启动U盘和使用方法;8.WINDOWS7的基本操作;9.操作系统的基本设置和优化。
三、实验步骤(参照实验指导书上的内容,结合实验过程中做的具体内容,完成此项内容的撰写)四、思考与总结(写实验的心得体会等)计算机网络实验报告篇2windows平台逻辑层数据恢复一、实验目的:通过运用软件R-Studio_5.0和winhe_对误格式化的硬盘或者其他设备进行数据恢复,通过实验了解windows平台逻辑层误格式化数据恢复原理,能够深入理解并掌握数据恢复软件的使用方法,并能熟练运用这些软件对存储设备设备进行数据恢复。
二、实验要求:运用软件R-Studio_5.0和winhe_对电脑磁盘或者自己的U盘中的删除的数据文件进行恢复,对各种文件进行多次尝试,音频文件、系统文件、文档文件等,对简单删除和格式化的磁盘文件分别恢复,并检查和验证恢复结果,分析两个软件的数据恢复功能差异与优势,进一步熟悉存储介质数据修复和恢复方法及过程,提高自身的对存储介质逻辑层恢复技能。
三、实验环境和设备:(1)Windows _P 或Windows 20__ Professional操作系统。
网络基本原理实习报告

实习报告实习单位:XX网络科技有限公司实习时间:2021年7月1日至2021年8月31日实习岗位:网络工程师一、实习背景及目的随着互联网技术的飞速发展,网络已经成为现代社会生活、工作的重要部分。
作为一名网络工程专业的学生,为了更好地将理论知识与实际工作相结合,提高自己的实际操作能力,我选择了网络基本原理实习,希望通过实习深入了解网络的工作原理和实际应用。
二、实习内容及过程1. 实习内容(1)学习网络基础知识,包括TCP/IP协议、网络拓扑结构、网络设备等;(2)了解公司网络架构,参与网络设备的配置和维护;(3)参与公司内部网络故障排查,提高网络问题解决能力;(4)学习网络安全知识,了解常见的安全威胁和防护措施;(5)参加公司举办的培训和讲座,拓宽知识面。
2. 实习过程(1)在实习初期,我通过阅读专业书籍、观看视频教程等方式,系统学习了网络基础知识,为实际操作打下基础;(2)在导师的指导下,我了解了公司网络架构,学会了使用网络设备,如路由器、交换机等,并参与了网络设备的配置和维护;(3)在实习过程中,我参与了公司内部网络故障的排查,通过实际操作,提高了网络问题解决能力;(4)我参加了公司举办的网络安全培训,了解了常见的安全威胁和防护措施,增强了网络安全意识;(5)实习期间,我还参加了多次讲座,拓宽了知识面,为今后的职业发展奠定了基础。
三、实习收获通过这次实习,我收获颇丰,具体表现在以下几个方面:1. 提高了自己的实际操作能力,将理论知识运用到实际工作中;2. 加深了对网络基本原理的理解,掌握了网络设备的配置和维护方法;3. 学会了网络安全知识和防护措施,增强了网络安全意识;4. 拓宽了知识面,为今后的职业发展奠定了基础;5. 增强了团队合作能力,学会了与同事沟通、协作。
四、实习总结通过这次网络基本原理实习,我深刻认识到理论知识与实际工作的重要性。
在今后的学习和工作中,我将继续努力提高自己的专业素养,将所学知识运用到实际工作中,为公司的发展贡献自己的力量。
计算机网络GBN和路由算法实验报告

A.Public void run()启动函数,标识开始计时(这
里预设的是2秒的时间),超时后提醒并且停止 计时器
B.Public Timers()――构造函数,清0计时器,等待
下一次启动
(4)GBN类:继承于Thread(线程)类,是主函数类,具
有本程序的核心功能,这里先作一部分简单介绍,主 要函数功能有:
计算机网络实验报告
----GBN和路由算法
GBh
1.
运用java编程语言实现基于Go-Back-N的可靠数据传输软件。
2.
通过本实验,使学生能够对可靠数据传输原理有进一步的理 解和掌握。
3.
Go-Back- N的有限状态机模型表示如下图所示:
rdt_send(data)if(nexteeqnum <base十N) t
况
6统计每一个数据包被发送过的次数(含重
发)并最终显示出来
C.static void OutputWi ndow(Se nder s)输出
当前窗口状态函数。
7•
(一)Sender类
import java.util.Timer;
public class Sen der exte nds Thread{
compute chksum
m ake_p kt(snd pktfnextseq num)),n extseqn umxJota;ch ksu m)udi_se nd(sndpkt(nextseq numj)
if (base==nextseqnum)
start」inn的
nextseqnum-nextseqnurm+1
lOExcepti on, In terruptedExcepti on()主函数,
计算机网络实验报告

计算机网络实验报告引言计算机网络是现代社会中不可或缺的基础设施,它使得我们能够在全球范围内实现信息交流与资源共享。
为了更好地理解计算机网络的工作原理,本次实验我们进行了一系列的网络实验。
一、网络拓扑实验首先,我们进行了网络拓扑实验,通过搭建不同拓扑结构的网络,观察其性能表现和通信效率。
我们尝试了星型、环状和总线型拓扑结构,并通过测量网络中的传输时延、带宽和吞吐量来评估不同拓扑结构的优劣。
结果显示,星型拓扑结构具有较好的扩展性和可靠性,但是对中央节点的要求较高,一旦中央节点故障,整个网络将无法正常运行。
而环状和总线型拓扑结构则相对简单,但是容易产生信号干扰和数据冲突等问题。
二、网络传输协议实验接下来,我们进行了网络传输协议实验,重点研究TCP/IP协议的性能和可靠性。
我们通过改变传输文件的大小、网络拥塞程度等因素,测试了TCP协议在不同情境下的传输速度和稳定性。
同时,我们也对比了UDP协议的传输效果。
实验结果表明,TCP协议在数据传输方面具有较好的可靠性和流量控制能力,但是在高丢包率的情况下会出现明显的传输延迟。
相比之下,UDP协议虽然传输速度较快,但是无法保证数据的可靠性,容易出现丢包和重传等问题。
三、网络安全实验随后,我们进行了网络安全实验,探讨了网络攻击与防御的相关技术。
我们采用了常见的入侵检测系统和防火墙来保护网络安全,通过模拟各种攻击手段,如拒绝服务攻击、端口扫描等,测试了网络的防护能力。
实验结果显示,入侵检测系统和防火墙能够有效地阻止大多数网络攻击,但是对于某些高级攻击手段,如零日漏洞攻击,仍然存在一定的漏洞。
因此,网络安全的保护需要综合运用各种技术手段,不断提升系统的安全性。
结论通过本次计算机网络实验,我们对网络拓扑结构、传输协议和网络安全等方面有了更深入的理解。
网络拓扑结构的选择应根据实际需求进行权衡,传输协议的选择应根据网络特性和应用场景进行调整,而网络安全则需要综合运用各种安全技术来确保系统的稳定性和数据的安全性。
网络原理综合实验报告

华北科技学院计算机系综合性实验实验报告课程名称计算机网络原理实验学期 2011 至 2012 学年第一学期学生所在系部计算机系年级 2009级专业班级网络B09X 学生姓名 heihei 学号 200907024129 任课教师陈振国实验成绩计算机系制《计算机网络原理》课程综合性实验报告开课实验室:网络专业实验室2011年11月14日实验题目子网规划与组网实验一、实验题目:综合实验二、实验目的:通过本次实验,使学生掌握从网络规划、设备与拓扑结构选择一直到最后组网和测试的全过程,从而培养学生独立进行子网划分、设备选型、交换机配置、路由器配置,并对组建的网络进行测试等多方面综合操作的能力,加深对相关内容知识的理解。
三、实验设备及环境:PC兼容机、Windows操作系统、Visio软件、交换机、路由器、网线制作工具、测试工具四、实验内容及要求:1、现有教务处、人事处、科研处、财务处四个部门要接入网络,每个部门预计最多有25台机器,为了保证安全性和操作的方便性,要求各个部门内部能够直接连通,各个部门之间需要借助路由设备或三层设备来实现彼此的通信(即每个部门属于一个VLAN),若给定的网络地址空间为:192.168.10.0,在该空间内分配四个部门的地址(在该空间内划分出四个子网,分配给四个部门),完成上述组网要求,输出最后的规划方案(包括划分的原则及每个部门所分配的地址)。
2、根据规划方案,选择合适的网络设备和拓扑结构,输出网络拓扑结构图。
3、根据规划方案和网路拓扑图,进行实际的组网操作,完成整个网络的组建;(在实际组网中,每个部门可用一台设备来代表)1)将各设备接入网络。
2)根据规划方案,对交换机进行配置,将四个部门划分到不同的子网中去。
3)对路由器或三层交换设备进行配置,实现各个子网之间的通信(选作)。
本部分输出整个网络组建的操作过程,以及在此过程中遇到的问题和解决的方案。
4、组网完成后对其连通性进行测试。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
网络原理实验报告——编程模拟GBN姓名:班级:学号:教师:1.实验目的运用各种编程语言实现基于Go-Back-N的可靠数据传输软件。
PS:这里使用的是JAVA语言2.实验意义通过本实验,使学生能够对可靠数据传输原理有进一步的理解和掌握。
3.实验背景Go-Back-N的有限状态机模型表示如下图所示:(a)(b)图为Go-Back-N的有限状态机模型(a)发送端(b)接受端4.实验步骤(1)选择合适的编程语言编程实现基于Go-Back-N的可靠数据传输软件。
(2)在实际网络环境或模拟不可靠网络环境中测试和验证自己的可靠数据传输软件。
5.实验环境(1)实验语言:JAVA(2)实验平台:Eclipse(3)引用库函数:.net库、随机(Random)库、计时库(Timer)6.类概览与描述(1)Sender类:继承于Thread(线程)类,模拟发送方的一切功能,主要功能函数有:A.Public void run()——启动函数,标识开始发送数据包B.Sender()——构造函数,分配并初始化窗口值C.Public void getack(in tack)——ACK接收函数,接收接收方返回的ACK并进行验证是否为期待的ACK值(若不是,则重发)D.Public void time()——定时器函数,初始化定时,计时并记录超时与否的状态(2)Receiver类:继承于Thread(线程)类,模拟接收方的一切功能,主要功能函数有:A.Public void run()——启动函数,标识开始等待并接收数据包B.Void Receive(int data,Sender s)——数据包接收函数,功能强大!主要包括:接收数据包,验证数据包,判断与丢弃数据包等C.Public void respond(int ack)——ACK发送函数,发送当前接收到的最后一次正确的数据包对应的ACK(3)Timers类:继承于TimerTask(计时器)类,具有自定义定时与超时提醒的功能,主要功能函数有:A.Public void run()——启动函数,标识开始计时(这里预设的是2秒的时间),超时后提醒并且停止计时器B.Public Timers()——构造函数,清0计时器,等待下一次启动(4)GBN类:继承于Thread(线程)类,是主函数类,具有本程序的核心功能,这里先作一部分简单介绍,主要函数功能有:A.Static void senddelay(int x) throwsInterruptedExceptionPublic Timers()——随机延迟函数,模拟数据包发送传输过程中的随机延迟,常用延迟值分别为:300ms, 750ms, 1200ms,3000ms等B.Public static void main(String[] args) throwsIOException, InterruptedException()——主函数,功能强大,主要包含以下几大方面:①开启发送端与接收端(包括计时器)②超时或者ACK不匹配等情况导致的发送方重新发送数据包③(第一次)发送当前窗口内的数据包④随机函数模拟数据包发送过程中的丢包情况⑤实时更新与显示当前窗口内的数据包情况⑥统计每一个数据包被发送过的次数(含重发)并最终显示出来7.代码展示与描述(一)Sender类import ;public class Sender extends Thread{public int windowsize=3; //发送方窗口长度设为3public String[] data={"data1","data2","data3","data4","data5","data6","data7"}; //模拟七个数据包public int sign[]={0,1,2,3,4,5,6}; //为7个数据包标号public int localack=-1; //保存最近收到的ACKpublic Timers litime=null; //定时器(这里定为2秒)public int switches=0; //超时标志,1为超时public int windowsign[]; //当前窗口内待发的数据分组的序号public int acksign=0;//为0表示收到正确ACK,为1表示收到错误的ACK,必须重发!public Sender(){windowsign=new int[windowsize];//给窗口分配指定大小的空间for(int i=0;i<3;i++)windowsign[i]=sign[i]; //窗口初始化时存放前3个序号}public void run(){"发送方开始发送分组数据!");}public void getack(int ack){"发送方收到了ACK,序号为"+ack+"并且开始加以确认!");if(ack!=localack+1){"经验证,这不是发送方正期待的ACK,立刻重发序号为"+(localack+1)+"的数据分组!");acksign=1;}else{localack=ack; //表示正确确认了ACKacksign=0;}}public void time(){switches=0; //标志初始化为0litime=new Timers();Timer limit=new Timer();limit.schedule(litime, 0,100);}}(二)Receiver类import ;public class Receiver extends Thread{public int lastdata;public Sender sender;public void run(Sender s){sender=s;"接收方开始接收分组数据!");}void receive(int data, Sender s){sender=s; //发送方的参数传递"接收方收到了序号为"+data+"的分组!");if(data!=0){if(data==lastdata+1){//数据包序号校验,若连续则是正确/所期待的"该数据分组正是接收方所期待的,接收方接受了它并准备回送对应的ACK!");lastdata=data; //更新本地保存的数据包序号变量respond(lastdata); //回送该正确接收的数据包对应的ACK }else{"该数据分组不是接收方所期待的,该分组将被丢弃,接收方准备回送最后接受的数据分组对应的ACK!");respond(lastdata);//若不是所期待的数据包则丢弃并且重发上一次的ACK }}else{"该数据分组正是接收方所期待的,接收方接受了它并准备回送对应的ACK!");lastdata=data;respond(lastdata); //首次接收数据包并且回送ACK }}void respond(int ack){ //回送指定序号的ACK if( //判断是否超时(2秒)ack=lastdata; //获取本场保存的数据包序号sender.getack(ack);}else{"计时超时!!(未丢包但是时间超过2秒)发送方准备重发序号为"+ack+"的数据分组!");sender.switches=1; //如果超时,设置超时状态并显示警告}}}(三)Timers类import ;public class Timers extends TimerTask {public int switches;public int limit;public void run(){if(limit<20) limit++; //计时2秒else {switches=-1;this.cancel();} //开关为-1表示超时,并且停止计时器}public Timers(){switches=0; //启动计时器时全部初始化limit=0;}}(四)GBN类import .*;import ;import java.io.*;public class GBN extends Thread{static void senddelay(int x) throws InterruptedException{if(x==1) {sleep(300); "发送数据分组时发生延迟:300毫秒!"); }else if(x==2) {sleep(750); "发送数据分组时发生延迟:750毫秒!");}else if(x==3) {sleep(1200);"发送数据分组时发生延迟:1200毫秒!");}else if(x==4) {sleep(3000);"发送数据分组时发生延迟:3000毫秒!");}else;}public static void main(String[] args) throws IOException, InterruptedException {Sender s=new Sender();Receiver re=new Receiver();s.start(); //发送端启动re.run(s); //接收端启动sleep(1000); //延迟处理int[] retimes=new int[7];//计算每个分组被发送的次数for(int i=0;i<7;i++) retimes[i]=0; //数据包顺次发送for(int i=0;i<=;i++){while(i>s.localack+1){ //尚有未确认的数据包,重发!"发送方开始重新发送序号为"+(s.localack+1)+"的数据分组");retimes[s.localack+1]++;int ran=new Random().nextInt(3);int randelay=new Random().nextInt(5);s.time();senddelay(randelay); //设置随机值,模拟数据传输延迟if(ran!=1) re.receive(s.localack+1,s);//设置随机值,模拟数据丢包过程else"序号为"+(s.localack+1)+"的分组在传给接收方途中发生了丢包!");}if(i!=;"发送方现在开始第一次发送序号为"+i+"的数据分组");retimes[i]++;if(i!=0){for(int k=0;k<3;k++){//表示至少成功发送并确认了一个数据分组s.windowsign[k]++;//这种情况下滑动窗口向前移动!}};"当前窗口内的分组情况为:");//显示当前窗口内数据包情况for(int p=0;p<3;p++){if(s.windowsign[p]<=6)"第"+p+"号窗口里面存放的是序号为"+s.windowsign[p]+"的马上待发送的数据分组!");else"第"+p+"号窗口已经空了,并且后续窗口、发送方没有要发送的数据分组了!");};int ran=new Random().nextInt(3);int randelay=new Random().nextInt(5);s.time(); //计时开始(2秒时间)senddelay(randelay); //设置随机值,模拟数据传输延迟if(ran!=1) re.receive(s.sign[i],s);//设置随机值,模拟数据丢包过程else"序号为"+i+"的分组在传给接收方途中发生了丢包!");}};"以下是每个数据分组被发送过的次数的统计结果");for(int i=0;i<7;i++) //显示关于每个数据包发送次数的统计表"序号为"+i+"的数据分组被发送过的次数为:"+retimes[i]);System.exit(0);}}8.程序运行结果部分截图PS:随机选择了某次程序运行后结果显示的部分截图。