Rdt学习笔记

本文详细介绍了可靠数据传输的概念,从Rdt1.0到Rdt3.0的逐步演进,包括面对位错误、ACK/NAK破坏的解决方案。讨论了ARQ协议、流水线机制和滑动窗口协议,如GBN和SR协议,旨在确保数据包无错误、不丢失并保持正确顺序。此外,还提到了如何通过序列号和确认机制来处理重传和重复分组的问题,以提高传输效率。
摘要由CSDN通过智能技术生成

什么是可靠传输?

可靠传输就是传输的数据包没有错误、不丢失、顺序保持正确。

Rdt 1.0:可靠信道上的可靠数据传输

假设底层信道完全可靠。

在此基础上,发送方和接收方只要能正确接收数据就可以了,二者相互独立,发过来的数据一定正确。

Rdt 2.0:产生位错误的信道

假设底层信道可能翻转分组中的位。

通过校验和来判断是否发生位错误,若发现错误则直接重传直到接收方接收到正确的分组。

确认机制:接收方显示地告知发送方分组已正确接收。

NAK:接收方显式地告知发送方分组有错误,发送方收到NAK后,重传分组。

基于这种重传机制的Rdt协议成为ARQ协议。

Rdt 2.1:应对ACK/NAK破坏

当发生错误时,接收方如何知道发送方新传过来的是新的报文段还是因为ack出错而重传的报文段呢?

发送方:

1.为每个分组增加了序列号

2.需校验ACK/NAK消息是否发生错误

接收方:

1.需判断分组是否重复

2.当前所处状态提供了期望收到分组的序列号

Rdt 2.2:无NAK消息协议

接收方通过ACK告知最后一个被正确接收的分组;

在ACK消息中显式地加入被确认分组的序列号;

发送方收到重复ACK之后,采取与收到NAK消息相同的动作;

重传当前分组。

Rdt 3.0

假设ack丢了,发送方就会无限制地等着接收方的ack,同时接收方也会无限制地等着发送方的新报文。

处理方法为:发送方等待“合理”时间:如果没收到ack,重传;如果分组或Ack只是延迟而不是丢了。

重传会产生重复,序列号机制能够处理;

接收方需在ACK中显式告知所确认的分组。

Rdt 3.0能够正确工作,但性能很差。低效率的原因是采取的是停-等操作。

流水线机制与滑动窗口协议

为了改进停等机制所造成的效率低下,可采用流水线的机制,一次发送多条报文段,充分利用空闲的时间。允许发送方在收到ACK之前连续发送多个分组,这就要求有更大的序列号范围,发送方和/或接收方需要更大的存储空间以缓存分组。

此外,采用滑动窗口协议,发送给定窗口大小的报文数,随着报文被接收确认,窗口可以动态地向前滑动。

GBN协议

ACK机制:发送拥有最高序列号的、已被正确接收的分组ACK。

接收方没有缓存,对于乱序到达的分组直接丢弃,重新发送目前为止接收到的分组中序列号最大的按序到达的分组。

SR协议

由于GBN接收方没有缓存,对于非按序的分组直接丢弃,就会造成很多到达的分组由于顺序乱了,需要重新发送。

为了提高效率,可在接收方设置缓存,对于未按序到达的分组,先保存下来。

接收方对每个分组单独进行确认;

设置缓存机制,缓存乱序到达的分组;

发送方只重传那些没收到ACK的分组;

为每个分组设置定时器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值