交互数据流:
经受时延的确认
通常TCP在接受数据时并不立即发送ACL;相反,它推迟发送,以便将ACK与需要沿该方向发送的数据一起发送(也称为:数据捎带ACK).绝大多数实现采用的时延为200 ms,也就是说,TCP将以最大200 ms的时延等待是否有数据一起发送.
Nagle算法
该算法要求一个TCP连接上最多只能有一个未被确认的未完成的小分组,在该分组的确认到达之前不能发送其他的小分组.相反,TCP收集这些少量的分组,并在确认到来时以一个分组的方式发出来.
该算法的优越之处在于它是自适应的:确认到达得越快,数据也就发送得越快.而在希望减少微小分组数目的低速广域网上,则会发送更少的分组.
关闭Nagle算法
有时我们也需要关闭Nagle算法。一个典型的例子是X窗口系统服务器(见30.5节):小消息(鼠标移动)必须无时延地发送,以便为进行某种操作的交互用户提供实时的反馈。
成块数据流:
TCP使用的被称为滑动窗口协议的另一种形式的流量控制方法:该协议允许发送方在停止并等待确认前可以连续发送多个分组.由于发送方不必每发一个分组就停下来等待确认,因此该协议可也加速数据的传输.
image.png使用TCP的滑动窗口协议时,接收方不必确认每一个收到的分组.
网友评论