TCP报文段包含成块数据和交互数据。
Rlogin每一个交互按键都会产生一个数据分组,报文段2和3可以进行合并(受时延的确认)
Telent有一个选项允许客户发送一行到服务器,通过使用这个选项可以减少网络的负载。
受时延的确认:时延的时间是1-200不等。TCP使用了一个 200 ms的定时器,该定时器以相对于内核引导的 200 ms固定时间溢出。由于将要确认的数据是随机到达的(在时刻 16.4, 474.3, 831.1等), T C P在内核的 200 ms定时器的下一次溢出时得到通知。这有可能是将来1~200 ms中的任何一刻。
Nagle算法
Nagle算法要求TCP连接上最多只有一个未被确认的未完成小分组,在该分组确认到达之前不能发送其他的小分组.且同时TCP收集这些小分组,在确认到达后以一个大的分组发出去.
该算法可以减少网络上的微小分组,降低拥塞出现的可能.但相应的,也会增加更多的时延.
流程:
(1)发送端TCP将从应用进程接收到的第一数据块立即发送,不管其大小,哪怕只有一个字节.
(2)发送端输出第一块数据后开始收集数据,并等待确认.
(3)确认未达到时,若收集数据达到窗口的一半或一个MSS段,立即发送.
(4)确认到达后,把缓冲区中的数据组成一个TCP段,然后发送.
没有用Nagle算法: