CN112737967B - 一种基于Flow Director实现IPv4 GRE报文负载均衡的方法 - Google Patents

一种基于Flow Director实现IPv4 GRE报文负载均衡的方法 Download PDF

Info

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
Application number
CN202011559145.7A
Other languages
English (en)
Other versions
CN112737967A (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.)
Jiangsu Future Networks Innovation Institute
Original Assignee
Jiangsu Future Networks Innovation Institute
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 Jiangsu Future Networks Innovation Institute filed Critical Jiangsu Future Networks Innovation Institute
Priority to CN202011559145.7A priority Critical patent/CN112737967B/zh
Publication of CN112737967A publication Critical patent/CN112737967A/zh
Application granted granted Critical
Publication of CN112737967B publication Critical patent/CN112737967B/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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection 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报文负载均衡的方法
技术领域
本发明涉及互联网领域,具体涉及一种基于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位标识字段用以实现负载均衡。
CN202011559145.7A 2020-12-25 2020-12-25 一种基于Flow Director实现IPv4 GRE报文负载均衡的方法 Active CN112737967B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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报文的芯片实现方法及装置

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