Какое влияние может оказать несоответствующая задержка на приложения TCP? - PullRequest
0 голосов
/ 16 мая 2011

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

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

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

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

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

1 Ответ

2 голосов
/ 17 мая 2011

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

...