CN112737967B - 一种基于Flow Director实现IPv4 GRE报文负载均衡的方法 - Google Patents
一种基于Flow Director实现IPv4 GRE报文负载均衡的方法 Download PDFInfo
- Publication number
- CN112737967B CN112737967B CN202011559145.7A CN202011559145A CN112737967B CN 112737967 B CN112737967 B CN 112737967B CN 202011559145 A CN202011559145 A CN 202011559145A CN 112737967 B CN112737967 B CN 112737967B
- Authority
- CN
- China
- Prior art keywords
- message
- network card
- queue
- flow director
- header
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种基于Flow Director实现IPv4 GRE报文负载均衡的方法,包括发送端发送报文和接收端收取报文两个部分。所述发送端发送报文部分包括如下步骤:发送端应用程序根据payload报文的类型,计算出hash值;将hash值写入Delivery Header IP报文头中的标识字段;将报文交给网卡并从队列发送出去。所述接收端收取报文部分包括如下部分:接收端应用程序需要初始化网卡的Flow Director功能,设置IP报文头中标识字段和硬件队列的映射关系。网卡接收到GRE报文后,根据映射关系,将数据报文送入指定的队列。应用程序可以从队列中收取报文,进一步处理。本发明可以充分利用网卡的多队列功能,提升数据报文的处理性能;同时保证了同一条数据流送入相同的队列进行处理和数据报文的有序处理。
Description
技术领域
本发明涉及互联网领域,具体涉及一种基于Flow Director实现IPv4 GRE报文负载均衡的方法。
背景技术
GRE(Generic Routing Encapsulation,通用路由封装),是一个通用的路由封装协议,用于在任意的网络层之上封装另一个网络协议。GRE报文结构如图1所示。
对于IPv4网络,Delivery Header包含以太帧头和IPv4报文头。
网卡接收到IPv4数据报文后,会根据报文中的源IP、目的IP、源端口号、目的端口号、协议号5元组来进行RSS操作,同一条数据流RSS计算出的hash值相同,被网卡送入同一个队列进行处理,以此保障数据流的有序处理。
对于Delivery Header为IPv4类型的GRE报文,即使payload中数据报文不同,但Delivery header中以太帧和IPv4报文头完全相同。因此即使网卡有多个硬件队列,数据流量也仅会送入一个队列进行处理。导致数据报文采用GRE封装后,不能充分发挥网卡的性能。
Intel 82599 10G和Intel XL710 40G类型网卡,提供了Flow Director功能。该2类网卡可以根据数据报文头前64字节中的任意位置的字段进行匹配,可以将匹配的数据报文送入指定的硬件队列。
发明内容
本发明的目的在于根据Delivery Header IPv4报文头中的16位标识字段来实现负载均衡。
为实现上述目的,本发明提供的具体技术方案如下:
一种基于Flow Director实现IPv4 GRE报文负载均衡的方法,其特征在于,包括发送端发送报文和接收端收取报文两个部分。
所述发送端发送报文部分包括如下步骤:
步骤1.1:发送端应用程序根据payload报文的类型,计算出hash值。
步骤1.2:将hash值写入Delivery Header IP报文头中的标识字段;
步骤1.3:将报文交给网卡,网卡将报文从队列发送出去。
所述步骤1具体包括:
步骤1.1.1:payload报文即承载在GRE隧道上的用户报文,如果用户报文为IP报文,使用五元组进行hash,所述五元组包括源IP、源端口、协议、目的端口和目的IP;
步骤1.1.2:使用对称KEY进行hash计算,以保证同一条流的上下行报文的hash值相同;
步骤1.1.3:如果报文为非IP报文,hash值直接填充为0即可。Hash值的计算可以根据具体需求使用SMAC+DMAC、SIP+DIP、SIP等,只需保证接收端和发送短hash计算方式一致即可。
所述接收端收取报文部分包括如下部分:
步骤2.1:接收端应用程序初始化网卡的Flow Director功能,
步骤2.2:接收端应用程序设置Flow Director取值在报文中的offset和length;
步骤2.3:接收端应用程序设置Flow Director获取的值与网卡硬件队列的映射关系,设置网卡硬件队列和应用程序各处理模块的映射关系;
步骤2.4:网卡接收到GRE报文后,根据Flow Director获取的值和网卡硬件队列的映射关系,将数据报文送入指定的队列;
步骤2.5:映射在不同网卡硬件队列的接收端应用程序的各处理模块获取到所需流量,做进一步处理。
所述IPv4网络中,传递头Delivery Header包含以太帧头和IPv4报文头。
所述IPv4 GRE报文头中的16位标识字段用以实现负载均衡。
本发明提供的一种基于Flow Director实现IPv4 GRE报文负载均衡的方法应用于Delivery Header为IPv4类型的GRE报文,可以充分利用网卡的多队列功能,提升数据报文的处理性能;同时保证了同一条数据流送入相同的队列进行处理,保证了数据报文的有序处理。
附图说明
图1为GRE报文封装结构图;
图2为IPv4报文头格式图;
图3为发送端处理流程图;
图4为接收端处理流程图。
具体实施方式
下面结合附图和实施例对本发明进行详细的描述,但并不以此作为对本申请保护范围的限定。
通用路由封装GRE,是一个通用的路由封装协议,用于在任意的网络层之上封装另一个网络协议。GRE报文结构如图1所示。
对于IPv4网络,Delivery Header包含以太帧头和IPv4报文头。
基于Flow Director实现IPv4 GRE报文负载均衡的方法,包括发送端发送报文和接收端收取报文两个部分。
如图3所示:所述发送端发送报文部分包括如下步骤:
步骤1.1:发送端应用程序根据payload报文的类型,计算出hash值。
步骤1.2:将hash值写入Delivery Header IP报文头中的标识字段;
步骤1.3:将报文交给网卡,网卡将报文从队列发送出去。
所述步骤1具体包括:
步骤1.1.1:payload报文即承载在GRE隧道上的用户报文,如果用户报文为IP报文,网卡接收到IPv4数据报文后,会根据报文中的源IP、目的IP、源端口号、目的端口号、协议号5元组来进行RSS操作,同一条数据流RSS计算出的hash值相同,被网卡送入同一个队列进行处理,以此保障数据流的有序处理。
步骤1.1.2:使用对称KEY进行hash计算,以保证同一条流的上下行报文的hash值相同;
步骤1.1.3:如果报文为非IP报文,hash值直接填充为0即可。Hash值的计算可以根据具体需求使用SMAC+DMAC、SIP+DIP、SIP等,只需保证接收端和发送短hash计算方式一致即可。
如图4所示:所述接收端收取报文部分包括如下部分:
步骤2.1:接收端应用程序初始化网卡的Flow Director功能,
步骤2.2:接收端应用程序设置Flow Director取值在报文中的offset和length;
步骤2.3:接收端应用程序设置Flow Director获取的值与网卡硬件队列的映射关系,设置网卡硬件队列和应用程序各处理模块的映射关系;
步骤2.4:网卡接收到GRE报文后,根据Flow Director获取的值和网卡硬件队列的映射关系,将数据报文送入指定的队列;
步骤2.5:映射在不同网卡硬件队列的接收端应用程序的各处理模块获取到所需流量,做进一步处理。
所述IPv4网络中,传递头Delivery Header包含以太帧头和IPv4报文头。
所述IPv4 GRE报文头中的16位标识字段用以实现负载均衡。
对于Delivery Header为IPv4类型的GRE报文,即使payload中数据报文不同,但Delivery header中以太帧和IPv4报文头完全相同。
因此即使网卡有多个硬件队列,数据流量也仅会送入一个队列进行处理。导致数据报文采用GRE封装后,不能充分发挥网卡的性能。
Intel 82599 10G和Intel XL710 40G类型网卡,提供了Flow Director功能。该2类网卡可以根据数据报文头前64字节中的任意位置的字段进行匹配,可以将匹配的数据报文送入指定的硬件队列。
为提升Delivery Header为IPv4类型的GRE报文数据处理性能,本文采用FlowDirector技术。根据Delivery Header IPv4报文头中的16位标识字段来实现负载均衡。IPv4报文头结构如图2所示。
采用本发明提供的方法后,Delivery Header为IPv4类型的GRE报文,可以充分利用网卡的多队列功能,提升数据报文的处理性能;同时保证了同一条数据流送入相同的队列进行处理,保证了数据报文的有序处理。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的仅为本发明的优选例,并不用来限制本发明,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (3)
1.一种基于Flow Director实现IPv4 GRE报文负载均衡的方法,其特征在于,包括发送端发送报文和接收端收取报文两个部分;
所述发送端发送报文部分包括如下步骤:
步骤1.1:发送端应用程序根据payload报文的类型,计算出hash值;
步骤1.2:将hash值写入Delivery Header IP报文头中的标识字段;
步骤1.3:将报文交给网卡,网卡将报文从队列发送出去;
所述步骤1.1具体包括:
步骤1.1.1:payload报文即承载在GRE隧道上的用户报文,如果用户报文为IP报文,使用五元组进行hash,所述五元组包括源IP、源端口、协议、目的端口和目的IP;
步骤1.1.2:使用对称KEY进行hash计算,以保证同一条流的上下行报文的hash值相同;
步骤1.1.3:如果报文为非IP报文,hash值直接填充为0即可;Hash值的计算根据具体需求使用SMAC+DMAC、SIP+DIP、SIP,只需保证接收端和发送端hash计算方式一致即可;
所述接收端收取报文部分包括如下部分:
步骤2.1:接收端应用程序初始化网卡的Flow Director功能,
步骤2.2:接收端应用程序设置Flow Director取值在报文中的offset和length;
步骤2.3:接收端应用程序设置Flow Director获取的值与网卡硬件队列的映射关系,设置网卡硬件队列和应用程序各处理模块的映射关系;
步骤2.4:网卡接收到GRE报文后,根据Flow Director获取的值和网卡硬件队列的映射关系,将数据报文送入指定的队列;
步骤2.5:映射在不同网卡硬件队列的接收端应用程序的各处理模块获取到所需流量,做进一步处理。
2.根据权利要求1所述的基于Flow Director实现IPv4 GRE报文负载均衡的方法,其特征在于,IPv4网络中,传递头Delivery Header包含以太帧头和IPv4报文头。
3.根据权利要求1所述的基于Flow Director实现IPv4 GRE报文负载均衡的方法,其特征在于,所述IPv4 GRE报文头中的16位标识字段用以实现负载均衡。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011559145.7A CN112737967B (zh) | 2020-12-25 | 2020-12-25 | 一种基于Flow Director实现IPv4 GRE报文负载均衡的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011559145.7A CN112737967B (zh) | 2020-12-25 | 2020-12-25 | 一种基于Flow Director实现IPv4 GRE报文负载均衡的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112737967A CN112737967A (zh) | 2021-04-30 |
CN112737967B true CN112737967B (zh) | 2022-12-06 |
Family
ID=75615858
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011559145.7A Active CN112737967B (zh) | 2020-12-25 | 2020-12-25 | 一种基于Flow Director实现IPv4 GRE报文负载均衡的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112737967B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115242711A (zh) * | 2022-07-14 | 2022-10-25 | 天翼云科技有限公司 | 一种报文传输方法及装置 |
CN116668375B (zh) * | 2023-07-31 | 2023-11-21 | 新华三技术有限公司 | 一种报文分流方法、装置、网络设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101325557A (zh) * | 2008-07-25 | 2008-12-17 | 华为技术有限公司 | 一种隧道负载分担的方法、系统和装置 |
CN106992915B (zh) * | 2016-01-21 | 2020-11-03 | 中兴通讯股份有限公司 | 一种报文解封装处理、数据写入方法及装置 |
CN109302354A (zh) * | 2018-10-26 | 2019-02-01 | 盛科网络(苏州)有限公司 | 一种udp封装gre报文的芯片实现方法及装置 |
-
2020
- 2020-12-25 CN CN202011559145.7A patent/CN112737967B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112737967A (zh) | 2021-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4829896B2 (ja) | データ破壊を避けることによる改善されたネットワーク性能のための方法、システム及び物品 | |
US8462814B2 (en) | Internet protocol using ethernet first mile physical layer | |
EP1234428B1 (en) | Method and apparatus for packet delay reduction using scheduling and header compression | |
US20180288179A1 (en) | Proxy for serving internet-of-things (iot) devices | |
US9369398B2 (en) | Method, device, and system to prioritize encapsulating packets in a plurality of logical network connections | |
CN107079017B (zh) | 一种报文转换方法及装置 | |
CN112737967B (zh) | 一种基于Flow Director实现IPv4 GRE报文负载均衡的方法 | |
Dreibholz et al. | Transmission scheduling optimizations for concurrent multipath transfer | |
US20140016545A1 (en) | Using encapsulation headers to indicate internet protocol packet fragmentation in cellular networks | |
US10044628B2 (en) | Methods and systems for receiving and transmitting packets based on priority levels | |
US10601610B2 (en) | Tunnel-level fragmentation and reassembly based on tunnel context | |
WO2016062142A1 (zh) | 报文汇聚传输的方法、装置和系统 | |
CN1863165A (zh) | 分组域网络中减少数据ip分片数量的方法 | |
US20060227752A1 (en) | Packet transmission method and apparatus | |
WO2022022229A1 (zh) | 一种处理报文的方法及装置 | |
US10701189B2 (en) | Data transmission method and apparatus | |
TWI721103B (zh) | 集群精確限速方法和裝置 | |
WO2018109531A1 (en) | Method and apparatus for tunnel endpoint ip address selection in a network environment | |
US20160127520A1 (en) | Partitioning data sets for transmission on multiple physical links | |
US8179795B2 (en) | Communication terminal apparatus, distribution apparatus, error notification method, and error notification program | |
CN114268518B (zh) | 一种实现sdwan数据隧道转发加速的方法及系统 | |
CN107517225B (zh) | 一种协议转换方法、网关设备及存储介质 | |
CN110247926B (zh) | 一种交互方法和系统 | |
WO2013097218A1 (zh) | 一种流媒体数据处理方法、装置及系统 | |
US10298494B2 (en) | Reducing short-packet overhead in computer clusters |
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 |