Lösung 1:
Ich habe mich schließlich dafür entschieden, nur die ausgehende Bandbreite/Latenz auf dem Server einzustellen und dann das Gleiche auf dem Client zu tun, wodurch ich effektiv das gleiche Ergebnis erreiche.
Dies sind die Befehle, die ich auf dem Server bzw. Client ausgeführt habe, um meine Ziele zu erreichen:
Server:4 Mbit 50 ms
tc qdisc add dev eth0 handle 1: root htb default 11
tc class add dev eth0 parent 1: classid 1:1 htb rate 1000Mbps
tc class add dev eth0 parent 1:1 classid 1:11 htb rate 4Mbit
tc qdisc add dev eth0 parent 1:11 handle 10: netem delay 50ms
Client:512 kbit 50 ms
tc qdisc add dev vmnet1 handle 1: root htb default 11
tc class add dev vmnet1 parent 1: classid 1:1 htb rate 1000Mbps
tc class add dev vmnet1 parent 1:1 classid 1:11 htb rate 512kbit
tc qdisc add dev vmnet1 parent 1:11 handle 10: netem delay 50ms
Lösung 2:
Etwa 80-90 kByte / s ist ungefähr das, was Sie erwarten können
tc filter add ... police rate 1.0mbit ...
Sie verlangen, dass eingehende Daten weggeworfen werden, wenn sie bei 1 mBit / s ankommen, das sind ungefähr 125 kByte / s. Der Remote-Server fällt dann auf einen erheblich niedrigeren Wert (vielleicht die Hälfte, nicht sicher). Danach kommen alle Pakete durch, sodass die Gegenseite langsam Fahrt aufnimmt, bis wieder 125 kByte/s erreicht sind. Sie erhalten einen Durchschnitt Durchsatz deutlich unter 125 kByte/s, was typisch für Ingress Shaping ist.
Ich bin etwas überrascht, dass die Geschwindigkeit 2 MByte / s erreichen sollte, wenn der Ingress-Policy-Filter bereits vorhanden ist. Wo haben Sie gemessen - am Downstream-Client (Programm) oder an einem Upstream-Router? Oder haben Sie vielleicht zuerst die Verbindung gestartet und erst danach den Ingress-Richtlinienfilter aktiviert?