摘要:
在目前的网络通讯和诊断中,网络截包的分析是非常重要的一个环节,尤其在调试私有协议的时候,常常会出现要对着屏幕数字节的问题,各个字段的解析也非常麻烦。在本文中给出一个工具Analyzer和一种数据可视化语言netPDL,对于解析私有协议非常有用。
关键词: 网络 数据 表示 xml netPDL
1. 网络数据的常见形式
网络截包数据是二进制编码,并且数据表示方式有多种多样。比如网络序的长字,字,字节,位等。并且协议的一些字段可能有变长成分,字段的解释严重依赖于前面字段的含义。如何解析这些协议通常很费脑筋,因为如果自己写解析器,那么图形化表示将是一个问题,为了实现图形界面所花时间将会远超过写解析器本身。 如果采用软件工具的话,基本上大部分分析网络包的工具不支持私有协议的解析,自己写一个解析器插件通常比较麻烦,我想为ethereal写解析器应该不会简单。那么就剩下一个比较容易的办法,那就是如果分析工具支持用户用一种简单的语言定义规则,然后分析器读入规则并且根据规则将数据截包表示出来,那一定会使得私有协议的调试简单方便的多。
从目前各个软件看来,ethereal是开源工具里支持协议比较多,功能比较强大的,但是开发私有的解析器需要编写插件,需要编译链接过程,并且其本身的一些库在windows下编译并不方便,所以不符合私有协议开发的要求。而Analyzer则提供了一个接口和一个规范语言netPDL,用户可以用netPDL语言写一个xml文件,然后改动一些相关配置,就可以很方便的解析新的协议了。
2. 网络数据的表示
在netPDL