CN113691589B - 报文传输方法、装置及系统 - Google Patents

报文传输方法、装置及系统 Download PDF

Info

Publication number
CN113691589B
CN113691589B CN202110851443.1A CN202110851443A CN113691589B CN 113691589 B CN113691589 B CN 113691589B CN 202110851443 A CN202110851443 A CN 202110851443A CN 113691589 B CN113691589 B CN 113691589B
Authority
CN
China
Prior art keywords
load balancing
client
session connection
socket
information
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
CN202110851443.1A
Other languages
English (en)
Other versions
CN113691589A (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.)
Hangzhou DPTech Technologies Co Ltd
Original Assignee
Hangzhou DPTech Technologies 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 Hangzhou DPTech Technologies Co Ltd filed Critical Hangzhou DPTech Technologies Co Ltd
Priority to CN202110851443.1A priority Critical patent/CN113691589B/zh
Publication of CN113691589A publication Critical patent/CN113691589A/zh
Application granted granted Critical
Publication of CN113691589B publication Critical patent/CN113691589B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • 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
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms

Landscapes

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

Abstract

本公开涉及一种基于负载均衡的报文传输方法、装置、系统、电子设备及计算机可读介质。该方法包括:与所述客户端建立第一会话连接;基于第一套接字绑定为所述第一会话连接设置标记;基于所述第一会话连接获取来自于客户端的报文信息;基于负载均衡算法由多个服务器中确定目标服务器;基于所述第一会话连接将所述报文信息发送到所述目标服务器。本公开涉及的基于负载均衡的报文传输方法、装置、系统、电子设备及计算机可读介质,能够有效的降低负载均衡器的配置复杂度,使负载均衡设备能够透传客户端IP,提高负载均衡设备的处理效率,减轻服务器计算压力。

Description

