网络仿真方法及系统技术方案

技术编号:21612108 阅读:47 留言:0更新日期:2019-07-13 20:37
本发明专利技术公开了一种网络仿真方法及系统,涉及网络仿真领域。该方法的步骤包括:仿真启动流程:创建虚拟进程及其虚拟接口后,根据预先设置的配置文件对虚拟进程进行配置;数据包通信流程:虚拟进程收到数据包后,将数据包形成以太网包,若当前虚拟进程的虚拟接口的通信模式为虚拟通信模式,则对以太网包进行封装后,发送至目的虚拟进程;若当前虚拟进程的虚拟接口的通信模式为真实通信模式,则直接将以太网包发送至目的真实设备。本发明专利技术进行网络仿真时,能够在降低系统的运行开销的同时,简化操作过程,便于人们使用。

Network simulation method and system

【技术实现步骤摘要】
网络仿真方法及系统
本专利技术涉及网络仿真领域,具体涉及一种用于NVO3(NetworkVirtualizationOverLayer3,基于三层IPoverlay网络构建虚拟网络技术)的网络仿真方法及系统。
技术介绍
数据中心网络中的物理服务器可虚拟多台主机,对用户而言,一台虚拟机相当于一台物理主机。传统交换机不能很好地支持虚拟化。为此业界提出了NVO3方案,即将2层帧封装在隧道中经过3层网络转发,从而扩展2层网络范围。NVO3方案包含多种可选隧道技术,例如IP、UDP(UserDatagramProtocol,用户数据报协议)和VXLAN(VirtualExtensibleLAN,虚拟扩展局域网)等。在2层以太网帧前增加隧道封装后,实现隧道转发。目前,进行网络仿真时,一般通过虚拟机(例如VMware虚拟机、VirtualBox虚拟机和LINUX虚拟机等)进行仿真,但是使用虚拟机不仅会增大系统的运行开销(1台虚拟机启动需要200M的内存),而且操作过程比较复杂,不便于人们使用。
技术实现思路
针对现有技术中存在的缺陷,本专利技术解决的技术问题为:进行网络仿真时,如何在降低系统的运行开销的同时,简化操作过程。为达到以上目的,本专利技术提供的网络仿真方法,该方法包括以下步骤:仿真启动流程:创建虚拟进程及其虚拟接口后,根据预先设置的配置文件对虚拟进程进行配置;数据包通信流程:虚拟进程收到数据包后,将数据包形成以太网包,若当前虚拟进程的虚拟接口的通信模式为虚拟通信模式,则对以太网包进行封装后,发送至目的虚拟进程;若当前虚拟进程的虚拟接口的通信模式为真实通信模式,则直接将以太网包发送至目的真实设备。在上述技术方案的基础上,所述仿真启动流程包括以下步骤:为每条虚拟进程创建脚本配置文件,脚本配置文件包括虚拟进程参数,虚拟进程参数包括虚拟进程的路由、ARP和MAC地址;创建虚拟进程:初始化LINUXTCP/IP协议栈,创建虚拟进程及其虚拟接口,虚拟接口的通信模式为虚拟通信模式和真实通信模式,将虚拟接口与一个主机网卡关联,将所有与虚拟接口关联的主机网卡形成组播组;为每个虚拟接口配置的连接ID和MAC地址,需要通信的虚拟接口的连接ID相同;所有虚拟进程创建完成后,根据脚本配置文件对虚拟进程进行配置;该方法的运行环境为Windows环境时,该方法还包括以下流程:将LINUXTCP/IP协议栈的LINUX进程和线程,适配为Windows线程;将LINUXTCP/IP协议栈的LINUX锁,适配为Windows互斥锁;在保持LINUXTCP/IP协议栈的LINUX汇编函数的调用关系的基础上,将LINUX汇编函数转换为C语言、并将转换后的C语言与Windows环境中的C语言编译器适配。在上述技术方案的基础上,所述仿真启动流程还包括以下步骤:将所有脚本配置文件形成批处理文件,所述根据脚本配置文件对虚拟进程进行配置的流程包括:根据批处理文件对所有虚拟进程进行配置。在上述技术方案的基础上,所述数据包通信流程包括以下步骤:虚拟进程将收到的数据与虚拟进程的虚拟接口信息关联后,形成以太网包;确定当前虚拟接口的通信方式:若通信方式为虚拟通信模式,对以太网包增加封装信息,封装信息包括虚拟接口的连接ID和MAC地址;调用与虚拟接口关联的主机网卡,根据目的IP和目的端口,将封装后的以太网包发送至所述组播组,组播组中的虚拟进程接收组播包;若通信方式为真实通信模式,将以太网包发送至目的真实设备,真实设备接收以太网包。在上述技术方案的基础上,所述组播组中的虚拟进程接收组播包的流程包括:虚拟进程的虚拟接口的主机网卡收到组播包后,对组播包进行解析,得到组播包的封装信息和净荷信息,封装信息包括连接ID和MAC地址;若当前虚拟接口的连接ID与组播包的连接ID相同、且当前虚拟接口的MAC地址与组播包的MAC地址不同,则调用当前虚拟接口将组播包的净荷信息发送至LINUX协议栈进行处理;所述真实设备接收以太网包的流程包括:真实设备的主机网卡收到以太网包后,若存在与当前主机网卡关联的虚拟接口,则调用收包函数将以太网包发送至LINUX协议栈进行处理。本专利技术提供的网络仿真系统,该系统用于:仿真启动流程:创建虚拟进程及其虚拟接口后,根据预先设置的配置文件对虚拟进程进行配置;数据包通信流程:虚拟进程收到数据包后,将数据包形成以太网包,若当前虚拟进程的虚拟接口的通信模式为虚拟通信模式,则对以太网包进行封装后,发送至目的虚拟进程;若当前虚拟进程的虚拟接口的通信模式为真实通信模式,则直接将以太网包发送至目的真实设备。在上述技术方案的基础上,该系统包括脚本配置模块、LINUXTCP/IP协议栈模块、控制台模块、接口驱动模块;在此基础上,所述仿真启动流程包括:脚本配置模块为每条虚拟进程创建脚本配置文件,脚本配置文件包括虚拟进程参数,虚拟进程参数包括虚拟进程的路由、ARP和MAC地址;创建虚拟进程:LINUXTCP/IP协议栈模块初始化LINUXTCP/IP协议栈,控制台模块创建虚拟进程,接口驱动模块创建虚拟进程的虚拟接口,虚拟接口的通信模式为虚拟通信模式和真实通信模式;控制台模块将虚拟接口与一个主机网卡关联,将所有与虚拟接口关联的主机网卡形成组播组;为每个虚拟接口配置的连接ID和MAC地址,需要通信的虚拟接口的连接ID相同;所有虚拟进程创建完成后,控制台模块根据脚本配置模块创建的脚本配置文件对虚拟进程进行配置。该系统的运行环境为Windows环境时,该系统还包括OS适配模块,其用于:将LINUXTCP/IP协议栈的LINUX进程和线程,适配为Windows线程;将LINUXTCP/IP协议栈的LINUX锁,适配为Windows互斥锁;在保持LINUXTCP/IP协议栈的LINUX汇编函数的调用关系的基础上,将LINUX汇编函数转换为C语言、并将转换后的C语言与Windows环境中的C语言编译器适配。在上述技术方案的基础上,所述脚本配置模块还用于:将所有脚本配置文件形成批处理文件;所述控制台模块根据脚本配置模块创建的脚本配置文件对虚拟进程进行配置的流程包括:控制台模块根据批处理文件对虚拟进程进行配置。在上述技术方案的基础上,所述数据包通信流程包括:控制台模块将收到的数据包与虚拟进程的虚拟接口信息关联后,形成以太网包;接口驱动模块确定当前虚拟接口的通信方式:若通信方式为虚拟通信模式,则对以太网包增加封装信息,封装信息包括所述连接ID和MAC地址;接口驱动模块在与虚拟接口关联的主机网卡上调用Winsock接口,根据目的IP和目的端口,将封装后的以太网包发送至组播组,组播组中的虚拟进程接收组播包;若通信方式为真实通信模式,接口驱动模块调用与虚拟接口关联的主机网卡,将以太网包发送至目的真实设备,真实设备接收以太网包。在上述技术方案的基础上,所述组播组中的虚拟进程接收组播包的流程包括:虚拟进程的虚拟接口的主机网卡收到组播包后,接口驱动模块对组播包进行解析,得到组播包的封装信息和净荷信息,封装信息包括连接ID和MAC地址;接口驱动模块判定当前虚拟接口的连接ID与组播包的连接ID相同、且当前虚拟接口的MAC地址与组播包的MAC地址不同,调用虚拟接口将组播包的净荷信息发送至LINUXTCP/IP协议栈模块进本文档来自技高网...

