计算机网络——传输层(ARQ&拥塞控制)
停止等待协议ARQ
什么是TCP可靠传输
理想条件:信道不产生差错,速度总能匹配
实际情况:差错,丢包,速度不匹配,拥塞
解决方案:停止等待协议——自动重传请求ARQ,流量控制,拥塞控制
A通过设置一个计时器
来判断是否超时重传
注意:
必须暂时保留已发送分组的副本
分组和确认分组都必须编号
重传时间的设定
内容:
情况一:超时重传
情况二:确认丢失
情况三:确认迟到
连续ARQ协议
发送方可以连续发送多个分组
串行——>并行
全双工工作模式
发送窗口
可以连续发送而不需等待确认的分组数
累积确认
接收方不必对分组逐个确认,而是对按序到达的最后一个发送确认,表示之前所有分组都已到达
优点:容易实现,即使确认丢失也不必重传(eg:结果为6的确认丢失,会被结果为10的确认覆盖)
缺点:不能向发送方反映出接收方已经正确收到的所有分组信息
go-back-N(回退)规则
接收方只确认从头开始完整的分组,后面的N个分组全部重传
特点
更适用于通信质量较好的环境,当通信质量不好时,连续ARQ将带来负面影响
TCP通信需要解决:
- 窗口大小的动态确定,滑动窗口
收到确认时,根据确认数,窗口首部移动相应位数
发送完成后(p2=p3)时,收到确认才能继续发送
发送窗口并不总是等于接收窗口
未按序到达的数据,先临时存放在接收窗口中
累积确认(连续发送,累积确认)
- 确定合理的重传时间
太短——不必要的重传——网络负荷大
太长——空闲时间长——效率低
TCP采用了一种自适应算法
发出时间T1,确认到达时间T2,加权平均往返时间RTTs,超时重传时间RTO
RTTs(0<α<=1)
RTO
TCP的拥塞控制
拥塞:当网络中的资源超过了网络的承载能力,需求超过了该资源所能提供的可用部分。
开环控制
设计时事先将拥塞因素考虑周到,力求工作室不产生拥塞,运行后中途不再改进
闭环控制
基于反馈环路概念
检测网络系统以便发现拥塞,将拥塞信息发送到可用采取行动的地方,调整网络系统以解决问题
慢开始和拥塞避免
发送方维持一个拥塞窗口,窗口大小取决于网络的拥塞程度,并且动态变化。发送窗口小于等于拥塞窗口。(与接收能力相关)
只要网络没有出现拥塞,拥塞窗口会增大,反之则会减小。
过程
慢开始,由小到大逐渐增大发送窗口,每经过一个传输轮次,拥塞窗口就会加倍
拥塞避免,让拥塞窗口缓慢增大,每经过一个往返时间,拥塞窗口+1
为了防止增速过快,需要设置一个慢开始门限,超过时改用拥塞避免算法,增加到接收方窗口值。当检测到拥塞(重传请求)时,重新归一计算,门限值取拥塞值的一半。
TCP的连接管理
TCP的连接有三个阶段:建立连接、数据传输和连接释放,连接管理主要关心建立连接和释放连接
需要解决三个问题:
使双方知道对方的存在
允许双方协商一些参数
能够对资源进行分配
通常,主动发起连接建立的进程叫“客户”,被动等待连接建立的进程叫“服务器”
三次握手(建立连接)
通常由客户端主动发起,服务器端被动开启
同步标记位(二进制):SYN——连接过程标记位,ACK——确认标记位
四次挥手(连接释放)
可以由任一端发起
同步标记位:FIN——结束标志位
资料来源:北京交通大学、李春艳——计算机网络与互联网