报文传输方法、装置及系统
技术领域
本公开涉及计算机信息处理领域,具体而言,涉及一种基于负载均衡的报文传输方法、装置、系统、电子设备及计算机可读介质。
背景技术
随着技术的不断更新换代,目前现有网络通信的各个核心部分随着业务量的提高,访问量和数据流量的快速增长,其处理能力和计算强度也相应地增大,使得单一的服务器设备根本无法承担。从网络技术与处理器、内存生产技术的发展对比来看,网络带宽的增长远高于处理器速度和内存访问速度的增长。因此,服务器的本身成为网路服务质量的瓶颈。但服务器本身也存在服务能力不足、服务可靠性不能保证、服务响应时间长和服务器宕机的各种问题。负载均衡能够将大量的并发访问或数据流量分担到多台节点设备上分别处理,提高了服务质量。与此同时,负载均衡还能够将单个重负载的运算分担到多台节点设备上做并行处理,每一台服务器独立的回应分配给他的客户请求。
随着负载均衡设备的加入,组网环境也变得相对复杂点。服务器收到请求中的源IP,经过NAT的相关处理,已经不是真实的客户端请求IP。有的时候,服务器对客户端真实IP要做相应的统计和业务处理。这就需要使客户端的IP透传负载均衡设备。
现有技术中的能够实现IP透传的负载均衡方案,或者会增加负载均衡设备的负担,或者会增加服务器处理的时间,因此,需要一种新的基于负载均衡的报文传输方法、装置、系统、电子设备及计算机可读介质。
在所述背景技术部分公开的上述信息仅用于加强对本公开的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
有鉴于此,本公开提供一种基于负载均衡的报文传输方法、装置、系统、电子设备及计算机可读介质,能够有效的降低负载均衡器的配置复杂度,使负载均衡设备能够透传客户端IP,提高负载均衡设备的处理效率,减轻服务器计算压力。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一方面,提出一种基于负载均衡的报文传输方法,可应用于负载均衡设备,该方法包括:
与所述客户端建立第一会话连接;基于第一套接字绑定为所述第一会话连接设置标记;基于所述第一会话连接获取来自于客户端的报文信息;基于负载均衡算法由多个服务器中确定目标服务器;基于所述第一会话连接将所述报文信息发送到所述目标服务器。
在本公开的一种示例性实施例中,还包括:基于所述客户端和所述标记的关系生成第一路由关系表。
在本公开的一种示例性实施例中,还包括:与所述目标服务器建立第二会话连接;基于第二套接字绑定为所述第二会话连接设置标记;基于所述第二会话连接获取来自于服务器的返回信息;基于所述第二会话连接的所述标记将所述返回信息转发至所述客户端。
在本公开的一种示例性实施例中,基于所述第二会话连接获取来自于服务器的返回信息,包括:基于第二套接字绑定由所述目标服务器获取所述报文信息的返回信息。
在本公开的一种示例性实施例中,基于所述第二会话连接的所述标记将所述返回信息转发至所述客户端,包括:提取所述第二会话连接的所述标记;将所述标记和第一路由关系表进行匹配;根据匹配结果将所述返回信息转发至所述客户端。
在本公开的一种示例性实施例中,根据匹配结果将所述返回信息转发至所述客户端,包括:根据匹配结果将所述返回信息转发至应用层;在应用层转发所述返回信息至所述客户端。
根据本公开的一方面,提出一种基于负载均衡的报文传输方法,可应用于客户端,该方法包括:与负载均衡设备建立第一套接字绑定;基于本地IP 地址在负载均衡设备和多个服务器之间建立第二套接字绑定;在所述第一套接字绑定和所述第二套接字绑定建立成功后,将报文信息发送至所述负载均衡设备以进行报文传输。
在本公开的一种示例性实施例中,将报文信息发送至所述负载均衡设备以进行报文传输,包括:与所述负载均衡设备建立第一会话连接;基于所述第一会话连接将报文信息发送至所述载均衡设备以进行报文传输。
根据本公开的一方面,提出一种基于负载均衡的报文传输方法,可应用于服务器,该方法包括:与负载均衡设备建立第二会话连接;基于所述第二会话连接获取报文信息;基于第二套接字绑定由所述报文信息中提取客户端源IP;基于客户端源IP对所述报文信息进行处理以生成返回信息。
在本公开的一种示例性实施例中,还包括:基于所述负载均衡设备的IP 地址和所述报文信息的关系生成第二路由关系表。
在本公开的一种示例性实施例中,还包括:基于所述第二路由关系表和所述报文信息确定负载均衡设备的IP地址;基于所述IP地址将所述报文信息的返回信息发送至所述负载均衡设备。
根据本公开的一方面,提出一种基于负载均衡的报文传输装置,可应用于负载均衡设备,该装置包括:第一连接模块,用于与所述客户端建立第一会话连接;第一标记模块,用于基于第一套接字绑定为所述第一会话连接设置标记;获取模块,用于基于所述第一会话连接获取来自于客户端的报文信息;目标模块,用于基于负载均衡算法由多个服务器中确定目标服务器;转发模块,用于基于所述第一会话连接将所述报文信息转发到所述目标服务器。
根据本公开的一方面,提出一种基于负载均衡的报文传输装置,可应用于客户端,该装置包括:第一协议模块,用于与负载均衡设备建立第一套接字绑定;第二协议模块,用于基于本地IP地址在负载均衡设备和多个服务器之间建立第二套接字绑定;发送模块,用于在所述第一套接字绑定和所述第二套接字绑定建立成功后,将报文信息发送至所述负载均衡设备以进行报文传输。
根据本公开的一方面,提出一种基于负载均衡的报文传输装置,可应用于服务器,该装置包括:第二连接模块,用于与负载均衡设备建立第二会话连接;报文模块,用于基于所述第二会话连接获取报文信息;提取模块,用于基于第二套接字绑定由所述报文信息中提取客户端源IP;处理模块,用于基于客户端源IP对所述报文信息进行处理以生成返回信息。
根据本公开的一方面,提出一种基于负载均衡的报文传输系统,该系统包括:客户端,用于与负载均衡设备建立第一套接字绑定;基于本地IP地址在负载均衡设备和多个服务器之间建立第二套接字绑定;在所述第一套接字绑定和所述第二套接字绑定建立成功后,将报文信息发送至所述负载均衡设备以进行报文传输;负载均衡设备,用于与所述客户端建立第一会话连接;基于第一套接字绑定为所述第一会话连接设置标记;基于所述第一会话连接获取来自于客户端的报文信息;基于负载均衡算法由多个服务器中确定目标服务器;基于所述第一会话连接将所述报文信息发送到所述目标服务器;服务器,用于与负载均衡设备建立第二会话连接;基于所述第二会话连接获取报文信息;基于第二套接字绑定由所述报文信息中提取客户端源IP;基于客户端源IP对所述报文信息进行处理以生成返回信息。
根据本公开的一方面,提出一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上文的方法。
根据本公开的一方面,提出一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上文中的方法。
根据本公开的基于负载均衡的报文传输方法、装置、系统、电子设备及计算机可读介质,与所述客户端建立第一会话连接;基于第一套接字绑定为所述第一会话连接设置标记;基于所述第一会话连接获取来自于客户端的报文信息;基于负载均衡算法由多个服务器中确定目标服务器;基于所述第一会话连接将所述报文信息发送到所述目标服务器的方式,能够有效的降低负载均衡器的配置复杂度,使负载均衡设备能够透传客户端IP,提高负载均衡设备的处理效率,减轻服务器计算压力。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
通过参照附图详细描述其示例实施例,本公开的上述和其它目标、特征及优点将变得更加显而易见。下面描述的附图仅仅是本公开的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的一种基于负载均衡的报文传输方法及装置的系统框图。
图2是根据一示例性实施例示出的一种基于负载均衡的报文传输方法的流程图。
图3是根据另一示例性实施例示出的一种基于负载均衡的报文传输方法的流程图。
图4是根据另一示例性实施例示出的一种基于负载均衡的报文传输方法的流程图。
图5是根据另一示例性实施例示出的一种基于负载均衡的报文传输方法的流程图。
图6是根据一示例性实施例示出的一种基于负载均衡的报文传输装置的框图。
图7是根据另一示例性实施例示出的一种基于负载均衡的报文传输装置的框图。
图8是根据另一示例性实施例示出的一种基于负载均衡的报文传输装置的框图。
图9是根据一示例性实施例示出的一种电子设备的框图。
图10是根据一示例性实施例示出的一种计算机可读介质的框图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本公开将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、系统、实现或者操作以避免模糊本公开的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/ 步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本公开概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。
本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本公开所必须的,因此不能用于限制本公开的保护范围。
本公开涉及的技术缩略语解释如下:
负载均衡:负载均衡其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行,例如FTP服务器、Web服务器、企业核心应用服务器和其它主要任务服务器等,从而协同完成工作任务。负载均衡构建在原有网络结构之上,它提供了一种透明且廉价有效的方法扩展服务器和网络设备的带宽、加强网络数据处理能力、增加吞吐量、提高网络的可用性和灵活性。
源IP:IP协议中有一个非常重要的内容,那就是给因特网上的每台计算机和其它设备都规定了一个唯一的地址,叫做“IP地址”。由于有这种唯一的地址,才保证了用户在连网的计算机上操作时,能够高效而且方便地从千千万万台计算机中选出自己所需的对象来。源IP是指在报文发送方的IP地址。
本公开的发明人发现,当数据包从负载均衡器往后端转发时候,真实源 IP可以在L3、L4、L7实现。比如haproxy的透明代理模式就是在L3层。其中L4层就是在option字段里增加源IP信息,在L7层就是在HTTP的 X-FORWARD-FOR插入源IP。
其中,在3层增加源IP的方式,需要负载均衡器与后端重新进行三次握手,但保持数据包的源IP为真实IP。Haproxy需要开启透明代理的模式,并且需要使用iptables给fwmark打上标记,还得设置策略路由才能实现。配置复杂,要求回包经过负载均衡器。
其中,在4层的option字段里增加源IP信息,比如在TCP的option里增加源IP信息。负载均衡器需要重新编译内核,添加相应的模块支持,仅支持linux系统下实现。
其中,在7层协议自带的源IP的方式,可以在应用程序中自定义一个协议来实现,在自定义的协议中选定一个字段来标注源IP。但是需要服务器端去解析HTTP头部X-FORWARD-FOR,或者去解析自定义协议的数据段。
为了解决现有技术中的技术瓶颈,本公开提出了一种基于负载均衡的报文传输方法,能够降低配置的复杂程度,尽量使用简单的方法来实现负载均衡器透传客户源IP。同时也不需要对服务器有所要求,减少服务器资源的损耗。下面借助具体的实施例来对本公开的内容进行详细描述。
图1是根据一示例性实施例示出的一种基于负载均衡的报文传输方法、装置、系统、电子设备及计算机可读介质的系统框图。
如图1所示,系统架构10可以包括客户端设备101、102、103,网络104 和负载均衡设备105、服务器106、107、108。网络104用以在客户端设备 101、102、103和负载均衡设备105之间、负载均衡设备105和服务器106、 107、108之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用客户端设备101、102、103通过负载均衡设备105与服务器106、107、108交互,以接收或发送消息等。客户端设备101、102、103 上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
客户端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
客户端设备101、102、103可例如与负载均衡设备105建立第一套接字绑定;客户端设备101、102、103可例如基于本地IP地址分别与服务器106、 107、108建立第二套接字绑定;客户端设备101、102、103可例如在所述第一套接字绑定和所述第二套接字绑定建立成功后,将报文信息发送至所述负载均衡设备105以进行报文传输。
负载均衡设备105可例如与所述客户端设备101(或102、103)建立第一会话连接;负载均衡设备105可例如基于第一套接字绑定为所述第一会话连接设置标记;负载均衡设备105可例如基于所述第一会话连接获取来自于客户端客户端设备101(或102、103)的报文信息;负载均衡设备105可例如基于负载均衡算法由服务器106、107、108中确定目标服务器;负载均衡设备105可例如基于所述第一会话连接将所述报文信息发送到所述目标服务器。
服务器106可例如与负载均衡设备105建立第二会话连接;服务器106 可例如基于所述第二会话连接获取报文信息;服务器106可例如基于第二套接字绑定由所述报文信息中提取客户端源IP;服务器106可例如基于客户端源IP对所述报文信息进行处理以生成返回信息。
需要说明的是,本公开实施例所提供的基于负载均衡的报文传输方法可以由客户端、负载均衡设备、服务器共同执行,相应地,基于负载均衡的报文传输装置可以设置于客户端、负载均衡设备、服务器中。
图2是根据一示例性实施例示出的一种基于负载均衡的报文传输方法的流程图。基于负载均衡的报文传输方法20可应用在负载均衡设备,至少包括步骤S202至S210。
如图2所示,在S202中,与客户端建立第一会话连接。
在S204中,基于第一套接字绑定为所述第一会话连接设置标记。
在S206中,基于所述第一会话连接获取来自于客户端的报文信息并转发至目标服务器。更具体的,基于所述第一会话连接获取来自于客户端的报文信息;基于负载均衡算法由多个服务器中确定目标服务器;基于所述第一会话连接将所述报文信息发送到所述目标服务器。
其中,还可例如,基于所述客户端和所述标记的关系生成第一路由关系表。
在S208中,与所述目标服务器建立第二会话连接。
在S210中,基于所述第二会话连接获取来自于服务器的返回信息并转发至客户端。更具体的,可基于第二套接字绑定为所述第二会话连接设置标记;基于所述第二会话连接获取来自于服务器的返回信息;基于所述第二会话连接的所述标记将所述返回信息转发至所述客户端。
其中,基于所述第二会话连接获取来自于服务器的返回信息,包括:基于第二套接字绑定由所述目标服务器获取所述报文信息的返回信息。
其中,基于所述第二会话连接的所述标记将所述返回信息转发至所述客户端,包括:提取所述第二会话连接的所述标记;将所述标记和第一路由关系表进行匹配;根据匹配结果将所述返回信息转发至所述客户端。
其中,根据匹配结果将所述返回信息转发至所述客户端,包括:根据匹配结果将所述返回信息转发至应用层;在应用层转发所述返回信息至所述客户端。
负载均衡器上绑定的两个socket。其中在客户端和负载均衡器间通信的 socket,负载均衡器提供的虚服务,一般不会是接口的IP。这时按照正常的流程,会在查询路由的这一步被丢掉或转发,无法到达应用程序,即无法进行业务处理。所以还可以借用socke设置标记的办法,跳过查询路由,上送到应用程序。在上送的过程中,由于没有查询路由的过程,skb(socket buffer) ->dst(目标地址)未初始化,无法完成全部的上送流程。这时需要在上送之前根据socket的标记,给skb的一标记位置位。在上送的过程中,需要用到 skb->dst的时候,根据skb标记,申请一个路由dst,并初始化为loopback。由于loopback的特殊性,所有由loopback接受的报文,都当做本机报文。这样,后续的上送就没有任何阻碍了。
其中,SKB(socket buffer)是Linux网络代码中最根本的数据结构,收发数据包都是通过skb。Loopback(环回接口)是虚拟接口,是一种纯软件性质的虚拟接口。任何送到该接口的网络数据报文都会被认为是送往设备自身的。
根据本公开的基于负载均衡的报文传输方法,与所述客户端建立第一会话连接;基于第一套接字绑定为所述第一会话连接设置标记;基于所述第一会话连接获取来自于客户端的报文信息;基于负载均衡算法由多个服务器中确定目标服务器;基于所述第一会话连接将所述报文信息发送到所述目标服务器的方式,能够有效的降低负载均衡器的配置复杂度,使负载均衡设备能够透传客户端IP,提高负载均衡设备的处理效率,减轻服务器计算压力。
应清楚地理解,本公开描述了如何形成和使用特定示例,但本公开的原理不限于这些示例的任何细节。相反,基于本公开公开的内容的教导,这些原理能够应用于许多其它实施例。
图3是根据另一示例性实施例示出的一种基于负载均衡的报文传输方法的流程图。基于负载均衡的报文传输方法30可应用在客户端设备,至少包括步骤S302至S306。
如图3所示,在S302中,与负载均衡设备建立第一套接字绑定。
在S304中,基于本地IP地址在负载均衡设备和多个服务器之间建立第二套接字绑定。
套接字(Socket),是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲,套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议进行交互的接口。
在用户端的一用户进程中建立两个socket的二次连接,第一个socket是客户端和负载均衡器之间的,第二个socket是负载均衡器和服务器端之间,并且第二个socket是以客户端ip在负载均衡器上绑定的。当客户端发起请求时,在服务器端收到的请求源IP即是客户端的IP,实现了透传客户端真实IP。
在S306中,在所述第一套接字绑定和所述第二套接字绑定建立成功后,将报文信息发送至所述负载均衡设备以进行报文传输。可例如,与所述负载均衡设备建立第一会话连接;基于所述第一会话连接将报文信息发送至所述载均衡设备以进行报文传输。
图4是根据另一示例性实施例示出的一种基于负载均衡的报文传输方法的流程图。基于负载均衡的报文传输方法40可应用在客户端设备,至少包括步骤S402至S410。
如图4所示,在S402中,与负载均衡设备建立第二会话连接。
在S404中,基于所述第二会话连接获取报文信息。
在S406中,基于第二套接字绑定由所述报文信息中提取客户端源IP,并生成返回信息。更具体的,可例如基于客户端源IP对所述报文信息进行处理以生成返回信息。
其中,还可例如,基于所述负载均衡设备的IP地址和所述报文信息的关系生成第二路由关系表。
在S408中,确定负载均衡设备的IP地址。可例如,基于所述第二路由关系表和所述报文信息确定负载均衡设备的IP地址。
在服务器端收到请求后,完成自己提供的业务处理后,需要一定程度上配置服务器端的路由策略。保证服务器端的响应能够回到负载均衡器上,但是回到负载均衡器的时候,报文的目的IP不是负载均衡器的IP,按照正常的流程在查询路由的时候,就会被转发或者丢掉。这样就无法完成一次正常的请求和响应过程,所以需要在查询路由之前,根据设置的标记,将报文直接上送到负载均衡设备的应用层。
在S410中,基于所述IP地址将所述报文信息的返回信息发送至所述负载均衡设备。
图5是根据另一示例性实施例示出的一种基于负载均衡的报文传输方法的流程图。图5是对基于负载均衡的报文传输系统的描述。
在S501中,客户端与负载均衡设备建立第一套接字绑定。
在S502中,客户端基于本地IP地址在负载均衡设备和多个服务器之间建立第二套接字绑定。当应用程序启动后,按照负载均衡器的配置,成功绑定两个socket。重点是负载均衡器与服务器端建立的socket,需要以客户端ip 绑定。只要业务正常的情况下,服务器端收到的请求报文中,源IP就是客户端的IP。
在S503中,客户端将报文信息发送至所述负载均衡设备以进行报文传输。应用程序的Socket绑定成功后,需要对此类型的socket打上标记,并根据socket的标记给会话打上标记。
在S504中,基于负载均衡算法由多个服务器中确定目标服务器。
在S505中,将所述报文信息发送到所述目标服务器。
在S506中,基于第二套接字绑定由所述报文信息中提取客户端源IP并生成返回信息。
在S507中,将返回信息发送至负载均衡设备。服务器的响应回到负载均衡器上后,匹配会话后,本来正常流程接下来需要查询路由,但是由于服务器回复的报文的目的IP不是负载均衡器的IP,按照正常流程的话,此报文会被丢弃或转发,无法回到启动的应用程序处理流程。
在S508中,将返回信息转发至所述客户端。判断会话标记,若之前的会话标记被置位,则直接上送到应用层,由应用程序转发至客户端。
本公开的基于负载均衡的报文传输方法,有效的降低了负载均衡器的配置复杂度,使负载均衡设备能够透传客户端IP。对服务器的要求,也只需配置适当的路由策略,保证服务器的响应能够回到负载均衡器上即可,不需要在提供的服务程序中添加外的解析流程。
本领域技术人员可以理解实现上述实施例的全部或部分步骤被实现为由 CPU执行的计算机程序。在该计算机程序被CPU执行时,执行本公开提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。
此外,需要注意的是,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
下述为本公开装置实施例,可以用于执行本公开方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开方法实施例。
图6是根据另一示例性实施例示出的一种基于负载均衡的报文传输装置的框图。如图6所示,基于负载均衡的报文传输装置60可应用于负载均衡设备,包括:第一连接模块602,第一标记模块604,获取模块606,目标模块 608,转发模块610。
第一连接模块602用于与所述客户端建立第一会话连接;
第一标记模块604用于基于第一套接字绑定为所述第一会话连接设置标记;
获取模块606用于基于所述第一会话连接获取来自于客户端的报文信息;
目标模块608用于基于负载均衡算法由多个服务器中确定目标服务器;
转发模块610用于基于所述第一会话连接将所述报文信息转发到所述目标服务器。
图7是根据一示例性实施例示出的一种基于负载均衡的报文传输装置的框图。如图7所示,基于负载均衡的报文传输装置70可应用于客户端,包括:第一协议模块702,第二协议模块704,发送模块706。
第一协议模块702用于与负载均衡设备建立第一套接字绑定;
第二协议模块704用于基于本地IP地址在负载均衡设备和多个服务器之间建立第二套接字绑定;
发送模块706用于在所述第一套接字绑定和所述第二套接字绑定建立成功后,将报文信息发送至所述负载均衡设备以进行报文传输。
图8是根据另一示例性实施例示出的一种基于负载均衡的报文传输装置的框图。如图8所示,基于负载均衡的报文传输装置80可应用于服务器,包括:第二连接模块802,报文模块804,提取模块806,处理模块808。
第二连接模块802用于与负载均衡设备建立第二会话连接;
报文模块804用于基于所述第二会话连接获取报文信息;
提取模块806用于基于第二套接字绑定由所述报文信息中提取客户端源 IP;
处理模块808用于基于客户端源IP对所述报文信息进行处理以生成返回信息。
根据本公开的基于负载均衡的报文传输装置,与所述客户端建立第一会话连接;基于第一套接字绑定为所述第一会话连接设置标记;基于所述第一会话连接获取来自于客户端的报文信息;基于负载均衡算法由多个服务器中确定目标服务器;基于所述第一会话连接将所述报文信息发送到所述目标服务器的方式,能够有效的降低负载均衡器的配置复杂度,使负载均衡设备能够透传客户端IP,提高负载均衡设备的处理效率,减轻服务器计算压力。
图9是根据一示例性实施例示出的一种电子设备的框图。
下面参照图9来描述根据本公开的这种实施方式的电子设备900。图9 显示的电子设备900仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图9所示,电子设备900以通用计算设备的形式表现。电子设备900 的组件可以包括但不限于:至少一个处理单元910、至少一个存储单元920、连接不同系统组件(包括存储单元920和处理单元910)的总线930、显示单元940等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元910执行,使得所述处理单元910执行本说明书中描述的根据本公开各种示例性实施方式的步骤。例如,所述处理单元910可以执行如图2,图3,图 4,图5中所示的步骤。
所述存储单元920可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)9201和/或高速缓存存储单元9202,还可以进一步包括只读存储单元(ROM)9203。
所述存储单元920还可以包括具有一组(至少一个)程序模块9205的程序/实用工具9204,这样的程序模块9205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线930可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备900也可以与一个或多个外部设备900’(例如键盘、指向设备、蓝牙设备等)通信,使得用户能与该电子设备900交互的设备通信,和/或该电子设备900能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口950 进行。并且,电子设备900还可以通过网络适配器960与一个或者多个网络 (例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器960可以通过总线930与电子设备900的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备900使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、 RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,如图8所示,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是 CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本公开实施方式的上述方法。
所述软件产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、 C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN) 或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备 (例如利用因特网服务提供商来通过因特网连接)。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该计算机可读介质实现如下功能:与所述客户端建立第一会话连接;基于第一套接字绑定为所述第一会话连接设置标记;基于所述第一会话连接获取来自于客户端的报文信息;基于负载均衡算法由多个服务器中确定目标服务器;基于所述第一会话连接将所述报文信息发送到所述目标服务器。该计算机可读介质还可实现如下功能:与负载均衡设备建立第一套接字绑定;基于本地IP地址在负载均衡设备和多个服务器之间建立第二套接字绑定;在所述第一套接字绑定和所述第二套接字绑定建立成功后,将报文信息发送至所述负载均衡设备以进行报文传输。该计算机可读介质还可实现如下功能:与负载均衡设备建立第二会话连接;基于所述第二会话连接获取报文信息;基于第二套接字绑定由所述报文信息中提取客户端源 IP;基于客户端源IP对所述报文信息进行处理以生成返回信息。
本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化唯一不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施例的方法。
以上具体地示出和描述了本公开的示例性实施例。应可理解的是,本公开不限于这里描述的详细结构、设置方式或实现方法;相反,本公开意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。

