Соединение TCP
Эту статью необходимо обновить . ( декабрь 2016 г. ) |
Compound TCP (CTCP) — это алгоритм Microsoft , который был представлен как часть Windows Vista и Window Server 2008 стека TCP . отправителя Он предназначен для агрессивной настройки окна перегрузки для оптимизации TCP для соединений с продуктами с большой задержкой полосы пропускания , стараясь при этом не нарушать справедливость (как это может произойти с HSTCP ). Он также доступен для Linux, а также для Windows XP и Windows Server 2003 через исправление. [1]
Принципы работы
[ редактировать ]Подобно FAST TCP и TCP Vegas , Compound TCP использует оценки задержки в очереди как меру перегрузки; если задержка в очереди невелика, он предполагает, что ни одно соединение на его пути не перегружено, и быстро увеличивает свою скорость. В отличие от них, он не стремится поддерживать постоянное количество пакетов в очереди.
Составной TCP поддерживает два окна перегрузки: обычное окно AIMD и окно на основе задержки. Размер фактического используемого скользящего окна представляет собой сумму этих двух окон. Окно AIMD увеличивается так же, как его увеличивает TCP Reno . Если задержка невелика, окно задержки быстро увеличивается, чтобы улучшить использование сети. После возникновения очереди окно задержки постепенно уменьшается, чтобы компенсировать увеличение окна AIMD. пути Цель состоит в том, чтобы поддерживать их сумму примерно постоянной, при которой алгоритм оценивает произведение задержки полосы пропускания . В частности, при обнаружении очереди окно на основе задержки уменьшается на предполагаемый размер очереди, чтобы избежать проблемы «постоянной перегрузки», о которой сообщается для FAST и Vegas. Таким образом, в отличие от TCP-Illinois и его предшественника TCP Africa , Compound TCP может уменьшать свое окно в ответ на задержку. Это повышает справедливость по отношению к Рино. [ нужна ссылка ]
Описания Compound TCP можно найти в документе конференции. [2] Интернет-черновик, [3] и патент США. [4]
Windows 2003 и XP x64.
[ редактировать ]Доступно исправление, которое добавляет поддержку CTCP в 64-разрядные версии Windows XP и Windows Server 2003. [1]
Следующий ключ реестра может иметь значение 1 , чтобы включить, или 0 , чтобы отключить:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\TCPCongestionControl
Windows Виста/2008/7
[ редактировать ]CTCP включен по умолчанию на компьютерах под управлением бета-версий Windows Server 2008 и отключен по умолчанию на компьютерах под управлением Windows Vista и 7.
CTCP можно включить командой:
netsh interface tcp set global congestionprovider=ctcp
или отключить командой:
netsh interface tcp set global congestionprovider=none
Чтобы отобразить текущие настройки для использования CTCP:
netsh interface tcp show global
Параметр «Дополнительный поставщик контроля перегрузки» будет иметь значение «none», если CTCP отключен, или «ctcp», если он включен.
Windows 8 и выше
[ редактировать ]Начиная с Windows 8, Windows использует PowerShell команду Set-NetTCPSetting для изменения алгоритма управления перегрузкой. Примерно в 2018 году Microsoft перешла от CTCP к использованию CUBIC в Windows 10 и Xbox, поскольку он считался очень чувствительным к задержкам, а также плохо работал в центрах обработки данных, где изменение задержки было проблемой.
Линукс
[ редактировать ]CTCP был портирован на Linux Анджело П. Кастеллани. [ нужна ссылка ] . Полученный на его основе патч был разработан в Калифорнийском технологическом институте и включал в себя CTCP TUning By Emulation (TUBE) и был выпущен только исследователям из-за патентов на программное обеспечение . [5] [ нужен лучший источник ] Начиная с версии ядра 2.6.17, модуль несовместим и не может скомпилироваться из-за изменений API ядра.
См. также
[ редактировать ]- Алгоритм предотвращения перегрузки TCP
- Явное уведомление о перегрузке
- Протокол управления передачей — разработка
Ссылки
[ редактировать ]- ^ Jump up to: а б Доступно исправление, добавляющее поддержку Compound TCP (CTCP) на компьютеры под управлением Windows Server 2003 или Windows XP.
- ^ Тан, К.; Сонг, Дж.; Чжан, К.; Шридхаран, М. (2006). «Комплексный подход TCP для высокоскоростных и междугородных сетей». Труды IEEE INFOCOM 2006. 25-я Международная конференция IEEE по компьютерным коммуникациям . стр. 1–12. дои : 10.1109/INFOCOM.2006.188 . ISBN 1-4244-0221-2 . S2CID 1741788 .
- ^ Тан, Кун; Шридхаран, Мурари; Бансал, Дипак; Талер, Дэйв. «Соединенный TCP: новый контроль перегрузки TCP для высокоскоростных и междугородних сетей» . Ietf Datatracker .
- ^ «Протокол управления сложной передачей [US7577097B2]» . Гугл Патенты . 22 марта 2005 г.
- ^ «Соединенный TCP в Linux» . Архивировано из оригинала 2 августа 2008 года . Проверено 4 января 2011 г.
Внешние ссылки
[ редактировать ]- Интернет-проект составного TCP
- «Комплексный TCP-подход для высокоскоростных и междугородных сетей», июль 2005 г.
- Повышение производительности стека TCP/IP следующего поколения , The Cable Guy
- Составной TCP для высокоскоростных и междугородных сетей , публикация Microsoft Research
- Обещания и опасности Vista TCP/IP , статья в Network Performance Daily
- Патч Caltech Compound TCP для Linux
- Включение CTCP в 2003/XP x64: [1] Архивировано 6 мая 2008 г. на Wayback Machine , [2] Архивировано 30 апреля 2008 г. на Wayback Machine.
- Отчет об экспериментальной оценке соединения TCP Института Гамильтона и Калифорнийского технологического института , март 2008 г.
- Исследование Compound TCP на основе моделирования [ мертвая ссылка ] 14 июля 2008 г.