




已阅读5页,还剩65页未读, 继续免费阅读
(计算机应用技术专业论文)基于winsock的企业即时通信系统研究及其实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 随着网络通信技术和计算机技术的进一步发展,即时通信( i n s t a n t m e s s a g i n g ) 正在成为网络在线活动中不可缺少的业务,对它的研究是互联网应 用中一个热点课题。企业版即时通信软件的诞生,推动了企业工作效率的提高, 降低了办公费用,给企业的管理带来了新的思路和方法,并引起了人们对该应 用领域的关注。 本课题在现有的网络通信技术、数据库技术和信息安全技术的基础上设计 并实现了新型的企业即时通信系统( e i m ,e n t e r p r i s ei n s t a n tm e s s a g i n g ) 。该系 统为用户提供了一个集文字通信、在线信息、文件传输于一体的即时通信平台, 基本满足了企业用户的要求。 首先,笔者研究了当今流行的各种即时通信软件,对其进行分析,确定了 企业即时通信系统的功能,提出了不同的即时通信架构。为适应企业的应用, 对即时通信系统中采用的关键技术进行了改进,设计了一个整合p 2 p ( p e e r t o p e e r ,对等连接或对等网络) 和c s ( c l i e n t s e r v e r ,客户服务器) 模式、支持 多协议转换通信协议和实名制身份认证的即时通信系统。同时为了提高了系统 的通信安全性,将对称加密和非对称加密相结合,采用r s a ( r i v e s t s h a m i r - a d l i m a n ,r s a 算法的三位提出者) 算法加密d e s ( d a t a e n c r y p t i o ns t a n d a r d ,数据加密标准) 算法的密钥,d e s 算法加密通信信息的加 密方法进行加密。 然后,论文对即时通信系统的服务器端和客户端的主要组成模块进行了详 细的剖析,论述了各个模块详细的设计和实现方式,分别阐述了每个模块的主 要功能,并给出了模块流程图。 最后,论文对所设计的即时通信系统服务器端进行了性能测试,并对测试 数据进行了分析。实验数据表明,该系统具有易于实现、可靠性高、易于扩展、 传输效率高等特点,达到了预定的设计目标。 关键词 即时通信,w i n s o c k ,通信模型, 文件传输 a b s t r a c t w i t ht h ef u r t h e r d e v e l o p m e n t o fn e t w o r kc o m m u n i c a t i o n t e c h n o l o g ya n dc o m p u t e rt e c h n o l o g y , i n s t a n tm e s s a g i n gh a s b e e na r e q u i r e m e n to fo n l i n e a c t i v i t i e s t h i si n s t a n tm e s s a g i n gs y s t e mi s h i g h l i g h t e di nt h ef i e l do fi n t e r n e ta p p l i c a t i o nr e s e a r c h ,e s p e c i a l l yt h e i n s t a n tm e s s a g i n gs y s t e mo fe n t e r p r i s ec u s t o m e r t h ed e v e l o p m e n to f t h ei n s t a n tm e s s a g i n gs o f t w a r eo ft h ee n t e r p r i s ev e r s i o nh a sb r o u g h tt h e n e wt h o u g h t sa n dm e a n st om a n a g e m e n to fe n t e r p r i s e s f o ri th a v eb e e n i m p r o v i n gt h ee n t e r p r i s e sw o r k i n ge f f i c i e n c y , a n dr e d u c i n gt h eo f f i c i a l b o s s i n e s sc o s t ,t h a th a sc a u s e dt h er e s e a r c hu p s u r g eo ft h ep r o je c t a p p l i c a t i o n t h i sp r o j e c td e s i g na n di m p l e m e n t a t i o nt h en e we n t e r p r i s e i n s t a n t m e s s a g i n gb a s e do nt h et o p i co ft h ee x i s t i n gn e t w o r kc o m m u n i c a t i o n t e c h n o l o g y , d a t a b a s et e c h n o l o g ya n di n f o r m a t i o ns e c u r i t yt e c h n o l o g y 。 t h i ss y s t e mh a so f f e r e da ni n s t a n tm e s s a g i n gp l a t f o r mi n c o r p o r a t i n g c h a r a c t e r sc o m m u n i c a t i o n ,o n l i n ei n f o r m a t i o n ,f i l et r a n s f e r ,h a v em e t e n t e r p r i s eu s e r s r e q u e s tb a s i c a l l y f i r s t l y , is t u d i e dv a r i o u s k i n d so fp o p u l a ri n s t a n tm e s s a g i n gs o f t w a r e s ,a n a l y z e dt h e m ,a n d t h e nc o n f i r m e dt h a tt h ef u n c t i o no fe i m s y s t e m ,a n dp u tf o r w a r dt h ef r a m e w o r ko ft h es y s t e md i f f e r e n tf r o mt h e c o m m o ni n s t a n t m e s s a g i n gs y s t e m t h e n i i m p r o v es o m ek e y t e c h n o l o g yi nc o m m u n i c a t i o ns y s t e ma n dd e s i g nan e we l ms y s t e m w h i c hi n t e g r a t e sp 2 pm o d e la n dc sm o d e l i ti sac o m p a t i b l e m u l p r o t o c o la n dr e a l n a m ei n s t a n ts y s t e m f o ri m p r o v i n gs e c u r i t yo f t h e t r a n s p o r t ,a na l g o r i t h mt h a t c o m b i n e ss y m m e t r i ce n c r y p t i o nw i t h d i s s y m m e t r i ce n c r y p t i o ni sd e s i g n e dt or e s o l v et h ep r o b l e m w ee n c r y p t t h ek e yo fd e sa l g o r i t h mw i t ht h er s aa l g o r i t h ma n dt h eg e n e r a l i n f o r m a t i o nw i t ht h ed e sa l g o r i t h m s e c o n d l y ,t h ei m p o r t a n tm o d u l e so fc l i e n ta n ds e r v e ro fi n s t a n t m e s s a g i n gs y s t e m i s p r e s e n t e d i nd e t a i l ,s u c ha st h ed e s i g n , i m p l e m e n t a t i o na n df u n c t i o no fe a c hm o d u l e ,a n df l o wc h a r t o fe a c h m o d u l ej ss h o w e d f i n a l l y , t h et e s t r e s u l t sa n d a n a l y s i sr e p o r t s f o rt h i si n s t a n t m e s s a g i n gs y s t e mi sp u tf o r w a r d al a r g ea m o u n to fe x p e r i m e n t a ld a t a s h o w st h a tt h i ss y s t e mc a nb ee x p a n d e da n d i m p l e m e n t e de a s i l y i ti s h i g hr e l i a b l ea n de f f i c i e n c ya w a r e k e yw o r d s :i n s t a n tm e s s a g i n g ,w i n s o c k ,c o m m u n i c a t i o n m o d e l ,f i l et r a n s f e r 原创性声明 本人声明,所呈交的学位论文是本人在导师指导下进行的研究 工作及取得的研究成果。尽我所知,除了论文中特别加以标注和致谢 的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不 包含为获得中南大学或其他单位的学位或证书而使用过的材料。与我 共同工作的同志对本研究所作的贡献均已在论文中作了明确的说明。 作者签名:超生亘a 琴日期:衅当j 一日 关于学位论文使用授权说明 本人了解中南大学有关保留、使用学位论文的规定,即:学校 有权保留学位论文,允许学位论文被查阅和借阅;学校可以公布学位 论文的全部或部分内容,可以采用复印、缩印或其它手段保存学位论 文;学校可根据国家或湖南省有关部门规定送交学位论文。 作者签名:姆导师签名弓乏出期:丝年坚月日 硕士学位论文第一章绪论 第一章绪论 即时通信( i n s t a n tm e s s a g i n g ) 软件是我国目前上网用户使用率最高的软件之 一,即时通信系统( i n s t a n tm e s s a g i n gs y s t e m ) 可使人们在网上识别在线用户并与 之实时交流。从技术上来说,i m 基于t c p i p 网络协议族实现,早期的即时通 信雏形可以追溯到芬兰人j a r k k oo i k a r i n e n 于1 9 8 8 年发明的一种网络聊天协议 i r c ( i n t e r n e tr e l a yc h a t ) ,该协议仅支持文本聊天,到1 9 9 6 年第一个i m 产品 i c q t l 】发明后,即时通信的技术和功能开始基本成型。 目前,即时通信和电话、传真一样,已经成为企业员工商务沟通中广泛使 用的交流工具,但个人即时通信软件在提高了沟通效率的同时也带来了一些难 以管理的问题。如何使即时通信真正为企业服务,发挥其长处,并对其有效管 理成为亟待研究的一个新课题,为此论文研究开发了企业级即时通信系统,此 系统具备个人即时通信系统的功能,并进一步加强了企业间通信和企业会议功 能,增加了完备的基于组织、用户、角色和权限的管理机制,是一款可管理、 可控制的企业级即时通信系统。 论文对国内外现有的即时通信软件作了详细的分析研究,提出了不同的即 时通信模型,构建了适合于企业的即时通信系统,并通过实践验证了其具有很 好的可行性与适用性。 1 1 课题背景 随着网络的广泛应用,企事业中越来越需要不同系统协同工作,这就要求 通过网络进行即时通信。现在大部分企事业单位采用电话和电子邮件通信手段, 虽然起了很大的沟通作用,但还是无法实现即时通信。目前有些单位应用市面 上流行的即时通信软件,比如i c q 、腾讯q q 、m s n 等软件,但这些软件都针 对个人通信,是一种公共服务,处于开放网络环境下,由于其聊天对象与聊天 内容的不可控制,若上班时i 日j 使用m s n 、q q 则可能会降低工作效率。另外 m s n 、q q 也必须登录i n t e m e t 才能使用,因而它们在为企事业或机构用户提供 协作支持的同时,也带来了来自公众网络的信息干扰,存在影响工作效率甚至 信息安全的隐患,所以并不太适合企事业内部的通信。还有的就是使用在本地 局域网内即时传送消息和文件的小工具比如w i n p o p u p x ,但它没有服务器端, 是通过在线列表和操作系统的网上邻居获取在线用户或网上邻居中的计算机为 对象进行通信,即没有安全性也不便于企业管理。在这种情况下,有必要自主 硕士学位论文 第一章绪论 开发企事业内部的即时通信软件。通过调研与分析市面上流行的一些通信软件 并结合集美大学校内网络通信的实际情况,本课题提出了基于w i n s o c k 技术 p 2 p 与c s 混合模式来实现企业的即时通信,若用在学校里就简称校园通。 1 2 国内外研究现状和水平 目前,信息产业部公布了中国电子信息产业发展研究院所做的最近几年的 中国信息化调查结果。该结果显示”实时企业”这一概念,被受访者认为是中国 信息化最有应用前景的技术,认同率高达5 9 t 2 1 。它显示了即时通信在国内企 业市场强劲的发展势头。面对诱人的市场蛋糕,特别是其在中国市场的迅猛增 长,各路厂商们正在纷纷推出自己的产品,但是达到各个行业的企业都可通用 软件还是比较少。 1 2 1 网络即时通信软件的发展现状 国内外在网络通信方面的软件主要分成b b s ,视频会议,i r c 和i c q 、腾迅 q q 等几类。 1 电子公告版系统b b s 电子公告版系统通信使用的应用协议通常是t e l n e t 协议,即模拟主机登 录,该协议也是工作在客户机朋艮务器模型下【4 1 。由于t e l n e t 协议采用t c p 连接,每个连入b b s 系统的用户都需要建立一个连接,如果使用者通过一个不 稳定的网络进入系统,有可能会不断地重新建立连接,这就更谈不上进行网络 即时通信了所以b b s 系统具有很大的局限性,这就导致了该系统在网络即时 通信领域不会被广受欢迎。 2 视频会议 视频会议要求在站点之间传送视频和音频信号,这罩的站点是个人计算机, 可能是在一座建筑物内传送,也可能在大范围的地域内传送【5 】。虽然视频会议 的技术含量、系统稳定性是所有网络即时通信软件中最高的,但是由于要使用 它就需要一套专用的设备,费用较高,不是所有企业所能承受的,也是他们没 有必要承受的,因此,视频会议很少会具有大众化的一面。 3 个人通信软件 个人即时通信软件是针对个人用户以交流个人感情的娱乐工具。从最早发 明到现在,普通个人用户是个人即时通信软件使用的主流群体。个人即时通信 软件提供了好友即时聊天、视频聊天、传送文件、发送短信等功能【2 1 。由于使 用群体非常庞大,消息流动频繁,个人即时消息提供商无法对即时信息以及用 2 硕士学位论文第一章绪论 户行为进行监管,经常是消息无序传播造成负面影响。 个人通信软件大部分都是网络聊天,比如:i c q ,腾迅q q ,以及“网易 泡泡 等软件。这些软件都有各自的特点,但它们多是针对个人通信,由于目 前的企业,大都有自己的i n t r a n e t 网络,其大多的工作流或内部交流都可以通 过内部的i n t r a n e t 完成。如果企业中员工都使用目前免费的几种即时通信软件, 则必须对这些使用进行严格的审核和管理,这无疑给企业的工作带来了一定的 麻烦。加之,由于网络的虚拟性,目前即时通信软件中均允许用户自己任意命 名,这更给用户的管理带来了不便,而且不利于企业内部员工的交流,并给企 业用户带来了一定的尴尬和困难。它们不太适合企业用户的使用,并且其安全 性方面也不高。 4 企业即时通信 企业即时通信面向企业用户以提高企业即时协作能力为目的,它与个人即 时通信的管理要求会有所不同。 ( 1 ) 通常每个用户归属一个特定的组织,组织管理员可以管理用户和组织信 息; ( 2 ) 一般采用用户实名制,不使用昵称,在个人资料中填写姓名、部门、联 系方式、通信地址等真实信息: ( 3 ) 发送有效的消息,不发送垃圾消息; ( 4 ) 用户不隐身,每个消息给与回复; ( 5 ) 不发送与工作无关的消息,不随便发送大范围的广播消息; ( 6 ) 管理员可以方便快捷的跟踪和监控用户活动。 1 2 2 即时通信所面临问题 1 标准化 目前即时通信的发展存在的最突出问题就是相关通信协议和标准不统一, 各个即时通信软件采用不同的语言和协议标准而无法相互通信【15 1 。由于各大即 时通信厂家考虑自身的商业利益,到目前为止还没有完全制定统一标准的通信 协议。但作为一种基于i p 技术的通信基础软件,即时通信最终成为互通互联、 开放式的在线通信工具肯定是大势所趋。即时通信已经成为语音及文本的在线 实时通信的主要技术,它必将成为未来移动商务、在线协作及i n t e m e t 应用的 核心,同时也将继承i p 技术的开放风格,扮演比电子邮件更为重要的角色。 2 安全性 在即时通信系统的发展过程中,如何保障系统安全、为用户提供的可靠服 3 硕士学位论文第一章绪论 务同样重要。一个即时通信系统可能会保存大量用户的个人信息,如何保证这 些信息的安全将是一个长期课题 r l 。所以,建立统一、完善的安全体系也是未 来发展的一个主要趋势。 3 伸缩性 即时通信从支持几十个个人用户,到支持上百万的个人用户同时在线,这 需要一个非常好的可伸缩性,如何建立一个好的可伸缩的体系结构支持高并发 量的用户群体也是即时通信软件提供商要面临的问题。 1 2 3 即时通信技术背景 目前编写网络通信软件的工具和方法有很多,w i n d o w ss o c k e t ( 简称 w i n s o c k ) 是其中一种简单有效的方法,也是程序员在a p i ( 应用程序接口, a p p l i c a t i o np r o g r a mi n t e r f a c e ) 的层次上实现更灵活、更高级的编程【9 】。w i n s o c k 是w i n d o w s 操作系统中网络编程的接口,大多数w i n d o w s 环境下的软件开发 工具中,都有不同形式的w i n s o c k 存在。特别是在w i n s o c k 2 发布之后w i n s o c k 接口已成为一个真正与协议无关的接口,编程人员并不需要知道数据在网络中 是怎样传输的。它包括一个标准的b e r k e l e ys o c k e t 功能调用的集合,以及为 w i n d o w s 所作的重要扩充。w i n s o c k 经过不断完善并在众多公司的全力支持下, 已成为w i n d o w s 网络编程的事实上的标准。使用w i n s o c k 控件能实现网络通信 的基本功能,既可使用w i n s o c k 控件丌发面向连接的应用程序,也可丌发无连 接的网络应用程序。如聊天室程序,f t p 文件传输工具的客户端应用程序,电 子邮件收发程序等,很多复杂网络应用程序也都是这些基本的应用演变而来 的。w i n s o c k 技术已经过多年的发展,已经在网络通信领域得到越来越广泛的 应用,也取得了越来越多的研究成果。现在在即时通信过程通过调用w i n s o c k 的a p i 实现相互之间的通信,而w i n s o c k 利用下层的网络通信协议功能和操作 系统调用实现实际的通信工作,只要底层的通信协议相同,不同类型的s o c k e t 也照样可以通信一j 。 企业级即时通信技术通常以整体解决方案方式出现,包括了网络模型,网 络协议,服务器客户端等组件,用于在企业或机构内部网域范围内提供即时通 信服务( 部分解决方案也可以通过接口与公共的即时通信服务进行互接) 。所以 要实现一个一定规模用户实时、安全、并发通信能力的企业即时通信系统需要 考虑以下几种关键技术: ( 1 ) 通信模型的选择:c s 模型,p 2 p 模型; ( 2 ) w i n s o c k 技术在通信协议方面的选择:面向连接t c p 协议与面向无连接 4 硕士学位论文第一章绪论 u d p 协议; ( 3 ) 采用多线程并发控制技术处理多个用户交互的能力; ( 4 ) 数据传输技术; ( 5 ) 安全认证技术; ( 6 ) 用户信息的定位与存储技术。 1 3 课题研究的意义 随着网络技术的发展,即时通信正在成为在线活动中不可或缺的业务。由 于即时通信服务是一种公共服务,处于开放网络环境下,因而它为企业或机构 用户提供协作支持的同时,也带来了来自公众网络的干扰,存在影响工作效率 甚至信息安全的隐患。而企业即时通信技术的出现则解决了这一问题。从个人 即时通信向企业即时通信的演化,是目前即时通信领域的研究热点【5 】。其主要 作用包括以下几个方面: 1 应用了现在最为流行的即时通信技术,使员工之间快速,便捷的交流成 为可能。将大部分工作由手工处理转变为计算机处理,减少人工错误,减少企业 通信成本,提高了工作人员的办事效率。 2 为用户提供友好的图形界面,特别是部门与员工等列表的显示,能使整 个企业的结构明确,增加各个部门之间的交流。增加内部的凝聚力,员工在有 i n t r a n e t 而无i n t e m e t 的情况下,实现类似q q 的功能,可以在计算机各个终端 之间进行各种通信,以后可扩展到能通过短消息服务器的接口满足计算机终端 和手机的通信。 3 建立了一个相对安全的环境,引入特定的安全机制( 如身份认证、公钥 加密机制) ,实现一个相对可控的安全环境。在该环境外的用户,被拒绝加入这 个环境和使用共享资源。加强了企业安全管理,杜绝企业信息外流。 4 建立了一个局部的管理的环境,通过建立安全对等组,实现一个可在局 部范围内从事特定工作的区域。 5 建立了一个具有监督机制的环境,在安全对等组中,根据安全级别的高 低,各个成员对等点的某些特定行为可以被监控并作相应记录。 1 4 研究内容 论文将完成从系统的总体设计、系统的实现到系统的测试全过程工作。在 系统设计和实现过程中,作者对市场上现有的国内外商业级即时通信系统的功 能、架构进行了详细的研究,将一些技术和想法融入到系统的实现过程中,使 5 硕士学位论文 第一章绪论 其有别于传统的即时通信软件。其主要内容有: 1 利用w i n s o c k 技术实现实时通信 整个系统通信基于t c p i p 的通信技术,通过调用w i n s o c k 的a p i 实现相 互之间的通信,而w i n s o c k 利用下层的网络通信协议功能和操作系统调用实现 实际的通信工作; 2 采用p 2 p 与c s 混合模式来实现整个系统的通信架构 确定用户之间通信模式为p 2 p 模式便于直接通信高效传输信息,用户与服 务器之间采用c s 模式用于通信的初始联接及保存用户信息和通信过程中的一 些相关数据; 3 应用多线程以及共享数据结构技术 使网络服务器具有了多用户问数据转发的功能,进而解决多用户间的并发 通信问题; 4 通信协议的解析与约定 确定客户端与服务器端之间及客户端与客户端之间的通信协议; 5 通信的安全机制的实现技术 使用加密技术实现通信过程中信息传输的安全性: 6 数据库的管理与访问技术 研究系统服务端使用的数据库访问技术; 7 界面实现技术,并在上面的基础上完成具体的设计与实现工作。 8 系统在集美大学的实施,在校园网内建立一个自建服务器的企业即时通 信系统,服务器上安装本系统提供的服务器软件,客户器端软件可由各个用户 自己到校园网上下载本系统提供的客户端软件安装。 丌发环境: 实验室: 硬件设备: 一台服务器 操作系统: 数据库系统: 设计工具: 开发语言: 开发工具: 集美大学计算机工程学院专业实验室 两台主机( p 42 4 g 5 1 2 m ) ( d e l lp o w e re d g el8 0 0 ) w i n d o w ss e r v e r2 0 0 0 s q ls e r v e r2 0 0 0 m i c r o s o f to f f i c ev i s i o2 0 0 3 ,r a t i o n a l2 0 0 3 v i s u a lc + + n e t m i c r o s o f tv i s u a ls t u d i o n e t 6 硕士学位论文第一章绪论 1 5 论文组织结构 论文共分六章。第一章为绪论,介绍了本文的研究背景,提出了实现即时 通信的关键技术,并阐述了这些技术在国内外的研究现状以及开发此通信软件 的必要性与可行性,进而提出了本文的研究方向,即设计一个企业即时通信系 统。 第二章对系统所要应用的相关技术与知识进行概述,主要围绕实现系统所 需的通信原理、网络编程基础以及一些技术方面的基本概念与基本思想进行详 细阐述。 第三章是总体设计,介绍了软件的整体( 服务器和客户机) 设计思路和概要 设计,从总体上介绍软件的设计要求、工作流程以及各个功能模块,并对系统 中所用到的关键技术细节进行阐述。 第四章是详细设计,介绍了系统关键模块设计与具体实现,并说明了各个 模块的具体处理流程。 第五章是软件的测试与结果分析,为了达到高可靠性和高可用性,作者对 软件进行了功能测试和性能测试。 第六章也是全文的最后一章,对全文所开展的工作进行了总结,并指出了 进一步的研究工作。 7 硕上学位论文第二章系统应用的相关技术 第二章系统应用的相关技术 论文叙述的企业即时通信系统是在客户端朋艮务器程序设计基础上按照软 件工程设计思想,采用大量的计算机程序设计技术和网络通信技术设计并实现 的。本章主要研究主流的即时通信模型、网络通信技术、密码学相关知识和程 序设计主要采用的w i n d o w s 编程技术。 2 1 主流即时通信模型 目前主流的即时通信模型主要有c s 模型与p 2 p 模型,这两种模型各有千 秋,所以许多的软件机构和计算公司把p 2 p 和c s 一样的看重,经常把两者结 合在一起使用。 2 1 1c s 模型 c s ( c l i e n t s e r v e r ,客户服务器) 模型,简称c s 架构,其模型如图2 一l 所 示。 图2 - 1客户4 :z t 1 务器模型 该模型可以合理利用两端硬件环境优势,将任务合理分配到客户端6 r i l l 务 器,降低系统通信开销。在这种结构中,服务器处于一个中心地位。服务器是 一个拥有强大处理能力和很大带宽的高性能计算机,数据和信息都保存在服务 器上。服务器始终处于工作状态,一般同时为多个客户提供服务,它被动地接 受客户连接,根据客户的请求提供相应的服务。这就造成了服务器设计的复杂 性。特别是像即时通信服务器这类具有社区性的服务器,它只有为群体提供服 务才有意义。即时通信服务器是数据中心,它是客户活动的中介,需要同时应 硕士学位论文第二章系统应用的相关技术 对众多客户的请求【2 0 】。 c s 通信主要特点是客户端之间的通信都要通过服务器的转发,会造成服 务太集中,在c s 模型中,当网络增大时( 即越来越多的客户加入) ,服务器的 压力就越大。当增加一个客户,服务器的性能就会弱化,甚至会而使服务器失 效而导致整个网络的瘫痪等,其优点是便于集中管理,象这种结构一般用在用 户数量少的局域网内。 2 1 2p 2 p 模型 p 2 p ( p e e r t op e e r ,对等连接或对等网络) 模型,是指网络中的物理节点在逻 辑上以相同的地位进行通信的模型,而不是处理能力的对等【1 6 】。相对于传统的 c s 模型,其弱化了服务器的概念,系统中的各个节点不再区分服务器和客户 端的角色关系,每个节点既可请求服务,也可提供服务,节点之间可以直接交 换资源和服务而不必通过服务器。p 2 p 的最大特点就是用户之间直接共享资 源,使得p c 不再是被动的客户端,而成为具有服务器和客户端双重特征的设 备,p 2 p 模型如图2 2 所示。 p c 耄i l 图2 - 2 p 2 p 模型 基于p 2 p 的模型与客户服务器模型相比,它最大的实力是降低了对服务器 的依赖及其分散控制( 相对于服务器的集中控制) ,用户不需要服务器就能直接 通信,模型中的节点是动态的,可以随时加入或退出,而且随着用户的加入, 不仅服务的需求增加了,整体资源和服务能力也在同步地扩充。信息在对等节 点间直接交换,高速及时,降低中转成本。采用p 2 p 模型可以有效地利用网络 中散布的大量普通点,将任务或存储资料分布到所有结点上。利用其中闲置的 计算能力或存储空间,达到高性能计算和海量存储的目的。同时因为资源分布 o 硕士学位论文 第二章系统应用的相关技术 在多个节点,部分结点或网络遭到破坏对其它部分的影响很小,也更好地实现 了整个网络的负载均衡。p 2 p 已经在共享资源和服务器的价值方面动摇了网络 的边界。 当然p 2 p 也有许多不足之处。首先p 2 p 缺乏管理机制,管理者再也无法对 其用户进行必要的管理,不象在c s 模式中只需要在中心点进行管理,所以 p 2 p 模型的网络资源往往并不可靠。其次p 2 p 网络中数据的安全性难以保证。 另外还存在大多数用户之间传送大量大体积文件而存在吞噬网络带宽问题、版 权问题。还有就是目前还没有制定出一致的p 2 p 标准,这对p 2 p 技术进一步发 展也是一个障碍6 1 。 我们常用的q q 、m s n m e s s e n g e r ,i c q 等即时通信软件都是p 2 p 应用的实 例,它们允许用户互相交换信息、交换文件。 2 2 主流即时通信协议 传输控制协议t c p ( t r a n s m i s s i o nc o n t r o lp r o t o c a l ) 和用户数据报协议u d p ( u s e rd a t a g r a mp r o t o c 0 1 ) 是t c p i p 协议族的两个主要的传输协议,这两个协 议都使用i p 作为网络层协议【2 4 1 。在网络通信传输机制中,t c p 是属于“面向 连接,可靠传输”的类型,面向连接的传输意味着在进行通信以前,需要在两 个系统之问建立逻辑连接,在每个数据传输的过程中都需要进行应答以保证数 据包的完整。这种方法需要的网络丌销较大,但却提供一种可靠的传输层服务。 u d p 是属于“面向无连接,不可靠传输”的类型,该协议只负责接收和传送上 层协议传递的消息,u d p 本身不做任何检测、修改与应答,上层协议需要自己 处理这些事务。他们实际上最大的区别在于为应用协议提供不同的服务。 2 2 i t c p 协议 t c p 是一个面向连接的、可靠的传输层协议,协议提供的服务包括面向连 接、双向、有序且无重复的数据流传送,有效的流量控制、全双工操作和多路 复用【2 4 】。它主要的功能是提供大量数据的传输并确保其传输无误,并提供错误 检查、数据复原以及数据超时重传等机制,适用于传输可靠性要求比较高的数 据传输。 t c p 连接的建立采用了三次握手机制,这一机制保证校验了数据,保证了 他的可靠性。同时,t c p 协议采用面向字节的方式,将报文段的数据部份进行 编号,每一个字节对应一个序号,虽然耗时、占资源,但是可以确保消息传输 的可靠与准确的传递。另外,在传输数据包期间,t c p 会根据链路中数据流量 1 0 硕士学位论文 第二章系统应用的相关技术 的大小来调节传送的速率,传输时如果发现有丢包,会有严格的重传机制,从 而以保证数据包可靠的传输。使用数据流传送,在一个t c p 连接中,源节点发 送一连串字节给节目的节点即提供字节流服务,并以序列号标识的这些非结构 化字节流。这种服务给应用带来了便利,因为它们不必在将数据传给t c p 之前 对数据进行分块。t c p 将它们分组后交给m 发送。 通过面向连接、端到端和可靠的数据包发送,t c p 提供互联网络数据报传 输的可靠性。t c p 通过使用转发确认号保证数据按顺序接收,由可靠性机制处 理丢失、延迟、重复或读错的数据包,由超时机制检测丢失的数据包并请求重 新传输。t c p 提供有效的流量控制,这表示当向源节点发送确认时,接收t c p 进程会指示它可以接收而不会引起内部缓冲区溢出的级高序列号;全双工的操 作表示t c p 进程可以同时进行发送和接收。而多路复表示大量高层对话可以同 时通过一个单独的连接发送出去。 即时通信系统的消息传输一般是建立在t c p 协议基础之上的,客户与服务 器之间都是通过t c p 传输数据。服务器端口一般固定。去掉截获的t c p 包头 信息,对数据部分进行分析可以找出协议的发送和接收数据的基本格式,但是 t c p 面向连接的,在国内目前i p 地址短缺,很多采用通过局域网连入i n t e m e t 的网络状况下,t c p 的对等连接显然不能满足所有的要求,而且目前由于黑客 软件和病毒的泛滥,大部分上网的个人计算机都配置了防火墙在很大程度上阻 止了许多的入站请求。所以数据传输大都是先尝试直接连接,如果连接不通的 话采用通过服务器中转的方式。目前基于t c p 的各种应用有t e l n e t 、h 1 v r p 、 f t p 和s m t p 等,这些应用通常都是用户进程。 2 2 2 u d p 协议 用户数据报协议u d p 是建立在网际协议之上的,提供面向无连接、不可靠 ( 不保证数据的正确传送和重复出现) 的数据报传输服务的传输层协议【2 4 1 。 u d p 传输不像t c p 传输一样需要预先建立一条连接;u d p 把数据发送出去但 不进行差错控制和流量控制,报文可能丢失、重复或者失序,而发送方是得不 到通知的,数据也不会被重传。因此,u d p 提供的是一种不可靠的应用数据传 输服务。它不需要通过一些握手协议确保连接的可靠性,发送方直接把数据广 播到网络上,任何欲接受者都可接收到数据。在u d p 的广播消息中,数据的目 标不是指定地址唯一的一台机器,而是特殊的广播地址,数据可发送到同一子 网络上的所有机器上。u d p 使用底层网络的广播和组播设施交互报文时,必须 制定报文边界。其优点在于: 硕士学位论文第二章系统应用的相关技术 ( 1 ) 使用u d p 时,每个数据中都给出了完整的地址信息,发送数据之前不 需要建立发送方与接收方的连接,因此减少了开销和发送数据之前的时延; ( 2 ) 不使用拥塞控制,也不保证可靠传输,因此主机不需要维持具有许多参 数的、复杂的连接状态表; ( 3 ) 用户数据报只有8 个字节的首部开销,比t c p 的2 0 个字节的首部要短, 因此它的网络开销一般要小于t c p ; ( 4 ) u d p 不进行流量控制,没有序列与确认、没有超时重发等机制,因此 它处理和传输数据的速度快; 作为一种面向无连接的传输协议,基于u d p 的应用程序在高可靠性、低延 迟的网络中运行得很好,但是在通信子网的服务质量相对低下的i n t e m e t 上, 它可能就无法正常运行了,因为数据报的丢失过于频繁。原因就在于u d p 的不 可靠性,而这些应用程序自身可能又没有提供可靠性保障。因此,基于u d p 的应用程序如果想在可靠性低下的网络中运行的话,必须自己提供可靠性保障, 例如丢失数据报的重传、失序数据报的组合等。 u d p 与t c p 之间的差别主要在于可靠性方面。但也不是说,因为u d p 是 一种不可靠的传输协议而毫无用处。在一个良好的网络环境下,使用u d p 传输 数据还是相当可靠的,而且效率也比较高。u d p 比t c p 更适合于与时问有关 的应用数据的传输。在许多应用中并不需要保证严格的传输可靠性,比如视频 会议系统,并不要求音频视频数据绝对的正确,只要保证连贯性就可以了,这 种情况下显然使用u d p 会更合理一些。目前基于u d p 工作的即时通信软件主 要有o i c q 。由于u d p 的特点,亦是进行网络广播的首选协议。传统的n f s ( n e t f i l es y s t e m ,网络文件系统) 使用u d p 。 2 3win s o c k 技术 随着i n t e m e t 的迅猛发展,网络通信应用程序的丌发成为一个研究热点。 w i n d o w s 环境下进行通信程序设计的最基本方法是采用w i n s o c k 技术实现。 w i n s o c k 规范以u c b e r k e l e y 大学b s du n i x 中流行的s o c k e t s 接口为范 例定义了一套m i c o s o f tw i n d o w s 下网络编程接口【18 1 。 应用程序调用w i n s o c k 的a p i 实现相互之间的通信。又利用下层的网络 通信协议功能和操作系统调用实现实际的通信工作。w i n s o c k 工作原理如图 2 4 所示。 1 2 硕士学位论文第二章系统应用的相关技术 应用程序a 应用程序b 善今 网络编程接口例如w i n d o w ss o c k e t :? 网络通信协议服务接口,例如t c p i p 3善 操作系统,例! l f l w i n d o w s 害? 物理通信介质 图2 - 4w i n s o e k 工作原理 s o c k e t s 也称为套接字,是一种网络编程接口,它是通信端点的一种抽象, 提供了一种发送和接收数据的机制。用户目前可以使用两种类型的套接字,它 们是数据报套接字( d a t a g r a ms o c k e t s ) 和流式套接字( s t r e a ms o c k e t s ) ,这两种套 接字传输的数据类型是不同的,因而其使用方法和相应的程序设计模型也是不 同的】。 2 3 1 流式套接字编程模型 流式套接字可以将数据按顺序无重复地发送到目的地,它提供的是一种可 靠的面向连接的数据传输方式。不管是对单个的数据报,还是对数据包,流式 套接字都提供了一种流式数据传输,是t c p 传输协议的接口】。 当用户想发送大批量数据或想让发送的数据按顺序无重复地到达目的地 时,使用流式套接字是最方便的。此外,在数据传输时,如果连接断开,应用 程序会被通知的。 由于流式套接字使用的是面向连接的协议,所以我们必须首先建立连接然 后才能从数据流中读出数据,而不是从一个数据报或一个记录读出数据。 流式套接字的服务进程和客户进程在通信前必须创建各自的套接字并建立 连接,然后才能对相应的套接字进行“读 、“写 操作,实现数据传输。使用 流式套接字时,用户在发送、接收数据之前同样必须首先建立连接,然后才能 传输数据,流式套接字编程模型的工作流程如图2 5 所示。 首先,服务器要创建一个用于监听的套接字,把它绑定到众所周知的服务 1 3 硕上学位论文第二章系统应用的相关技术 器端口上,然后调用l i s t e n 函数使它处于监听状态;客户机在创建套接字后, 即可调用c o n n e c t 函数,请求与服务器套接字连接;服务器套接字在收到客户 机的连接请求后,调用a c c e p t 函数来接收客户机的连接请求,并创建另一个用 于通信的套接字。用此套接字和客户机上的套接字形成网络通信管道的两个端 点,然后就可以在服务器和客户机之间进行数据传输了。服务器上的监听套接 字仍处于监听的状态,随时准备接受其他客户机的连接请求。传输结束后,客 户机调用c l o s e s o c k e t 函数关闭套接字,服务器也调用该函数关闭用于监听和通 信的套接字,释放资源。 2 3 2 数据报套接字编程模型 数据报套接字提供了不可靠的、无连接的数据包通信方式。数据通过相互 独立的报文进行传输,是无序的,并且不保证报文的可靠、无差错。实际使用 中,同一个分组数据报可能不止一次地被发送,一般要等到接收方发回确认收 到的消息才会停止发送。对于在t c p i p 上实现的w i n s o c k ,数据报套接字使用 u d p 协谢1 1 1 。 数据报套接字一般用于一些轻负载的局域网上的计算机之间的通信。在这 种情况下,用户可能不会发现数据报有不被发送、没有按顺序到达或被重复发 送的情况。虽然数据报套接字存在不可靠性,但是它在发送数据包或记录型数 据时仍然非常有用,而且数据报套接字还提供了向多个目标地址发送广播数据 包的能力。 无连接的服务器一般都是面向事务处理的,大多数的数据报套接字应用程 序将使用一个事件序列来完成客户应用程序和服务器应用程序之间的通信,其 编程过程相对流套接字要简单些如图2 - 6 所示。 对于接收端( 一般为服务器端) ,先用s o c k e t 函数建立套接字,在通过b i n d 函数把这个套接字和准备接收数据的i p 地址信息绑定在一起,这和前面流套接 字一样,但不同的是它不必调用l i s t e n 和a c c e p t ,只需要等待接收数据。并且由
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论