繁体   English   中英

TCP数据包段python

[英]TCP packet segment python

我正在处理TCP数据包。 该应用程序充当嗅探器并建立SIP数据包。 一些TCP SIP数据包是零散的,因此我需要重新组装它们。

我要做的是,最初,我使用以下命令处理第一个TCP连接:

packet = s.recvfrom(sipLocatorConfig.NETWORK_MAX_SIZE)

之后,我获取了数据,然后将其分割,剩下的只是使用.recv

socket.recv(sipLocatorConfig.NETWORK_TCP_MAX_SIZE)

当我获得第二个片段时,使用.recv ,我在一开始会出现乱码数据,我认为这是ETH,IP,TCP信息:

M*?
M*?@{
QyE

如何删除此ETH,IP和TCP标头信息并仅从Packet中提取数据? 谢谢

您可以将数据包解析为:

  • 前14个字节是以太网头
  • 接下来的20个字节可能是ip标头
  • 同样,从ip标头中,我们可以提取正在使用的协议,最后看到协议参考以解析其中的数据

例如。 TCP连接数据包如下: eth_header+IP_header+TCP_Header+payload(data)每个标头都有其特定长度,并且从标头中提取信息将需要您在python中使用struct模块(请参见struct.unpack(“”,“”) )。 提取标题信息还需要了解标题的结构。 最终,您可以计算出有效载荷位置并最终将其提取出来。

具体来说,请参阅此链接以获取更多信息。 希望这可以帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM