5.6 TCP可靠传输实现
以字节为单位的滑动窗口。
发送窗口已满,停止发送。
发送和接收的数据都来自缓存。
超时重传时间RTO选择:自适应算法,
选择确认SACK:只传送缺少的数据。大多数实现还是重传所有未被确认的数据块。
5.7 TCP的流量控制
流量控制,让发送方的发送速率不要太快,让接收方来得及接收。A向B发送数据时,B告诉A它的接收窗口。发送方的发送窗口不能超过接收窗口的数值。
TCP为每一个连接设定一个持续计时器,TCP连接的一方收到对方的零窗口通知,启动计时器,时间到后就发送一个零窗口探测报文段。
TCP传输效率,TCP报文段的发送时机三种机制:
Nagle算法:
5.8 TCP的拥塞控制
计算机的链路容量(即带宽)、交换结点中的缓存和处理机等,都是网络的资源。若网络中的某一资源超的需求,超过了该资源提供的可用部分,网络性能变坏,此情况叫拥塞。
拥塞控制,防止过多的数据注入到网络中,可以使网络中的路由器或链路不致过载。
流量控制是指点对点通信量的控制。
拥塞控制方法:慢开始、拥塞避免、快重传、快恢复。
慢开始:由小到大逐渐增大发送窗口,即增大拥塞窗口数值。
拥塞避免:每经过一个往返时间RTT就把发送方的拥塞窗口cwnd加1,慢开始阶段加倍增加。
快重传:
快恢复:
AIMD算法:
主动队列管理:
为避免网络中的全局同步现象,98年提出主动队列管理AQM。实现方法有:随机早期检测RED。
5.9 TCP运输连接管理
运输连接三阶段:连接建立、数据传送、连接释放。发起连接的应用进程为客户、被动等待连接建立的应用进程为服务器。
TCP连接建立的三个问题:
建立连接的过程为握手,通过三报文握手建立TCP连接。
TCP连接释放: