CN109547580B - 一种处理数据报文的方法和装置 - Google Patents

一种处理数据报文的方法和装置 Download PDF

Info

Publication number
CN109547580B
CN109547580B CN201910059565.XA CN201910059565A CN109547580B CN 109547580 B CN109547580 B CN 109547580B CN 201910059565 A CN201910059565 A CN 201910059565A CN 109547580 B CN109547580 B CN 109547580B
Authority
CN
China
Prior art keywords
target
data message
target data
load balancing
processing
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
CN201910059565.XA
Other languages
English (en)
Other versions
CN109547580A (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.)
Wangsu Science and Technology Co Ltd
Original Assignee
Wangsu Science and 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 Wangsu Science and Technology Co Ltd filed Critical Wangsu Science and Technology Co Ltd
Priority to CN201910059565.XA priority Critical patent/CN109547580B/zh
Priority to PCT/CN2019/074461 priority patent/WO2020151030A1/zh
Priority to EP19911953.8A priority patent/EP3913893A4/en
Priority to US17/423,487 priority patent/US20220078120A1/en
Publication of CN109547580A publication Critical patent/CN109547580A/zh
Application granted granted Critical
Publication of CN109547580B publication Critical patent/CN109547580B/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
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
    • 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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/02Protocol performance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/622Layer-2 addresses, e.g. medium access control [MAC] addresses

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种处理数据报文的方法和装置,属于数据传输技术领域。所述方法包括:负载均衡设备接收目标数据报文,基于用户态协议栈对所述目标数据报文执行协议栈处理,并确定所述目标数据报文的目标协议类型;所述负载均衡设备通过用户态netfilter框架中注册的所述目标协议类型对应的调度处理函数,对所述目标数据报文进行调度处理;所述负载均衡设备基于所述调度处理的结果,对所述目标数据报文执行转发或者响应处理。采用本发明,减轻了报文处理流程对内核态的依赖,降低了报文拷贝的处理频率,从而节省了负载均衡设备的处理性能消耗,同时,对于数据报文的处理流程的升级替换等维护处理也更为方便、简单。

Description

