第19章 TCP的交互数据流
19.1 引言
- 约50%的TCP报文段包含交互数据
- 约90%的交互数据小于10字节
- 本章以Rlogin为例
19.2 交互式输入
Rlogin连接中,每个按键产生4个报文段:
- 按键(客户→服务器)
- 确认(服务器→客户)
- 回显(服务器→客户)
- 回显确认(客户→服务器)
第2和第3报文段可合并(延迟确认)。
19.3 经受时延的确认
- 延迟最多200ms
- 如果数据在延迟期间到达,可捎带确认
- 定时器每200ms溢出一次
19.4 Nagle算法
规则
- 最多一个未被确认的小分组
- 确认到达后才能发送下一个
关闭Nagle算法
TCP_NODELAY选项- 用于X窗口系统等实时应用
示例
- 功能键产生多字节序列
- Nagle算法可能引起时延
- 关闭后可显著改善响应
19.5 窗口大小通告
- 通告窗口大小受接收缓存限制
- 可通过
SO_RCVBUF修改
19.6 小结
交互数据使用小报文段。延迟确认和Nagle算法减少报文段数量。