2

次の後に「バッファ」に格納されているデータ構造を把握しようとしています。

sock=socket(PF_PACKET, SOCK_RAW, htons(ETHERTYPE_IP));

recvfrom(sock, buffer, 2048, 0, NULL, NULL);

TCP パケットの場合は、データ構造を調べて、リンク層、IP 層、および TCP 層を読み取れるようにしたいと考えています。man ページといくつかのヘッダー ファイルを試してみましたが、あちこちに散らばっています。

前もって感謝します。

4

2 に答える 2

3

これは、ワイヤ (OSI レイヤー 2) を通過する生のビットです。パケットのマニュアルページはそれをかなりよく説明しています。

私なら、この出力を取得して、同じデータを参照している Wireshark セッションの出力と比較します。その後、2 つを関連付けて、何が起こっているかを確認できるはずです。

于 2012-01-02T01:40:58.573 に答える
1

あなたが求めているのは、IP が Ethernet にカプセル化される方法を指定する RFC だと思います。残念なことに、RFC は非常に内容が薄いものですが、最近の RFCにはより詳細な情報が含まれています。

于 2012-01-02T01:43:43.410 に答える