CN108011781A - 基于Linux内核提高网络设备测试性能的方法 - Google Patents
基于Linux内核提高网络设备测试性能的方法 Download PDFInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing 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内核提高网络设备测试性能的方法。
背景技术
在家庭网关等网络设备中,为了获取链路的传输速率,往往通过让网络设备进行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数据长度。
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)
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)
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内核驱动的网络带宽测速方法 |
-
2017
- 2017-12-06 CN CN201711276264.XA patent/CN108011781A/zh active Pending
Patent Citations (2)
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)
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 |