このタイプのイーサネット フレームを作成しようとしています:
宛先アドレス(最初のビットはゼロ)+ 送信元アドレス + 送信元 IP アドレス + 宛先 IP アドレス + データ
しかし、IPV4 08 00 などのタイプが必要かどうかはわかりません。
イーサネット プロトコルでペア対ペア通信を行いたいので、ユニキャスト パケット フレームを使用したいのですが、どのように使用すればよいでしょうか。ユニキャストでイーサネット フレームを準備するにはどうすればよいですか? Google で検索しましたが、役に立つ情報が見つかりませんでした。どうすれば続行できますか? そのために、stm32 lwip とイーサネット スイッチがあります。
ユニキャストポイントツーポイントイーサネットパケットを作成するにはどうすればいいですか?助けてください
答え1
イーサネットの通常のフレーミングは次のとおりです。
dest-MAC source-MAC type/length source-ip dest-ip data ...
(タイプ/長さフィールドが 1536 以上の場合はイーサネット タイプ コードとして解釈され、それ以外の場合はフレームの長さとして解釈されます。)
タイプを指定するために ethertype フィールドを使用しない場合、長さフィールドとして解釈される可能性があります (1536 未満の場合)。
2 つのデバイスが同じスイッチ上にあるか、ケーブルで直接接続されている場合は、イーサタイプ フィールドを正しく使用せずに (イーサタイプまたは長さとして) 通信できる可能性があります。ただし、レイヤー 3 以上で通信する場合 (つまり、フレームに IP アドレスを含める場合)、フレームの長さ/タイプが予想される場所にソース IP アドレスの開始を配置すると、パケットを断片化/切り捨て/拒否するルーターに遭遇する可能性があります。
正しいフレームフィールドについては、ウィキペディアの「イーサネットフレーム「」。