Совсем недавно, несколько раз за короткий промежуток времени, в разговорах с коллегами я столкнулся с принципиальным непониманием того простого факта, что настройка параметров TCP – это Нет все, что можно сделать для оптимального использования канала.
Извините, что? Какие еще модели TCP существуют? Зачем? В любом случае все можно настроить, поигравшись с максимальным размером окна, таймингами и так далее.
Это, конечно, все здорово и иногда крайне необходимо, но не все можно настроить через проц или реестр.
А именно и например? Мы можем сравнить это с ситуацией, как если бы мы имели некую формулу и добивались результатов, «подкручивая» в ней определенные переменные и коэффициенты.
Но можно ли изменить саму формулу? Да.
Именно поэтому и для этой цели были разработаны и разрабатываются разные модели поведения протокола TCP. Модель TCP Вегас , управляя размером окна, также ориентируется на RTT, при этом делая выводы о приближении канала к перегрузке по мере увеличения RTT. Модель TCP Вествуд при вычислении cwin и ssthresh оценивается поток данных (RE — Race Estimation) и пропускная способность (BE — Bandwidth Estimation).
На основе этих оценок становится возможным более тонко управлять окном.
Ээффективно в случае высоких значений пропускной способности*rtt. Модель TCP Гибла — предназначен для широких каналов с высоким RTT. Максимального использования канала можно достичь за счет аналитической оценки динамики окна перегрузки.
Модель КУБИЧЕСКИЙ TCP также предназначен для длинных широкополосных сетей (LFN).
Использует функцию кубического роста окна, которая конкретно использует время, прошедшее с момента последнего события перегрузки.
Модель TCP Иллинойс гибко выбирает коэффициенты увеличения и уменьшения окна на этапе увеличения окна, чтобы предотвратить перегрузку.
Модель TCP Вено — смесь TCP NewReno и TCP Vegas, пытается выделить потери, не связанные с перегрузкой, чтобы не включать контроль перегрузки там, где он не нужен (актуально для WLAN).
Подробности и формулы: book.itep.ru/4/44/tcp.htm И это далеко не полный список моделей.
На данный момент ядро Linux поддерживает более десятка алгоритмов.
Помимо параметров ядра есть с чем поиграться.
ПС.
Кстати, у Microsoft есть свой алгоритм Соединение TCP , воплощенный в стеке TCP/IP Vista/7/2008. Любой, кто имел дело с полисерами, видел, что по сравнению с XP/2003 (даже с доработанными версиями) использование каналов в случае Tcp Next Generation намного лучше.
Теги: #Сетевые технологии #Системное администрирование #заметки на полях