CN111585909A - Tcp报文的负载均衡方法及装置 - Google Patents

Tcp报文的负载均衡方法及装置 Download PDF

Info

Publication number
CN111585909A
CN111585909A CN202010258913.9A CN202010258913A CN111585909A CN 111585909 A CN111585909 A CN 111585909A CN 202010258913 A CN202010258913 A CN 202010258913A CN 111585909 A CN111585909 A CN 111585909A
Authority
CN
China
Prior art keywords
tcp
outlet
message
application type
determined
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.)
Withdrawn
Application number
CN202010258913.9A
Other languages
English (en)
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.)
Beijing Star Net Ruijie Networks Co Ltd
Original Assignee
Beijing Star Net Ruijie Networks 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 Beijing Star Net Ruijie Networks Co Ltd filed Critical Beijing Star Net Ruijie Networks Co Ltd
Priority to CN202010258913.9A priority Critical patent/CN111585909A/zh
Publication of CN111585909A publication Critical patent/CN111585909A/zh
Withdrawn legal-status Critical Current

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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • 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/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • 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/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种TCP报文的负载均衡方法及装置,该方法包括:确定来自终端的TCP报文对应的应用类型;根据应用类型与哈希因子的第一对应关系以及确定出的应用类型确定TCP报文对应的第一出口;确定TCP流信息表中是否存在TCP报文所属的TCP流的信息;若不存在,则建立TCP流的信息,保存TCP报文,并通过第一出口对TCP报文进行TCP代理转发;若存在,则确定第一出口与TCP流的信息包括的第二出口是否相同,若相同,则通过第一出口对TCP报文进行TCP代理转发,并确定应用类型是默认类型时,保存TCP报文;若不同,则将第二出口更新为第一出口,保存TCP报文,并重新通过第二出口对已保存的TCP流的各个TCP报文进行TCP代理转发。该方案可以确保TCP流不断流。

Description

