Ich habe die Durchsatzgeschwindigkeit von Paketübertragungen untersucht und war verwirrt über den Gesamtdurchsatz von einem Endsystem zum anderen. Nehmen wir zum Beispiel an, ein Server sendet ein Paket an einen Client mit einem dazwischen liegenden Router. Mein LehrbuchComputernetzwerkevon Kurose und Ross besagt, dass das Endsystem mit der langsameren Durchsatzgeschwindigkeit die Durchsatzgeschwindigkeit der gesamten Dateiübertragung bestimmt. Warum ist das so?
Würden die beiden Durchsatzgeschwindigkeiten nicht addiert werden, um den gesamten Dateiübertragungsdurchsatz zu ermitteln? Beispiel: Der Durchsatz des Servers pumpt Bits mit 1 Mbit/s und der des Routers mit 2 Mbit/s. Nehmen wir außerdem an, dass die Dateigröße 10 Millionen Bits beträgt. Vom Server zum Router würde es 10 Sekunden dauern, um den Server zu erreichen, und dann würde es etwa 5 Sekunden dauern, um den Client zu erreichen, was bedeutet, dass die gesamte Durchsatzinteraktion 15 Sekunden dauern würde. Das würde ich auch denken, aber nach der Logik des Lehrbuchs würde dies 10 Sekunden dauern. Warum ist das so?
Antwort1
Stellen Sie sich eine Reihe Ameisen vor, die sich von einem Blatt zu ihrem Loch bewegen, aber ein Stock versperrt ihnen den Weg, über den sie klettern müssen:
<Leaf> ------ <stick> ------ <hole>
Eine Ameise braucht 3 Sekunden, um den Stock zu erreichen (Etappe 1 der Reise), 10 Sekunden, um über den Stock zu klettern (Etappe 2) und dann 2 Sekunden, um vom Stock zum Loch zu gelangen (Etappe 3). Die Gesamtbandbreite von Etappe 1 beträgt 3 Ameisen, die Bandbreite des Stocks beträgt eine Ameise und die Bandbreite von Etappe 3 beträgt 3 Ameisen.
Also verlässt Ant0 das Blatt und wandert zum Stock. Er klettert über den Stock und läuft zum Loch. Gesamtzeit = 15 Sekunden.
Ant1 lässt 1 Sekunde hinter Ant0 und durchquert Leg1 in drei Sekunden. Er erreicht den Stick, aber die Bandbreite des Sticks ist voll, weil Ant0 sie verwendet. Ant1 muss also 9 Sekunden warten, bevor er BEGINNEN kann, den Stick zu überqueren. Wenn Ant0 mit dem Stick fertig ist, überquert Ant1 ihn und geht weiter zum Loch. Die Gesamtzeit beträgt 3 s + 9 s (Warten) + 10 s Überqueren des Sticks + 2 Sekunden bis zum Loch => 24 Sekunden.
Ant2 bleibt 1 Sekunde hinter Ant1 zurück und braucht drei Sekunden, um den Stock zu erreichen. Dann muss sie warten, bis sowohl Ant0 als auch Ant1 den Stock verlassen haben, bevor sie überqueren kann. Gesamtzeit = 3 s + 10 s (Warten auf Ant1) + 8 s (Warten auf Ant0) + 10 s (Überqueren des Stocks) + 2 s, um das Loch zu erreichen => 33 Sekunden.
Wenn wir also den Durchsatz dieses Pfades messen würden, läge er bei 3/(15+24+33) => 0,0416 Ameisen pro Sekunde.
Nehmen wir an, wir haben Bein 1 auf 1 Sekunde beschleunigt (3x schneller). Dann kommen wir auf 3/(13+22+31) => 0,454 Ameisen pro Sekunde. Eine sehr geringe Steigerung für eine 3-fache Geschwindigkeitssteigerung auf einem Bein.
Nehmen wir an, wir beschleunigen Etappe 3 auf 1 Sekunde (2x schneller). Dann kommen wir auf 3/(12+21+30) => 0,0476 Ameisen pro Sekunde. Auch hier wieder eine sehr geringe Auswirkung.
Wenn wir jedoch die Geschwindigkeit von Etappe 2 erhöhen, vielleicht um das Zweifache auf 5 Sekunden, erhalten wir eine ganz andere Zahl: 3/(7 + 11 + 17) => 0,085 Ameisen pro Sekunde.
Eine Erhöhung eines der schnelleren Zweige bewirkte also kaum etwas, eine Verdoppelung der Rate der langsamsten Komponente verdoppelte jedoch effektiv den Durchsatz des Pfades.
Ist Ihnen also aufgefallen, dass Leg3 zwar über ausreichend Bandbreite und eine hohe Übertragungsrate verfügt, dies jedoch keinen Einfluss auf die Geschwindigkeit hat, mit der Ameisen das Loch erreichen, da die Geschwindigkeit, mit der Ameisen Leg3 betreten, durch den Stock eingeschränkt wird, sodass der Großteil der Bandbreite auf Leg3 unbrauchbar ist? Sie könnten sie um das Hundertfache erhöhen, ohne auch nur den geringsten Einfluss auf die Geschwindigkeit zu haben, mit der Ameisen das Loch erreichen. In dieser Situation können Sie die Gleichung nur ändern, indem Sie die Geschwindigkeit erhöhen, mit der Ameisen den Stock überqueren. Alles andere ist bedeutungslos.
Antwort2
Das Ende mit der langsamsten Geschwindigkeit bestimmt die Gesamtverbindungsgeschwindigkeit, da es Daten buchstäblich nicht schneller empfangen kann, da es sonst zu Fehlern kommt.
Denken Sie nicht an die benötigte Zeit, sondern daran, wie schnell etwas zuhören kann.
Sagen wir es so: Sie haben eine Person, die ein Buch laut vorliest, aber sehr schnell sprechen kann, und Sie haben eine Person, die zuhört. Die zuhörende Person kann nur langsam verstehen, also muss der schnelle Leser entweder auf eine Geschwindigkeit verlangsamen, die der Zuhörer verstehen kann, oder der Zuhörer muss immer wieder sagen: „Warten Sie, können Sie das wiederholen?“. Das bestimmt den Durchsatz.
Außerdem begehen Sie einen schwerwiegenden Fehler, wenn Sie annehmen, dass der Router den gesamten zu übertragenden Datenblock zurückhält, bevor er ihn weiterleitet. Dies geschieht zwar bei winzigen Datenblöcken, aber so funktioniert das Gesamtsystem nicht.
Hier sehen Sie zwei Durchsätze. Den Durchsatz vom Absender zum Router und vom Router zum Empfänger. Der Router speichert zu einem bestimmten Zeitpunkt nur eine kleine Menge der Daten und speichert nicht den gesamten großen Block, bevor er ihn erneut überträgt. Daher haben Sie effektiv die langsamste Verbindung im System, was die Gesamtgeschwindigkeit begrenzt, mit der die End-to-End-Verbindung arbeiten kann.