目录
TCP 的重传机制
TCP 的选择确认
TCP 的缓存与流量控制
TCP 的连接管理
TCP的拥塞控制
TCP 的重传机制
TCP 每发送一个报文段就设置一个超时计时器;
TCP 使用指数加权移动平均算法计算 RTT 及其偏差的估计值,并据此计算超时重传时间;
若超时还没有收到该报文段的确认,则重传该报文段;
对重传报文段不使用 RTT 测量值计算超时重传时间,而是直接将超时重传时间增大一倍;
如果连续收到某报文段的 3 个重复确认,则进行快速重传。
TCP 的选择确认
TCP的固定首部中没有哪个字段能提供上述这些字节块的边界信息,因此TCP在首部中提供了一个可变长的“SACK选项字段”来存放这些信息
当使用选择确认时,TCP首部中的确认号字段的功能和意义并没有改变,实际上SACK是对原来累积确认功能的一种补充,并可以和使用累积确认的超时重传与快速重传机制一起工作
TCP 的缓存与流量控制
接收方根据空余的接收缓存大小调整接收窗口的大小;
接收方在确认对方数据时将自己的接收窗口大小通知给对方;
发送方根据收到报文段中确认号和窗口字段调整自己的发送窗口;
由于发送方的发送窗口大小总是由接收方的接收窗口大小控制,即接收方通过接收窗口控制发送方的发送速率,保证了接收缓存不会溢出
TCP 的连接管理
面向连接协议通信的三个阶段,即:建立连接、数据传送和释放连接
建立连接的目的就是为接下来要进行的通信做好充分的准备工作,其中最重要的就是分配相应的资源。在通信结束之后显然要释放所占用的资源,即释放连接
TCP连接是运输层连接,只存在于通信的两个端系统中,而网络核心的路由器完全不知道它的存在
TCP的拥塞控制
当网络中出现太多的分组时,网络的性能开始下降。这种情况称为拥塞(congestion)
如果网络中的负载,即发送到网络中的数据量,超过了网络的容量,即网络中能处理的数据量,那么在网络中就可能发生拥塞
通过拥塞窗口控制发送窗口来限制发送速率;
初始拥塞窗口为1,执行慢启动,拥塞窗口呈指数增长;
当拥塞窗口增大到慢启动门限时,执行拥塞避免,拥塞窗口呈线性增长(加性增);
若发生超时,慢启动门限设为当时发送窗口的一半,并将拥塞窗口减为1,重新执行慢启动;
当收到3个冗余ACK,拥塞窗口减半(乘性减),执行快速恢复,直接进入拥塞避免