Voor mijn werk (momenteel vanuit huis) werk ik o.a. aan videostreaming (WebRTC). Daarbij/daardoor viel het me op dat ik heel veel packet loss heb op UDP-verkeer, soms wel 60%. Uiteraard blijft er van een videoverbinding dan niets over.
Ik heb een aantal tests gedraaid d.m.v. iperf3 tegen onze servers bij AWS in Ierland en een server in een Nederlands datacenter. Wat opvalt is dat upstream (van PC thuis naar de servers) geen probleem is:
$ iperf3 -b 8M -l 500 -V -u -c (hostname) -p 5000
iperf 3.1.3
Linux (xxxx) 5.4.0-67-generic #75~18.04.1-Ubuntu SMP Tue Feb 23 19:17:50 UTC 2021 x86_64
Time: Tue, 23 Mar 2021 11:04:26 GMT
Connecting to host (hostname), port 5000
Cookie: (xxxx)
[ 4] local 192.168.2.20 port 55838 connected to (xxxx) port 5000
Starting Test: protocol: UDP, 1 streams, 500 byte blocks, omitting 0 seconds, 10 second test
[ ID] Interval Transfer Bandwidth Total Datagrams
[ 4] 0.00-1.00 sec 884 KBytes 7.24 Mbits/sec 1811
[ 4] 1.00-2.00 sec 976 KBytes 8.00 Mbits/sec 1999
[ 4] 2.00-3.00 sec 977 KBytes 8.00 Mbits/sec 2000
[ 4] 3.00-4.00 sec 977 KBytes 8.00 Mbits/sec 2000
[ 4] 4.00-5.00 sec 977 KBytes 8.00 Mbits/sec 2001
[ 4] 5.00-6.00 sec 976 KBytes 8.00 Mbits/sec 1999
[ 4] 6.00-7.00 sec 977 KBytes 8.00 Mbits/sec 2000
[ 4] 7.00-8.00 sec 977 KBytes 8.00 Mbits/sec 2001
[ 4] 8.00-9.00 sec 976 KBytes 8.00 Mbits/sec 1999
[ 4] 9.00-10.00 sec 977 KBytes 8.00 Mbits/sec 2001
Test Complete. Summary Results:
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 4] 0.00-10.00 sec 9.45 MBytes 7.92 Mbits/sec 0.052 ms 13/19810 (0.066%)
[ 4] Sent 19810 datagrams
CPU Utilization: local/sender 2.8% (0.8%u/2.0%s), remote/receiver 0.7% (0.1%u/0.6%s)
iperf Done.
Maar als ik de server UDP traffic downstream laat sturen is er massaal packet loss:
$ iperf3 -R -b 8M -uV -c (xxxx) -p 5000
iperf 3.1.3
Linux (xxxx) 5.4.0-67-generic #75~18.04.1-Ubuntu SMP Tue Feb 23 19:17:50 UTC 2021 x86_64
Time: Tue, 23 Mar 2021 10:35:54 GMT
Connecting to host (xxxx), port 5000
Reverse mode, remote host (xxxx) is sending
Cookie: (xxxx)
[ 4] local 192.168.2.20 port 33007 connected to (xxxx) port 5000
Starting Test: protocol: UDP, 1 streams, 8192 byte blocks, omitting 0 seconds, 10 second test
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 4] 0.00-1.00 sec 584 KBytes 4.78 Mbits/sec 1.144 ms 37/110 (34%)
[ 4] 1.00-2.00 sec 640 KBytes 5.24 Mbits/sec 1.189 ms 43/123 (35%)
[ 4] 2.00-3.00 sec 680 KBytes 5.57 Mbits/sec 1.099 ms 37/122 (30%)
[ 4] 3.00-4.00 sec 592 KBytes 4.85 Mbits/sec 1.153 ms 48/122 (39%)
[ 4] 4.00-5.00 sec 672 KBytes 5.51 Mbits/sec 1.186 ms 38/122 (31%)
[ 4] 5.00-6.00 sec 592 KBytes 4.85 Mbits/sec 1.164 ms 48/122 (39%)
[ 4] 6.00-7.00 sec 680 KBytes 5.57 Mbits/sec 1.145 ms 37/122 (30%)
[ 4] 7.00-8.00 sec 664 KBytes 5.44 Mbits/sec 1.238 ms 39/122 (32%)
[ 4] 8.00-9.00 sec 656 KBytes 5.37 Mbits/sec 1.185 ms 40/122 (33%)
[ 4] 9.00-10.00 sec 656 KBytes 5.37 Mbits/sec 1.171 ms 40/122 (33%)
Test Complete. Summary Results:
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 4] 0.00-10.00 sec 9.54 MBytes 8.00 Mbits/sec 0.023 ms 4467/19999 (22%)
[ 4] Sent 19999 datagrams
CPU Utilization: local/receiver 2.6% (0.9%u/1.7%s), remote/sender 2.8% (0.3%u/2.5%s)
iperf Done.
Nog een paar observaties:
- Het percentage packet loss is groter met grotere packets, dit was met 500 byte packets om sowieso onder de MTU-grens te blijven.
- Het ligt absoluut aan mijn verbinding thuis: als ik remote inlog op mijn PC op kantoor en dezelfde test draai, is er 0% packet loss. Ook een collega thuis (geen KPN) heeft 0% packet loss in dezelfde test.
Het ligt niet aan mijn PC of kabel, want als ik test met mijn laptop via wifi, of direct in de router ingeplugd, zie ik precies dezelfde testresultaten als vanaf de bekabelde PC.
Ik heb sinds kort een Experiabox 12. De wifi is nu een stuk beter, maar helaas heeft dit modem vrijwel geen instellingen of diagnostiek om verder te kijken.
Wat is er met het netwerk aan de hand?