一种处理数据报文的方法和装置
技术领域
本发明涉及数据传输技术领域,特别涉及一种处理数据报文的方法和装置。
背景技术
CDN系统中通常采用服务器集群的部署方式来处理CDN节点上的四层业务处理,并通常在每个CDN节点上部署工作在传输层的具备流量调度和分发功能负载均衡设备,从而将业务流量在服务器集群中均衡分配。
netfilter框架作为一个通用的、抽象的框架,通过其提供的一整套的hook函数的管理机制,诸如数据包过滤、网络地址转换(NAT,Network Address Translation)和基于协议类型的连接跟踪等功能可以以KO插件的方式加载至netfilter框架中。目前,负载均衡设备上一般会部署Linux虚拟服务器(即LVS,Linux Virtual Server),以实现业务流量在服务器集群内的负载均衡,该LVS工作在内核态,可以基于内核防火墙的netfilter框架,以KO插件的方式实现上述负载均衡功能。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
LVS的处理逻辑需要将报文传递至内核协议栈,由此带来的报文拷贝以及内核协议栈内大量的处理流程,将会占用整台负载均衡设备大量的处理性能,大幅影响业务流量的处理效率;同时,由于LVS跟内核耦合性很大,升级、替换等维护处理的过程较为复杂、繁琐。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种处理数据报文的方法和装置。所述技术方案如下:
第一方面,提供了一种处理数据报文的方法,所述方法包括:
负载均衡设备接收目标数据报文,基于用户态协议栈对所述目标数据报文执行协议栈处理,并确定所述目标数据报文的目标协议类型;
所述负载均衡设备通过用户态netfilter框架中注册的所述目标协议类型对应的调度处理函数,对所述目标数据报文进行调度处理;
所述负载均衡设备基于所述调度处理的结果,对所述目标数据报文执行转发或者响应处理。
可选的,所述负载均衡设备通过用户态netfilter框架中注册的所述目标协议类型对应的调度处理函数,对所述目标数据报文进行调度处理之前,还包括:
所述负载均衡设备通过用户态netfilter框架中注册的所述目标协议类型对应的报文防护函数,对所述目标数据报文进行防护处理;
如果检测出所述目标数据报文为恶意报文,所述负载均衡设备则丢弃所述目标数据报文。
可选的,所述对所述目标数据报文进行调度处理,包括:
当所述目标协议类型为TCP或UDP时,所述负载均衡设备根据所述目标数据报文的五元组信息,对所述目标数据报文进行调度处理;
当所述目标协议类型为ICMP时,所述负载均衡设备通过预设的代答规则,构造所述目标数据报文的响应报文。
可选的,所述负载均衡设备根据所述目标数据报文的五元组信息,对所述目标数据报文进行调度处理,包括:
所述负载均衡设备查找本地是否存在所述目标数据报文的五元组信息对应的目标会话表项;
如果存在,所述负载均衡设备则将所述目标会话表项中记录的目标后端服务器确定为所述目标数据报文的调度目的设备;
如果不存在,所述负载均衡设备则根据预设的调度算法确定所述目标数据报文的调度目的设备。
可选的,所述负载均衡设备则根据预设的调度算法确定所述目标数据报文的调度目的设备,包括:
如果本地预存的配置服务表中存在所述目标数据报文的五元组信息对应的目标配置服务,所述负载均衡设备则根据预设的所述目标配置服务的调度算法确定所述目标数据报文的调度目的设备,否则丢弃所述目标数据报文。
可选的,所述确定所述目标数据报文的目标协议类型之后,还包括:
当所述目标协议类型为ARP时,所述负载均衡设备通过用户态netfilter框架中注册的ARP处理函数,解析所述目标数据报文,建立邻居表项和路由表项。
可选的,所述确定所述目标数据报文的目标协议类型之后,还包括:
如果所述目标数据报文为非业务报文,所述负载均衡设备则基于环形队列的共享内存方式将所述目标数据报文通过KNI通道输入内核协议栈。
可选的,所述方法还包括:
所述负载均衡设备将所述用户态协议栈的协议栈地址与报文接收端口绑定,以通过所述用户态协议栈处理所述报文接收端口的接收到的数据报文。
第二方面,提供了一种处理数据报文的装置,所述装置包括:
报文接收模块,用于接收目标数据报文,基于用户态协议栈对所述目标数据报文执行协议栈处理,并确定所述目标数据报文的目标协议类型;
负载均衡模块,用于通过用户态netfilter框架中注册的所述目标协议类型对应的调度处理函数,对所述目标数据报文进行调度处理;
报文调度模块,用于基于所述调度处理的结果,对所述目标数据报文执行转发或者响应处理。
可选的,所述装置还包括报文防护模块,用于:
通过用户态netfilter框架中注册的所述目标协议类型对应的报文防护函数,对所述目标数据报文进行防护处理;
如果检测出所述目标数据报文为恶意报文,则丢弃所述目标数据报文。
可选的,所述负载均衡模块,具体用于:
当所述目标协议类型为TCP或UDP时,根据所述目标数据报文的五元组信息,对所述目标数据报文进行调度处理;
当所述目标协议类型为ICMP时,通过预设的代答规则,构造所述目标数据报文的响应报文。
可选的,所述负载均衡模块,具体用于:
查找本地是否存在所述目标数据报文的五元组信息对应的目标会话表项;
如果存在,则将所述目标会话表项中记录的目标后端服务器确定为所述目标数据报文的调度目的设备;
如果不存在,则根据预设的调度算法确定所述目标数据报文的调度目的设备。
可选的,所述负载均衡模块,具体用于:
如果本地预存的配置服务表中存在所述目标数据报文的五元组信息对应的目标配置服务,则根据预设的所述目标配置服务的调度算法确定所述目标数据报文的调度目的设备,否则丢弃所述目标数据报文。
可选的,所述负载均衡模块,还用于:
当所述目标协议类型为ARP时,通过用户态netfilter框架中注册的ARP处理函数,解析所述目标数据报文,建立邻居表项和路由表项。
可选的,所述装置还包括内核交互模块,用于:
如果所述目标数据报文为非业务报文,则基于环形队列的共享内存方式将所述目标数据报文通过KNI通道输入内核协议栈。
可选的,所述装置还包括协议栈绑定模块,用于:
将所述用户态协议栈的协议栈地址与报文接收端口绑定,以通过所述用户态协议栈处理所述报文接收端口的接收到的数据报文。
第三方面,提供了一种负载均衡设备,所述负载均衡设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如第一方面所述的处理数据报文的方法。
第四方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如第一方面所述的处理数据报文的方法。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例中,负载均衡设备接收目标数据报文,基于用户态协议栈对目标数据报文执行协议栈处理,并确定目标数据报文的目标协议类型;负载均衡设备通过用户态netfilter框架中注册的目标协议类型对应的调度处理函数,对目标数据报文进行调度处理;负载均衡设备基于调度处理的结果,对目标数据报文执行转发或者响应处理。这样,负载均衡设备通过用户态的netfilter框架实现数据报文的处理,减轻了报文处理流程对内核态的依赖,降低了报文拷贝的处理频率,从而节省了负载均衡设备的处理性能消耗,同时,对于数据报文的处理流程的升级替换等维护处理也更为方便、简单。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种处理数据报文的场景示意图;
图2是本发明实施例提供的一种处理数据报文的方法流程图;
图3是本发明实施例提供的一种处理数据报文的装置结构图;
图4是本发明实施例提供的一种处理数据报文的装置结构图;
图5是本发明实施例提供的一种处理数据报文的装置结构图;
图6是本发明实施例提供的一种处理数据报文的装置结构图;
图7是本发明实施例提供的一种负载均衡设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种处理数据报文的方法,该方法可以运用在负载均衡设备上,其中,负载均衡设备可以是服务器集群(如CDN系统)中用于引导业务流量,在服务器集群中实现负载均衡的设备。如图1所示,负载均衡设备可以与服务器集群的核心交换机相连,数据报文可以在到达核心交换机后,先经负载均衡设备进行调度处理,然后再由核心交换机传回服务器集群。负载均衡设备可以基于DPDK(Data Plane Development Kit,数据平面开发套件)技术构建数据报文的处理流程,从而可以在用户态实现高性能的报文处理。上述负载均衡设备可以包括处理器、存储器、收发器,处理器可以用于执行下述处理数据报文的流程,存储器可以用于存储下述处理过程中需要的数据以及产生的数据,收发器可以用于接收和发送下述处理过程中的相关数据。本实施例中以服务器集群为每个CDN节点的后端服务集群为例进行说明,其它集群与之类似,必要处将会具体说明。
下面将结合具体实施方式,对图2所示的处理流程进行详细的说明,内容可以如下:
步骤201,负载均衡设备接收目标数据报文,基于用户态协议栈对目标数据报文执行协议栈处理,并确定目标数据报文的目标协议类型。
在实施中,目标数据报文到达CDN节点的核心交换机后,CDN节点的核心交换机可以基于动态路由机制,先将目标数据报文发送给与核心交换机相连的负载均衡设备。这样,负载均衡设备可以接收核心交换机发送的目标数据报文,然后采用UIO(UserSpace I/O,运行在用户空间的I/O技术)等报文读写机制,将报文输入预设的用户态协议栈,进而可以通过该用户态协议栈对目标数据报文执行协议栈处理,同时,负载均衡设备可以查看目标数据报文的五元组信息,确定目标数据报文所属的目标协议类型。
可选的,负载均衡设备还可以在用户态实现对ARP(Address ResolutionProtocol,地址解析协议)报文的处理,相应的,步骤201之后可以存在如下处理:当目标协议类型为ARP时,负载均衡设备通过用户态netfilter框架中注册的ARP处理函数,解析目标数据报文,建立邻居表项和路由表项。
在实施中,负载均衡设备如果确定出目标数据报文的目标协议类型为ARP,则可以通过用户态netfilter框架中注册的ARP处理函数,对目标数据报文进行解析,根据解析结果添加ARP表项,建立邻居表项和路由表项,做好在用户态上进行报文转发的准备。之后,负载均衡设备还可以通过内核协议栈在内核态对解析后的目标数据报文进行处理。
可选的,负载均衡设备可以使用KNI(Kernel Interface,内核接口)通道将非业务报文交由内核态处理,相应的,步骤201之后可以存在如下处理:如果目标数据报文为非业务报文,负载均衡设备则基于环形队列的共享内存方式将目标数据报文通过KNI通道输入内核协议栈。
在实施中,负载均衡设备在接收到目标数据报文之后,如果目标数据报文为非业务报文,则可以采用共享内存的方式,通过KNI通道将目标数据报文载入内核态,即将目标数据报文输入内核协议栈。具体的,此处的共享内存可以被组织为环形队列的形式,并通过Read指针和Write指针来实现在环形队列中数据报文的读写处理。同理,内核协议栈对目标数据报文处理完成后,也可以采用该共享内存方式将处理后的目标数据报文通过KNI通道返回至用户态。
步骤202,负载均衡设备通过用户态netfilter框架中注册的目标协议类型对应的调度处理函数,对目标数据报文进行调度处理。
在实施中,负载均衡设备中可以预先配置有用户态netfilter框架,且netfilter框架中可以预先注册有多种协议类型对应的调度处理函数。负载均衡设备在确定了目标数据报文的目标协议类型之后,可以通过用户态netfilter框架中注册的目标协议类型对应的调度处理函数,对目标数据报文进行调度处理。
可选的,负载均衡设备可以在调度数据报文前先对收到的数据报文进行防护处理,以防止后端的服务器集群受到恶意报文攻击,相应的,步骤202之前可以存在以下处理:负载均衡设备通过用户态netfilter框架中注册的目标协议类型对应的报文防护函数,对目标数据报文进行防护处理;如果检测出目标数据报文为恶意报文,负载均衡设备则丢弃目标数据报文。
在实施中,负载均衡设备上部署的用户态netfilter框架中还可以预先注册有不同协议类型对应的报文防护函数,不同报文防护函数之间相互独立,且以插件的形式进行注册,并通过钩子函数在netfilter框架中实现动态的加载和卸载。报文防护函数可以至少包括TCP(Transmission Control Protocol传输控制协议)防护函数(可进一步包括SYNFLOOD防护函数、ACK FLOOD防护函数和HTTP FLOOD防护函数)、UDP(User DatagramProtocol,用户数据报协议)防护函数和ICMP(Internet Control Message Protocol,Internet控制协议)防护函数。这样,负载均衡设备在确定目标数据报文的目标协议类型之后,可以先通过用户态netfilter框架中注册的目标协议类型对应的报文防护函数,对目标数据报文进行防护处理。具体的,负载均衡设备可以通过报文防护函数分别对目标数据报文进行报文特征、协议特性、报文统计等检测和防护逻辑处理,完成DDoS攻击检测和防护的处理。在处理完成后,如果检测出目标数据报文为恶意报文,负载均衡设备则可以丢弃目标数据报文,而如果目标数据报文为正常报文,负载均衡设备则可以对目标数据报文执行后续处理。
可选的,对于数据报文的协议栈类型主要可以包括TCP报文、UDP报文和ICMP报文,相应的,步骤202中对目标数据报文的调度处理可以具体如下:当目标协议类型为TCP或UDP时,负载均衡设备根据目标数据报文的五元组信息,对目标数据报文进行调度处理;当目标协议类型为ICMP时,负载均衡设备通过预设的代答规则,构造目标数据报文的响应报文。
在实施中,当确定出目标数据报文的目标协议类型为TCP或者UDP时,负载均衡设备可以调取用户态netfilter框架中注册的TCP或UDP对应的调度处理函数执行下述处理,即负载均衡设备可以先获取目标数据报文的五元组信息(包括目的地址/目的端口/源地址/源端口/协议类型),然后根据目标数据报文的五元组信息对目标数据报文进行调度处理。而当目标数据报文的目标协议类型为ICMP时,负载均衡设备则可以调取用户态netfilter框架中注册的ICMP对应的调度处理函数,按照预设的代答规则,直接构造目标数据报文的响应报文。
可选的,对于TCP报文或者UDP报文进行调度处理时,可以优先按照已有的会话表项执行,相应的,上述根据五元组信息进行调度的处理具体可以为:负载均衡设备查找本地是否存在目标数据报文的五元组信息对应的目标会话表项;如果存在,负载均衡设备则将目标会话表项中记录的目标后端服务器确定为目标数据报文的调度目的设备;如果不存在,负载均衡设备则根据预设的调度算法确定目标数据报文的调度目的设备。
在实施中,负载均衡设备在获取目标数据报文的五元组信息后,可以先查找本地是否已存在目标数据报文的五元组信息对应的目标会话表项。如果存在目标会话表项,负载均衡设备则可以按照目标会话表项对目标数据报文进行调度,即将目标会话表项中记录的目标后端服务器确定为目标数据报文的调度目的设备,同时可以更新会话表项中的会话信息。而如果不存在目标会话表项,负载均衡设备则可以根据预设的调度算法,确定目标数据报文的调度目的设备,并创建目标数据报文的五元组对应的会话表项。
可选的,在按预设调度算法对数据报文进行调度前,可以先确定本地是否存在相应的配置服务,相应的,根据预设的调度算法确定调度目的设备的处理可以如下:如果本地预存的配置服务表中存在目标数据报文的五元组信息对应的目标配置服务,负载均衡设备则根据预设的目标配置服务的调度算法确定目标数据报文的调度目的设备,否则丢弃目标数据报文。
在实施中,在本地不存在目标数据报文的五元组信息对应的目标会话表项情况下,负载均衡设备可以先判断本地预存的配置服务表中是否存在目标数据报文的五元组信息对应的目标配置服务,具体可以根据五元组中的目的地址、目的端口和协议类型三项信息查找。如果存在目标配置服务,负载均衡设备则可以根据预设的目标配置服务的调度算法,确定目标数据报文的调度目的设备,并创建目标数据报文的五元组信息对应的会话表项;如果不存在目标配置服务器,负载均衡设备则可以直接丢弃目标数据报文。
步骤203,负载均衡设备基于调度处理的结果,对目标数据报文执行转发或者响应处理。
在实施中,负载均衡设备在对目标数据报文进行调度处理后,可以基于调度处理的结果,通过设备网卡对目标数据报文执行转发处理,或者对目标数据报文执行响应处理。具体的,对于转发处理,负载均衡设备可以修改目标数据报文的目的IP,将目标数据报文经核心交换机传输至后端的服务器集群中任意服务器;对于响应处理,负载均衡设备可以直接经核心交换机向目标数据报文的发送端反馈目标数据报文的响应报文。
可选的,负载均衡设备可以通过绑定协议栈地址和设备的端口的方式将数据报文加载至用户态进行处理,相应的处理可以如下:负载均衡设备将用户态协议栈的协议栈地址与报文接收端口绑定,以通过用户态协议栈处理报文接收端口的接收到的数据报文。
在实施中,负载均衡设备可以将用户态协议栈的协议栈地址与设备的报文接收端口进行绑定,并且将报文处理流程与上述协议栈地址进行关联。这样,负载均衡设备通过报文接收端口接收到数据报文之后,数据报文可以直接输入用户态协议栈,并按照与用户态协议栈的协议栈地址关联的报文处理流程,对数据报文执行具体的处理。
本发明实施例中,负载均衡设备接收目标数据报文,基于用户态协议栈对目标数据报文执行协议栈处理,并确定目标数据报文的目标协议类型;负载均衡设备通过用户态netfilter框架中注册的目标协议类型对应的调度处理函数,对目标数据报文进行调度处理;负载均衡设备基于调度处理的结果,对目标数据报文执行转发或者响应处理。这样,负载均衡设备通过用户态的netfilter框架实现数据报文的处理,减轻了报文处理流程对内核态的依赖,降低了报文拷贝的处理频率,从而节省了负载均衡设备的处理性能消耗,同时,对于数据报文的处理流程的升级替换等维护处理也更为方便、简单。
基于相同的技术构思,本发明实施例还提供了一种处理数据报文的装置,如图3所示,所述装置包括:
报文接收模块301,用于接收目标数据报文,基于用户态协议栈对所述目标数据报文执行协议栈处理,并确定所述目标数据报文的目标协议类型;
负载均衡模块302,用于通过用户态netfilter框架中注册的所述目标协议类型对应的调度处理函数,对所述目标数据报文进行调度处理;
报文调度模块303,用于基于所述调度处理的结果,对所述目标数据报文执行转发或者响应处理。
可选的,如图4所示,所述装置还包括报文防护模块304,用于:
通过用户态netfilter框架中注册的所述目标协议类型对应的报文防护函数,对所述目标数据报文进行防护处理;
如果检测出所述目标数据报文为恶意报文,则丢弃所述目标数据报文。
可选的,所述负载均衡模块302,具体用于:
当所述目标协议类型为TCP或UDP时,根据所述目标数据报文的五元组信息,对所述目标数据报文进行调度处理;
当所述目标协议类型为ICMP时,通过预设的代答规则,构造所述目标数据报文的响应报文。
可选的,所述负载均衡模块302,具体用于:
查找本地是否存在所述目标数据报文的五元组信息对应的目标会话表项;
如果存在,则将所述目标会话表项中记录的目标后端服务器确定为所述目标数据报文的调度目的设备;
如果不存在,则根据预设的调度算法确定所述目标数据报文的调度目的设备。
可选的,所述负载均衡模块302,具体用于:
如果本地预存的配置服务表中存在所述目标数据报文的五元组信息对应的目标配置服务,则根据预设的所述目标配置服务的调度算法确定所述目标数据报文的调度目的设备,否则丢弃所述目标数据报文。
可选的,所述负载均衡模块302,还用于:
当所述目标协议类型为ARP时,通过用户态netfilter框架中注册的ARP处理函数,解析所述目标数据报文,建立邻居表项和路由表项。
可选的,如图5所示,所述装置还包括内核交互模块305,用于:
如果所述目标数据报文为非业务报文,则基于环形队列的共享内存方式将所述目标数据报文通过KNI通道输入内核协议栈。
可选的,如图6所示,所述装置还包括协议栈绑定模块306,用于:
将所述用户态协议栈的协议栈地址与报文接收端口绑定,以通过所述用户态协议栈处理所述报文接收端口的接收到的数据报文。
本发明实施例中,负载均衡设备接收目标数据报文,基于用户态协议栈对目标数据报文执行协议栈处理,并确定目标数据报文的目标协议类型;负载均衡设备通过用户态netfilter框架中注册的目标协议类型对应的调度处理函数,对目标数据报文进行调度处理;负载均衡设备基于调度处理的结果,对目标数据报文执行转发或者响应处理。这样,负载均衡设备通过用户态的netfilter框架实现数据报文的处理,减轻了报文处理流程对内核态的依赖,降低了报文拷贝的处理频率,从而节省了负载均衡设备的处理性能消耗,同时,对于数据报文的处理流程的升级替换等维护处理也更为方便、简单。
需要说明的是:上述实施例提供的处理数据报文的装置在处理数据报文时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的处理数据报文的装置与处理数据报文的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图7是本发明实施例提供的负载均衡设备的结构示意图。该负载均衡设备700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器722(例如,一个或一个以上处理器)和存储器732,一个或一个以上存储应用程序742或数据744的存储介质730(例如一个或一个以上海量存储设备)。其中,存储器732和存储介质730可以是短暂存储或持久存储。存储在存储介质730的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对负载均衡设备700中的一系列指令操作。更进一步地,中央处理器722可以设置为与存储介质730通信,在负载均衡设备700上执行存储介质730中的一系列指令操作。
负载均衡设备700还可以包括一个或一个以上电源729,一个或一个以上有线或无线网络接口750,一个或一个以上输入输出接口758,一个或一个以上键盘756,和/或,一个或一个以上操作系统741,例如Windows Server,Mac OS X,Unix,Linux,FreeBSD等等。
负载均衡设备700可以包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行上述处理数据报文的指令。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (18)

