Уменьшение размера окна TCP при перегрузках

Рубрика: Принципы работы сетей

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

Размер окна TCP уменьшается при перегрузках

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

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

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

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

Детали различных функций управления перегрузкой TCP могут быть найдены в RFC 2581.

http://www.ietf.org/rfc/rfc2581.txt

Далее: Протокол UDP

Смотрите также
Комментарии
Написать

(обязательно)

(обязательно)

Это не спам (обязательно)