CN108011781A - 基于Linux内核提高网络设备测试性能的方法 - Google Patents

基于Linux内核提高网络设备测试性能的方法 Download PDF

Info

Publication number
CN108011781A
CN108011781A CN201711276264.XA CN201711276264A CN108011781A CN 108011781 A CN108011781 A CN 108011781A CN 201711276264 A CN201711276264 A CN 201711276264A CN 108011781 A CN108011781 A CN 108011781A
Authority
CN
China
Prior art keywords
tcp
message
network equipment
linux kernel
detection performance
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.)
Pending
Application number
CN201711276264.XA
Other languages
English (en)
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.)
Shanghai Gongjin Communication Technology Co Ltd
Original Assignee
Shanghai Gongjin Communication Technology 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 Shanghai Gongjin Communication Technology Co Ltd filed Critical Shanghai Gongjin Communication Technology Co Ltd
Priority to CN201711276264.XA priority Critical patent/CN108011781A/zh
Publication of CN108011781A publication Critical patent/CN108011781A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements

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

本发明涉及一种基于Linux内核提高网络设备测试性能的方法,该方法为利用钩子函数直接在驱动层响应TCP报文。采用了该发明中的基于Linux内核提高网络设备测试性能的方法,能够在不提升CPU性能的情况下,优化CPU对TCP下载报文的处理速度,提升TCP下载测速性能,降低网络设备的成本,延长网络设备的生命周期。

Description

