CN110460457B - 一种数据传输方法和装置 - Google Patents

一种数据传输方法和装置 Download PDF

Info

Publication number
CN110460457B
CN110460457B CN201810432233.7A CN201810432233A CN110460457B CN 110460457 B CN110460457 B CN 110460457B CN 201810432233 A CN201810432233 A CN 201810432233A CN 110460457 B CN110460457 B CN 110460457B
Authority
CN
China
Prior art keywords
network card
tested
card port
data packet
target network
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.)
Active
Application number
CN201810432233.7A
Other languages
English (en)
Other versions
CN110460457A (zh
Inventor
冯永宁
张卫国
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Datang Mobile Communications Equipment Co Ltd
Original Assignee
Datang Mobile Communications Equipment Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Datang Mobile Communications Equipment Co Ltd filed Critical Datang Mobile Communications Equipment Co Ltd
Priority to CN201810432233.7A priority Critical patent/CN110460457B/zh
Publication of CN110460457A publication Critical patent/CN110460457A/zh
Application granted granted Critical
Publication of CN110460457B publication Critical patent/CN110460457B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例提供了一种数据传输方法和装置,应用于服务器,所述服务器包括至少一个网卡端口,所述方法包括:根据向被测设备待发送的数据包的带宽需求量、以及所述服务器的网卡端口的可用带宽,确定所述被测设备对应的目标网卡端口;其中,一个被测设备对应多个目标网卡端口;或者,一个目标网卡端口对应多个被测设备;通过所述目标网卡端口向所述被测设备发送所述数据包;其中,一个被测设备的数据包通过多个目标网卡端口发送,或者,多个被测设备的数据包通过一个目标网卡端口发送。本发明实施例可以最大限度地利用带宽资源,以使有限的网卡端口可以支持更多被测设备的性能测试,可以极大地节省硬件成本。

Description

一种数据传输方法和装置
技术领域
本发明涉及网络技术领域,尤其涉及一种数据传输方法和装置。
背景技术
随着通信网络技术的不断发展,对网络设备的性能也具有更高的要求,因此,需要对网络设备进行性能测试。
目前,通常采用专用的测试仪表对网络设备进行性能测试,所述测试仪表可以向网络设备发送数据包,以及接收来自网络设备返回的数据包,并且对发送和接收的数据包进行统计分析,以得到网络设备的吞吐量、时延、丢包、抖动等数据信息。
在使用测试仪表对网络设备进行性能测试的过程中,一个网络设备需要占用测试仪表的一个网卡端口,然而,测试仪表的网卡端口有限,当需要同时对多个网络设备进行性能测试,且网络设备的数目超过测试仪表的网卡端口数目时,则需要另外配置更多的测试仪表,导致硬件成本较高。
发明内容
本发明实施例提供一种数据传输方法和装置,以解决现有技术中同时对多个网络设备进行性能测试导致硬件成本较高的问题。
本发明实施例提供了一种数据传输方法,所述方法包括:
根据向被测设备待发送的数据包的带宽需求量、以及所述服务器的网卡端口的可用带宽,确定所述被测设备对应的目标网卡端口;其中,一个被测设备对应多个目标网卡端口;或者,一个目标网卡端口对应多个被测设备;
通过所述目标网卡端口向所述被测设备发送所述数据包;其中,一个被测设备的数据包通过多个目标网卡端口发送,或者,多个被测设备的数据包通过一个目标网卡端口发送。
可选地,所述根据向被测设备待发送的数据包的带宽需求量、以及所述服务器的网卡端口的可用带宽,确定所述被测设备对应的目标网卡端口,包括:
若所述服务器存在空闲的网卡端口,且每一个空闲的网卡端口的可用带宽均小于所述带宽需求量,则从所述空闲的网卡端口中确定多个目标网卡端口;其中,所述多个目标网卡端口的可用带宽大于或等于所述带宽需求量。
可选地,所述根据向被测设备待发送的数据包的带宽需求量、以及所述服务器的网卡端口的可用带宽,确定所述被测设备对应的目标网卡端口,包括:
若所述服务器不存在空闲的网卡端口,或者空闲的网卡端口的可用带宽小于所述带宽需求量,则从已占用的网卡端口和/或空闲的网卡端口中确定至少一个目标网卡端口;其中,所述至少一个目标网卡端口的可用带宽大于或等于所述带宽需求量,且一个目标网卡端口对应多个被测设备。
可选地,在一个目标网卡端口对应多个被测设备时,所述通过所述目标网卡端口向所述被测设备发送所述数据包,包括:
将所述多个被测设备对应的数据包组合成发送队列;
根据所述发送队列中各被测设备对应的数据包所占的比例,确定所述各被测设备对应的数据包占用所述目标网卡端口的带宽比例;
按照所述带宽比例,通过所述目标网卡端口向所述被测设备发送对应的数据包。
可选地,所述方法还包括:
确定被测设备对应的测试参数;所述测试参数包括:被测设备的地址、数据包的网络协议格式、数据包的发送速率;
根据所述测试参数生成向所述被测设备待发送的数据包。
可选地,所述方法还包括:
通过所述目标网卡端口接收所述被测设备针对所述数据包返回的响应数据包;
对所述响应数据包进行解析并统计,以得到所述被测设备对应的测试结果。
另一方面,本发明实施例提供了一种数据处理装置,应用于服务器,所述服务器包括至少一个网卡端口,其特征在于,所述装置包括:
端口确定模块,用于根据向被测设备待发送的数据包的带宽需求量、以及所述服务器的网卡端口的可用带宽,确定所述被测设备对应的目标网卡端口;其中,一个被测设备对应多个目标网卡端口;或者,一个目标网卡端口对应多个被测设备;
数据发送模块,用于通过所述目标网卡端口向所述被测设备发送所述数据包;其中,一个被测设备的数据包通过多个目标网卡端口发送,或者,多个被测设备的数据包通过一个目标网卡端口发送。
可选地,所述端口确定模块,包括:
第一确定子模块,用于若所述服务器存在空闲的网卡端口,且每一个空闲的网卡端口的可用带宽均小于所述带宽需求量,则从所述空闲的网卡端口中确定多个目标网卡端口;其中,所述多个目标网卡端口的可用带宽大于或等于所述带宽需求量。
可选地,所述端口确定模块,包括:
第二确定子模块,用于若所述服务器不存在空闲的网卡端口,或者空闲的网卡端口的可用带宽小于所述带宽需求量,则从已占用的网卡端口和/或空闲的网卡端口中确定至少一个目标网卡端口;其中,所述至少一个目标网卡端口的可用带宽大于或等于所述带宽需求量,且一个目标网卡端口对应多个被测设备。
可选地,所述数据发送模块,包括:
组合子模块,用于将所述多个被测设备对应的数据包组合成发送队列;
确定子模块,用于根据所述发送队列中各被测设备对应的数据包所占的比例,确定所述各被测设备对应的数据包占用所述目标网卡端口的带宽比例;
发送子模块,用于按照所述带宽比例,通过所述目标网卡端口向所述被测设备发送对应的数据包。
可选地,所述装置还包括:
参数确定模块,用于确定被测设备对应的测试参数;所述测试参数包括:被测设备的地址、数据包的网络协议格式、数据包的发送速率;
数据生成模块,用于根据所述测试参数生成向所述被测设备待发送的数据包。
可选地,所述装置还包括:
数据接收模块,用于通过所述目标网卡端口接收所述被测设备针对所述数据包返回的响应数据包;
统计分析模块,用于对所述响应数据包进行解析并统计,以得到所述被测设备对应的测试结果。
本发明实施例包括以下优点:
本发明实施例在同时对多个被测设备进行性能测试时,可以根据向被测设备待发送的数据包的带宽需求量、以及所述服务器的网卡端口的可用带宽,为被测设备动态地分配网卡端口,一个被测设备的数据包可以通过多个目标网卡端口发送,或者,多个被测设备的数据包可以通过一个目标网卡端口发送,可以最大限度地利用带宽资源,以使有限的网卡端口可以支持更多被测设备的性能测试,可以极大地节省硬件成本。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明的一种数据传输方法实施例一的流程图;
图2示出了一种应用本发明数据传输方法的测试系统的结构示意图;
图3示出了本发明的一种数据传输方法实施例二的流程图;
图4示出了本发明的一种数据传输装置实施例的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参照图1,示出了本发明的一种数据传输方法实施例一的流程图,所述方法应用于服务器,所述服务器包括至少一个网卡端口,所述方法具体可以包括:
步骤101、根据向被测设备待发送的数据包的带宽需求量、以及所述服务器的网卡端口的可用带宽,确定所述被测设备对应的目标网卡端口;其中,一个被测设备对应多个目标网卡端口;或者,一个目标网卡端口对应多个被测设备;
步骤102、通过所述目标网卡端口向所述被测设备发送所述数据包;其中,一个被测设备的数据包通过多个目标网卡端口发送,或者,多个被测设备的数据包通过一个目标网卡端口发送。
在使用测试仪表对网络设备进行性能测试的过程中,每一个网络设备需要独占测试仪表的一个网卡端口,由于测试仪表的网卡端口有限,如果要同时对多个网络设备进行性能测试,需要使用多个测试仪表,导致硬件成本较高。此外,如果向被测设备发送的数据包的带宽需求量远小于测试仪表的网卡端口的带宽,还会造成带宽资源的浪费。例如,使用测试仪表对被测设备A进行性能测试,且被测设备A独占测试仪表的一个网卡端口,假设发送至被测设备A的数据包的带宽需求量为40G,而测试仪表的网卡端口的带宽为100G,则该网卡端口还有60G的可用带宽,造成带宽资源的浪费。
为了减少网络设备性能测试过程中的硬件成本,以及提高带宽资源的利用率,本发明实施例可以利用具有收发网络数据包功能的服务器对网络设备进行性能测试,所述服务器可以为包括处理器、网卡、硬盘、内存、系统总线等硬件的任意类型的服务器,且所述服务器包括至少一个网卡端口,被测设备可以直接和所述网卡端口相连,或者被测设备可以通过交换机/路由器与所述网卡端口相连。
在具体应用中,所述服务器可以按照预设的网络协议格式进行组包,以生成待发送至被测设备的数据包,所述网络协议格式具体可以包括IPv4(Internet ProtocolVersion 4,网际协议版本4),IPv6(Internet Protocol Version 6,网际协议版本6),TCP(Transmission Control Protocol,传输控制协议),UDP(User Datagram Protocol,用户数据报协议),VLan(Virtual Local Area Network,虚拟局域网),ARP(AddressResolution Protocol,地址解析协议),PING(Packet Internet Groper,因特网包探索器)等,本发明实施例对于所述数据包的网络协议格式不加以限制。
所述被测设备具体可以包括交换机、网桥、路由器、网关等网络设备,可以理解,本发明实施例对所述被测设备的具体类型不加以限制。
本发明实施例在利用所述服务器对多个被测设备同时进行性能测试的过程中,根据向被测设备待发送的数据包的带宽需求量、以及所述服务器的网卡端口的可用带宽,为被测设备动态分配网卡端口。例如,如果当前空闲的网卡端口的可用带宽可以满足发送至每个被测设备的数据包的带宽需求量,则可以优先为每个被测设备分配独立的网卡端口。如果当前没有空闲的网卡端口,或者空闲的网卡端口的可用带宽不能满足向被测设备待发送的数据包的带宽需求量,则一个被测设备可以占用多个网卡端口,或者,多个被测设备可以共享一个网卡端口。这样,使得有限的网卡端口可以支持更多的被测设备,不仅可以提高带宽资源的利用率,而且可以减少硬件成本。
在本发明的一种可选实施例中,所述根据向被测设备待发送的数据包的带宽需求量、以及所述服务器的网卡端口的可用带宽,确定所述被测设备对应的目标网卡端口,具体可以包括:
若所述服务器存在空闲的网卡端口,且所述空闲的网卡端口的可用带宽大于或等于所述带宽需求量,则确定所述空闲的网卡端口为目标网卡端口。
在具体应用中,如果同时进行性能测试的被测设备数目较少,服务器网卡端口的数目大于或等于被测设备的数目,则可以为每个被测设备单独分配一个网卡端口,每一个被测设备的数据包可以独占一个网卡端口的带宽资源,以使测试结果可以达到或接近专用测试仪表的精度。
例如,假设服务器包括2个网卡端口,每个网卡端口的带宽为50G,且这2个网卡端口均空闲,也即每个网卡端口的可用带宽为50G,假设需要对被测设备A和被测设备B同时进行性能测试,且被测设备A和被测设备B的数据包对应的带宽需求量分别为20G,则被测设备A和被测设备B可以分别独占一个网卡端口。
在本发明的一种可选实施例中,所述根据向被测设备待发送的数据包的带宽需求量、以及所述服务器的网卡端口的可用带宽,确定所述被测设备对应的目标网卡端口,具体可以包括:
若所述服务器存在空闲的网卡端口,且每一个空闲的网卡端口的可用带宽均小于所述带宽需求量,则从所述空闲的网卡端口中确定多个目标网卡端口;其中,所述多个目标网卡端口的可用带宽大于或等于所述带宽需求量。
例如,向被测设备C待发送的数据包对应的带宽需求量为50G,且服务器当前存在两个空闲的网卡端口,其中一个空闲的网卡端口的带宽为10G,另一个空闲的网卡端口的带宽为40G,每一个空闲的网卡端口的可用带宽均小于所述带宽需求量,但是这两个空闲的网卡端口的可用带宽共有50G,则可以将这两个空闲的网卡端口作为被测设备C的目标网卡端口。
由此,通过本发明实施例,在一个网卡端口的带宽不能满足数据包的带宽需求量时,可以为被测设备分配多个目标网卡端口,以使被测设备的数据包可以通过多个目标网卡端口进行发送,进而可以最大限度地利用带宽资源以及减少硬件成本。
在本发明的一种可选实施例中,所述根据向被测设备待发送的数据包的带宽需求量、以及所述服务器的网卡端口的可用带宽,确定所述被测设备对应的目标网卡端口,包括:
若所述服务器不存在空闲的网卡端口,或者空闲的网卡端口的可用带宽小于所述带宽需求量,则从已占用的网卡端口和/或空闲的网卡端口中确定至少一个目标网卡端口;其中,所述至少一个目标网卡端口的可用带宽大于或等于所述带宽需求量,且一个目标网卡端口对应多个被测设备。
在具体应用中,如果需要对多个被测设备同时进行性能测试,且服务器当前不存在空闲的网卡端口,或者空闲的网卡端口的可用带宽小于所述带宽需求量,则多个被测设备可以共享一个网卡端口。
例如,假设需要对被测设备D和被测设备E同时进行性能测试,且向被测设备D和被测设备E待发送的数据包对应的带宽需求量分别为20G,服务器当前剩余一个空闲的网卡端口,该网卡端口的可用带宽为50G,则可以将该网卡端口做为被测设备D的目标网卡端口,以及将该网卡端口做为被测设备E的目标网卡端口,也即,被测设备D和被测设备E可以共享该网卡端口。
再如,假设需要对被测设备F和被测设备G同时进行性能测试,且向被测设备F和被测设备G待发送的数据包对应的带宽需求量分别为20G,服务器当前剩余一个空闲的网卡端口1,网卡端口1的可用带宽为10G,此外,对于网卡端口2,其带宽为50G,已被占用20G,还剩余30G的可用带宽,则可以确定被测设备F的目标网卡端口为网卡端口1和网卡端口2,以及确定被测设备G的目标网卡端口为网卡端口2。
在本发明的一种可选实施例中,在一个目标网卡端口对应多个被测设备时,所述通过所述目标网卡端口向所述被测设备发送所述数据包,具体可以包括:
步骤S11、将所述多个被测设备对应的数据包组合成发送队列;
步骤S12、根据所述发送队列中各被测设备对应的数据包所占的比例,确定所述各被测设备对应的数据包占用所述目标网卡端口的带宽比例;
步骤S13、按照所述带宽比例,通过所述目标网卡端口向所述被测设备发送对应的数据包。
在本发明实施例中,在一个目标网卡端口对应多个被测设备时,可以按照预设的规则将所述多个被测设备对应的数据包组合到一个发送队列中,按照该发送队列中数据包的顺序进行发送,并且根据所述发送队列中各被测设备对应的数据包所占的比例,确定所述各被测设备对应的数据包占用所述目标网卡端口的带宽比例,以及按照所述带宽比例,通过所述目标网卡端口向所述被测设备对应所述数据包。
可以理解,本发明实施例对于所述预设的规则不加以限制,例如可以按照交替发送的规则,按照带宽比例轮流发送每一个被测设备对应的数据包等。
在本发明的一种可选实施例中,所述方法还可以包括:
步骤S21、通过所述目标网卡端口接收所述被测设备针对所述数据包返回的响应数据包;
步骤S22、对所述响应数据包进行解析并统计,以得到所述被测设备对应的测试结果。
其中,所述响应数据包可以为被测设备对接收到的数据包进行处理之后得到的数据包,或者,还可以为被测设备在接收到服务器发送的数据包之后,直接返回的原始数据包,可以理解,本发明实施例对于所述响应数据包的具体内容不加以限制。
在本发明的一种应用示例中,服务器在向被测设备发送用于性能测试的数据包时,可以在数据包中加入时间戳,以记录数据包的发送时间,被测设备在接收到所述数据包时,直接将所述数据包作为响应数据包返回给服务器,服务器接收到来自被测设备返回的响应数据包后,记录所述响应数据包的接收时间,并且对该响应数据包进行解析,获取时间戳信息,以得到发送时间,由此,根据所述接收时间和所述发送时间可以计算得到被测设备转发数据包的时延信息。
所述服务器可以通过所述目标网卡端口向被测设备发送用于性能测试的数据包,还可以通过所述目标网卡端口接收所述被测设备针对所述数据包返回的响应数据包,并且对所述响应数据包进行统计分析,以得到网络设备的吞吐量、时延、丢包、抖动等数据信息。
综上,本发明实施例在同时对多个被测设备进行性能测试时,可以根据向被测设备待发送的数据包的带宽需求量、以及所述服务器的网卡端口的可用带宽,为被测设备动态地分配网卡端口,一个被测设备的数据包可以通过多个目标网卡端口发送,或者,多个被测设备的数据包可以通过一个目标网卡端口发送,可以最大限度地利用带宽资源,以使有限的网卡端口可以支持更多被测设备的性能测试,可以极大地节省硬件成本。
参照图2,示出了一种应用本发明数据传输方法的测试系统的结构示意图,所述测试系统可用于同时对多个被测设备进行性能测试,所述测试系统具体可以包括客户端201、服务器202和被测设备203,其中,客户端201可以通过交换机/路由器与服务器202相连,服务器202可以通过交换机/路由器与被测设备203相连。
其中,所述客户端201具体可以为PC(Personal Computer,个人电脑),或者智能手机、平板电脑、笔记本电脑等移动终端。可以理解,本发明实施例对于客户端的具体形式不加以限制。
在本发明实施例中,所述客户端具体可以为基于浏览器实现的Web(World WideWeb,万维网)客户端,可用于提供用户登录、测试参数配置、测试结果展示等功能。其中,所述测试参数具体可以包括:被测设备的IP(Internet Protocol,网络之间互连的协议)地址/MAC(Media Access Control,媒体访问控制)地址、数据包的网络协议格式、数据包的长度、以及数据包的发送速率等参数,所述测试结果具体可以包括时延、抖动、流量、吞吐量等数据信息。
所述服务器202可以接收并执行来自客户端针对被测设备的测试指令,并且为被测设备动态分配网卡端口,以通过分配的网卡端口向被测设备发送用于性能测试的数据包,以及接收来自被测设备的响应数据包,进而可以对发送和接收的数据包进行统计分析,得到被测设备对应的测试结果,最终将测试结果发送至客户端,以展示给用户。所述服务器202具体可以包括如下功能模块:客户端连接管理模块2021、用户及资源管理模块2022、收发包模块2023。
其中,所述客户端连接管理模块2021可用于管理用户信息以及建立与客户端之间的连接。客户端连接管理模块2021具体可以包括如下子模块:客户端通信子模块、Web服务子模块,Web资源管理子模块。所述客户端通信子模块可用于管理用户的登录账户和密码,针对每一个用户可以建立单独的连接,用户在客户端输入登录账户和密码即可与服务器建立连接并登录服务器。在实际应用中,本发明实施例可提供多个用户的并发连接,并且支持HTTP(HyperText Transfer Protocol,超文本传输协议)连接,以及支持fastCGI(FastCommon Gateway Interface,快速通用网关接口)等功能和接口,方便与客户端之间的交互对接。
所述用户及资源管理模块2022可用于为每一个连接到服务器的被测设备配置测试环境,例如分配CPU(Central Processing Unit,中央处理器)、内存、网卡端口等硬件资源,以及启动/停止测试过程,上报测试状态和测试结果等。用户及资源管理模块2022具体可以包括如下子模块:用户管理子模块、硬件资源管理子模块、上报子模块。
所述用户管理子模块可用于接收并执行来自客户端针对被测设备的测试指令,以启动/停止对应的测试过程。所述硬件资源管理子模块可用于探测服务器的硬件资源以及为每一个测试配置测试环境。所述上报子模块可以用于上报测试状态和测试结果等信息。
可选地,本发明实施例可以采用Pktgen(Packet Generater,发包器)进行组包,Pktgen是Linux发包工具,可按照预设的网络协议格式生成数据包。Pktgen可支持的网络协议格式具体可以包括IPv4,IPv6,TCP,UDP,VLan,ARP,PING等,并可按需进行扩展。此外,Pktgen可支持符合RFC2544(网络互联设备的定标方法)规范的性能测试,并可按需进行扩展。
在本发明实施例中,所述Pktgen的初始化过程具体可以包括如下步骤:
步骤S31、启动shell脚本,探测CPU核数、内存大小、网卡端口数等硬件资源;
所述shell脚本可以随系统的启动自动运行,可用于探测整个系统的硬件资源,如CPU核数、内存大小、网卡端口数等。
步骤S32、分配并挂载内存;
具体地,Pktgen采用大页内存,以2MB为分页单位分配内存并挂载,这样,可以减少TLB(Translation Lookaside Buffer,转换检测缓冲区)失败和缺页中断的数量,显著提高应用程序的性能。
步骤S33、加载UIO(Userspace I/O,运行在用户空间的I/O技术)驱动;
使用UIO可以避免设备的驱动程序需要随着内核的更新而更新的问题。
步骤S34、加载DPDK(Data Plane Development Kit,数据平面开发套件)驱动;
Pktgen是DPDK的一个应用,可在内核高速发包。
步骤S35、启动Pktgen主程序;
步骤S36、为Pktgen分配可用的最大内存数;
步骤S37、为每个网卡端口绑定最大CPU核数;
步骤S38、为Pktgen分配内存池;
具体地,向每一个被测设备待发送的数据包组成一路数据流,可以按照最大的发包流数分配内存池。
步骤S39、Pktgen初始化结束,进入命令模式。
Pktgen初始化结束后,进入命令模式,在接收到来自客户端的测试指令后,即可根据测试参数进行组包。
所述收发包模块2023可以实现网卡驱动的功能,可用于通过分配的目标网卡端口将数据包发送至对应的被测设备,以及通过所述目标网卡端口接收来自被测设备返回的响应数据包。
所述收发包模块可以通过DPDK实现,并且使用轮询(polling)机制来处理数据包,在网卡接收到数据包时,DPDK重载过的驱动不再通过中断通知CPU,而是直接将数据包存入内存,然后通知应用层通过DPDK提供的接口处理所述数据包,由此可以节省大量的CPU中断时间和内存拷贝时间,进而可以极大地提高数据处理速度。
参照图3,示出了本发明的一种数据传输方法实施例二的流程图,所述方法应用于服务器,所述服务器包括至少一个网卡端口,所述方法具体可以包括:
步骤301、接收来自客户端针对被测设备的测试指令;
具体地,用户可以通过客户端登录服务器,配置测试参数,以及针对被测设备下发测试指令。其中,所述测试参数具体可以包括:被测设备的IP地址/MAC地址、数据包的网络协议格式、数据包的长度、以及数据包的发送速率等。
在服务器接收到来自客户端针对被测设备的测试指令后,可以确定被测设备对应的测试参数,并且根据所述测试参数生成向所述被测设备待发送的数据包。
步骤302、根据向被测设备待发送的数据包的带宽需求量、以及所述服务器的网卡端口的可用带宽,确定所述被测设备对应的目标网卡端口;
具体地,可以根据用户配置的测试参数,获取向被测设备待发送的数据包对应的发送速率,根据所述发送速率可以确定所述数据包的带宽需求量,进而可以根据所述带宽需求量、以及网卡端口当的可用带宽,为被测设备动态分配合适的目标网卡端口。
如果当前空闲的网卡端口的可用带宽可以满足发送至每个被测设备的数据包的带宽需求量,则优先为每个被测设备分配独立的网卡端口。如果当前没有空闲的网卡端口,或者空闲的网卡端口的可用带宽不能满足向被测设备待发送的数据包的带宽需求量,则一个被测设备可以占用多个网卡端口,或者,多个被测设备可以共享一个网卡端口。
步骤303、按照预设的网络协议格式组包;
具体地,可以根据用户配置的测试参数,获取向被测设备待发送的数据包对应的网络协议格式,并且按照该网络协议格式组包进行组包,以生成向被测设备待发送的数据包。
步骤304、通过所述目标网卡端口向所述被测设备发送所述数据包;
在具体应用中,可以根据用户配置的测试参数,获取向被测设备待发送的数据包对应的发送速率,并且根据所述发送速率自动调整发包间隔。
步骤305、通过所述目标网卡端口接收所述被测设备针对所述数据包返回的响应数据包;
步骤306、对所述响应数据包进行解析并统计,以得到所述被测设备对应的测试结果;
步骤307、向客户端返回所述测试结果。
服务器可以将得到的测试结果返回至客户端,以使客户端可以将测试结果展示给用户。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
装置实施例
参照图4,示出了本发明的一种数据传输装置实施例的结构框图,应用于服务器,所述服务器包括至少一个网卡端口,所述数据传输装置具体可以包括:
端口确定模块401,用于根据向被测设备待发送的数据包的带宽需求量、以及所述服务器的网卡端口的可用带宽,确定所述被测设备对应的目标网卡端口;其中,一个被测设备对应多个目标网卡端口;或者,一个目标网卡端口对应多个被测设备;
数据发送模块402,用于通过所述目标网卡端口向所述被测设备发送所述数据包;其中,一个被测设备的数据包通过多个目标网卡端口发送,或者,多个被测设备的数据包通过一个目标网卡端口发送。
可选地,所述端口确定模块401,具体可以包括:
第一确定子模块,用于若所述服务器存在空闲的网卡端口,且每一个空闲的网卡端口的可用带宽均小于所述带宽需求量,则从所述空闲的网卡端口中确定多个目标网卡端口;其中,所述多个目标网卡端口的可用带宽大于或等于所述带宽需求量。
可选地,所述端口确定模块401,具体可以包括:
第二确定子模块,用于若所述服务器不存在空闲的网卡端口,或者空闲的网卡端口的可用带宽小于所述带宽需求量,则从已占用的网卡端口和/或空闲的网卡端口中确定至少一个目标网卡端口;其中,所述至少一个目标网卡端口的可用带宽大于或等于所述带宽需求量,且一个目标网卡端口对应多个被测设备。
可选地,所述数据发送模块402,具体可以包括:
组合子模块,用于将所述多个被测设备对应的数据包组合成发送队列;
确定子模块,用于根据所述发送队列中各被测设备对应的数据包所占的比例,确定所述各被测设备对应的数据包占用所述目标网卡端口的带宽比例;
发送子模块,用于按照所述带宽比例,通过所述目标网卡端口向所述被测设备发送对应的数据包。
可选地,所述装置还可以包括:
参数确定模块,用于确定被测设备对应的测试参数;所述测试参数包括:被测设备的地址、数据包的网络协议格式、数据包的发送速率;
数据生成模块,用于根据所述测试参数生成向所述被测设备待发送的数据包。
可选地,所述装置还可以包括:
数据接收模块,用于通过所述目标网卡端口接收所述被测设备针对所述数据包返回的响应数据包;
统计分析模块,用于对所述响应数据包进行解析并统计,以得到所述被测设备对应的测试结果。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种数据传输方法和装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (8)

1.一种数据传输方法,应用于服务器,所述服务器包括至少一个网卡端口,其特征在于,所述方法包括:
根据向被测设备待发送的数据包的带宽需求量、以及所述服务器的网卡端口的可用带宽,确定所述被测设备对应的目标网卡端口;其中,一个被测设备对应多个目标网卡端口;或者,一个目标网卡端口对应多个被测设备;
通过所述目标网卡端口向所述被测设备发送所述数据包;其中,一个被测设备的数据包通过多个目标网卡端口发送,或者,多个被测设备的数据包通过一个目标网卡端口发送;
所述根据向被测设备待发送的数据包的带宽需求量、以及所述服务器的网卡端口的可用带宽,确定所述被测设备对应的目标网卡端口,包括:
若所述服务器不存在空闲的网卡端口,或者空闲的网卡端口的可用带宽小于所述带宽需求量,则从已占用的网卡端口和/或空闲的网卡端口中确定至少一个目标网卡端口;其中,所述至少一个目标网卡端口的可用带宽大于或等于所述带宽需求量,且一个目标网卡端口对应多个被测设备;所述数据包按照预设网络协议格式和数据包长度生成;
在一个目标网卡端口对应多个被测设备时,所述通过所述目标网卡端口向所述被测设备发送所述数据包,包括:
将所述多个被测设备对应的数据包组合成发送队列;
根据所述发送队列中各被测设备对应的数据包所占的比例,确定所述各被测设备对应的数据包占用所述目标网卡端口的带宽比例;
按照所述带宽比例,通过所述目标网卡端口向所述被测设备发送对应的数据包。
2.根据权利要求1所述的方法,其特征在于,所述根据向被测设备待发送的数据包的带宽需求量、以及所述服务器的网卡端口的可用带宽,确定所述被测设备对应的目标网卡端口,包括:
若所述服务器存在空闲的网卡端口,且每一个空闲的网卡端口的可用带宽均小于所述带宽需求量,则从所述空闲的网卡端口中确定多个目标网卡端口;其中,所述多个目标网卡端口的可用带宽大于或等于所述带宽需求量。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定被测设备对应的测试参数;所述测试参数包括:被测设备的地址、数据包的网络协议格式、数据包的发送速率;
根据所述测试参数生成向所述被测设备待发送的数据包。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过所述目标网卡端口接收所述被测设备针对所述数据包返回的响应数据包;
对所述响应数据包进行解析并统计,以得到所述被测设备对应的测试结果。
5.一种数据处理装置,应用于服务器,所述服务器包括至少一个网卡端口,其特征在于,所述装置包括:
端口确定模块,用于根据向被测设备待发送的数据包的带宽需求量、以及所述服务器的网卡端口的可用带宽,确定所述被测设备对应的目标网卡端口;其中,一个被测设备对应多个目标网卡端口;或者,一个目标网卡端口对应多个被测设备;
数据发送模块,用于通过所述目标网卡端口向所述被测设备发送所述数据包;其中,一个被测设备的数据包通过多个目标网卡端口发送,或者,多个被测设备的数据包通过一个目标网卡端口发送;
所述端口确定模块,包括:
第二确定子模块,用于若所述服务器不存在空闲的网卡端口,或者空闲的网卡端口的可用带宽小于所述带宽需求量,则从已占用的网卡端口和/或空闲的网卡端口中确定至少一个目标网卡端口;其中,所述至少一个目标网卡端口的可用带宽大于或等于所述带宽需求量,且一个目标网卡端口对应多个被测设备;所述数据包按照预设网络协议格式和数据包长度生成;
所述数据发送模块,包括:
组合子模块,用于将所述多个被测设备对应的数据包组合成发送队列;
确定子模块,用于根据所述发送队列中各被测设备对应的数据包所占的比例,确定所述各被测设备对应的数据包占用所述目标网卡端口的带宽比例;
发送子模块,用于按照所述带宽比例,通过所述目标网卡端口向所述被测设备发送对应的数据包。
6.根据权利要求5所述的装置,其特征在于,所述端口确定模块,包括:
第一确定子模块,用于若所述服务器存在空闲的网卡端口,且每一个空闲的网卡端口的可用带宽均小于所述带宽需求量,则从所述空闲的网卡端口中确定多个目标网卡端口;其中,所述多个目标网卡端口的可用带宽大于或等于所述带宽需求量。
7.根据权利要求5所述的装置,其特征在于,所述装置还包括:
参数确定模块,用于确定被测设备对应的测试参数;所述测试参数包括:被测设备的地址、数据包的网络协议格式、数据包的发送速率;
数据生成模块,用于根据所述测试参数生成向所述被测设备待发送的数据包。
8.根据权利要求5所述的装置,其特征在于,所述装置还包括:
数据接收模块,用于通过所述目标网卡端口接收所述被测设备针对所述数据包返回的响应数据包;
统计分析模块,用于对所述响应数据包进行解析并统计,以得到所述被测设备对应的测试结果。
CN201810432233.7A 2018-05-08 2018-05-08 一种数据传输方法和装置 Active CN110460457B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810432233.7A CN110460457B (zh) 2018-05-08 2018-05-08 一种数据传输方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810432233.7A CN110460457B (zh) 2018-05-08 2018-05-08 一种数据传输方法和装置

Publications (2)

Publication Number Publication Date
CN110460457A CN110460457A (zh) 2019-11-15
CN110460457B true CN110460457B (zh) 2021-03-02

Family

ID=68480454

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810432233.7A Active CN110460457B (zh) 2018-05-08 2018-05-08 一种数据传输方法和装置

Country Status (1)

Country Link
CN (1) CN110460457B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110825648B (zh) * 2019-11-21 2023-08-25 新华三技术有限公司 测试脚本类型的确定方法、装置、通用测试仪及存储介质
CN111464378B (zh) * 2020-03-13 2021-12-07 苏州浪潮智能科技有限公司 一种服务器网卡双网速测试方法及系统
CN111796533A (zh) * 2020-07-01 2020-10-20 北京无线电测量研究所 基于Linux操作系统的控制测试仪器的方法、装置、计算机设备
CN112565004B (zh) * 2020-11-25 2022-08-09 信而泰(无锡)信息技术有限公司 网络测试流量的分配方法和装置
CN113448634B (zh) * 2021-05-31 2022-07-19 山东英信计算机技术有限公司 一种roce网卡资源管理的方法、装置、设备及可读介质
CN114205274B (zh) * 2021-11-02 2024-06-11 北京百度网讯科技有限公司 网络设备的测试方法及其装置
CN114448841B (zh) * 2021-12-30 2023-11-03 苏州浪潮智能科技有限公司 一种网卡测试方法、装置、设备及介质
CN115632971B (zh) * 2022-12-23 2023-04-07 北京长亭未来科技有限公司 一种tcp端口探测方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1863066A (zh) * 2005-05-11 2006-11-15 华为技术有限公司 对链路带宽进行动态调整的方法和状态机
CN101127700A (zh) * 2007-08-16 2008-02-20 武汉理工大学 基于网络带宽和用户费用下的网格资源调度方法
CN101926199A (zh) * 2008-04-30 2010-12-22 上海贝尔股份有限公司 在无线通信系统中用于带宽请求与分配的方法及装置
CN106027304A (zh) * 2016-05-24 2016-10-12 联想(北京)有限公司 一种信息处理方法及电子设备
CN107508726A (zh) * 2017-08-30 2017-12-22 成都网优力软件有限公司 一种应用在有其他软件干扰或测试设备硬件性能较差的带宽测试方法和系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1863066A (zh) * 2005-05-11 2006-11-15 华为技术有限公司 对链路带宽进行动态调整的方法和状态机
CN101127700A (zh) * 2007-08-16 2008-02-20 武汉理工大学 基于网络带宽和用户费用下的网格资源调度方法
CN101926199A (zh) * 2008-04-30 2010-12-22 上海贝尔股份有限公司 在无线通信系统中用于带宽请求与分配的方法及装置
CN106027304A (zh) * 2016-05-24 2016-10-12 联想(北京)有限公司 一种信息处理方法及电子设备
CN107508726A (zh) * 2017-08-30 2017-12-22 成都网优力软件有限公司 一种应用在有其他软件干扰或测试设备硬件性能较差的带宽测试方法和系统

Also Published As

Publication number Publication date
CN110460457A (zh) 2019-11-15

Similar Documents

Publication Publication Date Title
CN110460457B (zh) 一种数据传输方法和装置
CN110351156B (zh) 一种测试方法和装置
Zeng et al. Demystifying the performance interference of co-located virtual network functions
US8863138B2 (en) Application service performance in cloud computing
CN105577549B (zh) 一种基于软件定义网络实现内容分发网络的方法及系统
CN103685583B (zh) 一种域名解析的方法和系统
CN106657180B (zh) 用于云服务的信息传输方法、装置、终端设备及系统
US11146531B2 (en) Separating CGN forwarding and control
US10372633B1 (en) Interconnection of peripheral devices on different electronic devices
Meyer et al. Validated model-based performance prediction of multi-core software routers
WO2014086193A1 (en) Data flow affinity for heterogenous virtual machines
Wang et al. NCTUns distributed network emulator
Ganguli et al. Challenges and opportunities in performance benchmarking of service mesh for the edge
CN111371694A (zh) 一种分流方法、装置和系统、处理设备和存储介质
Ara et al. Comparative evaluation of kernel bypass mechanisms for high-performance inter-container communications
Khorsandroo et al. An experimental investigation of SDN controller live migration in virtual data centers
Singhal et al. Evaluation of UML based wireless network virtualization
de Oliveira Filho et al. Measuring the impact of SR-IOV and virtualization on packet round-trip time
Yoon et al. A measurement study on evaluating container network performance for edge computing
Kuenzer et al. Towards minimalistic, virtualized content caches with minicache
Amulya et al. A study of tools to develop a traffic generator for L4–L7 layers
Schlosser et al. Performance comparison of hardware virtualization platforms
CN106506268B (zh) 一种服务器的访问方法和系统
Wibowo et al. Closer Towards Named Data Networking Implementation
CN110347473B (zh) 一种跨数据中心分布的虚拟化网元虚拟机分配方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant