发布网友 发布时间:2022-04-25 09:10
共1个回答
热心网友 时间:2023-12-02 18:04
(一)什么是可靠
传输过程中不错、不丢、不乱。
信道的不可靠特性决定了可靠数据传输协议(rdt)的复杂性。
(二)各版本传输协议
RDT1.0:基于可靠信道的可靠数据传输
但是,信道可能会比特出差错,1变成0,0变成1
RDT2.0:基于位出差错的可靠信道传输
引入了自动重传请求协议(ARQ协议),包括:
差错检测:在UDP中使用校验和
接收方反馈:回答ACK或NAK
重传:当接收方收到有差错的分组时
没有考虑到ACK或者NAK分组受损的可能性,发送方无法知道接收方是否正确接受了上一块发送的数据.
RDT2.1:基于位出差错的可靠信道传输,发送方应对ACK和NAK出错。
在数据分组添加一个新字段,发送方对其数据分组进行编号,即将发送分组的序号放入该字段。对于停等协议,1bit序号足够。
在停等协议上,实际由于添加了分组的序号,我们可以不用NAK。
RDT2.2:基于位出差错信道的无NAK的可靠数据传输协议
在实际情况中,信道还会出现丢包的情况,如何检测是够丢包以及丢包了该怎么做?
RDT3.0: 基于位出错和丢包信道的可靠数据传输协议
在使用校验和,ACK分组,序号和重传的机制下,为了应对丢包的情况,引入定时器来确定发送方什么时候进行重传。
RDT3.0已经是个功能正确的协议,但是由于它是个停止等待协议,性能大打折扣,信道利用率低下,所以效率有待提高。
利用流水线机制
增加序号范围
发送方和接收方增加缓存分组
但是会出现差错:丢失、损坏、延时过大。 解决流水线的差错恢复:回退N步(GBN滑动窗口协议)和选择重传(SR)
滑动窗口协议(GBN)
超时事件:如果出现超时,发送方重传所有已发送但是还没有被确认的分组。
ACK机制:累积确认,接收方发送最高序列号的,被正确接收的分组的ACK
对于乱序到达的分组,接收方直接丢弃,并且发送最近按序接受的分组的ACK。