传输层 --- 可靠数据传输

一.可靠数据传输概述

1.可靠传输的原理

(1)什么是可靠:不错、不丢、不乱。

(2)在应用层、运输层、数据链路层的重要性。

(3)不可靠信道的特点决定了可靠数据传输协议的复杂性。

在这里插入图片描述

2.可靠数据传输协议基本结构:接口

在这里插入图片描述

3.有限状态机描述方法

(1)逐渐递增地研究可靠数据传输协议(rdt)的发送方和接收方:
①仅考虑单向数据传输;
②但控制信息将在两个方向流动。

(2)使用有限状态机(Finite State Machine,FSM)来定义发送方和接收方。

(3)状态:当位于这个“状态时”,下个状态唯一地由下个事件决定。

在这里插入图片描述

二.rdt1.0:完全可靠信道上的可靠数据传输

1.底层信道完全可靠

a.无比特差错;
b.无分组丢失。

2.发送方、接收方具有各自的FSM:

a.发送方将数据发向底层信道;
b.接收方从底层信道读取数据。

在这里插入图片描述

问题在于:底层信道完全可靠的情况是几乎不存在的。

三.rdt2.0:具有比较差错的信道域

1.具有比特差错的底层信道:

a.有比特差错;
b.无分组丢失。

2.如何检测比特错误:

利用校验和检测位错误。

3.如何从错误中恢复:

a.确认机制(Acknowledgements,ACK):接收方式显式地告示发送方分组已正确接收。
b.NAK:接收方显式地告知发送方分组有错误。
c.发送方收到NAK后,重传分组。

4.基于这种重传机制的rdt协议称为ARQ(Automatic Repeat reQuest)协议。

5.rdt2.0新增加机制(与rdt1.0比较):

a.差错检测;
b.接收方反馈控制消息:ACK/NAK;
c.重传。

6.rdt2.0:FSM描述
①发送方:
在这里插入图片描述
②接收方:
在这里插入图片描述
③停等协议

发送方发出1个分组,等待接收方响应后再继续发送。

7.rdt2.0:无差错时的操作:
在这里插入图片描述
8.rdt2.0:有差错时的情况:
在这里插入图片描述

9.rdt2.0的重大缺陷:

(1)如果ACK/NAK消息发生错误/被破坏(corrupted)会怎样?

a.为ACK/NAK增加校验和,检错并纠错(添加额外的控制消息);
b.发送方收到被破坏ACK/NAK时不知道接收方发生了什么;
c.如果ACK/NAK坏掉,发送方重传;
d.不能简单的重传:产生重复分组;
e.不能只是重传:可能导致重复(duplicate)。

(2)处理重复(序号机制):

a.发送方对每个分组增加序列号;
b.如果ACK/NAK受损,发送方重传当前的分组;
c.接收方丢弃(不再向上交付)重复的分组。

四.rdt2.1:发送方,处理受损的ACK/NAK

1.发送方

a.序号seq #加入分组中;
b.两个序号seq. #’ s(0,1)将够用;
c.必须检查是否收到的ACK/NAK受损;
d.状态增加一倍:

  • 状态必须“记住”是否“当前的”分组具有0或1序号。

在这里插入图片描述

2.接收方

a.必须检查是否接收到的分组是冗余的

  • 状态指示是否0或1是所期待的分组序号seq #
    b.注意:接收方不能知道是否它的最后的ACK/NAK在发送方已经接收。

在这里插入图片描述

五.rdt2.2:一种无NAK的协议

1.与rdt2.1一样的功能,仅使用ACK;

2.如何实现:

a.接收方对最后正确接收的分组发送ACK;
b.在ACK消息中,接收方必须明确地包括被确认分组的序号。

3.在发送方重复的ACK导致如同NAK相同的动作:

重传当前分组。

在这里插入图片描述

六.rdt3.0:具有差错和丢包的信道

1.具有差错和丢包的底层信道

a.有比特差错;
b.有分组丢失。

2.现有机制(检错、反馈、重传、序号)还不够。

3.增加定时机制:发送方等待ACK一段“合理的”时间

a.如果这段时间没有收到ACK则重传;
b.如果分组(或ACK)只是延迟(没有丢失),重传将是冗余的,但序号的使用已经处理了该情况。
c.需要定时器。

4.发送方FSM
在这里插入图片描述

5.分组丢失
在这里插入图片描述
6.ACK丢失与超时
在这里插入图片描述
7.rdt3.0的性能

a.rdt3.0能够工作,但性能不太好;
b.例子:1Gbps链路,15ms端到端传播时延,1KB分组:
在这里插入图片描述

  • Usender:利用率-发送方用于发送时间的比率;
  • 每30msec 1KB分组 -> 经1Gbps链路有33kB/sec吞吐量;
  • 网络协议限制了物理资源的使用。

8.停等协议的运行
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

llurran

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值