Angenommen, die Schaltertabelle ist leer. Wenn Computer A einen Frame an Computer B sendet, werden Sie vom Switch gefragt, wer die MAC-Adresse B hat. Was passiert, wenn C plötzlich einen Frame an A sendet? Was ist der Mechanismus, damit der Switch nicht fälschlicherweise denkt, Computer C sei Computer B? Ist es so, dass es sich die MAC-Adresse des von Computer A gewünschten Ziels merkt, und wenn C versucht, nach A zu gelangen, enthält es auch seine eigene MAC-Adresse, und der Switch erkennt, dass es nicht dasselbe Ziel ist wie der von Computer A gewünschte?
Grundsätzlich frage ich, wann ein Switch eine unbekannte MAC-Adresse für eine von Host A gesendete Anfrage überschwemmt. Woher weiß er, dass das Ziel auf Host A antwortet oder ob gerade ein anderer Host an A sendet?
quelle
Antworten:
Layer 2-Switches (Bridges) verfügen über eine MAC-Adresstabelle, die eine MAC-Adresse und eine Portnummer enthält. Switches folgen diesem einfachen Algorithmus zum Weiterleiten von Paketen:
Wenn ein Frame empfangen wird, vergleicht der Switch die SOURCE MAC-Adresse mit der MAC-Adresstabelle. Wenn die SOURCE unbekannt ist, fügt der Switch sie zusammen mit der Portnummer, auf der das Paket empfangen wurde, der Tabelle hinzu. Auf diese Weise lernt der Switch die MAC-Adresse und den Port jedes sendenden Geräts.
Der Switch vergleicht dann die DESTINATION MAC-Adresse mit der Tabelle. Wenn ein Eintrag vorhanden ist, leitet der Switch den Frame über den zugeordneten Port weiter. Wenn kein Eintrag vorhanden ist, sendet der Switch das Paket an alle Ports mit Ausnahme des Ports, an dem der Frame empfangen wurde (Flooding).
Beachten Sie, dass der Switch den Ziel-MAC erst lernt, wenn er einen Frame von diesem Gerät empfängt.
quelle
Ihre Frage setzt voraus, dass der Switch an der Kommunikation / Konversation zwischen zwei Hosts beteiligt ist oder sich dessen bewusst ist (Ist dies eine Konversation zwischen A und B oder zwischen A und C?). Der Switch ist nicht an der Kommunikation / Konversation zwischen zwei Hosts beteiligt. Es weiß einfach (oder lernt), welche MAC-Adresse welchem Port zugeordnet ist, und leitet (oder vermittelt) Verkehr, der für eine bestimmte MAC-Adresse bestimmt ist, an den zugeordneten Port weiter (sobald es gelernt hat, welcher Port der MAC-Adresse zugeordnet ist), unabhängig davon, ob Die Quelle ist B oder C oder ein anderer Host, der an einen anderen Switch-Port angeschlossen ist.
Switches arbeiten auf Schicht 2. Die Sitzungsverwaltung liegt in der Verantwortung höherer Schichten.
quelle
Es heißt nicht Switch-Tabelle; seine MAC-Tabelle. Stellen Sie sich nun vor, dass die MAC-Tabelle leer ist. Wenn A versucht, ein Paket an B zu senden; Das Paket enthält die MAC-Adresse von A und B. Der Switch aktualisiert die MAC-Adresse von A in der MAC-Tabelle. Da er den Port, an dem B angeschlossen ist, nicht kennt, sendet er ARP- Pakete an allen seinen Ports und wartet auf die Antwort aller Hosts.
Wenn C nun gleichzeitig versucht, ein Paket an A zu senden, extrahiert es die MAC-Adresse von C aus diesem Paket und speichert sie in der MAC-Tabelle. Da nun die MAC-Adresse von in der MAC-Tabelle bereits vorhanden ist, weiß sie, an welchen Port A angeschlossen ist. Datenpakete enthalten die MAC-Adresse der Quelle und des Ziels. Daher sind die MAC-Adressen von B & C unterschiedlich. So wird der Schalter nicht verwirrt. Schalten Sie nun das Paket von C nach A weiter (sofern beide im selben VLAN vorhanden sind).
Um das Paket von A nach B zu senden, wartet es, bis B auf das vom Switch gesendete ARP-Paket antwortet. Wenn es eine Antwort von B erhält, aktualisiert es die MAC-Adresse von B in seiner MAC-Tabelle. Dann wird das Paket schließlich an B weitergeleitet.
Daher wird der Switch nicht verwirrt, da die Datenpakete (tcp / udp) sowohl die Quell- als auch die Ziel-MAC-Adresse enthalten. Ihr Switch leitet kein Paket an eine Schnittstelle weiter, deren Endhost-MAC-Adresse nicht als Switch bekannt ist. Es muss warten, bis der Endhost auf den per Switch gesendeten ARP-Broadcast antwortet.
quelle