Was bestimmt den Grad der Parallelität, der über ein Netzwerk auftreten kann?

7

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.

Sean Long
quelle
2
Sehr breites Thema. In DSL, das Sie zu Hause haben, ist es sehr parallel zwischen Ihrem Heimmodem und dem fernen DSLAM (verschiedene Symbole, die in verschiedenen Frequenzen gesendet werden). Ihr WLAN zu Hause ist parallel. Optisches Ethernet ist seriell, es sei denn, Sie überschreiten 10GE (und sogar 10GE im Kurzstrecken-Multimode können parallel sein). Sobald sich das Paket tatsächlich im Internet befindet, gibt es verschiedene Technologien wie ECMP und 802.1AX, um Parallelität einzuführen, aber es ist nicht innerhalb eines einzelnen Pakets. Hoffentlich kann jemand eine zusammenhängendere Antwort finden.
Ytti
Ich werde versuchen, ein wenig zu klären, ich habe nicht bemerkt, dass es so stark vom lokalen Setup abhängt (mein Gedanke war, dass die Netzwerkkarte, wenn überhaupt, hilft, es aufzuteilen).
Sean Long
Oh, und nichts davon hat etwas mit den Speedtest-Threads zu tun, bei denen Parallelität für das Netzwerk überhaupt nicht sichtbar ist. Das ist nur langsamer Code, der Pakete herausdrückt, und um den langsamen Code auszugleichen, führen Sie mehr davon gleichzeitig aus, aber es wird keine Parallelität auf Paketebene eingeführt.
Ytti

Antworten:

6

Was bestimmt den Grad der Parallelität, der in einem Netzwerk auftreten kann?

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.

Mike Pennington
quelle
5

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.

Brett Lykins
quelle