Введение

Синдром "глупых окон" (SWS) – это проблема в компьютерных сетях, вызванная некорректной реализацией управления потоком TCP. Серьезная проблема возникает в работе скользящего окна, когда отправляющее приложение создает данные медленно, принимающее приложение потребляет данные медленно, или и то, и другое. Если сервер, столкнувшийся с этой проблемой, не может обработать весь входящий трафик, он запрашивает у клиентов уменьшить объем данных, передаваемых за один раз (размер окна в TCP-пакете). Если сервер продолжает испытывать трудности с обработкой входящих данных, размер окна становится все меньше и меньше, иногда до такой степени, что объем передаваемых данных оказывается меньше заголовка пакета, что делает передачу данных крайне неэффективной. Название этой проблемы связано с тем, что размер окна уменьшается до "нелепо" малого значения. Поскольку обработка каждого пакета требует определенных накладных расходов, увеличение количества пакетов приводит к увеличению этих расходов на обработку уменьшающегося объема данных. Конечным результатом является "треш" (thrashing).

Избегание глупых окон

Эвристический метод, при котором отправляющий TCP должен разрешать отправляющему приложению выполнять вызовы записи ("write") и собирать данные, переданные при каждом вызове, перед передачей их в виде большого сегмента. Отправляющий TCP задерживает отправку сегментов до тех пор, пока не сможет накопить достаточное количество данных, что известно как кластеризация.

Скрытие от глупых окон

Эвристический метод, используемый приемником для ведения внутреннего учета доступного окна и отсрочки уведомления об увеличении размера окна отправителю до тех пор, пока не удастся добиться существенного прироста. Этот прирост зависит от размера буфера приемника и максимального размера сегмента. Применение этого метода предотвращает отправку небольших уведомлений об окне, когда приложения, получающие данные, медленно извлекают октеты.