基于Linux内核提高网络设备测试性能的方法
技术领域
本发明涉及计算机技术领域,尤其涉及网络设备的测试领域,具体是指一种基于Linux内核提高网络设备测试性能的方法。
背景技术
在家庭网关等网络设备中,为了获取链路的传输速率,往往通过让网络设备进行HTTP/FTP等TCP下载的方式来进行测试,但由于网络设备CPU的运算能力有限,实际测试出来的链路速度很难达到真实的链路速率,为了解决这个问题,一般都需要升级网络设备的CPU,增加了额外的成本。
发明内容
本发明的目的是克服了上述现有技术的缺点,提供了一种能够降低成本的基于Linux内核提高网络设备测试性能的方法。
为了实现上述目的,本发明的基于Linux内核提高网络设备测试性能的方法具有如下构成:
该基于Linux内核提高网络设备测试性能的方法,其主要特点是,所述的方法包括以下步骤:
(1)在所述的Linux内核中加载测速模块,并通过所述测速模块的参数指定下载服务器的IP地址和TCP端口号;
(2)一测速钩子函数判断接收的报文的IP地址和TCP端口号是否和所述下载服务器的IP地址和TCP端口号相匹配,如匹配,则所述的报文为TCP下载报文并进入步骤(3),否则按正常的流程进行处理;
(3)解析所述的TCP下载报文的IP头和TCP头,并计算出所述的TCP下载报文的TCP数据长度;
(4)根据所述的TCP下载报文的TCP数据长度计算出ACK报文的序列号和ACK序列号;
(5)根据所述的TCP下载报文和ACK序列号,填充ACK报文并发送。
该基于Linux内核提高网络设备测试性能的方法的步骤(1)还包括:
所述的测速模块挂载测速钩子函数。
该基于Linux内核提高网络设备测试性能的方法的测速模块在网络驱动层和IP层之间挂载所述的测速钩子函数。
该基于Linux内核提高网络设备测试性能的方法的挂载所述的测速钩子函数具体为:
在内核函数netif_receive_skb()中添加一个对测速钩子函数的调用,如果钩子函数返回成功,则直接返回,否则按所述的正常流程进行处理。
该基于Linux内核提高网络设备测试性能的方法的步骤(2)中,所述的测试钩子函数通过监听网卡驱动接收的报文来判断所述的报文的IP地址和TCP端口号是否和所述下载服务器的IP地址和TCP端口号相匹配。
该基于Linux内核提高网络设备测试性能的方法的步骤(3)中,若所述的报文为TCP三次握手的下载报文,则对该报文按所述的正常的流程进行处理。
该基于Linux内核提高网络设备测试性能的方法的步骤(3)中,通过获取IP报文总长度、IP头长度和TCP头长度,来计算所述的TCP下载报文的TCP数据长度。
该基于Linux内核提高网络设备测试性能的方法的步骤(4)具体为:
解析所述的TCP下载报文的TCP头,获取TCP的序列号和ACK序列号,并结合TCP下载报文的TCP数据长度计算出ACK报文的序列号和ACK序列号。
该基于Linux内核提高网络设备测试性能的方法的TCP下载报文的TCP数据长度的计算过程如下:
TCP下载报文的TCP数据长度=IP报文总长度–IP头长度–TCP头长度。
该基于Linux内核提高网络设备测试性能的方法的ACK报文的序列号和ACK序列号的计算过程如下:
ACK报文的序列号=TCP下载报文的ACK序列号;
ACK序列号=TCP下载报文的序列号+TCP下载报文的TCP数据长度。
采用了该发明中的基于Linux内核提高网络设备测试性能的方法,能够在不提升CPU性能的情况下,优化CPU对TCP下载报文的处理速度,提升TCP下载测速性能,降低网络设备的成本,延长网络设备的生命周期。
附图说明
图1为本发明的基于Linux内核提高网络设备测试性能方法的流程示意图。
具体实施方式
为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。
请参阅图1所示,其为本发明的基于Linux内核提高网络设备测试性能方法的流程示意图。该基于Linux内核提高网络设备测试性能的方法利用钩子函数直接在驱动层响应TCP报文,具体包括以下步骤:
(1)在所述的Linux内核中加载测速模块,并通过所述测速模块的参数指定下载服务器的IP地址和TCP端口号;
(2)一测速钩子函数判断接收的报文的IP地址和TCP端口号是否和所述下载服务器的IP地址和TCP端口号相匹配,如匹配,则所述的报文为TCP下载报文并进入步骤(3),否则按正常的流程进行处理;
(3)解析所述的TCP下载报文的IP头和TCP头,并计算出所述的TCP下载报文的TCP数据长度;
(4)根据所述的TCP下载报文的TCP数据长度计算出ACK报文的序列号和ACK序列号;
(5)根据所述的TCP下载报文和ACK序列号,填充ACK报文并发送。
该基于Linux内核提高网络设备测试性能的方法的步骤(1)还包括:
所述的测速模块挂载测速钩子函数。
该基于Linux内核提高网络设备测试性能的方法的测速模块在网络驱动层和IP层之间挂载所述的测速钩子函数。
该基于Linux内核提高网络设备测试性能的方法的挂载所述的测速钩子函数具体为:
在内核函数netif_receive_skb()中添加一个对测速钩子函数的调用,如果钩子函数返回成功,则直接返回,否则按所述的正常流程进行处理。
该基于Linux内核提高网络设备测试性能的方法的步骤(2)中,所述的测试钩子函数通过监听网卡驱动接收的报文来判断所述的报文的IP地址和TCP端口号是否和所述下载服务器的IP地址和TCP端口号相匹配。
该基于Linux内核提高网络设备测试性能的方法的步骤(3)中,若所述的报文为TCP三次握手的下载报文,则对该报文按所述的正常的流程进行处理。
该基于Linux内核提高网络设备测试性能的方法的步骤(3)中,通过获取IP报文总长度、IP头长度和TCP头长度,来计算所述的TCP下载报文的TCP数据长度。
该基于Linux内核提高网络设备测试性能的方法的步骤(4)具体为:
解析所述的TCP下载报文的TCP头,获取TCP的序列号和ACK序列号,并结合TCP下载报文的TCP数据长度计算出ACK报文的序列号和ACK序列号。
该基于Linux内核提高网络设备测试性能的方法的TCP下载报文的TCP数据长度的计算过程如下:
TCP下载报文的TCP数据长度=IP报文总长度–IP头长度–TCP头长度。
该基于Linux内核提高网络设备测试性能的方法的ACK报文的序列号和ACK序列号的计算过程如下:
ACK报文的序列号=TCP下载报文的ACK序列号;
ACK序列号=TCP下载报文的序列号+TCP下载报文的TCP数据长度。
采用了该发明中的基于Linux内核提高网络设备测试性能的方法,能够在不提升CPU性能的情况下,优化CPU对TCP下载报文的处理速度,提升TCP下载测速性能,降低网络设备的成本,延长网络设备的生命周期。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。

