发明内容
本发明的目的在于通过有线承载无线、在链路层对无线进行模拟,可以在有限的空间进行大规模仿真测试,从而规避了空口资源的特殊性。
根据本发明的示例性实施例,提供了一种无线环境模拟方法,所述方法包括:在至少一台计算机上运行分别模拟多个无线终端的多个程序;在其他至少一台计算机上运行分别模拟多个无线接入点的多个程序;所述至少一台计算机和所述其他至少一台通过有线网络进行连接以通过有线网络来模拟无线终端和无线接入点之间的无线通信。
根据本发明的另一示例性实施例,所述程序可以是虚拟机或进程。
根据本发明的另一示例性实施例,所述方法还可包括:将有线链路层协议承载在无线链路层协议之上并通过有线物理层来代替无线物理层。
根据本发明的另一示例性实施例,所述有线链路层协议可以是IEEE802.3、ATM、PPP、X.21,所述无线链路层协议是IEEE 802.11、IEEE 802.16、IEEE 802.15、wcdma、td-scdma、cdma-2000。
根据本发明的另一示例性实施例,在有线链路层协议与无线链路层协议之间可存在多层次的附加的承载协议。
根据本发明的另一示例性实施例,针对操作***网络协议栈,可将基于有线链路层协议承载无线链路层协议的虚拟网络接口对应于无线接口。
根据本发明的另一示例性实施例,针对报文发送,可通过虚拟网络接口的驱动程序将无线报文封装在有线报文中以发送到有线网络中。
根据本发明的另一示例性实施例,针对报文接收,可接收到报文后,虚拟网络接口的驱动程序去除外层有线承载协议头和无线协议头,将数据发送至网络协议栈,网络协议栈再将报文发送到上层应用处理。
根据本发明的另一示例性实施例,所述多层次的附加的承载协议可以是下面所述的协议:(1)标准链路层附加协议或自定义链路层协议;(2)在(1)与无线链路层协议之间的标准网络层协议或自定义网络层协议;(3)在(2)与无线链路层协议之间的标准传输层协议或自定义传输层协议;(4)在(2)与无线链路层协议之间的IPIP标准隧道协议或自定义隧道协议;(5)在(3)与无线链路层协议之间的GRE、Capwap或IPSEC标准隧道协议或自定义隧道协议;(6)在(3)、(4)、(5)与无线链路层协议之间的用户自定义承载协议。
具体实施方式
以下,参照附图来详细说明本发明的实施例。下面为了描述方便,将简单介绍一下本发明所使用的术语,比如API、ABI。API是ApplicationProgramming Interface的缩写,表示应用程序编程接口;它是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件访问一组例程的能力,而又无需访问API内部源码或理解API内部工作机制的细节。ABI是application binary interface的缩写,表示应用程序二进制接口;它描述了应用程序与操作***之间的底层接口。ABI涉及了程序的各个方面,比如:目标文件格式、数据类型、数据对齐、函数调用约定以及函数如何传递参数、如何返回值、***调用号、如何实现***调用等。从上面的描述可以看出,ABI与API是不同的。API定义了源代码和库之间的接口,因此同样的代码可以在支持这个API的任何***中编译,而ABI允许编译好的目标代码在使用ABI的***中无需改动就能运行。
所以从使用角度出发,最佳软件重用方式是ABI级别重用,即直接获得已经编译好的二进制文件;而API级别重用,需要基于API重新编译、链接生成新的二进制文件。
在对AC进行测试的过程中,我们需要能够支持高、中端的无线接入控制器的业务压力测试。在对高、中端的无线接入控制器进行业务压力测试时,需要满足下面所述的三个约束条件:
约束条件1:需要能够重用已有的测试软件,优先在ABI级别重用,次选在源代码级别重用。比如做UDP流量测试,优先能够重用已有的流量测试工具(chariot、iperf、netperf等);
约束条件2:能够最接近真实的模拟用户无线行为(比如无线关联、认证、QoS协商、切换、漫游等行为);
约束条件3:与现有技术中进行压力测试的方案A相比,能够在有限的空间资源、有限的设备资源情况下支撑目标。优选地,所谓有限的空间资源、有限的设备资源,应该要比现有技术方案所需的相应的空间或设备资源降低一个数量级。
从背景技术中对现有技术的无线接入控制器的业务压力测试方法的描述,可以看出现有技术中的方案A满足约束条件1和约束条件2,不满足约束条件3。
本发明将通过对几个不同的技术方案的分析,获得能够满足所有约束条件的方案。这里,先对3个目标约束条件独立地进行分析。
约束条件3可被分解为包括约束条件3.1和约束条件3.2的两个子约束条件。其中,约束条件3.1相比方案A要求能够在有限的空间资源情况下支撑目标;约束条件3.2相比方案A要求能够在有限的设备资源情况下支撑目标。
这里,方案A无法满足约束条件3.1的根本原因在于空口资源的特殊性。无线协议在物理层是通过无线电波传递的,不同的无线标准使用不同频率的无线电波,比如802.11无线协议使用2.4GHz或5.8GHz的无线频谱,在同一个空间内只能有几个不冲突的可工作频段,这也就意味着在同一个空间内只能有几台AP同时工作并且不相互干扰,所以无线设备实际都是蜂窝部署(比如2G/3G手机基站)。就是这种空口资源的特殊性,导致方案A无法满足约束条件3.1。要满足约束条件3.1,必须从根本上解决或规避空口资源特殊性。
为了满足约束条件3.1,可以将无线终端内置到AP中,无线终端与AP通过IPC(进程间通信或进程内通信机制)承载空***互报文(即方案A中无线终端与AP的802.11交互报文),这样将真实的空***互隐藏到设备内部,规避空口资源特殊性,可以满足约束条件3.1。这里,为了描述简便,将无线终端内置到AP中方案称作方案B。
另外,因为无线终端与AP均支持使802.11承载在802.3之上的虚拟网卡,无线终端与AP通过802.3有线承载空***互报文,这样将真实的空***互隐藏到有线网络内部,规避空口资源特殊性。这种技术方案(下文中将其称为方案C)也可以满足约束条件3.1。
图2示出了方案C这样的情况。在图2中,在无线终端和AP之间通过802.3协议来用有线承载空***互报文,从而将真实的空***互隐藏到有线网络内部,从而规避了空口资源的特殊性。
对于约束条件3.2,如果要满足约束条件3.2,最简单的方案是虚拟化。这里的虚拟化是宏观的虚拟化,只要能够达到在一个物理设备上模拟出多个真实设备即可。为了实现这种虚拟化,可以采用方案D:通过使用目前市场上的虚拟化产品(vmware、xen、linux kvm/lxc等),可以模拟多个无线终端,以满足约束条件3.2。
另外,为了满足约束条件3.2,也可采用方案E:通过自行定制软件,比如通过将AP功能封装到一个进程中,在一台计算机上运行多个AP模拟进程,并将无线终端功能封装到一个进程中,在一台计算机上运行多个无线终端功能模拟进程。
下面,将针对上面为了满足约束条件3.1和约束条件3.2提出的方案B、C以及方案D、E(其中,方案B和方案C满足约束条件3.1,而方案D和方案E满足约束条件3.2)的组合,来找到满足约束条件2的方案。
针对方案B与方案D的组合,可以在一台计算机上运行多个虚拟机,每个虚拟机可执行多个无线终端的无线终端的功能和一个AP的AP功能,即,使无线终端功能与AP功能一起在虚拟机上运行,由于多个虚拟机之间的无线终端及AP不能通信,导致不能模拟无线终端漫游机制,所以无法满足约束条件2。
针对方案B和方案E的组合,即无线终端与AP一起运行在一个进程内,这样一个计算机(或服务器)上可以运行多个这种进程(比如支持n个),通过进程间通信机制,能够模拟一个计算机(或服务器)内部的模拟无线终端在模拟AP之间漫游,但无法模拟一个计算机(或服务器)上的模拟无线终端与另一个计算机(或服务器)上模拟AP之间的漫游,所以只能部分满足约束条件2。
针对方案C和方案D的组合,对应于无线终端的各个计算机上运行了多个虚拟机,每个虚拟机可执行一个无线终端的全部功能;另外,对应于AP的各个计算机上也运行了多个虚拟机,每个虚拟机可执行一个AP的全部功能。根据该技术方案,用虚拟机分别模拟无线终端和AP,此时,所述模拟无线终端与AP的虚拟机分别运行于不同的计算机(或服务器)上。其中,用于模拟无线终端与AP的计算机(服务器)之间通过真实的有线网络通信,其中,所述有线网络可以是二层网络,也可以是三层网络。这里,每个无线终端可对应于一个虚拟机,而每个AP可对应于一个虚拟机。这样,能够完全模拟无线终端在任意AP上漫游;同时能够完全模拟用户其它无线行为(比如无线关联、认证、QoS协商等行为),所以能够完全满足约束条件2。
针对方案C和方案E的组合,除了无线终端的功能与AP的功能分别用独立的进程模拟之外,其他方面与方案C和方案D的组合相同。在方案C与方案E的组合方案中,无线终端与AP之间通过有线网络通信,能够完全模拟无线终端在任意AP上漫游;同时能够完全模拟用户其它无线行为(比如无线关联、认证、QoS协商等行为),所以能够完全满足约束条件2。
下面,将针对方案D和方案E来对约束条件1进行分析。关于方案D,由于客户机是在操作***层面模拟,一方面天然支持ABI级别重用(满足约束条件1的ABI级别重用要求),一方面天然支持网络协议栈的隔离(网络协议栈多实例化)。对于方案E,由于模拟AP、模拟终端是作为进程存在,一台计算机上的多个模拟AP、模拟无线终端实际运行在一个操作***之上,没有网络协议栈的多实例化,所以模拟AP需要内置自定义的网络协议栈,以支持网络协议栈的多实例化,所以只能满足约束条件1的API级别重用。
从上面的描述可以看出,对于方案C和方案D组合而成的技术方案,该技术方案不但能够完全满足约束条件2和约束条件3,还能够满足约束条件1的最优要求(ABI级别兼容);而对于方案C和方案E组合而成的技术方案,该技术方案与方案C和方案D组合而成的技术方案的区别在于,由于模拟AP、模拟终端是作为进程存在,所以只能满足约束条件1的API级别重用。
图3示出了根据本发明示例性实施例的由上述方案C和方案D组合而成的无线环境模拟方法的示意图。如图3所示,在至少一台计算机上运行分别模拟多个无线终端的多个虚拟机并在其他至少一台计算机上运行分别模拟多个AP的多个虚拟机,运行分别模拟无线终端的虚拟机的至少一台计算机与运行分别模拟AP的至少一台计算机之间通过有线网络进行连接以通过有线网络来模拟无线终端和AP之间的无线通信。两类计算机之间通过真实的有线网络互联,所述有线网络可以是二层网络,也可以是三层网络;可以是局域网,也可以是广域网。理论上两两可见,即任意一台计算机可以连接到任意另一台计算机。
综合上面的分析,本发明提供了一种实现模拟无线环境的方法。也即,通过用虚拟机或进程分别在计算机上模拟多个无线终端和AP的功能,而计算机之间通过有线网络进行连接。
之所以用有线网络来模拟无线网络,这是因为有线网络中的多根网线是互不干扰的,因此,可以在有限的空间内大量部署有线网络,从而通过将传输介质封闭在网线内来规避无线网络的空口资源特殊性。因此,可通过在有线网络承载无线网络来规避无线网络的空口资源特殊性。与此同时,通过有线链路层协议承载无线链路层协议,通过有线物理层来代替无线物理层对空间、频段需求的局限性。
其中,这里所述的有线链路层协议可以是目前使用最广泛的以太网(IEEE 802.3)、也可以是ATM、PPP、X.21等有线标准;无线链路层协议可以是WLAN(IEEE 802.11)、Wimax(IEEE 802.16)、蓝牙/Zigbee(IEEE 802.15)、2G/3G/4G(wcdma、td-scdma、cdma-2000)等无线标准。其中,在有线链路层协议与无线链路层协议之间还可以有其它多层次的附加的承载协议。作为示例,所述多层次的附加的承载协议可以是下面所述的协议:
(1)可以是vlan(IEEE 802.1Q)、QinQ等标准链路层附加协议或自定义链路层协议;(2)在(1)与无线链路层协议之间可以有的标准网络层(IP层)协议或自定义网络层协议;(3)在(2)与无线链路层协议之间可以有标准传输层(TCP/UDP)协议或自定义传输层协议;(4)在(2)与无线链路层协议之间可以有IPIP等标准隧道协议或其它自定义隧道协议;(5)在(3)与无线链路层协议之间可以有GRE、Capwap、IPSEC等标准隧道协议或自定义隧道协议;(6)在(3)、(4)、(5)与无线链路层协议之间可以有用户自定义承载协议。
根据本发明示例性实施例的核心思想是无线链路层协议承载在有线链路层协议之上。本发明的示例性实施例正是基于“有线链路层协议承载无线链路层协议”的虚拟网络接口技术。
具体地讲,根据本发明示例性实施例,针对操作***网络协议栈,将基于“有线链路层协议承载无线链路层协议”的虚拟网络接口代替无线接口;针对报文发送,上层应用通过网络协议栈发送报文,网络协议栈通过AP选择此虚拟网络接口发送报文:通过虚拟网络接口的驱动程序将无线报文封装在有线报文中,发送到有线网络中;针对报文接收,接收到(有线承载无线的)报文后,虚拟网络接口的驱动程序去除外层有线承载协议头及补充承载协议(如果有补充承载协议的话)和无线协议头,将数据发送到网络协议栈,网络协议栈再将报文发送到上层应用处理。
根据本发明的示例性实施例,通过“有线链路层协议承载无线链路层协议”的虚拟网络接口技术,两个互相交互的应用均认为自己使用的是本地无线接口,而真实交互是在有线网络上,从而规避空口资源的特殊性。
根据本发明的示例性实施例,通过有线承载无线、在链路层对无线进行模拟,可以在有限的空间进行大规模仿真测试,从而规避了空口资源的特殊性。