网卡传输测试方法

文档序号:7975418阅读:313来源:国知局
专利名称:网卡传输测试方法
技术领域
本发明涉及一种硬件测试方法,尤其是关于一种网卡传输测试方法。
背景技术
现有技术的网卡传输测试采用客户端/月艮务器端(Client/Server)架构,其存 在以下缺点
1、 客户端与服务器端存在通讯同步问题,客户端与服务器端采用有问必 答全双工的通讯方式,因而在通讯可靠性上要求较高,导致实现通讯的程序非 常复杂,以应对通讯中多变的状况。此外,为了提高传输测试的压力,会采用 多线程(Thread)来发送和接收数据,从而导致线程之间出现同步问题。线程之间同步包含客户端接收、发送线程的同步,服务器端接收、发送线程的同步,以及客户端与服务器端的接收、发送线程的同步。如此复杂的同步问题必然导致实现极其困难。
2、 现有技术的传输测试中,测试资料需要通过多个协议栈进行处理,因而占用大量中央处理器(CPU)的处理时间,极大地消耗CPU资源,降低系统效能。
3、 现有技术在计算网卡传输效能时,需要利用系统Socket层的应用程序 接口(Application Programming Interface, API)的返回值。但是应用程序接口是针对广泛应用而设计,使用比较复杂,且Socket层的应用程序接口是针对网络设计,而并不是专门针对网卡设计。所以,通过Socket层的应用程序接口 获得的测试结果受到诸多因素(如,协议栈实现效率,输入/输出操作效率等) 影响,不能准确反映网卡传输能力。

发明内容
为了解决上述现有技术中的问题与缺陷,本发明的目的在于提供一种网卡传输测试方法。
本发明所提供的一种网卡传输测试方法,用以在第一计算机的第一网卡和 第二计算机的第二网卡之间进行网卡传输测试,其中第一网卡己知传输性能正 常,可作为第二网卡性能的性能评估标准,此方法包含以下步骤
a) 初始化第一计算机和第二计算机的网络通讯,并设置第一计算机为发送 状态,设置第二计算机为接收状态;
b) 第一计算机通过第一网卡发送控制命令,第二计算机通过第二网卡接收 并答复控制命令;
c) 当第二计算机答复的控制命令为准备接收控制命令时,第一计算机通 过第一协议驱动程序发送测试数据包至第一网卡,第二计算机经由第二网卡接 收测试数据包;
d) 当控制命令为统计数据控制命令时,第二计算机统计第二网卡的传输数 据,并将统计的传输数据发送至第一计算机,第一计算机统计第一网卡的传输 数据;以及
e) 依照第一网卡的统计资料和第二网卡的统计资料计算第二网卡的传输 效能。
其中控制命令是通过用户数据包协议来传输。
其中控制命令为由准备发送控制命令、准备接收控制命令、发送完成控制 命令、统计数据控制命令以及统计数据回复控制命令组成的控制命令组中选择 的控制命令。
其中测试数据包包含第一网卡和第二网卡的媒体存取控制地址。
其中测试数据包的目标因特网协议地址为零。
其中第二计算机通过操作系统来接收测试数据包。
综上所述,本发明在进行网卡传输测试时,无须区分客户端和服务器端, 传输过程容易实现。此外,数据传输过程中不需要经过多个协议栈处理,提高 了数据传输效率,并获得较高网络占用效率。同时,降低了系统资源的消耗, 提高了网络传输效能测试的准确性。