Claims (10)

1.一种基于Linux内核提高网络设备测试性能的方法,其特征在于,所述的方法包括以下步骤:
(1)在所述的Linux内核中加载测速模块,并通过所述测速模块的参数指定下载服务器的IP地址和TCP端口号;
(2)一测速钩子函数判断接收的报文的IP地址和TCP端口号是否和所述下载服务器的IP地址和TCP端口号相匹配,如匹配,则所述的报文为TCP下载报文并进入步骤(3),否则按正常的流程进行处理;
(3)解析所述的TCP下载报文的IP头和TCP头,并计算出所述的TCP下载报文的TCP数据长度;
(4)根据所述的TCP下载报文的TCP数据长度计算出ACK报文的序列号和ACK序列号;
(5)根据所述的TCP下载报文和ACK序列号,填充ACK报文并发送。
2.根据权利要求1所述的基于Linux内核提高网络设备测试性能的方法,其特征在于,所述的步骤(1)还包括:
所述的测速模块挂载测速钩子函数。
3.根据权利要求2所述的基于Linux内核提高网络设备测试性能的方法,其特征在于,所述的测速模块在网络驱动层和IP层之间挂载所述的测速钩子函数。
4.根据权利要求3所述的基于Linux内核提高网络设备测试性能的方法,其特征在于,所述的挂载所述的测速钩子函数具体为:
在内核函数netif_receive_skb()中添加一个对测速钩子函数的调用,如果钩子函数返回成功,则直接返回,否则按所述的正常流程进行处理。
5.根据权利要求1所述的基于Linux内核提高网络设备测试性能的方法,其特征在于,所述的步骤(2)中,所述的测试钩子函数通过监听网卡驱动接收的报文来判断所述的报文的IP地址和TCP端口号是否和所述下载服务器的IP地址和TCP端口号相匹配。
6.根据权利要求1所述的基于Linux内核提高网络设备测试性能的方法,其特征在于,所述的步骤(3)中,若所述的报文为TCP三次握手的下载报文,则对该报文按所述的正常的流程进行处理。
7.根据权利要求1所述的基于Linux内核提高网络设备测试性能的方法,其特征在于,所述的步骤(3)中,通过获取IP报文总长度、IP头长度和TCP头长度,来计算所述的TCP下载报文的TCP数据长度。
8.根据权利要求1所述的基于Linux内核提高网络设备测试性能的方法,其特征在于,所述的步骤(4)具体为:
解析所述的TCP下载报文的TCP头,获取TCP的序列号和ACK序列号,并结合TCP下载报文的TCP数据长度计算出ACK报文的序列号和ACK序列号。
9.根据权利要求7所述的基于Linux内核提高网络设备测试性能的方法,其特征在于,所述的TCP下载报文的TCP数据长度的计算过程如下:
TCP下载报文的TCP数据长度=IP报文总长度–IP头长度–TCP头长度。
10.根据权利要求8所述的基于Linux内核提高网络设备测试性能的方法,其特征在于,所述的ACK报文的序列号和ACK序列号的计算过程如下:
ACK报文的序列号=TCP下载报文的ACK序列号;
ACK序列号=TCP下载报文的序列号+TCP下载报文的TCP数据长度。
CN201711276264.XA 2017-12-06 2017-12-06 基于Linux内核提高网络设备测试性能的方法 Pending CN108011781A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711276264.XA CN108011781A (zh) 2017-12-06 2017-12-06 基于Linux内核提高网络设备测试性能的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711276264.XA CN108011781A (zh) 2017-12-06 2017-12-06 基于Linux内核提高网络设备测试性能的方法