TCP报文的负载均衡方法及装置
技术领域
本发明涉及通信技术领域,尤指一种传输控制协议(Transmission ControlProtocol,TCP)报文的负载均衡方法及装置。
背景技术
出于成本考虑,一般会在网吧、学校等等应用场景的局域网设置多条链路,为了确保各个链路的流量均衡,这要求网关设备支持多链路的负载均衡。由于各个链路的出口一般都会开启网络地址转换(Network Address Translation,NAT)功能,若再开启网关设备的负载均衡功能,需要保证局域网的一条流的所有报文选择同一个出口,否则会由于NAT之后源互联网协议(Internet Protocol,IP)不同造成断流,这就要求针对每条流的首报文就选择好出口。
目前,针对各个流不同的应用类型,需要采用不同的哈希因子才能更好地选路,从而达到更好的负载均衡效果。而局域网的流大部分是TCP流,前三个TCP报文是TCP握手报文,与承载的应用类型无关,无法确定承载的应用类型,又由于需要针对每条流的首报文就选择好出口,这就导致不能为TCP流选择合适的出口,也就是说,目前网关设备在开启NAT时针对TCP流的负载均衡效果很差。
发明内容
本发明实施例提供一种TCP报文的负载均衡方法及装置,用以解决现有技术中存在的网关设备在开启NAT时针对TCP流的负载均衡效果很差的问题。
根据本发明实施例,提供一种TCP报文的负载均衡方法,应用于开启网络地址转换NAT的网关设备中,包括:
确定来自终端的TCP报文对应的应用类型;
根据应用类型与哈希因子的第一对应关系以及确定出的应用类型确定所述TCP报文对应的第一出口;
确定TCP流信息表中是否存在所述TCP报文所属的TCP流的信息;
若确定所述TCP流信息表中不存在所述TCP流的信息,则在所述TCP流信息表建立包括所述第一出口、所述TCP报文携带的序列号、源互联网协议IP地址和目的IP地址的所述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报文的负载均衡装置,应用于开启NAT的网关设备中,包括:
第一确定模块,用于确定来自终端的TCP报文对应的应用类型;
第二确定模块,用于根据应用类型与哈希因子的第一对应关系以及确定出的应用类型确定所述TCP报文对应的第一出口;
第三确定模块,用于确定TCP流信息表中是否存在所述TCP报文所属的TCP流的信息;
第一处理模块,用于若确定所述TCP流信息表中不存在所述TCP流的信息,则在所述TCP流信息表建立包括所述第一出口、所述TCP报文携带的序列号、源互联网协议IP地址和目的IP地址的所述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报文携带的序列号、源IP地址和目的IP地址的所述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为本发明实施例中一种TCP报文的负载均衡方法的流程图;
图2为本发明实施例中一种TCP报文的负载均衡装置的结构示意图;
图3为本申请示出的一种电子设备的结构示意图。
具体实施方式
针对现有技术中存在的网关设备在开启NAT时针对TCP流的负载均衡效果很差的问题,本发明实施例提供一种TCP报文的负载均衡方法,应用于开启NAT的网关设备中,该方法的流程如图1所示,执行步骤如下:
S11:确定来自终端的TCP报文对应的应用类型。
由于要实现局域网多链路的负载均衡,因此,本实施例关注的是来自终端的TCP报文,也就是要发往服务器的TCP报文。TCP报文对应的应用类型,也就是TCP报文承载的业务的应用类型,可以是游戏、下载、网页等等。
S12:根据应用类型与哈希因子的第一对应关系以及确定出的应用类型确定TCP报文对应的第一出口。
可以根据实际需要预先设置应用类型与哈希因子的对应关系,该对应关系可以定义为第一对应关系,其中,哈希因子可以但不限于是五元组信息中的一元信息或多元信息。在确定出来自终端的TCP报文对应的应用类型后,就可以根据第一对应关系和S11中确定出的应用类型确定TCP报文对应的出口,该出口可以定义为第一出口。
S13:确定TCP流信息表中是否存在TCP报文所属的TCP流的信息,若确定TCP流信息表中不存在TCP流的信息,则执行S14;若确定TCP流信息表中存在TCP流的信息,则执行S15。
可以将之前接收到的各个TCP报文所属的TCP流的信息保存到TCP流信息表中,然后在接收到新的TCP报文后,可以进一步确定TCP流信息表中是否存在该TCP报文所属的TCP流的信息,例如,可以但不限于根据TCP报文的五元组信息确定所属的TCP流,五元组信息相同的TCP报文属于同一TCP流。
S14:在TCP流信息表建立包括第一出口、TCP报文携带的序列号、源IP地址和目的IP地址的TCP流的信息,保存TCP报文,并通过第一出口对TCP报文进行TCP代理转发。
若确定TCP流信息表中不存在TCP流的信息,说明这是TCP报文所属TCP流的首报文,可以在TCP流信息表中建立该TCP流的信息,具体可以包括第一出口、TCP报文携带的序列号、源IP地址和目的IP地址。由于该TCP报文是TCP流的首报文,也就是TCP握手报文,当前无法确定出TCP报文对应的实际的应用类型,此时,为了以后接收到TCP流的非TCP握手报文对应的应用类型更改从而导致更改出口后、需要重新进行TCP代理确保不断流,可以保存该TCP报文,然后通过第一出口对TCP报文进行TCP代理转发,具体可以与服务器建立TCP连接,然后构建与该TCP报文对应的代理TCP报文,并通过建立的TCP连接发送代理TCP报文。
S15:确定第一出口与TCP流的信息包括的第二出口是否相同,若确定第一出口与第二出口相同,则执行S16;若确定第一出口与第二出口不同,则执行S17。
若确定TCP流信息表中存在TCP流的信息,说明之前接收过属于该TCP流的TCP报文,可以进一步确定第一出口与TCP流的信息包括的第二出口是否相同。
S16:通过第一出口对TCP报文进行TCP代理转发,并在确定应用类型是默认类型时,保存TCP报文。
若确定第一出口与第二出口相同,可以继续通过第一出口对TCP报文进行TCP代理转发,并进一步确定该TCP报文对应的应用类型是否是默认类型,默认类型也就是无法确定具体的应用类型,若确定该TCP报文对应的应用类型是默认类型,此时说明该TCP报文仍然是该TCP流的TCP握手报文,因此,为了以后接收到TCP流的其他TCP报文对应的应用类型更改从而导致更改出口后、需要重新进行TCP代理确保不断流,可以保存该TCP报文;若确定该TCP报文对应的应用类型不是默认类型,说明已经确定出了该TCP报文对应的实际的应用类型,因此,以后无需重新进行TCP代理,则无需保存该TCP报文。
S17:将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流不断流,同时达到较好的负载均衡效果。
具体的,上述S11中的确定来自终端的TCP报文对应的应用类型,实现过程具体包括:
确定来自终端的TCP报文是否是TCP握手报文;
若确定TCP报文是TCP握手报文,则将默认类型确定为TCP报文对应的应用类型;
若确定TCP报文不是TCP握手报文,则获取TCP报文的选定特征,从选定特征与应用类型的第二对应关系中查找TCP报文的选定特征对应的应用类型。
由于无法确定出TCP握手报文对应的应用类型,因此,若确定TCP报文是TCP握手报文,则将默认类型确定为TCP报文对应的应用类型;若确定TCP报文不是TCP握手报文,则获取TCP报文的选定特征,并预先建立选定特征与应用类型的对应关系,该对应关系可以称为第二对应关系,然后从第二对应关系中查找TCP报文的选定特征对应的应用类型,其中选定特征可以但不限于包括目的端口、协议类型等等。
具体的,上述S12中的根据应用类型与哈希因子的第一对应关系以及确定出的应用类型确定TCP报文对应的第一出口,实现过程具体包括:
获取应用类型与哈希因子的第一对应关系;
在第一对应关系中查找应用类型对应的哈希因子;
根据查找到的哈希因子计算得到TCP报文对应的第一出口。
通过以上过程,可以从第一对应关系中查找出TCP报文对应的第一出口。
一种可选的实施方式,上述S17中的基于TCP流的信息包括的序列号重新通过第二出口对已保存的TCP流的各个TCP报文进行TCP代理转发之后,上述方法还包括:
删除已保存的TCP流包括的各个TCP报文。
为了节省网关设备的存储空间,在上述S17中的基于TCP流的信息包括的序列号重新通过第二出口对已保存的TCP流的各个TCP报文进行TCP代理转发之后,也就说明已经可以确定出TCP流的各个TCP报文的具体的应用类型,以后接收到属于该TCP流的TCP报文可以直接通过第二出口进行TCP代理转发即可,无需再重新进行TCP代理转发,此时,可以删除已保存的TCP流包括的各个TCP报文。
基于同一发明构思,本发明实施例提供一种TCP报文的负载均衡装置,应用于开启NAT的网关设备中,该装置的结构如图2所示,包括:
第一确定模块21,用于确定来自终端的TCP报文对应的应用类型;
第二确定模块22,用于根据应用类型与哈希因子的第一对应关系以及确定出的应用类型确定TCP报文对应的第一出口;
第三确定模块23,用于确定TCP流信息表中是否存在TCP报文所属的TCP流的信息;
第一处理模块24,用于若确定TCP流信息表中不存在TCP流的信息,则在TCP流信息表建立包括第一出口、TCP报文携带的序列号、源互联网协议IP地址和目的IP地址的TCP流的信息,保存TCP报文,并通过第一出口对TCP报文进行TCP代理转发;
第二处理模块25,用于若确定TCP流信息表中存在TCP流的信息,则确定第一出口与TCP流的信息包括的第二出口是否相同,若确定第一出口与第二出口相同,则通过第一出口对TCP报文进行TCP代理转发,并在确定应用类型是默认类型时,保存TCP报文;若确定第一出口与第二出口不同,则将TCP流信息表中的第二出口更新为第一出口,保存TCP报文,并基于TCP流的信息包括的序列号重新通过第二出口对已保存的TCP流的各个TCP报文进行TCP代理转发。
该方案中,可以分别针对一个TCP流包括的各个TCP报文确定出口,并确定是否保存各个TCP报文,当针对一个TCP流的不同TCP报文确定出的出口不同时,可以及时调整出口,基于TCP流的信息包括的序列号重新通过确定出的出口对已保存的TCP流的各个TCP报文进行TCP代理转发,由于是网关设备重新进行TCP代理转发,从而可以确保TCP流不断流,同时达到较好的负载均衡效果。
具体的,第一确定模块21,用于确定来自终端的TCP报文对应的应用类型,具体用于:
确定来自终端的TCP报文是否是TCP握手报文;
若确定TCP报文是TCP握手报文,则将默认类型确定为TCP报文对应的应用类型;
若确定TCP报文不是TCP握手报文,则获取TCP报文的选定特征,从选定特征与应用类型的第二对应关系中查找TCP报文的选定特征对应的应用类型。
具体的,第二确定模块22,用于根据应用类型与哈希因子的第一对应关系以及确定出的应用类型确定TCP报文对应的第一出口,具体用于:
获取应用类型与哈希因子的第一对应关系;
在第一对应关系中查找应用类型对应的哈希因子;
根据查找到的哈希因子计算得到TCP报文对应的第一出口。
可选的,第二处理模块25,还用于:
基于TCP流的信息包括的序列号重新通过第二出口对已保存的TCP流的各个TCP报文进行TCP代理转发之后,删除已保存的TCP流包括的各个TCP报文。
本申请实施例还提供了一种电子设备,请参见图3所示,包括处理器310、通信接口320、存储器330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。
存储器330,用于存放计算机程序;
处理器310,用于执行存储器330上所存放的程序时,实现上述实施例中任一所述的TCP报文的负载均衡方法。
通信接口320用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
该方案中,可以针对一个TCP流包括的各个TCP报文确定出口,并确定是否保存各个TCP报文,当针对一个TCP流的不同TCP报文确定出的出口不同时,可以及时调整出口,基于TCP流的信息包括的序列号重新通过确定出的出口对已保存的TCP流的各个TCP报文进行TCP代理转发,由于是网关设备重新进行TCP代理转发,从而可以确保TCP流不断流,同时达到较好的负载均衡效果。
相应地,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的TCP报文的负载均衡方法。
该方案中,可以针对一个TCP流包括的各个TCP报文确定出口,并确定是否保存各个TCP报文,当针对一个TCP流的不同TCP报文确定出的出口不同时,可以及时调整出口,基于TCP流的信息包括的序列号重新通过确定出的出口对已保存的TCP流的各个TCP报文进行TCP代理转发,由于是网关设备重新进行TCP代理转发,从而可以确保TCP流不断流,同时达到较好的负载均衡效果。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的可选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括可选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种传输控制协议TCP报文的负载均衡方法,应用于开启网络地址转换NAT的网关设备中,其特征在于,包括:
确定来自终端的TCP报文对应的应用类型;
根据应用类型与哈希因子的第一对应关系以及确定出的应用类型确定所述TCP报文对应的第一出口;
确定TCP流信息表中是否存在所述TCP报文所属的TCP流的信息;
若确定所述TCP流信息表中不存在所述TCP流的信息,则在所述TCP流信息表建立包括所述第一出口、所述TCP报文携带的序列号、源互联网协议IP地址和目的IP地址的所述TCP流的信息,保存所述TCP报文,并通过所述第一出口对所述TCP报文进行TCP代理转发;
若确定所述TCP流信息表中存在所述TCP流的信息,则确定所述第一出口与所述TCP流的信息包括的第二出口是否相同,若确定所述第一出口与所述第二出口相同,则通过所述第一出口对所述TCP报文进行TCP代理转发,并在确定所述应用类型是默认类型时,保存所述TCP报文;若确定所述第一出口与所述第二出口不同,则将所述TCP流信息表中的所述第二出口更新为所述第一出口,保存所述TCP报文,并基于所述TCP流的信息包括的序列号重新通过所述第二出口对已保存的所述TCP流的各个TCP报文进行TCP代理转发。
2.如权利要求1所述的方法,其特征在于,确定来自终端的TCP报文对应的应用类型,具体包括:
确定来自终端的TCP报文是否是TCP握手报文;
若确定所述TCP报文是TCP握手报文,则将所述默认类型确定为所述TCP报文对应的应用类型;
若确定所述TCP报文不是TCP握手报文,则获取所述TCP报文的选定特征,从选定特征与应用类型的第二对应关系中查找所述TCP报文的选定特征对应的应用类型。
3.如权利要求1所述的方法,其特征在于,根据应用类型与哈希因子的第一对应关系以及确定出的应用类型确定所述TCP报文对应的第一出口,具体包括:
获取应用类型与哈希因子的第一对应关系;
在所述第一对应关系中查找所述应用类型对应的哈希因子;
根据查找到的哈希因子计算得到所述TCP报文对应的第一出口。
4.如权利要求1-3任一所述的方法,其特征在于,基于所述TCP流的信息包括的序列号重新通过所述第二出口对已保存的所述TCP流的各个TCP报文进行TCP代理转发之后,还包括:
删除已保存的所述TCP流包括的各个TCP报文。
5.一种TCP报文的负载均衡装置,应用于开启NAT的网关设备中,其特征在于,包括:
第一确定模块,用于确定来自终端的TCP报文对应的应用类型;
第二确定模块,用于根据应用类型与哈希因子的第一对应关系以及确定出的应用类型确定所述TCP报文对应的第一出口;
第三确定模块,用于确定TCP流信息表中是否存在所述TCP报文所属的TCP流的信息;
第一处理模块,用于若确定所述TCP流信息表中不存在所述TCP流的信息,则在所述TCP流信息表建立包括所述第一出口、所述TCP报文携带的序列号、源互联网协议IP地址和目的IP地址的所述TCP流的信息,保存所述TCP报文,并通过所述第一出口对所述TCP报文进行TCP代理转发;
第二处理模块,用于若确定所述TCP流信息表中存在所述TCP流的信息,则确定所述第一出口与所述TCP流的信息包括的第二出口是否相同,若确定所述第一出口与所述第二出口相同,则通过所述第一出口对所述TCP报文进行TCP代理转发,并在确定所述应用类型是默认类型时,保存所述TCP报文;若确定所述第一出口与所述第二出口不同,则将所述TCP流信息表中的所述第二出口更新为所述第一出口,保存所述TCP报文,并基于所述TCP流的信息包括的序列号重新通过所述第二出口对已保存的所述TCP流的各个TCP报文进行TCP代理转发。
6.如权利要求5所述的装置,其特征在于,所述第一确定模块,用于确定来自终端的TCP报文对应的应用类型,具体用于:
确定来自终端的TCP报文是否是TCP握手报文;
若确定所述TCP报文是TCP握手报文,则将所述默认类型确定为所述TCP报文对应的应用类型;
若确定所述TCP报文不是TCP握手报文,则获取所述TCP报文的选定特征,从选定特征与应用类型的第二对应关系中查找所述TCP报文的选定特征对应的应用类型。
7.如权利要求5所述的装置,其特征在于,所述第二确定模块,用于根据应用类型与哈希因子的第一对应关系以及确定出的应用类型确定所述TCP报文对应的第一出口,具体用于:
获取应用类型与哈希因子的第一对应关系;
在所述第一对应关系中查找所述应用类型对应的哈希因子;
根据查找到的哈希因子计算得到所述TCP报文对应的第一出口。
8.如权利要求5-7任一所述的装置,其特征在于,所述第二处理模块,还用于:
基于所述TCP流的信息包括的序列号重新通过所述第二出口对已保存的所述TCP流的各个TCP报文进行TCP代理转发之后,删除已保存的所述TCP流包括的各个TCP报文。
9.一种电子设备,其特征在于,所述电子设备包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存储的程序时,实现权利要求1-4任一所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-4任一所述的方法步骤。
CN202010258913.9A 2020-04-03 2020-04-03 Tcp报文的负载均衡方法及装置 Withdrawn CN111585909A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010258913.9A CN111585909A (zh) 2020-04-03 2020-04-03 Tcp报文的负载均衡方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010258913.9A CN111585909A (zh) 2020-04-03 2020-04-03 Tcp报文的负载均衡方法及装置

