Ich habe ein FPGA-Edge-Gerät. Ich möchte über das Router-Modem-Gerät in meinem Haus Ethernet-Pakete an meinen Laptop senden und empfangen. Mein Laptop ist über WLAN (für das Internet) mit dem Router-Modem verbunden und ich verbinde meine FPGA-Platine über ein Ethernet-Kabel mit dem Router-Modem.
Welche Protokolle und Handshakes sollte ich in meinem FPGA implementieren, damit, wenn ich ein Ethernet-Paket mit der Ziel-IP+MAC-Adresse meines Laptops an das Router+Modem-Gerät sende, dieses Ethernet-Paket an meinen Laptop weitergeleitet wird, der über WLAN mit ihm verbunden ist?
Und wenn mein Laptop ein Ethernet-Paket mit der Ziel-IP+MAC-Adresse meines FPGA an den Router sendet, leitet dieser es dann an mein FPGA weiter, das über das Ethernet-Kabel mit ihm verbunden ist?
Wie genau erkennt der Router die IP- und MAC-Adresse meines FPGA (mit welchem Handshake werden diese Informationen im Router gespeichert)?
Wenn das FPGA einen TCP-3-Wege-Handshake durchführen und auf ARP-Anfragen und Ping-Anfragen antworten kann, reicht das dann aus, um die oben genannte Aufgabe auszuführen? Wie wird das durch diese Handshakes möglich, was genau passiert, wenn das Ethernet-Kabel an den Router angeschlossen wird und welche Handshakes benötigt der Router?
Antwort1
Ich gehe davon aus, dass Sie ein Gerät für den Heim-/Privatgebrauch haben, das als „Router“ vermarktet wird und tatsächlich einen Layer-2-Switch für das LAN und einen Layer-3-Router (möglicherweise mit NAT) für die Internetverbindung des LAN mit dem WAN enthält.
Welche Protokolle und Handshakes sollte ich in meinem FPGA implementieren, damit, wenn ich ein Ethernet-Paket mit der Ziel-IP+MAC-Adresse meines Laptops an das Router+Modem-Gerät sende, dieses Ethernet-Paket an meinen Laptop weitergeleitet wird, der über WLAN mit ihm verbunden ist?
Wenn Sie eine statische IP-Adresse für das FPGA haben, müssen Sie lediglich die Ethernet-Verbindung herstellen und trainieren. Anschließend können Sie Daten mit festen Quell- und Ziel-IP- und MAC-Adressen senden. Wenn Sie eine dynamische IP für das FPGA wünschen, müssen Sie DHCP unterstützen (und alles andere, worauf es angewiesen ist, wie z. B. UDP).
Und wenn mein Laptop ein Ethernet-Paket mit der Ziel-IP+MAC-Adresse meines FPGA an den Router sendet, leitet dieser es dann an mein FPGA weiter, das über das Ethernet-Kabel mit ihm verbunden ist?
Wenn das FPGA eine statische IP hat, benötigen Sie nur ARP, damit der Laptop die richtige Layer-2-Adresse erkennt, die im Link-Layer-Header des Frames verwendet werden soll. Es sind keine besonderen Maßnahmen erforderlich, um dem Switch mitzuteilen, an welchem Port sich das FPGA befindet. Es wirdeinfach arbeitenindem das Paket zunächst an alle Switch-Ports gesendet wird und dann der richtige Port ermittelt wird, sobald das FPGA seinen ersten Frame überträgt.beliebigArt mit dem richtigen Quell-MAC-Satz.
Wie genau erkennt der Router die IP- und MAC-Adresse meines FPGA (mit welchem Handshake werden diese Informationen im Router gespeichert)?
Der Router muss dies nicht unbedingt wissen, um Daten, die zum und vom FPGA übertragen werden, ordnungsgemäß zu verarbeiten. Er könnte es (auf seiner Statusseite) als unbekanntes Gerät auflisten oder es überhaupt nicht auflisten.
Wenn das FPGA einen TCP-3-Wege-Handshake durchführen und auf ARP-Anfragen und Ping-Anfragen antworten kann, reicht das dann aus, um die oben genannte Aufgabe auszuführen? Wie wird das durch diese Handshakes möglich, was genau passiert, wenn das Ethernet-Kabel an den Router angeschlossen wird und welche Handshakes benötigt der Router?
Siehe oben. Das Training der Ethernet-Verbindung stellt Schicht 1 (physisch) her. Auf Schicht 2 (Verbindungsschicht) erkennt der Switch während der Kommunikation die Zuordnungen von MAC-Adresse und Port und überflutet alle Ports mit Paketen (Geräte, die nicht als Ziel dienen, ignorieren diese Pakete), wenn er einen Frame senden muss, bevor der richtige Port bekannt ist. IP-Adressen auf Schicht 3 werden aufgrund von ARP in MAC-Adressen aufgelöst und die IP-Adressen selbst können entweder statisch oder über DHCP konfiguriert werden.