Publications (1)

Publication Number Publication Date
CN108011781A true CN108011781A (zh) 2018-05-08

Family

ID=62056947

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711276264.XA Pending CN108011781A (zh) 2017-12-06 2017-12-06 基于Linux内核提高网络设备测试性能的方法

Country Status (1)

Country Link
CN (1) CN108011781A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108880938A (zh) * 2018-06-19 2018-11-23 成都网丁科技有限公司 一种端到端tcp会话测速方法
CN113542067A (zh) * 2021-07-14 2021-10-22 深圳市吉祥腾达科技有限公司 一种基于网络设备的两点间网络速率测试方法与系统
CN116708247A (zh) * 2022-09-24 2023-09-05 荣耀终端有限公司 路由器测速方法和路由器

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101605097A (zh) * 2009-07-22 2009-12-16 赛尔网络有限公司 IPv6/IPv4地址分级访问权限控制方法和访问控制网关
CN106878107A (zh) * 2017-02-28 2017-06-20 无锡研勤信息科技有限公司 基于Linux内核驱动的网络带宽测速方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101605097A (zh) * 2009-07-22 2009-12-16 赛尔网络有限公司 IPv6/IPv4地址分级访问权限控制方法和访问控制网关
CN106878107A (zh) * 2017-02-28 2017-06-20 无锡研勤信息科技有限公司 基于Linux内核驱动的网络带宽测速方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108880938A (zh) * 2018-06-19 2018-11-23 成都网丁科技有限公司 一种端到端tcp会话测速方法
CN113542067A (zh) * 2021-07-14 2021-10-22 深圳市吉祥腾达科技有限公司 一种基于网络设备的两点间网络速率测试方法与系统
CN116708247A (zh) * 2022-09-24 2023-09-05 荣耀终端有限公司 路由器测速方法和路由器
CN116708247B (zh) * 2022-09-24 2024-05-17 荣耀终端有限公司 路由器测速方法和路由器

Similar Documents

Publication Publication Date Title
CN108011781A (zh) 基于Linux内核提高网络设备测试性能的方法
CN108363662A (zh) 一种应用程序测试方法、存储介质及终端设备
CN107395572B (zh) 一种数据处理方法及物联网网关
CN103067214B (zh) 用于测试网站性能的方法、客户端、服务器和系统
CN105871509A (zh) 数据传输方法及装置
CN106878107B (zh) 基于Linux内核驱动的网络带宽测速方法
CN102209039B (zh) 一种文件传输方法及设备
JP2015511415A (ja) モバイル端末のインターネットアクセスサービスの品質を監視するための方法、デバイス、およびシステム
JP2009515487A5 (zh)
CN103873293B (zh) 一种健康探测装置及方法
CN103678130A (zh) 自动化性能测试方法及测试平台
CN103763156A (zh) 网络测速方法及系统
CN104320432A (zh) 一种软件安装方法、装置、服务器及系统
CN107493354A (zh) 一种更新应用信息的方法、应用商店服务器和应用商店
EP2911441A2 (en) Testing apparatus for communication system and method therefor
CN110248379B (zh) 无线局域网中基站的性能测试方法及装置
CN110166322B (zh) 一种计量自动化终端的检测方法和相关装置
CN107395451A (zh) 上网流量异常的处理方法、装置、设备及存储介质
CN118018461A (zh) 无线路由器WiFi性能测试方法及系统
CN102780612A (zh) 在tcp流/套接字连接的生命周期中估计发送方拥塞窗口的方法和装置
CN107800674A (zh) 一种用于检测分布式拒绝服务的攻击流量的方法和装置
US20210195498A1 (en) Terminal, relay apparatus selection apparatus, communication method, relay apparatus selection method, and program
US10582410B2 (en) Predicting downlink throughput
CN108134709A (zh) 一种应用于窄带物联网传输的测试方法及装置
JP6199844B2 (ja) 被疑箇所推定装置及び被疑箇所推定方法

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180508