Оптимизация TCP Westwood: повышение эффективности передачи данных по сетям с большой задержкой и динамической нагрузкой. Улучшение контроля перегрузки.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Оптимизация TCP
TCP optimization
TCP Westwood (TCPW) – это модификация TCP New Reno, предназначенная для более эффективной работы с каналами с большим произведением пропускной способности на задержку (большие каналы), с возможной потерей пакетов из-за передачи или других ошибок (каналы с утечками) и с динамической нагрузкой (динамические каналы). TCP Westwood использует анализ потока подтверждений (ACK) для получения информации, позволяющей более точно настраивать параметры управления перегрузкой: порог медленного старта (ssthresh) и окно перегрузки (cwin). В TCP Westwood оценивается "Допустимая скорость", которая используется отправителем для обновления ssthresh и cwin при обнаружении потери пакетов или во время фазы "Agile Probing" – предлагаемой модификации известной фазы медленного старта. Кроме того, разработана схема "Постоянное обнаружение отсутствия перегрузки" (PNCD) для выявления устойчивого отсутствия перегрузки и запуска фазы "Agile Probing" для оперативного использования большой динамической пропускной способности. Полученные улучшения в эффективности, без существенного ущерба для справедливости, дружественности и стабильности, описаны в многочисленных публикациях, доступных на домашней странице TCP WESTWOOD. Значительный прирост эффективности может быть достигнут для больших динамических каналов с утечками, сохраняя при этом справедливость. При более подходящем критерии дружественности, а именно "оппортунистической дружественности", TCP Westwood демонстрирует хорошую и контролируемую дружественность.
TCP Westwood (TCPW) is a sender side only modification to TCP New Reno that is intended to better handle large bandwidth delay product paths (large pipes), with potential packet loss due to transmission or other errors (leaky pipes), and with dynamic load (dynamic pipes). TCP Westwood relies on mining the ACK stream for information to help it better set the congestion control parameters: Slow Start Threshold (ssthresh), and Congestion Window (cwin). In TCP Westwood, an "Eligible Rate" is estimated and used by the sender to update ssthresh and cwin upon loss indication, or during its "Agile Probing" phase, a proposed modification to the well known slow start phase. In addition, a scheme called Persistent Non Congestion Detection (PNCD) has been devised to detect persistent lack of congestion and induce an Agile Probing phase to expeditiously utilize large dynamic bandwidth. The resultant performance gains in efficiency, without undue sacrifice of fairness, friendliness, and stability have been reported in numerous papers that can be found on The TCP WESTWOOD Home Page. Significant efficiency gains can be obtained for large leaky dynamic pipes, while maintaining fairness. Under a more appropriate criterion for friendliness, i. e. "opportunistic friendliness", TCP Westwood is shown to have good, and controllable, friendliness.
Разработка
Основная идея Westwood TCP, заключающаяся в оценке пропускной способности между конечными точками для настройки размеров управляющих окон после возникновения перегрузки, была предложена Саверио Масколо. Он пришел к этой идее после прочтения главы о механизмах управления перегрузками TCP в книге Ларри Петерсона «Data Networks». Первая реализация TCP Westwood в среде ns2 была выполнена в Калифорнийском университете в Лос-Анджелесе (UCLA) в 1999 году. Название «Westwood» было выбрано С. Масколо в знак уважения к кампусу UCLA, где он в то время проходил стажировку в качестве приглашенного исследователя. Основными соавторами были профессор Марио Герла, доктор Клаудио Казетти и доктор Меди Сенадиди.
The main idea of Westwood TCP, which is an end to end bandwidth estimation for setting control windows after congestion, was proposed by Saverio Mascolo. He came out with the idea after reading the chapter on TCP congestion control in the book Data Networks by Larry Peterson. The first implementation of TCP Westwood in ns2 was done at University of California, Los Angeles (UCLA) in 1999. The name "Westwood" was chosen by S. Mascolo as due homage to the home of UCLA where he was a visiting researcher at that time. Main collaborators were prof. Mario Gerla, Dr. Claudio Casetti and Dr. Medy Senadidi.
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 годах.
TCP Westwood+ is an evolution of TCP Westwood. TCP Westwood+ is a sender side only modification of the TCP Reno protocol stack that optimizes the performance of TCP congestion control over both wireline and wireless networks. TCP Westwood+ is based on end to end bandwidth estimation to set congestion window and slow start threshold after a congestion episode, that is, after three duplicate acknowledgments or a timeout. The bandwidth is estimated by properly low pass filtering the rate of returning acknowledgment packets. The rationale of this strategy is simple: in contrast with TCP Reno, which blindly halves the congestion window after three duplicate ACKs, TCP Westwood+ adaptively sets a slow start threshold and a congestion window which takes into account the bandwidth used at the time congestion is experienced. TCP Westwood+ significantly increases throughput over wireless links and fairness compared to TCP Reno/New Reno in wired networks. When Saverio Mascolo returned to Italy and "his evolution of Westwood TCP" was named Westwood+. The main novelty of Westwood+ was the algorithm used to estimate the available bandwidth end to end. In fact, it was soon discovered that the Westwood bandwidth estimation algorithm did not work well in the presence of reverse traffic due to ack compression. This phenomenon was explained in terms of aliasing effects. The new version Westwood+ was implemented for the first time in the kernel of Linux 2.2 by Roberto Ferorelli and in the kernel of Linux 2.4 and 2.6 by Angelo Dell'Aera, both working at Politecnico di Bari as undergraduate students in 2003 and 2004.