HTTP数据包重构

<p>如果我有一个大的HTTP数据包已经被分成了许多TCP数据包,我怎么能重建他们回到一个单一的HTTP数据包?基本上,凡在包你看我当一个HTTP数据包开始/结束,告诉?我似乎无法看到TCP报头中表示HTTP数据包的开始或结束的任何标志/场。 P&gt; </p><p> <strong>编辑: STRONG&gt;在后续的反应。如果TCP管理流,它是如何知道什么时候该流的开始和结束?的是,由插座开闭来确定一些协议,在一定程度上,必须能够知道什么时候该HTTP流/数据包开始和结束。这就是我想知道的。 P&gt; <p>我的是我使用数据包嗅探器在C#中读取的TCP数据包,和我想的情况下才能重建HTTP请求/响应/等。经历怎么样Wireshark的和其他各种嗅探器管理的界面。或者是否有任何C#库,让你挖掘到上级的HTTP流,省了我要重建HTTP流/包自己? P&gt; </p><p>感谢。 P&gt;
</p></strong></p>

9 浏览 1 回复
  数据   数据包   http   gt   一个  

回复

    <p>您不应该使用的TCP层的任何信息,以确定HTTP请求的界限。 TCP提供了可靠的字节流服务;你不能看到TCP的帮助,因为他们不存在任何字段或标志。 P&gt; </p><p>要确定的边界是在HTTP请求中你应该遵循RFC 2616的边界定义良好的,你可以通过分析你接收到的数据判断他们。 P&gt; </p><p>确定我计算出如何做到这一点(狡猾,但它能够完成任务)。 P&gt; </p><p>这是简单的剥去了以太网,IP和TCP报头让你有“原始”的数据信息。寻找消息内,很容易检测它是否是一个HTTP分组的开始通过寻找的“HTTP / 1.1 ...”在数据包的开始。这表明该数据包是HTTP流/大数据包/不管的开始。你也可以做一些简单的解析阅读“内容长度”字段,它是整个HTTP数据包的总长度。 P&gt; </p><p>您还可以使用源/目的IP和放大器;端口号,以形成为链接的唯一ID。因此,接收头报文后,注意到这4件事(SRCIP,SRCPORT,DESTIP,DESTPORT)。下次当你收到一个数据包匹配这个端口/ IP组合,您可以检查它是否是在HTTP数据包的下一部分。您可以使用序列号做一些验证,可能其他的东西,但一般的数据包才能所以没关系。我认为一个新的端口被打开每个HTTP流,所以你不应该收到随机分组不属于流的一部分,但是这可能是一个地区容易出现的错误。 P&gt; </p><p>总之,一旦你收到这个数据包,再次剥去头和获取原始信息。它添加到消息的已知部分。如果到目前为止接收到的总消息的长度等于从“内容长度”字段读出的长度,该数据包是完整的 </p><p>这个方法显然是容易出现大量的错误,但我没有这样做的一个非常强大的方式之后。我以为我会回答,以防有人我自己的问题其他人遇到同样的问题,在未来!祝你嗅探:D P&gt;
    </p>

    韦朋谦

相关信息

HTTP数据包重建

<p>如果我有已被分割成许多TCP包的大HTTP数据包,我怎么能重建它们放回一个HTTP数据包?基本上,其中包你看我当一个HTTP数据包开始/结束讲?我似乎无法看到TCP报头中表示HTTP数据包的开始或结束的任何标志/字段。 P&gt; </p><p> <strong>编辑: STRONG&gt;在后续的反应。如果TCP管理流,它是如...

5 浏览 1 回复   数据   http   数据包   gt   tcp  

收到 UDP 数据包??1446???

[15:04:12] 接收到 222.245.71.253 的 UDP 数据包, 本机端口: 1446 , 对方端口: 4441 该包被拦截。 [15:06:55] 接收到 58.52.108.4 的 UDP 数据包, 本机端口: 1446 , 对方端口: 10470 该包被拦截。 [15:07:41] 接收到 211.142.43.6 的 UDP 数据包, 本...

3 浏览 2 回复   端口   udp   数据包   数据   收到  

ICMP数据包 TCP数据包 各是什么意思??

如题!

24 浏览 1 回复   协议   tcp   数据   网络   控制  

在BSD TCP数据包的大小

<p>如果我需要找出在BSD TCP数据包的大小.....什么,我们需要做什么? P&gt; </p><p>有一些工具,它允许此? P&gt; </p>

2 浏览 1 回复   gt   大小   需要   最大   数据包  

为什么防火墙总提示收到192.168.1.1 的 IGMP 数据包??

[21:53:24] 接收到 192.168.1.1 的 IGMP 数据包, 该包被拦截。 [21:55:29] 接收到 192.168.1.1 的 IGMP 数据包, 该包被拦截。 [21:57:34] 接收到 192.168.1.1 的 IGMP 数据包, 该包被拦截。 [21:59:39] 接收到 192.168.1.1 的 IGMP 数据包, 该包被拦截。 ...

2 浏览 3 回复   单击   igmp   192   168   数据