Publications (1)

Publication Number Publication Date
CN111585909A true CN111585909A (zh) 2020-08-25

Family

ID=72124318

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010258913.9A Withdrawn CN111585909A (zh) 2020-04-03 2020-04-03 Tcp报文的负载均衡方法及装置

Country Status (1)

Country Link
CN (1) CN111585909A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113014502A (zh) * 2021-02-08 2021-06-22 北京星网锐捷网络技术有限公司 基于线卡的负载均衡方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113014502A (zh) * 2021-02-08 2021-06-22 北京星网锐捷网络技术有限公司 基于线卡的负载均衡方法及装置
CN113014502B (zh) * 2021-02-08 2022-08-19 北京星网锐捷网络技术有限公司 基于线卡的负载均衡方法及装置

Similar Documents

Publication Publication Date Title
US11706138B2 (en) Distributing service function chain data and service function instance data in a network
CN107948076B (zh) 一种转发报文的方法及装置
US9584398B2 (en) Methods and apparatus to utilize route parameter sets for exchanging routes in a communication network
CN111682952A (zh) 针对体验质量度量的按需探测
CN105610632A (zh) 一种虚拟网络设备及相关方法
EP3186930A1 (en) Relay optimization using software defined networking
CN111431871B (zh) Tcp半透明代理的处理方法和装置
CN105939297A (zh) 一种tcp报文重组方法和装置
CN111803925B (zh) 云游戏的转发服务器的调度方法、装置及可读存储介质
Masruroh et al. Performance evaluation of routing protocols RIPng, OSPFv3, and EIGRP in an IPv6 network
CN106105098A (zh) 交换机及业务请求报文的处理方法
CN111585909A (zh) Tcp报文的负载均衡方法及装置
CN110601989A (zh) 一种网络流量均衡方法及装置
CN111464443B (zh) 基于服务功能链的报文转发方法、装置、设备及存储介质
CN106789650B (zh) 基于ip的广域网加速方法及装置
CN105636100A (zh) 一种数据链路监测方法及装置
CN105991629B (zh) Tcp连接建立方法及装置
CN110601982B (zh) 路由传递方法、装置及路由器
CN110601993B (zh) 多出口的负载均衡方法及装置
CN111200505B (zh) 一种报文处理方法及装置
CN112995062A (zh) 一种数据传输方法及装置
CN110535983B (zh) 报文转发方法及装置
EP3996350A1 (en) Backup service function notification and synchronization
CN109495570B (zh) 采样报文的转发方法、装置及数据中心
CN113489613B (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
WW01 Invention patent application withdrawn after publication

Application publication date: 20200825

WW01 Invention patent application withdrawn after publication