图l为本发明的网卡传输测试方法流程图;以及 图2为依照本发明对接收的数据的处理方法流程图。
其中,附图标记为
步骤IOO初始化第一计算机和第二计算机的网络通讯,并设置第一计算 机为发送状态,设置第二计算机为接收状态
步骤102第一计算机通过第一网卡发送准备发送控制命令,第二计算机通过第二网卡接收并答复准备接收控制命令
步骤104第一计算机通过第一协议驱动程序发送测试数据包至第一网 卡,第二计算机经由第二网卡接收测试数据包
步骤106第一计算机通过第一网卡发送完成控制命令,第二计算机通过 第二网卡接收并答复准备发送控制命令,第一计算机通过第一网卡接收并答复 准备接收控制命令
步骤108第二计算机通过第二协议驱动程序发送测试数据包至第二网 卡,第一计算机经由第一网卡接收测试数据包
步骤IIO第二计算机通过第二网卡发送完成控制命令,第一计算机通过 第一网卡接收并答复统计数据控制命令
步骤112第二计算机统计第二网卡的传输数据,并将统计的传输数据发 送至第一计算机,第一计算机统计第一网络的传输数据
步骤114依照第一网卡的统计资料和第二网卡的统计资料计算第二网 卡的传输效能
步骤200第二网卡通过网络接收数据
步骤202媒体存取控制地址校验
步骤204校验通过?
步骤206通过直接内存存取方式将接收的数据储存至第二计算机的内存
步骤208因特网协议地址校验 步骤210校验通过? 步骤212通过其它协议栈处理 步骤214抛弃接收的数据
具体实施例方式
以下,将结合图式部份对本发明的较佳实施方式作详细说明。
图1所示为本发明的网卡传输测试方法流程图。此方法是在第一计算机的 第一网卡和第二计算机的第二网卡之间进行网络传输效能测试。其中第一计算 机和第二计算机可以为桌上计算机、可携式计算机或其它网络设备,两者具有 相同或相似的系统结构,无须区分客户端和服务器端。
首先,初始化第一计算机和第二计算机的网络通讯,并设置第一计算机为
发送状态(即,测试端),设置第二计算机为接收状态(s卩,被测试端)(步骤100)。
第一计算机和第二计算机的网络通讯可采用有线网络、无线网络等多种方式, 初始化步骤用以建立两者的网络连接,以实现数据传输。对第一计算机和第二 计算机的设置可以通过软件或硬件方式实现,依照本发明的具体实施方式
,第 一计算机和第二计算机包含传输控制模块(图未示),用以实现相应设置和控制
数据传输。通过设置第一计算机和第二计算机的发送、接收状态,实现了数据 的单向传输,避免了客户端/服务器端架构的同步问题,并让数据不间断传输, 获得较高的网络占有率。此外,在发送效率较高的情况下,单线程模式即可以 实现大量数据的传输,而不用采用多线程模式。
接着,第一计算机和第二计算机进行控制命令和数据的传输。依照本发明 的具体实施方式
,控制命令为由准备发送控制命令、准备接收控制命令、发送
完成控制命令、统计数据控制命令以及统计数据回复控制命令组成的控制命令 组中选择的控制命令。其中,准备发送控制命令由测试端发送至被测试端,用
以通知被测试端测试数据将要被传输;准备接收控制命令由被测试端发送,用 以通知测试端自己处于接收状态,可以接收数据;发送完成控制命令由测试端 发送,用以通知被测试端数据传输完毕,且测试端转变为接收状态;统计数据 控制命令由测试端发送,用以通知被测试端报告统计资料;统计资料回复控制 命令由被测试端发送,用以报告统计资料。
当第一计算机和第二计算机建立网络连接后,第一计算机通过第一网卡发 送准备发送控制命令,第二计算机通过第二网卡接收准备发送控制命令,并答 复相应的准备接收控制命令(步骤102)。在本发明中,控制命令采用用户数据 包协议(User Datagram Protocol, UDP)进行传输。然而,亦可采用其它协议以 达到相同的传输目的。
当第一计算机接收到第二计算机答复的准备接收控制命令后,第一计算机 的传输控制模块(或具备发送数据功能的其它模块)通过第一协议驱动程序发
送测试数据包至第一网卡,第二计算机经由第二网卡从网络中接收测试数据包(步骤104)。通过协议驱动程序可以让数据直接发送至第一网卡,而不用经过 多个协议栈进行处理,降低CPU的消耗。对于测试数据包的接收,第二计算 机可通过操作系统来完成。为了保证测试资料包的正确传输与统计,测试资料 包包含第一网卡和第二网卡的媒体存取控制(Media Access Control, MAC)地 址。同时,测试数据包的因特网协议(Intemet Protocol, IP)地址被设置为零。 通过设置测试数据包的因特网协议地址,可以让测试数据包在被测试端接收 后,于数据处理流程的因特网协议地址校验期间被抛弃,从而释放被测试端的 系统资源,降低系统资源的消耗,提高数据处理效率。测试数据包被接收后的 数据处理方法将结合图2进行详细描述。
当测试数据包发送完毕后,第一计算机通过第一网卡发送发送完成控制命 令,且将自身处于接收数据状态,第二计算机通过第二网卡接收发送完成控制 命令,并答复准备发送控制命令,第一计算机进而通过第一网卡接收准备发送 控制命令,并答复相应的准备接收控制命令(步骤106)。
当第二计算机接收到第一计算机答复的准备接收控制命令后,第二计算机 的传输控制模块(或具备发送数据功能的其它模块)通过第二协议驱动程序发 送测试数据包至第二网卡,第一计算机经由第一网卡从网络中接收测试数据包 (步骤108)。如上所述,第一计算机和第二计算机分别完成了测试数据包的发 送和接收,可以认为其完成了一个测试数据的传输周期,因而可以开始网卡传 输效能的计算。
当第二计算机将测试数据包发送完毕后,第二计算机通过第二网卡发送发 送完成控制命令,第一计算机通过第一网卡接收发送完成控制命令,并发送统 计数据控制命令(步骤110)。当第二计算机接收到统计数据控制命令后,第二 计算机统计第二网卡的传输数据,并将统计的传输数据发送至第一计算机,同 时第一计算机统计第一网络的传输数据(步骤112)。第一计算机接收到第二网 卡的统计资料后,依照第一网卡的统计资料和第二网卡的统计资料计算第二网 卡的传输效能(步骤114)。
依照本发明的具体实施方式
,网卡的传输效能采用以下方式计算(l)发 送效能包含字节发送能力、字节发送准确率以及总体效能三个方面,字节发送 能力=发送成功字节数量/(发送成功字节数量+发送失败字节数量),字节发送准确率=测试端无错接收的字节数量/被测试方成功发送的字节数量,总体效能=字节发送能力*字节发送准确率;(2)接收效能包含接收成功率、接收准确率以 及总体效能三个方面,接收成功率=被测试端接收的字节数量/测试端成功发送 的字节数量,接收准确率=正确接收的字节数量/接收的字节数量,总体效能= 接收成功率*接收准确率。
请参考图2,图中所示为本发明对接收的数据的处理方法流程图,以第二 计算机为例来描述。第二网卡通过网络接收数据(如,测试数据包)(步骤200), 并对接收的数据进行媒体存取控制地址校验(步骤202),判断接收的数据是否 能够校验通过(步骤204) 当校验没有通过时,抛弃接收的数据(步骤214)。当 校验通过时,通过直接内存存取(Direct Memory Access, DMA)方式将接收的 数据储存至第二计算机的内存(步骤206)。接着,对接收的数据进行因特网协 议地址校验(步骤208),判断接收的数据是否能够校验通过(步骤210) 当校验 没有通过时,抛弃接收的数据(步骤214)。当校验通过时,通过其它协议栈对 接收的资料进行处理(步骤212)。其中,从步骤208开始的每一操作均会消耗 CPU资源。如上所述,本发明之测试数据包的目标因特网协议地址为零,因 此在步骤208进行因特网协议地址校验时会被系统抛弃,从而释放系统资源, 降低CPU的消耗。
虽然本发明已以前述较佳实施例揭露如上,然其并非用以限定本发明,在 不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明 作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的 权利要求的保护范围。
权利要求
1. 一种网卡传输测试方法,用以在一第一计算机的一第一网卡和一第二计算机的一第二网卡之间进行网卡传输测试,其特征在于,该方法包含以下步骤a)初始化该第一计算机和该第二计算机的网络通讯,并设置该第一计算机为发送状态,设置该第二计算机为接收状态;b)该第一计算机通过该第一网卡发送一控制命令,该第二计算机通过该第二网卡接收并答复该控制命令;c)当该第二计算机答复的该控制命令为一准备接收控制命令时,该第一计算机通过一第一协议驱动程序发送一测试数据包至该第一网卡,该第二计算机经由该第二网卡接收该测试数据包;d)该第二计算机通过一第二协议驱动程序发送该测试数据包至该第二网卡,该第一计算机经由该第一网卡接收该测试数据包;e)当该控制命令为一统计数据控制命令时,该第二计算机统计该第二网卡的传输数据,并将统计的传输数据发送至该第一计算机,该第一计算机统计该第一网卡的传输数据;以及f)依照该第一网卡的统计资料和该第二网卡的统计资料计算该第二网卡的传输效能。
2. 根据权利要求1所述的网卡传输测试方法,其特征在于,该控制命令通 过用户数据包协议来传输。
3. 根据权利要求1所述的网卡传输测试方法,其特征在于,该控制命令为 由一准备发送控制命令、 一准备接收控制命令、 一发送完成控制命令、 一统计 数据控制命令以及一统计数据回复控制命令组成的控制命令组中选择的一控 制命令。
4. 根据权利要求1所述的网卡传输测试方法,其特征在于,该测试数据包 包含该第一网卡和该第二网卡的媒体存取控制地址。
5. 根据权利要求1所述的网卡传输测试方法,其特征在于,该测试数据包 的目标因特网协议地址为零。
6. 根据权利要求1所述的网卡传输测试方法,其特征在于,该第二计算机 通过操作系统来接收该测试数据包。
全文摘要
本发明公开了一种网卡传输测试方法,用以在第一计算机的第一网卡和第二计算机的第二网卡之间进行网卡传输测试。第一计算机与第二计算机安装有相同的通讯应用程序结构,第一计算机通过协议驱动程序向第一网卡发送测试数据包,测试数据包包含第一网卡和第二网卡的MAC地址,且目标IP地址为零。本发明在进行网卡传输测试时,无须区分客户端和服务器端,传输过程容易实现。此外,数据传输过程中不需要经过多个协议栈处理,提高了数据传输效率,并获得较高网络占用效率。同时,降低了系统资源的消耗,提高了网络传输效能测试的准确性。
文档编号H04L12/26GK101207526SQ200610170788
公开日2008年6月25日 申请日期2006年12月22日 优先权日2006年12月22日
发明者刘文涵, 青 陈, 陈玄同, 马随义 申请人:英业达股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1