![以QQ为代表的即时通信的分析_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-3/30/50ed8d5f-695a-45d4-8a76-bbadd0df7931/50ed8d5f-695a-45d4-8a76-bbadd0df79311.gif)
![以QQ为代表的即时通信的分析_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-3/30/50ed8d5f-695a-45d4-8a76-bbadd0df7931/50ed8d5f-695a-45d4-8a76-bbadd0df79312.gif)
![以QQ为代表的即时通信的分析_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-3/30/50ed8d5f-695a-45d4-8a76-bbadd0df7931/50ed8d5f-695a-45d4-8a76-bbadd0df79313.gif)
![以QQ为代表的即时通信的分析_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-3/30/50ed8d5f-695a-45d4-8a76-bbadd0df7931/50ed8d5f-695a-45d4-8a76-bbadd0df79314.gif)
![以QQ为代表的即时通信的分析_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-3/30/50ed8d5f-695a-45d4-8a76-bbadd0df7931/50ed8d5f-695a-45d4-8a76-bbadd0df79315.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录一、即时通讯软件概述 3二、即时通信的技术架构 .4三、QQ通信原理的概述 .7四、QQ协议的分析 8五、QQ数据包的分析.11六、参考文献与相应网站13一、即时通讯软件概述 在当今信息时代,人们之间的信息交流需求越来越高, 即时通( Instant Messenger, IM) 软件应运而生,立即受到广大互联网用户的喜爱, 风靡全球。在我国流行的 IM软件品种繁多,有国内腾讯公司的OICQ(简称QQ), 国外的 ICQ, AIM, MSN 和 Yahoo Mes-senger等即时通产品。其中 ICQ和 AIM是美国在线公司 AOL出品的两款流行的即时通软件, ICQ凭借它推出时间最长和
2、强大的功能依然占据着即时通主流的位置。MSN是微软推出的即时通产品,它最大的特点就是将个人邮箱与即时通信功能完善结合。Yahoo Messenger中文名字叫雅虎通, 由世界著名搜索引擎 Yahoo推出, 它的最新简体中文版本是 5.5 版。目前,国内最为流行的即时通讯软件是腾讯QQ。它以良好的中文界面和不断增强的功能形成了一定的QQ网络文化。各种IM工具在中国的市场占有率如下:由于腾讯QQ在中国市场的占有率较高,以下我们主要以OICQ为主,进行结构、安全技术、协议、数据分析方面的探讨。二、即时通信的技术架构1、即时通信的通信模式有客户/服务器(C/S)通信模式和对等通信(P2P)模式1) 客
3、户/服务器(C/S)通信模式采用的是三层C/S结构。三层C/S结构分为三部分:客户、应用服务器和数据库服务器。l 客户:通常实现用户界面,它提供了一个可视化接口,用来显示信息和收集数据,它只与应用服务器打交道。l 应用服务器:通常实现应用逻辑,是连 接客户与数据库服务器的桥梁。它响应用户发来的请求执行某种业务任务,并与数据库服务器打交道。在实际应用过程中,该层的组件通常可分为两个以上的层次, 因此这种结构也被称为多层次结构。l 数据库服务器:实现数据的定义、维护、访问、更新以及管理,并响应应用服务器的数据请求。它的物理实现可以在某一 种数据库管理系统中,也可以是多个异种数据库的集合,这种数据库
4、可以驻留在多种平台上。优点:l 信息存贮与管理比较集中规范。目前,互联网上可以公开访问的信息基本上都保存在服务器上,信息的储存管理功能较为透明,用户提出访问请求后,无须再过问其他,服务器则根据一定的规则应答访问请求。l 安全性较好。从安全的角度来说,各种系统都存在或多或少的安全漏洞,由于C S模式采用集中管理,客户端被动地从服务器接受指令,因此,一台客户机出现安全问题,不会影响整个系统。劣势:l CS模式投资大且维护成本高昂。采用CS架构,网络管理工作人员既要对服务器维护管理,又要对客户端维护和管理,这需要高昂的投资和复杂的技术支持,维护成本很高,维护任务量大。IM系统大都组合使用了C/S和P
5、2P模式。l CS 模式下,服务器及带宽决定了网络的性能。每台服务器的自身存储空间决定了所能提供的信息量,而且客户端访问数量过多,超过了服务器所能容纳的量,服务器会负荷过大而造成系统的瘫痪。l CS模式下,服务器容错性不高,一旦服务器出现问题,整个系统将会瘫痪。2)、对等通信(P2P)模式P 2 P是 “ P e e r t o P e e r ”的缩写,它指的是不通过中枢服务器而在个人电脑之间实现文件交换和共享的一种新技术。P2P模式下,没有提供信息的服务器与接受信息的客户浏览器之分,每台电脑都可以既是信息提供者又是索取者。对等点之间通过直接互联实现信息、处理器、存储甚至高速缓存等资源的全面
6、共享,而无需依赖集中式服务器支持。 优点:l P2P模式最主要的优点就是资源的高利用率。在P2P网络上,每个对等体可以发布自己的信息,也可以利用网络上其他对等体的信息资源,使闲散资源有初会得到利用。l 在 P 2 P网络中,每个对等体都是一个活动的参与者,每个对等点都向网络贡献自己所拥有的资源,各种负载可以得到合理的均移和平衡。对等点越多,网络的性能越好,网络随着规模的增大而越发稳固,使网络具有极强的可扩展性。l 信息在网络设备间直接流动,高速及时,降低中转服务成本。劣势:l 缺乏管理机制。缺乏管理的 P 2 P网络在为人们带来方便的同时,也可能会带来大量的垃圾信息。 l 安全性差。一个拥有众
7、多用户的 P 2 P网络可能会成为黑客的攻击对象,而且分散式结构的P2P网络有利于木马病毒等破坏性程序的传播,这将极大地威胁 P2P网络的安全。例:QQ网络结组合使用了C/S和P2P模式。 (数据服务器) (应用服务器)31 2 4 用户A用户B(1)用户注册、登录、状态、刷新。(TCP/UDP协议)(2)好友列表下载、其他信息。(TCP/UDP协议)(3)离线消息。(TCP/UDP协议)(4)消息、文件传送(UDP协议)2、即时通信的安全技术RFC2778定义的即时通信实体模型密文存储:PGP加密软件数据储存加密存取控制:不同工作组的用户赋予相应的权限数据加密技术 链路加密:数据传输加密节点
8、加密: 端到端加密: 包过滤路由器防火墙有类型应用级网关应用代理 防火墙技术包过滤路由器结 双宿主主机结构 防火墙的系统结构 屏蔽主机结构(包过滤路由器+屏蔽网关) 屏蔽了网结构三、QQ通信原理的概述我们经常听到TCP/IP和UDP(用户数据报协议)这两个术语,它们都是建立在更低层的IP协议上的两种通讯传输协议。前者是以数据流的形式,将传输数据经分割、打包后,通过两台机器之间建立起的虚电路,进行连续的、双向的、严格保证数据正确性的文件传输协议。而后者是以数据报的形式,对拆分后的数据的先后到达顺序不做要求的文件传输协议。QQ可以使用TCP也可以使用UDP,但QQ默认是使用UDP协议,因为UDP协
9、议消耗资源小,发送速度快。但当UDP协议不能正常转发的时候,就会采用TCP协议进行发送。而信息的可靠发送是通过各种验证机制来完成的。当你的机器安装了OICQ以后,实际上,你既是服务端(Server),又是客户端(Client)。当你登录OICQ时,你的OICQ作为Client连接到腾讯公司的主服务器上,当你“看谁在线”时,你的OICQ又一次作为Client从QQ Server上读取在线网友名单。当你和你的OICQ伙伴进行聊天时,如果你和对方的连接比较稳定,你和他的聊天内容都是以UDP的形式,在计算机之间传送。如果你和对方的连接不是很稳定,QQ服务器将为你们的聊天内容进行“中转”,并且接受方在收
10、到消息后返回一个回应信息,发送方就是通过这个信息来确认消息是否已经收到。QQ通信中的几个过程:1、登陆。 不管UDP还是TCP,最终登陆成功之后,QQ都会有一个TCP连接来保持在线状态。这个TCP连接的远程端口一般是80,采用UDP方式登陆的时候,端口是8000。因此,假如你所在的网络开放了80端口(80端口是最常用端口,就是通常访问Web的端口,禁掉它的话,你的网络对你来说价值已经不大了),但没有屏蔽腾讯的服务器IP,你还是可以登陆成功QQ的。2、聊天消息通信。 采用UDP协议,通过服务器中转方式。因此,现在的IP侦探在你仅仅跟对方发送聊天
11、消息的时候是无法获取到IP的。大家都知道,UDP 协议是不可靠协议,它只管发送,不管对方是否收到的,但它的传输很高效。但是,作为聊天软件,怎么可以采用这样的不可靠方式来传输消息呢?于是,腾讯采用了上层协议来保证可靠传输:如果客户端使用UDP协议发出消息后,服务器收到该包,需要使用UDP协议发回一个应答包。如此来保证消息可以无遗漏传输。之所以会发生在客户端明明看到“消息发送失败”但对方又收到了这个消息的情况,就是因为客户端发出的消息服务器已经收到并转发成功,但客户端由于网络原因没有收到服务器的应答包引起的。3、文件/自定义表情传送。大家都知道,QQ可以传送文件,可以发送自定义表情。先说官方表情。
12、官方表情实际发送的是命令字,而没有发送表情。客户端收到命令字后,会自动解释为对应的表情。因此,QQ2008正式版的客户端发出的新版表情,在2007beta4及以前的版本无法找到相对应的表情,就无法解释,看到的就会是空白信息,但查聊天记录就会有表情字样。自定义表情的传送是以文件传输方式进行的。下面说文件传输方式:A要向B发送一个文件,于是发出一个文件传送请求。服务器收到这个文件传送请求后,转发给B,同时在B应答后,将A的IP地址同时发送给B。B这个时候就得到了A的真实IP。这里的IP是本机IP。也就是说,如果A处在内网,B得到的地址就是一个内网地址。B得到了A的地址之后,就会尝试去连接A。如果B
13、也处于内网,那么,显然A跟B之间的连接是无法建立的。这个时候,客户端就会请求服务器进行文件中转。因为服务器具有公网 IP,处在内网的A跟B都是可以连接到服务器的,于是,A跟B的文件传送就通过服务器中转的方式,顺利进行。(注:服务器文件中转使用443端口)所以,如果一个局域网只开放80端口,QQ是可以登陆成功的,也可以进行聊天。但传送文件也是不可以的,除非你们都在同一个内网。如果局域网还同时开放443端口,QQ的功能才都可以正常使用。四、QQ2003高层协议的分析为了从网络测量数据中识别出QQ数据包,首先必须了解QQ协议和报文格式经研究发现,QQ协议分成以下几类:1、文字聊天协议族(TCPF,T
14、ext Chatting Protocol Family):支持QQ客户端间进行的文字聊天最开始使用的传输层协议只是UDP协议,后来也支持TCP协议。UDP数据包中的第一个字符Ox02为这个协议族的标识。服务器默认使用端口号8000,QQ客户端软件一般从4000号端口开始尝试使用。虽然近些年来QQ软件不断修改协议和实现,不断推出和整合了很多娱乐休闲的功能,QQ聊天仍然是QQ用户使用最多最频繁的功能。所以,本文所做的研究和工作主要围绕着QQ的文字聊天协议族。TCPF包可以分为类:登录请求包(LIP,LogIn Packet),它是由客户端向服务器发出登录请求的数据包。登录应答包(LRP,Logi
15、n Reply Packet),它是由服务器响应客户端登录请求的数据包。注销请求包(LOP,LogOut Packet),它是由客户端向服务器发出注销登录请求的数据包,服务器对这个包不作应答。客户端其它包(CSP,Client Sent Packet),它是由客户端向服务器发送的其它包。服务器其它包(SSP,Server Sent Packet),它是由服务器向客户端发送的其它包。TCPF包的基本格式为:包头数据包尾所有TCPF包的前7个字节是包头,包头可以识别TCPF包的内容。不同类型的包数据不同。包尾都是0x03结束。包头的分析:包头的基本格式为:TCPF包标识发送者标识命令编号命令序列号
16、第字节:TCPF包标识:0x02。第字节:发送者标识。如果是0x01 0x00,表明是由服务器发送。0x0A 0x1D表明是由客户端发送。第字节:命令编号。编号含义如下:编号命令编号命令0x0001注销登录0x0017收到消息(服务器发起)0x0002心跳信息0x001a未知作用0x0004更新用户信息0x001c在对方好友列表上删除自己0x0005搜索信息0x001d未知作用0x0006获取用户信息0x0022登陆0x0009不需认证方式添加好友0x0026获取好友清单0x000a删除好友0x0027获取在线好友0x000b需要认证的方式添加好友0x0030群操作指令0x000d设置隐身示忙
17、等状态0x0080收到系统消息(服务器发起)0x0012确认收到系统信息0x0081收到好友状态改变消息(服务器发起)0x0016发送信息第-6字节:命令序列号。客户端和服务器都有各自的当前发送序列号。每初始发出一个指令的时候,使用当前的序列号,然后把当前序列号加一,如果超过0xFFFF,就绕回。如果是响应对方发出的命令,则使用这个命令的序列号。我们可以通过序列号来判断发出的指令是否已经得到了应答,如果没有,可以重发。服务器对收到的命令的序列号顺序没有要求。服务器也不会一定按照发出的顺序给予应答。包尾的分析:所有的TCPF包都以0x03作为包尾。在包头和包尾中间的包数据则不同类型的包有所不同。
18、2、数据传输协议族(DTPF,Data Transfer Protocol Family):QQ客户端除了与TCPF服务器通信以外,还与其它服务器使用UDP或TCP进行通信,但使用与TCPF不同的端口号。这个通信过程传递的是QQ Show的图片数据、QQ广告等。(1)UDP主要用于在线业务的传输,UDP是面向非连接的传输层协议。其基本的报文格式:源端口目的端口长度校验和数据端口号表示发送进程和接收进程各占两个字节,TCP端口号与UDP端口号是相互独立的,但通常选择相同的端口号。UDP长度字段占两个字节,UDP首部和UDP数据的字节长度,该字段的最小值是8字节。UDP检验和占两个字节,覆盖UDP
19、首部和UDP数据,UDP的检验和是可选的,其基本计算方法与IP首部检验和计算方法相类似,但UDP数据报的长度可以为奇数字节。UDP数据报包含一个12字节长的伪首部,是为了计算检验和而设置的,伪首部包含IP首部一些字段,其目的是让UDP两次检查数据是否已经正确到达目的地(2)TCP主要运用在离线的情况下,发送离线文件等。其基本的报文格式:源端口号目的端口号序列号确认好偏移保留标志窗口校验和紧急指针选项填充数据源端口和目的端口字段各占2字节。端口是传输层与应用层的服务接口。传输层的复用和分用功能都要通过端口才能实现。 序号字段占4字节。TCP连接中传送的数据流中的每一个字节都编上一个序号。序号字段
20、的值则指的是本报文段所发送的数据的第一个字节的序号。 确认号字段占4字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。 数据偏移占4bit,它指出TCP报文段的数据起始处距离 CP报文段的起始处有多远。“数据偏移”的单位不是字节而是32bit字(4字节为计算单位)。 保留字段占6bit,保留为今后使用,但目前应置为0。 紧急比特URG当URG1时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。 确认比特ACK只有当ACK1时确认号字段才有效。当ACK0时,确认号无效。 复位比特RST(Reset) 当RST1时,表明TCP连接中出现严重差错
21、(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。 同步比特SYN同步比特SYN置为1,就表示这是一个连接请求或连接接受报文。 终止比特FIN(FINal)用来释放一个连接。当FIN1时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。 窗口字段占2字节。窗口字段用来控制对方发送的数据量,单位为字节。TCP连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口的上限。 检验和占2字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在TCP报文段的前面加上12字节的伪首部。 紧急指针字段占16bit。紧急指针指出在本报
22、文段中的紧急数据的最后一个字节的序号。 选项字段长度可变。TCP首部可以有多达40字节的可选信息,用于把附加信息传递给终点,或用来对齐其它选项。 填充字段这是为了使整个首部长度是4字节的整数倍。 3、语音、视频聊天协议:QQ直播、QQ语音聊天采用目前流行的P2P技术。五、QQ数据包的分析通过Sniffer,wireshark,WinNetCap,WinSock Expert等抓包工具,可以抓取相关的数据包进行分析。抓包可以看到它们在不同的层次。Internet从上到下一次是物理层、数据链路层、网络层、传输层、应用层。而QQ是用的应用层协议是腾讯公司的私有协议OICQ。以下对一次抓取的数据包进行
23、分析:网卡地址段为:0000 00 23 54 51 72 28 00 b0 2c 2c 97 d4 08 00其中,开始的六个字节00 23 54 51 72 28为本机(对方服务器)网络适配器的物理地址,00 b0 2c 2c 97 d4这六个字节为对方服务器(本机)网络适配器的物理地址。后面的08表示该数据传输协议将用TCP/IP协议传输;00表示下面将用TCP/IP协议中的IP协议传输。IP协议字段如下:如图:45 00到00 17之间的代码代表了IP首部的内容。45代表此IP协议的版本是4.0版本,IP首部长度为5*4,即20个字节。00是服务类型,具有优先级参数、延时性参数、传输量
24、参数、可靠性参数、成本参数,这里为平常的等级,即没有设等级。00 6b转换成十进制是107,表示此数据包的所有数据为107个 字节。00 00代表IP协议的验证身份,即IP数据包格式中的“标识“项。40 00为标志项和片偏移项,代表不允许分片,这是第一个也是最后一个分片。36代表生存时间,转换为十进制为54。11为协议项,表示此IP数据段完成以后,将由UDP协议来代替,由此可以得知,OICQ消息传播是通过UDP协议来实现的。0d ff为首部校验和,用来校验数据包首部的正确性。3a fb 3a c9代表源地址(此处为服务器地址),c0 a8 00 17代表目的地址(此处为本机地址),说明这是一个
25、返回数据包。至此,IP头部的分析完成。抓包的另一部分信息如下:IP协议字段后为UDP协议字段:1f 40(十进制为8000)代表腾讯的OICQ主机是通过哪个端口发送(接受)消息,0f a0(十进制为4000)代表本机是通过哪个端口接受(发送)消息的。00 57表示此UDP数据段的总长度为87个字节。50 05为校验和。UDP协议字段之后的为OICQ协议字段,此处为TCPF协议字段:为分析这个字段,可参照前面所诉的QQ高层协议。通过以上介绍,我们可以对TCPF协议字段作出以下分析:02为TCPF协议簇在UDP数据包中的标识。19 57为与客户端版本相关的字段,代表某一QQ版本。00 81为命令编
26、号,与后面的发送者请求号码结合起来,可以看出这是一个CSP(客户端其他包)。75 69为命令序列号,转换为十进制为30057。33 ed 13 30为发送者QQ号码,这是一个Big Endian(高位在前)的unsigned long型数值,即0x33ed1330转换为十进制为871174960。最后的03为包尾结束字节。33 ed 13 30与03之间的为加密的数据段,使用Session Key作为密钥。六、参考文献与相应网站参考文献:申普兵.宽带通信网络.人民邮电出版社任唯贤.即时消息用户行为和网络特征的分析.北京交通大学硕士论文参考网站:三、QQ文字聊天协议1、TCPF概述:TCPF是建
27、立在UDP协议上的协议族,主要支持文字聊天功能。TCPF是以请求响应模式工作的。也就是说,客户端发出一个请求,服务器端会给出一个相应的响应;服务器向客户端发送信息,客户端也会给服务器相应的响应。请求和响应通过相同的序列号来进行配对(请求代码也应该相同)。而且每种请求的发起方都是相同的。2、TCPE包结构TCPF包我们把它分为类:1)、登录请求包(LIP,LogIn Packet),它是由客户端向服务器发出登录请求的数据包。2)、登录应答包(LRP,Login Reply Packet),它是由服务器响应客户端登录请求的数据包。3)、注销请求包(LOP,LogOut Packet),它是由客户端向服务器发出注销登录请求的数据包,服务器对这个包不作应答。4)、客户端其它包(CSP,Client Sent Packet),它是由客户端向服务器发送的其它包。5)、服务器其它包(SSP,Server Sent Pa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度绿色建筑装修施工合同规范
- 二零二五年度人才引进合同:智慧农业合作框架
- 2025年度大型商业综合体燃气供应服务合同
- 二零二五年度洗浴中心消防安全检查与整改合同
- 二零二五年度物流运输风险评估合同
- 2025年度美容院连锁经营模式创新与合作转让合同
- 2025年度股东合同解除与公司财务审计及披露合同
- 二零二五年学校食堂厨师聘任管理合同
- 2025年度贷款居间服务合同违约责任协议
- 2025年度商业空间装修质保管理合同模板
- 2024年青海省西宁市选调生考试(公共基础知识)综合能力题库汇编
- 2024年湖南高速铁路职业技术学院单招职业技能测试题库及答案解析
- 广州绿色金融发展现状及对策的研究
- 《近现代史》义和团运动
- 时间的重要性英文版
- 2024老旧小区停车设施改造案例
- 灰坝施工组织设计
- 韩国《寄生虫》电影鉴赏解读
- 三对三篮球赛记录表
- 矿山电工知识点讲解
- 物业公司服务质量检查流程
评论
0/150
提交评论