Ich versuche mehr darüber zu erfahren, wie ein Netzwerk (sowohl LAN als auch Internet) mit Datenverkehr umgeht, und ein Teil davon ist die Frage der Parallelität.
In der Dokumentation zu Speedtest.net wird bei der Beschreibung der genauen Funktionsweise des Tests erwähnt, dass "bis zu 4 Threads" verwendet werden können, ohne zu beschreiben, woraus diese Threads tatsächlich bestehen.
Meine Frage ist, was bestimmt den Grad der Parallelität, der in einem Netzwerk auftreten kann? Ich weiß, sobald ein Signal den Zielserver erreicht, hängt alles von den Ressourcen dieses Servers und dem empfangenden Programm ab. Aber wie funktioniert Parallelität im gesamten Netzwerk?
Nimmt die Netzwerkkarte beispielsweise die Anforderung auf und teilt sie für eine schnellere Übertragung über Kabel auf? Oder packt es einfach alles in größere Teile und lässt das von einem Router / Switch tun?
Insbesondere versuche ich, dies aus geschäftlicher und geschäftlicher Sicht zu verstehen, sodass ich mir keine Sorgen über Dinge wie ein lokales Kabelmodem oder einen lokalen DSL-Adapter mache.
quelle
Antworten:
Lassen Sie uns ein paar Sachen grundieren ...
Speedtest.net richtet 4 parallele TCP-Sockets in Javascript zwischen dem Webbrowser und dem Bandbreitenserver ein. Speedtest.net überträgt Massendaten über diese Sockets und legt dann die Zeit fest, um Durchsatzmessungen zu erhalten.
4 Parallele TCP-Streams helfen dabei, Latenz und Paketverlust im Pfad zwischen dem Geschwindigkeitstest zu überwinden. Parallele TCP-Streams können diese Herausforderungen viel besser bewältigen als ein einzelner TCP-Socket. Ein Beispiel dafür finden Sie in dieser Superuser-Antwort Dies über die Linux-Befehlszeile.
Es spielt keine Rolle, ob die Streams zwischen denselben Hosts oder verschiedenen Hosts parallel sind. Ethernet kann Tausende von parallelen Streams gleichzeitig verarbeiten. Es ist nicht einmal bekannt, wie viele parallele Sockets über die von ihnen verbrauchte Bandbreite hinaus existieren.
quelle
Ich gehe davon aus, dass Sie hauptsächlich über 10/100/1000 Ethernet sprechen. Es ist wichtig zu verstehen, dass in Bezug auf Ethernet jeweils nur ein Frame gesendet werden kann (einer gesendet und einer empfangen, wenn er im Vollduplexbetrieb betrieben wird). Es gibt keine "Parallelität" im Sinne von mehr als einem Frame, der zu einem bestimmten Zeitpunkt die Netzwerkkarte verlässt. Hier kommt eine Diskussion über Puffer und Warteschlangen ins Spiel, auf die ich hier nicht näher eingehen werde.
Das System, das die Netzwerkkarte verwendet, kann viele verschiedene Verkehrsströme aufrechterhalten, die für viele verschiedene Standorte (oder alle zum selben Standort) bestimmt sind. Sie verlassen jedoch nicht gleichzeitig die Netzwerkkarte.
Ich würde empfehlen, den Wikipedia-Artikel über Ethernet zu lesen oder das O'Reilly-Buch Ethernet: The Definitive Guide zu lesen, um weitere Informationen zu erhalten. Beide verknüpfen Sie mit vielen relevanten Quellen.
Wie ytti in den obigen Kommentaren ausgeführt hat, kann dies auch je nach den von uns diskutierten Datenlink- / Netzwerktechnologien stark variieren.
quelle