前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇即时通信范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。
1即时通信系统分析
即时通信即可以实现即时发送与接受互联网信息的业务,现在所用即时通信系统具有电子邮件、音乐、博客、电视以及搜索等功能[1]。在计算机通信技术不断发展的背景下,即时通信系统以及发展成集交流、搜索、咨询、娱乐、电子商务以及办公写作等客户为一体的综合化信息平台,如现在常用的腾讯、微软、Yahoo等通信供应商,均可以提供利用手机等终端接入互联网的即时通信业务,这样用户就可以利用手机终端,以及安装响应客户端软件手机或电脑来收发消息。以企业级用户来说,即时通信系统在应用时为公开状态,即用户只需要知道另一个用户即时通信地址,就可以完成信息的传输,并不利于管理工作的展开。并且即时通信系统需要在两台终端之间进行信息交流,并不需要任何第三方服务器中转,同时也增大了用户信息交换的监控难度,是企业级用户需要重点研究解决的问题。
2即时通信系统通信方式分析
即时通信系统常用通信方式有两种,即点对点直接传送模式(P2P模式)与客户机/服务器传送模式(C/S模式)。如果在设计时选择用C/S模式,则终端传输的数据通过服务器来进行监听,在即时通信客户端启动后,会采取主动的方式与服务器监听端口连接,然后由服务器派生新工作线程对一个客户端所有网络请求进行处理与回应。在两台终端请求通信时,就可以通过已经与服务器建立起的连接,由服务器作为中转部分,将发送方的网络数据包传输给接受方。其中,服务器一般会设置在公网内,具有独立的IP地址,这样就决定了无论即时通信终端是否在内网内均可以与其相互连接,这样与服务器通信以及与其他终端通信均可以利用已经建立的连接来完成。
如果在设计时选择用P2P传送模式,与C/S模式不同,其可以直接实现不同终端之间信息的传输,取消了服务器的中转作用,可以有效降低服务器的负载问题。另外,如果即时通信双方终端有任何一方在内网中,通信的过程就会受防火墙的保护,以及NAT的控制,经常会因为发送方传输的网络数据包无法找到对方地质而发送失败,存在NAT穿越问题,是系统设计需要解决完善的问题。
3基于XMPP即时通信系统设计措施
3.1系统结构
以企业级用户为服务对象,在对即时通信系统进行设计时,需要基于实际工作对基础功能的需求,即内部实施信息交互、企业短信中心、语音视频交流以及自动存档等,确保设计后具有较高的实用性、管理性与便利性。一般系统结构中会设置多组服务器,核心为企业数据库服务器与组群服务器,另外还有多组会话服务器、认证服务器以及多组文件服务器等。其中,群组服务器通过TCP连接实现与即时通信终端的衔接,实现文件传输功能,并数据库利用UDP连接来完成所有数据的存储。同时,通过应用服务器,能够实现EIM的所有功能,如内外部信息交流,并对信息进行备份[2]。一般企业内部均会有自己EIM服务器,并通过交换机、路由器、防火墙等与外网安全连接,满足移动用户应用需求。设计时需要设置XMPP客户端与XMPP服务器,实现内部以及私有即时通信;XMPP服务器与XMPP服务器,实现与不在同一服务器其他企业的即时通信;XMPP服务器与其他非XMPP系统,可以实现与QQ、MSN服务网络的通信。
3.2流程控制
XMPP服务器利用5222端口上TCP套接字连接,与终端用户进行即时通信。如果不存在用户会话进程,则需要初始化一个用户登录认证过程;如果存在用户对话,则消息被直接发送到XMPP会话管理组件。会话管理组件将在服务器配置文件中来寻找目的服务器的域名,一般情况服务器配置文件中会对域名解析内容进行记录,这样寻找过程比较简单。对于部分不存在记录的情况,DNS解析组件则将域名解析为IP地址与端口,最后将网络信息包传输到服务器对服务器组件,被顺利发送到目的服务器或者Transport。
3.3服务器端
遵循简单易懂以及易扩展的原则进行设计,以核心协议为依据,通过设计来实现接受并管理客户连接、解析XML数据流以及处理XML数据流等基础功能[3]。主要包括会话池、XML解析器、数据段队列、数据段处理器、Messaging模块、GroupChat模块、Roster模块、Presence模块以及Public IM Gateways等,不同模块所负责的内容不同。如会话池主要负责管理客户机与服务之间对话内容,包括连接地址信息、管理连接等;数据段队列主要存储与取出XML数据段;数据段处理器主要对流入数据段进项处理,包括目标寻址、信息传递以及回应信息生成;Presence模块主要责任处理用户在线信息。
即时通信安全状况令人担忧,瑞星&searchtype=1‘ target=_blank>瑞星、金山、江民等国内著名安全软件厂商也时刻关注即时通信的安全状况,在其官方网站上都会发出病毒警报并提出相应解决办法。针对即时通信安全防护的产品更是名目繁多。
瑞星这几年一直致力于防黑技术、网络游戏防盗技术、即时通信安全保护技术等。年初,瑞星公司和即时通信软件提供商腾讯公司宣布达成战略合作伙伴关系,双方将展开多项深度技术合作,致力于为用户提供一个更加安全的网上交流环境的基础,同时进行多种商务合作。瑞星公司市场部郝婷在接受记者采访时表示,即时通信安全防御一直是瑞星在产品研发和业务推广中重要的组成部分,为QQ、MSN等聊天工具防御病毒推出的几款新产品如瑞星QQ病毒专杀工具V3.4,其市场反应都很好。瑞星还为用户提供了免费的“在线查毒”和收费的“在线杀毒”服务。这符合了瑞星一直强调的“整体防御、立体防毒”的初衷。
江民不久前推出的首款系统级杀毒软件KV2005新增“即时通信监视”功能,可以实时过滤从MSN、QQ等所有即时通信发送的文件病毒,可确保用户实现无毒聊天。
针对“QQ尾巴”、“QQ木马”等病毒,金山公司也推出了金山QQ病毒专杀工具。为了给广大用户提供方便,金山公司整理十大最热门病毒专杀工具:JPEG恶意代码图片病毒、网银大盗、震荡波、冲击波、QQ病毒等专杀工具及工具说明,用户可打包下载。
另外,赛门铁克为有效防止黑客和病毒通过IM工具对用户电脑进行攻击,推出了硬件防火墙VelociRaptor即是这种集成的防病毒/防火墙解决方案。国内共享软件作者喃哥开发的一款专门查杀腾讯QQ自动发消息病毒、木马及反黄的软件——QQ病毒专杀工具XP 钻石版 Build 1012QQKav。
纵观国内即时通信安全市场,各种防毒、杀毒软件名目繁多,令人眼花缭乱。那么即时通信安全状况是否就能令人安枕无忧了呢?
从近年即时通信的安全状况来看,虽然安全软件厂商的技术和产品对即时通信安全防护起到了一定的作用,但有时候这些产品和技术对新病毒和一些黑客的袭击还是束手无策。各种病毒花样不断翻新,黑客恶意攻击更是到了有恃无恐的地步。由于安全软件防护无力致使用户遭受了很大的损失。同时,一些厂商并非专门针对即时通信的安全防护开发产品和研发新技术,只是为了市场的需要而在产品中贴上一个标签而已,其产品并无实质的防御作用。另外,安全软件和防黑技术更新慢,往往是出现了一种新的病毒厂商才去着手开发新的产品。而如果技术含量不够高的产品只能使防护工作永远处于被动的地位。所以,安全软件厂商在开发新产品和研发新技术时应该具有前瞻性。
随着网络技术的发展,即时通信的安全防护更加严峻。谁将为即时通信的安全保驾护航?这需要即时通信服务商、安全软件厂商和用户共同努力。
首先,对于即时通信服务商来说,最重要的是提高即时通信软件的安全性能,减少由于产品自身的设计缺陷而造成的安全隐患。即时通信软件在技术手段没有质的飞跃的情况下,版本升级是一个必要的手段,特别是对企业用户来说更加重要,即时通信服务商需要为企业搭建更为独立、安全的系统平台,使内网和外网之间的信息交换能得到更好的监控。
其次,通过安全软件提高防护能力也是一个很重要的环节。对于即时通信软件,传统的防火墙、反病毒软件、内容过滤软件等在保障网络安全方面的作用仍不可忽视。所以,厂商应该在产品和技术上加大研发力度。
垃圾信息带来最大困扰
艾瑞的2008年度《中国个人即时通信网络安全研究报告》显示,在当前的Messenger的使用过程中,用户受到垃圾信息和恶意网站的骚扰,用户担心个人隐私泄露,这些已经成为新的安全保障的热点。同时,根据微软MSN在线举报骚扰网站(/report/)的调查,有近80%的用户曾受到过恶意网站的骚扰,有近60%的用户从未修改过自己的Messenger账户密码,还有接近50%的用户曾在第三方网站输入过自己的Messenger用户名和密码。
艾瑞咨询还在2008年11~12月在84家网站对2008年IM用户经常遇到的安全问题进行了一次联机调研,结果显示:收到垃圾消息的用户占76.4%,账号被盗或丢失的用户占50.4%,收到过病毒文件的用户占44.7%,个人隐私遭到泄露的用户占30.4%。
这一系列数据已经显示出IM的安全形势依然严峻。对此,微软MSN产品总监陈嘉榕表示,MSN人际网络已经成为“非法获利者”的香饽饽,一些社交网站通过获取用户的MSN好友关系推广其网站。
Messenger保护盾产品经理程明卿提醒说,用户一定要养成良好的使用习惯,还要提高网络安全的忧患意识,千万不要轻易地把自己的账号和密码交给第三方一个并不值得信任的小网站或者小软件。如果一旦提交过去,对方会将好友列表导出,进行群发信息和骚扰。
联手排除恶意病毒
当前,恶意程序研发“工艺”日新月异且已然产业化。对IM产业而言,安全的含量将成为主导业内生存格局发展的因素。
为了维护个人用户使用IM工具的安全环境,国内主流IM运营商积极构建安全体系,加强安全领域的沟通合作,并得到了网民的认可。继2008年10月份推出MSN保护盾1.0后,微软如今正式推出了Messenger保护盾2.0版本,增强加密聊天、多账户登录、屏蔽骚扰网站链接等功能。
微软MSN 副总裁刘振宇说,近年来病毒的发展趋势主要是通过Internet传播的网络蠕虫。IM自身具备完善的联系人列表,为蠕虫病毒传播提供了很好的传染目标获取机制。截至今年8月,超过800万用户安装了保护盾1.0,每天扫描文件12万个,平均每天查杀162个病毒。
据悉,保护盾2.0版本还提供了便捷的修改Messenger账户密码和举报恶意网站的功能,并进一步强化了Messenger传输文件病毒扫描和系统文件病毒扫描的安全保障功能。
【关键词】:网络;即时通信;原理;实现
中图分类号:F250 文献标识码: A
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、网络即时通信概要设计
3.1,拓扑结构
TCP和UDP是TCP/IP协议的两个主要传输协议,TCP是面向连接的,UDP是面向无连接的,而实际上他们最大的区别在于为应用协议提供不同的服务,TCP协议为应用程序提供点到点的通信。
UDP为应用程序提供多对多的通信,UDP在进行通讯的应用的数量上面,具有更大的灵活性,多个应用可以向一个接收方发送报文,一个发送方向也可以向多个接收方发送报文。UDP还可以使用底层网络的广播和组播设施交付报文。
由于TCP和UDP得语义不同,如果要考虑应用协议所要求的语义,设计者就不能不再面向连接和无连接的传输协议间作出选择,利用面向连接的TCP协议,可以大大简化应用协议的设计工作。由于UDP不提供可靠的交付,无连接传输要求应用协议提供可靠性,并在必要时,使用一种称为自适应重传的复杂技术。
3.2,功能设计
用户注册模块:用户需要正确填写自己的用户名、密码、真实姓名、性别、个性签名等信息,如果用户名合法且未被占用,则可以注册成功。
用户登录模块:用户需要正确填写自己的用户名、密码,如果验证成功,则可以进入到JQQ即时通讯系统主面板,与在线好友进行即时通信。
分组管理模块:包括对分组的添加与删除,添加分组过程中,分组不能为空并且不能有重复的分组,删除分组过程中,只要选定要删除的分组,即可删除成功。
好友管理模块:包括好友的添加与删除,添加好友过程中,好友不能为空,不能加自己为好友,要添加的好友必须存在并且不能有重复的好友。删除好友的过程中,只要选定所属分组下的相应好友,即可删除成功。
查询用户模块:列出了除了自己的所有用户的基本相信包括是否在线,用户可以根据需要加为好友并进行通讯,对于在线状态的好友可以进行在线交流。
即时通信模块:其是本系统最关键的环节与目的所在,用户可以选择分组中的在线好友进行即时通信,并且当交流完毕时自动保存聊天记录。
聊天记录模块:主要记录了与相应好友的所有聊天记录,可以方便的浏览一些重要信息和谈论话题等。
3.3,即时通信系统关系型数据库的实现
Microsoft SQL Server 2008是一个高性能的客户端/服务器结构的关系数据库管理系统,SQL Server是为支持高容量的事务处理以及数据仓库和决策支持系统而设计的,它运行在Microsoft Windows NT4或Microsoft Windows 2000 Server上,基于使用Intel处理器的网络,也能够为其他的Microsoft操作系统提供很多客户端工具和网络接口。由于SQL Server的开放结构,其他系统也能和它交互操作。使用它可以完成事务处理、存储和分析数据以及创建新的应用程序。
4、结尾
本文以上内容对网络即时通信的原理和实现进行了分析和探讨,表达了观点和见解,本人相信,随着计算机技术的发展,网络即时通信必将以更加先进的形式出现,而作为软件从业人员,也只有不断学习和实践,才能为软件工程发展做出更大的贡献。
【参考文献】
[1]《面向对象的JAVA网络编程》冯博等,清华大学出版社
关键词:即时通讯; socket;TCP协议
一工具的选择:VB .NET 是一个多语言的应用程序开发执行环境,也是Visual 中最关键的核心技术。它主要负责处理Web应用程序在开发过程中关键繁杂的工作,提供了一个自动进行管理应用程序的环境,提高了应用程序的可靠性和安全性。它使用起来简单快捷,并且易于开发、运行和维护,支持Web各种版本标准。具备面向对象的新特性,并且在很大程度上满足了程序员的需求。同样也具有类和名字空间、继承、重载,它的类也具有构造函数和析构函数。此外还有多线程的实现方法。在之前,使用者想实现多线程功能必须要采用Win32 API进行调用,但是这种方法不是很方便,容易出现各种不可预知的错误。在中,.包含了System. Threading名字空间,它们专门负责实现多线程的功能,而且操作起来相当简单;
二协议的选择与应用:在实现客户机和服务器之间的通信有采用TCP协议和采用UDP协议两大种方式。
当客户和服务器使用UDP协议的时候,因为UDP协议的下一个端口能对应多个连接,因此只要知道另一方的IP地址和端口号,并且对发的Winsock控件处在UDP协议的工作状态,就可以直接将数据发送过去。
这种方法存在明显缺点:无连接过程。也就没有办法进行用户的身份验证。也没有统一对应的服务器,因此管理起来比较困难,功能上也会收到许多限制。UDP协议自身没有办法克服的这些弱点。它不能保证数据的正确传输。
第二种方法是两端都使用TCP协议,服务器端采用一个长期处在侦听状态的Winsock控件和一组负责用来连接客户的Winsock控件数组。负责侦听的Winsock的端口号必须是固定的,而连接客户的Winsock的端口号需要设为0。这样操作系统就会自动去分配空闲的端口号给要进行连接客户的Winsock。但也存在缺陷,就是端口的分配不能人为控制,是由系统来指定。为了解决掉这个问题,实现人工指定服务器端使用的端口范围。就采用服务器端按顺序分配端口给连接客户的Winsock。这些端口采用按顺序分配的,从1024数字开始分配。当用户状态是离线时,程序回收掉这些端口号,以转给另一个连接的客户的Winsock。通过对比选择使用TCP协议来进行通信。
三功能要求:
服务器端可以接收无数个客户申请的连接。客户发出连接请求后,对客户信息进行相应的验证,通过验证的客户信息加入服务器的列表。服务器端就记录了客户端的IP、上站的时间、下站的时间以及聊天记录的信息;另外服务器还可以向所有客户发送相应信息,也可以把信息发送给某个制定的客户。客户端存有在线用户的信息列表,可以发送数据信息给所有用户或者过滤性的只发送给某个指定的客户。
四调试方法:经过需求分析、系统设计和编码等不同阶段的开发之后,就得到了软件的源程序,开始进入测试的环节。由于测试前的各环节中都可能存在软件产品中遗留下的多种错误和缺陷,如果不能及时找出这些错误和缺陷,对它们进行修改,这个软件产品就不能够正常的发挥作用,甚至会出现巨大的损失。程序的正确性证明还未得到根本性的解决,所以软件测试是发现软件中多种错误和缺陷的主要手段。测试工作漫长而艰苦,由于软件测试的复杂性强,数据多;这里只采用运行程序观察结果,并利用数据函数来跟踪程序的运行,判断对错。
五执行与控制:程序的执行控制提供了关于调试器命令相关的主题的链接,可以使用调试器的指令来控制应用程序的执行。通过这些命令能够实现下列操作:开始执行、中断执行、停止执行、逐句执行等应用程序、运行到指定的位置以及预先设置执行点。1开始执行在“调试”菜单中选择“启动”、“逐语句”或“逐过程”命令或者在源代码窗口右击并在快捷菜单中选择“运行到光标处”命令,就可以开始调试。如果选择的是“启动”,则应用程序从开始启动并一直运行到端点。这种方式可以在任何时刻中断执行,以检查值、修改变量、或检查程序状态。如果选择的是“逐语句”或“逐过程”,则应用程序从开始启动并一直运行到端点或光标位置,具体决定于是端点在前还是光标在前。我们可以在源代码窗口中设置光标位置。2设置执行在调试器中,可以通过移动执行点以及设置要执行的下一代码语句(或汇编语言指令)源代码窗口或“反汇编”窗口中空白区域的黄色箭头标记是执行点的当前位置。通过移动执行点可以跳过部分代码或返回到以前执行过的行,该功能在某些情况中很有用,例如,跳过包含已知错误的代码部分并继续调试其他部分。
结束语:使用VB工具可以开发出方便快捷的即时通信软件,可用性强,在总体设计的模式上可以参考MSN等通信软件的功能模型。系统具有一定的灵活性,有自身的特点和友好的工作界面。实现了开发目的。
参考文献:
[1] 戴建明.面向连接的SOCKET编程与通信软件的设计[J].成都气象学院学报,11(4):291-300.
[2] 蒋东兴.Windows Sockets网络程序设计大全[M].北京:清华大学出版社,1999:52-99.
[3] 程永喜,蒋珉.基于TCP/IP协议的WinSock网络编程及应用[J].计算机时代,2004,21(8).40-45
[4]唐永红龚安;运用Winsock控件实现C/S网络通信[J];计算机系统应用2006年04期