Первый сценарий: в течение 15 секунд отправитель постоянно передает какие-то данные получателю 2. После этого , отправитель начинает отправлять данные получателю 1. Это приводит к меньшей пропускной способности для получателя 1, чем когда он единственный, кто запрашивает данные (это, конечно, довольно очевидно), и, следовательно, к большему времени для доставки данных (точнее, 2 ГБ). ценность данных). Вполне ожидаемо.
Второй сценарий: я делаю то же самое, что и в первом сценарии, но на этот раз получатель 1 начинает принимать с самого начала (т.е. первые 15 секунд). , а получатель 2 присоединяется позже. Это привело к гораздо большему увеличению времени, необходимого для получения данных для получателя 2.
Чтобы дать больше контекста, для получателя 1 увеличение времени составило около 30%, а для получателя 2 увеличение времени составило почти 200%. Я, конечно, замерил время, необходимое для передачи данных при отсутствии помех от другого приемника, для обоих соединений, 1 Гбит/с и 700 Мбит/с.
Мой главный вопрос: почему это увеличение настолько асимметрично? Я ожидал, что помехи от другого соединения будут такими же или очень похожими, но получил резкое увеличение. Кажется, что предпочтение отдавалось более быстрому соединению, даже если я не говорил tc о его пользу. Это просто потому, что первое соединение более прочное, а затем, возможно, ему предпочтительнее TCP ниже? Мне было интересно, есть ли какое-то задокументированное поведение для этого случая, я немного поискал и, похоже, не нашел явного объяснения того, что происходит, когда HTB превышает лимит.
Для большего контекста, вот используемая конфигурация tc:
Код: Выделить всё
#!/bin/bash
INTERFACE="enp39s0"
sudo tc qdisc del dev $INTERFACE root 2>/dev/
sudo tc qdisc add dev $INTERFACE root handle 1: htb default 30
sudo tc class add dev $INTERFACE parent 1: classid 1:1 htb rate 1gbit ceil 1gbit
sudo tc class add dev $INTERFACE parent 1:1 classid 1:10 htb rate 1mbit ceil 1gbit
sudo tc class add dev $INTERFACE parent 1:1 classid 1:20 htb rate 1mbit ceil 700mbit
sudo tc filter add dev $INTERFACE protocol ip parent 1: prio 1 u32 match ip dst 172.31.3.53 flowid 1:10
sudo tc filter add dev $INTERFACE protocol ip parent 1: prio 1 u32 match ip dst 172.31.10.151 flowid 1:20
sudo tc -s qdisc show dev $INTERFACE
sudo tc -s class show dev $INTERFACE
echo "HTB configuration with capped bandwidth applied to $INTERFACE"
Подробнее здесь: https://stackoverflow.com/questions/792 ... tes-exceed