ネットワークで若干のタイムアウトの問題が発生しているときに (ルータに休憩が必要だったので、これは解決しました)、tc -s
「ドロップされた」値が少なくとも 10% の重要な割合のパッケージを表していることに気付き、出力を解読しようとしました。
qdisc cbq 1: root refcnt 2 rate 10Mbit (bounded,isolated) prio no-transmit
Sent 392050166 bytes 727491 pkt (dropped 27505, overlimits 1201372 requeues 1)
backlog 0b 0p requeues 1
borrowed 0 overactions 0 avgidle 12500 undertime 0
qdisc sfq 10: parent 1:10 limit 127p quantum 1514b depth 127 divisor 1024 perturb 10sec
Sent 16125105 bytes 265435 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc sfq 20: parent 1:20 limit 127p quantum 1514b depth 127 divisor 1024 perturb 10sec
Sent 375890855 bytes 461738 pkt (dropped 27505, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc sfq 30: parent 1:30 limit 127p quantum 1514b depth 127 divisor 1024 perturb 10sec
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc ingress ffff: parent ffff:fff1 ----------------
Sent 342713979 bytes 716041 pkt (dropped 1308, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
これらのカウンターは実際にドロップされたパッケージを表しますア・ラiptables ですか? それとも、単に何か他のものを表現しているだけですか? この数字は何を表していますか?
マニュアルには落下について何か書いてありますが、同じ疑問が残りました。
説明
Tc は、Linux カーネルでトラフィック制御を構成するために使用されます。トラフィック制御は次の要素で構成されます。
[...]
ドロップ
設定された帯域幅を超えるトラフィックは、入力時と出力時の両方で直ちにドロップされることもあります。
答え1
ドロップされたパケットは破棄されます。宛先には届きません。これは、帯域幅が超過したスイッチまたはルーターのどの時点でも発生する可能性があります。受信側システムは、着信パケットを追跡し、すべてのパケットが確実に受信されていることを確認する必要があります。TCP はこれを行いますが、UDP は行いません。ドロップされたパケットは送信ステーションに再度要求する必要があるため、混雑したルートでは、ドロップされたパケットによって輻輳がさらに増加し、ドロップされたパケットが増える可能性があります。