В Iperf3 странное поведение TCP

Я начинающий сетевой инженер.

Я провел небольшой эксперимент с iperf3. Но я столкнулся с небольшой проблемой.

(1) Мой вопрос.

Я думаю, что поток TCP не работает должным образом, несмотря на контроль перегрузки.

Поток снижает свою скорость из-за перегрузки (скорость потока> ссылка пропускная способность).

Однако его cwnd постоянно увеличивается.

Как это может случиться?

(2) Среда эксперимента

  • Ubuntu 14.04
  • Mininet 2.3.0d5

    : [TOPOLOGY] HOST1 -SWITCH1 - HOST2

  • Linux TC на версия ядра 4.4.0-148-generic

    : установить всю полосу пропускания 100 Мбит / с с правильным размером MTU

(3) Содержание эксперимента

Я сгенерировал поток со скоростью 130 Мбит / с, от H2 к H1.

Из-за пропускной способности канала 100 Мбит / с,

Он должен снизить свою скорость со 130 Мбит / с до 100 Мбит / с из-за алгоритма перегрузки

. Я наблюдал это уменьшение и алгоритм перегрузки.


a. server : iperf3 -s -p 1212 -f m -A 7 -i 1
b. client : iperf3 -c 10.0.0.1 -p 1212 -t 10 -f m -b 130M -A 7 -l 63k -w 10M -i 1

Connecting to host 10.0.0.1, port 1212
[  4] local 10.0.0.2 port 42010 connected to 10.0.0.1 port 1212
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  14.0 MBytes   118 Mbits/sec    0    570 KBytes       
[  4]   1.00-2.00   sec  15.5 MBytes   130 Mbits/sec    0   1.13 MBytes       
[  4]   2.00-3.00   sec  15.5 MBytes   130 Mbits/sec    0   1.69 MBytes       
[  4]   3.00-4.00   sec  12.7 MBytes   106 Mbits/sec    0   2.27 MBytes       
[  4]   4.00-5.00   sec  11.3 MBytes  95.0 Mbits/sec    0   2.84 MBytes       
[  4]   5.00-6.00   sec  11.4 MBytes  95.5 Mbits/sec    0   3.41 MBytes       
[  4]   6.00-7.00   sec  11.4 MBytes  95.4 Mbits/sec    0   3.98 MBytes       
[  4]   7.00-8.00   sec  11.3 MBytes  95.0 Mbits/sec    0   4.55 MBytes       
[  4]   8.00-9.00   sec  11.4 MBytes  95.3 Mbits/sec    0   5.12 MBytes        

(4) Мой вопрос в деталях.

  • Я думаю, что из-за своей пропускной способности (100 Мбит / с) поток будет испытывать перегрузку и уменьшит свой cwnd.

  • Но этого не произошло. cwnd потока непрерывно увеличивается.

  • Кроме того, хотя он не уменьшал его cwnd, он уменьшал свою скорость. Как это могло случиться? Повторной передачи нет.

Не могли бы вы дать мне небольшую подсказку, чтобы понять эту странную вещь?

Спасибо за чтение!

0
задан 11 August 2019 в 14:55
1 ответ

Я нашел ответ.

Это не странное поведение. Я просто короток в понимании.

Перед перегрузкой происходят, переданные пакеты ставят в очередь в буфере коммутатора.

, Поскольку количество пакетов в буфере увеличивается, значение RTT также увеличивается.

Поэтому уровень потока выглядит постоянным, хотя значение cwnd увеличивается.

Однако переполнение в буфере произойдет, когда значение cwnd будет больше, и пакеты передаются достаточно для организации очередей в буфере.

Затем мы видим повторную передачу, потерю пакетов и tcp изменение состояния перегрузки.

0
ответ дан 23 November 2019 в 22:21

Теги

Похожие вопросы