一种虚拟专用网络通信系统、连接方法及数据包传输方法

文档序号:8265479阅读:550来源:国知局
一种虚拟专用网络通信系统、连接方法及数据包传输方法
【技术领域】
[0001]本发明涉及数据传输技术领域,具体涉及一种虚拟专用网络通信系统、连接方法及数据包传输方法。
【背景技术】
[0002]目前,会话初始协议(Sess1n Initiat1n Protocol, SIP)已经能够实现IP网络中的点对点或多点之间的多媒体通讯,而且基于开源项目的SIP协议栈层出不穷,如VOCAL, osip, mjsip 等,目前已开发出多种 SIP 终端,如 X-Lite, sipXphone, Linphone,sipDroid等,而且Android操作系统已经成为全球最受欢迎的智能移动设备平台之一,SIP协议与Android的结合,将是音视频通讯领域的趋势之一,而在网络通讯过程中信息保密的需求是必需的,在通讯过程中实现VPN,就很好的解决了这个问题,而在现有Android操作系统中,OpenVpn很好的实现了 VPN的功能。但是,OpenVpn的功能及实现复杂,涉及网络协议众多,对于开发人员来说理解难度大,维护成本高。对于硬件资源有限的手机平台,消耗资源多,降低性能。普通用户在日常生活中的信息交流不需要太复杂的加密处理,OpenVpn会影响处理速度及用户体验。

【发明内容】

[0003]本发明的目的在于提供一种虚拟专用网络通信系统、连接方法及数据包传输方法,基于使用Android操作系统的移动设备进行音视频通讯的过程中,信息需要进行加密处理,采用N2N架构实现VPN网络,以保证通讯双方隐私不被泄露,架构简洁清晰,实现简单精简,易于移植,把P2P的实现从应用层转移到网络层。
[0004]为了达到上述目的,本发明通过以下技术方案实现:一种虚拟专用网络通信系统,其特点是,包含:
多个客户端设备,当客户端设备之间通信时,发送数据包的客户端设备称为本地客户端,接收数据包的客户端设备称为对端客户端;
服务器设备,采用预设协议与所述客户端设备通过虚拟专用网络建立VPN连接;
其中所述客户端设备包含;
认证请求单元,用于向所述服务器设备发送认证信息进行认证,在所述认证失败时,月艮务器设备将VPN连接失败报告给所述客户端设备,在所述认证成功时,服务器设备与客户端设备通过虚拟专用网络建立VPN连接;
第一存储单元,用于存储对端客户端的MAC地址链表及服务器设备的IP地址;
虚拟网卡,具有属于虚拟专用网络的虚拟IP地址;
加密单元,与所述虚拟网卡对应,用于对需要从虚拟网卡发送的数据包进行加密。
[0005]所述的客户端设备进一步包含解密单元,与所述虚拟网卡对应,用于对从该虚拟网卡接收的数据包进行解码。
[0006]所述的服务器设备包含: 验证单元,用于对客户端设备发送的认证信息进行判断;
第二存储单元,用于存储已认证客户端设备链表;
转发单元,用于在客户端设备之间通信时传递数据。
[0007]所述的预设协议为UDP协议。
[0008]一种虚拟专用网络连接方法,其特点是,包含以下步骤:
Al、客户端设备通过认证请求单元向服务器设备发送认证请求并发送认证信息;
A2、服务器设备的验证单元对所述认证信息进行认证;
A3、在所述认证失败时,服务器设备将VPN连接失败报告给所述客户端设备;
A4、在所述认证成功时,服务器设备与客户端设备通过虚拟专用网络建立VPN连接。
[0009]所述的认证信息至少包含VPN用户名及密码。
[0010]一种虚拟专用网络数据包传输方法,用于本地客户端与对端客户端进行通信,其特点是,包含以下步骤:
51、本地客户端的加密单元对数据包进行加密后发送至虚拟网卡的虚拟IP地址上;
52、本地客户端在第一存储单元中的对端客户端的MAC地址链表中查找目的MAC地址;
521、若不存在,则丢弃数据包;
522、若存在,则对端客户端通过虚拟网卡接收数据包;
53、对端客户端在其本身的第一存储单元的对端客户端的MAC地址链表中查找数据包的源MAC地址;
531、若存在,则更新第一存储单元中的对端客户端的MAC地址链表;
532、若不存在,则发送一个REGISTER类型消息至本地客户端进行注册;
所述的的步骤S31进一步包含,
S311、对端客户端的解密单元对数据包进行解密后进行后续处理。
[0011]在所述步骤SI之前包含步骤SO ;所述步骤SO为本地客户端与对端客户端进行首次通信时,本地客户端发送的数据包经服务器设备转发至对端客户端。
[0012]所述的步骤SO具体包含:
501、本地客户端的加密单元对数据包进行加密,通过虚拟网卡将数据包发送至服务器设备;
502、服务器设备判断数据包类型是否为MSG_TYPE_PACKET;
5021、若是,则服务器设备遍历第二存储单元的已认证客户端设备链表;
5022、若否,则丢弃数据包;
所述步骤S21进一步包含,
S0211、服务器设备查询当前数据包的目的MAC地址是否存在;
S02111、若是,则将数据包经转发单元转发至对端客户端;
若否,则执行步骤S022丢弃数据包。
[0013]所述的本地客户端与对端客户端进行通信之前,还包含本地客户端与对端客户端需在服务器设备上进行认证。
[0014]本发明一种虚拟专用网络通信系统、连接方法及数据包传输方法与现有技术相比具有以下优点:可应用于在Android操作系统中的任意网络数据过程中,且易于移植,把P2P的实现从应用层转移到网络层;使用通用的UDP协议,更好的兼容防火墙的策略,用户自己定义密钥,应用更加广泛;加密算法采用twofish,开源、简便,处理速度快。
【附图说明】
[0015]图1为N2N网络构架图;
图2为本发明一种虚拟专用网络通信系统的结构框图;
图3为虚拟专用网络的连接方法流程图;
图4为本地客户端与对端客户端首次通信方法流程图;
图5为本地客户端与对端客户端通信方法流程图。
【具体实施方式】
[0016]以下结合附图,通过详细说明一个较佳的具体实施例,对本发明做进一步阐述。
[0017]N2N是一个双层架构的VPN,它让用户可以在网络层上开发P2P应用的典型功能,而不是在应用层上开发。这意味着用户可以获取本地IP—样的可见度,并且可以通过N2N虚拟网内的IP地址相互访问,而不必关心当前所属的物理网络地址。可以这样说,OpenVPN是把SSL从应用层转移到网络层实现(比如说实现https协议),而N2N则是把P2P的实现从应用层转移到网络层。
[0018]如图1所示,Edge node (边缘节点),指用户机器上安装的用于建立N2N网络的软件。几乎每个edge node都会建立一个tun/tap设备,作为接入N2N网络的入口。
[0019]Super node (超级节点),它在edge node间建立握手,或为位于防火墙之后的节点中转数据。它的基础作用是注册节点的网络路径,并为不能直通的节点做路由,能够直通的节点间通信,是P2P的。
[0020]Edge节点间通过虚拟的tap网卡交互。每个tap网卡都是一个N2N Edge node。每台用户机器可以有多个tap网卡,所以,在N2N网络中,同一台用户机器可以属于多个网络。
[0021]N2N是基于P2P协议之上的两个私有网络间的加密层,加密是在edge node上执行的,使用开放的协议,用户自己定义密钥,即你自己控制自己的安全,不需要委托给第三方公司,每个N2N
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1