什么是 TCP 中的傻窗综合症?
TCP是一种传输控制协议,是一种面向连接的协议。它为发送方和接收方之间的信息提供了流量控制和错误控制设施。
将在数据链路层中使用的一种协议,它将支持数据帧的可靠和顺序传送。该协议是滑动窗口协议。
这种滑动窗口设施也与TCP一起使用,它有助于在收到来自接收方的确认之前由发送方一次传输多个帧。
TCP将保持适当的数据流。
如果发送方的数据传输速度比接收方的接收速度高,就会出现溢出。这将导致数据丢失。这可以由TCP控制。这就是提供窗口概念。
由于TCP的错误实现,可能会出现傻窗口综合症。
这会降低性能。由于这个问题,数据传输变得低效。
由于此问题,发件人窗口可能会缩小到较小的尺寸。
因此传输的数据大小也变得小于TCP报头。
导致傻窗综合症的问题
由于以下问题,可能会出现该综合征-
发送者窗口重复传输一个字节的数据。
接收器窗口重复接受一个字节的数据。
让我们详细了解它们。
发送者窗口重复传输一个字节的数据
步骤1-如果应用程序仅生成一个字节的数据。TCP将传输这一小段数据。
第2步-应用程序始终生成单个字节的数据,然后窗口传输它。
步骤3-这是因为传输过程变得缓慢且效率低下。这里发送方窗口重复发送一个字节的数据。
接收器窗口重复接受一字节数据
步骤1-假设接收器无法处理所有传入数据。
步骤2-在这种情况下,接收器会通告一个小的窗口大小。
步骤3-重复该过程,窗口大小变得太小。
步骤4-因此,接收器重复通告一字节的窗口大小。
步骤5-最后,接收过程变得缓慢且低效。
解决方案
针对上述问题的解决方案解释如下:
发送者窗口重复传输一个字节的数据
从应用程序接收到一个字节数据时,发送方必须仅发送第一个字节。
发送方必须缓冲所有剩余的字节,直到未完成的字节得到确认。
发送方收到确认后,需要将缓存的数据发送到一个TCP报文段中。然后发送方应再次缓冲数据,直到确认先前发送的数据。
接收器窗口重复接受一字节数据-
接收器不会发送一个字节的窗口更新。
接收器必须等到它有更多可用空间。
之后,接收方应该向发送方通告窗口的大小。
TCP将初始拥塞窗口设置为最大段大小。通告窗口是当时接收方的窗口,有效窗口是当时通告窗口和拥塞窗口中最小的。
从所有这些解释中,我们将了解愚蠢的窗口综合症,这将使数据传输效率低下。
评论列表