p2p协议分析公司资料

上传人:shaoy****1971 文档编号:108130706 上传时间:2019-10-22 格式:DOC 页数:60 大小:587.50KB
返回 下载 相关 举报
p2p协议分析公司资料_第1页
第1页 / 共60页
p2p协议分析公司资料_第2页
第2页 / 共60页
p2p协议分析公司资料_第3页
第3页 / 共60页
p2p协议分析公司资料_第4页
第4页 / 共60页
p2p协议分析公司资料_第5页
第5页 / 共60页
点击查看更多>>
资源描述

《p2p协议分析公司资料》由会员分享,可在线阅读,更多相关《p2p协议分析公司资料(60页珍藏版)》请在金锄头文库上搜索。

1、IM/P2P模块开发文档2010-11-18盈高ss网络技术有限公司目录目录1.IM/P2P软件应用数据分析31.1.IM31.1.1.MSN31.1.2.QQ/TM101.1.3.AIM/ICQ151.1.4.YMSG151.1.5.Jabber/Google-Talk161.1.6.POPO161.1.7.UC171.1.8.ET171.1.9.WANGWANG181.2.P2P181.2.1.Gnutella (gnutell/Limewire/Bearshare/Gnucleus/XoloX/sharaza-gnutella/ KCEasy-gnutella/ezpeer)191.2.

2、2.Edonkey (emule, edonkey2000, ZCOM)201.2.3.BT261.2.4.Fasttrack (kazaa/Morpheus/iMesh/grokster)281.2.5.Dirrect Connect(oDC,DC+)291.2.6.Ares301.2.7.Winmx301.2.8.SoulSeek301.2.9.Kugoo311.2.10.POCO311.2.11.Clubbox321.2.12.Audiogalaxy331.2.13.XDCC331.2.14.Waste331.2.15.mp2p341.2.16.HttpRangeGet(FlashGet

3、, XunLei, IDM)341.2.17.MMS/RTSP351.2.18.softEther361.2.19.maze361.2.20.vmeet/ipbb371.2.21.pplive371.2.22.qqlive381.2.23.ppstream381.2.24.moptv391.2.25.tvkoo391.2.26.feidian401.2.27.tvant402.附录412.1.P2P常见术语412.2.Gnutella协议中文版(0.4)422.2.1.协议定义422.2.2.文件下载462.3.Msn协议的一些更新472.4.Edonkey协议472.4.1.客户端到服务器的

4、连接482.4.2.客户端到客户端之间的连接492.4.3.客户端服务器TCP连接512.5.关于DHT节点562.6.MMS和RSTP562.7.一些网络电视MMS地址56 1. IM/P2P软件应用数据分析以下是针对不同的IM/P2P软件的协议介绍和应用数据的分析,涵盖了当前主流的IM和P2P软件。分析的时候基本采用的是软件的当时最新的版本,但由于IM/P2P软件更新的速度较快,可能在本文档写作的时候,又有更新的软件版本发布。不过无论软件版本如何变化,万变不离其宗,其基本的协议思路都是差不多的,因此对这些协议的分析汇总,无论是对现有版本的维护,还是对以后更新版本的分析,都有很强的指导作用。

5、1.1. IM1.1.1. MSN1.1.1.1. 协议简介MSN Messenger 是Microsoft开发的聊天工具,目前在国内拥有很大的用户群。使用MSN Messenger可以与他人进行文字聊天,语音对话,视频会议等即时交流,还可以通过此软件来查看联系人是否联机等。该软件的最新版本是8.5。1999年,Microsoft向IETF提交了一份MSN Messenger Service 1.0 Protocol草案,这是最初版本的MSN Messenger协议。在以后几年,该公司不再公开有关MSN Messenger协议的升级、修改细节的官方文档。但无论是开发第三方的聊天客户端软件(如G

6、aim, MyIM等),还是做协议分析,必须对其通信协议有深入了解。1. 连接:MSN Messenger协议建立在TCP/IP之上。除了文件传输和语音聊天是直接的点对点通信之外,其它所有的情形全部通过服务器进行。在逻辑上,一共有三种类型的服务器,各司其职: 派遣服务器(Dispatch Server, DS) - 客户端最初连接的服务器。负责给客户端分配合适的通知服务器。域名是,标准服务端口是1863。完成派遣任务后,切断TCP连接。 通知服务器(Notification Server, NS) - 客户端需要一直保持连接的服务器。很多任务要在这个会话内完成,包括登录、改变状态、获取用户列表

