Stellen Sie sich das folgende Szenario vor:
Ich habe 2 PCs (PC1 und PC2), die gleichzeitig in einem Vollduplex-Ethernet-Switch an PC3 übertragen möchten. Angenommen, alle Ports befinden sich im selben VLAN. Was passiert also intern im Switch? Wer überträgt zuerst auf PC3?
Ich habe zuvor gelesen, dass CSMA / CD verwendet wurde, aber nur in früheren Ethernet-Versionen, die im Halbduplex-Modus betrieben wurden, und jeder Port des Switches eine Kollisionsdomäne war und wenn 2 Computer gleichzeitig zu übertragen versuchten, eine Der Algorithmus wurde ausgeführt, um jedem Computer eine zufällige Zeit zu geben, um das Kollisionsproblem zu übertragen und zu lösen. In einem Vollduplex-Switch habe ich jedoch gelesen, dass die Möglichkeit einer Kollision ausgeschlossen ist. Was passiert also intern im Switch, wenn 2 PCs gleichzeitig versuchen zu senden? Führt der Switch einen Algorithmus aus, um zu bestimmen, wer zuerst sendet?
quelle
Sehr interessante Frage, die leider keine einzige richtige Antwort hat, da die genaue Lösung von Hardware zu Hardware variiert.
Dieses Problem wird jedoch in Computernetzwerke - ein Systemgerät auf Seite 231-232 explizit erläutert .
Der Kern der Lösung für das Design mit dem Namen "Sunshine Switch" besteht darin, dass Sie Diagrammeingabe - Batcher - Trap - Selector == Banyan === Ausgänge haben und eine Verzögerungsbox vorhanden ist, die den Selector mit dem Batcher verbindet. Und ich zitiere:
Und weiter:
quelle
Es wird immer EINIGE Unterschiede geben, wenn die beiden Computer an den dritten senden, es sei denn, Sie tun etwas Besonderes am Switch, der auf FIFO-Basis übertragen wird, sodass derjenige Frame, der zuerst eintrifft, zuerst übertragen wird.
quelle
Schaltet ein Paket nach dem anderen weiter, wenn sie den Switch betreten, sodass keine Kollisionen auftreten. Dann verarbeitet PC3 Pakete von PC1 und PC2, wobei die CPU-Zeit geteilt wird. Durch Fensterung und Pufferung wird der Kommunikationsfluss gesteuert.
quelle