プログラムを作成して2台のマシンで実行し、イーサネットフレームで1台のマシンから別のマシンにデータを送信したいと思います。
通常、アプリケーションデータはOSIモデルのレイヤー7にありますが、カーネル制限やAPI制限のようなものがあり、宛先MACアドレスを指定して、そのMACにデータを送信するプログラムを作成できなくなります。イーサネットペイロード?次に、着信フレームをリッスンし、指定された送信元MACアドレスからフレームを取得して、フレームからデータのペイロードを抽出するプログラムを作成しますか?
(したがって、IPヘッダーやTCP / UDPヘッダーのような他のオーバーヘッドは必要ありません。レイヤー2よりも高くしたくありません)。
これはC++で実行できますか、それともすべての通信をIP層で実行する必要がありますか?また、これはUbuntuで実行できますか?ポインティングや例を提供するための余分な愛!:D
私の問題は明らかに私がc++でのネットワークプログラミングに不慣れであり、私が知る限り、ネットワークを介して通信したい場合はsocket()
、IP層で機能する呼び出しなどを使用する必要があるので、c++を書くことができますOSIレイヤー2で動作するプログラム。このためのAPIはありますか?Linuxカーネルはこれを許可しますか?