计算机网络实验rdt实验

本文详细介绍了计算机网络实验中rdt协议的原理和实现,包括停等协议、流水线协议、滑动窗口协议(回退N步与选择重传)。通过模拟不同协议的运行,分析了丢包率、校验和错误率等因素对协议性能的影响,展示了如何通过改变超时时间间隔优化传输效率。实验表明,选择重传协议在错误率较高的情况下表现优于回退N步协议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、    实验目的

熟悉并掌握各种不同rdt协议的运行环境和协议性能。

二、实验原理

   可靠数据传输:提供给上层实体的服务抽象是,数据可以通过一条可靠的信道进行传输。不过由于下层协议不一定可靠,所以就有问题要处理。

   停等协议:肯定确认(positive acknowledgment)与否定确认(negative acknowledgment)。是接收方反馈信息的两种方式。

其次,是ARQ(Automatic Repeat reQuest自动重传请求)协议,简单理解为发送方发送数据,然后等待接收方反馈,然后再相应发送数据。

综合起来理解,就是发送方发送数据,然后等待接收方通过ACK或者NAK反馈,就是停等协议的大概流程。

接下里的优化有,校验和(差错处理)、序号、定时器(超时)、ACK和NAK等。

  流水线协议:为了解决上面停等协议对资源的极其浪费问题引入了一个解决方案:允许发送方发送多个分组而无需等待确认。

  滑动窗口协议:抽象理解,发送方和接收方各有一个缓存数组。发送方存放着:已发生且成功确认包序号、已发送未确认包序号 (已发送已确认包序号序号|已发送未确认包序号)*、未发送包序号;接收方存放着:已接受包序号、正在接收包序号、未接收包序号。其中,每个数组有个两个扫描指针,开头和结尾,一起向后扫描,两者形成一个窗口。故称为窗口协议。

   回退N步:回退N步,接收方则是只接受最小的未接受帧,对错序到达帧,都丢弃。

   选择重传:SR协议通过让发送方仅重传那些它怀疑在接收方出错(即丢失或受损)的分组而避免了不必要的重传。SR这种个别的,按需的重传协议要求接收方逐个地确认正确接收方的分组。

 


 

三、实验步骤

 

 

 

 

首先对文件夹内的代码进行编译

 

 

 

 

1.      运行protocol2,运行命令为./sim 2 100 20 0 0 1,6个数字分别代表运行的协议号、运行的事件数即运行模拟的时间、超时间隔、丢包率、到达包的错误率、跟踪标志。0表示只打印汇总数据,1表示打印中间的发包记录。

其中100 20表示它将以20个tick的时间间隔运行200个协议实体进程。0%的丢包率,0%的校验和错误率,它会打印出汇总数据。

 

protocol2是一个可靠信道上的单工停等协议。其基本原理是发送方以高于接收方处理能力的速度发送数据帧,导致接收方被淹没。我们假设通信信道不会出错,并且数据流量是单工的。

发送方发送一帧,等待确认到达后才能继续发送。

 

运行结果:Simulating Protocol  2

从运行结果可以看出,共有两个进程,一个发送一个接收,分别指明了发送和接收的情况,丢包率、错误率等都和运行代码中设定好的参数一致。有效装载/发送数据的效率为100%,模拟时间为1000。

 

Total data frames sent:          总发送数据帧

      Data frames lost:                丢失数据帧

      Data frames not lost:            未丢失数据帧

      Frames retransmitted:            重传帧

      Good ack frames rec'd:           接收到好的ACK

      Bad ack frames rec'd:            接收到坏的ACK

 

      Good data frames rec'd:        接收到好的数据帧

      Bad data frames rec'd:           接收到坏的数据帧

      Payloads accepted:             有效装载

      Total ack frames sent:         总发送ACK帧

      Ack frames lost:                 丢失ACK帧

      Ack frames not lost:           未丢失ACK帧

      Timeouts:                        超时

      Ack timeouts:                    ACK超时

 

 

2.      运行protocol3,参数设定为./sim 3 200 20 10 10 1

protocol3是一个比特差错信道上的单工停等协议。数据帧可能会损坏,也可能会完全丢失。如果有一个数据帧在传输过程之中损坏,则接收方硬件在计算校验和时会检测出来,如果一个数据帧损坏之后校验和仍然是正确的,则这个协议将会失败。发送发在它发送的每一个数据帧的头部都会加上一个序号。

发送方发送一帧,等到确认到达之后才能继续发送。

其中200  20表示它将以20个tick的时间间隔运行200个协议实体进程。10%的丢包率,10%的校验和错误率,它将会打印出汇总数据。如下所示。

 </

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值