Senden Sie Ethernet-Pakete per Unicast

Senden Sie Ethernet-Pakete per Unicast

Ich versuche, diesen Typ von Ethernet-Frame zu erstellen:

Zieladresse (erste Bits Null) + Quelladresse + Quell-IP-Adresse + Ziel-IP-Adresse + Daten

Aber ich weiß nicht, ob es der Typ IPV4 08 00 oder so etwas sein muss.

Ich möchte Paar-zu-Paar-Kommunikation über das Ethernet-Protokoll durchführen, sodass ich Unicast-Paketrahmen verwenden möchte, aber wie kann ich sie verwenden? Wie kann ich den Ethernet-Rahmen unter Unicast vorbereiten? Ich habe bei Google nachgeforscht, aber nichts Nützliches gefunden. Wie kann ich weitermachen? Ich habe zu diesem Zweck einen STM32-LWIP und einen Ethernet-Switch.

Wie kann ich Unicast-Punkt-zu-Punkt-Ethernet-Pakete erstellen? Bitte helfen Sie mir

Antwort1

Der übliche Rahmen für Ethernet ist:

dest-MAC source-MAC type/length source-ip dest-ip data ...

(Wenn das Typ-/Längenfeld 1536 oder mehr beträgt, wird es als Ethernet-Typcode interpretiert, andernfalls ist es die Frame-Länge.)

Wenn Sie das Ethertype-Feld nicht zum Angeben eines Typs verwenden, kann es als Längenfeld interpretiert werden (wenn es kleiner als 1536 ist).

Es ist wahrscheinlich möglich, mit zwei Geräten am selben Switch oder direkt per Kabel verbunden zu kommunizieren, ohne das Ethertype-Feld korrekt zu verwenden (entweder als Ethertype oder als Länge). Aber wenn ich davon ausgehe, dass Sie auf Schicht 3 oder höher kommunizieren möchten (und daher IP-Adressen in Ihren Frame einschließen), stoßen Sie möglicherweise auf Router, die Pakete fragmentieren/abschneiden/ablehnen, bei denen Sie den Anfang der Quell-IP-Adresse dort platziert haben, wo die Frame-Länge/der Frame-Typ erwartet wird.

Die korrekten Rahmenfelder finden Sie auf der Wikipedia-Seite für "Ethernet-Frame".

verwandte Informationen