1.一种处理数据报文的方法,其特征在于,所述方法包括:
负载均衡设备接收目标数据报文,基于用户态协议栈对所述目标数据报文执行协议栈处理,并确定所述目标数据报文的目标协议类型;
所述负载均衡设备通过用户态netfilter框架中注册的所述目标协议类型对应的调度处理函数,对所述目标数据报文进行所述目标协议类型对应的调度处理;
所述负载均衡设备基于所述调度处理的结果,对所述目标数据报文执行转发或者响应处理。
2.根据权利要求1所述的方法,其特征在于,所述负载均衡设备通过用户态netfilter框架中注册的所述目标协议类型对应的调度处理函数,对所述目标数据报文进行调度处理之前,还包括:
所述负载均衡设备通过用户态netfilter框架中注册的所述目标协议类型对应的报文防护函数,对所述目标数据报文进行防护处理;
如果检测出所述目标数据报文为恶意报文,所述负载均衡设备则丢弃所述目标数据报文。
3.根据权利要求1所述的方法,其特征在于,所述对所述目标数据报文进行所述目标协议类型对应的调度处理,包括:
当所述目标协议类型为TCP或UDP时,所述负载均衡设备根据所述目标数据报文的五元组信息,对所述目标数据报文进行调度处理;
当所述目标协议类型为ICMP时,所述负载均衡设备通过预设的代答规则,构造所述目标数据报文的响应报文。
4.根据权利要求3所述的方法,其特征在于,所述负载均衡设备根据所述目标数据报文的五元组信息,对所述目标数据报文进行调度处理,包括:
所述负载均衡设备查找本地是否存在所述目标数据报文的五元组信息对应的目标会话表项;
如果存在,所述负载均衡设备则将所述目标会话表项中记录的目标后端服务器确定为所述目标数据报文的调度目的设备;
如果不存在,所述负载均衡设备则根据预设的调度算法确定所述目标数据报文的调度目的设备。
5.根据权利要求4所述的方法,其特征在于,所述负载均衡设备则根据预设的调度算法确定所述目标数据报文的调度目的设备,包括:
如果本地预存的配置服务表中存在所述目标数据报文的五元组信息对应的目标配置服务,所述负载均衡设备则根据预设的所述目标配置服务的调度算法确定所述目标数据报文的调度目的设备,否则丢弃所述目标数据报文。
6.根据权利要求1所述的方法,其特征在于,所述确定所述目标数据报文的目标协议类型之后,还包括:
当所述目标协议类型为ARP时,所述负载均衡设备通过用户态netfilter框架中注册的ARP处理函数,解析所述目标数据报文,建立邻居表项和路由表项。
7.根据权利要求1所述的方法,其特征在于,所述确定所述目标数据报文的目标协议类型之后,还包括:
如果所述目标数据报文为非业务报文,所述负载均衡设备则基于环形队列的共享内存方式将所述目标数据报文通过KNI通道输入内核协议栈。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述负载均衡设备将所述用户态协议栈的协议栈地址与报文接收端口绑定,以通过所述用户态协议栈处理所述报文接收端口的接收到的数据报文。
9.一种处理数据报文的装置,其特征在于,所述装置包括:
报文接收模块,用于接收目标数据报文,基于用户态协议栈对所述目标数据报文执行协议栈处理,并确定所述目标数据报文的目标协议类型;
负载均衡模块,用于通过用户态netfilter框架中注册的所述目标协议类型对应的调度处理函数,对所述目标数据报文进行所述目标协议类型对应的调度处理;
报文调度模块,用于基于所述调度处理的结果,对所述目标数据报文执行转发或者响应处理。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括报文防护模块,用于:
通过用户态netfilter框架中注册的所述目标协议类型对应的报文防护函数,对所述目标数据报文进行防护处理;
如果检测出所述目标数据报文为恶意报文,则丢弃所述目标数据报文。
11.根据权利要求9所述的装置,其特征在于,所述负载均衡模块,具体用于:
当所述目标协议类型为TCP或UDP时,根据所述目标数据报文的五元组信息,对所述目标数据报文进行调度处理;
当所述目标协议类型为ICMP时,通过预设的代答规则,构造所述目标数据报文的响应报文。
12.根据权利要求11所述的装置,其特征在于,所述负载均衡模块,具体用于:
查找本地是否存在所述目标数据报文的五元组信息对应的目标会话表项;
如果存在,则将所述目标会话表项中记录的目标后端服务器确定为所述目标数据报文的调度目的设备;
如果不存在,则根据预设的调度算法确定所述目标数据报文的调度目的设备。
13.根据权利要求12所述的装置,其特征在于,所述负载均衡模块,具体用于:
如果本地预存的配置服务表中存在所述目标数据报文的五元组信息对应的目标配置服务,则根据预设的所述目标配置服务的调度算法确定所述目标数据报文的调度目的设备,否则丢弃所述目标数据报文。
14.根据权利要求9所述的装置,其特征在于,所述负载均衡模块,还用于:
当所述目标协议类型为ARP时,通过用户态netfilter框架中注册的ARP处理函数,解析所述目标数据报文,建立邻居表项和路由表项。
15.根据权利要求10所述的装置,其特征在于,所述装置还包括内核交互模块,用于:
如果所述目标数据报文为非业务报文,则基于环形队列的共享内存方式将所述目标数据报文通过KNI通道输入内核协议栈。
16.根据权利要求9所述的装置,其特征在于,所述装置还包括协议栈绑定模块,用于:
将所述用户态协议栈的协议栈地址与报文接收端口绑定,以通过所述用户态协议栈处理所述报文接收端口的接收到的数据报文。
17.一种负载均衡设备,其特征在于,所述负载均衡设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至8任一所述的处理数据报文的方法。
18.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至8任一所述的处理数据报文的方法。
CN201910059565.XA 2019-01-22 2019-01-22 一种处理数据报文的方法和装置 Active CN109547580B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201910059565.XA CN109547580B (zh) 2019-01-22 2019-01-22 一种处理数据报文的方法和装置
PCT/CN2019/074461 WO2020151030A1 (zh) 2019-01-22 2019-02-01 一种处理数据报文的方法和装置
EP19911953.8A EP3913893A4 (en) 2019-01-22 2019-02-01 METHOD AND DEVICE FOR PROCESSING DATA MESSAGE
US17/423,487 US20220078120A1 (en) 2019-01-22 2019-02-01 Method and apparatus for processing data packet

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910059565.XA CN109547580B (zh) 2019-01-22 2019-01-22 一种处理数据报文的方法和装置

