2. Мережі IP.
_______________________________________________________________________________________
___________________________________________________________________________________________________
М. Павликевич. Телекомунікаційні мережі. Навчальний посібник для студентів спеціальності
"Інформаційні мережі зв'язку, 2009.
називають алгоритмом швидкого повторного пересилання (Fast Retransmit). Безпосередньо після
швидкого повторного пересилання виконується алгоритм швидкого відновлення (Fast Recovery).
Швидке відновлення призначене для швидкого виправлення втрати окремого пакету,
дозволяючи приймачу продовжувати обслугу темпу висилання даних, синхронізованого ACK, для
нових даних, якщо виправлення втрати окремого пакету було успішним. Це можливе тому, що
послідовність ACK все ще поступає до приймача, так що мережа продовжує висилати синхронізуючі
сигнали до надавача, вказуючи темп, з яким пакети поступають до приймача. Оскільки алгоритм
швидкого повторного пересилання вживається, якщо прийнято дублікати ACK, то надавач TCP має
цілковиту певність, що дані досі пересилаються до приймача. Підставою для цього є те, що дублікат
ACK генерується тоді, коли прийнято сегмент. Це точна вказівка про відсутність серйозного
перевантаження мережі і на те, що втрата пакету є винятковою подією. Тому, замість стартувати
вікно від одного сегменту як в режимі повільного старту, надавач розпочинає пересилання з більшим
вікном.
При швидкому відновленні значення ssthresh встановлюють рівним половині поточного вікна
висилання (вікно висилання містить обсяг непідтверджених даних). Параметр вікна перевантаження
cwnd встановлюють на три сегменти більшим від ssthresh, щоб завжди дозволяти буферизувати три
сегменти у приймачі. Якщо це дозволяє вислати додаткові дані, то це висилання здійснюється. Кожне
додаткове підтвердження збільшує cwnd на величину SMSS*SMSS/cwnd, дозволяючи висилати
більше даних. Тільки коли виправлення завершене, надавач зменшує своє вікно до величини ssthresh
як крок до переходу до режиму уникнення перевантаження. Це дозволяє отримати вищу перепускну
здатність за умови поміркованого перевантаження.
Повільний старт у мережах LFT. Одним з аспектів викладеного питання є взаємодія
алгоритму повільного старту з високопродуктивними мережами з великою затримкою (Long Fat
Network – LFT). Активність TCP в LFT веде до пересилання групи пакетів у кожен період RTT з
періодом простоювання, який слідує за пересиланням даних заповненого вікна. Пакети
підтвердження від приймача поступають до надавача з проміжком між ними, еквівалентним
швидкості даних через вузьке місце у мережевому шляху. Потягом повільного старту надавач
висидає дані в темпі, подвійному відносно швидкості у вузькому місці. Функція адаптації темпу
повинна з’являтися всередині мережі і бути розміщеною в роутері на вході у вузьке місце. Пакети
надавача поступають у такий роутер у подвійному темпі, ніж виходять з нього, і роутер повинен
зберігати надлишковий потік у свому внутрішньому буфері. Якщо цей буфер переповниться, пакети
будуть втрачені і фаза повільного старту завершиться. Важливим висновком є те, що надавач може
зупинити збільшення свого темпу висилання даних, коли міскість буфера вичерпана; ця умова може
бути не еквівалентна досягненню справді можливої швидкості даних. Якщо ємність буфера роутера
порівняно менша від добутку ширина смуги-затримка вихідного кола, то ці дві величини суттєво
відрізняються. У цьому випадку алгоритм повільного старту TCP може завершитися з темпом
перевилання, який значно менший від наявної перепускної здатності. Ефективність операцій TCP,
зокрема в LFN, критично пов’язана з адекватними обсягами буферів у роутерах мережі.
Уникнення перевантаження. Порівняно з повільним стартом, уникнення
перевантаження (Congestion Avoidance) використовує експериментальне випробування мережі для
дослідження порогового пункту втрати пакетів (рис. 9.1). При появі втрат половина поточного
значення cwnd зберігається як поріг повільного старту (Slow Start Threshold - ssthresh) і повільний
старт розпочинається знову від початкового значення cwnd. Коли cwnd досягне значення ssthresh,
TCP переходить до режиму уникнення перевантаження (Congestion Avoidance), при якому кожне
ACK збільшує cwnd на величину SMSS*SMSS/cwnd. Це означає лінійне зростання cwnd. Початкове
значення ssthresh встановлюється рівним максимальному розміру вікна приймача.
Коли значення cwnd перевищує ssthresh, то надавач збільшує значення cwnd на величину
SMSSSMSS/cwnd у відповідь на кожне нездубльоване ACK, так що вікно перевантаження
вікривається на один сегмент всередині кожного інтервалу RTT. Вікно перевантаження продовжує
відкриття таким чином, доки не з’явиться втрата пакетів. Якщо втрата пакетів обмежена до одного
пакету всередині послідовності, то здубльовані ACK перемкнуть надавач на зменшення темпу вдвічі і
продовження лінійного зростання вікна перевантаження від цього нового пункту, як це описано вище
для швидкого відновлення. Поведінка cwnd в ідеалізованій конфігурації зображена на рис. 2.1, разом
з відповідними змінами темпу пересилання потоку даних.