毕业论文——基于网络的虚拟实验平台--VLP2P通信库的设计与实现

上传人:wo7****35 文档编号:60510422 上传时间:2018-11-16 格式:DOC 页数:21 大小:461.50KB
返回 下载 相关 举报
毕业论文——基于网络的虚拟实验平台--VLP2P通信库的设计与实现_第1页
第1页 / 共21页
毕业论文——基于网络的虚拟实验平台--VLP2P通信库的设计与实现_第2页
第2页 / 共21页
毕业论文——基于网络的虚拟实验平台--VLP2P通信库的设计与实现_第3页
第3页 / 共21页
毕业论文——基于网络的虚拟实验平台--VLP2P通信库的设计与实现_第4页
第4页 / 共21页
毕业论文——基于网络的虚拟实验平台--VLP2P通信库的设计与实现_第5页
第5页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《毕业论文——基于网络的虚拟实验平台--VLP2P通信库的设计与实现》由会员分享,可在线阅读,更多相关《毕业论文——基于网络的虚拟实验平台--VLP2P通信库的设计与实现(21页珍藏版)》请在金锄头文库上搜索。

1、 基于网络的虚拟实验平台VLP2P通信库的设计与实现摘 要随着信息技术的发展,网络无疑为我们带了更多的便利,因此一个好的系统要具有网络功能。针对虚拟实验台系统的实际功能,采用P2P技术作为其网络通讯基础具有很大的优势:降低服务器资源占用,提高通讯传输效率。但由于NAT的广泛使用,使得不同的内网间系统通讯比较困难。希望P2P通讯具有实用价值,穿透NAT实现不同内网间的系统通讯是一个需要解决的重要问题。在基于网络的虚拟实验平台中,有很多功能涉及到网络通讯,为了提高系统的模块化程度,减少系统重复开发量,将网络通信部分独立出来,设计实现名为VLP2P的P2P通讯库。设计中,也设计了通讯库的测试程序。经

2、实际测试,基本达到预期设计目标。关键词:虚拟实验平台;P2P技术;UDP;穿透NAT;Scoket编程Network-based Virtual Experimental PlatformDesign and Implementation of VLP2P Communication LibraryAbstractWith the development of information technology, networks will provide us with more convenience undoubtedly. Therefore, a good system must have

3、 network functions. According to real functions of the virtual experiment platform, P2P technology has powerful benefits to decrease probability of using server resources and upgrade the transmission efficiency, as a base of networking communication. While, because of the existence of NAT issues, it

4、 is difficult to communicate among different local networks. To make P2P communication get values in real application, an important problem required to solve is the system communication among different networks by penetrating NAT.There are many functions related to network communication in the virtu

5、al experiment platform based on network. For improve modularization of the system and decrease repetitive developing work, the network communication is extracted as an independent part to design and implement P2P communication library named VLP2P. In the thesis, the testing program for communication

6、 library is also designed. With real testament, it has proven that the communication library has achieved the initial purpose.Key words: Virtual Experiment Platform; P2P Technology; UDP; Penetrating NAT; Socket programming1 引言Internet进行访问。NAT技术可以为TCP、UDP以及ICMP的部分信息进行透明中继。NAT技术具体实现方法是通过IP地址映射来实现IP地址的

7、复用。NAT网关充当了路由器的角色,所有外出的网络包都必须路由到NAT网关;同样,所有由外网发往内网的网络包也必须经过NAT网关。NAT网关通过一定的规则,将由内部网向外部网发送的数据包中的源地址映射为一个Internet合法地址,而将由外向内的数据包中的目的地址替换成相应的内网IP地址。NAT网关有内网接口和外网接口,其中外网接口和Internet相连,必须拥有合法IP地址,内网接口则和内网相连,可以分配任意指定的一个内网IP地址,一般情况下,这个IP地址就是内部主机的默认网关。1.1. 项目背景随着信息技术的发展,网络无疑为我们带了更多的便利,因此一个好的系统必须要具有网络功能,这个功能不

8、仅局域网,那就存在一个穿透NAT的问题,伴随着P2P技术的出现,利用UDP实现P2P网络穿越NAT的即时通讯技术,我们不在为此而烦恼。1.2. 项目介绍1.2.1 虚拟实验平台虚拟实验平台是通过软件编程仿真各种电子器件,可以做各种电路实验及设计性实验、 基本电路实验、 直流电路、 交流电路、 动态电路、 这些功能模块成为虚拟平台与实验者之间的桥梁, 共同构成网上虚拟实验室系统,起到帮助学生完成实验任务。1.2.2 平台网络通信实现虚拟实验平台具有网络基本功能,实现虚拟实验平台具有网络基本功能,客户机和主机,客户机和客户机之间的即时通讯、文件的传输。由于采用了最新的P2P穿透NAT的技术,因此可

9、以实现冲破局域网的限制,实现真正的异地连接,同学可以在家里利用一台普通的能够上网的PC,就能把老师布置的实验作业完成,并且,老师可以通过服务器端,了解进度情况,并且可以适时的指导其实验。1.3. 项目要求1.3.1 功能要求实现虚拟实验平台具有网络基本功能,客户机和主机,客户机和客户机之间的即时通讯、文件的传输。1.3.2 B/S与 C/S 目前的软件系统体系结构一般分为两种形式,一种为大家所熟识的C/S 结构,另一种为B/S 结构。C/S 结构,即Client/Server(客户端/服务器)结构,通过将任务合理分配到Client 端和Server 端,降低了系统的通讯开销,可以充分利用两端硬