Claims (6)

1.一种基于负载均衡的报文传输方法,可应用于负载均衡设备,其特征在于,包括:
与客户端建立第一会话连接;
基于第一套接字的绑定为所述第一会话连接设置标记;
基于所述第一会话连接获取来自于所述客户端的报文信息,并根据第一套接字的标记给会话打上标记,申请一个路由dst,并将其初始化为loopback;
基于负载均衡算法由多个服务器中确定目标服务器;
基于所述第一会话连接将所述报文信息发送到所述目标服务器;
与所述目标服务器建立第二会话连接;
基于采用客户端IP地址的第二套接字的绑定为所述第二会话连接设置标记;
基于所述第二会话连接获取来自于服务器的返回信息;
基于所述第二会话连接的所述标记将所述返回信息转发至所述客户端。
2.如权利要求1所述的方法,其特征在于,还包括:
基于所述客户端和所述标记的关系生成第一路由关系表。
3.如权利要求1所述的方法,其特征在于,基于所述第二会话连接获取来自于服务器的返回信息,包括:
基于第二套接字绑定由所述目标服务器获取所述报文信息的返回信息。
4.如权利要求1所述的方法,其特征在于,基于所述第二会话连接的所述标记将所述返回信息转发至所述客户端,包括:
提取所述第二会话连接的所述标记;
将所述标记和第一路由关系表进行匹配;
根据匹配结果将所述返回信息转发至所述客户端。
5.如权利要求4所述的方法,其特征在于,根据匹配结果将所述返回信息转发至所述客户端,包括:
根据匹配结果将所述返回信息转发至应用层;
在应用层转发所述返回信息至所述客户端。
6.一种基于负载均衡的报文传输装置,可应用于负载均衡设备,其特征在于,包括:
第一连接模块,用于与客户端建立第一会话连接;
第一标记模块,用于基于第一套接字的绑定为所述第一会话连接设置标记,并根据第一套接字的标记给会话打上标记,申请一个路由dst,并将其初始化为loopback;
获取模块,用于基于所述第一会话连接获取来自于所述客户端的报文信息;
目标模块,用于基于负载均衡算法由多个服务器中确定目标服务器;
转发模块,用于基于所述第一会话连接将所述报文信息转发到所述目标服务器;
第二协议模块,用于基于客户端IP地址在负载均衡设备和多个服务器之间建立第二套接字绑定;
发送模块,用于在所述第一套接字绑定和所述第二套接字绑定建立成功后,将报文信息发送至所述负载均衡设备以进行报文传输。
CN202110851443.1A 2021-07-27 2021-07-27 报文传输方法、装置及系统 Active CN113691589B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110851443.1A CN113691589B (zh) 2021-07-27 2021-07-27 报文传输方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110851443.1A CN113691589B (zh) 2021-07-27 2021-07-27 报文传输方法、装置及系统

