TC QDISC を使用してスループットを設定すると、TCP には影響しますが、UDP には影響しません。

TC QDISC を使用してスループットを設定すると、TCP には影響しますが、UDP には影響しません。

私は最初にtc qdiscを使用し、スループット、レイテンシ、および損失を変更するスクリプトを書いてきました。ただし、スループットレベルを変更しようとすると、UDPトラフィック(iperfを使用している場合)ではなくTCPトラフィックにのみ影響します。設定問題か理解問題なのかわかりませんが…

Pythonスクリプト:

Mbps_init="5"
Ms_init="10"
Loss_init="10"


os.system("tc class add dev h2-eth0 parent 1: classid 1:1 htb rate "+Mbps_init+"mbit")
os.system("tc qdisc add dev h2-eth0 parent 1:1 handle 10: netem delay "+Ms_init+"ms loss "+Loss_init+"%")
os.system("tc filter add dev h2-eth0 protocol ip parent 1:0 prio 1 u32 match ip src 10.0.0.2/24 match ip dst 10.0.0.1/24 flowid 1:1")

TCP(5Mbpsには達していませんが、「十分に近い」と考えることができます):

------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  6] local 10.0.0.1 port 5001 connected with 10.0.0.2 port 38442
[ ID] Interval       Transfer     Bandwidth
[  6]  0.0-11.1 sec  3.62 MBytes  2.75 Mbits/sec

UDP(パケット損失に影響はありますが帯域幅には影響ありません):

Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size:  208 KByte (default)
------------------------------------------------------------
[  5] local 10.0.0.1 port 5001 connected with 10.0.0.2 port 59510
[ ID] Interval       Transfer     Bandwidth        Jitter   Lost/Total Datagrams
[  5]  0.0- 9.2 sec  1.14 MBytes  1.04 Mbits/sec  15.697 ms   78/  893 (8.7%)

ベストアンサー1

私の質問に答えると、私が正しく覚えているなら、UDP iperfは基本的に1Mbのデータを送信します。

iperf UDPモードでは、-bオプションを使用して送信されるデータ量を増やすことができます。これにより、UDPトラフィックの制限も確認できます。

おすすめ記事