Wie empfängt ein Gigabit-Netzwerkadapter Daten, wenn er Daten empfängt? Wird alles in einem Strom von Nullen und Einsen angezeigt? Oder kommen irgendwie mehrere Ströme von Nullen und Einsen gleichzeitig herein?
Zum Beispiel ... Nehmen wir an, es gibt zwei Sendegeräte und ein Empfangsgerät.
Die Geräte 1 und 2 senden gleichzeitig Netzwerkdaten an Gerät 3.
Ich gehe davon aus, dass aus Sicht des Netzwerkadapters von Gerät 3 alle Nullen und Einsen in einem einzigen Datenstrom angezeigt werden. Es kann herausfinden, welche Daten von Gerät 1 oder 2 stammen, aber die Daten sind immer noch nur ein Strom von Millionen / Milliarden von Bits.
Bin ich total falsch :) :)
ethernet
layer1
networking
shihku7
quelle
quelle
Antworten:
Es hängt davon ab, ob.
Während viele Ethernet-PHYs Daten rein seriell übertragen (z. B. 100BASE-TX, 1000BASE-SX, 10GBASE-SR), teilen einige den Datenstrom in mehrere Spuren auf, die parallel übertragen werden.
Am häufigsten teilt 1000BASE-T - die übliche Gigabit-über-Kupfer-Variante - den codierten Datenstrom in vier Spuren auf und überträgt sie jeweils separat auf einem der vier verdrillten Paare in einem Cat-5-Kabel. Alle Twisted-Pair-Varianten ab Gigabit nutzen diese vier Spuren.
Einige Hochgeschwindigkeits-PHYs (10G +) verwenden auch mehrere Spuren über bis zu 16 Fasern (mit Multimode-Faser und kurzer Reichweite) oder Wellenlängen (mit Single-Mode-Faser und großer Reichweite).
Es wird jedoch alles in Frames übertragen , die jeweils von einer einzelnen Quelle zu einem einzelnen Ziel ausgeführt werden. Rahmen sind im Allgemeinen atomar, dh. Sie werden immer in einem Stück übertragen. Jeder Frame transportiert nur Daten von einer bestimmten Verbindung / Anwendung. Sein Header enthält Quell- und Zieladressen, damit er sich über das Netzwerk zurechtfinden kann.
Wenn das Netzwerk zwei Frames von verschiedenen Quellen für denselben Zielport gleichzeitig empfängt, muss einer der Frames in die Warteschlange gestellt werden, bis der Switch-Port in Richtung des Ziels die Übertragung des ersten Frames beendet hat.
Dies setzt voraus, dass Quellen und Ziel mit derselben Geschwindigkeit ausgeführt werden, was nicht unbedingt der Fall ist. Sie könnten einen Dateiserver haben, der über eine 1-Gbit / s-Verbindung verbunden ist, und zehn Clients, die jeweils ihre 100-Mbit / s-Verbindungen mit voller Geschwindigkeit ohne (signifikante) Warteschlange senden. Dies kommt Ihrem Vorschlag "Mehrere Streams" etwas nahe, nur dass diese Streams auf Frame-Ebene und nicht auf Bitebene verschachtelt sind.
Die Rate an einem Netzwerkport kann Tausende oder sogar Millionen von Frames in einer Sekunde betragen. Aus menschlicher Sicht ist es daher unmöglich, mehrere Streams zu unterscheiden - alles scheint "gleichzeitig" zu sein.
quelle
Lassen Sie uns den Gigabit-Teil vorerst ignorieren und uns ein wenig auf Ihren Teil "2 Geräte senden gleichzeitig" konzentrieren.
Auf freigegebenen Medien kann dies tatsächlich passieren und ein Problem darstellen. Die meisten drahtlosen Übertragungen sind gemeinsam genutzte Medien, und Ethernet war früher:
Wenn nun zwei Geräte gleichzeitig senden, können zwei Dinge passieren:
Sie verwenden eine Form des Multiplexens (Zeitteilung, Frequenzteilung ...), die separate "Kanäle" ermöglicht, so dass man einen bestimmten Kanal hören kann und nicht von den anderen gestört wird. Dies wird häufig für drahtlose Übertragungen verwendet, viel weniger für drahtgebundene Übertragungen (WDM / DWDM auf Fasern ist eine Ausnahme).
oder wenn zwei oder mehr Geräte gleichzeitig auf demselben Kanal senden, erhalten Sie eine sogenannte Kollision : Wenn beispielsweise zwei Personen gleichzeitig sprechen, können Sie nicht verstehen, was auch gesagt wird, Empfangsgeräte nicht in der Lage, die von einem der Geräte gesendeten Daten zu dekodieren (oder häufiger, sie können sie dekodieren, aber es macht keinen Sinn und besteht keine CRC-Prüfungen).
Hier kamen Schemata wie CSMA-CD (Carrier-Sense Multiple Access, Kollisionserkennung) ins Spiel:
Das hat sehr viel Spaß gemacht und in leicht ausgelasteten Netzwerken hat es ganz gut funktioniert, aber sobald der Datenverkehr erheblich wurde, kam es zu Unmengen von Kollisionen, die wiederum die Nutzung der gemeinsam genutzten Medien erhöhen, was wiederum zu mehr Kollisionen führt. so könnte es ziemlich schlimm werden.
Die Antwort darauf war die Umstellung auf Vollduplex-Switched-Netzwerke . Hubs wiederholten das Signal nur ohne nachzudenken. Switches hingegen empfangen wirklich einen Frame und senden ihn dann erneut über den Ziellink (zusätzlicher Bonus: Der Frame wird nicht an alle gesendet, sondern in den meisten Fällen nur an das Ziel).
Wenn zwei Geräte an dasselbe Zielgerät senden, stellt der Switch einen der Frames in die Warteschlange, sodass die beiden Frames, die gleichzeitig gesendet wurden, tatsächlich nacheinander am Ziel ankommen.
Darüber hinaus ist es auf physikalischer Ebene durchaus möglich, dass Daten über mehrere Paare oder sogar mehrere Kabel parallel ausgetauscht werden. Ob dies auf Bitebene erfolgt oder ganze Frames auf jedem Paar / Kabel gesendet werden, hängt von der genauen verwendeten Technologie ab. Aber ich denke, das war nicht wirklich deine Frage.
quelle
Dieser besondere Fall ist komplex.
In Bezug auf 1000baseT.
Erstens: Wenn wir allgemein sagen, dass zwei Geräte gleichzeitig senden, senden sie normalerweise nicht tatsächlich Bits zum gleichen Zeitpunkt auf demselben Medium. Wenn dies der Fall ist, liegt eine Kollision vor, und alle Abhörgeräte lösen dies aus (eventuell durch verschiedene Kollisionserkennungsschemata). So erhalten zwei Sendegeräte zu leicht unterschiedlichen Zeitpunkten Zugriff auf das Medium. In 1000baseT gibt es jedoch nur zwei Geräte in einem bestimmten Satz von Paaren. Normalerweise ist ein Gerät ein Switch und das andere ein Host.
Zweitens überträgt 1000baseT zwei Datenbits gleichzeitig auf einem Paar, das auf komplexe Weise bei fünf Spannungspegeln codiert ist. Es handelt sich also um eine Reihe von Basis-4-Ziffern auf dem Draht, nicht um eine Reihe von Basis-2-Ziffern.
Drittens kann 1000baseT gleichzeitig in beide Richtungen auf demselben Paar senden. Es kann das ausgehende Signal durch eine als Hybrid bezeichnete Schaltung vom eingehenden trennen.
Gigabit-Ethernet über andere Medien verhält sich anders. Langsamere Geschwindigkeiten, z. B. 10baseT und 100baseT, haben einfachere Schemata. 10baseT über einen Hub hat tatsächlich tatsächliche Kollisionen. Über Switches wird es normalerweise vom Switch so organisiert, dass ausgehende Frames in die Warteschlange gestellt werden. Wenn es Vollduplex ist, gibt es überhaupt keine Kollisionen.
quelle
Angenommen, alle kabelgebundenen Ethernet-Verbindungen hier.
Wenn zwei Geräte im selben Netzwerksegment gleichzeitig senden, unabhängig davon, an wen sie senden, spricht man von einer Kollision . Keine der Nachrichten kommt durch, wenn eine Kollision auftritt. Glücklicherweise können Absender Kollisionen erkennen. In diesem Fall wählt jeder Absender eine zufällige Zeitspanne (kleine Sekundenbruchteile) aus, um zu warten und es erneut zu versuchen, und wiederholt den Vorgang, bis schließlich nur noch ein Absender aktiv ist.
Das passiert aber kaum noch.
Stattdessen werden heutzutage die meisten Kabelverbindungen über Switched-Netzwerke hergestellt , bei denen jedes Gerät (sowohl Sender als auch Empfänger) an einem Switch an einen eigenen Port angeschlossen ist. Die Daten werden in Pakete (wirklich: Frames ) aufgeteilt, und der Switch stellt sicher, dass jeweils nur ein Paket an jedem Port aktiv ist. Wenn eine Verbindung besetzt ist, speichert der Switch andere Frames und leitet sie an den Empfänger weiter, wenn die Verbindung wieder verfügbar ist.
Bei diesem Schema können Kollisionen nur dann auftreten, wenn entweder mehr als ein Gerät über einen nicht geschalteten Hub mit dem Switch verbunden ist oder wenn die Ports einiger Modelle des WLAN-Routers zu Hause noch nicht geschaltet sind oder wenn a Die Verbindung zwischen einem Switch und einem Gerät arbeitet im Halbduplexmodus .
Wir beschäftigen uns stattdessen mit Überlastung . Möglicherweise haben wir keine Kollisionen, aber ein beliebter Host im Netzwerk verfügt möglicherweise über Geräte, die mehr Daten und Pakete senden möchten, als die Verbindung unterstützt, sodass der Puffer voll ist. Aber das ist ein ganz anderes Thema.
quelle
Ich denke, Sie müssen ein grundlegendes Verständnis dafür bekommen, wie Ethernet funktioniert. Beispielsweise sendet der sendende Host eine Präambel mit abwechselnden Einsen und Nullen, um die Aufmerksamkeit des empfangenden Hosts zu erhalten. Wenn der empfangende Host zwei in einer Reihe sieht, weiß er, dass der Frame der nächste ist. Sobald der Rahmen übertragen wurde, muss 96 Bit lang Stille auf der Leitung sein, bevor ein anderer Rahmen gesendet wird.
Unterschiedliche Ethernet-Standards verwenden unterschiedliche Codierungen. Beispielsweise verwendet 100Base-T 4B5B, das fünf Bits pro vier Datenbits sendet.
quelle
(Für diese Frage gehe ich von einem gemeinsam genutzten Hub-Netzwerk aus.)
Ja. Unabhängig von der PHY-Implementierung handelt es sich um einen einzelnen Eingabestream. Die Kommunikation von mehreren Geräten kann nicht erfolgreich ankommt an einer einzigen NIC (MAC - Adresse) zur gleichen Zeit.
"Einzelstrom" ja, aber in Ihrem Beispiel von zwei Geräten, die gleichzeitig senden, kommt kein Datenstrom zur weiteren Verarbeitung an. Die "Frames" von 1s und 0s kollidieren.
Nicht kann es nicht. Wenn die Signale kombiniert werden, wird eine Kollision erkannt und der Rahmen wird verworfen.
Ihr Fragentitel ist eine korrekte Aussage, aber Ihre Diskussion in Ihrem Q-Beitrag deutet darauf hin, dass Ihr Verständnis und Ihre Hypothese falsch waren.
Des Weiteren
quelle