上一篇的飞鸽协议上下线报文分析,写的比较乱,并且其中有些分析还是有点出入。最近我又针对飞鸽协议做了详细的抓包分析,特此这一篇中对上下线报文做一个总结,其中也讲解了发送消息的一些内容。有关聊天报文和文件传输报文,以后我会在分析的比较透彻以后写出技术分析文章。
这里纠正上一篇中的一个错误,就是针对飞秋报文和飞鸽报文差异的那部分,经过我的分析后,发现飞秋的报文和飞鸽的报文基本上是一致的,飞秋的定制信息是在版本号部分。下面开始分析。
一、飞鸽协议格式分析
首先把飞鸽协议的报文的格式说明一下。飞鸽协议报文格式如下(注意,以下是一个完整字符串,使用字符冒号进行每部分的分隔):
Ver(1):PacketNo:SenderName:SenderHost:CommandNo:AdditionalSection
整体报文的意思是:版本号(现在是1,飞秋就是针对这部分做了修改):数据包编号:发送主机:命令:附加数据
各字段解析:
Ver:版本号,标准飞鸽协议为1
PacketNo:数据包编号,一般是取毫秒数。利用这个数据,可以唯一的区别每个数据包;
SenderName指的是发送者的昵称,对应windows系统上,取值为PC的当前用户的登录名
SenderHost:发送主机,对应windows系统上,取值为主机名;