项目报告
基于网络的虚拟实验平台
—VLP2P 通信库的设计与实现
随着信息技术的发展,网络无疑为我们带了更多的便利,因此一个好的系统
要具有网络功能。针对虚拟实验台系统的实际功能,采用 P2P 技术作为其网络通
讯基础具有很大的优势:降低服务器资源占用,提高通讯传输效率。但由于 NAT
的广泛使用,使得不同的内网间系统通讯比较困难。希望 P2P 通讯具有实用价值,
穿透 NAT 实现不同内网间的系统通讯是一个需要解决的重要问题。
在基于网络的虚拟实验平台中,有很多功能涉及到网络通讯,为了提高系统
的模块化程度,减少系统重复开发量,将网络通信部分独立出来,设计实现名为
VLP2P 的 P2P 通讯库。设计中,也设计了通讯库的测试程序。经实际测试,基本
达到预期设计目标。
虚拟实验平台;P2P 技术;UDP;穿透 NAT;Scoket 编程
Network-based Virtual Experimental Platform——
Design and Implementation of VLP2P Communication Library
Abstract
With the development of information technology, networks will provide us with
more convenience undoubtedly. Therefore, a good system must have 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 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 virtual
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 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 programming
目 录
总页数:20 页
1 引言............................................................................................................................................1
1.1. 项目背景........................................................................................................................1
1.2. 项目介绍........................................................................................................................1
1.2.1 虚拟实验平台............................................................................................................1
1.2.2 平台网络通信............................................................................................................1
1.3. 项目要求........................................................................................................................1
1.3.1 功能要求....................................................................................................................1
1.3.2 B/S 与 C/S.................................................................................................................2
1.3.3 通信协议的选择........................................................................................................2
1.4. 项目难点及解决方法....................................................................................................2
1.4.1 IP 处理问题...............................................................................................................2
1.4.2 Client 之间的通信问题...........................................................................................2
2. 网络基础知识介绍....................................................................................................................2
2.1. SOCKET 编程...................................................................................................................2
2.2. P2P 网络简介(INTRODUCTION) .........................................................................................3
3. 项目网络通信的实现过程........................................................................................................4
3.1. NAT 的一些基本概念.....................................................................................................4
3.2. 通信过程........................................................................................................................4
3.3. 通信过程总结................................................................................................................7
4. 实现代码及其效果简介............................................................................................................8
4.1. 程序主要功能介绍........................................................................................................8
4.2. 主要代码介绍................................................................................................................8
4.3.1 服务器监听过程主要代码........................................................................................8
4.3.2 客户端连接过程主要代码........................................................................................8
4.3.3 下载实验文本(客户端主要代码)........................................................................9
4.3.4 下载实验文本(服务器端主要代码)....................................................................9
4.3.5 P2P 下载实验文本(客户端主要代码)...............................................................10
4.3.6 客户端 P2P 下载实验文本(服务器端主要代码)..............................................11
4.3. 效果演示......................................................................................................................12
4.3.1 开启服务及客户端登陆..........................................................................................12
4.3.2 通过服务器下载实验文本......................................................................................13
4.3.3 退出连接..................................................................................................................14
结 论..........................................................................................................................................14
参考文献..........................................................................................................................................14
附 录..........................................................................................................................................16
致 谢..........................................................................................................................................19
声 明..........................................................................................................................................20
第 1 页 共 20 页
1 引言
Internet 进行访问。NAT 技术可以为 TCP、UDP 以及 ICMP 的部分信息进行
透明中继。NAT 技术具体实现方法是通过 IP 地址映射来实现 IP 地址的复用。
NAT 网关充当了路由器的角色,所有外出的网络包都必须路由到 NAT 网关;同样,
所有由外网发往内网的网络包也必须经过 NAT 网关。NAT 网关通过一定的规则,
将由内部网向外部网发送的数据包中的源地址映射为一个 Internet 合法地址,而
将由外向内的数据包中的目的地址替换成相应的内网 IP 地址。NAT 网关有内网
接口和外网接口,其中外网接口和 Internet 相连,必须拥有合法 IP 地址,内网接口
则和内网相连,可以分配任意指定的一个内网 IP 地址,一般情况下,这个 IP 地址就
是内部主机的默认网关。
1.1. 项目背景
随着信息技术的发展,网络无疑为我们带了更多的便利,因此一个好的系统
必须要具有网络功能,这个功能不仅局域网,那就存在一个穿透 NAT 的问题,伴
随着 P2P 技术的出现,利用 UDP 实现 P2P 网络穿越 NAT 的即时通讯技术,我们不
在为此而烦恼。
1.2. 项目介绍
1.2.1 虚拟实验平台
虚拟实验平台是通过软件编程仿真各种电子器件,可以做各种电路实验及设
计性实验、 基本电路实验、 直流电路、 交流电路、 动态电路、 这些功能模块
成为虚拟平台与实验者之间的桥梁, 共同构成网上虚拟实验室系统,起到帮助
学生完成实验任务。
1.2.2 平台网络通信
实现虚拟实验平台具有网络基本功能,实现虚拟实验平台具有网络基本功能,
客户机和主机,客户机和客户机之间的即时通讯、文件的传输。由于采用了最新
的 P2P 穿透 NAT 的技术,因此可以实现冲破局域网的限制,实现真正的异地连接,
同学可以在家里利用一台普通的能够上网的 PC,就能把老师布置的实验作业完
成,并且,老师可以通过服务器端,了解进度情况,并且可以适时的指导其实验。
1.3. 项目要求
1.3.1 功能要求
实现虚拟实验平台具有网络基本功能,客户机和主机,客户机和客户机之间
的即时通讯、文件的传输。