CN101887379A - 一种基于虚拟网卡的无线信道仿真方法 - Google Patents
一种基于虚拟网卡的无线信道仿真方法 Download PDFInfo
- Publication number
- CN101887379A CN101887379A CN2010102108489A CN201010210848A CN101887379A CN 101887379 A CN101887379 A CN 101887379A CN 2010102108489 A CN2010102108489 A CN 2010102108489A CN 201010210848 A CN201010210848 A CN 201010210848A CN 101887379 A CN101887379 A CN 101887379A
- Authority
- CN
- China
- Prior art keywords
- data
- microsoft loopback
- loopback adapter
- communication process
- send
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于虚拟网卡的无线信道仿真方法,包括以下几个步骤,步骤一:搭建仿真模型的硬件环境;步骤二:构建仿真模型的仿真环境;步骤三:用户配置仿真成员的初始化参数;步骤四:仿真系统加载虚拟网卡驱动,完成内部初始化工作;步骤五:开始仿真,仿真成员进行数据收发;步骤六:结束仿真,评估无线信道的性能;本发明所述的仿真方法配置灵活,可扩展性好;对底层透明,可重用性高;本发明保证了仿真环境与真实环境的一致性,仿真结果更精确,提高了仿真可信度;降低仿真人员的工作量,很容易实现真实环境与仿真环境中应用的互相移植,避免了为仿真环境与真实环境各开发一套应用的重复劳动。
Description
技术领域
本发明涉及一种在Windows操作系统下,一种基于虚拟网卡的无线信道仿真方法,属于信息通信技术领域。
背景技术
随着无线IP网络越来越广泛的应用,对这些网络的建模与仿真也成了一个重要的环节。利用以太网的有线信道对无线信道进行仿真是一种广为采用的方法。
TCP/IP协议族分为四个概念层,自下而上分别为:网络接口层、网间层、传输层、应用层。对于位于最底层网络接口层并没有详细定义。由于底层与硬件的关联十分紧密,所以这部分的功能通常由网络接口卡和相应的网卡驱动来完成。大致相当于开放系统互连(OSI)七层模型中的物理层与数据链路层。
通常在数学仿真中仿真软件对协议族都会有一套专门的实现,而不是直接使用操作系统的协议,这是由具体需求决定的。如OPNET、NS(Network Simulator)等软件中,应用程序、协议实现和网络模拟器都被一起编译形成一个单一的复杂的程序。由于结构过于复杂,这样的模拟器是很难开发、调试、验证和扩展的。模拟器和应用程序之间缺少API(Application Programming Interface,应用程序编程接口)支持也限制了其使用。
在半实物仿真与交互仿真中,一方面仿真环境与真实环境的一致性直接影响到仿真的可信度,另一方面在仿真过程中直接使用操作系统内置的协议能够大大减小开发的工作量。而在实际的仿真环境中底层的实现经常会面临两个问题:首先,在仿真阶段往往还不具备真实的网络接口卡及相关驱动;其次,无线网络接口部分不一定以网络接口卡的形式提供,而Windows内置的TCP/IP协议是以NDIS(Network Driver Interface Specification,网络驱动接口规范)驱动的形式提供的,无法在不符合NDIS规范的设备上直接使用。
发明内容
本发明的目的是为了解决上述问题,提供一种基于虚拟网卡的无线信道仿真方法,对无线信道的数据链路层与物理层进行仿真,底层的协议由仿真人员灵活订制,同时底层通信对上层是透明的,上层应用能够直接使用操作系统自身TCP/IP协议,从而在最大程度上保证仿真环境与真实环境的一致性。
本发明的一种基于虚拟网卡的无线信道仿真方法,包括以下几个步骤:
步骤一:搭建仿真模型的硬件环境;
搭建仿真系统所需的以太网,以及仿真成员内部的物理网卡和虚拟网卡。
步骤二:构建仿真模型的仿真环境;
构建仿真环境,创建仿真成员的虚拟网卡和虚拟信道。
步骤三:用户配置仿真成员的初始化参数;
初始化仿真成员的位置参数(如地理坐标、移动方式等)和网络参数(网络地址、网络性能、通信协议等)。
步骤四:仿真系统加载虚拟网卡驱动,完成内部初始化工作
仿真系统根据用户配置加载虚拟网卡驱动,启动相关的进程和线程,并完成对网卡地址、缓冲区、相关事件和异常报告等对象的分配或初始化工作。
步骤五:开始仿真,仿真成员进行数据收发;
仿真数据从发送方经虚拟网卡和虚拟信道送达一个或多个接收方,并在到达接收方的虚拟网卡之前进行针对信道的仿真处理。
步骤六:结束仿真,评估无线信道的性能。
本发明的优点在于:
(1)配置灵活,可扩展性好。仿真模型中不依赖真实的无线通信设备,虚拟设备的数量和参数可以随意配置;
(2)对底层透明,可重用性高。屏蔽了底层的硬件差异,无论底层采用何种设备,都统一虚拟为以太网卡;
(3)保证了仿真环境与真实环境的一致性,仿真结果更精确,提高了仿真可信度;
(4)降低仿真人员的工作量,真实环境中的应用不需要改动就可直接移植到仿真环境中进行测试与评估,避免了为仿真环境与真实环境各开发一套应用的重复劳动;反过来,仿真环境中的应用也能够很容易地移植到真实环境中来。
附图说明
图1是本发明的方法流程图;
图2是本发明仿真模型的硬件环境示意图;
图3是本发明虚拟网卡和虚拟信道的示意图;
图4是本发明步骤五中数据发送的流程图;
图5是本发明步骤五中数据接收的流程图;
图中:
1-仿真成员 2-虚拟网卡 3-虚拟信道 4-物理网卡
201-待发送处理模块 202-异常报告 203-接收缓冲队列
2011-发送缓冲队列 2012-待发送事件
301-服务进程 302-通信进程
3011-监视线程 3012-发送线程 3013-接收线程
3021-发送数据格式转换模块 3022-发送缓冲区
3023-媒体接入控制协议 3024-数据传输接口
3025-接收数据预处理模块 3026-接收数据格式转换模块
具体实施方式
下面将结合附图和实施例对本发明作进一步的详细说明。
本发明是一种基于虚拟网卡的无线信道仿真方法,流程如图1所示,包括以下几个步骤:
步骤一:搭建仿真模型的硬件环境;
如图2所示,仿真模型包括n个仿真成员1,仿真成员A1至仿真成员An之间通过以太网相连,每个仿真成员1配备m块虚拟网卡2和至少一块物理网卡3,m≥1,仿真数据通过虚拟网卡2进入虚拟信道3,在虚拟信道3中经过转换后通过物理网卡4发送到以太网上,经以太网到达其它仿真成员1。通常无线虚拟信道3的传输速率远小于以太网,因此可以采用多个虚拟信道3共用一块物理网卡4的方式,不仅节省硬件资源,也增加了配置的灵活性。
步骤二:构建仿真模型的仿真环境;
虚拟网卡2如图3所示,包括待发送处理模块201、异常报告202和接收缓冲队列203。待发送处理模块201包含发送缓冲队列2011和待发送事件2012;
虚拟网卡2的驱动为NIC(Network Interface Card)驱动,NIC驱动的常用模式是NDIS小端口驱动,NDIS小端口驱动是Windows设备小端口驱动的一种,位于NDIS的最底层,直接控制NIC设备;虚拟网卡驱动运行在内核模式下。
发送缓冲队列2011用于暂存与上层交互的输入数据,然后将输入数据发送至虚拟信道3,接收缓冲队列203用于暂存与上层交互的输出数据,然后将输出数据发送至上层。虚拟网卡2发送与接收的数据为以太网帧。
虚拟网卡2为上层的每次发送请求触发一次待发送事件2012。待发送事件2012用于通知服务进程301发送缓冲队列2011中有数据待发送。
在数据发送过程中,如果超时则取消数据发送,通过异常报告来通知服务进程301。异常报告可以用事件通知或异步IRP(I/O Request Packet,I/O请求包)等方式实现。
待发送处理模块201、异常报告202、接收缓冲队列203构成了虚拟网卡驱动的基本框架,用于衔接上层与虚拟信道之间的数据交互。虚拟信道3如图3所示,包括服务进程301与通信进程302;虚拟信道3逻辑上是虚拟网卡驱动的下层。在真实环境中虚拟信道3由网络接口卡和网络传输介质组成,而在仿真环境中由软件方式实现。服务进程301和通信进程302都运行在用户模式下。
服务进程301由一些线程组成,包括监视线程3011、发送线程3012和接收线程3013。监视线程3011负责与虚拟网卡驱动的交互,发送线程3012和接收线程3013负责与通信进程302的交互。工作在内核模式的虚拟网卡驱动与工作在用户模式的监视线程3011交互方式极为有限,本发明中虚拟网卡驱动对监视线程3011的通知采用事件触发或异步I/O(输入输出)的方式,监视线程3011对虚拟网卡2的通知及读写通过对虚拟网卡驱动的同步或异步I/O实现。同为用户模式的发送线程3012、接收线程3013与通信进程302的交互方式很多,可通过消息、共享内存、命名管道、本地过程调用(LPC)等手段实现。
通信进程302是仿真模型的核心,负责处理虚拟链路层与虚拟物理层的算法。通信进程302包括发送数据格式转换模块3021、发送缓冲区3022、媒体接入控制(MAC)协议3023、数据传输接口3024、接收数据预处理模块3025和接收数据格式转换模块3026。
当虚拟网卡2向虚拟信道3发送数据时,数据经过发送线程3012到达通信进程302,由发送数据格式转换模块3021转换为适应虚拟物理层的数据格式再送入发送缓冲区3022,发送缓冲区3022用于保存已由虚拟网卡2送达,但未发送到虚拟物理层的数据;媒体接入控制协议3023负责媒体接入控制子层协议算法的仿真。
当虚拟网卡2从虚拟信道3接收数据时,数据经过数据传输接口3024,经接收数据预处理模块3025处理并过滤后到达接收数据格式转换模块3026,接收数据格式转换模块3026将来自虚拟物理层的数据转换成以太网数据帧,并传给服务进程的接收线程3013。
数据传输接口3024负责与物理网卡的通信。
因为内核模式的实现过于复杂,所以将仿真的相关算法同网卡驱动脱离开来,统一放在通信进程中实现。服务进程的作用就是将虚拟网卡中内核模式的输入输出数据流转换为用户模式的相应数据流,并交给通信进程的仿真算法处理。
步骤三:用户配置仿真成员的初始化参数;
具体为:
1)初始化每个虚拟网卡2的IP地址和MAC(Media Access Controller,媒体访问控制)地址,每个虚拟网卡2的MAC地址不重复,而且虚拟网卡2的MAC地址与仿真系统中物理网卡的MAC地址不冲突,例如,生成MAC地址的方法为:
a)前三个字节代表网卡厂商的OUI(组织唯一标示符),不要使用已由IEEE(美国电气和电子工程师协会)分配给网卡厂商的OUI。比如U/L位(Universally/Locallyadministered bit,第一字节的次低位)为1的地址表明这是一个由网络管理员分配的本地管理地址,IEEE不会分配这样的地址给网卡厂商;
b)对于网卡的MAC地址,多播位(第一字节的最低位)应始终置0;
c)后三字节无特殊要求,从0开始依次加1即可。
2)如果设备不支持ARP(地址解析协议)或者为了简化仿真模型省略ARP报文的发送,则根据步骤1)中IP地址与MAC地址的对应关系配置静态ARP列表。这是对操作系统配置的改动,需要用到操作系统的ARP命令;
3)初始化每个虚拟网卡2所在的子网。各个子网用于模拟无线网络中使用不同频段的各个网络,不同子网的成员在物理层是隔绝的;
4)初始化每个虚拟网卡2的通信范围;
5)初始化每个仿真成员的虚拟地理位置,如果是移动节点还要配置移动方式;
6)初始化每个虚拟网卡2子网的性能参数:波特率、误码率、虚拟物理层的通信方式(广播/非广播),这些参数与仿真系统所模拟的无线网络中各子网性能参数一致;
7)如果使用操作系统未集成的通信协议,则用户进行建模,并初始化。如果全部使用操作系统内置的通信协议(TCP、UDP、IP、以太网协议等),则略过此步骤。
以下几种类别的协议可由用户定制,需要用户进行建模,并初始化:
a)用户在上层应用中使用定制协议。这种情况用户可自由定制,无特殊要求;
b)用户将协议封装成协议驱动的形式。这种情况下用户需遵循操作系统协议驱动的规范,并对虚拟网卡添加这些协议的驱动;
c)用户在通信进程302中使用自定义的媒体接入控制协议3023。这种情况下用户可以在媒体接入控制协议3023中自由定制自己的时隙调度算法,并通过以下方式将媒体接入控制协议3023嵌入到通信进程302中来:
i.媒体接入控制协议3023向通信进程302提供三个接口函数:StartUp、ShutDown与QuerySend。通信进程302通过StartUp启动协议流程,通过ShutDown终止协议流程,通过QuerySend向媒体接入控制协议3023提起发送请求。
StartUp函数说明:
函数原型:void StartUp(void);
功能:启动媒体接入控制协议,开始运行自定义的时隙调度算法;
调用时机:仿真开始后调用。
ShutDown函数说明:
函数原型:void ShutDown(void);
功能:结束媒体接入控制协议,停止时隙调度算法;
调用时机:仿真结束前调用。
QuerySend函数说明:
函数原型:void QuerySend(ULONG ulBytes);
参数:类型为无符号长整数类型,值为发送缓冲区3022中的剩余字节数;
功能:ulBytes大于0时,表示通信进程302向媒体接入控制协议3023提起发送请求,媒体接入控制协议3023需要在下次分配到发送时隙时调用CanSendNow(见下文)通知通信进程302;ulBytes等于0时,表示通信进程302无内容可发送,媒体接入控制协议3023在收到下次发送请求之前毋须调用CanSendNow。
调用时机:通信进程302在发送缓冲区3022状态发生改变时调用。发送缓冲区的状态改变包括:新的待发送数据插入发送缓冲区;已发送完毕的数据从发送缓冲区中清除。
ii.通信进程302向媒体接入控制协议3023提供两个接口函数:CanSendNow和CeaseSending。媒体接入控制协议3023通过CanSendNow通知通信进程302开始发送数据,通过CeaseSending通知通信进程302中止数据发送。
CanSendNow函数说明:
函数原型:void CanSendNow(DWORD dwMicroseconds);
参数:类型为DWORD(无符号32位整数类型),值为本次分配的时隙长度,
单位为微妙;
功能:通知通信进程302可以开始发送数据,并告知可用的时隙长度。通信进程302从发送缓冲区3022中取出适量的数据帧发送至数据传输接口,若dwMicroseconds值大于0,则在持续发送dwMicroseconds微妙后中止发送,若dwMicroseconds值等于0,表示发送不受时间限制,在发生以下两种情形之一时中止发送:媒体接入控制协议3023调用CeaseSending(见下文);或发送缓冲区发送完毕。通知通信进程302在中止发送后通过QuerySend将发送缓冲区3022中的剩余字节数告知媒体接入控制协议3023;
调用时机:媒体接入控制协议3023在分配到发送时隙时调用。
CeaseSending函数说明:
函数原型:void CeaseSending(void);
功能:通知通信进程302暂停发送数据;
调用时机:通信进程302尚未发送完毕但媒体接入控制协议3023需要提前中止发送时调用。
步骤四:仿真系统加载虚拟网卡驱动,完成内部初始化工作
仿真开始之前,仿真系统要根据用户的配置加载虚拟网卡驱动,并完成一系列内部初始化工作,具体为:
1)初始化虚拟网卡驱动,包括:
a)为每个虚拟网卡的发送缓冲队列和接收缓冲队列分配内存空间;
b)保存用户为每个虚拟网卡设定MAC地址。虚拟网卡驱动通过NDIS函数库中的MiniportQueryInformation回调函数中对网卡硬件地址:
OID_802_3_PERMANENT_ADDRESS或者网卡当前使用地址:
OID_802_3_CURRENT_ADDRESS的请求返回虚拟网卡的MAC地址。
所述的MiniportQueryInformation是虚拟网卡驱动向NDIS提供的一个回调函数,NDIS通过调用此函数查询微端口驱动程序的性能和当前状态,其函数原型为:
NDIS_STATUS MiniportQueryInformation(
_in NDIS_HANDLE MiniportAdapterContext,
_in NDIS_OID Oid,
_in PVOID InformationBuffer,
_in ULONG InformationBufferLength,
_out PULONG BytesWritten,
_out PULONG BytesNeeded
)
各参数的详细含义见MSDN(Microsoft Developer Network)。当参数Oid为OID_802_3_PERMANENT_ADDRESS或OID_802_3_CURRENT_ADDRESS时,表明NDIS正在通过此函数查询MAC地址,虚拟网卡驱动需要将MAC地址的六字节复制到InformationBuffer指向的内存地址中,并将BytesWritten指向的值赋为MAC地址的字节数(6),BytesNeeded指向的值置0;
c)虚拟网卡驱动为每个虚拟网卡指定一个待发送事件指针2012,指针初始值为空,稍后再通过服务进程进行初始化;
d)虚拟网卡驱动为每个虚拟网卡指定一个用于异常报告202的IRP指针,指针初始值为空,稍后再通过服务进程进行初始化;
e)虚拟网卡驱动使用名为NdisMRegisterDevice的API注册设备名和设备符号链接名。
NdisMRegisterDevice是NDIS的API,其函数原型为:
NDIS_STATUS NdisMRegisterDevice(
_in NDIS_HANDLE NdisWrapperHandle,
_in PNDIS_STRING DeviceName,
_in PNDIS_STRING SymbolicName,
_in PDRIVER_DISPATCH MajorFunctions[],
_out PDEVICE_OBJECT*pDeviceObject,
_out NDIS_HANDLE*NdisDeviceHandle
);
各参数的详细含义见MSDN。作用是创建一个命名的设备对象(名称由参数DeviceName指定),并为此设备对象创建一个用户模式下可见的符号链接名(符号链接名由参数SymbolicName指定)。符号链接名会被服务进程所使用。NdisMRegisterDevice同时还注册了一组派遣函数(由参数MajorFunctions指定),派遣函数用来处理来自服务进程的各种I/O操作。
2)启动并初始化服务进程301,包括:
a)启动监视线程3011、接收线程3012和发送线程3013;
b)监视线程3011通过名为CreateFile的API打开虚拟网卡,得到虚拟网卡的设备句柄。
CreateFile是操作系统的API,其函数原型为:
HANDLE WINAPI CreateFile(
_in LPCTSTR lpFileName,
_in DWORD dwDesiredAccess,
_in DWORD dwShareMode,
_in_opt LPSECURITY_ATTRIBUTES lpSecurityAttributes,
_in DWORD dwCreationDisposition,
_in DWORD dwFlagsAndAttributes,
_in_opt HANDLE hTemplateFile
);
各参数的详细含义见MSDN。第一个参数lpFileName要使用之前虚拟网卡驱动注册的设备符号链接名。CreateFile所返回的设备句柄会在未来的I/O操作中使用;
c)监视线程3011创建待发送事件,并通过I/O操作将待发送事件的句柄传给虚拟网卡驱动,虚拟网卡驱动根据此名柄初始化待发送事件的指针(步骤五中将其简称为“注册待发送事件”);
d)监视线程创建异常报告对象,通过异步I/O操作传给虚拟网卡驱动。在此过程中生成的IRP指针在虚拟网卡驱动的派遣函数中被虚拟网卡驱动捕获并保存,并在未来处理异常报告202时所使用。
3)启动并初始化通信进程302,包括:
a)为发送缓冲区3022分配内存空间;
b)与服务进程的发送线程3011和接收线程3012建立数据通道。可以通过线程消息、共享内存、命名管道、LPC等方式实现;
c)初始化数据传输接口3024,建立与虚拟信道中其它通信进程之间的数据通道。可以通过Windows套接字(socket)、远程过程调用(RPC)等方式实现。
步骤五:开始仿真,仿真成员1进行数据收发。
(1)对数据发送过程进行仿真,如图4所示;
具体为:
①虚拟网卡驱动向服务进程301提交数据。
服务进程301的监视线程3011在步骤四中已打开虚拟网卡2,向虚拟网卡驱动注册待发送事件2012,并等待网卡驱动的通知。当虚拟网卡驱动收到上层的发送请求时,如果服务进程301注册过待发送事件2012,则将数据放入发送缓冲队列2011并触发待发送事件2012,通知服务进程301的监视线程3011。监视线程3011收到待发送事件2012后,从虚拟网卡2中读出数据。如果服务进程301没有注册过待发送事件2012,则将数据丢弃,通知上层发送结果,完成步骤①后虚拟网卡2进入等待阶段;
②服务进程301向通信进程302提交数据。
服务进程301从虚拟网卡2中得到数据之后进行两步并行的操作:由发送线程3012将此条数据送给通信进程302,同时监视虚拟网卡驱动的异常报告202以随时获取取消发送的通知。完成此步骤②后服务进程301的发送线程3012进入等待阶段;
③通信进程302向虚拟物理层发送数据。
通信进程302从服务进程301收到数据后不是立即发送,而是将数据通过发送数据格式转换模块3021,将数据格式转换为适合虚拟物理层的格式,然后放入发送缓冲区3022暂存,并等待媒体接入控制协议3023为通信进程分配发送时隙。通信进程分配到发送时隙后,将转换过的数据通过数据传输接口3024发送到虚拟物理层,然后依次发生通信进程成功发送通知、服务进程成功发送通知和虚拟网卡驱动成功发送通知三个成功发送通知,三个通知分别将成功发送通知给服务进程301、虚拟网卡驱动和上层。成功发送后,通信进程302和虚拟网卡驱动将发送缓冲区3022和发送缓冲队列2011中的数据删除。由于数据发送是异步的,当虚拟网卡驱动等待成功发送通知过程中可能会由于超时或其它原因取消此条数据的发送,取消的过程由虚拟网卡驱动发起,产生三个取消发送通知:虚拟网卡驱动取消发送通知、虚拟网卡驱动取消发送通知和服务进程取消发送通知,分别通知上层、服务进程和通信进程数据发送取消。然后通信进程302和虚拟网卡驱动将发送缓冲区3022和发送缓冲队列2011中的数据清除。
发送数据结束。
所述的转换具体为:
i帧格式转换。仿真环境所模拟的无线网络在数据链路层的帧格式可能与以太网并不一致,这种情况下需要将以太网帧的数据部分提取出来并按照真实设备的帧格式重新封装。
ii帧长度转换。以太网协议的默认最大传输单元是1500字节,可能与仿真系统所模拟的设备并不一致。如果出现了不一致的情况,需要将以太网帧按照真实设备的最大的传输单元进行拆分或重组。
iii非广播网中广播报文与单播报文的转换。仿真系统所模拟的无线网络在虚拟物理层可能使用非广播的通信方式,这种情况下一条广播报文需要通过转换为多条单播报文的方式来实现。
(2)对数据接收过程进行仿真,如图5所示;
具体为:
①通信进程302从虚拟物理层收到数据。
通信进程的接收数据预处理模块3025负责执行虚拟信道的部分仿真功能,包括两部分:
i.对解析出的数据进行时延和误码的仿真处理;
ii.判断本机符合接收本次数据条件的虚拟网卡。
接收数据预处理模块3025根据每一条数据的附加信息计算得出符合数据接收条件的虚拟网卡2,所述的数据附加信息包括:数据发送的时刻;信道所在的子网;子网是否具有广播能力;信道的时延和误码率参数;源地址与目的地址;数据发送时源节点的虚拟位置等。这些附加信息由发送方填写,并伴随数据一起发送。通信进程根据这些信息判断本机哪些虚拟网卡符合接收条件。
判断的条件分三步:
i.通信进程根据此时本机的虚拟位置与附加信息中的源节点虚拟位置得到两个节点的相对距离,并与虚拟网卡的通信范围进行比较。本机超出了源节点传输范围的虚拟网卡不应接收本次数据,对未超出源节点传输范围的虚拟网卡进行步骤ii;
ii.比较虚拟网卡所在的子网与附加信息中本次数据传输的信道所在的子网,子网不一致的虚拟网卡不应接收本次数据,其余虚拟网卡遵循步骤iii;
iii.虚拟物理层使用广播通信方式的子网,到达步骤iii的所有虚拟网卡都允许接收本次数据;虚拟物理层使用非广播通信方式的子网,只有与附加信息中的目的地址匹配的虚拟网卡才允许接收本次数据;
如果接收数据预处理模块3025找到了符合接收条件的虚拟网卡,则将经过预处理后的数据发送给接收数据格式转换模块3026,按照标准以太网帧格式进行转换后发送给服务进程的接收线程3013,并告知服务进程应将本次数据送往哪些虚拟网卡;如果所有虚拟网卡都不符合接收条件,则丢弃本次数据。
②服务进程301将接收线程3013收到的数据通过监视线程3011传给虚拟网卡驱动;
③虚拟网卡驱动将从服务进程301收到的数据存入接收缓冲队列203,并通知上层处理。NDIS的框架决定了上层的处理过程是异步的,因此虚拟网卡驱动中还需要一个接收缓冲队列。上层处理完毕后会调用虚拟网卡驱动在NDIS注册的回调接口,此时可以将数据从接收缓冲队列中清除以释放空间。
接收数据结束;
步骤六:结束仿真,评估无线信道的性能;
所有仿真成员1的数据收发完毕后,结束仿真,统计仿真结果,评估无线信道的性能。
实施例1:对无线自组织网络路由协议进行仿真与评估;
仿真模型描述:仿真对象为无线自组织网络,由大约20个高速移动的节点组成,每个节点最多可使用五个无线通道。网络MAC层基于TDMA(时分多址)协议,网络层与传输层分别使用IP协议和UDP协议。仿真模型用于评估在此环境下某种无线路由协议的网络吞吐量、平均端到端时延、丢包率等参数。对应的仿真模型由一个包含20台主机的局域网组成,每台主机仿真一个节点,每台主机上配有五块虚拟网卡和至少一块物理网卡。用户定制的部分包括:虚拟信道的通信进程中媒体接入控制协议采用自定义的TDMA协议;在应用层实现基于UDP的自定义路由协议。
通过与传统网络仿真工具(如OPNET)的仿真结果对比,在同等模型下两者的仿真结果近似,说明本方法能够在一定程度上保证仿真结果的准确性。而与OPNET等仿真工具相比,本发明具有以下优点:
1)本发明能够方便快捷地实现半实物仿真,只须将以太网仿真环境替换物理设备或半实物模拟器即可。而OPNET以数学仿真方式为主,在半实物仿真方面有所欠缺,具体表现在:
a)只有较高版本的OPNET中可以通过SITL(System-in-the-loop)模块与物理设备进行协同仿真,旧版本的无此功能;
b)SITL与物理设备之间通过以太网卡或无线网卡连接,多个物理设备需要分配多个物理网卡;而本发明面对多个物理设备只须分配多个虚拟网卡,节省了大量硬件资源。另外,即使物理设备通过以太网卡以外的方式连接(比如串口、蓝牙等),也能通过虚拟信道转换为符合虚拟网卡格式的数据。故本发明受硬件约束较小,配置更为灵活;
2)本发明的仿真系统与真实系统保持了高度一致性,不但仿真结果可信度高,而且仿真系统中的协议与应用程序可以很容易地迁移到真实系统中来,这可以大大节省开发人员的工作量。相比之下OPNET仿真模型在真实系统中的可重用性就极为有限。
Claims (6)
1.一种基于虚拟网卡的无线信道仿真方法,其特征在于,包括以下几个步骤:
步骤一:搭建仿真模型的硬件环境;
仿真模型包括n个仿真成员,仿真成员A1至仿真成员An之间通过以太网相连,每个仿真成员配备m块虚拟网卡和至少一块物理网卡,m≥1,仿真数据通过虚拟网卡进入虚拟信道,在虚拟信道中经过转换后通过物理网卡发送到以太网上,经以太网到达其它仿真成员;
步骤二:构建仿真模型的仿真环境;
虚拟网卡包括待发送处理模块、异常报告和接收缓冲队列;待发送处理模块包含发送缓冲队列和待发送事件;
虚拟网卡的驱动为NDIS小端口驱动;NDIS为网络接口规范,发送缓冲队列用于暂存与上层交互的输入数据,然后将输入数据发送至虚拟信道,接收缓冲队列用于暂存与上层交互的输出数据,然后将输出数据发送至上层;虚拟网卡发送与接收的数据为以太网帧;虚拟网卡为上层的每次发送请求触发一次待发送事件;待发送事件用于通知虚拟信道中的服务进程此时发送缓冲队列中有数据待发送;在数据发送过程中,如果超时则取消数据发送,通过异常报告来通知服务进程;
虚拟信道包括服务进程与通信进程;虚拟信道逻辑上是虚拟网卡驱动的下层;
服务进程包括监视线程、发送线程和接收线程;监视线程负责与虚拟网卡驱动的交互,发送线程和接收线程负责与通信进程的交互;
通信进程负责处理虚拟链路层与虚拟物理层的算法;通信进程包括发送数据格式转换模块、发送缓冲区、媒体接入控制协议、数据传输接口、接收数据预处理模块和接收数据格式转换模块;
当虚拟网卡向虚拟信道发送数据时,数据经过服务进程中的发送线程到达通信进程,由发送数据格式转换模块转换为适应虚拟物理层的数据格式再送入发送缓冲区,发送缓冲区用于保存已由虚拟网卡送达,但未发送到虚拟物理层的数据;媒体接入控制协议负责媒体接入控制子层协议算法的仿真;
当虚拟网卡从虚拟信道接收数据时,数据经过数据传输接口,经接收数据预处理模块处理并过滤后到达接收数据格式转换模块,接收数据格式转换模块将来自虚拟物理层的数据转换成以太网数据帧,并传给服务进程的接收线程;
数据传输接口负责与物理网卡的通信;
步骤三:用户配置仿真成员的初始化参数;
具体为:
1)初始化每个虚拟网卡的IP地址和MAC地址,MAC为媒体访问控制;每个虚拟网卡的MAC地址不重复,而且虚拟网卡的MAC地址与仿真系统中物理网卡的MAC地址不冲突;
2)如果设备不支持地址解析协议或者省略地址解析协议报文的发送,则根据步骤1)中IP地址与MAC地址的对应关系配置静态地址解析协议列表;
3)初始化每个虚拟网卡所在的子网;
4)初始化每个虚拟网卡的通信范围;
5)初始化每个仿真成员的虚拟地理位置,如果是移动节点配置移动方式;
6)初始化每个虚拟网卡子网的性能参数:波特率、误码率、虚拟物理层的通信方式,所述的通信方式为广播或非广播;
7)如果使用操作系统未集成的通信协议,则对其进行建模,并初始化;
步骤四:仿真系统加载虚拟网卡驱动,完成内部初始化工作;
仿真开始之前,仿真系统根据用户的配置加载虚拟网卡驱动,完成内部初始化,具体为:
1)初始化虚拟网卡驱动,包括:
a)分配每个虚拟网卡的发送缓冲队列和接收缓冲队列内存空间;
b)保存用户为每个虚拟网卡设定MAC地址,虚拟网卡驱动通过NDIS函数库中MiniportQueryInformation回调函数对网卡硬件地址:OID_802_3_PERMANENT_ADDRESS或者网卡当前使用地址:OID_802_3_CURRENT_ADDRESS请求返回虚拟网卡的MAC地址;
c)虚拟网卡驱动为每个虚拟网卡指定一个待发送事件指针,指针初始值为空,然后再通过服务进程进行初始化;
d)虚拟网卡驱动为每个虚拟网卡指定一个用于异常报告的IRP指针,所述的IRP为I/O Requst Packet,即I/O请求包,指针初始值为空,然后再通过服务进程进行初始化;
e)虚拟网卡驱动使用NDIS中名为NdisMRegisterDevice的API注册设备名和设备符号链接名,设备符号链接名会被服务进程所使用;NdisMRegisterDevice同时还注册了一组派遣函数,派遣函数用来处理来自服务进程的各种I/O操作;所述的API全称为Application Programming Interface,即为应用程序编程接口;
2)启动并初始化服务进程,包括:
a)启动监视线程、接收线程和发送线程;
b)监视线程根据虚拟网卡驱动注册的设备符号链接名,通过名为CreateFile的API打开虚拟网卡,得到虚拟网卡的设备句柄;
c)监视线程创建待发送事件,并通过I/O操作将待发送事件的句柄传给虚拟网卡驱动,虚拟网卡驱动根据此名柄初始化待发送事件的指针;
d)监视线程创建异常报告对象,通过对异步I/O操作传给虚拟网卡驱动;在此过程中生成的IRP指针在虚拟网卡驱动的派遣函数中被虚拟网卡驱动捕获并保存,并在未来处理异常报告时所使用;
3)启动并初始化通信进程,包括:
a)为发送缓冲区分配内存空间;
b)与服务进程的发送线程和接收线程建立数据通道;
c)初始化数据传输接口,建立与虚拟信道中其它通信进程之间的数据通道;
步骤五:开始仿真,仿真成员进行数据收发;
(1)对数据发送过程进行仿真;
具体为:
①虚拟网卡驱动向服务进程提交数据;
首先服务进程的监视线程在步骤四中已打开虚拟网卡,向虚拟网卡驱动注册待发送事件,并等待网卡驱动的通知;当虚拟网卡驱动收到上层的发送请求时,如果服务进程注册过待发送事件,则将数据放入发送缓冲队列并触发待发送事件,通知服务进程的监视线程;监视线程收到待发送事件后,从虚拟网卡中读出数据;如果服务进程没有注册过待发送事件,则将数据丢弃,通知上层发送结果,完成步骤①后虚拟网卡进入等待阶段;
②服务进程向通信进程提交数据;
服务进程从虚拟网卡中得到数据之后进行两步并行的操作:由发送线程将此条数据送给通信进程,同时监视虚拟网卡驱动的异常报告以随时获取取消发送的通知;完成此步骤②后服务进程的发送线程进入等待阶段;
③通信进程向虚拟物理层发送数据;
通信进程从服务进程收到数据后将数据通过发送数据格式转换模块,将数据格式转换为适合虚拟物理层的格式,然后放入发送缓冲区暂存,并等待媒体接入控制协议为通信进程分配发送时隙;通信进程分配到发送时隙后,将转换过的数据通过数据传输接口发送到虚拟物理层,然后依次发生通信进程成功发送通知、服务进程成功发送通知和虚拟网卡驱动成功发送通知三个成功发送通知,三个通知分别将成功发送通知给服务进程、虚拟网卡驱动和上层;成功发送后,通信进程和虚拟网卡驱动将发送缓冲区和发送缓冲队列中的数据删除;由于数据发送是异步的,当虚拟网卡驱动等待成功发送通知过程中由于超时或其它原因取消此条数据的发送,取消的过程由虚拟网卡驱动发起,产生三个取消发送通知:虚拟网卡驱动取消发送通知、虚拟网卡驱动取消发送通知和服务进程取消发送通知,分别通知上层、服务进程和通信进程数据发送取消;然后清除通信进程和虚拟网卡驱动将发送缓冲区和发送缓冲队列中的数据;
发送数据结束;
(2)对数据接收过程进行仿真;
具体为:
①通信进程从虚拟物理层收到数据;
通信进程的接收数据预处理模块负责执行虚拟信道的部分仿真功能,包括两部分:
i.对解析出的数据进行时延和误码处理;
ii.判断本机符合接收本次数据条件的虚拟网卡;
接收数据预处理模块根据每一条数据的附加信息判断得出符合数据接收条件的虚拟网卡,所述的数据附加信息包括:数据发送的时刻;信道所在的子网;子网是否具有广播能力;信道的时延和误码率参数;源地址与目的地址;数据发送时源节点的虚拟位置;所述数据附加信息由发送方填写,并伴随数据一起发送;通信进程根据这些信息判断本机符合接收条件的虚拟网卡;
判断的条件分三步:
1>通信进程根据此时本机的虚拟位置与附加信息中的源节点虚拟位置得到两个节点的相对距离,并与虚拟网卡的通信范围进行比较,本机超出了源节点传输范围的虚拟网卡不接收本次数据,对未超出传输范围的虚拟网卡进行步骤ii;
2>比较虚拟网卡所在的子网与附加信息中本次数据传输的信道所在的子网,子网不一致的虚拟网卡不接收本次数据,其余虚拟网卡遵循步骤iii;
3>虚拟物理层使用广播通信方式的子网,到达步骤iii的所有虚拟网卡都接收本次数据;虚拟物理层使用非广播通信方式的子网,只有与附加信息中的目的地址匹配的虚拟网卡才允许接收本次数据;
如果接收数据预处理模块找到了符合接收条件的虚拟网卡,则将经过预处理后的数据发送给接收数据格式转换模块,按照标准以太网帧格式进行转换后发送给服务进程的接收线程,并告知服务进程应将本次数据送往指定虚拟网卡;如果所有虚拟网卡都不符合接收条件,则丢弃本次数据;
②服务进程将接收线程收到的数据通过监视线程传给虚拟网卡驱动;
③虚拟网卡驱动将从服务进程收到的数据存入接收缓冲队列,并通知上层处理;上层处理完毕后会调用虚拟网卡驱动在NDIS注册的回调接口,此时将数据从接收缓冲队列中清除以释放空间;
接收数据结束;
步骤六:结束仿真,评估无线信道的性能;
所有仿真成员的数据收发完毕后,结束仿真,统计仿真结果,评估无线信道的性能。
2.根据权利要求1所述的一种基于虚拟网卡的无线信道仿真方法,其特征在于,所述的虚拟网卡驱动运行在内核模式下。
3.根据权利要求1所述的一种基于虚拟网卡的无线信道仿真方法,其特征在于,所述的服务进程和通信进程运行在用户模式下。
4.根据权利要求1所述的一种基于虚拟网卡的无线信道仿真方法,其特征在于,所述步骤三的1)中虚拟网卡生成MAC地址的方法为:
a)虚拟网卡MAC地址前三个字节代表网卡厂商的OUI,即组织唯一标示符,不使用由美国电气和电子工程师协会分配给网卡厂商的OUI;
b)虚拟网卡MAC地址的多播位即第一字节的最低位,始终置0;
c)虚拟网卡MAC地址的后三字节从0开始依次加1。
5.根据权利要求1所述的一种基于虚拟网卡的无线信道仿真方法,其特征在于,所述步骤三的7)中用户进行建模,并初始化具体为:
a)用户在上层应用中使用定制协议;
b)用户将协议封装成协议驱动的形式,用户需遵循操作系统协议驱动的规范,并对虚拟网卡添加协议的驱动;
c)用户在通信进程中使用自定义的媒体接入控制协议,用户在媒体接入控制协议中自由定制自己的时隙调度算法,并通过以下方式将媒体接入控制协议嵌入到通信进程中:
i.媒体接入控制协议向通信进程提供三个接口函数:StartUp、ShutDown与QuerySend;通信进程通过StartUp启动协议流程,通过ShutDown终止协议流程,通过QuerySend向媒体接入控制协议提起发送请求;
ii.通信进程向媒体接入控制协议提供两个接口函数:CanSendNow和CeaseSending,媒体接入控制协议通过CanSendNow通知通信进程开始发送数据,通过CeaseSending通知通信进程中止数据发送。
6.根据权利要求1所述的一种基于虚拟网卡的无线信道仿真方法,其特征在于,所述步骤五③中所述的通信进程从服务进程收到数据后将数据通过发送数据格式转换模块,将数据格式转换为适合虚拟物理层的格式,其转换具体为:
i帧格式转换,当仿真环境所模拟的无线网络在数据链路层的帧格式与以太网不一致时,将以太网帧解析出来并按照真实设备的帧格式重新封装;
ii帧长度转换,以太网协议的默认最大传输单元是1500字节,当与仿真系统所模拟的设备不一致时,将以太网帧按照真实设备的最大的传输单元进行拆分或重组;
iii非广播网中广播报文与单播报文的转换,当仿真系统所模拟的无线网络在虚拟物理层使用非广播的通信方式时,将一条广播报文转换为多条单播报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010210848 CN101887379B (zh) | 2010-06-18 | 2010-06-18 | 一种基于虚拟网卡的无线信道仿真方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010210848 CN101887379B (zh) | 2010-06-18 | 2010-06-18 | 一种基于虚拟网卡的无线信道仿真方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101887379A true CN101887379A (zh) | 2010-11-17 |
CN101887379B CN101887379B (zh) | 2013-03-06 |
Family
ID=43073308
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010210848 Expired - Fee Related CN101887379B (zh) | 2010-06-18 | 2010-06-18 | 一种基于虚拟网卡的无线信道仿真方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101887379B (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102256293A (zh) * | 2011-04-18 | 2011-11-23 | 电子科技大学 | 自组织融合网络按需路由网关及其驱动设计方法 |
CN102684942A (zh) * | 2012-04-18 | 2012-09-19 | 汉柏科技有限公司 | 网络设备的性能测试方法 |
CN102955727A (zh) * | 2011-08-31 | 2013-03-06 | 北京中电华大电子设计有限责任公司 | 一种802.11n无线网卡中固件仿真模型的处理方法 |
CN103179604A (zh) * | 2011-12-20 | 2013-06-26 | 中兴通讯股份有限公司 | 一种网络信道仿真装置和方法 |
CN105183482A (zh) * | 2015-09-23 | 2015-12-23 | 浪潮(北京)电子信息产业有限公司 | 一种网络仿真开发测试方法及系统 |
CN106095716A (zh) * | 2016-06-24 | 2016-11-09 | 武汉光迅科技股份有限公司 | 一种基于首尾循环队列的串口通信方法 |
CN106411652A (zh) * | 2016-11-02 | 2017-02-15 | 中国运载火箭技术研究院 | 一种面向空天通信的网关协议转换测试系统及方法 |
CN106657020A (zh) * | 2016-11-23 | 2017-05-10 | 沈阳理工大学 | 面向空天通信的网关协议转换测试系统 |
CN108134856A (zh) * | 2017-12-25 | 2018-06-08 | 杭州叙简科技股份有限公司 | 一种基于网络树的虚拟化mac地址防冲突方法和装置 |
CN109471737A (zh) * | 2018-10-11 | 2019-03-15 | 同济大学 | 高速磁浮运行控制系统半实物仿真的软件适配方法及设备 |
CN110868344A (zh) * | 2019-10-17 | 2020-03-06 | 北京全路通信信号研究设计院集团有限公司 | 一种仿真mvb的方法、系统、装置和计算机可读介质 |
CN110955602A (zh) * | 2018-11-30 | 2020-04-03 | 中国航空工业集团公司沈阳飞机设计研究所 | 一种基于资源共享的分布式嵌入式软件测试系统 |
CN111726201A (zh) * | 2020-06-15 | 2020-09-29 | 哈工大机器人(合肥)国际创新研究院 | 一种airt-ros虚拟网卡丢包解决方法 |
CN112434478A (zh) * | 2021-01-26 | 2021-03-02 | 芯华章科技股份有限公司 | 仿真逻辑系统设计的虚拟接口的方法及相关设备 |
CN112639888A (zh) * | 2018-08-09 | 2021-04-09 | 祖克斯有限公司 | 程序世界生成 |
CN112859643A (zh) * | 2021-01-21 | 2021-05-28 | 合肥工业大学 | 一种物理系统仿真机及其组建方法 |
CN113316181A (zh) * | 2021-07-28 | 2021-08-27 | 中电长城网际安全技术研究院(北京)有限公司 | 无线网络仿真方法、无线网络仿真数据处理方法及装置 |
CN117453299A (zh) * | 2023-12-25 | 2024-01-26 | 南京沁恒微电子股份有限公司 | 一种应用态网卡驱动方法及其装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060072466A1 (en) * | 2004-09-28 | 2006-04-06 | Microsoft Corporation | Method and system for network emulation |
CN1777142A (zh) * | 2005-11-21 | 2006-05-24 | 西安电子科技大学 | 在网络环境仿真中采用虚拟网卡实现数据通信的方法 |
-
2010
- 2010-06-18 CN CN 201010210848 patent/CN101887379B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060072466A1 (en) * | 2004-09-28 | 2006-04-06 | Microsoft Corporation | Method and system for network emulation |
CN1777142A (zh) * | 2005-11-21 | 2006-05-24 | 西安电子科技大学 | 在网络环境仿真中采用虚拟网卡实现数据通信的方法 |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102256293B (zh) * | 2011-04-18 | 2014-08-13 | 电子科技大学 | 自组织融合网络按需路由网关及其驱动设计方法 |
CN102256293A (zh) * | 2011-04-18 | 2011-11-23 | 电子科技大学 | 自组织融合网络按需路由网关及其驱动设计方法 |
CN102955727A (zh) * | 2011-08-31 | 2013-03-06 | 北京中电华大电子设计有限责任公司 | 一种802.11n无线网卡中固件仿真模型的处理方法 |
CN103179604B (zh) * | 2011-12-20 | 2017-10-27 | 中兴通讯股份有限公司 | 一种网络信道仿真装置和方法 |
CN103179604A (zh) * | 2011-12-20 | 2013-06-26 | 中兴通讯股份有限公司 | 一种网络信道仿真装置和方法 |
CN102684942A (zh) * | 2012-04-18 | 2012-09-19 | 汉柏科技有限公司 | 网络设备的性能测试方法 |
CN105183482A (zh) * | 2015-09-23 | 2015-12-23 | 浪潮(北京)电子信息产业有限公司 | 一种网络仿真开发测试方法及系统 |
CN106095716A (zh) * | 2016-06-24 | 2016-11-09 | 武汉光迅科技股份有限公司 | 一种基于首尾循环队列的串口通信方法 |
CN106095716B (zh) * | 2016-06-24 | 2020-06-02 | 武汉光迅科技股份有限公司 | 一种基于首尾循环队列的串口通信方法 |
CN106411652B (zh) * | 2016-11-02 | 2019-08-06 | 中国运载火箭技术研究院 | 一种面向空天通信的网关协议转换测试系统及方法 |
CN106411652A (zh) * | 2016-11-02 | 2017-02-15 | 中国运载火箭技术研究院 | 一种面向空天通信的网关协议转换测试系统及方法 |
CN106657020A (zh) * | 2016-11-23 | 2017-05-10 | 沈阳理工大学 | 面向空天通信的网关协议转换测试系统 |
CN108134856A (zh) * | 2017-12-25 | 2018-06-08 | 杭州叙简科技股份有限公司 | 一种基于网络树的虚拟化mac地址防冲突方法和装置 |
CN108134856B (zh) * | 2017-12-25 | 2020-10-23 | 杭州叙简科技股份有限公司 | 一种基于网络树的虚拟化mac地址防冲突方法和装置 |
US11861790B2 (en) | 2018-08-09 | 2024-01-02 | Zoox, Inc. | Procedural world generation using tertiary data |
CN112639888A (zh) * | 2018-08-09 | 2021-04-09 | 祖克斯有限公司 | 程序世界生成 |
CN109471737A (zh) * | 2018-10-11 | 2019-03-15 | 同济大学 | 高速磁浮运行控制系统半实物仿真的软件适配方法及设备 |
CN109471737B (zh) * | 2018-10-11 | 2020-11-27 | 同济大学 | 高速磁浮运行控制系统半实物仿真的软件适配方法及设备 |
CN110955602A (zh) * | 2018-11-30 | 2020-04-03 | 中国航空工业集团公司沈阳飞机设计研究所 | 一种基于资源共享的分布式嵌入式软件测试系统 |
CN110868344A (zh) * | 2019-10-17 | 2020-03-06 | 北京全路通信信号研究设计院集团有限公司 | 一种仿真mvb的方法、系统、装置和计算机可读介质 |
CN111726201A (zh) * | 2020-06-15 | 2020-09-29 | 哈工大机器人(合肥)国际创新研究院 | 一种airt-ros虚拟网卡丢包解决方法 |
CN111726201B (zh) * | 2020-06-15 | 2023-09-12 | 合肥哈工轩辕智能科技有限公司 | 一种airt-ros虚拟网卡丢包解决方法 |
CN112859643A (zh) * | 2021-01-21 | 2021-05-28 | 合肥工业大学 | 一种物理系统仿真机及其组建方法 |
CN112434478A (zh) * | 2021-01-26 | 2021-03-02 | 芯华章科技股份有限公司 | 仿真逻辑系统设计的虚拟接口的方法及相关设备 |
CN113316181A (zh) * | 2021-07-28 | 2021-08-27 | 中电长城网际安全技术研究院(北京)有限公司 | 无线网络仿真方法、无线网络仿真数据处理方法及装置 |
CN113316181B (zh) * | 2021-07-28 | 2021-12-10 | 中电长城网际安全技术研究院(北京)有限公司 | 无线网络仿真方法、无线网络仿真数据处理方法及装置 |
CN117453299A (zh) * | 2023-12-25 | 2024-01-26 | 南京沁恒微电子股份有限公司 | 一种应用态网卡驱动方法及其装置 |
CN117453299B (zh) * | 2023-12-25 | 2024-03-01 | 南京沁恒微电子股份有限公司 | 一种应用态网卡驱动方法及其装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101887379B (zh) | 2013-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101887379B (zh) | 一种基于虚拟网卡的无线信道仿真方法 | |
CN101626383B (zh) | 一种航空电信网的路由测试方法及路由器虚拟机 | |
DE69725971T2 (de) | Protokollschnittstellengateway | |
AU727579B2 (en) | Network manager providing advanced interconnection capability | |
CN106776313A (zh) | 一种模拟服务的方法、装置及集中管理平台 | |
WO2019062836A1 (zh) | 网络切片管理方法及其装置 | |
CN101867959B (zh) | 卫星移动通信网络多机协同仿真系统及方法 | |
CN105335221A (zh) | 基于可重构的分布式软件总线 | |
CN104796302A (zh) | 一种模拟网元的测试方法和系统 | |
CN114422010B (zh) | 一种基于网络虚拟化的卫星通信仿真平台的协议测试方法 | |
CN105245301A (zh) | 一种基于时间触发的机载光网络仿真系统 | |
CN107295007A (zh) | 一种支持多种协议的服务方法、装置及系统 | |
CN109445323A (zh) | 一种基于web的分布式智能测控软件平台设计方法 | |
CN102045256B (zh) | 一种基于cots的带宽预分配保证网络功能演示系统 | |
US20070086348A1 (en) | ATN network simulation for testing applications of terminal devices in civil aeronautics | |
CN112422319A (zh) | 一种天基信息港系统的仿真系统及方法 | |
CN100518097C (zh) | Ggsn设备的简单测试方法 | |
CN101207525B (zh) | 无线网络控制器信令处理模块的测试系统和装置 | |
CN113347609B (zh) | 一种无线智能控制平台 | |
CN112994954B (zh) | 网络测试系统、测试网络的构建方法及装置 | |
CN106934554A (zh) | 一种智能调度自动化系统中镜像系统的实现方法及装置 | |
CN106789380A (zh) | 一种虚拟机网络一体化监管系统 | |
CN100441013C (zh) | 用于测试通信系统基站Iub接口操作维护功能的装置和方法 | |
Chanson et al. | Design and implementation of a Ferry Clip test system | |
Berbers et al. | CoConES: An approach for components and contracts in embedded systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130306 Termination date: 20130618 |