POSTS
Probleme mit dem Internetanschluss - Teil 1
In den letzten Wochen habe ich vermehrt lange Ladezeiten auf Webseiten wie reddit und imgur festgestellt. Während ich bei Youtube und ähnlichen Seiten ohne Probleme HD Videos streamen kann, brauchen Bilder und GIFs von Reddit teilweise mehrere Sekunden, um zu laden. Nachdem ich einige mögliche Fehlerquellen ausgeschlossen habe, habe ich den Eindruck bekommen, dass es eventuell mit dem Peering Verhalten der Internetanbieter zusammenhängt. Ich habe einige Posts von anderen Internetnutzern gefunden, die anscheinend ähnliche Probleme haben. Mein Ziel ist es einige Messungen zu machen, die Ergebnisse zu präsentieren und sie mit der Community zu diskutieren. Dieser Post wird meine Situation und eine genaue Erklärung des Messaufbaus enthalten. Im nächsten Post geht es um die Messergebnisse und welche Schlüsse ich daraus ziehen könnte.
Am Anfang direkt ein kurzer Disclaimer: Ich bin auf dem Gebiet von Internet Backbone Infrastruktur kein Experte. Ich weiß auch nicht wie die Businesssituation in diesem Bereich aussieht. Falls ich etwas schreibe, das nicht stimmt, dann lasst es mich bitte in den Kommentaren wissen. Meine Perspektive in diesen Posts ist die eines Verbrauchers, der merkt, dass an dem Produkt etwas nicht stimmt und der etwas dafür tun möchte, das Problem zu lösen. Aber erstmal möchte ich genauer untersuchen was die Symptome genau sind.
Situation
Ich lebe in Deutschland und habe einen DSL Vertrag mit der 1und1. Diese nutzen dafür die Infrastruktur der Telekom mit. Ich werde in meinen Posts keine Partei die Schuld geben, denn ich werde vermutlich nicht mal genau feststellen können wo das Problem wirklich entsteht. Seit ich vor einigen Wochen das erste mal festgestellt habe, dass etwas nicht stimm, ist das Problem gefühlt immer schlimmer geworden. Ich dachte erst es könnte an meinem Adblocker, DNS Server, WLAN Setup oder vielleicht langsamen Servern der Webseiten liegen. Aber sobald ich den Aufruf der Seiten dann mal per Mobilfunknetz ausprobiert habe haben die gleichen Bilder sofort geladen. Ich habe auch einige Freunde gefragt und die hatten auch keinerlei Probleme die gleichen Bilder in <100 Millisekunden zu laden. Es war auch recht offensichtlich, dass nicht alle Webseiten betroffen waren. Youtube, Netflix, etc. waren immer schnell genug, während bei reddit sogar kleine Bilder mehrere Sekunden geladen haben. Außerdem passiert diese Verlangsamung hauptsächlich abends.
Dann habe ich, mithilfe der Dev Tools des Chrome Browsers, einen genaueren Blick auf die Antwortzeiten geworfen. Das Bild der süßen Katze (s.o.; Original URL) von Reddit, das nur 422kB groß ist, brauchte 1,99s zum Laden, wobei eine halbe Sekunde verging bis das erste Byte meinen Rechner erreichte. Ich hab direkt danach einen Speedtest gemacht und der hat mir angezeigt, dass ich meine versprochenen 50Mbit/s erhalte. Ein weiteres Zeichen, dass es kein Problem in meinem Netzwerk oder direkt am Hausanschluss ist.
Bei meinen Nachforschungen bin ich auf einige Posts gestoßen, die das Wort Peering
benutzen. Laut Wikipedia
versteht man darunter „den Zusammenschluss von gleichrangigen Computernetzwerken zum Datenaustausch, z. B. zwischen zwei Internetzugangsanbietern.“
Dieser Post des Server Hosters Hetzner beschreibt einige Probleme, die sie beim Thema Peering
mit der Deutschen Telekom hatten. Ich weiß nicht ob fehlende Verbindungen zwischen Netzwerken verschiedener Betreiber mein Problem auslösen, aber
es sieht auf jeden Fall nach einer möglichen Erklärung aus.
Messung
Für mich bedeutete das, dass ich einen genaueren Blick auf das ganze werfen muss. Ich habe einen einfach Aufbau für die Messungen gewählt, damit sie ohne viel Voodoo zu reproduzieren sind. Die einzigen Voraussetzungen sind bash und zwei verschiedene Server (einer zuhause und einer woanders). Die rohen Messergebnisse werden in Log Dateien geschrieben und werden später verarbeitet und analysiert. Das folgende Aufbau zeigt den groben Aufbau:
Der Server, der bei Hetzner gehostet ist, und mein Homeserver laden beide alle 10 Minuten zwei sample Dateien herunter und loggen den Zeitstempel und die Downloadgeschwindigkeit. Der Hetzner Server dient als Referenz, um Server (reddit) Speed Probleme auszuschließen.
Dieser einfache Aufbau hat sicher so seine Schwächen. Was passiert wenn Server zwischendrin anfangen Antworten zu cachen? Was passiert, wenn eine der Dateien während der Testphase offline genommen wird. Was wenn lokationsabhängige CDNs benutzt werden? Ich schau mal wie es läuft. Eventuell muss ich mir etwas ausgeklügelteres überlegen.
Code
logfile='ispspeed.log'
download_sample () {
datetime=$(date --iso-8601=seconds)
result=$(curl $2 -o /dev/null -w %{speed_download} -s)
speed="${result%%,*}"
echo "$1 ${datetime} ${speed}"
}
while :
do
download_sample 'reddit' 'https://external-preview.redd.it/mp4/Y0CsmhfSFvu_HqysQA1Ed4oD73OtpsYorCIFJrSgvYw-source.mp4?s=c24d071636a35de8bfad866c018bed59672234ae' >> $logfile
download_sample 'ard' 'https://dasersteuni-vh.akamaihd.net/i/de/2019/03/22/ee56c487-3f1c-489f-bb13-2c51fd3872ec/,320-1_379735,512-1_379735,960-1_379735,480-1_379735,640-1_379735,1280-1_379735,.mp4.csmil/segment3_5_av.ts?null=0' >> $logfile
sleep 10m
done
Dieses Skript läuft auf beiden Servern. Die wichtigste Zeile ist hervorgehoben. Es läd die Datei per curl
herunter. Die Dateien habe ich zufällig ausgewählt. Ich hatte
nie Probleme mit ard videos, als dient diese Video Schnipseldatei als Referenz. Die geloggten Ergebnisse sind leerzeichensepariert und bestehen aus quelle (reddit
oder
ard
), dem Zeitstempel im iso-8601 Format und der Downloadgeschwindigkeit in Bytes pro Sekunde. Hier sind erste Ergebnisse vom Homeserver:
~$ head -n 20 ispspeed.log
reddit 2019-03-14T22:15:14+01:00 434285
ard 2019-03-14T22:15:19+01:00 2919081
reddit 2019-03-14T22:25:21+01:00 63749
ard 2019-03-14T22:25:54+01:00 3059830
reddit 2019-03-14T22:35:56+01:00 74161
ard 2019-03-14T22:36:24+01:00 2644445
reddit 2019-03-14T22:46:26+01:00 2505074
ard 2019-03-14T22:46:27+01:00 2965251
reddit 2019-03-14T22:56:28+01:00 76799
ard 2019-03-14T22:56:56+01:00 2655826
reddit 2019-03-14T23:06:58+01:00 96715
ard 2019-03-14T23:07:20+01:00 3980217
reddit 2019-03-14T23:17:21+01:00 147954
ard 2019-03-14T23:17:36+01:00 2879907
reddit 2019-03-14T23:27:37+01:00 247349
ard 2019-03-14T23:27:46+01:00 3177631
reddit 2019-03-14T23:37:47+01:00 951750
ard 2019-03-14T23:37:49+01:00 3663645
reddit 2019-03-14T23:47:50+01:00 2672566
ard 2019-03-14T23:47:51+01:00 3207144
Ich werde die Ergebnisse noch nicht interpretieren. Der nächste Post wird genaue Ergebnisse eines längeren Zeitraums enthalten und ich werde eine Diskussion zu ihnen anfangen. Lass mich wissen was du denkst. Hast du ähnliche Probleme? Weißt du warum?