Publications (2)

Publication Number Publication Date
CN113691589A CN113691589A (zh) 2021-11-23
CN113691589B true CN113691589B (zh) 2023-12-26

Family

ID=78578003

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110851443.1A Active CN113691589B (zh) 2021-07-27 2021-07-27 报文传输方法、装置及系统

Country Status (1)

Country Link
CN (1) CN113691589B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114650271B (zh) * 2022-03-23 2023-12-05 杭州迪普科技股份有限公司 全局负载dns邻居站点学习方法及装置
CN114827239A (zh) * 2022-05-31 2022-07-29 杭州迪普科技股份有限公司 基于8583协议的双向会话保持方法和装置
CN115022333B (zh) * 2022-06-22 2023-10-24 杭州迪普科技股份有限公司 负载均衡设备的报文转发方法、装置及电子设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1512377A (zh) * 2002-12-31 2004-07-14 联想(北京)有限公司 基于内核中套接字对接的第七层负载均衡的方法
CN103051605A (zh) * 2012-11-21 2013-04-17 国家计算机网络与信息安全管理中心 一种数据包处理方法、装置和系统
CN110995656A (zh) * 2019-11-06 2020-04-10 深信服科技股份有限公司 负载均衡方法、装置、设备及存储介质
CN111556058A (zh) * 2020-04-29 2020-08-18 杭州迪普信息技术有限公司 会话处理方法及装置
CN111837371A (zh) * 2018-01-26 2020-10-27 Idac控股公司 基于增强mptcp的应用移动性
CN112261094A (zh) * 2020-10-10 2021-01-22 厦门网宿有限公司 一种报文处理方法及代理服务器
CN112688878A (zh) * 2020-11-25 2021-04-20 紫光云技术有限公司 一种基于haproxy实现透传源ip的tcp负载均衡的方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080307109A1 (en) * 2007-06-08 2008-12-11 Galloway Curtis C File protocol for transaction based communication
US10693860B2 (en) * 2017-09-08 2020-06-23 Citrix Systems, Inc. RDP proxy support in presence of RDP server farm with session directory or broker

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1512377A (zh) * 2002-12-31 2004-07-14 联想(北京)有限公司 基于内核中套接字对接的第七层负载均衡的方法
CN103051605A (zh) * 2012-11-21 2013-04-17 国家计算机网络与信息安全管理中心 一种数据包处理方法、装置和系统
CN111837371A (zh) * 2018-01-26 2020-10-27 Idac控股公司 基于增强mptcp的应用移动性
CN110995656A (zh) * 2019-11-06 2020-04-10 深信服科技股份有限公司 负载均衡方法、装置、设备及存储介质
CN111556058A (zh) * 2020-04-29 2020-08-18 杭州迪普信息技术有限公司 会话处理方法及装置
CN112261094A (zh) * 2020-10-10 2021-01-22 厦门网宿有限公司 一种报文处理方法及代理服务器
CN112688878A (zh) * 2020-11-25 2021-04-20 紫光云技术有限公司 一种基于haproxy实现透传源ip的tcp负载均衡的方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"DCN中基于前馈神经网络的动态多路径负载均衡方法";左攀;《计算机工程》;全文 *
"TRASH A dynamic LC-trie and hash data structure";Robert Olsson等;《2007 Workshop on High Performance Switching and Routing》;全文 *
μReTi:小尺寸实时嵌入式系统的TCP/IP精简化研究;周海鹰;左德承;侯昆明;胡连亚;周鹏;;计算机工程与设计(08);全文 *

