Yuque Archive
工作资料

pcap文件源码分析

  1. 。。。

  2. 在这个脚本运行之前,会先手动执行两个命令

  3. 主方法里直接调用了 cron 方法

在一个true循环里:

读了最旧的 pcap 文件和最新的pcap文件,如果一样就continue

读了最旧的 pcap 文件,格式化之后存到成员属性里

 cache_messages

         调了protocol.py 的反序列化方法,解析读出来的数据

  如果数据里包含  和  类型的内容

·       循环

如果是 类型:

 key = inv:{}:****{} (type,hash)

 如果 type 是 2

如果查不到 rkey,设值 rkey= timestamp  

如果查到 rkey了,如果3小时以上了,continue 

设值 lastblockhash = hash  

 添加 key**,**timestamp,hash( node )  

 设置 key 的过期时间 

如果是类型:

 key = ping:{}-{}:****{} (node[0], node[1], msg['nonce'])

 添加 ping:{}-{}:****{} = timestamp 到列表,同时维护到成员变量里

  计算每一个 ping:{}-{}:****{} 的往返时间

   把 rtt:****{} (address)放到列表里,并且仅保留一定时间范围内的key

  1. 删除文件

解析出来存到redis里的数据:

问题:

  • 存下来的 rinv:{}:{} 有什么用? 和 key 是什么关系?

  • 记录一个块哈希的更新时间,如果超过3小时就忽略。