10、件环境的优势。B/S 结构,即Browse /Server(浏览器/服务器)结构,就是只安装维护一个服务器,而客户端采用浏览器运行软件,进行浏览、访问、操作数据。最初的管理信息系统基本上是采用C/S 模式开发的,但随着WWW 的广泛应用,目前的管理信息系统已经逐渐开始从C/S 模式向浏览器/服务器B/S 模式转变。B/S 结构的软件所有的维护、升级工作都只在服务器上进行,而客户端能立刻获得最新版本的软件。1.3.3 通信协议的选择主机与客户机之间采用TCP协议,保证其可靠性。客户机之间采用UDP非连接,不可靠的通讯协议,相对于tcp来说,虽然可靠性不及,但传输效率较高。对于即时通信的系统,选择

11、UDP,就是要保证较高的传输效率。1.4. 项目难点及解决方法 1.4.1 IP处理问题 由于涉及到各种局域网,因此需要处理各种私有IP的访问问题。解决方法:采用NAT技术实现私有地址转换成公共有效的地址。1.4.2 Client之间的通信问题解决方法:利用服务器的打洞原理(后详)2. 网络基础知识介绍2.1. SOCKET编程什么是 socket?它是使用 标准Unix 文件描述符 (file descriptor) 和其它程序通讯的方式。Unix 程序在执行任何形式的 I/O 的时候,程序是在读或者写一个文件描述符。一个文件描述符只是一个和打开的文件相关联的整数。但是(注意后面的话),这个

12、文件可能是一个网络连接,FIFO,管道,终端,磁盘上的文件或者什么其它的东西。Unix 中所有的东西就是文件!所以,你想和Internet上别的程序通讯的时候,你将要使用到文件描述符。你必须理解刚才的话。现在你脑海中或许冒出这样的念头:“那么我从哪里得到网络通讯的文件描述符呢?”,这个问题无论如何我都要回答:你利用系统调用 socket(),它返回套接字描述符 (socket descriptor),然后你再通过它来进行send() 和 recv()调用。“但是.”,你可能有很大的疑惑,“如果它是个文件描述符,那么为什 么不用一般调用read()和write()来进行套接字通讯?”。答案是:“

13、你可以,但是使用send()和recv()让你更好的控制数据传输。”存在这样一个情况:在我们的世界上,有很多种套接字。有DARPA Internet 地址 (Internet 套接字),本地节点的路径名 (Unix套接字),CCITT X.25地址 (你可以将X.25 套接字完全忽略)。也许在你的Unix 机器上还有其它的。2.2. P2P网络简介(introduction) P2P技术源于局域网共享,其目标是改变人们通过服务器中转交换文件的传统方式,达到自由交换资源的目的。IBM为P2P下了如下定义:系统由若干互联协作的计算机构成,且至少具有如下特征之一:系统依存于边缘化(非中央式服务器)设

14、备的主动协作,每个成员直接从其他成员而不是从服务器的参与中受益;系统中成员同时扮演服务器与客户端的角色;系统应用的用户能够意识到彼此的存在,构成一个虚拟或实际的群体。P2P网络是互联网整体架构的基础,互联网最基本的 TCP/IP协议并没有客户端和服务器的概念,在通讯过程中,所有的设备都是平等的一端。P2P 技术改变了“内容”所在的位置,使其正在从“中心”走向“边缘”,也就是说不再如CS模式将内容存于主要的服务器上,而是存在所有用户的 PC 机上。广义的P2P 网络将 P2P网络划分为纯分散式 P2P网络(如gnutella模型)、超级结点式网络和混合式 P2P网络等大类。本文所讨论的通讯技术属

15、于混合式 P2P网络,各节点之间可以直接建立连接,但网络的构建需要服务器,通过集中认证,建立索引机制。但是这里的服务器仅用于辅助对等节点之间建立连接,对等节点之间直接进行通信,这不同于 C/S 模式中的服务器。如图1 p2p网络传输模型所示: 图1 p2p网络传输模型3. 项目网络通信的实现过程3.1. NAT的一些基本概念NAT(Network Address Translators),网络地址转换:网络地址转换是在IP地址日益缺乏的情况下产生的,它的主要目的就是为了能够地址重用。NAT分为两大类,基本的NAT和NAPT(Network Address/Port Translator)。最开

16、始NAT是运行在路由器上的一个功能模块。最先提出的是基本的NAT,它的产生基于如下事实:一个私有网络(域)中的节点中只有很少的节点需要与外网连接。那么这个子网中其实只有少数的节点需要全球唯一的IP地址,其他的节点的IP地址应该是可以重用的。因此,基本的NAT实现的功能很简单,在子网内使用一个保留的IP子网段,这些IP对外是不可见的。子网内只有少数一些IP地址可以对应到真正全球唯一的IP地址。如果这些节点需要访问外部网络,那么基本NAT就负责将这个节点的子网内IP转化为一个全球唯一的IP然后发送出去。(关于基本的NAT可以参看RFC 1631)3.2. 通信过程 另外一种NAT叫做NAPT,从名称上我们也可以看得出,NAPT不但会改变经过这个NAT设备的IP数据报的IP地址,还会改变IP数据报的TCP/UDP端口。基本NAT的设备可能我们见的不多,NAPT才

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号