环境
根据我的理解Network layer
负责重新组装碎片数据报,然后将重组数据提供给上层Transport layer
。
我使用libpcap
收集了数据包跟踪,我想自己在第3层重新组合碎片数据包。
This link说我需要片段标记,片段偏移,标识号和缓冲区值来重新组合片段。
问题
在第一段到达时,如何知道要初始化的缓冲区大小应该是什么,以便完全重组数据报。
感谢。
答案 0 :(得分:0)
IP标头仅提供片段的大小。因此,您需要保留一个最大可能IP数据包大小的缓冲区,即65535字节。只有获得最后一个片段后,才能确定完整数据包的长度。