傻窗综合征

2020-06-09 07:47:22

跳转到导航跳转到搜索傻窗口综合症是计算机网络中的一个问题,其原因是TCP流量控制实现不佳。当发送应用程序创建数据缓慢、接收应用程序缓慢消耗数据或两者兼而有之时,在滑动窗口操作中可能会出现严重问题。如果出现此问题的服务器无法处理所有传入数据,它会请求其客户端减少一次发送的数据量(TCP数据包上的窗口设置)。如果服务器继续无法处理所有传入数据,则窗口会变得越来越小,有时会导致传输的数据小于数据包头,从而使数据传输效率极低。此问题的名称是由于窗口大小缩小到了愚蠢的值。

因为存在与处理每个分组相关联的一定量的开销。数据包数量的增加意味着处理数量减少的数据的开销增加。最终的结果是一败涂地。

当发送器和接收器之间没有关于数据流的容量或分组大小的同步时,就产生了窗口校正子问题。当发送者创建愚蠢的窗口综合症时,使用Nagle的算法。Nagle的解决方案要求发送方发送第一个数据段(即使它很小),然后等待,直到接收到ACK或累积最大大小的数据段(MSS)。当接收方创建愚蠢的窗口综合症时,将使用David D Clark的解决方案。[需要引用]Clark的解决方案关闭窗口,直到可以接收到另一个最大数据段大小(MSS)的数据段或缓冲区为半空。

在SWS过程中,通信效率几乎为0,因此SWS持续时间应尽可能短。

一种启发式方法,其中发送TCP必须允许发送应用程序进行编写调用,并在将数据传输到较大段之前收集每个调用中传输的数据。发送TCP会延迟发送数据段,直到它可以积累合理数量的数据,这就是所谓的集群化。

一种启发式方法,接收方用来维护可用窗口的内部记录,并延迟向发送方通告窗口大小的增加,直到它可以提前很多。此大小取决于接收方的缓冲区大小和最大数据段大小。通过使用该方法,可以防止接收到的应用程序缓慢提取数据八位组的小窗口广告。

Comer,Douglas E.(2006)。与TCP/IP互连(5版)。Prentice Hall:马鞍河上游,新泽西州。

波斯特尔,J(1981)。NCP/TCP过渡计划。p.20.DOI:10.17487/RFC0801.。RFC 801。某些TCP实现不能防止愚蠢的窗口综合症。