Синдром глупого окна - Silly window syndrome

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

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

Решение

Когда нет синхронизации между отправителем и получателем в отношении пропускной способности потока данных или размера пакета, возникает проблема оконного синдрома. Когда синдром глупого окна создается отправителем, Алгоритм Нэгла используется. Решение Нэгла требует, чтобы отправитель отправлял первый сегмент даже если он маленький, то подождать, пока ACK или накоплен сегмент максимального размера (MSS). Когда получатель создает синдром глупого окна, используется решение Дэвида Кларка.[нужна цитата ] Решение Кларка закрывает окно до тех пор, пока не будет получен другой сегмент максимального размера сегмента (MSS) или пока буфер не станет наполовину пустым.

Есть 3 причины SWS:

  1. Когда сервер объявляет пустое пространство как 0
  2. Когда клиент может генерировать только 1 байт за раз
  3. Когда сервер может потреблять только 1 байт за раз

Во время SWS эффективность связи почти равна нулю, поэтому продолжительность SWS должна быть как можно короче.

Избегание глупых окон на стороне отправки

А эвристический метод, в котором TCP отправки должен разрешать отправляющему приложению выполнять вызовы «записи» и собирать данные, передаваемые при каждом вызове, перед их передачей в большой сегмент. Отправляющий TCP задерживает отправку сегментов до тех пор, пока не сможет накопить разумные объемы данных, что известно как комкование.

Избегание глупых окон на стороне приема

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

Рекомендации

  • Комер, Дуглас Э. (2006). Межсетевое взаимодействие с TCP / IP (5-е изд.). Prentice Hall: Верхняя река Сэдл, штат Нью-Джерси.
  • Постел, Дж (1981). План перехода NCP / TCP. п. 6. Дои:10.17487 / RFC0801. RFC 801. Получено 5 октября 2016. Некоторые реализации TCP не защищали от синдрома глупого окна.

внешняя ссылка