TCP Тахо и TCP Рино
TCP известен как протокол, ориентированный на соединение, который обеспечивает надежность, а также отвечает за механизмы контроля перегрузки в сети. TCP Tahoe и TCP Reno — это два метода управления перегрузкой TCP, они используются, когда отправитель получает три дублирующихся подтверждения.
ПТС Тахо:
Тахо — озеро в США. Этот конкретный TCP был разработан вокруг этого озера и, следовательно, он был назван TCP Tahoe . Это был первый вариант TCP со встроенными алгоритмами управления перегрузкой. Когда TCP был впервые разработан в 1981 году, управление перегрузкой не было его неотъемлемой частью.
TCP Tahoe = Slow Start + AIMD + Fast Retransmit
Фаза медленного запуска: она длится до тех пор, пока размер окна перегрузки не достигнет « порога медленного запуска (ssthresh) ». Алгоритм медленного старта удваивает размер окна перегрузки (cwnd) за один RTT. Изначально для ssthresh задано значение Infinite(∞). Впоследствии он адаптируется в зависимости от событий потери пакетов. Когда cwnd становится равным ssthresh, медленный запуск прекращается. После этого этап AIMD вступает во владение.
Фаза AIMD: она начинается, когда прекращается медленный старт. Аддитивное увеличение увеличивает cwnd на 1, а мультипликативное уменьшение уменьшает ssthresh до 50% от cwnd. Обратите внимание, что cwnd «не» уменьшен на 50%, а ssthresh. Следует отметить, что cwnd снова сбрасывается до исходного размера окна (10 в ядре Linux).
Фаза быстрой повторной передачи: это алгоритм обнаружения потерь. Это вызвано 3 дублирующими подтверждениями. При обнаружении потери пакетов он сбрасывает cwnd на initcwnd.
Example: Suppose cwnd = 200 and packet loss occurs, then ssthresh=cwnd/2= 100; cwnd will be reset to initcwnd value that is 10. Again slow start will begin. Now say cwnd increases to 20, 40, 80 and 100 in 5th RTT. Once cwnd reached ssthresh, AIMD starts. AIMD increases cwnd by 1 per RTT, so if packet drop occurs at cwnd = 125 then cwnd=10 and ssthresh=62 and Slow Start Restarts. Note: Packet loss can be detected either by RTO algorithm or Fast Retransmit. In both cases, cwnd will be reset to 10 and ssthresh=cwnd/2 and Slow Start restarts again.
ПТС Рено:
Это расширение TCP Tahoe.
TCP Reno = TCP Tahoe + Fast Recovery
Поскольку TCP Reno является расширением TCP Tahoe, медленный старт и этап AIMD совпадают.
Фаза быстрого восстановления
Он использует как RTO, так и быструю повторную передачу. Если обнаружение потери пакетов запускается тремя дубликатами подтверждений, то это алгоритм быстрой повторной передачи в действии. При обнаружении потери пакетов с помощью Fast Retransmit cwnd уменьшается на 50 % (cwnd = cwnd/2). Получено 3 повторяющихся ACK, что означает, что сеть работает хорошо, поскольку ACK принимаются, что означает, что пакеты доставляются получателю. Таким образом, cwnd уменьшается на 50%, чтобы позволить сети выйти из состояния перегрузки. При обнаружении потери пакетов через RTO сбросьте cwnd на initcwnd. Если таймер RTO истекает, это означает, что сеть сильно перегружена. Таким образом, cwnd необходимо уменьшить до начального значения, чтобы восстановить сеть от перегрузки.
Example: cwnd=120, ssthresh=∞ 1) packet loss detected using 3-duplicate ACK (aka Fast Retransmit). cwnd will be reduced to 50%, cwnd=60 ssthresh will be new cwnd, ssthresh=60 Now Reno has entered Fast Recovery Phase, it skips the slow start and AIMD takes over. Whereas in Tahoe Slow Start restarts when packet loss is detected. This is the difference between these two. 2) Now say cwnd is reached to 70 in 10 more RTT from cwnd=60, after AIMD started. packet drop occurs at cwnd=70, cwnd becomes 35 and ssthresh=35. 3) now cwnd increases to 50, and packet loss detected using RTO. then cwnd=initial cwnd= 10, ssthresh=cwnd/2=25 Whenever packet loss detected, Reno never uses Slow Start again, it skip it.