Compound TCP (Compound TCP)
Compound TCP (CTCP) — алгоритм, разработанный Microsoft и впервые включенный в сетевой стек Windows Vista и Window Server 2008 TCP. Разработан для агрессивного увеличения TCP окна (congestion window) для оптимизации TCP скорости передачи данных при большой задержке (en:Bandwidth-delay_product) с минимальными отклонениями от стандарта (в отличие от HSTCP). Реализация существует для Linux, а также для Windows XP и Windows Server 2003 с помощью обновления.[1]
Принцип работы
[править | править код]Также как FAST TCP и TCP Vegas, Compound TCP использует прогноз задержки очереди как меру загрузки канала; если задержка мала, считается, что перегрузки на пути следования пакетов нет, и скорость резко повышается. В отличие от FAST и Vegas, алгоритм не пытается поддерживать фиксированное количество пакетов в очереди.
Compound TCP работает с двумя окнами: обычное AIMD окно и зависимое от задержки. Размер скользящего окна рассчитывается как сумма этих двух окон. Окно AIMD увеличивается так же как в алгоритме TCP Reno. При маленькой задержке быстро увеличивается размер окна задержки для повышения эффективности использования полосы пропускания сети. При попадании пакета в очередь постепенно уменьшается размер окна задержки чтобы компенсировать увеличение основного (AIMD) окна. Цель этого — поддерживать сумму окон в районе некоторой константы, спрогнозированной алгоритмом (en:bandwidth-delay product пути). В частности, при попадании пакета в очередь, окно задержки уменьшается на прогнозируемый размер очереди для избежания проблемы "постоянной перегрузки" (persistent congestion), возникающей в FAST и Vegas. Так, в отличие от TCP-Illinois и его предшественника TCP Africa, Compound TCP может уменьшать размер окна в ответ на увеличение задержки. Увеличение происходит в точности как в алгоритме Reno.[источник не указан 4244 дня]
Поддерживаемые платформы
[править | править код]Windows 2003 и XP x64
[править | править код]Доступно обновление, добавляющее поддержку CTCP в 64 bit Windows XP и Windows Server 2003.[1]
Следующий ключ реестра может быть установлен в 1 для включения или в 0 для выключения:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\TCPCongestionControl
Windows Vista/2008/7
[править | править код]CTCP включено по умолчанию в beta 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
Параметр "Add-On Congestion Control Provider" может принимать значения "none" если CTCP выключено или "ctcp" — если включено.
Windows 8 / 8.1
[править | править код]Windows 8/8.1 использует команду powershell https://web.archive.org/web/20131029184023/http://technet.microsoft.com/en-us/library/hh826132.aspx для управления алгоритмами контроля загрузки (congestion algorithms).
Linux
[править | править код]Кроме Windows, CTCP был портирован в Linux Angelo P. Castellani. Патч был разработан в Caltech, включён в CTCP's TUning By Emulation (TUBE). Из-за патентных соглашений доступен только для исследователей . Начиная с версии ядра 2.6.17 модуль перестал быть совместимым из-за изменения API ядра.[2]
См. также
[править | править код]- en:TCP congestion avoidance algorithm
- Explicit Congestion Notification
- Transmission Control Protocol — Development
Ссылки
[править | править код]- ↑ 1 2 Обновление добавляющее поддержку Compound TCP (CTCP) в Windows Server 2003 и Windows XP . Дата обращения: 29 октября 2014. Архивировано 6 мая 2008 года.
- ↑ アーカイブされたコピー . Дата обращения: 2 августа 2008. Архивировано из оригинала 2 августа 2008 года.
Дополнительные ссылки
[править | править код]- Compound TCP Internet-Draft
- "A Compound TCP Approach for High-speed and Long Distance Networks" July 2005
- Performance Enhancements in the Next Generation TCP/IP Stack, The Cable Guy
- The Compound TCP for High-speed and Long Distance Networks, Microsoft Research publication
- Vista's TCP/IP Promises and Perils Архивная копия от 10 января 2007 на Wayback Machine, Article at Network Performance Daily
- Caltech's Compound TCP patch for Linux
- Enabling CTCP on 2003/XP x64: [1] Архивная копия от 6 мая 2008 на Wayback Machine,[2] Архивная копия от 30 апреля 2008 на Wayback Machine
- Report on experimental evaluation of Compound TCP Hamilton Institute and Caltech, March 2008.
- A simulation-based study of Compound TCP (недоступная ссылка) July 14, 2008
На эту статью не ссылаются другие статьи Википедии. |