网络层的数据包重组 libpcap
Packet reassembly at Network Layer libpcap
环境
据我了解,Network layer
负责重组碎片化的数据报,然后将重组后的数据提供给上层Transport layer
。
我已经使用 libpcap
收集了数据包跟踪,我想自己在第 3 层重新组装碎片数据包。
This link 说我需要片段标志、片段偏移量、标识号和缓冲区值来重组段。
问题
在第一个段到达时如何知道要初始化的缓冲区大小应该是多少,以便完全重组数据报。
谢谢。
IP header 只给你片段的大小。所以你需要预留一个最大可能的 IP 数据包大小的缓冲区,即 65535 字节。只有得到最后一个分片,才能确定完整数据包的长度。
环境
据我了解,Network layer
负责重组碎片化的数据报,然后将重组后的数据提供给上层Transport layer
。
我已经使用 libpcap
收集了数据包跟踪,我想自己在第 3 层重新组装碎片数据包。
This link 说我需要片段标志、片段偏移量、标识号和缓冲区值来重组段。
问题
在第一个段到达时如何知道要初始化的缓冲区大小应该是多少,以便完全重组数据报。
谢谢。
IP header 只给你片段的大小。所以你需要预留一个最大可能的 IP 数据包大小的缓冲区,即 65535 字节。只有得到最后一个分片,才能确定完整数据包的长度。