我试图找出以下内容后存储在'buffer'中的数据结构:
sock=socket(PF_PACKET, SOCK_RAW, htons(ETHERTYPE_IP));
recvfrom(sock, buffer, 2048, 0, NULL, NULL);
如果它是TCP数据包,我希望能够进入数据结构并读入链路层,IP层和TCP层。我尝试了手册页和一些头文件,但它只是到处都是。
提前致谢。
答案 0 :(得分:3)
这是通过线路的原始位(OSI第2层)。 man page for packet很好地解释了它。
我要做的是获取此输出并将其与查看相同数据的Wireshark会话的输出进行比较。然后你应该能够将两者联系起来,看看发生了什么。
答案 1 :(得分:1)
我相信你所追求的是RFC that specifies how IP is encapsulated in Ethernet。可悲的是,RFC 非常很薄,但more recent RFC包含更多细节。