“21天好习惯”第一期-12

本文探讨了如何在不可靠的网络环境中实现可靠数据传输,从rdt1.0的基础开始,逐步增加对比特差错和丢包的处理,发展到rdt3.0,包括流水线传输、回退N步和选择重传等协议。这些协议旨在确保数据准确无损且按顺序传输,类似于TCP在因特网上提供的服务。

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

运输层–可靠数据传输原理

在这里插入图片描述
上图说明了我们学习可靠数据传输的框架。为上层实体提供的服务抽象是:数据可以通过一条可靠的信道进行传输。借助于可靠信道,传输数据比特就不会受到损坏(由0变为1,或者相反)或丢失,而且所有数据都是按照其发送顺序进行交付。这恰好就是TCP向调用它的因特网应用所提供的服务模型。
实现这种服务抽象是可靠数据传输协议的责任由于可靠数据传输协议的下层协议也许是不可靠的,因此这是一项困难的任务。例如,TCP是在不可靠的(IP)端到端网络层之上实现的可靠数据传输协议。更一般的情况是,两个可靠通信端点的下层可能是由一条物理链路(如在链路级数据传输协议的场合下)组成或是由一个全球互联网络(如在运输级协议的场合下)组成。

构造可靠数据传输协议

1.经完全可靠信道的可靠数据传输:rdt1.0

首先,我们考虑最简单的情况,即底层信道是完全可靠的。我们称该协议为rdt1.0,该协议本身是简单的。

2.经具有比特差错信道的可靠数据传输:rdt2.0

底层信道更为实际的模型分组中的比特可能受损的模型。在分组的传输、传播或缓存的过程中,这种比特差错通常会出现在网络的物理部件中。

3.经具有比特差错的丢包信道的可靠数据传输:rdt3.0

现在假定除了比特受损外,底层信道还会丢包,这在今天的计算机网络(包括因特网)中并不罕见。协议现在必须处理另外两个关注的问题:怎样检测丢包以及发生丢包后该做些什么。

流水线可靠数据传输协议

rdt3.0是一个功能正确的协议,但并非人人都对它的性能满意,特别是在今天的高速网络中更是如此。rdt3.0性能问题的核心在于它是一个停等协议。

回退N步

在回退N步协议中,允许发送方发送多个分组(当有多个分组可用时)而不需等待确认,但它受限于在流水线中未确认的分组数不能超过某个最大允许数N。

选择重传

顾名思义,选择重传协议通过让发送方仅重传那些它怀疑在接收方出错(即丢失或受损)的分组而避免了不必要的重传。这种个别的、按需的重传要求接收方逐个地确认正确接收的分组。再次用窗口长度N来限制流水线中未完成、未被确认的分组数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值