My FAQ,最新最全的IT技术FAQ
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 未整理篇 | 技术讨论
  当前位置: > 网络应用 > 协议大全 > 其它技术
QQ协议概述
作者:未知 时间:2005-08-02 22:35 出处:中国协议分析网 责编:My FAQ
              摘要:QQ协议概述

QQ的版本:

QQ的版本升级比较频繁,而且与多数的软件不同的是,它客户端的升级往往伴随着协议相应的改变。

目前,对研究QQ协议版本比较重要的是:

QQ2000c 。它对应的客户端协议版本是08xx,目前对这个版本的研究比较多。

QQ2003 (0808) 这是腾讯最新公布的QQ版本,目前发现它对应的客户端协议版本是0A 1D。目前对这个版本的研究才刚刚开始,此版本对协议做了比较大的改动。


协议类型:

我们尝试把QQ的协议进行分类:

文字聊天协议族(TCPF, Text Chatting Protocol Family):它主要支持与其它QQ客户端进行文字聊天。TCPF是建立在UDP协议之上。UDP数据包中的第一个字符02为这个协议族的标识。TCPF的服务器使用8000号端口,腾讯的QQ客户端软件一般从4000号端口开始尝试使用,但实际上,对客户端使用的端口号并没有限制。目前的研究集中在TCPF上。

其它未知可能存在的协议族:

我们观察到QQ除了与TCPF服务器通信以外,还有与其它的服务器使用UDP进行通信。目前我们观察到的服务器为 218.17.217.111 : 8000。客户端使用与TCPF不同的端口。目前观察到的从客户端发出的包以06开头,而服务器返回的包则以01开头。目前其具体作用未知。我们注意到一个有趣的现象是,如果选择离线后重新上线,那么在发出登录包之前,这个通讯已经开始。我们暂时把它命名为数据传输协议族(DTPF,Data Transfer Protocol Family)。最新的研究发现,它传递的是QQ Show的图片数据。

语音、视频聊天:目前还没有开始分析,尚未知道是使用UDP还是TCP协议

聊天室:没有分析,应该是TCP协议

随着对这些协议分析的开始,我们会给它们更精细的划分和恰当的命名。


TCPF:

TCPF是建立在UDP协议上的协议族,主要支持文字聊天功能。TCPF是以请求-响应模式工作的。也就是说,客户端发出一个请求,服务器端会给出一个相应的响应;服务器向客户端发送信息,客户端也会给服务器相应的响应。请求和响应通过相同的序列号来进行配对(请求代码也应该相同)。而且每种请求的发起方都是相同的。目前,已知的请求包括:

0x0001  注销登录
0x0002  心跳信息
0x0004  更新用户信息
0x0005  搜索用户
0x0006  获取用户信息
0x0009  不需认证方式添加好友
0x000a  删除好友
0x000b  需要认证的方式添加好友
0x000d  设置隐身、示忙等状态
0x0012  确认收到系统消息
0x0016  发送消息
0x0017&nb