Publications (2)

Publication Number Publication Date
CN109547580A CN109547580A (zh) 2019-03-29
CN109547580B true CN109547580B (zh) 2021-05-25

Family

ID=65838027

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910059565.XA Active CN109547580B (zh) 2019-01-22 2019-01-22 一种处理数据报文的方法和装置

Country Status (4)

Country Link
US (1) US20220078120A1 (zh)
EP (1) EP3913893A4 (zh)
CN (1) CN109547580B (zh)
WO (1) WO2020151030A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110661904B (zh) * 2019-10-25 2022-06-14 浪潮云信息技术股份公司 一种实现源网络地址转换网关水平扩展的方法
CN112929264B (zh) * 2019-12-06 2022-10-28 厦门网宿有限公司 业务流量传输方法、系统及网络设备
CN112995753B (zh) * 2019-12-16 2024-03-22 中兴通讯股份有限公司 一种媒体流分发方法、cdn节点服务器、cdn系统和可读存储介质
CN111131439A (zh) * 2019-12-20 2020-05-08 浪潮电子信息产业股份有限公司 基于iSCSI的报文传输方法、装置、设备及存储介质
CN111404964B (zh) * 2020-03-30 2022-05-24 恒安嘉新(北京)科技股份公司 对ip数据报进行汇聚分流的方法、装置、设备及介质
CN112217735A (zh) * 2020-09-08 2021-01-12 网宿科技股份有限公司 信息同步方法与负载均衡系统
CN112380001A (zh) * 2020-10-30 2021-02-19 网宿科技股份有限公司 日志输出方法、负载均衡设备及计算机可读存储介质
CN113485823A (zh) * 2020-11-23 2021-10-08 中兴通讯股份有限公司 数据传输方法、装置、网络设备、存储介质
CN113014627B (zh) * 2021-02-10 2022-07-26 深圳震有科技股份有限公司 报文转发方法、装置、智能终端及计算机可读存储介质
CN113242232A (zh) * 2021-05-07 2021-08-10 建信金融科技有限责任公司 消息处理系统和方法
CN113301049B (zh) * 2021-05-26 2023-02-24 杭州安恒信息技术股份有限公司 一种工控设备的审计方法、装置、设备及可读存储介质
CN115442173B (zh) * 2022-06-07 2024-02-06 北京车和家信息技术有限公司 车辆报文转发、处理方法、装置、电子设备及存储介质
CN115361443B (zh) * 2022-08-16 2023-06-20 武汉思普崚技术有限公司 一种报文处理方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1545275A (zh) * 2003-11-21 2004-11-10 清华大学深圳研究生院 基于Netfilter架构的流媒体集群服务内容调度方法
CN101867558A (zh) * 2009-04-17 2010-10-20 深圳市永达电子股份有限公司 用户态网络协议栈系统及处理报文的方法
CN104142867A (zh) * 2013-05-09 2014-11-12 华为技术有限公司 数据处理装置及数据处理方法
CN104852833A (zh) * 2015-06-04 2015-08-19 上海斐讯数据通信技术有限公司 Linux系统中网络协议栈管理方法及系统
US9141580B2 (en) * 2010-03-23 2015-09-22 Citrix Systems, Inc. Systems and methods for monitoring and maintaining consistency of a configuration
CN104951357A (zh) * 2014-03-28 2015-09-30 华为技术有限公司 并行用户态协议栈的管理方法和协议栈系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8458467B2 (en) * 2005-06-21 2013-06-04 Cisco Technology, Inc. Method and apparatus for adaptive application message payload content transformation in a network infrastructure element
CN100558089C (zh) * 2007-06-08 2009-11-04 北京工业大学 一种基于网络过滤器的内容过滤网关实现方法
CN101330473A (zh) * 2007-06-18 2008-12-24 电子科技大学 一种多协议支持的网络垃圾信息过滤方法和装置
CN101827029B (zh) * 2010-04-21 2013-01-02 烽火通信科技股份有限公司 一种Linux网络设备动态标记RTP流量的方法
US8688817B2 (en) * 2011-03-14 2014-04-01 Edgecast Networks, Inc. Network connection hand-off using state transformations
CN107483574B (zh) * 2012-10-17 2021-05-28 阿里巴巴集团控股有限公司 一种负载均衡下的数据交互系统、方法及装置
CN103139315A (zh) * 2013-03-26 2013-06-05 烽火通信科技股份有限公司 一种适用于家庭网关的应用层协议解析方法
US9432245B1 (en) * 2013-04-16 2016-08-30 Amazon Technologies, Inc. Distributed load balancer node architecture
CN103327025B (zh) * 2013-06-28 2016-08-24 北京奇虎科技有限公司 网络访问控制方法及装置
CN104753928B (zh) * 2015-03-16 2018-08-17 苏州科达科技股份有限公司 一种码流转发方法及系统
CN106341373B (zh) * 2015-07-09 2019-07-23 安一恒通(北京)科技有限公司 用于检测和阻止恶意点击广告链接的方法和装置
CN107026890B (zh) * 2016-02-02 2020-10-09 华为技术有限公司 一种基于服务器集群的报文生成方法和负载均衡器
CN106686085B (zh) * 2016-12-29 2020-06-16 华为技术有限公司 一种负载均衡的方法、装置和系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1545275A (zh) * 2003-11-21 2004-11-10 清华大学深圳研究生院 基于Netfilter架构的流媒体集群服务内容调度方法
CN101867558A (zh) * 2009-04-17 2010-10-20 深圳市永达电子股份有限公司 用户态网络协议栈系统及处理报文的方法
US9141580B2 (en) * 2010-03-23 2015-09-22 Citrix Systems, Inc. Systems and methods for monitoring and maintaining consistency of a configuration
CN104142867A (zh) * 2013-05-09 2014-11-12 华为技术有限公司 数据处理装置及数据处理方法
CN104951357A (zh) * 2014-03-28 2015-09-30 华为技术有限公司 并行用户态协议栈的管理方法和协议栈系统
CN104852833A (zh) * 2015-06-04 2015-08-19 上海斐讯数据通信技术有限公司 Linux系统中网络协议栈管理方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
用户态并行协议栈关键技术的研究与实现;章巍巍;《中国优秀硕士学位论文全文数据库 信息科技辑》;20130215;全文 *

