Синдром глупого окна ( SWS ) — это проблема в компьютерных сетях , вызванная плохо реализованным управлением потоком TCP . Серьезная проблема может возникнуть в работе скользящего окна , когда передающая прикладная программа медленно создает данные, принимающая прикладная программа медленно потребляет данные или и то, и другое. Если сервер с этой проблемой не может обработать все входящие данные, он просит своих клиентов уменьшить объем данных, которые они отправляют за раз (настройка окна в TCP- пакете ). Если сервер по-прежнему не может обрабатывать все входящие данные, окно становится все меньше и меньше, иногда до такой степени, что передаваемые данные меньше заголовка пакета, что делает передачу данных крайне неэффективной. Название этой проблемы связано с уменьшением размера окна до «глупого» значения.
Поскольку с обработкой каждого пакета связано определенное количество накладных расходов , увеличение количества пакетов означает увеличение накладных расходов на обработку уменьшающегося объема данных. Конечным результатом является избиение .
Когда между отправителем и получателем нет синхронизации относительно мощности потока данных или размера пакета, возникает проблема оконного синдрома. Когда отправитель создает синдром глупого окна, используется алгоритм Нэгла . Решение Нэгла требует, чтобы отправитель отправил первый сегмент, даже если он небольшой, а затем дождался получения ACK или накопления сегмента максимального размера (MSS).
Когда получатель создает синдром глупого окна, используется решение Дэвида Д. Кларка. [ нужна цитация ] Решение Кларка закрывает окно до тех пор, пока не будет получен другой сегмент максимального размера сегмента (MSS) или пока буфер не станет наполовину пустым.
Существует 3 причины СВС:
Во время SWS эффективность связи практически равна нулю, поэтому продолжительность SWS должна быть как можно короче.
Эвристический метод, при котором TCP отправки должен позволять приложению-отправителю выполнять вызовы «записи» и собирать данные, передаваемые в каждом вызове, прежде чем передавать их в большой сегмент . Отправляющий TCP задерживает отправку сегментов до тех пор, пока не накопится разумное количество данных, что называется группировкой.
Эвристический метод, который получатель использует для ведения внутренней записи доступного окна и задержки уведомления отправителя об увеличении размера окна до тех пор, пока он не сможет авансировать значительную сумму. Эта сумма зависит от размера буфера получателя и максимального размера сегмента. Используя этот метод, он предотвращает рекламные объявления в небольших окнах, в которых полученные приложения медленно извлекают октеты данных .
Некоторые реализации TCP не защищали от синдрома глупого окна.