我正在实现一个IPS系统,在观察wireshark的TCP流重组过程时,我有点困惑。
例如,服务器将HTML页面传输到客户端。该页面被分成4个部分,并用TCP包进行封装。然后,服务器将另外4个TCP分组推送到客户端以获取JavaScript文本。
我的问题是,我知道我可以通过测量它们的Seq和Len来确定它们的序列,但是我如何确定HTML文本的结尾呢?我如何知道HTML包含4个TCP数据包而不是5个?
发布于 2011-09-14 14:11:32
RFC 2616 section 4.4指出,消息长度可以通过几种方式给出:
Content-Length标头(如果已定义)。(这可能就是您所看到的情况,并且相对简单。如果您知道body的开始位置(包内的seq+offset)和消息长度,只需添加即可获得结束位置。)multipart/byteranges (除非客户端请求它,否则您不会看到它,而且它可能不会需要一个文档)。(特别是在将FIN数据包从服务器发送到客户端之前,这只会在干净的关闭时发生;否则您将看到RST。)
https://stackoverflow.com/questions/7411734
复制相似问题