Какие последствия может иметь несогласованная задержка для приложений TCP?

Я тестирую программу GNU Radio, которая может туннелировать TCP-трафик по беспроводной связи. У нас есть некоторые странные результаты при тестировании, и при поиске виновника мне было любопытно узнать о несогласованной задержке.

Как непоследовательная задержка может повлиять на приложения TCP? Под несогласованным я подразумеваю сильно различающиеся RTT для ACK в соединении. Некоторое время кажется, что ACK приходят с нормальной скоростью, затем они исчезают, и у нас есть повторные передачи, за которыми следует «отложенный» ACK.

Например, предположим, что первые несколько полученных ACK имеют одинаковый RTT. Что произойдет, если следующий ACK не будет получен с удвоенным RTT по сравнению с предыдущими ACK? Какой бы ни была проблема, я вижу много повторных передач после долгого ожидания ACK.

Теперь, более конкретно, как могут RTT для ACK, которые перескакивают между быстрым и медленным, влиять на TCP-соединение?

Сказав это, есть ли способ настроить стек IP для лучшей обработки этой среды?


person Mr. Shickadance    schedule 16.05.2011    source источник
comment
Shickadance. Какую конкретную ОС вы используете с обеих сторон? Не могли бы вы подробнее рассказать о протоколе туннелирования?   -  person This    schedule 17.05.2011


Ответы (1)


TCP поддерживает сглаженный RTT (SRTT), чтобы сообщить ему, насколько быстро работает промежуточная сеть, то есть насколько быстро она может передавать. Если SRTT увеличивается, TCP замедляется. Если SRTT выйдет из строя, TCP ускорится. Если фактический RTT резко увеличивается и уменьшается, TCP может не реагировать достаточно быстро из-за сглаживания и передавать слишком быстро, что может вызвать потерю пакетов, что, в свою очередь, вызывает повторную передачу, которая тратит впустую полосу пропускания. используется потерянными пакетами. Сглаживание RTT выполняется с помощью экспоненциального затухания с усилением, я думаю, 0,2, поэтому старое значение SRTT имеет в четыре раза больше веса текущего RTT при вычислении нового значения SRTT.

person user207421    schedule 17.05.2011
comment
Я пришел к такому же выводу, прочитав о контроле перегрузки и TCP в целом. Завтра я встречусь с профессором, который является экспертом в этой области, и я смогу получить некоторые твердые ответы. - person Mr. Shickadance; 18.05.2011
comment
Что ж, сэр, я благодарен за то, что могу взаимодействовать (на определенном уровне) с авторитетными авторами. Я обязательно проверю твои книги! - person Mr. Shickadance; 19.05.2011