当前课程知识点:计算机网络 > 第五章 运输层 > 5.3 可靠传输工作原理 > 可靠传输工作原理
通过前面的课程我们可以了解到
TCP发送的报文段
都是交给IP层来传送的
但是IP层仅仅只能提供
尽最大努力服务
它提供的是不可靠的传输
那么
TCP需要采用
什么适当的措施
才能使得两个传输层之间的通信
变得可靠呢
理想的传输条件包括以下两点
第一传输的信道不产生差错
第二不管发送方发送速度有多快
接收方总能够及时的处理
如果在这样的理想传输条件下面
并不需要采用任何措施
就能够实现可靠传输
然而
在实际的网络中
并不都具备以上这两个理想的条件
这样为了实现数据的可靠传输
在现实数据传输中
我们必须考虑如下的问题
第一发送方
每帧之间相隔多长的时间
如何确认对方是否收到数据
第二传输过程
会出错吗
会丢失数据帧吗
第三接收方是否接收到正确的数据帧
如何告诉对方呢
能及时处理收到的数据帧吗
这样就需要使用一些可靠的传输协议
来保证数据的可靠传输
下面从最简单的停止等待协议开始
进行介绍
停止等待
就是每发送完一个分组就停止发送
等待对方的确认
在收到确认后再发送下一个分组
全双工通信的双方
既是发送方也是接收方
为了讨论问题的方便
我们仅考虑A发送数据
而B接收数据并发送确认
因此A叫做发送方
而B叫做接收方
第一
无差错的情况
如图所示
这是最简单的无差错情况
A发送分组M1
发送完就暂停发送
等待B的确认
B收到了M1向A发送ACK
A在收到了对M1的确认后
就再发送下一个分组M2
第二种情况
出现差错
分组在传输过程中间出现差错的情况
那么我们看看PPT
可以发现
在传输过程中间分组出错分为
以下两种情况
第一B收到M1时检测出了差错
就丢弃M1
其他什么都不做
并不通知A收到了有差错的分组
第二M1在传输过程中间丢失了
这时候B当然什么都不知道
也就什么都不做
这两种情况下面
B 都不会发送任何信息
那么如何保证B正确收到了M1呢
解决方法
采用超时重传机制
一 A为每一个已发送的分组
都设置了一个超时计时器
二 A只要在超时计时器到期之前
收到了相应的确认
就撤销该超时计时器
继续发送下一个分组M2
在此
应该注意以下几点
一 A在发送完一个分组后
必须暂时保留已经发送的分组副本
只有在收到相应的确认后
才能清除暂时保留的副本
二 分组和确认分组都必须进行编号
这样才能明确是
哪一个发送出去的分组收到了确认
而哪一个分组还没有收到确认
三 超时计时器设置的重传时间
应当比数据在
分组传输的平均往返时间更长一些
三 确认丢失和确认迟到
还有一种情况就是
B所发送的对M1的确认丢失了
或者是确认迟到了
那么我们看看
首先确认丢失
如果B所发送的对M1的确认丢失了
那么A在设定的超时重传时间内
不能收到确认
但A并不能知道
到底是自己发送的分组了出错丢失了呢
还是B发送的确认丢失了
因此A在超时计时器到期后
就要重传M1
如果B又收到了重传的分组M1
那么这个时候B应该采取两个行动
第一 丢弃这个重复的分组M1
并不向上层交付
第二 向A发送确认
不能认为已经发送过确认就不再发送
因为A之所以重传M1
就表示A还并没有收到对M1的确认
确认迟到的情况
传输过程中间没有出现差错
但B对分组M1的确认迟到了
这个时候
A会收到重复的确认
对重复的确认的处理非常简单
收到后就丢弃
B也仍然会收到重复的M1
并且同样要丢弃重复的M1
并重传确认分组
通常A最终总是可以收到
对所有发出的分组的确认
如果A不断重传分组
但总是收不到确认
这就说明通信线路太差了
不能够进行通信
使用上述的确认和重传机制
我们就可以在不可靠的传输网络上面
实现了可靠的通信
像上述的这种可靠传输协议
常称为自动重传请求ARQ
意思就是重传的请求是自动进行的
接收方不需要请求发送方
重传某个出错的分组
四 信道利用率
停止等待协议的优点是简单
但当往返时间RTT
远大于分组发送时间TD时
信道利用率就太低了
若出现重传
则对传送有用的数据信息来说
信道的利用率还要降低
为了提高传输效率
发送方可以不使用低效率的停止等待协议
而是采用流水线传输
流水线传输
就是发送方可连续发送多个分组
不必每发完一个分组
就停顿下来等待对方的确认
这样可以使信道上
一直有数据不间断地传送
由于信道上一直有数据不间断地传送
这种传输方式可获得很高的信道利用率
-1.1 计算机网络的发展历程及其在信息时代中的作用
-1.2 互联网的组成
--互联网的组成
-1.3 电路交换和分组交换
-1.4 计算机网络的性能
--计算机网络的性能
-1.5 计算机网络体系结构和层次划分
-第一章
-2.1 数据通信系统模型
--数据通信系统模型
-2.2 导向型传输媒体
--导向型传输媒体
-2.3 光导纤维
--光导纤维
-2.4 非导向型传输媒体
--非导向型传输媒体
-2.5 信道的极限容量
--信道的极限容量
-2.6 信道复用技术
--信道复用技术
-2.7 ADSL
--ADSL
-第二章
-3.1 数据链路层的三个基本问题
-3.2 CSMA/CD协议
-3.3 虚拟局域网
--虚拟局域网
-3.4 扩展的以太网
--扩展的以太网
-3.5 高速以太网
--高速以太网
-第三章
-4.1 分类的IP地址-划分子网
-4.2 无分类编址-构造超网
-4.3 ICMP协议
--ICMP协议
-4.4 路由器结构
--路由器结构
-4.5 RIP协议
--RIP协议
-4.6 IP多播
--IP多播
-第四章
-5.1 用户数据报协议UDP
-5.2 TCP报文段首部格式
-5.3 可靠传输工作原理
--可靠传输工作原理
-5.4 字节为单位的滑动窗口实现
-第五章
-6.1 网络应用层
--网络应用层
-6.2 DNS
--DNS
-6.3 FTP
--FTP
-6.4 HTTP
--HTTP
-6.5 P2P
--P2P
-6.6 计算机网络面临的安全性威胁
-6.7 防火墙
--防火墙
--第六章
-7.1 交换机基本配置
--交换机基本配置
-7.2 路由器基本配置
--路由器基本配置
-7.3 交换机端口隔离
--交换机端口隔离
-7.4 跨交换机实现相同VLAN通信
-7.5 动态路由
--动态路由
-7.6 静态路由
--静态路由