查看: 4252|回复: 6

再请教个问题,HTTP分析如何进行TCP segment重组的?

[复制链接]
发表于 2010-12-7 19:53:55 | 显示全部楼层 |阅读模式
捕获下来的TCP segment,用wireshark捕获的。如何重组TCP segment成为一个个的HTTP方法和页面呢?比如说一个HTTP GET*********2个segment传输的,那么如何确定重组的策略组成一个完整的HTTP page请求呢?
回复

使用道具 举报

发表于 2010-12-8 09:32:17 | 显示全部楼层
用科来网分析系统打开,查看"TCP会话"视图下的,数据流,即可看到TCP重组之后的数据流,
想要看HTTP get了哪些内容,可以去“日志”视图下,查看HTTP日志。
回复

使用道具 举报

发表于 2010-12-8 16:19:54 | 显示全部楼层
捕获下来的TCP segment,用wireshark捕获的。如何重组TCP segment成为一个个的HTTP方法和页面呢?比如说一个HTTP GET*********2个segment传输的,那么如何确定重组的策略组成一个完整的HTTP page请求呢?
samzc2009 发表于 2010-12-7 19:53

HTTP重组几乎与TCP分段没有关系,它的完成主要靠其应用层头部信息完成。
比如,传输的文件类型通过Content Type Header识别,而Get,Post等对象的长度则是由Content Length Header来决定。
所以,当你Get某个对象时,服务器会告诉你,请求的内容长度是多少。
假如这个长度可以以2个TCP Segment传输完毕,那么接收方就知道请求的内容已传输完毕。
将接收到的2个TCP分段Payload内容重组,就为Get的对象。
回复

使用道具 举报

 楼主| 发表于 2010-12-8 18:51:20 | 显示全部楼层
哦,楼上的大侠。貌似不是这样的吧。 如果http方法承载有content,那么是有这个字段的指示的,如果没有怎么办?或者传输异常时候,并没有收到所有的后续segment就提前结束了。

如果HTTP GET方法不承载content data,那么就是只有head部分了。GET head又可能*********多个TCP segment进行传输,这就需要对这个http GET进行重组了,那么如何确定重组方法呢?难道仅仅依靠HTTP协议自身的功能定义进行?还是需要结合TCP seq/ack/next_seq进行呢?首先第一就是要确认TCP流的多个segment是一个http GET。

请指教哦。
回复

使用道具 举报

发表于 2010-12-8 20:39:44 | 显示全部楼层
本帖最后由 haiwanxue 于 2010-12-8 20:41 编辑

对不起,您填写的内容(如签名、帖子、短消息等)包含不良内容而无法提交,请修改。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?CSNA会员注册

×

评分

1

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2010-12-9 17:16:51 | 显示全部楼层
多谢!学习了。不过,还是有些疑问,继续请教。

对于HTTP RESPONSE处理相对容易知道预期的长度。但是对于HTTP REQUEST比如GET就不能确切的知道长度了,比如一个HTTP GET由于太长,也可能被多个TCP SEGMENT传输,这就要求monitor的时候针对传输HTTP GET的TCP segment进行重组。这个过程如何进行HTTP MSG内容的定界(开始、结束)和完整性确认呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | CSNA会员注册

本版积分规则

快速回复 返回顶部 返回列表