Also Published As

Publication number Publication date
CN113691589A (zh) 2021-11-23

Similar Documents

Publication Publication Date Title
CN113691589B (zh) 报文传输方法、装置及系统
US10812378B2 (en) System and method for improved service chaining
CN111131037B (zh) 基于虚拟网关的数据传输方法、装置、介质与电子设备
US7706367B2 (en) Integrated tunneling and network address translation: performance improvement for an interception proxy server
EP3225014B1 (en) Source ip address transparency systems and methods
CN110708393A (zh) 用于传输数据的方法、装置和系统
CN110489192B (zh) 远程通信方法及装置、电子设备
US10999377B2 (en) Method, device and computer program product for protocol selection
EP2499787A2 (en) Smart client routing
US9619272B1 (en) Virtual machine networking
CN110177047B (zh) 报文发送方法、装置、电子设备和计算机可读存储介质
US9137199B2 (en) Stateful NAT64 function in a distributed architecture
CN114518969A (zh) 进程间通信方法、系统、存储介质和计算机设备
US20030028681A1 (en) Apparatus and method for port sharing among a plurality of server processes
CN110545230B (zh) 用于转发vxlan报文的方法和装置
US10673971B1 (en) Cross-partition messaging using distributed queues
US20210152525A1 (en) Generating an application-based proxy auto configuration
CN111800518B (zh) 客户端ip地址插入方法及装置
CN115022333B (zh) 负载均衡设备的报文转发方法、装置及电子设备
CN109005250B (zh) 用于访问服务端的方法和装置
CN109783409A (zh) 用于处理数据的方法和装置
US11457050B1 (en) Ephemeral data stream service
US11134117B1 (en) Network request intercepting framework for compliance monitoring
CN116418726A (zh) 源路由编码方法、数据包路由方法、装置、设备及介质
CN114520780A (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