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

本文是对飞鸽协议的深入分析,重点讨论上下线报文和消息发送的过程。纠正了之前关于飞鸽与飞秋报文差异的误解,解释了飞鸽协议的报文格式,包括版本号、数据包编号、命令字等字段。详细阐述了如何构造上线、下线报文,以及如何添加选项命令字实现消息确认。此外,提到了飞鸽协议中上线用户信息的传递方式。
最低0.47元/天 解锁文章
5622





