Синдром глупого окна
Синдром глупого окна ( SWS ) — это проблема в компьютерных сетях, вызванная плохо реализованным TCP управлением потоком . Серьезная проблема может возникнуть в работе скользящего окна , когда отправляющая прикладная программа медленно создает данные, принимающая прикладная программа медленно потребляет данные или и то, и другое. Если сервер с этой проблемой не может обработать все входящие данные, он просит своих клиентов уменьшить объем данных, которые они отправляют за один раз (настройка окна в TCP- пакете ). Если сервер по-прежнему не может обрабатывать все входящие данные, окно становится все меньше и меньше, иногда до такой степени, что передаваемые данные меньше заголовка пакета, что делает передачу данных крайне неэффективной. Название этой проблемы связано с уменьшением размера окна до « глупого » значения.
Поскольку с обработкой каждого пакета связано определенное количество накладных расходов , увеличение количества пакетов означает увеличение накладных расходов на обработку уменьшающегося объема данных. Конечным результатом является избиение .
Решение
[ редактировать ]Когда между отправителем и получателем нет синхронизации относительно мощности потока данных или размера пакета, возникает проблема оконного синдрома. Когда отправитель создает синдром глупого окна, алгоритм Нэгла используется . Решение Нэгла требует, чтобы отправитель отправил первый сегмент, даже если он небольшой, а затем дождался получения ACK или накопления сегмента максимального размера (MSS).
Когда получатель создает синдром глупого окна, используется решение Дэвида Д. Кларка. [ нужна ссылка ] Решение Кларка закрывает окно до тех пор, пока не будет получен другой сегмент максимального размера сегмента (MSS) или пока буфер не станет наполовину пустым.
Существует 3 причины СВС:
- Когда сервер объявляет пустое пространство как 0
- Когда клиент может генерировать только 1 байт за раз
- Когда сервер может потреблять только 1 байт за раз
Во время SWS эффективность связи практически равна нулю, поэтому продолжительность SWS должна быть как можно более короткой.
Обход глупого окна на стороне отправки
[ редактировать ]Эвристический метод , при котором TCP отправки должен позволять приложению-отправителю выполнять вызовы «записи» и собирать данные, передаваемые в каждом вызове, прежде чем передавать их в большой сегмент. Отправляющий TCP задерживает отправку сегментов до тех пор, пока не накопится разумное количество данных, что называется группировкой.
Уклонение от глупого окна на стороне приема
[ редактировать ]Эвристический метод, который получатель использует для ведения внутренней записи доступного окна и задержки уведомления отправителя об увеличении размера окна до тех пор, пока он не сможет авансировать значительную сумму. получателя Эта сумма зависит от размера буфера и максимального размера сегмента. Используя этот метод, он предотвращает появление небольших рекламных окон, в которых полученные приложения медленно извлекают октеты данных .
Ссылки
[ редактировать ]- Комер, Дуглас Э. (2006). Межсетевое взаимодействие с TCP/IP (5-е изд.). Прентис Холл: Аппер-Сэддл-Ривер, Нью-Джерси.
- Постел, Дж (1981). План перехода NCP/TCP . п. 6. дои : 10.17487/RFC0801 . РФК 801 . Проверено 5 октября 2016 г.
Некоторые реализации TCP не защищали от синдрома глупого окна.