TCP需要同时处理两类数据:块数据、交互数据。
本章将以Rlogin应用为例观察交互数据的传输过程。
交互式输入
首先观察在一个Rlogin连接上键入一个交互命令时所产生的数据流(每键入一个交互按键都会产生一个数据分组),这会产生4个报文段:
1.来自客户的交互按键;
2.来自服务器的按键确认;
3.来自服务器的按键回显;
4.来自客户的按键回显确认。
然而,我们一般可以将报文段2和报文段3进行合并。
下图是在一个Rlogin连接中键入data\n(加上回车换行)时的 tcpdump输出结果
经受时延的确认
通常TCP在接收数据时并不立即发送ACK,它会推迟发送,以便将ACK与需要沿该方向发送的数据一起发送。
绝大多数实现采用的时延为200ms,也就是说,TCP将以最大200ms的时延等待是否有数据一起发送。
时间: 2024-10-12 21:57:47