URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 6854
[ Назад ]

Исходное сообщение
"Управление входящим TCP потоком"

Отправлено jz , 16-Окт-07 23:32 
Знаю, что существует способ управлять входящим (на сервер) TCP потоком (от клиентов) путем изменения размера окна перегрузки (cwnd). Удастся ли такое же действие реализовать путем задержки подтверждений (ACK)?

Содержание

Сообщения в этом обсуждении
"Управление входящим TCP потоком"
Отправлено Alu , 17-Окт-07 09:19 
>Удастся ли такое же действие реализовать путем задержки подтверждений (ACK)?

Существует несколько стратегий управления TCP-потоком. Одной из самых распостраненных  является стратегия "медленного старта - устранения затора".
В фазе медленного старта при получении каждого ACK отправитель увеличивает значение своего окна переполнения, что приводит к росту скорости передачи. Т.е. задерживая отправку ACK Вы замедляете рост скорости(ускорение) передачи данных, но не саму скорость.
Фаза устранения затора наступает по тайм-ауту получения ACK и приводит к сбросу размера окна переполнения(и, соответственно, снижению скорости передачи). После чего снова запускается алгоритм медленного старта.
Т.е в Вашем случае решение(ИМХО) выглядит следующим образом: при достижении отравителем некой пороговой скорости, нужно не посылать ACK в течении тайм-аута, что приведёт к сбросу скорости.И повторять эти действия циклично.
Подробнее об алгоритмах управления TCP-потоком можно почитать тут:
http://www.opennet.me/docs/RUS/inet_book/4/44/tcp_443.html
RFC-793,1323
ОС Unix(А. Робачевский)