CN113179295B - 报文处理方法及装置 - Google Patents

报文处理方法及装置 Download PDF

Info

Publication number
CN113179295B
CN113179295B CN202110363446.0A CN202110363446A CN113179295B CN 113179295 B CN113179295 B CN 113179295B CN 202110363446 A CN202110363446 A CN 202110363446A CN 113179295 B CN113179295 B CN 113179295B
Authority
CN
China
Prior art keywords
session
request message
port number
board
port
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
CN202110363446.0A
Other languages
English (en)
Other versions
CN113179295A (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 CN202110363446.0A priority Critical patent/CN113179295B/zh
Publication of CN113179295A publication Critical patent/CN113179295A/zh
Application granted granted Critical
Publication of CN113179295B publication Critical patent/CN113179295B/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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • 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/141Setup of application sessions

Abstract

本说明书提供一种报文处理方法及装置,业务板接收一个会话的第一个请求报文时,根据该请求报文新建会话,进行负载均衡,并从该业务板对应的端口集合中确定并保存该会话绑定的端口号,将该请求报文的源端口号修改为绑定的端口号,修改后交换板将报文发送出去;在收到服务器的响应报文的情况下,交换板根据响应报文的目的端口,确定处理该响应报文的业务板,业务板修改响应报文后,交换板将报文转发出去。通过将请求报文的源端口号修改为业务板对应的端口集合中的一个端口,因为不同业务板对应的端口集合不重合,在收到响应报文时交换板就可以通过响应报文的目的端口号所属于的端口集合,将该响应报文发送给存有该响应报文对应的会话的业务板。

Description

报文处理方法及装置
技术领域
本说明书涉及计算机应用技术领域,尤其涉及一种报文处理方法及装置。
背景技术
在实际应用中,在用户客户端与用于向用户提供服务的服务器集群之间的通信链路上,通常设置了应用交付设备。应用交付设备负责为用户客户端建立与维护会话,并从服务器集群中选择一个服务器与用户客户端的一个会话绑定,以便由该会话绑定的服务器处理用户客户端发起的与该会话匹配的请求报文,返回响应报文。
具体而言,应用交付设备一般包括若干个业务板及交换板,其对报文进行处理的过程一般是:交换板接收用户客户端发送的请求报文,确定用于为该请求报文对应的会话绑定服务器的业务板,并将请求报文发给该业务板。业务板接收到请求报文后,先根据报文的五元组匹配会话,在未匹配到会话的情况下,建立该请求报文对应的会话;从连接的服务器集群中确定与该会话绑定的服务器,根据确定的服务器的地址对该请求报文进行目的地址转换,并存储该会话与绑定的服务器的对应关系;在匹配到会话的情况下,根据匹配到的会话与绑定的服务器的对应关系,对该请求报文进行目的地址转换。业务板将转换完的请求报文发送给交换板,交换板将该请求报文转发给对应的服务器。服务器收到请求报文后,会生成响应报文,该响应报文需要经过业务板的源地址转换后,发送给用户客户端。
目前需要交换板将响应报文发送给存有该响应报文对应的会话的业务板,但是缺少一种有效的实现方法。
发明内容
为克服相关技术中存在的无法将响应报文发送给存有该响应报文对应的会话的业务板问题,本说明书提供了一种报文处理方法及装置。
根据本说明书实施例的第一方面,提供一种报文处理方法,应用于应用交付设备,所述应用交付设备具有交换板与至少两个业务板,预先确定每个业务板对应的端口集合,不同业务板对应的端口集合不重合;所述方法包括:
交换板接收用户客户端发送的请求报文,并将所述请求报文发送给所述请求报文对应的业务板,以便该业务板在所述应用交付设备对接的服务器集群中确定处理所述请求报文的服务器;
该业务板若确定不存在匹配于所述请求报文的会话,则根据所述请求报文新建会话;根据预设的负载均衡算法,从所述服务器集群中选择一个服务器作为与该会话绑定的服务器;将所述业务板对应的端口集合中的一个端口号作为该会话绑定的端口号;
该业务板将所述请求报文的目的地址,修改为匹配于所述请求报文的会话所绑定的服务器的地址;将所述请求报文的源端口号修改为该会话绑定的端口号;将修改后的所述请求报文发送给所述交换板进行对外转发;
所述交换板接收所述服务器集群中任一服务器发送的响应报文,确定所述响应报文的目的端口号所对应的业务板,并将所述响应报文发送给确定的业务板;
该确定的业务板确定匹配于所述响应报文的会话,将所述响应报文的目的端口号修改为该会话对应的请求报文修改前的源端口号;将所述响应报文的源地址修改为所述应用交付设备的地址;将修改后的所述响应报文发送给所述交换板进行对外转发。
根据本说明书实施例的第二方面,提供一种报文处理装置,应用于应用交付设备,所述应用交付设备具有交换板与至少两个业务板,预先确定每个业务板对应的端口集合,不同业务板对应的端口集合不重合;所述装置包括:
请求报文接收模块,交换板接收用户客户端发送的请求报文,并将所述请求报文发送给所述请求报文对应的业务板,以便该业务板在所述应用交付设备对接的服务器集群中确定处理所述请求报文的服务器;
新建会话模块,该业务板若确定不存在匹配于所述请求报文的会话,则根据所述请求报文新建会话;根据预设的负载均衡算法,从所述服务器集群中选择一个服务器作为与该会话绑定的服务器;将所述业务板对应的端口集合中的一个端口号作为该会话绑定的端口号;
请求报文修改模块,该业务板将所述请求报文的目的地址,修改为匹配于所述请求报文的会话所绑定的服务器的地址;将所述请求报文的源端口号修改为该会话绑定的端口号;将修改后的所述请求报文发送给所述交换板进行对外转发;
响应报文接收模块,所述交换板接收所述服务器集群中任一服务器发送的响应报文,确定所述响应报文的目的端口号所对应的业务板,并将所述响应报文发送给确定的业务板;
响应报文转发模块,该确定的业务板确定匹配于所述响应报文的会话,将所述响应报文的目的端口号修改为该会话对应的请求报文修改前的源端口号;将所述响应报文的源地址修改为所述应用交付设备的地址;将修改后的所述响应报文发送给所述交换板进行对外转发。
根据本说明书实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本说明书实施例第一方面所述的报文处理方法。
根据本说明书实施例的第四方面,提供一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本说明书实施例第一方面所述的报文处理方法。
本说明书一个或多个实施例中,业务板接收一个会话的第一个请求报文时,根据该请求报文新建会话,进行负载均衡,并从该业务板对应的端口集合中确定并保存该会话绑定的端口号,将该请求报文的源端口号修改为绑定的端口号,修改后交换板将报文发送出去;在收到服务器的响应报文的情况下,交换板根据响应报文的目的端口,确定处理该响应报文的业务板,业务板修改响应报文后,交换板将报文转发出去。通过将请求报文的源端口号修改为业务板对应的端口集合中的一个端口,因为不同业务板对应的端口集合不重合,在收到响应报文时交换板就可以通过响应报文的目的端口号所属于的端口集合,将该响应报文发送给存有该响应报文对应的会话的业务板。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。
图1是本说明书根据一实施例示出的一种端口配置方法的流程图。
图2是本说明书根据一实施例示出的在交换板数量变化时的端口配置方法的流程图。
图3是本说明书根据一示例性实施例示出的一种报文处理方法的流程图。
图4是本说明书根据一示例性实施例示出的一种报文处理装置的框图。
图5本说明书根据一示例性实施例示出的一种报文处理装置所在计算机设备的一种硬件结构图。
具体实施方式
应用交付设备对接了一个或多个服务器集群,负责服务器集群中服务器的负载均衡。为了使得应用交付设备可以处理大流量的报文,有的应用交付设备为机框式设备,这种应用交付设备一般包括业务板、交换板和主控板等,其中主控板上装载有控制台,负责管理这个机框式设备以及与提供机框式设备与技术人员的交互界面,交换板上有交换芯片,负责接收及发送报文,业务板负责对报文进行负载均衡。应用交付设备是用户客户端和服务器之间的桥梁,应用交付设备可以接收用户客户端发送的请求报文,并根据一定的负载均衡算法,将请求报文转发给服务器集群中被选中的服务器,应用交付设备也可以接收服务器发送的针对请求报文的响应报文,并将该响应报文转发给用户客户端。
应用交付设备处理请求报文的过程一般是:交换板接收用户客户端发送的请求报文,并将用户客户端发送的请求报文发送给一个业务板,其中,交换板决定发送给哪一个业务板的方法可以是:计算请求报文五元组的哈希值,并根据哈希值选择对应的业务板;或者交换板根据请求报文的五元组匹配会话,在未匹配到会话的情况下,根据该请求报文新建会话,并根据一定的负载均衡算法,确定该会话绑定的业务板,并将该报文发给该业务板,这两种方法都能保证:该请求报文对应的会话的所有请求报文,都能发送到同一业务板,从而保证会话不中断。业务板接收到请求报文后,会查找是否存在与该请求报文的五元组匹配的会话,在查找不到的情况下,业务板根据该请求报文新建会话,并根据预设的负载均衡算法,从对接的服务器集群中选择一个服务器作为该会话绑定的服务器,并记录该会话与绑定的服务器的对应关系;以及,请求报文的目的地址一般都是应用交付设备的地址,为了使得绑定的服务器可以接收到请求报文,需要将请求报文的目的地址修改为绑定的服务器的地址。在业务板修改完成后,将修改完成的报文发送给交换板,交换板根据报文的目的地址,将请求报文转发给对应的服务器,以完成服务器与用户客户端的交互。
应用交付设备接收到服务器针对请求报文的响应报文后,业务板需要根据响应报文的五元组匹配会话,如果业务板匹配不到该响应报文对应的会话,就会认为该响应报文是错误报文,将丢弃该响应报文。因此,在业务板的数量大于1的情况下,需要保证交换板收到响应报文后,能将该响应报文发送给存有该响应报文对应的会话的业务板,否则将会导致该响应报文被丢包,用户客户端的服务中断。
为了防止由于响应报文被业务板丢弃,本说明书一个或多个实施例中,业务板接收一个会话的第一个请求报文时,根据该请求报文新建会话,进行负载均衡,并从该业务板对应的端口集合中确定并保存该会话绑定的端口号,将该请求报文的源端口号修改为绑定的端口号,修改后交换板将报文发送出去;在收到服务器的响应报文的情况下,交换板根据响应报文的目的端口,确定处理该响应报文的业务板,业务板修改响应报文后,交换板将报文转发出去。通过将请求报文的源端口号修改为业务板对应的端口集合中的一个端口,因为不同业务板对应的端口集合不重合,在收到响应报文时交换板就可以通过响应报文的目的端口号所属于的端口集合,将该响应报文发送给存有该响应报文对应的会话的业务板。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
接下来对本说明书实施例进行详细说明。
本说明书的一个或多个实施例公开了一种报文处理方法,该方法应用于应用交付设备,所述应用交付设备具有交换板与至少两个业务板;预先确定每个业务板对应的端口集合,不同业务板对应的端口集合不重合。
其中,应用交付设备与技术人员的交互界面上一般有端口分配控制开关,或者交换板分流开关,只有在技术人员将开关打开的情况下,才会确定每个业务板对应的端口集合,并进行后续流程。
确定每个业务板对应的端口集合的方法可以是:确定一个可分配的端口集合,并将可分配的端口集合随机分配给各个业务板,这种情况下,各个业务板对应的端口集合中的端口数量可能是连续的,也可能是不连续的,不同业务板对应的端口集合中的端口的数量,可能是相同的,也可能是不同的。
确定每个业务板对应的端口集合的方法也可以是:根据每个业务板对应的端口掩码,为每个业务板分配端口集合,每个业务板对应的端口集合中端口号的尾数,与端口掩码的尾数相同。其中,端口掩码一般有如下的结构0xfff6,不同业务板端口掩码的最后一位不相同。
为了提高后续确定会话绑定的端口号的效率,端口集合为连续的端口范围,确定每个业务板对应的端口集合的方法还可以是:在预设条件下,确定当前业务板数量N;将总端口集合分为N个连续的端口范围,并将N个端口范围作分别分配给N个业务板。其中,预设条件可以是,技术人员开启交换板分流开关或业务板数量发生变化。
具体而言,如图1所示,图1示出了一种端口配置的方法,在预设条件是技术人员开启交换板分流开关的情况下,包括以下步骤:
步骤101,技术人员打开业务板分流开关。其中,该方法中只有该步骤是技术人员执行的,其他步骤均为主控板执行的。
步骤102,主控板判断是否存在业务板,在存在业务板的情况下,执行步骤103,在不存在业务板的情况下,在下一个执行周期到达时,继续执行步骤102。
步骤103,主控板判断业务板的数量是否为1,在业务板的数量为1的情况下,执行步骤104,在业务板的数量不为1的情况下,执行步骤105。
步骤104,为该业务板分配端口范围1500-65535。其中,只有一个业务板的情况下,不需要执行本说明书公开的报文处理方法。为该业务板分配端口范围为1500-65535的原因是,不可见的虚拟端口范围为0-65535,而有些1500以下的端口是设定好的业务处理端口,例如80是http协议处理的端口,443是https协议处理的端口,这些端口不能随意分配。
步骤105,将总端口集合均分为N个端口范围,并分配给N个业务板。其中,N为业务板的总数,总端口集合是部分端口的集合,也可以是可以分配的全部端口的集合(1500-65535),在总端口集合为1500-65535的情况下,均分的方法可以是:前N-1块的业务板中第k个业务板的端口范围是(1500 + (k-1) [64035/N],1500 + k [64035/N]),其中[]代表取整,最后一个业务板的端口范围是(1500 +(N-1) [64035/N], 65535)。这样能使得端口分配较为均匀。
此外,如图2所示,图2示出了一种在交换板数量变化时的端口配置方法的流程图,在预设条件是业务板数量发生变化的情况下,包括以下步骤:
步骤201,获取当前业务板数量Mi。其中,步骤201-步骤203均为主控板所执行的步骤。
步骤202,判断Mi是否等于Mi-1,也就是说判断当前周期所获取的业务板数量与上一执行周期所获取的业务板数量是否相同。在是的情况下,在下一个时钟到达时,执行步骤201,在否的情况下,执行步骤203。
步骤203,执行端口配置流程。
为每个业务板分配具有多个端口的端口集合的原因是,业务板根据预设的负载均衡算法,为收到的请求报文对应的会话绑定服务器,当两个不同会话对应的请求报文的源IP地址相同的情况下,如果这两个会话对应的请求报文发往了一个服务器,为了使得服务器能区分开这两个会话对应的请求报文,需要保证不同会话对应的请求报文的源端口不同,所以为了防止这种情况发生影响正常通信,需要保证每个端口集合内至少有两个端口,而不能仅仅是一个端口。
如图3所示,图3是本说明书根据一示例性实施例示出的一种报文处理方法的流程图,包括以下步骤:
步骤301,交换板接收用户客户端发送的请求报文,并将所述请求报文发送给所述请求报文对应的业务板,以便该业务板在所述应用交付设备对接的服务器集群中确定处理所述请求报文的服务器。
如前所述,交换板在接收到请求报文的情况下,可以根据计算的五元组的哈希值,确定发往的业务板,也可以根据请求报文对应的会话来确定其发往的业务板。由于交换板的不同接口连接了不同方向的上游设备,换言之,可以报文进入设备的接口来区分请求报文与响应报文。
步骤303,该业务板若确定不存在匹配于所述请求报文的会话,则根据所述请求报文新建会话;根据预设的负载均衡算法,从所述服务器集群中选择一个服务器作为与该会话绑定的服务器;将所述业务板对应的端口集合中的一个端口号作为该会话绑定的端口号。
在大部分情况下,不存在匹配于所述请求报文的会话表明该请求报文为一个会话的首个报文。业务板确定是否存在匹配与该请求报文的会话,可以根据请求报文的五元组查找的。业务板新建会话可以是根据请求报文的五元组新建会话,此外,新建会话时要保存该请求报文的源端口,以使得可以根据会话替换响应报文的目的端口,使得报文可以正常转发给用户客户端。预设的负载均衡算法可以是轮询算法、最小连接数算法等等,也可以根据实际需求选取合适的负载均衡算法,本说明书在此不做限制。
从业务板对应的端口集合中选择端口号的方法可以根据预先分配端口号的逻辑来决定,例如,如果是根据端口掩码分配端口集合,那么选择端口的方法可以是,产生一个随机数,检测该随机数端口号的尾数与该业务板的端口掩码是否一致,一致的情况下,将该随机数作为会话绑定的端口号,不一致的情况下,取该随机数的下一位,判断该下一位的尾数是否与端口掩码一致,以此类推,直至找到与该业务板的端口掩码尾数一致的端口号,将该端口号作为该会话绑定的端口号。
会使用前述方法的原因是,在实际使用中,一般是先决定交换板的逻辑,再决定业务板的逻辑,而使用端口掩码这种方法,在收到响应报文时,交换板仅需将响应报文的目的端口的后四位与各个端口掩码做与运算,即可确定和该响应报文尾数相同的端口掩码,也就能确定保存有该响应报文对应的会话的业务板。而这种方法对于业务板来说,可能需要尝试多次,才能确定绑定端口号,分配端口的效率较低,因此为了提高业务板的处理效率,充分利用所有的端口,提出了另一种处理逻辑。分配端口的方法是将总端口集合分为N个连续的端口范围,在这种情况下,将所述业务板对应的端口集合中的一个端口号作为该会话绑定的端口号,可以包括:在该业务板对应的端口集合内生成随机数,将该随机数作为该会话绑定的端口号;或者,将所述业务板对应的端口集合中的一个端口号作为该会话绑定的端口号,也可以包括:获取该业务板接收的上一请求报文转换后的源端口号,将该源端口号的下一个端口号作为该会话绑定的端口号。
此外,为了使得后续该会话的请求报文可以被修改为同一端口号,以及业务板可以为收到的响应报文匹配到会话,需要记录该会话绑定的端口号。
步骤305,该业务板将所述请求报文的目的地址,修改为匹配于所述请求报文的会话所绑定的服务器的地址;将所述请求报文的源端口号修改为该会话绑定的端口号;将修改后的所述请求报文发送给所述交换板进行对外转发。
其中,修改请求报文的目的地址的同时,也可以修改请求报文的目的端口号。
步骤307,所述交换板接收所述服务器集群中任一服务器发送的响应报文,确定所述响应报文的目的端口号所对应的业务板,并将所述响应报文发送给确定的业务板。
确定响应报文的目的端口号所对应的业务板,换言之,在端口是将总端口集合分为N个连续的端口范围时,可以通过确定响应报文的目的端口所属的端口集合,确定该响应报文应该发往的业务板。
步骤309,该确定的业务板确定匹配于所述响应报文的会话,将所述响应报文的目的端口号修改为该会话对应的请求报文修改前的源端口号;将所述响应报文的源地址修改为所述应用交付设备的地址;将修改后的所述响应报文发送给所述交换板进行对外转发。
此外,如果是将总端口集合分为N个连续的端口范围,也为维修人员提供了一种检测业务板是否正常工作的方法。具体而言,在技术人员开启交换板分流开关的情况下,当应用交付设备的一个交换板存在故障,将导致该交换板无法正常处理请求报文,造成部分服务的中断。这种情况下,由于每个业务板对应的端口范围固定,可以通过抓取服务器集群的流量,分析系服务器响应报文的目的端口在那个端口范围内出现业务中断的情况,这样就能根据业务板和端口范围的对应关系,确定故障的业务板。
与前述方法的实施例相对应,本说明书还提供了报文处理装置及其所应用的终端的实施例。
如图4所示,图4是本说明书根据一示例性实施例示出的一种报文处理装置的框图,所述装置应用于应用交付设备,所述应用交付设备具有交换板与至少两个业务板,预先确定每个业务板对应的端口集合,不同业务板对应的端口集合不重合;所述装置包括:
请求报文接收模块410,交换板接收用户客户端发送的请求报文,并将所述请求报文发送给所述请求报文对应的业务板,以便该业务板在所述应用交付设备对接的服务器集群中确定处理所述请求报文的服务器。
新建会话模块420,该业务板若确定不存在匹配于所述请求报文的会话,则根据所述请求报文新建会话;根据预设的负载均衡算法,从所述服务器集群中选择一个服务器作为与该会话绑定的服务器;将所述业务板对应的端口集合中的一个端口号作为该会话绑定的端口号。
请求报文修改模块430,该业务板将所述请求报文的目的地址,修改为匹配于所述请求报文的会话所绑定的服务器的地址;将所述请求报文的源端口号修改为该会话绑定的端口号;将修改后的所述请求报文发送给所述交换板进行对外转发。
响应报文接收模块440,所述交换板接收所述服务器集群中任一服务器发送的响应报文,确定所述响应报文的目的端口号所对应的业务板,并将所述响应报文发送给确定的业务板。
响应报文转发模块450,该确定的业务板确定匹配于所述响应报文的会话,将所述响应报文的目的端口号修改为该会话对应的请求报文修改前的源端口号;将所述响应报文的源地址修改为所述应用交付设备的地址;将修改后的所述响应报文发送给所述交换板进行对外转发。
其中,将所述业务板对应的端口集合中的一个端口号作为该会话绑定的端口号,具体包括:获取该业务板接收的上一请求报文转换后的源端口号,将该源端口号的下一个端口号作为该会话绑定的端口号。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
如图5所示,图5示出了实施例报文处理装置所在计算机设备的一种硬件结构图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本说明书实施例第一方面所述的报文处理方法。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

Claims (10)

1.一种报文处理方法,其特征在于,应用于应用交付设备,所述应用交付设备具有交换板与至少两个业务板,预先确定每个业务板对应的端口集合,不同业务板对应的端口集合不重合;所述应用交付设备对接了一个或多个服务器集群,用于所述一个或多个服务器集群的负载均衡;所述方法包括:
交换板接收用户客户端发送的请求报文,并将所述请求报文发送给所述请求报文对应的业务板,以便该业务板在所述应用交付设备对接的服务器集群中确定处理所述请求报文的服务器;
该业务板若确定不存在匹配于所述请求报文的会话,则根据所述请求报文新建会话;根据预设的负载均衡算法,从所述服务器集群中选择一个服务器作为与该会话绑定的服务器;将所述业务板对应的端口集合中的一个端口号作为该会话绑定的端口号;
该业务板将所述请求报文的目的地址,修改为匹配于所述请求报文的会话所绑定的服务器的地址;将所述请求报文的源端口号修改为该会话绑定的端口号;将修改后的所述请求报文发送给所述交换板进行对外转发;
所述交换板接收所述服务器集群中任一服务器发送的响应报文,确定所述响应报文的目的端口号所对应的业务板,并将所述响应报文发送给确定的业务板;
该确定的业务板确定匹配于所述响应报文的会话,将所述响应报文的目的端口号修改为该会话对应的请求报文修改前的源端口号;将所述响应报文的源地址修改为所述应用交付设备的地址;将修改后的所述响应报文发送给所述交换板进行对外转发。
2.如权利要求1所述方法,其特征在于,将所述业务板对应的端口集合中的一个端口号作为该会话绑定的端口号,具体包括:
在该业务板对应的端口集合内生成随机数,将该随机数作为该会话绑定的端口号。
3.如权利要求1所述方法,其特征在于,将所述业务板对应的端口集合中的一个端口号作为该会话绑定的端口号,具体包括:
获取该业务板接收的上一请求报文转换后的源端口号,将该源端口号的下一个端口号作为该会话绑定的端口号。
4.如权利要求1所述方法,其特征在于,所述端口集合为连续的端口范围。
5.如权利要求4所述方法,其特征在于,确定每个业务板对应的端口集合,具体包括:
在预设条件下,确定当前业务板数量N;
将总端口集合分为N个连续的端口范围,并将N个端口范围作分别分配给N个业务板。
6.如权利要求5所述方法,其特征在于,所述预设条件,具体包括:
技术人员开启交换板分流开关或业务板数量发生变化。
7.一种报文处理装置,其特征在于,应用于应用交付设备,所述应用交付设备具有交换板与至少两个业务板,预先确定每个业务板对应的端口集合,不同业务板对应的端口集合不重合;所述应用交付设备对接了一个或多个服务器集群,用于所述一个或多个服务器集群的负载均衡;所述装置包括:
请求报文接收模块,交换板接收用户客户端发送的请求报文,并将所述请求报文发送给所述请求报文对应的业务板,以便该业务板在所述应用交付设备对接的服务器集群中确定处理所述请求报文的服务器;
新建会话模块,该业务板若确定不存在匹配于所述请求报文的会话,则根据所述请求报文新建会话;根据预设的负载均衡算法,从所述服务器集群中选择一个服务器作为与该会话绑定的服务器;将所述业务板对应的端口集合中的一个端口号作为该会话绑定的端口号;
请求报文修改模块,该业务板将所述请求报文的目的地址,修改为匹配于所述请求报文的会话所绑定的服务器的地址;将所述请求报文的源端口号修改为该会话绑定的端口号;将修改后的所述请求报文发送给所述交换板进行对外转发;
响应报文接收模块,所述交换板接收所述服务器集群中任一服务器发送的响应报文,确定所述响应报文的目的端口号所对应的业务板,并将所述响应报文发送给确定的业务板;
响应报文转发模块,该确定的业务板确定匹配于所述响应报文的会话,将所述响应报文的目的端口号修改为该会话对应的请求报文修改前的源端口号;将所述响应报文的源地址修改为所述应用交付设备的地址;将修改后的所述响应报文发送给所述交换板进行对外转发。
8.如权利要求7所述装置,其特征在于,将所述业务板对应的端口集合中的一个端口号作为该会话绑定的端口号,具体包括:
获取该业务板接收的上一请求报文转换后的源端口号,将该源端口号的下一个端口号作为该会话绑定的端口号。
9.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1至6中任一项所述的报文处理方法。
10.一种计算机设备,其特征在于,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1至6中任一项所述的报文处理方法。
CN202110363446.0A 2021-04-02 2021-04-02 报文处理方法及装置 Active CN113179295B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110363446.0A CN113179295B (zh) 2021-04-02 2021-04-02 报文处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110363446.0A CN113179295B (zh) 2021-04-02 2021-04-02 报文处理方法及装置

Publications (2)

Publication Number Publication Date
CN113179295A CN113179295A (zh) 2021-07-27
CN113179295B true CN113179295B (zh) 2022-11-01

Family

ID=76923031

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110363446.0A Active CN113179295B (zh) 2021-04-02 2021-04-02 报文处理方法及装置

Country Status (1)

Country Link
CN (1) CN113179295B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115277213B (zh) * 2022-07-29 2023-07-14 北京天融信网络安全技术有限公司 报文转板处理方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016106972A1 (zh) * 2014-12-29 2016-07-07 中兴通讯股份有限公司 一种数据交换方法、多框互联系统及其框设备
CN105991442A (zh) * 2015-04-30 2016-10-05 杭州迪普科技有限公司 报文转发方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101895472B (zh) * 2010-07-16 2013-11-06 华为技术有限公司 流业务负载分担方法和处理方法以及相应的设备和系统
US8996614B2 (en) * 2011-02-09 2015-03-31 Citrix Systems, Inc. Systems and methods for nTier cache redirection
CN104580550A (zh) * 2014-12-30 2015-04-29 北京天融信科技有限公司 分布式系统中多业务板分流时的nat处理方法及设备
CN105991481B (zh) * 2015-05-19 2019-06-07 杭州迪普科技股份有限公司 一种报文转发方法及装置
CN105376252B (zh) * 2015-12-02 2019-06-14 福建星网锐捷网络有限公司 分布式架构数据通信设备及其认证方法、业务板
CN109120732B (zh) * 2018-07-18 2022-03-11 北京天融信网络安全技术有限公司 分布式nat系统中的业务板热插方法、系统及存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016106972A1 (zh) * 2014-12-29 2016-07-07 中兴通讯股份有限公司 一种数据交换方法、多框互联系统及其框设备
CN105991442A (zh) * 2015-04-30 2016-10-05 杭州迪普科技有限公司 报文转发方法及装置

Also Published As

Publication number Publication date
CN113179295A (zh) 2021-07-27

Similar Documents

Publication Publication Date Title
US8364163B2 (en) Method, system and apparatus for connecting a plurality of client machines to a plurality of servers
CN107592237B (zh) 一种混合云的资源监控方法及系统
CN106657180B (zh) 用于云服务的信息传输方法、装置、终端设备及系统
CN110442610A (zh) 负载均衡的方法、装置、计算设备以及介质
CN108933829A (zh) 一种负载均衡方法及装置
JP4190455B2 (ja) 負荷分散装置及びプログラム
CN107181636B (zh) 一种负载均衡系统中的健康检查方法及装置
US20210048956A1 (en) Storage system, and method and apparatus for allocating storage resources
CN109818997A (zh) 一种负载均衡方法、系统及存储介质
CN111431730A (zh) 一种业务处理方法、系统、计算机设备及可读介质
CN113179295B (zh) 报文处理方法及装置
CN106992893A (zh) 路由器的管理方法及装置
CN112749015B (zh) 负载均衡方法及装置
CN113452778A (zh) 会话保持方法、装置、设备、系统及存储介质
CN111416851A (zh) 在多个负载均衡器之间进行会话同步的方法和负载均衡器
CN115277816B (zh) 服务适配方法、设备、系统以及计算机可读介质
EP3481099B1 (en) Load balancing method and associated device
US20150326683A1 (en) Dynamic generation of proxy connections
CN113687940B (zh) 负载均衡方法、装置及物理机
CN116264538A (zh) 数据处理方法、装置、设备及计算机存储介质
CN113986995A (zh) 请求分发方法、装置、存储介质及电子设备
CN114401382A (zh) 机器调度方法、装置及电子设备
US20210337041A1 (en) Orchestrated proxy service
CN111416852A (zh) 在多个负载均衡器之间进行会话同步的方法和负载均衡器
CN114979128A (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