您的位置:首页 > 理论基础 > 计算机网络

《TCP/IP详解 卷1:协议》 读书笔记 第19章 TCP的交互数据流

2016-09-06 00:19 716 查看

TCP的交互数据流

TCP的交互数据流
引言

交互式输入

经受时延的确认

Nagle算法
关闭Nagle算法

窗口大小通告

引言

TCP通信量的研究:

按照分组数量计算:一般TCP报文段包含成块数据(如FTP、电子邮件和Usenet新闻),另一半则包含交互数据(如Telnet和Rlogin)。

按照字节计算:90%为成块数据,10%为交互数据。

交互式输入

在一个Rlogin连接上键入一个交互命令所产生的数据流,通常每一个交互按键都会产生一个数据分组,每次从客户传到服务器的是一个字节的按键。



经受时延的确认

通常TCP在接收到数据时并不立即发送ACK;它会等到有需要发送的数据,再和ACK一起发送。(有时候称为数据捎带ACK)

绝大多数采用的时延为200ms,TCP将以最大200ms的时延等待是否有数据一起发送。每次等200ms,然后发一次。

ACK等待发送的时间总是不大于定时器,因为ACK在1~200ms内到达,而定时器在200ms溢出,那它等待的时间肯定小于200ms啦。

Nagle算法

交互数据可能是很多的小分组,比如一个字节,就要发送41字节的分组:IP首部+TCP首部+1=41.

在局域网上这些小分组通常不会有问题,局域网很少拥塞。但是在广域网上,这些小分组就增加了拥塞的可能。

Nagle算法:要求一个TCP连接上最多只能有一个未被确认的未完成的小分组,在该分组确认到达之前不能发送其他的小分组;TCP收集这些小分组,在确认到来时一起以一个分组发出去。

优点:减少拥塞的可能。

缺点:增加时延。

关闭Nagle算法

有时候需要关闭Nagle算法,因为有些应用必须无时延发送。

窗口大小通告

TCP报文段会通报窗口大小win,一般为4096.表示缓存可以接收的数据大小。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息