我试图找出存储在“缓冲区”中的数据结构:
sock=socket(PF_PACKET, SOCK_RAW, htons(ETHERTYPE_IP));
recvfrom(sock, buffer, 2048, 0, NULL, NULL);
我希望能够深入研究数据结构并读取链路层、IP 层和 TCP 层(如果它是 TCP 数据包)。我尝试了手册页和一些头文件,但它到处都是。
提前致谢。
最佳答案
这是通过线路传输的原始位(OSI 第 2 层)。 man page for packet解释得很好。
我要做的就是获取其输出,并将其与查看相同数据的 Wireshark session 的输出进行比较。然后您应该能够将两者关联起来并查看发生了什么。
关于C PF_PACKET 链路层处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8696746/