Введение

Оптимизация TCP

TCP Westwood (TCPW) – это модификация TCP New Reno, предназначенная для более эффективной работы с каналами с большим произведением пропускной способности на задержку (большие каналы), с возможной потерей пакетов из-за передачи или других ошибок (каналы с утечками) и с динамической нагрузкой (динамические каналы). TCP Westwood использует анализ потока подтверждений (ACK) для получения информации, позволяющей более точно настраивать параметры управления перегрузкой: порог медленного старта (ssthresh) и окно перегрузки (cwin). В TCP Westwood оценивается "Допустимая скорость", которая используется отправителем для обновления ssthresh и cwin при обнаружении потери пакетов или во время фазы "Agile Probing" – предлагаемой модификации известной фазы медленного старта. Кроме того, разработана схема "Постоянное обнаружение отсутствия перегрузки" (PNCD) для выявления устойчивого отсутствия перегрузки и запуска фазы "Agile Probing" для оперативного использования большой динамической пропускной способности. Полученные улучшения в эффективности, без существенного ущерба для справедливости, дружественности и стабильности, описаны в многочисленных публикациях, доступных на домашней странице TCP WESTWOOD. Значительный прирост эффективности может быть достигнут для больших динамических каналов с утечками, сохраняя при этом справедливость. При более подходящем критерии дружественности, а именно "оппортунистической дружественности", TCP Westwood демонстрирует хорошую и контролируемую дружественность.

Разработка

Основная идея Westwood TCP, заключающаяся в оценке пропускной способности между конечными точками для настройки размеров управляющих окон после возникновения перегрузки, была предложена Саверио Масколо. Он пришел к этой идее после прочтения главы о механизмах управления перегрузками TCP в книге Ларри Петерсона «Data Networks». Первая реализация TCP Westwood в среде ns2 была выполнена в Калифорнийском университете в Лос-Анджелесе (UCLA) в 1999 году. Название «Westwood» было выбрано С. Масколо в знак уважения к кампусу UCLA, где он в то время проходил стажировку в качестве приглашенного исследователя. Основными соавторами были профессор Марио Герла, доктор Клаудио Казетти и доктор Меди Сенадиди.

TCP Westwood плюс

TCP Westwood+ является эволюцией TCP Westwood. TCP Westwood+ – это модификация стека протокола TCP Reno, оптимизирующая производительность управления перегрузками TCP как в проводных, так и в беспроводных сетях. TCP Westwood+ основан на оценке пропускной способности между конечными точками для установки размера окна перегрузки и порога медленного старта после эпизода перегрузки, то есть после трех дублирующих подтверждений или таймаута. Пропускная способность оценивается путем корректной фильтрации нижних частот скорости возвращаемых пакетов подтверждения. Логика этой стратегии проста: в отличие от TCP Reno, который бездумно уменьшает окно перегрузки вдвое после трех дублирующих ACK, TCP Westwood+ адаптивно устанавливает порог медленного старта и размер окна перегрузки, учитывающие пропускную способность, используемую в момент возникновения перегрузки. TCP Westwood+ значительно повышает пропускную способность по беспроводным каналам и обеспечивает более справедливое распределение ресурсов по сравнению с TCP Reno/New Reno в проводных сетях. Когда Саверио Масколо вернулся в Италию, "его развитие TCP Westwood" получило название Westwood+. Главным новшеством Westwood+ был алгоритм, используемый для оценки доступной пропускной способности между конечными точками. Вскоре после этого было обнаружено, что алгоритм оценки пропускной способности Westwood работает некорректно при наличии обратного трафика из-за сжатия ACK. Это явление объяснялось эффектами наложения. Новая версия Westwood+ была впервые реализована в ядре Linux 2.2 Роберто Ферорелли, а в ядрах Linux 2.4 и 2.6 – Анджело Делл'Аера, оба работали в Политехническом университете Бари в качестве студентов бакалавриата в 2003 и 2004 годах.