Also Published As

Publication number Publication date
EP3913893A4 (en) 2022-03-09
WO2020151030A1 (zh) 2020-07-30
US20220078120A1 (en) 2022-03-10
CN109547580A (zh) 2019-03-29
EP3913893A1 (en) 2021-11-24

Similar Documents

Publication Publication Date Title
CN109547580B (zh) 一种处理数据报文的方法和装置
US10680951B2 (en) System and method for processing and forwarding transmitted information
CN112585915B (zh) 控制网络系统中数据传输的装置和方法
US10171362B1 (en) System and method for minimizing disruption from failed service nodes
US10749805B2 (en) Statistical collection in a network switch natively configured as a load balancer
US8913613B2 (en) Method and system for classification and management of inter-blade network traffic in a blade server
US20200007445A1 (en) Enhanced service function chain
WO2015114473A1 (en) Method and apparatus for locality sensitive hash-based load balancing
Van Tu et al. Accelerating virtual network functions with fast-slow path architecture using express data path
Bremler-Barr et al. Openbox: Enabling innovation in middlebox applications
Van Tu et al. Building hybrid virtual network functions with eXpress data path
US20210152525A1 (en) Generating an application-based proxy auto configuration
US8050266B2 (en) Low impact network debugging
Cho et al. A sophisticated packet forwarding scheme with deep packet inspection in an openflow switch
US20220311791A1 (en) Systems and methods for low latency stateful threat detection and mitigation
US9736080B2 (en) Determination method, device and storage medium
US11057415B1 (en) Systems and methods for dynamic zone protection of networks
Ji DE4NF: High Performance Nfv Frameworkwith P4-Based Event System
Iordache-Sica et al. Seamless Hardware-Accelerated Kubernetes Networking
Iliadis-Apostolidis et al. Towards Accelerating the Network Performance on DPUs by optimising the P4 runtime
Nascimento et al. Programmable Data Plane with Stateful Flow Processing for NFV Acceleration
CN116886422A (zh) 一种基于eBPF的网络高速转发中继方法及系统
CN117651023A (zh) 一种基于ebpf的高性能NAT模式负载均衡装置

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