计算机网络实验可靠数据传输

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机网络

可靠数据传输

一、实验目的

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

二、实验内容

1.搭建linux运行环境;

2.运行simulator,模拟各种不同rdt协议;

3.完成exercises的问题。

三、实验过程

1.在本机上安装虚拟机,然后通过虚拟机安装red hat linux 9.0系统,安装成功。

2.了解simulator模拟的几种rdt协议。simulator中有p2.c—p6,c5个文件是描述

协议的:p2.c是停等协议,设置有限的buffer和有限的处理速度;p3.c在不可靠的信道上允许单向的数据流动;p4.c是双向的滑窗协议;p5.c是GBN 协议;p6.c是重传协议。

3.几种rdt协议

1)Rdt1.0:在可靠信道上进行可靠的数据传输

所依赖的信道非常可靠:不可能有位错,不会丢失数据;

分别为发送方和接收方建立FSMs:发送方将数据送入所依赖的信道,接收方从所依赖的信道读出数据。

2)Rdt2.0:在可能发送位错的信道上传输

问题:如何从错误中恢复

正向确认(ACKs):由接收方发送报文向发送方进行确认

负向确认(NAKs):由接收方发送报文向发送方进行否认,说明分组有错

发送方在收到NAK后进行分组重传

rdt2.0的新机制(在rdt1.0基础之上)

错误检测;接收方的反馈:控制信息(ACK,NAK)。

Rdt2.0 有一个致命的缺点

若ACK/NAK 报文丢失?

发送方将不会知道接收端发生了什么,假如进行重传:可能发生数据重复。

管理重复的问题

接收方丢弃重复的分组(不向上递交)

如果ACK/NAK丢失,发送方则重传正确的分组,发送方给每个分组加上sequence number (序号)。

3)Rdt2.1:发送方,管理丢失的ACK/NAK,接收方,管理丢失的ACK/NAK。

4)流水线协议

流水作业:发送端允许发送多个分组,等待应答。必须增加顺序号的位数,在发送和接收端增加缓存。两种常用的流水线协议:回退N重传(go-Back-N),选择重传(Select Retransmit)。

回退N重传(GBN:Go-Back-N)

发送方:在分组首部设置k位seq #,使用尺寸为N的“滑动窗口”,允许连续的多个分组不被应答。

“回退n”协议的基本特点:发送方连续发送许多数据帧,接收方只接收一帧,即只能顺序接收,发送方发送的帧需要不同的编号来区分,发送方要有较大的发送缓冲区来保留可能重发的帧。

优点:连续发送提高了信道利用率,误码率较低时,连续ARQ优于停等协议。缺点:要回退n帧重传(Go-back-n),导致某些已正确接收帧的重传,因此降低了发送效率。

选择重传(SR:Selective Repeat)

发送方仅对未收到应答的分组进行重发,发送方对每个unACKed分组设置计时器;发送方的窗口,N个连续的seq,同样对已发送的seq #s,unACKed分组进

行限制;接收方逐个对所有正确收到的分组进行应答,对接收到的(失序)分组进行缓存,以便最后对上层进行有序递交。

优点:避免重传已正确传送的帧,提高了信道利用率。

缺点:在接收端需要占用一定容量的缓存,控制较复杂。

4.搭建环境并测试用例

我电脑上安装的有Ubuntu的linux系统,编译模拟器的时候会有两个警告,但是仍可以运行,不过运行的结果都是不正确的,所发送的包全是得不到确认的,最后的效率都为0%。尝试过之后,就在在虚拟机下安装red hat linux 9.0系统,安装成功。测试用例如下图所示:

四、Exercises

1)For one or more selected protocols, make a study of protocol

performance,measured in payloads delivered per second, as a function of the checksum error rate, lost packet rate, and timeout interval. For example, provide graphs showing payloads/sec as a function of timeout interval, for various error rates. What can you conclude?

Answers:实验中选择运行的是p5.c文件,即回退N步协议。运行图如下:

运行协议5,1000个时间片,超时时间间隔为20个时间片,无丢包,无数据出错,显示发送和接收如下图:

测试多组实验,如下面所示。

测试有效负载和超时时间间隔的关系,运行协议5,1000个时间片,无丢包,无数据出错,结果如下表所示:(由于运行的几组都是1000个时间片,所以可以直接根据payloads来比较)

超时时间间隔Total data frames sent Payloads accepted

10 1 1

20 262 136

30 219 176

40 187 179

50 196 196

60 187 187

70 190 190

80 192 192

90 190 190

结论:由表中的测试数据可以看出,有效负载在超时时间间隔为50的时候最大,为196。因为时间间隔小于50的时候,重传的比较多,导致有效的少,当时间间隔大于50的时候,虽然没有重传,但是时间间隔多大,发送一个数据后等待的时间过长,导致发送的总的数据减少。

相关文档
最新文档