イーサネット フレームがあり、これらのフレームから特定のポートの TCP ペイロードを取得したいと考えています。
これについてどうすればよいですか?フレームと TCP の解析に使用できるライブラリはありますか?
プラットフォームは Linux です。
基本的に、最初のステップとしてイーサネット ヘッダーを削除する必要があります。次に、IP ヘッダーを削除し、最後に TCP ヘッダーを削除します。ただし、MAC または IP レイヤーで暗号化が行われる場合があります。この場合、ヘッダーを削除してペイロードを抽出する前に、データを復号化する必要があります。いずれにせよ、これは非常に幅広い質問です。http://en.wikipedia.org/wiki/OSI_modelに慣れる 必要があります Linux には、あなたが求めていることを実行する準備ができているライブラリがあると確信しています (暗号化がない場合、または復号化できる場合)。
ライブラリについて libpcap/winpcap/jpcap を調べるか、アイデアを得ることができます。
または、フレームが最も単純な形式 (暗号化なし、802.1Q なし、... など) であると仮定すると、次のようになります。
dmac(6)+smac(6)+etype(2)+IP_hdr(20)+TCP_src_port(2)+TCP_dst_port(2)
それに応じて、フレーム オフセットで tcp dst ポートを一致させることができます。