【技术保护点】
1.一种网络仿真方法,其特征在于,该方法包括以下步骤:仿真启动流程:创建虚拟进程及其虚拟接口后,根据预先设置的配置文件对虚拟进程进行配置;数据包通信流程:虚拟进程收到数据包后,将数据包形成以太网包,若当前虚拟进程的虚拟接口的通信模式为虚拟通信模式,则对以太网包进行封装后,发送至目的虚拟进程;若当前虚拟进程的虚拟接口的通信模式为真实通信模式,则直接将以太网包发送至目的真实设备。

【技术特征摘要】
1.一种网络仿真方法,其特征在于,该方法包括以下步骤:仿真启动流程:创建虚拟进程及其虚拟接口后,根据预先设置的配置文件对虚拟进程进行配置;数据包通信流程:虚拟进程收到数据包后,将数据包形成以太网包,若当前虚拟进程的虚拟接口的通信模式为虚拟通信模式,则对以太网包进行封装后,发送至目的虚拟进程;若当前虚拟进程的虚拟接口的通信模式为真实通信模式,则直接将以太网包发送至目的真实设备。2.如权利要求1所述的网络仿真方法,其特征在于,所述仿真启动流程包括以下步骤:为每条虚拟进程创建脚本配置文件,脚本配置文件包括虚拟进程参数,虚拟进程参数包括虚拟进程的路由、ARP和MAC地址;创建虚拟进程:初始化LINUXTCP/IP协议栈,创建虚拟进程及其虚拟接口,虚拟接口的通信模式为虚拟通信模式和真实通信模式,将虚拟接口与一个主机网卡关联,将所有与虚拟接口关联的主机网卡形成组播组;为每个虚拟接口配置的连接ID和MAC地址,需要通信的虚拟接口的连接ID相同;所有虚拟进程创建完成后,根据脚本配置文件对虚拟进程进行配置;该方法的运行环境为Windows环境时,该方法还包括以下流程:将LINUXTCP/IP协议栈的LINUX进程和线程,适配为Windows线程;将LINUXTCP/IP协议栈的LINUX锁,适配为Windows互斥锁;在保持LINUXTCP/IP协议栈的LINUX汇编函数的调用关系的基础上,将LINUX汇编函数转换为C语言、并将转换后的C语言与Windows环境中的C语言编译器适配。3.如权利要求2所述的网络仿真方法,其特征在于,所述仿真启动流程还包括以下步骤:将所有脚本配置文件形成批处理文件,所述根据脚本配置文件对虚拟进程进行配置的流程包括:根据批处理文件对所有虚拟进程进行配置。4.如权利要求2所述的网络仿真方法,其特征在于,所述数据包通信流程包括以下步骤:虚拟进程将收到的数据与虚拟进程的虚拟接口信息关联后,形成以太网包;确定当前虚拟接口的通信方式:若通信方式为虚拟通信模式,对以太网包增加封装信息,封装信息包括虚拟接口的连接ID和MAC地址;调用与虚拟接口关联的主机网卡,根据目的IP和目的端口,将封装后的以太网包发送至所述组播组,组播组中的虚拟进程接收组播包;若通信方式为真实通信模式,将以太网包发送至目的真实设备,真实设备接收以太网包。5.如权利要求4所述的网络仿真方法,其特征在于,所述组播组中的虚拟进程接收组播包的流程包括:虚拟进程的虚拟接口的主机网卡收到组播包后,对组播包进行解析,得到组播包的封装信息和净荷信息,封装信息包括连接ID和MAC地址;若当前虚拟接口的连接ID与组播包的连接ID相同、且当前虚拟接口的MAC地址与组播包的MAC地址不同,则调用当前虚拟接口将组播包的净荷信息发送至LINUX协议栈进行处理;所述真实设备接收以太网包的流程包括:真实设备的主机网卡收到以太网包后,若存在与当前主机网卡关联的虚拟接口,则调用收包函数将以太网包发送至LINUX协议栈进行处理。6.一种网络仿真系统,其特征在于,该系统用于:仿真启动流程:创建虚拟进程及其虚拟接口后,根据...

【专利技术属性】
技术研发人员:邓冬平杨萍
申请(专利权)人:烽火通信科技股份有限公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1