2.2可靠数据传输原理——流水线可靠运输协议、回退N步、选择重传

概述

可靠数据传输:服务模型与服务实现如下图所示:其中

rdt-send()函数可以调用数据传输协议的发送方,它将要发送的数据交付给位于接收方的较高层(rdt表示可靠数据传输)

rdt_rev()函数可以在接收端接收分组信号

deliever-data()函数可以向较高层交付数据。

udt_send()函数用来将分组发送给对方(udt表示不可靠数据传输)

由上左图可以看到,为上层实体提供的服务抽象是:数据可以通过一条可靠的信道进行传输。借助于可靠信道,传输数据比特就不会受到损坏或丢失,而且所有数据都是按照其发送顺序进行交付。这恰好是TCP向调用它的因特网应用所提供的服务模型。实现这种服务抽象的是可靠数据传输协议。

另外,很现实的一个问题是可靠传输协议的下层协议也许是不可靠的,因此十分困难。比如TCP是在不可靠的(IP)端到端网络层之上实现的可靠数据传输协议。

构造可靠数据传输协议

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

横线上方是引起状态变迁的事件,横线下方是事件发生采取的动作,无事件或状态变化用A表示

简单协议中,有了完全可靠的信道,接收端就不需要提供任何反馈信息给发送方,也不必担心出现差错。

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

底层信道更为实际的模型是分组中的比特可能受损。但是现在仍然假定所有分组(虽然有些比特可能受损)将按发送顺序被接收

接收端接收到分组后需要使用肯定确认(ACK)否定确认(NAK)让发送方知道 哪些内容被正确接收,哪些内容接受有误,并因此需要重复。基于这样重传机制的可靠数据传输协议称为自动重传请求(ARQ)协议。基本上,ARQ还需要另外三种协议来处理比特差错的情况,分别是:差错检测、接收方反馈、重传

rdt2.0:初步解决了分组中比特受损的问题

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值