CN110932983B - 一种tcp负载均衡方法、装置、设备及介质 - Google Patents
一种tcp负载均衡方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN110932983B CN110932983B CN201911230129.0A CN201911230129A CN110932983B CN 110932983 B CN110932983 B CN 110932983B CN 201911230129 A CN201911230129 A CN 201911230129A CN 110932983 B CN110932983 B CN 110932983B
- Authority
- CN
- China
- Prior art keywords
- tcp
- message
- forwarding table
- hash value
- packet
- 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
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- 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
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种TCP负载均衡方法、装置、设备及介质,用以解决现有负载均衡技术中,硬件成本高、处理性能低的问题,该方法包括:获取包含五元组信息的报文;若所述报文不是首报文或所述报文是控制面发送的首报文,则从多个TCP转发表中查找与所述报文匹配的第一TCP转发表,其中,每个TCP转发表包括哈希值和修改信息的对应关系,所述第一TCP转发表包括的哈希值中有所述报文对应的哈希值,所述报文对应的哈希值是根据所述报文的五元组信息和所述TCP转发表对应的哈希算法确定的;根据所述第一TCP转发表中的对应关系,确定所述报文对应的修改信息;根据所述报文对应的修改信息修改所述报文包含的五元组信息后转发。
Description
技术领域
本发明涉及网络技术领域,尤其涉及一种传输控制协议(Transmission ControlProtocol,TCP)负载均衡方法、装置、设备及介质。
背景技术
TCP是一种面向连接的、可靠的、基于字节流的、应用于网络层的传输层通信协议,因特网上大部分数据流都是使用TCP协议。TCP负载均衡建立在现有网络结构之上,使工作任务分摊到多个操作单元上进行执行,例如全球广域网(World Wide Web,Web)服务器、文件传输协议(File Transfer Protocol,FTP)服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。它提供了一种廉价、有效且透明的方法,用以扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性,然而发明人发现,现有的负载均衡技术均未能满足网络传输的要求,具体来说:
(1)如图1所示,为基于TCP的超文本传输协议(HyperText Transfer Protocol,HTTP)重定向负载均衡方法,HTTP重定向服务器是一台普通的应用服务器,其唯一的功能就是根据用户的HTTP请求计算一台真实的Web服务器地址,并将该Web服务器地址写入HTTP重定向响应中,如图所示1,响应状态码302返回给用户浏览器。但是使用HTTP重定向负载均衡,浏览器需要两次请求服务器才能完成一次访问,性能较差,且重定向服务器自身的处理能力有可能成为瓶颈,整个集群的伸缩性规模有限,另外,使用HTTP302响应码重定向,有可能使搜索引擎判断为搜索引擎优化(Search Engine Optimization,SEO)作弊,降低搜索排名。
(2)如图2所示,为域名系统(Domain Name System,DNS)域名解析负载均衡方法,在DNS服务器中配置多个A记录,例如:www.mysite.com IN A 114.100.80.1、www.mysite.com IN A 114.100.80.2、www.mysite.com IN A 114.100.80.3。在每次域名解析请求时,都会根据负载均衡算法计算一个不同的网际互连协议(Internet Protocol,IP)地址返回,这样A记录中配置的多个服务器就构成一个集群,并可以实现负载均衡,图2中的浏览器请求解析域名www.mysite.com,DNS根据A记录和负载均衡算法计算得到一个IP地址114.100.80.3,并返回给浏览器,浏览器根据该IP地址,访问真是物理服务器114.100.80.3。
使用DNS域名解析负载均衡方法,可以将负载均衡的工作转交给DNS,省掉了网站管理维护负载均衡服务器的麻烦,同时许多DNS还支持基于地理位置的域名解析,即会将域名解析成距离用户地理位置最近的一个服务器地址,这样可加快用户访问速度,改善性能。但目前的DNS是多级解析,每一级DNS都可能缓存A记录,当下线某台服务器后,即使修改了DNS的A记录,要使其生效也需要较长的时间,这段时间,DNS依然会将域名解析到已经下线的服务器,导致用户访问失败,而且DNS负载均衡的控制权在域名服务商那里,网站无法对其做更多改善和更强大的管理。
(3)如图3所示,为反向代理负载均衡方法,由于反向代理服务器转发请求在HTTP协议层面,因此也叫应用层负载均衡。利用反向代理服务器进行负载均衡,前面我们提到利用反向代理缓存资源,以改善网站的性能。实际上,在部署位置上,为了缓存Web响应,加速访问,反向代理服务器处于Web服务器前面,正好是负载均衡服务器的位置,所以大多数反向代理服务器同时提供负载均衡的功能,管理一组Web服务器,将请求根据负载均衡算法转发到不同的Web服务器上,Web服务器处理完成的响应也需要通过反向代理服务器返回给用户。由于Web服务器不直接对外提供访问,因此Web服务器不需要使用外部IP地址,而反向代理服务器则需要配置双网卡和内部外部两套IP地址。
图3中,浏览器访问请求的地址是反省代理服务器的地址114.100.80.10,反向代理服务器收到请求后,根据负载均衡算法计算得到一台真实物理服务器的地址10.0.0.3,并将请求转发给服务器。10.0.0.3处理完请求后将响应返回给反向代理服务器,反向代理服务器再将该响应返回给用户。
使用反向代理负载均衡方法和反向代理服务器功能集成在一起,部署简单。但反向代理服务器是所有请求和响应的中转站,其性能可能会成为瓶颈。
(4)如图4所示,为IP负载均衡方法,真实物理Web服务器响应数据包返回给负载均衡服务器方案如下:
1、负载均衡服务器在修改目的的IP地址的同时修改源地址,将数据源地址设为自身IP,即源地址转换(Source Network Address Translation,SNAT),这样Web服务器的响应会再回到负载均衡服务器。
2、将负载均衡服务器同时作为物理服务器集群的网关服务器,这样所有响应数据都会到达负载均衡服务器。
IP负载均衡在内核进程完成数据分发,较反向代理,在应用程序中分发数据的负载均衡有更好的处理能力。但是由于所有请求响应都需要经过负载均衡服务器,集群的最大响应数据吞吐量不得不受制于负载均衡服务器网卡带宽。对于提供下载服务或者视频服务等需要传输大量数据的网站而言,难以满足需求。
综上所述,当前TCP负载均衡技术,一般采用软负载均衡方式,中央处理器(central processing unit,CPU)为每个请求服务的TCP连接选择一个对应的物理服务器进行地址映射,并记录此TCP连接的五元组信息。然而此种方法易受CPU性能瓶颈影响,且数据处理速度较低、处理性能较低,无法满足网络传输需求。
发明内容
本发明提供一种TCP负载均衡方法、装置、设备及介质,用以解决现有技术中硬件成本高,数据处理速度较低、处理性能较低,无法满足网络传输需求的技术问题。
第一方面,本发明实施例提供一种TCP负载均衡方法,应用于负载均衡设备的转发面,该方法包括:
获取包含五元组信息的报文;
若报文不是首报文或报文是控制面发送的首报文,则从多个TCP转发表中查找与报文匹配的第一TCP转发表,其中,每个TCP转发表包括哈希值和修改信息的对应关系,每个TCP转发表包括的哈希值是通过TCP转发表对应的哈希算法确定的,不同TCP转发表对应的哈希算法不同,第一TCP转发表包括的哈希值中有报文对应的哈希值,报文对应的哈希值是根据报文的五元组信息和TCP转发表对应的哈希算法确定的;
根据第一TCP转发表中的对应关系,确定报文对应的修改信息;
根据报文对应的修改信息修改报文包含的五元组信息后转发。
在一种可能实施的方式中,本发明实施例提供的方法中,获取包含五元组信息的报文之后,还包括:
若报文不是控制面发送的首报文,则将报文转发至控制面,以使控制面根据报文为多个TCP转发表中任一TCP转发表添加报文的修改信息。
在一种可能实施的方式中,本发明实施例提供的方法中,从多个TCP转发表中查找与报文匹配的TCP转发表,包括:
根据预设的TCP转发表查找顺序,依次判断多个TCP转发表中的每个TCP转发表是否与报文匹配。
在一种可能实施的方式中,本发明实施例提供的方法中,从多个TCP转发表中查找与报文匹配的TCP转发表之后,还包括:
若未查找到与报文匹配的TCP转发表,则丢弃报文。
在一种可能实施的方式中,本发明实施例提供的方法中,根据第一TCP转发表中的对应关系,确定报文对应的修改信息,包括:
根据第一TCP转发表中的对应关系,确定报文对应的索引信息;
根据报文对应的索引信息,从预先设置的索引表中确定报文对应的修改信息。
第二方面,本发明实施例提供一种传输控制协议TCP负载均衡方法,应用于负载均衡设备的控制面,该方法包括:
获取转发面发送的包含五元组信息的首报文;
针对多个哈希算法中的任意一个哈希算法,基于报文的五元组信息,确定报文对应的哈希值;
将为报文分配的修改信息和报文对应的哈希值的对应关系添加到与哈希算法对应的TCP转发表中;
将报文发送至负载均衡设备的转发面。
在一种可能实施的方式中,本发明实施例提供的方法中,针对多个哈希算法中的任意一个哈希算法,基于报文的五元组信息,确定报文对应的哈希值,包括:
根据预设的TCP软转发表查找顺序,依次判断每个TCP软转发表是否与报文匹配,其中每个TCP软转发表包括哈希值和五元组信息的对应关系,每个TCP软转发表包括的哈希值是通过TCP软转发表对应的哈希算法确定的,与报文匹配的TCP软转发表包括的哈希值中有报文对应的哈希值,报文对应的哈希值是根据报文的五元组信息和TCP软转发表对应的哈希算法确定的;
根据匹配结果确定报文对应的哈希值。
在一种可能实施的方式中,本发明实施例提供的方法中,根据匹配结果确定报文对应的哈希值,包括:
若未查找到与报文匹配的TCP软转发表,则针对多个哈希算法中的任意一个哈希算法,基于报文的五元组信息,利用哈希算法确定报文对应的哈希值;或
若查找到与报文匹配的TCP软转发表,则删除包含报文对应的哈希值的表项,并根据预设的TCP软转发表查找顺序,确定与报文匹配的TCP软转发表之后的任一TCP软转发表为第一TCP软转发表,并确定报文对应第一TCP软转发表的哈希值,其中第一TCP软转发表与报文不匹配,每个TCP软转发表中哈希值与五元组信息一一对应。
在一种可能实施的方式中,本发明实施例提供的方法中,确定与报文匹配的TCP软转发表之后的任一TCP软转发表为第一TCP软转发表,并确定报文对应TCP软转发表的哈希值,包括:
若与报文匹配的TCP软转发表为TCP软转发表查找顺序中的最后一个TCP软转发表且TCP软转发表查找顺序中TCP软转发表数量未达数量上限,则在与报文匹配的TCP软转发表之后添加一个TCP软转发表,并确定报文对应添加的TCP软转发表的哈希值,其中不同TCP软转发表对应的哈希算法不同;或
若与报文匹配的TCP软转发表为TCP软转发表查找顺序中的最后一个TCP软转发表且TCP软转发表查找顺序中TCP软转发表数量已达数量上限,则确定报文对应与报文匹配的TCP软转发表的哈希值。
在一种可能实施的方式中,本发明实施例提供的方法中,删除与报文匹配的表项之后,还包括:
根据预设的TCP软转发表查找顺序,确定与报文匹配的TCP软转发表之后的任一TCP软转发表为第二TCP软转发表,其中第二TCP软转发表与表项的五元组信息不匹配;
将表项的修改信息和哈希值的对应关系添加到第二TCP软转发表中,其中哈希值为根据表项的五元组信息和TCP软转发表对应的哈希算法确定的。
在一种可能实施的方式中,本发明实施例提供的方法中,确定与报文匹配的TCP软转发表之后的任一TCP软转发表为第二TCP软转发表还包括:
若与报文匹配的TCP软转发表为TCP软转发表查找顺序中的最后一个TCP软转发表且TCP软转发表查找顺序中TCP软转发表数量未达数量上限,则在与报文匹配的TCP软转发表之后添加一个TCP软转发表,并确定添加的TCP软转发表为第二TCP软转发表。
在一种可能实施的方式中,本发明实施例提供的方法中,将为报文分配的修改信息和报文对应的哈希值的对应关系添加到与哈希算法对应的TCP转发表中,还包括:
将为报文分配的修改信息和报文对应的哈希值的对应关系添加到与哈希算法对应的TCP软转发表中;
根据TCP软转发表修改TCP转发表。
第三方面,本发明实施例提供一种传输控制协议TCP负载均衡装置,包括:
获取模块,用于获取包含五元组信息的报文;
查找模块,用于若报文不是首报文或报文是控制面发送的首报文,则从多个TCP转发表中查找与报文匹配的第一TCP转发表,其中,每个TCP转发表包括哈希值和修改信息的对应关系,每个TCP转发表包括的哈希值是通过TCP转发表对应的哈希算法确定的,不同TCP转发表对应的哈希算法不同,第一TCP转发表包括的哈希值中有报文对应的哈希值,报文对应的哈希值是根据报文的五元组信息和TCP转发表对应的哈希算法确定的;
处理模块,用于根据第一TCP转发表中的对应关系,确定报文对应的修改信息;
修改模块,用于根据报文对应的修改信息修改报文包含的五元组信息后转发。
在一种可能实施的方式中,本发明实施例提供的装置中,获取模块还用于:
若报文不是控制面发送的首报文,则将报文转发至控制面,以使控制面根据报文为多个TCP转发表中任一TCP转发表添加报文的修改信息。
在一种可能实施的方式中,本发明实施例提供的装置中,查找模块具体用于:
根据预设的TCP转发表查找顺序,依次判断多个TCP转发表中的每个TCP转发表是否与报文匹配。
在一种可能实施的方式中,本发明实施例提供的装置中,查找模块还用于:
若未查找到与报文匹配的TCP转发表,则丢弃报文。
在一种可能实施的方式中,本发明实施例提供的装置中,处理模块具体用于:
根据第一TCP转发表中的对应关系,确定报文对应的索引信息;
根据报文对应的索引信息,从预先设置的索引表中确定报文对应的修改信息。
第四方面,本发明实施例提供一种传输控制协议TCP的负载均衡装置,包括:
获取模块,用于获取转发面发送的包含五元组信息的首报文;
确定模块,用于针对多个哈希算法中的任意一个哈希算法,基于报文的五元组信息,确定报文对应的哈希值;
处理模块,用于将为报文分配的修改信息和报文对应的哈希值的对应关系添加到与哈希算法对应的TCP转发表中;
发送模块,用于将报文发送至负载均衡设备的转发面。
在一种可能实施的方式中,本发明实施例提供的装置中,确定模块具体用于:
根据预设的TCP软转发表查找顺序,依次判断每个TCP软转发表是否与报文匹配,其中每个TCP软转发表包括哈希值和五元组信息的对应关系,每个TCP软转发表包括的哈希值是通过TCP软转发表对应的哈希算法确定的,与报文匹配的TCP软转发表包括的哈希值中有报文对应的哈希值,报文对应的哈希值是根据报文的五元组信息和TCP软转发表对应的哈希算法确定的;
根据匹配结果确定报文对应的哈希值。
在一种可能实施的方式中,本发明实施例提供的装置中,确定模块具体用于:
若未查找到与报文匹配的TCP软转发表,则针对多个哈希算法中的任意一个哈希算法,基于报文的五元组信息,利用哈希算法确定报文对应的哈希值;或
若查找到与报文匹配的TCP软转发表,则删除包含报文对应的哈希值的表项,并根据预设的TCP软转发表查找顺序,确定与报文匹配的TCP软转发表之后的任一TCP软转发表为第一TCP软转发表,并确定报文对应第一TCP软转发表的哈希值,其中第一TCP软转发表与报文不匹配,每个TCP软转发表中哈希值与五元组信息一一对应。
在一种可能实施的方式中,本发明实施例提供的装置中,确定模块具体用于:
若与报文匹配的TCP软转发表为TCP软转发表查找顺序中的最后一个TCP软转发表且TCP软转发表查找顺序中TCP软转发表数量未达数量上限,则在与报文匹配的TCP软转发表之后添加一个TCP软转发表,并确定报文对应添加的TCP软转发表的哈希值,其中不同TCP软转发表对应的哈希算法不同;或
若与报文匹配的TCP软转发表为TCP软转发表查找顺序中的最后一个TCP软转发表且TCP软转发表查找顺序中TCP软转发表数量已达数量上限,则确定报文对应与报文匹配的TCP软转发表的哈希值。
在一种可能实施的方式中,本发明实施例提供的装置中,确定模块还用于:
根据预设的TCP软转发表查找顺序,确定与报文匹配的TCP软转发表之后的任一TCP软转发表为第二TCP软转发表,其中第二TCP软转发表与表项的五元组信息不匹配;
将表项的修改信息和哈希值的对应关系添加到第二TCP软转发表中,其中哈希值为根据表项的五元组信息和TCP软转发表对应的哈希算法确定的。
在一种可能实施的方式中,本发明实施例提供的装置中,确定模块还用于:
若与报文匹配的TCP软转发表为TCP软转发表查找顺序中的最后一个TCP软转发表且TCP软转发表查找顺序中TCP软转发表数量未达数量上限,则在与报文匹配的TCP软转发表之后添加一个TCP软转发表,并确定添加的TCP软转发表为第二TCP软转发表。
在一种可能实施的方式中,本发明实施例提供的装置中,处理模块还用于:
将为报文分配的修改信息和报文对应的哈希值的对应关系添加到与哈希算法对应的TCP软转发表中;
根据TCP软转发表修改TCP转发表。
第五方面,本发明实施例提供一种传输控制协议TCP负载均衡设备,包括:
转发面,包括如本发明实施例第三方面提供的装置;
控制面,包括如本发明实施例第四方面提供的装置。
第六方面,本发明实施例提供一种电子设备,包括:至少一个处理器、至少一个存储器以及存储在存储器中的计算机程序指令,当计算机程序指令被处理器执行时实现如本发明实施例第一方面或第二方面所提供的方法。
第七方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序指令,当计算机程序指令被处理器执行时实现如本发明实施例第一方面或第二方面所提供的方法。
利用本发明提供的TCP负载均衡方法、装置、设备及介质,具有以下有益效果:在接收到包含五元组的报文后,若报文不是首报文或报文是控制面发送的首报文,则从多个TCP转发表中查找与报文匹配的第一TCP转发表,并根据匹配结果修改报文的五元组信息,若报文不是控制面发送的首报文,则将报文转发至控制面,控制面针对多个哈希算法中的任意一个哈希算法,基于报文的五元组信息,利用哈希算法确定报文对应的哈希值,并将为报文分配的修改信息和报文对应的哈希值的对应关系添加到与哈希算法对应的TCP转发表中,将报文发送至转发面。本发明通过结合控制面与转发面,达到使用少量的负载均衡设备代替大量服务器设备满足TCP负载均衡的目的,在提升性能的同时大大降低了成本。
附图说明
图1为本发明背景技术提供的HTTP重定向负载均衡方法的示意图;
图2为本发明背景技术提供的DNS域名解析负载均衡方法的示意图;
图3为本发明背景技术提供的反向代理负载均衡方法的示意图;
图4为本发明背景技术提供的IP负载均衡方法示意图;
图5为本发明实施例提供的一种TCP负载均衡方法的流程示意图;
图6为本发明实施例提供的另一TCP负载均衡方法的流程示意图;
图7为本发明实施例提供的确定报文对应哈希值的方法的流程示意图;
图8为本发明实施例提供的修改表项方法的流程示意图;
图9为本发明实施例提供的TCP负载均衡方法的具体流程示意图;
图10为本发明实施例提供的哈希冲突处理方法的流程示意图;
图11为本发明实施例提供的一种TCP负载均衡装置的结构示意图;
图12为本发明实施例提供的另一TCP负载均衡装置的结构示意图;
图13为本发明实施例提供的一种TCP负载均衡设备的结构示意图;
图14为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
下面对文中出现的一些词语进行解释:
1、本发明实施例中术语“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
2、NAT(Network Address Translation,网络地址转换)是将IP数据包头中的IP地址转换为另一个IP地址的过程。在实际应用中,NAT主要用于实现私有网络访问公共网络的功能。这种通过使用少量的公有IP地址代表较多的私有IP地址的方式,将有助于减缓可用IP地址空间的枯竭。
3、SNAT(Source Network Address Translation,源网络地址转换)指对报文的源IP和源端口进行NAT变换。
4、DNAT(Destination Network Address Translation,目的地址转换)指对报文的目的IP和目的端口进行NAT变换。
5、五元组信息,指源IP地址,源端口,目的IP地址,目的端口和传输层协议。
下面结合附图和实施例对本发明提供的TCP负载均衡方法、装置、设备及介质进行更详细地说明。
本发明实施例提供一种TCP负载均衡方法,如图5所示,包括:
步骤501,获取包含五元组信息的报文。
具体实施时,转发面在获取到包含有五元组信息的报文后,先根据预先存储SNAT表,判断报文与SNAT表是否匹配,如果匹配则按照SNAT处理并进行转发,否则意味着需要进行DNAT处理。确定进行DNAT处理后,判断报文的来源,和报文是否为首报文,若报文不是控制面发送的首报文,则将报文转发至控制面,以使控制面为TCP转发表添加报文的修改信息。
需要说明的是,SNAT表可以是存储在转发面中固定的表项,也可以是按需求设置,并由控制面下发与更新,本发明实施例对此不做限定。
优选的,转发面中还设置有索引表,在TCP转发表中只保存哈希值和索引信息的对应关系,根据索引信息从索引表中搜索报文对应的修改信息。进一步缩小TCP转发表的数据量,使得在存储空间不变的情况下,存储有更多的表项。
步骤502,若报文不是首报文或报文是控制面发送的首报文,则从多个TCP转发表中查找与报文匹配的第一TCP转发表。
其中,每个TCP转发表包括哈希值和修改信息的对应关系,每个TCP转发表包括的哈希值是通过TCP转发表对应的哈希算法确定的,不同TCP转发表对应的哈希算法不同,第一TCP转发表包括的哈希值中有报文对应的哈希值,报文对应的哈希值是根据报文的五元组信息和TCP转发表对应的哈希算法确定的。
具体实施时,转发面中存储有多个TCP转发表,每个TCP转发表对应一个哈希算法,不同TCP转发表对应的哈希算法不同,在从多个TCP转发表中查找与报文匹配的TCP转发表时,根据报文的五元组信息和TCP转发表对应的哈希算法,确定出报文对应此TCP转发表的哈希值,若此哈希值能在此TCP转发表中查询到,则确定报文与此TCP转发表匹配,并将匹配的TCP转发表确定为第一TCP转发表。
在一种可能实施的方式中,转发面存储有TCP转发表查询顺序,在查找与报文匹配的TCP转发表时,依照查询顺序依次判断TCP转发表是否与报文匹配。
在一种可能实施的方式中,若未查找到与报文匹配的TCP转发表,则丢弃报文。
在一个示例中,假设有五个TCP转发表,分别为hw-TCP-Forwarding-Table-1、hw-TCP-Forwarding-Table-2、hw-TCP-Forwarding-Table-3、hw-TCP-Forwarding-Table-4和hw-TCP-Forwarding-Table-5。五个TCP转发表分别对应五个不同的哈希算法,根据报文的五元组信息和五个不同的哈希算法,计算得出报文对应五个不同哈希算法的五个哈希值,分别为hash1、hash2、hash3、hash4和hash5,若在hw-TCP-Forwarding-Table-1中查找到hash1,则确定报文与hw-TCP-Forwarding-Table-1匹配,反之则在hw-TCP-Forwarding-Table-2中查找hash2,若在hw-TCP-Forwarding-Table-2中查找到hash2,则确定报文与hw-TCP-Forwarding-Table-2匹配,反之则在hw-TCP-Forwarding-Table-3中查找hash3,以此类推。若查找完全部的TCP转发表,报文与全部TCP转发表均未匹配,则认为该报文是异常报文,将报文丢弃。
步骤503,根据第一TCP转发表中的对应关系,确定报文对应的修改信息。
具体实施时,每个TCP转发表中包括哈希值和修改信息的对应关系,根据报文匹配到的第一TCP转发表中的对应关系,确定报文对应的修改信息。
优选的,转发面中储存有预先设置的索引表,TCP转发表中的对应关系为哈希值-索引信息,即转发面根据哈希值确定索引信息,并根据索引信息从索引表中获取详细的修改信息,进一步节省存储空间。
仍沿用上述示例,假设报文与hw-TCP-Forwarding-Table-3匹配,即hw-TCP-Forwarding-Table-3中有表项{KEY=hash3,Action=DNAT,DATA=(DIP1,Dport1)},表示当报文的hash值为hash3时,对报文的目的IP和目的端口进行地址和端口变换,将目的地址VIP1和目的端口Vport1替换为目的地址DIP1和目的端口Dport1,即修改信息为Action=DNAT,DATA=(DIP1,Dport1)。
步骤504,根据报文对应的修改信息修改报文包含的五元组信息后转发。
具体实施时,根据报文对应的修改信息修改报文,并将报文转发出去。
仍沿用上述示例,根据修改信息Action=DNAT,DATA=(DIP1,Dport1),将目的地址VIP1和目的端口Vport1替换为目的地址DIP1和目的端口Dport1,并将修改后的报文发送出去。
如图6所示,为本发明实施例提供一种TCP负载均衡方法,包括:
步骤601,获取转发面发送的包含五元组信息的首报文。
具体实施时,获取转发面发送的包含五元组信息的首报文,用以添加对应的修改信息和处理哈希冲突。
步骤602,针对多个哈希算法中的任意一个哈希算法,基于报文的五元组信息,确定报文对应的哈希值。
具体实施时,确定报文对应哈希值的方法如图7所示,包括如下步骤:
步骤701,根据预设的TCP软转发表查找顺序,依次判断TCP软转发表是否与报文匹配。
每个TCP软转发表包括哈希值和五元组信息的对应关系,每个TCP软转发表包括的哈希值是通过TCP软转发表对应的哈希算法确定的,与报文匹配的TCP软转发表包括的哈希值中有报文对应的哈希值,报文对应的哈希值是根据报文的五元组信息和TCP软转发表对应的哈希算法确定的。
在一个示例中,假设有五个TCP软转发表,分别为hw-TCP-Forwarding-Table-1、hw-TCP-Forwarding-Table-2、hw-TCP-Forwarding-Table-3、hw-TCP-Forwarding-Table-4和hw-TCP-Forwarding-Table-5。五个TCP软转发表分别对应五个不同的哈希算法,根据报文的五元组信息和五个不同的哈希算法,计算得出报文对应五个不同哈希算法的五个哈希值,分别为hash1、hash2、hash3、hash4和hash5,若在soft-TCP-Forwarding-Table-1中查找到hash1,则确定报文与soft-TCP-Forwarding-Table-1匹配,反之则在soft-TCP-Forwarding-Table-2中查找hash2,若在soft-TCP-Forwarding-Table-2中查找到hash2,则确定报文与soft-TCP-Forwarding-Table-2匹配,反之则在soft-TCP-Forwarding-Table-3中查找hash3,以此类推。若查找完全部的TCP软转发表,报文与全部TCP软转发表均未匹配。
步骤702,根据匹配结果确定报文对应的哈希值。
具体实施时,根据匹配结果确定报文对应的哈希值,匹配结果有如下两种:
(1)若未查找到与报文匹配的TCP软转发表,则针对多个哈希算法中的任意一个哈希算法,基于报文的五元组信息,利用哈希算法确定报文对应的哈希值。
优选的,针对多个哈希算法中,与第一个TCP软转发表对应哈希算法,基于报文的五元组信息确定报文对应的哈希值。
仍沿用上述示例,若未查找到与报文匹配的TCP软转发表,即报文与全部TCP软转发表均不匹配,则针对多个哈希算法中的第一个TCP软转发表对应的哈希算法,即soft-TCP-Forwarding-Table-1对应的哈希算法,基于报文的五元组信息,利用哈希算法确定报文对应的哈希值hash1。
需要说明的是,若soft-TCP-Forwarding-Table-1对应的表项已满,则针对soft-TCP-Forwarding-Table-1对应的哈希算法确定哈希值hash2,若soft-TCP-Forwarding-Table-2对应的表项已满,则针对soft-TCP-Forwarding-Table-3对应的哈希算法确定哈希值hash3,以此类推。
(2)若查找到与报文匹配的TCP软转发表,则删除包含报文对应的哈希值的表项,并根据预设的TCP软转发表查找顺序,确定与报文匹配的TCP软转发表之后的任一TCP软转发表,并确定报文对应TCP软转发表的哈希值,其中TCP软转发表与报文不匹配,每个TCP软转发表中哈希值与五元组信息一一对应。
具体实施时,若查找到与报文匹配的TCP软转发表,则删除包含报文对应的哈希值的表项,并根据预设的TCP软转发表查找顺序,确定与报文匹配的TCP软转发表之后的任意一个与报文不匹配的TCP软转发表,并确定报文对应该TCP软转发表的哈希值。
仍沿用上述示例,若soft-TCP-Forwarding-Table-2与报文匹配,soft-TCP-Forwarding-Table-2中包含表项{KEY=hash2,Action=DNAT,DATA=(DIP1,Dport1)},则删除soft-TCP-Forwarding-Table-2中包含hash2的表项,并确定soft-TCP-Forwarding-Table-2之后的任意一个与报文不匹配的TCP软转发表,例如soft-TCP-Forwarding-Table-3,则确定报文对于soft-TCP-Forwarding-Table-3的哈希值hash3。
优选的,如图8所示,在删除与报文匹配的表项之后,还包括如下修改表项的步骤:
步骤801,根据预设的TCP软转发表查找顺序,确定与报文匹配的TCP软转发表之后的任一TCP软转发表。
具体实施时,根据预设的TCP软转发表查找顺序,将删除的表项的五元组信息进行匹配,确定在与报文匹配的TCP软转发表之后的任一与表项的五元组信息不匹配的TCP软转发表。
在一个示例中,仍沿用上述示例,假设被删除的表项为{KEY=hash2,Action=DNAT,DATA=(DIP1,Dport1)},则将该表项中的五元组信息与soft-TCP-Forwarding-Table-2、soft-TCP-Forwarding-Table-3、soft-TCP-Forwarding-Table-4、soft-TCP-Forwarding-Table-5、进行匹配,匹配方法与报文匹配方式相同,此处不再赘述。若该表项与soft-TCP-Forwarding-Table-3不匹配,则确定soft-TCP-Forwarding-Table-3为所选TCP软转发表。
步骤802,将为表项的修改信息和哈希值的对应关系添加到TCP软转发表中。
具体实施时,若与报文匹配的TCP软转发表为TCP软转发表查找顺序中的最后一个TCP软转发表且TCP软转发表查找顺序中TCP软转发表数量未达数量上限,则在与报文匹配的TCP软转发表之后添加一个TCP软转发表,将为表项的修改信息和哈希值的对应关系加入到添加的TCP软转发表中;若与报文匹配的TCP软转发表不是TCP软转发表查找顺序中的最后一个TCP软转发表,则将为表项的修改信息和哈希值的对应关系添加到TCP软转发表中。
需要说明的是,若与报文匹配的TCP软转发表为TCP软转发表查找顺序中的最后一个TCP软转发表且TCP软转发表查找顺序中TCP软转发表数量已达数量上限,则可以将为表项的修改信息和哈希值的对应关系加入到该TCP软转发表,也可以不添加该表项内容,本发明实施例对此不做限定。
步骤603,将为报文分配的修改信息和报文对应的哈希值的对应关系添加到与哈希算法对应的TCP转发表中。
具体实施时,步骤602中确定了TCP软转发表,将为报文分配的修改信息和报文对应的哈希值的对应关系添加到该TCP软转发表中,并根据TCP软转发表修改TCP转发表。
步骤604,将报文发送至负载均衡设备的转发面。
具体的,将报文发送至转发面,使得转发面可以根据修改后的TCP转发表,对报文进行对应的转换。
下面结合图9,以转发面和控制面的交互为例,对本发明实施例提供的TCP负载均衡具体过程进行详细说明。
如图9所示,本发明实施例提供的TCP负载均衡的具体过程,可以包括如下步骤:
步骤901,转发面获取包含五元组信息的报文。
步骤902,判断报文来源和类别。若报文不是首报文或报文是控制面发送的首报文,则执行步骤903,若报文不是控制面发送的首报文,则执行步骤904。
步骤903,从多个TCP转发表中查找与报文匹配的TCP转发表,执行步骤905。
步骤904,将报文转发至控制面,并执行步骤907。
步骤905,根据匹配到的TCP转发表确定报文对应的修改信息。
步骤906,根据报文对应的修改信息修改报文包含的五元组信息后转发。
步骤907,控制面获取转发面发送的包含五元组信息的首报文。
步骤908,根据预设的TCP软转发表查找顺序,依次判断TCP软转发表是否与报文匹配。若匹配执行步骤911,若不匹配执行步骤909。
步骤909,将为报文分配的修改信息和报文对应的哈希值的对应关系添加到与哈希算法对应的TCP转发表中。
步骤910,将报文发送至转发面,执行步骤901。
步骤911,进行哈希冲突处理,并执行步骤909。
具体实施时,哈希冲突处理方法包括如下步骤:
步骤1001,删除包含报文对应的哈希值的表项。
步骤1002,将删除的表项对应的修改信息和哈希值的对应关系添加到其他TCP软转发表中。
步骤1003,确定与报文匹配的TCP软转发表之后的任一TCP软转发表。
具体实施时,确定与报文匹配的TCP软转发表之后的任一不与报文匹配的TCP软转发表。
此外,本发明实施例在确定发生网络拥塞时,根据本RTT周期的RTT值与拥塞窗口调整比例的对应关系,确定本RTT周期的拥塞窗口的调整程度,从而实现了根据不同的拥塞程度,进行相应的拥塞窗口调整,使得调整后的拥塞窗口更加准确可靠。
如图11所示,基于TCP负载均衡方法同样的发明构思,本发明还提供一种传输控制协议TCP负载均衡装置,包括:
获取模块1101,用于获取包含五元组信息的报文;
查找模块1102,用于若报文不是首报文或报文是控制面发送的首报文,则从多个TCP转发表中查找与报文匹配的第一TCP转发表,其中,每个TCP转发表包括哈希值和修改信息的对应关系,每个TCP转发表包括的哈希值是通过TCP转发表对应的哈希算法确定的,不同TCP转发表对应的哈希算法不同,第一TCP转发表包括的哈希值中有报文对应的哈希值,报文对应的哈希值是根据报文的五元组信息和TCP转发表对应的哈希算法确定的;
处理模块1103,用于根据第一TCP转发表中的对应关系,确定报文对应的修改信息;
修改模块1104,用于根据报文对应的修改信息修改报文包含的五元组信息后转发。
在一种可能实施的方式中,本发明实施例提供的装置中,获取模块1101还用于:
若报文不是控制面发送的首报文,则将报文转发至控制面,以使控制面根据报文为多个TCP转发表中任一TCP转发表添加报文的修改信息。
在一种可能实施的方式中,本发明实施例提供的装置中,查找模块1102具体用于:
根据预设的TCP转发表查找顺序,依次判断多个TCP转发表中的每个TCP转发表是否与报文匹配。
在一种可能实施的方式中,本发明实施例提供的装置中,查找模块1102还用于:
若未查找到与报文匹配的TCP转发表,则丢弃报文。
在一种可能实施的方式中,本发明实施例提供的装置中,处理模块1103具体用于:
根据第一TCP转发表中的对应关系,确定报文对应的索引信息;
根据报文对应的索引信息,从预先设置的索引表中确定报文对应的修改信息。
如图12所示,基于TCP负载均衡方法同样的发明构思,本发明还提供一种传输控制协议TCP负载均衡装置,包括:
获取模块1201,用于获取转发面发送的包含五元组信息的首报文;
确定模块1202,用于针对多个哈希算法中的任意一个哈希算法,基于报文的五元组信息,确定报文对应的哈希值;
处理模块1203,用于将为报文分配的修改信息和报文对应的哈希值的对应关系添加到与哈希算法对应的TCP转发表中;
发送模块1204,用于将报文发送至负载均衡设备的转发面。
在一种可能实施的方式中,本发明实施例提供的装置中,确定模块1202具体用于:
根据预设的TCP软转发表查找顺序,依次判断每个TCP软转发表是否与报文匹配,其中每个TCP软转发表包括哈希值和五元组信息的对应关系,每个TCP软转发表包括的哈希值是通过TCP软转发表对应的哈希算法确定的,与报文匹配的TCP软转发表包括的哈希值中有报文对应的哈希值,报文对应的哈希值是根据报文的五元组信息和TCP软转发表对应的哈希算法确定的;
根据匹配结果确定报文对应的哈希值。
在一种可能实施的方式中,本发明实施例提供的装置中,确定模块1202具体用于:
若未查找到与报文匹配的TCP软转发表,则针对多个哈希算法中的任意一个哈希算法,基于报文的五元组信息,利用哈希算法确定报文对应的哈希值;或
若查找到与报文匹配的TCP软转发表,则删除包含报文对应的哈希值的表项,并根据预设的TCP软转发表查找顺序,确定与报文匹配的TCP软转发表之后的任一TCP软转发表为第一TCP软转发表,并确定报文对应第一TCP软转发表的哈希值,其中第一TCP软转发表与报文不匹配,每个TCP软转发表中哈希值与五元组信息一一对应。
在一种可能实施的方式中,本发明实施例提供的装置中,确定模块1202具体用于:
若与报文匹配的TCP软转发表为TCP软转发表查找顺序中的最后一个TCP软转发表且TCP软转发表查找顺序中TCP软转发表数量未达数量上限,则在与报文匹配的TCP软转发表之后添加一个TCP软转发表,并确定报文对应添加的TCP软转发表的哈希值,其中不同TCP软转发表对应的哈希算法不同;或
若与报文匹配的TCP软转发表为TCP软转发表查找顺序中的最后一个TCP软转发表且TCP软转发表查找顺序中TCP软转发表数量已达数量上限,则确定报文对应与报文匹配的TCP软转发表的哈希值。
在一种可能实施的方式中,本发明实施例提供的装置中,确定模块1202还用于:
根据预设的TCP软转发表查找顺序,确定与报文匹配的TCP软转发表之后的任一TCP软转发表为第二TCP软转发表,其中第二TCP软转发表与表项的五元组信息不匹配;
将表项的修改信息和哈希值的对应关系添加到第二TCP软转发表中,其中哈希值为根据表项的五元组信息和TCP软转发表对应的哈希算法确定的。
在一种可能实施的方式中,本发明实施例提供的装置中,确定模块1202还用于:
若与报文匹配的TCP软转发表为TCP软转发表查找顺序中的最后一个TCP软转发表且TCP软转发表查找顺序中TCP软转发表数量未达数量上限,则在与报文匹配的TCP软转发表之后添加一个TCP软转发表,并确定添加的TCP软转发表为第二TCP软转发表。
在一种可能实施的方式中,本发明实施例提供的装置中,处理模块1203还用于:
将为报文分配的修改信息和报文对应的哈希值的对应关系添加到与哈希算法对应的TCP软转发表中;
根据TCP软转发表修改TCP转发表。
如图13所示,本发明还提供一种传输控制协议TCP负载均衡设备,包括:
转发面1301,包括如图11所示的装置;
控制面1302,包括如图12所示的装置。
另外,结合图5-图13描述的本发明实施例的TCP负载均衡方法和装置可以由电子设备来实现。图14示出了本发明实施例提供的电子设备的硬件结构示意图。
电子设备可以包括处理器1401以及存储有计算机程序指令的存储器1402。
具体地,上述处理器1401可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以被配置成实施本发明实施例的一个或多个集成电路。
存储器1402可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器1402可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器1402可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器1402可在数据处理装置的内部或外部。在特定实施例中,存储器1402是非易失性固态存储器。在特定实施例中,存储器1402包括只读存储器(ROM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改写ROM(EAROM)或闪存或者两个或更多个以上这些的组合。
处理器1401通过读取并执行存储器1402中存储的计算机程序指令,以实现上述实施例中的任意一种TCP负载均衡方法。
在一个示例中,电子设备还可包括通信接口1403和总线1410。其中,如图14所示,处理器1401、存储器1402、通信接口1403通过总线1410连接并完成相互间的通信。
通信接口1403,主要用于实现本发明实施例中各模块、装置、单元和/或设备之间的通信。
总线1410包括硬件、软件或两者,将电子设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线1410可包括一个或多个总线。尽管本发明实施例描述和示出了特定的总线,但本发明考虑任何合适的总线或互连。
该电子设备可以基于接收到的报文,执行本发明实施例中的TCP负载均衡方法,从而实现结合图5-图13描述的TCP负载均衡方法和装置。
另外,结合上述实施例中的电子设备,本发明实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种TCP负载均衡方法。
利用本发明提供的TCP负载均衡方法、装置、设备及介质,具有以下有益效果:在接收到包含五元组的报文后,若报文不是首报文或报文是控制面发送的首报文,则从多个TCP转发表中查找与报文匹配的TCP转发表,并根据匹配结果修改报文的五元组信息,若报文是控制面发送的首报文,则将报文转发至控制面,控制面针对多个哈希算法中的任意一个哈希算法,基于报文的五元组信息,利用哈希算法确定报文对应的哈希值,并将为报文分配的修改信息和报文对应的哈希值的对应关系添加到与哈希算法对应的TCP转发表中,将报文发送至转发面。本发明通过结合控制面和转发面,达到使用少量的负载均衡设备代替大量服务器设备满足TCP负载均衡的目的,在提升性能的同时大大降低了成本。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (15)
1.一种传输控制协议TCP负载均衡方法,应用于负载均衡设备的转发面,其特征在于,包括:
获取包含五元组信息的报文;
若所述报文不是首报文或所述报文是控制面发送的首报文,则从多个TCP转发表中查找与所述报文匹配的第一TCP转发表,其中,每个TCP转发表包括哈希值和修改信息的对应关系,每个TCP转发表包括的哈希值是通过所述TCP转发表对应的哈希算法确定的,不同TCP转发表对应的哈希算法不同,所述第一TCP转发表包括的哈希值中有所述报文对应的哈希值,所述报文对应的哈希值是根据所述报文的五元组信息和所述TCP转发表对应的哈希算法确定的;
根据所述第一TCP转发表中的对应关系,确定所述报文对应的修改信息;
根据所述报文对应的修改信息修改所述报文包含的五元组信息后转发;
所述获取包含五元组信息的报文之后,还包括:
若所述报文不是控制面发送的首报文,则将所述报文转发至所述控制面,以使所述控制面根据所述报文为多个TCP转发表中任一TCP转发表添加所述报文的修改信息。
2.如权利要求1所述的方法,其特征在于,所述从多个TCP转发表中查找与所述报文匹配的TCP转发表,包括:
根据预设的TCP转发表查找顺序,依次判断多个TCP转发表中的每个TCP转发表是否与所述报文匹配。
3.如权利要求1所述的方法,其特征在于,所述从多个TCP转发表中查找与所述报文匹配的TCP转发表之后,还包括:
若未查找到与所述报文匹配的TCP转发表,则丢弃所述报文。
4.如权利要求1-3任一所述的方法,其特征在于,所述根据所述第一TCP转发表中的所述对应关系,确定所述报文对应的修改信息,包括:
根据所述第一TCP转发表中的对应关系,确定所述报文对应的索引信息;
根据所述报文对应的索引信息,从预先设置的索引表中确定所述报文对应的修改信息。
5.一种TCP负载均衡方法,应用于负载均衡设备的控制面,其特征在于,包括:
获取转发面发送的包含五元组信息的首报文;
针对多个哈希算法中的任意一个哈希算法,基于所述报文的五元组信息,确定所述报文对应的哈希值;
将为所述报文分配的修改信息和所述报文对应的哈希值的对应关系添加到与所述哈希算法对应的TCP转发表中;
将所述报文发送至所述负载均衡设备的转发面;
其中,确定所述报文对应的哈希值具体为:根据预设的TCP软转发表查找顺序,依次判断TCP软转发表是否与报文匹配,根据匹配结果确定报文对应的哈希值;
所述根据匹配结果确定所述报文对应的哈希值,包括:
若未查找到与所述报文匹配的TCP软转发表,则针对多个哈希算法中的任意一个哈希算法,基于所述报文的五元组信息,利用所述哈希算法确定所述报文对应的哈希值;或
若查找到与所述报文匹配的TCP软转发表,则删除包含所述报文对应的哈希值的表项,并根据预设的TCP软转发表查找顺序,确定与所述报文匹配的TCP软转发表之后的任一TCP软转发表为第一TCP软转发表,并确定所述报文对应所述第一TCP软转发表的哈希值,其中第一TCP软转发表与所述报文不匹配,每个TCP软转发表中哈希值与五元组信息一一对应。
6.如权利要求5所述的方法,其特征在于,所述针对多个哈希算法中的任意一个哈希算法,基于所述报文的五元组信息,确定所述报文对应的哈希值,包括:
根据预设的TCP软转发表查找顺序,依次判断每个TCP软转发表是否与所述报文匹配,其中每个TCP软转发表包括哈希值和五元组信息的对应关系,每个TCP软转发表包括的哈希值是通过所述TCP软转发表对应的哈希算法确定的,与所述报文匹配的TCP软转发表包括的哈希值中有所述报文对应的哈希值,所述报文对应的哈希值是根据所述报文的五元组信息和TCP软转发表对应的哈希算法确定的;
根据匹配结果确定所述报文对应的哈希值。
7.如权利要求6所述的方法,其特征在于,所述确定与所述报文匹配的TCP软转发表之后的任一TCP软转发表为第一TCP软转发表,并确定所述报文对应所述TCP软转发表的哈希值,包括:
若与所述报文匹配的TCP软转发表为所述TCP软转发表查找顺序中的最后一个TCP软转发表且所述TCP软转发表查找顺序中TCP软转发表数量未达数量上限,则在与所述报文匹配的TCP软转发表之后添加一个TCP软转发表,并确定所述报文对应添加的TCP软转发表的哈希值,其中不同TCP软转发表对应的哈希算法不同;或
若与所述报文匹配的TCP软转发表为所述TCP软转发表查找顺序中的最后一个TCP软转发表且所述TCP软转发表查找顺序中TCP软转发表数量已达数量上限,则确定所述报文对应与所述报文匹配的TCP软转发表的哈希值。
8.如权利要求6所述的方法,其特征在于,所述删除与所述报文匹配的表项之后,还包括:
根据预设的TCP软转发表查找顺序,确定与所述报文匹配的TCP软转发表之后的任一TCP软转发表为第二TCP软转发表,其中所述第二TCP软转发表与所述表项的五元组信息不匹配;
将所述表项的修改信息和哈希值的对应关系添加到所述第二TCP软转发表中,其中所述哈希值为根据所述表项的五元组信息和所述TCP软转发表对应的哈希算法确定的。
9.如权利要求8所述的方法,其特征在于,所述确定与所述报文匹配的TCP软转发表之后的任一TCP软转发表为第二TCP软转发表还包括:
若与所述报文匹配的TCP软转发表为所述TCP软转发表查找顺序中的最后一个TCP软转发表且所述TCP软转发表查找顺序中TCP软转发表数量未达数量上限,则在与所述报文匹配的TCP软转发表之后添加一个TCP软转发表,并确定添加的TCP软转发表为第二TCP软转发表。
10.如权利要求5-9任一所述的方法,其特征在于,所述将为所述报文分配的修改信息和所述报文对应的哈希值的对应关系添加到与所述哈希算法对应的TCP转发表中,还包括:
将为所述报文分配的修改信息和所述报文对应的哈希值的对应关系添加到与所述哈希算法对应的TCP软转发表中;
根据所述TCP软转发表修改所述TCP转发表。
11.一种传输控制协议TCP负载均衡装置,其特征在于,包括:
获取模块,用于获取包含五元组信息的报文;
查找模块,用于若所述报文不是首报文或所述报文是控制面发送的首报文,则从多个TCP转发表中查找与所述报文匹配的第一TCP转发表,其中,每个TCP转发表包括哈希值和修改信息的对应关系,每个TCP转发表包括的哈希值是通过所述TCP转发表对应的哈希算法确定的,不同TCP转发表对应的哈希算法不同,所述第一TCP转发表包括的哈希值中有所述报文对应的哈希值,所述报文对应的哈希值是根据所述报文的五元组信息和所述TCP转发表对应的哈希算法确定的;
处理模块,用于根据所述第一TCP转发表中的对应关系,确定所述报文对应的修改信息;
修改模块,用于根据所述报文对应的修改信息修改所述报文包含的五元组信息后转发;
所述处理模块,还用于若所述报文不是控制面发送的首报文,则将所述报文转发至所述控制面,以使所述控制面根据所述报文为多个TCP转发表中任一TCP转发表添加所述报文的修改信息。
12.一种传输控制协议TCP负载均衡装置,其特征在于,包括:
获取模块,用于获取转发面发送的包含五元组信息的首报文;
确定模块,用于针对多个哈希算法中的任意一个哈希算法,基于所述报文的五元组信息,确定所述报文对应的哈希值;
处理模块,用于将为所述报文分配的修改信息和所述报文对应的哈希值的对应关系添加到与所述哈希算法对应的TCP转发表中;
发送模块,用于将所述报文发送至负载均衡设备的转发面;
其中,所述确定模块,具体用于针对多个哈希算法中的任意一个哈希算法,基于所述报文的五元组信息,根据预设的TCP软转发表查找顺序,依次判断TCP软转发表是否与报文匹配,根据匹配结果确定报文对应的哈希值;
所述确定模块,还具体用于若未查找到与所述报文匹配的TCP软转发表,则针对多个哈希算法中的任意一个哈希算法,基于所述报文的五元组信息,利用所述哈希算法确定所述报文对应的哈希值;或
若查找到与所述报文匹配的TCP软转发表,则删除包含所述报文对应的哈希值的表项,并根据预设的TCP软转发表查找顺序,确定与所述报文匹配的TCP软转发表之后的任一TCP软转发表为第一TCP软转发表,并确定所述报文对应所述第一TCP软转发表的哈希值,其中第一TCP软转发表与所述报文不匹配,每个TCP软转发表中哈希值与五元组信息一一对应。
13.一种传输控制协议TCP负载均衡设备,其特征在于,包括:
转发面,包括如权利要求11所述的装置;
控制面,包括如权利要求12所述的装置。
14.一种电子设备,其特征在于,包括:至少一个处理器、至少一个存储器以及存储在所述存储器中的计算机程序指令,当所述计算机程序指令被所述处理器执行时实现如权利要求1-4或5-10中任一项所述的方法。
15.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,当所述计算机程序指令被处理器执行时实现如权利要求1-4或5-10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911230129.0A CN110932983B (zh) | 2019-12-04 | 2019-12-04 | 一种tcp负载均衡方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911230129.0A CN110932983B (zh) | 2019-12-04 | 2019-12-04 | 一种tcp负载均衡方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110932983A CN110932983A (zh) | 2020-03-27 |
CN110932983B true CN110932983B (zh) | 2022-03-18 |
Family
ID=69856821
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911230129.0A Active CN110932983B (zh) | 2019-12-04 | 2019-12-04 | 一种tcp负载均衡方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110932983B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112491725B (zh) * | 2020-11-30 | 2022-05-20 | 锐捷网络股份有限公司 | 一种mac地址的处理方法及装置 |
CN116527586B (zh) * | 2023-07-05 | 2023-09-19 | 北京亿赛通科技发展有限责任公司 | 一种基于多链路负载均衡网络的串接代理系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7042870B1 (en) * | 1999-07-02 | 2006-05-09 | Cisco Technology, Inc. | Sending instructions from a service manager to forwarding agents on a need to know basis |
CN1937575A (zh) * | 2005-09-22 | 2007-03-28 | 中兴通讯股份有限公司 | 信令流分发方法及信令分发处理单元 |
CN102571613A (zh) * | 2012-03-09 | 2012-07-11 | 华为技术有限公司 | 一种转发报文的方法及网络设备 |
CN103401802A (zh) * | 2013-08-26 | 2013-11-20 | 盛科网络(苏州)有限公司 | 基于传输协议的报文负载均衡方法及装置 |
CN104506513A (zh) * | 2014-12-16 | 2015-04-08 | 北京星网锐捷网络技术有限公司 | 防火墙流表备份方法、防火墙及防火墙系统 |
CN105591909A (zh) * | 2015-10-21 | 2016-05-18 | 杭州华三通信技术有限公司 | 提高报文转发性能的方法以及装置 |
CN107368527A (zh) * | 2017-06-09 | 2017-11-21 | 东南大学 | 基于数据流的多属性索引方法 |
CN109361609A (zh) * | 2018-12-14 | 2019-02-19 | 东软集团股份有限公司 | 防火墙设备的报文转发方法、装置、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190097968A1 (en) * | 2017-09-28 | 2019-03-28 | Unisys Corporation | Scip and ipsec over nat/pat routers |
-
2019
- 2019-12-04 CN CN201911230129.0A patent/CN110932983B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7042870B1 (en) * | 1999-07-02 | 2006-05-09 | Cisco Technology, Inc. | Sending instructions from a service manager to forwarding agents on a need to know basis |
CN1937575A (zh) * | 2005-09-22 | 2007-03-28 | 中兴通讯股份有限公司 | 信令流分发方法及信令分发处理单元 |
CN102571613A (zh) * | 2012-03-09 | 2012-07-11 | 华为技术有限公司 | 一种转发报文的方法及网络设备 |
CN103401802A (zh) * | 2013-08-26 | 2013-11-20 | 盛科网络(苏州)有限公司 | 基于传输协议的报文负载均衡方法及装置 |
CN104506513A (zh) * | 2014-12-16 | 2015-04-08 | 北京星网锐捷网络技术有限公司 | 防火墙流表备份方法、防火墙及防火墙系统 |
CN105591909A (zh) * | 2015-10-21 | 2016-05-18 | 杭州华三通信技术有限公司 | 提高报文转发性能的方法以及装置 |
CN107368527A (zh) * | 2017-06-09 | 2017-11-21 | 东南大学 | 基于数据流的多属性索引方法 |
CN109361609A (zh) * | 2018-12-14 | 2019-02-19 | 东软集团股份有限公司 | 防火墙设备的报文转发方法、装置、设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
"Balanced Service Chaining in Software-Defined Networks with Network Function Virtualization";Po-Ching Lin等;《IEEE》;20161111;全文 * |
"基于多核处理器的安全网关优化技术研究";李金;《万方数据库》;20121130;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110932983A (zh) | 2020-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11115500B2 (en) | Request routing utilizing client location information | |
US11283715B2 (en) | Updating routing information based on client location | |
US20210297365A1 (en) | Request routing based on class | |
US11743190B2 (en) | Techniques for steering network traffic to regions of a cloud computing system | |
US7315541B1 (en) | Methods and apparatus for routing a content request | |
US9225613B2 (en) | Method for accessing content in networks and a corresponding system | |
US9264358B2 (en) | Alias resource record sets | |
CA2741895A1 (en) | Request routing and updating routing information utilizing client location information | |
WO2017177437A1 (zh) | 一种域名解析方法、装置及系统 | |
CN109743414B (zh) | 利用冗余连接提高地址翻译可用性的方法及计算机可读存储介质 | |
CN110932983B (zh) | 一种tcp负载均衡方法、装置、设备及介质 | |
CN109413224B (zh) | 报文转发方法和装置 | |
US9882868B1 (en) | Domain name system network traffic management | |
US10122630B1 (en) | Methods for network traffic presteering and devices thereof | |
EP3389240A1 (en) | Method and system for processing cache cluster service | |
CN110601993B (zh) | 多出口的负载均衡方法及装置 | |
CN109618014B (zh) | 报文转发方法和装置 | |
CN114363287B (zh) | 域名递归查询方法、装置、递归服务器以及dns系统 | |
CN116743442A (zh) | 一种基于云计算的dns域名解析系统 | |
CN116155857A (zh) | 一种云内通信方法、装置、系统及设备、介质和产品 |
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 |