即时通信工具通信原理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
即时通信工具
1. 什么是即时通信
即时通信是基于网络的一种新兴应用,它最基本的特征就是信息的即时传递和用户的交互性,并可将音、视频通信、文件传输及网络聊天等业务集成为一体,为人们开辟了一种新型的沟通途径。简单地讲,即时通信是一种使人们能在网络上方便快捷识别在线用户并与他们实时交换信息的技术,并逐渐成为继电子邮件之后最受欢迎的在线通讯和交流方式。与传统通信方式相比,即时通信具备快捷、廉价、隐秘性高的特点,在网络中可以跨年龄、身份、行业、地域的限制,达到人与人、人与信息之间的零距离交流。
2. 即时通信的原理
即时通信是一种基于网络的通信技术, 涉及到IP/TCP/UDP/Sockets、P2P、C/S、多媒体音视频编解码/传送、Web Service等多种技术手段。无论即时通信系统的功能如何复杂,它们大都基于相同的技术原理,主要包括客户/服务器(C/S)通信模式和对等通信(P2P)模式。
C/S结构以数据库服务为核心将连接在网络中的多个计算机形成一个有机的整体,客户机(Client)和服务器(Server)分别完成不同的功能。但在客户/服务器结构中,多个客户机并行操作,存在更新丢失和多用户控制问题。因此,在设计时要充分考虑信息处理的复杂程度来选择合适的结构。实际应用中,可以采用三层C/S结构,三层C/S结构与中间件模型非常相似,由基于工作站的客户层、基于服务器的中间层和基于主机的数据层组成。在三层结构中,客户不产生数据库查询命令,它访问服务器上的中间层,由中间层产生数据库查询命令。三层
C/S结构便于工作部署,客户层主要处理交互界面,中间层表达事务逻辑,数据层负责管理数据源和可选的源数据转换。
P2P模式是非中心结构的对等通信模式,每一个客户(Peer)都是平等的参与
者,承担服务使用者和服务提供者两个角色。客户之间进行直接通信,可充分利用网络带宽,减少网络的拥塞状况,使资源的利用率大大提高。同时由于没有中央节点的集中控制,系统的伸缩性较强,也能避免单点故障,提高系统的容错性能。但由于P2P网络的分散性、自治性、动态性等特点,造成了某些情况下客户的访问结果是不可预见的。例如,一个请求可能得不到任何应答消息的反馈。
当前使用的IM系统大都组合使用了C/S和P2P模式。在登录IM进行身份认证阶段是工作在C/S方式,随后如果客户端之间可以直接通信则使用P2P方式工作,否则以C/S方式通过IM服务器通信,如下图所示:
3. 常用的即时通信工具
随着移动互联网的发展,互联网即时通信也在向移动化扩张。目前,微软、AOL、Yahoo、UcSTAR等重要即时通信提供商都提供通过手机接入互联网即时通信的业务,用户可以通过手机与其他已经安装了相应客户端软件的手机或电脑收发消息。
现在国内的即时通信工具按照使用对象分为两类:一类是个人IM,如:腾讯QQ,腾讯微信、百度hi、移动飞信等。通过个人IM文字消息、音视频通话、文件传输等功能,您可通过它找到志同道合的朋友,并随时与好友联络感情;另一类是企业用IM,简称EIM,如:RTX、EC企业即时通信软件,UcSTAR、商务通等。
4. 各类即时通信软件的实现过程
按照即时通信的功能分类,可以将现在国内的流行即时通信工具分为3类,第1类是腾讯QQ、移动飞信、微软MSN之类,第2类是彩信MMS,以及第3类是最近特别流行的腾讯微信、米聊。
按照功能分类,下面详解一下其实现的过程:
4.1 第1类:腾讯QQ、中国移动飞信
A. 腾讯QQ
QQ是腾讯公司的一款即时通信软件,从1999年开始应用至今,通过网络,实现文字、语音、视频等通信方式,深受广大民众喜爱。这里列举的是QQ2007beta4 版本的通信原理,相信之后的版本暂时也不会有太大改动。
➢登陆
不管UDP还是TCP,最终登陆成功之后,QQ都会有一个TCP连接来保持在线状态。这个TCP连接的远程端口一般是80,采用UDP方式登陆的时候,端口是8000 。因此,假如你所在的网络开放了80端口,但没有屏蔽腾讯的服务器IP,恭喜你,你是可以登陆成功QQ 的。
➢聊天消息通信
采用UDP 协议,通过服务器中转方式。因此,现在的IP侦探在你仅仅跟对方发送聊天消息的时候是无法获取到IP的。UDP协议是不可靠协议,它只管
发送,不管对方是否收到的,但它的传输很高效。但是,作为聊天软件,怎么可以采用这样的不可靠方式来传输消息呢?于是,腾讯公司采用了上层协议来保证可靠传输:如果客户端使用UDP协议发出消息后,服务器收到该包,需要使用UDP协议发回一个应答包。如此来保证消息可以无遗漏传输。之所以会发生在客户端明明看到“消息发送失败”但对方又收到了这个消息的情况,就是因为客户端发出的消息服务器已经收到并转发成功,但客户端由于网络原因没有收到服务器的应答包引起的。
➢文件/ 自定义表情传送
QQ 可以传送文件,可以发送自定义表情。先说官方表情,官方表情实际发送的是命令字,而没有发送表情。客户端收到命令字后,会自动解释为对应的表情。自定义表情的传送是以文件传输方式进行的。下面说文件传输方式:A 要向B 发送一个文件,于是发出一个文件传送请求。服务器收到这个文件传送请求后,转发给B ,同时在 B 应答后,将 A 的IP 地址同时发送给B。B这个时候就得到了A的真实IP,这里的IP是你的本机IP。也就是说,如果 A 处在内网,B得到的地址就是一个内网地址。B得到了 A 的地址之后,就会尝试去连接A。如果B也处于内网,那么,显然A跟B之间的连接是无法建立的。这个时候,客户端就会请求服务器进行文件中转。因为服务器具有公网IP,处在内网的A跟B都是可以连接到服务器的,于是,A跟B的文件传送就通过服务器中转的方式,顺利进行。
B. 中国移动飞信
飞信是中国移动的综合通信服务,即融合语音(IVR)、GPRS、短信等多种通信方式,覆盖三种不同形态(完全实时的语音服务、准实时的文字和小数据量通信服务、非实时的通信服务)的客户通信需求,实现互联网和移动网间的无缝通信服务。
中国移动飞信的功能:
➢免费文字聊天、移动速配。PC对PC语音视频聊天免费,PC对手机语音视频聊天双向收费,手机对手机语音视频聊天也是双向收费。
➢通过电脑或手机的飞信客户端免费发送短信到你好友的手机上
➢使用手机语聊功能,随时随地组织或者参与两人或多至8人的语音聊天