7、、修改用户信息、发起聊天、接受呼叫、邮件通知、退出等等。服务端口由派遣服务器指定,通常也是1863。 接线服务器(Switchboard Server, SS) - 客户端之间聊天使用的中转服务器。每开一个聊天窗口,客户端和服务器就建立一个TCP会话。当客户端之间需要进行文件传输或语音聊天时,发送系统消息,建立点对点会话通道(可能转为使用UDP)。服务端口通常也是1863。点对点 通信使用的端口由客户端自动协商决定,如文件传输通常使用6891端口。注意:在调试的过程中发现,Msn客户端登陆后,如果长时间闲置,客户端会重新向DNS服务器请求解析“”,分配新的DS,进而分配新的NS,说明NS一直保

8、持连接也是相对的,其实也会更换。2. 命令MSN Messenger命令使用纯ASCII码。对非ASCII码字符使用URL编码。命令语法是:XXXTrIDPARAM1PARAM2 /例子: MSG 27 N 168其中,是空白字符,是回车换行,XXX是一个3字符的命令串,TrID是一个流水号,PARAMx是参数, 内是可选项。最简单的命令没有流水号和参数。为了方便起见,下面讨论时用 代表,rn代表,x?代表一个值为0x?字节。红色表示由客户端发出,蓝色表示由服务器发出。一个MSN Messenger命令的例子如下:USR 18 TWN I rn3. 错误无论是由于客户端发出的命令无效,参数无效

9、,还是其他什么原因,服务器可以返回一个错误。格式为XXXTrID其中,XXX是一个3位数字的串。如ADD 21 AL non_ non_rn205 21rn上例中,non_是一个不存在的账号。4. 消息MSN Messenger消息符合MIME 1.0标准,由消息头与消息体组成。通常使用UTF-8编码,消息头中也需要URL编码格式,消息体则直接用二进制数据(如果是文本一般直接用UTF-8编码)。一个MSN Messenger消息的例子如下:MIME-Version: 1.0rnContent-Type: text/plain; charset=UTF-8rn /字符集是UTF8X-MMS-IM

10、-Format: FN=%E5%AE%8B%E4%BD%93; EF=; CO=0; CS=86; PF=0rnrnbhw98xE4xBDxA0xE5xA5xBDxEFxBCx81经简单分析可知,%E5%AE%8B%E4%BD%93是宋体的UTF-8加URL编码,而bhw98xE4xBDxA0xE5xA5xBDxEFxBCx81是bhw98你好!的UTF-8编码。消息及长度举例: 2008-6-10MSG 10 N 149rn / 其中149 是指 绿色字体部分的消息的长度,总长度为163MIME-Version: 1.0rnContent-Type: text/plain; charset=

11、UTF-8rnX-MMS-IM-Format: FN=%E5%AE%8B%E4%BD%93; EF=; CO=0; CS=86; PF=0rnrnhello jinlifan 5. 命令一览命令 来源 去向 说明 备注ACK SS Client 确认,做出肯定回答。 acknowledgementADD Client NS 发出添加新联系人到列表的请求。 add userNS Client 返回添加新联系人请求的应答。ADG Client NS 发出添加新联系人组请求。 add groupNS Client 返回添加新联系人组请求的应答。ANS Client SS 接受聊天连接请求。 answ

12、erBLP Client NS 设置对尚未列入明确允许/禁止的联系人列表的保密策略。 block list privacyNS Client 返回设置保密策略请求的应答。BYE SS Client 通知客户端结束会话。 byeCAL Client SS 发出建立聊天连接的请求。 callSS Client 返回建立聊天连接请求的应答。CHG Client NS 发出改变状态的请求。 change stateNS Client 返回改变状态的应答。CHL NS Client 服务器发出验证要求。 challengeSS ClientCVR Client NS 发出客户端的OS、语言、MSN Me

13、ssenger版本等信息。 client versionClient SSNS Client 返回推荐的MSN Messenger版本、升级软件需要的下载地址等信息。SS ClientFLN NS Client 通知有联系人列表中的用户下线。 off-lineGTC Client NS 设置当有联系人列表中的用户状态改变时给出的提示。 greeting to changes?NS Client 返回设置请求的应答。INF Client NS 询问服务器所支持的认证方式。 information?Client SSNS Client 返回服务器所支持的认证方式。SS ClientILN NS Client 当客户端登录或添加联系人到列表时,通知列表中的联系人的状态。 initial online stateIRO SS Client 当有新用户加入聊天连接时,通知客户端该连接中的用户名单。 initial roster informationJOI SS Client 通知客户端已经同另外的用户建立了聊天连接。 JoinLSG Client NS 发出获取联系人组列表的请求。 list groupsNS Client 返回获取联系

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号