当前位置:文档之家› 计算机网络实验可靠数据传输

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

计算机网络可靠数据传输一、实验目的熟悉并掌握各种不同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系统,安装成功。

测试用例如下图所示:四、Exercises1)For one or more selected protocols, make a study of protocolperformance,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 accepted10 1 120 262 13630 219 17640 187 17950 196 19660 187 18770 190 19080 192 19290 190 190结论:由表中的测试数据可以看出,有效负载在超时时间间隔为50的时候最大,为196。

因为时间间隔小于50的时候,重传的比较多,导致有效的少,当时间间隔大于50的时候,虽然没有重传,但是时间间隔多大,发送一个数据后等待的时间过长,导致发送的总的数据减少。

测试有效负载和校验和错误率的关系,运行协议5,1000个时间片,设置超时间隔为50,无丢包,结果如下表所示:(由于运行的几组都是1000个时间片,所以可以直接根据payloads来比较)The checksum error rate Total data frames sent Payloads accepted10 182 9520 172 6830 166 4040 161 2850 149 1060 146 8结论:由表中数据可以看出,校验和错误率越高,收到的有效的负载越少。

测试有效负载和校验和丢包率的关系,运行协议5,1000个时间片,设置超时间隔为50,无校验和错误,结果如下表所示:(由于运行的几组都是1000个时间片,所以可以直接根据payloads来比较)Lost packet rate Total data frames sent Payloads accepted10 187 10020 176 7130 174 5040 164 2450 155 1560 150 10结论:从表中数据可以看出,丢包率越高,收到的有效的负载就越少。

2)Compare the performance of protocols 5 and 6 in detail with respect topayloads/sec and number of retransmissions for a wide variety of parameters.Under which circumstances is protocol 5 better? protocol 6? Answers:运行:./sim 5 1000 50 0 0 0和./sim 6 1000 50 0 0 0./sim 5 1000 50 0 0 0 ./sim 6 1000 50 0 0 0Total data frames sent Payloads accepted Total data frames sent Payloads accepted196 196 165 165 运行:./sim 5 1000 50 10 10 0和./sim 6 1000 50 10 10 0./sim 5 1000 50 10 10 0 ./sim 6 1000 50 10 10 0Total data frames sent Payloads accepted Total data frames sent Payloads accepted 179 74 137 97 结论:网络状况越差,协议6的影响相对小,即协议6的性能好,当网络都处于理想状况时,即都没有丢包和错误时,两个协议的性能差不多,但整体协议6的性能更好。

原因:协议5为流水线协议,适合运行在网络状况较好的情况下,丢包率和出错率较小的时候,重传几率较小,传输速率较快。

而如果网络状况不佳,会出现大量重传,协议5会丢弃大量无序的且正确的分组,会带来更多的重传。

而协议6只需重传丢失的分组,在网络状况较差时,效果会非常显著。

3)The function pick_event() has built-in priorities for events. For example,forprotocol 5, frame arrivals go before timeouts. Experiment with changing these priorities (by reordering the statements in pick_event().What conclusions can you draw?答:当顺序为数据到达,校验和检验,上层数据准备好,超时处理时:设置超时间隔为50,结果见下表:The checksum error rate Lost packet rate Total data frames sent Payloads accepted10 0 190 8610 10 188 6920 10 161 3920 20 155 34当顺序为上层数据准备好,数据到达,校验和检验,超时处理时:设置超时间隔为50,结果见下表:The checksum error rate Lost packet rate Total data frames sent Payloads accepted10 0 191 9610 10 175 7620 10 174 6020 20 179 52当顺序为超时处理时,数据到达,校验和检验,上层数据准备好:设置超时间隔为50,结果见下表:The checksum error rate Lost packet rate Total data frames sent Payloads accepted10 0 175 8510 10 164 7320 10 164 4720 20 156 37通过上面三个的对比,可以看出在相同的条件下,当设置为上层数据准备好,数据到达,校验和检验,超时处理时,收到的有效负载最大。

4)Investigate the number of retransmitted frames as a function of the timeoutinterval for various parameters? Can you determine what the optimum setting should be?答:设置丢包率为0,检验和错误率为0,运行得到如下数据:超时时间间隔Total data framessentPayloads acceptedretransmittedframes10 1 1 62320 262 136 5630 219 176 2840 187 179 750 196 196 060 187 187 070 190 190 080 192 192 090 190 190 0结论:从表中数据可以看出,当设置超时间隔为50时,重传帧最少,并且收到的有效负载最多。

相关主题