计算机网络课程设计基于WinSock的即时通信软件功能原理模拟.doc
《计算机网络课程设计基于WinSock的即时通信软件功能原理模拟.doc》由会员分享,可在线阅读,更多相关《计算机网络课程设计基于WinSock的即时通信软件功能原理模拟.doc(34页珍藏版)》请在三一办公上搜索。
1、计算机网络课程设计题目:基于WinSock的即时通信软件功能原理模拟专业班级:_ 学 号:_姓 名:_成 绩:_目录1 摘要32相关技术32.1主流即时通信模型32.2主流即时通信协议62.3 W i nSock技术82.4 C#中的网络编程93 系统总体设计103.1 功能需求103.2系统总体模块设计113.3系统中主要用到的类124 系统分块设计134.1服务器端设计134.2 客户端设计174.3通讯协议模块215系统具体实现225.1关键模块的具体实现225.2客户端运行效果286 课程小结337 参考资料341 摘要随着网络通信技术和计算机技术的进一步发展,即时通信(Instant
2、 Messaging)正在成为网络在线活动中不可缺少的业务,对它的研究是互联网应用中一个热点课题。本课题在现有的网络通信技术的基础上设计并实现了一个简单的即时通信系统的模拟。该系统工作机制模仿即时通信软件的基本功能,登陆,上线,传递信息等等。首先,分析了当今流行的各种即时通信软件,确定了基本即时通信系统的功能,抽象出了整体的软件模型。对即时通信系统中采用的关键技术进行了简化,设计了一个整合P2P(PeertoPeer,对等连接或对等网络)和CS(ClientServer,客户服务器)模式、支持多协议转换通信协议和实名制身份认证的即时通信系统。然后,论文对即时通信系统的服务器端和客户端的主要组成
3、模块进行了详细的剖析,论述了各个模块详细的设计和实现方式,分别阐述了每个模块的主要功能,并给出了模块流程图。最后,论文对所设计的即时通信系统服务器端进行了运行,并截取了软件运行图片。结果表明系统实现了设计的要求,具有登陆、上线、信息传递的功能。2相关技术2.1主流即时通信模型目前主流的即时通信模型主要有CS模型与P2P模型,这两种模型各有千秋,所以许多的软件机构和计算公司把P2P和CS一样的看重,经常把两者结合在一起使用。CS模型CS(ClientServer,客户服务器)模型,简称CS架构,其模型如图所示。该模型可以合理利用两端硬件环境优势,将任务合理分配到客户端6rill务器,降低系统通信
4、开销。在这种结构中,服务器处于一个中心地位。服务器是一个拥有强大处理能力和很大带宽的高性能计算机,数据和信息都保存在服务器上。服务器始终处于工作状态,一般同时为多个客户提供服务,它被动地接受客户连接,根据客户的请求提供相应的服务。这就造成了服务器设计的复杂性。特别是像即时通信服务器这类具有社区性的服务器,它只有为群体提供服务才有意义。即时通信服务器是数据中心,它是客户活动的中介,需要同时应对众多客户的请求。CS通信主要特点是客户端之间的通信都要通过服务器的转发,会造成服务太集中,在CS模型中,当网络增大时(即越来越多的客户加入),服务器的压力就越大。当增加一个客户,服务器的性能就会弱化,甚至会
5、而使服务器失效而导致整个网络的瘫痪等,其优点是便于集中管理,象这种结构一般用在用户数量少的局域网内。P2P模型P2P(Peerto Peer,对等连接或对等网络)模型,是指网络中的物理节点在逻辑上以相同的地位进行通信的模型,而不是处理能力的对等。相对于传统的CS模型,其弱化了服务器的概念,系统中的各个节点不再区分服务器和客户端的角色关系,每个节点既可请求服务,也可提供服务,节点之间可以直接交换资源和服务而不必通过服务器。P2P的最大特点就是用户之间直接共享资源,使得PC不再是被动的客户端,而成为具有服务器和客户端双重特征的设备,P2P模型如图所示。基于P2P的模型与客户服务器模型相比,它最大的
6、实力是降低了对服务器的依赖及其分散控制(相对于服务器的集中控制),用户不需要服务器就能直接通信,模型中的节点是动态的,可以随时加入或退出,而且随着用户的加入,不仅服务的需求增加了,整体资源和服务能力也在同步地扩充。信息在对等节点间直接交换,高速及时,降低中转成本。采用P2P模型可以有效地利用网络中散布的大量普通点,将任务或存储资料分布到所有结点上。利用其中闲置的计算能力或存储空间,达到高性能计算和海量存储的目的。同时因为资源分布在多个节点,部分结点或网络遭到破坏对其它部分的影响很小,也更好地实现了整个网络的负载均衡。P2P已经在共享资源和服务器的价值方面动摇了网络的边界。当然P2P也有许多不足
7、之处。首先P2P缺乏管理机制,管理者再也无法对其用户进行必要的管理,不象在CS模式中只需要在中心点进行管理, 所以P2P模型的网络资源往往并不可靠。其次P2P网络中数据的安全性难以保证。另外还存在大多数用户之间传送大量大体积文件而存在吞噬网络带宽问题、版权问题。还有就是目前还没有制定出一致的P2P标准,这对P2P技术进一步发展也是一个障碍。我们常用的QQ、MSNMessenger,ICQ等即时通信软件都是P2P应用的实例,它们允许用户互相交换信息、交换文件。2.2主流即时通信协议传输控制协议TCP(Transmission Control Protocal)和用户数据报协议UDP(User D
8、atagram Protoc01)是TCPIP协议族的两个主要的传输协议,这两个协议都使用IP作为网络层协议。在网络通信传输机制中,TCP是属于“面向连接,可靠传输”的类型,面向连接的传输意味着在进行通信以前,需要在两个系统之问建立逻辑连接,在每个数据传输的过程中都需要进行应答以保证数据包的完整。这种方法需要的网络丌销较大,但却提供一种可靠的传输层服务。UDP是属于“面向无连接,不可靠传输”的类型,该协议只负责接收和传送上层协议传递的消息,UDP本身不做任何检测、修改与应答,上层协议需要自己处理这些事务。他们实际上最大的区别在于为应用协议提供不同的服务。TCP协议TCP是一个面向连接的、可靠的
9、传输层协议,协议提供的服务包括面向连接、双向、有序且无重复的数据流传送,有效的流量控制、全双工操作和多路复用。它主要的功能是提供大量数据的传输并确保其传输无误,并提供错误检查、数据复原以及数据超时重传等机制,适用于传输可靠性要求比较高的数据传输。TCP连接的建立采用了三次握手机制,这一机制保证校验了数据,保证了他的可靠性。同时,TCP协议采用面向字节的方式,将报文段的数据部份进行编号,每一个字节对应一个序号,虽然耗时、占资源,但是可以确保消息传输的可靠与准确的传递。另外,在传输数据包期间,TCP会根据链路中数据流量的大小来调节传送的速率,传输时如果发现有丢包,会有严格的重传机制,从而以保证数据
10、包可靠的传输。使用数据流传送,在一个TCP连接中,源节点发送一连串字节给节目的节点即提供字节流服务,并以序列号标识的这些非结构化字节流。这种服务给应用带来了便利,因为它们不必在将数据传给TCP之前对数据进行分块。TCP将它们分组后交给m发送。通过面向连接、端到端和可靠的数据包发送,TCP提供互联网络数据报传输的可靠性。TCP通过使用转发确认号保证数据按顺序接收,由可靠性机制处理丢失、延迟、重复或读错的数据包,由超时机制检测丢失的数据包并请求重新传输。TCP提供有效的流量控制,这表示当向源节点发送确认时,接收TCP进程会指示它可以接收而不会引起内部缓冲区溢出的级高序列号;全双工的操作表示TCP进
11、程可以同时进行发送和接收。而多路复表示大量高层对话可以同时通过一个单独的连接发送出去。即时通信系统的消息传输一般是建立在TCP协议基础之上的,客户与服务器之间都是通过TCP传输数据。服务器端口一般固定。去掉截获的TCP包头信息,对数据部分进行分析可以找出协议的发送和接收数据的基本格式,但是TCP面向连接的,在国内目前IP地址短缺,很多采用通过局域网连入Intemet的网络状况下,TCP的对等连接显然不能满足所有的要求,而且目前由于黑客软件和病毒的泛滥,大部分上网的个人计算机都配置了防火墙在很大程度上阻止了许多的入站请求。所以数据传输大都是先尝试直接连接,如果连接不通的话采用通过服务器中转的方式
12、。目前基于TCP的各种应用有Telnet、H1vrP、FTP和SMTP等,这些应用通常都是用户进程。UDP协议用户数据报协议UDP是建立在网际协议之上的,提供面向无连接、不可靠(不保证数据的正确传送和重复出现)的数据报传输服务的传输层协议。UDP传输不像TCP传输一样需要预先建立一条连接;UDP把数据发送出去但不进行差错控制和流量控制,报文可能丢失、重复或者失序,而发送方是得不到通知的,数据也不会被重传。因此,UDP提供的是一种不可靠的应用数据传输服务。它不需要通过一些握手协议确保连接的可靠性,发送方直接把数据广播到网络上,任何欲接受者都可接收到数据。在UDP的广播消息中,数据的目标不是指定地
13、址唯一的一台机器,而是特殊的广播地址,数据可发送到同一子网络上的所有机器上。UDP使用底层网络的广播和组播设施交互报文时,必须制定报文边界。其优点在于:1、使用UDP时,每个数据中都给出了完整的地址信息,发送数据之前不需要建立发送方与接收方的连接,因此减少了开销和发送数据之前的时延;2、不使用拥塞控制,也不保证可靠传输,因此主机不需要维持具有许多参数的、复杂的连接状态表;3、用户数据报只有8个字节的首部开销,比TCP的20个字节的首部要短,因此它的网络开销一般要小于TCP;4、UDP不进行流量控制,没有序列与确认、没有超时重发等机制,因此它处理和传输数据的速度快;作为一种面向无连接的传输协议,
14、基于UDP的应用程序在高可靠性、低延迟的网络中运行得很好,但是在通信子网的服务质量相对低下的Intemet上,它可能就无法正常运行了,因为数据报的丢失过于频繁。原因就在于UDP的不可靠性,而这些应用程序自身可能又没有提供可靠性保障。因此,基于UDP的应用程序如果想在可靠性低下的网络中运行的话,必须自己提供可靠性保障,例如丢失数据报的重传、失序数据报的组合等。UDP与TCP之间的差别主要在于可靠性方面。但也不是说,因为UDP是一种不可靠的传输协议而毫无用处。在一个良好的网络环境下,使用UDP传输数据还是相当可靠的,而且效率也比较高。UDP比TCP更适合于与时问有关的应用数据的传输。在许多应用中并
15、不需要保证严格的传输可靠性,比如视频会议系统,并不要求音频视频数据绝对的正确,只要保证连贯性就可以了,这种情况下显然使用UDP会更合理一些。目前基于UDP工作的即时通信软件主要有OICQ。由于UDP的特点,亦是进行网络广播的首选协议。传统的NFS(NetFile System,网络文件系统)使用UDP。2.3 W i nSock技术随着Intemet的迅猛发展,网络通信应用程序的开发成为一个研究热点。Windows环境下进行通信程序设计的最基本方法是采用WinSock技术实现。WinSock规范以uCBerkeley大学BSD UNIX中流行的Sockets接口为范例定义了一套Micosoft
16、 Windows下网络编程接口1。应用程序调用WinSock的API实现相互之间的通信。又利用下层的网络通信协议功能和操作系统调用实现实际的通信工作。WinSock工作原理如图所示。Sockets也称为套接字,是一种网络编程接口,它是通信端点的一种抽象,提供了一种发送和接收数据的机制。用户目前可以使用两种类型的套接字,它们是数据报套接字(Datagram Sockets)和流式套接字(Stream Sockets),这两种套接字传输的数据类型是不同的,因而其使用方法和相应的程序设计模型也是不同的。2.4 C#中的网络编程服务器端:第一步:用指定的端口号和服务器的ip建立一个EndPoint对像
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机网络 课程设计 基于 WinSock 即时 通信 软件 功能 原理 模拟
链接地址:https://www.31ppt.com/p-2396370.html