读书笔记十三:TCP/IP详解之TCP的交互数据流


TCP的交互数据流介绍

在TCP进行数据传输时,可以分为成块数据流和交互数据流两种,且处理的算法不同.

交互式输入

Rlogin连接上键入一个交互命令的数据流如下图所示。

每一个交互按键都会产生一个数据分组,每次从客户传到服务器的是一个字节的按键。而Rlogin需要远程系统回显客户键入的字符,这样就会产生4个报文段:

    (1)来自客户的交互按键
    (2)来自服务器的按键确认
    (3)来自服务器的按键回显
    (4)来自客户的按键回显确认
延时确认

通常TCP在接收到数据之后不会立即发送ACK,相反,它推迟发送,以便ACK和需要沿该方向发送的数据一起发送(捎带ACK)。绝大多数实现采用的时延为200ms,也就是说,TCP将以最大200ms的时延等待是否有数据一起发送。如果200ms之后依然没有等到发往对方的数据,则单独发送ACK。如果定时器溢出时,TCP接收缓冲区中还有数据没有被应用层读取完,则返回报文段的窗口大小为初始窗口大小减去缓冲区的数据大小。

窗口大小通告

TCP连接中,通告的窗口大小会因为缓冲区中的数据大小实时进行调整。

 

posted @ 2017-08-05 21:31  繁星的夜空2012  阅读(138)  评论(0编辑  收藏  举报