糊涂窗口综合症
(1) 什么是糊涂窗口综合症?
当发送端应用进程产生数据很慢、或接收端应用进程处理接收缓冲区数据很慢,或二者兼而有之;就会使应用进程间传送的报文段很小,特别是有效载荷很小。 极端情况下,有效载荷可能只有1个字节;而传输开销有40字节(20字节的IP头+20字节的TCP头) 这种现象就叫糊涂窗口综合症
(2) 糊涂窗口综合症类别
1) 发送端引起的糊涂窗口综合症,象Telnet应用;
2) 接收端引起的糊涂窗口综合症
(3) 解决措施
1) 发送端避免在每个数据段中只传送少量数据。
2) 接收端避免发送小容量的窗口通告
(1) 窗口通告
接收端使用确认数据段的 WINDOW 字段来对发送端告知目前有多少可用的缓冲区。
(2) 问题:糊涂窗口综合症 (silly window syndrome) 每一确认只告知少量的可用空间,且每一数据段携带很小的数据量。
(3) 举例说明
若接收端的接收缓冲区已满,窗口通告 WINDOW = 0。 若接收端进程从缓冲区取走1个字节,则窗口通告 WINDOW = 1。 则发送端可能会传送拥有一个字节的数据段。 传送小数据段会浪费网络带宽、产生不必要的计算开销 接收端有2种的方法:
(1) 延迟通告 (Delayed Advertisement)—Clark法 TCP对到达的数据报立即做出确认。 在送出一个窗口大小为0通告之后,至少需要等待缓冲区的可用空间达到其全部的 50% 或是达到最大尺寸的数据段 (maximum sized segment,MSS)再发通告。
(2) 推迟确认 (Delayed Acknowledgement) 标准建议使用「推迟确认」 TCP 推迟传送确认消息,直到窗口大小达到一定的量才通告窗口的可用量。 优点:降低数据量、 提高吞吐率 缺点:不必要的重传、 造成估算往返时间的的混淆 解决办法 推迟确认的时限 (500ms). 至少每隔一个数据段就应该确认。
(1) 目标 避免传送小数据段
(2) 组块技术 (Clumping) 发送端TCP在数据段发送之前必须延迟,直到聚集了足够的数据。
问题: TCP应该等待多久才能发送数据? 若太久—-高延迟 若太短—-小数据段、低效率
解决办法:
1) 固定延迟 不能区分传送按键和传送数据这两种情况? 非最佳化
2) 自适应,Nagle算法
(3) Nagle算法:
自适应延迟
1) 发送端TCP将从应用进程接收到的第一数据块立即发送,不管其大小,哪怕只有一个字节
2) 发送端输出第一块数据后开始收集数据,并等待确认;
3) 在确认未达到时,若收集数据达到窗口的一半或达到一个MSS段,立即发送
3′确认到达,把缓冲区中的数据组成一个TCP段,然后发送
Nagle算法的特点:
1)很小的计算开销
2)不需对不同的连接维持不同的计时器
3)生成数据时不需检查时钟
4)可适应任意的网络延迟、最大数据段尺寸、和应用进程的组合情况
举例(Nagle)
(1) 生成快于网络(大数据量传送情况)
1) 第一个数据被传送后
2) 发送端收集数据、按MSS段或数据达到窗口大小一半时的条件传送。 此时,数据较多 。可能没收到确认,就传送了好几个数据段,收到的确认可能是对几个段的累计确认。
(2) 生成慢于网络(按键应用)
1) 第一个键被传送后
2) 发送端收集后面的按键、确认到达后就传送后续数据。 此时,数据较少 报文段较短、延迟小
分享到:
相关推荐
#### TCP糊涂窗口综合症与紧急方式 本章节探讨了TCP协议中的几个关键概念和技术细节,包括TCP糊涂窗口综合症(TCP’s silly window syndrome)、紧急方式(urgent mode)以及在特定场景下的应用案例。 ##### TCP...
总的来说,TCP/IP详解的课件Volume 1:the protocols涵盖了TCP协议中关键的交互数据流处理、确认机制、Nagle算法以及糊涂窗口综合症的解决方案等内容,这些都是TCP高效、可靠传输的关键所在。通过理解这些知识点,...
糊涂窗口综合症(Silly Window Syndrome)是流量控制中可能出现的问题,当接收方窗口非常小时,发送方可能会频繁地发送小的报文段,造成网络效率低下。为了解决这个问题,Nagle算法被引入,它规定只有当报文段达到...
零窗口和糊涂窗口综合症是流量控制中常见的问题,需要特殊处理。 6.4.5 TCP 拥塞控制:TCP 使用慢启动、拥塞避免、快速重传和快速恢复等策略来应对网络拥塞,保护网络稳定性。 6.5 多媒体传输:多媒体传输对实时性...
11. **糊涂窗口综合症**:这个问题可以通过让接收方在能够容纳整个最大报文段时才发送确认来解决,这样可以避免发送小的、不连续的数据片段。 12. **TCP往返时延(Round-Trip Time,RTT)估计**:在TCP中,通过加权...
- **糊涂窗口综合症**:连续发送小的数据包,导致效率低下。可以通过合并多个小的数据包减少网络负载。 #### TCP协议的拥塞控制 - **拥塞窗口**:控制发送到网络的数据量。 - **门限值**:用于控制拥塞窗口的增长...
22.3 糊涂窗口综合症 246 22.4 小结 250 第23章 TCP的保活定时器 251 23.1 引言 251 23.2 描述 252 23.3 保活举例 253 23.3.1 另一端崩溃 253 23.3.2 另一端崩溃并重新启动 254 23.3.3 另一端不可达 254 23.4 小结 ...
22.3 糊涂窗口综合症 246 22.4 小结 250 第23章 TCP的保活定时器 251 23.1 引言 251 23.2 描述 252 23.3 保活举例 253 23.3.1 另一端崩溃 253 23.3.2 另一端崩溃并重新启动 254 23.3.3 另一端不可达 254 23.4 小结 ...
22.3 糊涂窗口综合症 246 22.4 小结 250 第23章 TCP的保活定时器 251 23.1 引言 251 23.2 描述 252 23.3 保活举例 253 23.3.1 另一端崩溃 253 23.3.2 另一端崩溃并重新启动 254 23.3.3 另一端不可达 254 23.4 小结 ...
22.3 糊涂窗口综合症 246 22.4 小结 250 第23章 TCP的保活定时器 251 23.1 引言 251 23.2 描述 252 23.3 保活举例 253 23.3.1 另一端崩溃 253 23.3.2 另一端崩溃并重新启动 254 23.3.3 另一端不可达 254 23.4 小结 ...
22.3 糊涂窗口综合症 246 22.4 小结 250 第23章 TCP的保活定时器 251 23.1 引言 251 23.2 描述 252 23.3 保活举例 253 23.3.1 另一端崩溃 253 23.3.2 另一端崩溃并重新启动 254 23.3.3 另一端不可达 254 23.4 小结 ...
22.3 糊涂窗口综合症 246 22.4 小结 250 第23章 TCP的保活定时器 251 23.1 引言 251 23.2 描述 252 23.3 保活举例 253 23.3.1 另一端崩溃 253 23.3.2 另一端崩溃并重新启动 254 23.3.3 另一端不可达 254 23.4 小结 ...
22.3 糊涂窗口综合症 246 22.4 小结 250 第23章 TCP的保活定时器 251 23.1 引言 251 23.2 描述 252 23.3 保活举例 253 23.3.1 另一端崩溃 253 23.3.2 另一端崩溃并重新启动 254 23.3.3 另一端不可达 254 23.4 小结 ...
22.3 糊涂窗口综合症 246 22.4 小结 250 第23章 TCP的保活定时器 251 23.1 引言 251 23.2 描述 252 23.3 保活举例 253 23.3.1 另一端崩溃 253 23.3.2 另一端崩溃并重新启动 254 23.3.3 另一端不可达 254 23.4 小结 ...
22.3 糊涂窗口综合症 246 22.4 小结 250 第23章 TCP的保活定时器 251 23.1 引言 251 23.2 描述 252 23.3 保活举例 253 23.3.1 另一端崩溃 253 23.3.2 另一端崩溃并重新启动 254 23.3.3 另一端不可达 254 23.4 小结 ...
22.3 糊涂窗口综合症 246 22.4 小结 250 第23章 TCP的保活定时器 251 23.1 引言 251 23.2 描述 252 23.3 保活举例 253 23.3.1 另一端崩溃 253 23.3.2 另一端崩溃并重新启动 254 23.3.3 另一端不可达 254 23.4 小结 ...
22.3 糊涂窗口综合症 246 22.4 小结 250 第23章 TCP的保活定时器 251 23.1 引言 251 23.2 描述 252 23.3 保活举例 253 23.3.1 另一端崩溃 253 23.3.2 另一端崩溃并重新启动 254 23.3.3 另一端不可达 254 23.4 小结 ...
22.3 糊涂窗口综合症 246 22.4 小结 250 第23章 TCP的保活定时器 251 23.1 引言 251 23.2 描述 252 23.3 保活举例 253 23.3.1 另一端崩溃 253 23.3.2 另一端崩溃并重新启动 254 23.3.3 另一端不可达 254 23.4 小结 ...