CN107046503A - 一种报文传输方法、系统及其装置 - Google Patents

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

Info

Publication number
CN107046503A
CN107046503A CN201710271575.0A CN201710271575A CN107046503A CN 107046503 A CN107046503 A CN 107046503A CN 201710271575 A CN201710271575 A CN 201710271575A CN 107046503 A CN107046503 A CN 107046503A
Authority
CN
China
Prior art keywords
hashed value
outgoing interface
address
network equipment
request message
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.)
Granted
Application number
CN201710271575.0A
Other languages
English (en)
Other versions
CN107046503B (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.)
New H3C Technologies Co Ltd
Original Assignee
New H3C 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 New H3C Technologies Co Ltd filed Critical New H3C Technologies Co Ltd
Priority to CN201710271575.0A priority Critical patent/CN107046503B/zh
Publication of CN107046503A publication Critical patent/CN107046503A/zh
Application granted granted Critical
Publication of CN107046503B publication Critical patent/CN107046503B/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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • 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

Landscapes

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

Abstract

本申请提供一种报文传输方法、系统及其装置,该方法包括:第一网络设备接收客户端发送的请求报文,确定请求报文的源IP地址对应的第一散列值,并从与请求报文匹配的转发表项中选择出第一散列值对应的第一出接口,通过第一出接口向与第一出接口对应的虚拟服务器发送请求报文;第二网络设备接收服务器返回的针对请求报文的响应报文,确定响应报文的目的IP地址对应的第二散列值,并从与响应报文匹配的转发表项中选择出第二散列值对应的第二出接口,通过第二出接口向与第二出接口对应的虚拟服务器发送响应报文。通过本申请的技术方案,使得客户端发送的请求报文、与服务器返回的响应报文,被发送给同一个虚拟服务器,从而避免TCP连接的反复重建。

Description

一种报文传输方法、系统及其装置
技术领域
本申请涉及通信技术领域,尤其涉及一种报文传输方法、系统及其装置。
背景技术
随着业务发展,单个服务器的处理能力已无法满足需求,因此,可以在数据中心部署多个服务器,这些服务器共同提供同一应用,如WEB应用等。为了将报文均匀分配给各服务器,可以采用LVS(Linux Virtual Server,Linux虚拟服务器)等负载均衡方案。在负载均衡方案中,LVS在接收到客户端发送的请求报文后,基于负载均衡算法选择一个服务器,并将请求报文发送给该服务器。LVS在接收到该服务器返回的响应报文后,将响应报文发送给客户端。由于LVS基于负载均衡算法选择服务器,从而保证大量报文被均衡地分配给各个服务器。
进一步的,随着业务发展,单个LVS的处理能力也已经无法满足需求,因此还可以部署多个LVS,这些LVS的功能相同,如图1所示。为了保证TCP(Transmission ControlProtocol,传输控制协议)有效带宽,进而提升整个系统效率,需要保证客户端发送的请求报文、服务器返回的响应报文,被发送给同一个LVS,但传统方式并不能实现这种需求。例如,LVS131在接收到客户端发送的请求报文后,将该请求报文发送给服务器111,而针对该请求报文的响应报文,被发送给LVS132。由于该请求报文和该响应报文被发送给不同的LVS,从而导致TCP连接的反复重建,极大的降低了TCP有效带宽,并影响系统效率。
如图1所示,数据中心内部署多个服务器(如服务器111和服务器112),与各服务器连接的网络设备121,假设服务器111的IP地址为127.118.12.11,服务器112的IP地址为127.118.12.12。为数据中心内的服务器部署多个LVS(如LVS131和LVS132),与LVS131连接的网络设备122、与LVS132连接的网络设备123。在外部网络还包括能够访问数据中心内的服务器的客户端,与客户端连接的网络设备124,以客户端141为例,客户端141的IP地址为100.100.1.1。为了在多个服务器之间实现负载均衡,在LVS131和LVS132上配置相同的虚拟IP地址(VIP),该虚拟IP地址作为LVS131的IP地址,也作为LVS132的IP地址,假设虚拟IP地址为200.10.2.2。在LVS131和LVS132上配置虚拟IP地址与服务器111的IP地址、服务器112的IP地址的对应关系,如表1所示。
表1
假设在网络设备121与网络设备122之间建立VXLAN隧道1、在网络设备121与网络设备123之间建立VXLAN隧道2、在网络设备124与网络设备122之间建立VXLAN隧道3、在网络设备124与网络设备123之间建立VXLAN隧道4。网络设备122获取到LVS131的IP地址200.10.2.2后,发送携带IP地址200.10.2.2的第一路由,第一路由通过VXLAN隧道1发送给网络设备121,通过VXLAN隧道3发送给网络设备124。网络设备123获取到LVS132的IP地址200.10.2.2后,发送携带该IP地址200.10.2.2的第二路由,第二路由通过VXLAN隧道2发送给网络设备121,通过VXLAN隧道4发送给网络设备124。
网络设备121通过VXLAN隧道1接收第一路由,通过VXLAN隧道2接收到第二路由后,维护表2所示的转发表项,即针对IP地址200.10.2.2存在两个出接口,这两个出接口形成等价路径。网络设备124通过VXLAN隧道3接收到第一路由,通过VXLAN隧道4接收到第二路由后,维护表3所示的转发表项,即针对IP地址200.10.2.2存在两个出接口,这两个出接口形成等价路径。
表2
表3
IP地址 出接口
200.10.2.2 VXLAN隧道3
200.10.2.2 VXLAN隧道4
网络设备124在接收到客户端141发送的请求报文(目的IP地址为200.10.2.2)后,由于IP地址200.10.2.2对应两个出接口,因此从VXLAN隧道3或者VXLAN隧道4中随机选择或者哈希计算选择一个出接口,假设选择VXLAN隧道3,则请求报文被通过网络设备122发送给LVS131。网络设备121在接收到针对该请求报文的响应报文后,由于IP地址200.10.2.2对应两个出接口,因此从VXLAN隧道1或者VXLAN隧道2中随机选择或者哈希计算选择一个出接口,假设选择VXLAN隧道2,则请求报文被通过网络设备123发送给LVS132。因此,由于随机选择或者哈希计算的算法不一致,导致请求报文和响应报文被发送给不同的LVS。
发明内容
本申请提供一种报文传输方法,应用于负载均衡系统,所述方法包括:
第一网络设备接收客户端发送的请求报文,确定所述请求报文的源IP地址对应的第一散列值,并从与所述请求报文匹配的转发表项中选择出所述第一散列值对应的第一出接口,并通过选择出的所述第一出接口向与所述第一出接口对应的虚拟服务器发送所述请求报文;
第二网络设备接收服务器返回的针对所述请求报文的响应报文,确定所述响应报文的目的IP地址对应的第二散列值,并从与所述响应报文匹配的转发表项中选择出所述第二散列值对应的第二出接口,并通过选择出的所述第二出接口向与所述第二出接口对应的所述虚拟服务器发送所述响应报文。
本申请提供一种负载均衡系统,所述负载均衡系统包括:第一网络设备、第二网络设备、至少两个虚拟服务器;其中:
所述第一网络设备,用于接收客户端发送的请求报文,确定所述请求报文的源IP地址对应的第一散列值,并从与所述请求报文匹配的转发表项中选择出所述第一散列值对应的第一出接口,并通过选择出的所述第一出接口向与所述第一出接口对应的虚拟服务器发送所述请求报文;
所述第二网络设备,用于接收服务器返回的针对所述请求报文的响应报文,确定所述响应报文的目的IP地址对应的第二散列值,并从与所述响应报文匹配的转发表项中选择出所述第二散列值对应的第二出接口,并通过选择出的所述第二出接口向与所述第二出接口对应的所述虚拟服务器发送所述响应报文。
本申请提供一种报文传输装置,应用于第一网络设备,所述装置包括:
接收模块,用于接收客户端发送的请求报文;
确定模块,用于确定所述请求报文的源IP地址对应的第一散列值;
选择模块,用于从与所述请求报文匹配的转发表项中选择出所述第一散列值对应的第一出接口;
发送模块,用于通过选择出的所述第一出接口向与所述第一出接口对应的虚拟服务器发送所述请求报文。
本申请提供一种报文传输装置,应用于第二网络设备,所述装置包括:
接收模块,用于接收服务器返回的针对请求报文的响应报文;
确定模块,用于确定所述响应报文的目的IP地址对应的第二散列值;
选择模块,用于从与所述响应报文匹配的转发表项中选择出所述第二散列值对应的第二出接口;
发送模块,用于通过选择出的所述第二出接口向与所述第二出接口对应的虚拟服务器发送所述响应报文。
基于上述技术方案,本申请实施例中,由于请求报文的源IP地址与响应报文的目的IP地址相同,因此,第一网络设备在向虚拟服务器发送请求报文时,可以对源IP地址进行哈希运算,得到第一散列值,并通过第一散列值对应的出接口发送请求报文,而第二网络设备在向虚拟服务器发送响应报文时,可以将目的IP地址作为源IP地址进行哈希运算,得到第二散列值,并通过第二散列值对应的出接口发送响应报文,这样,就可以使得客户端发送的请求报文、与服务器返回的响应报文,被发送给同一个虚拟服务器,从而避免TCP连接的反复重建,继而提升了TCP有效带宽,系统效率较高。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以本申请实施例的根据这些附图获得其他的附图。
图1是部署多个LVS的负载均衡方案的组网示意图;
图2是本申请一种实施方式中的应用场景示意图;
图3是本申请一种实施方式中的报文传输方法的流程图;
图4是本申请一种实施方式中的报文传输装置的结构图;
图5是本申请一种实施方式中的第一网络设备的硬件结构图;
图6是本申请另一种实施方式中的报文传输装置的结构图;
图7是本申请一种实施方式中的第二网络设备的硬件结构图。
具体实施方式
在本申请使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请实施例中提出一种报文传输方法,该方法可以应用于负载均衡系统,如图2所示,为本申请实施例中提出的应用场景示意图,数据中心内部署有多个服务器(如服务器11和服务器12),与各服务器连接的网络设备21,服务器11的IP地址为127.118.12.11,服务器12的IP地址为127.118.12.12。为数据中心内的服务器部署LVS31和LVS32(以两个为例,实际应用中数量可以更多),与LVS31连接的网络设备22、与LVS32连接的网络设备23。在外部网络中还包括能够访问数据中心内的服务器的客户端41和客户端42,与各客户端连接的网络设备24,后续以客户端41为例,假设客户端41的IP地址为100.100.1.1。
基于上述应用场景,参见图3所示,为本申请实施例中提出的报文传输方法的流程图,该方法可以应用于负载均衡系统,且该方法可以包括以下步骤:
步骤301,第一网络设备接收客户端发送的请求报文,确定该请求报文的源IP地址(即客户端的IP地址)对应的第一散列值,并从与该请求报文匹配的转发表项中选择出该第一散列值对应的第一出接口,并通过选择出的该第一出接口向与该第一出接口对应的LVS发送该请求报文。其中,该第一网络设备可以是与该客户端连接的网络设备,在图2中,第一网络设备是网络设备24。
下面结合图2对请求报文的传输过程进行说明。
客户端41在访问服务器时,可以发送一个请求报文,该请求报文的源IP地址为100.100.1.1,目的IP地址为200.10.2.2。其中,为了使客户端41能够访问服务器,需要将服务器的IP地址通知给客户端41,而通知给客户端41的IP地址是虚拟IP地址200.10.2.2,而不是服务器11的IP地址127.118.12.11,也不是服务器12的IP地址127.118.12.12,对此通知过程不再赘述。
网络设备24在接收到客户端41发送的请求报文后,确定请求报文的源IP地址100.100.1.1对应的第一散列值,并确定与请求报文匹配的转发表项,即与目的IP地址200.10.2.2匹配的转发表项,如表3所示。然后,从与请求报文匹配的转发表项中得到出接口VXLAN隧道3和VXLAN隧道4。然后,从VXLAN隧道3和VXLAN隧道4中选择出第一散列值对应的第一出接口,假设第一出接口为VXLAN隧道3,则网络设备24通过VXLAN隧道3发送请求报文。
网络设备22在接收到请求报文后,将请求报文发送给LVS31,LVS31在接收到请求报文后,通过目的IP地址200.10.2.2查询表1所示的映射表,得到IP地址127.118.12.11和IP地址127.118.12.12。LVS31基于负载均衡算法,选择IP地址127.118.12.11或者IP地址127.118.12.12作为目的地址,以选择IP地址127.118.12.11为例,则将请求报文的目的IP地址修改为127.118.12.11,通过网络设备22将请求报文发送给网络设备21。网络设备21接收到请求报文之后,基于目的IP地址127.118.12.11将请求报文发送给服务器11。
至此,成功将请求报文发送给服务器11,从而完成请求报文的传输过程。
在步骤301中,针对“第一网络设备确定该请求报文的源IP地址对应的第一散列值”的过程,可以包括但不限于:利用预设哈希算法对该请求报文的源IP地址进行哈希运算,得到该源IP地址对应的第一散列值;其中,该预设哈希算法可以包括:能够使哈希运算后得到的第一散列值,小于等于LVS的总数量的哈希算法,而且,第一散列值可以为大于0的正整数。例如,当LVS的总数量为2时,则第一散列值可以为1,第一散列值也可以为2。
例如,网络设备24在确定请求报文的源IP地址100.100.1.1对应的第一散列值时,可以先将源IP地址100.100.1.1转换为数值10010011,当然,网络设备24也可以将源IP地址100.100.1.1转换为其它数值,对此不做限制。然后,网络设备24利用预设哈希算法对10010011进行哈希运算,得到第一散列值,对此预设哈希算法不做限制,只要能够使第一散列值小于等于LVS的总数量2即可,即第一散列值可以是1或者2,后续以得到的第一散列值是1为例。
在步骤301中,针对“第一网络设备从与该请求报文匹配的转发表项中选择出该第一散列值对应的第一出接口”的过程,可以包括但不限于:确定该第一散列值对应的第一位置,按照排序策略对各第一出接口进行排序,根据排序结果将与该第一位置对应的第一出接口选择为第一散列值对应的第一出接口。
例如,网络设备24在从VXLAN隧道3和VXLAN隧道4中选择出第一散列值对应的第一出接口时,确定该第一散列值对应的第一位置,该第一位置表示出接口的位置,如第一散列值1对应第一位置1,其表示第1个出接口,第一散列值2对应第一位置2,其表示第2个出接口。其中,第一散列值与第一位置的关系可以根据实际需要任意配置,只要不同的第一散列值对应不同的第一位置即可,如:第一散列值1对应第一位置1、第一散列值2对应第一位置2、第一散列值3对应第一位置3;或者,第一散列值1对应第一位置2、第一散列值2对应第一位置3、第一散列值3对应第一位置1;对此对应关系不做限制。
然后,网络设备24按照排序策略对VXLAN隧道3和VXLAN隧道4进行排序,该排序策略可以根据实际经验进行任意配置。例如,当排序策略为“按照下一跳IP地址从大到小的顺序排序”时,则可以按照VXLAN隧道3的照下一跳IP地址(即网络设备22的IP地址)、VXLAN隧道4的照下一跳IP地址(即网络设备23的IP地址)从大到小的顺序进行排序。又例如,当排序策略为“按照下一跳IP地址从小到大的顺序排序”时,则可以按照VXLAN隧道3的照下一跳IP地址、VXLAN隧道4的照下一跳IP地址从小到大的顺序进行排序。
假设排序结果为VXLAN隧道3、VXLAN隧道4,第一散列值1对应第一位置1,网络设备24可以选择VXLAN隧道3为第一散列值对应的第一出接口。
步骤302,第二网络设备接收服务器返回的针对请求报文的响应报文,确定响应报文的目的IP地址(即客户端的IP地址)对应的第二散列值,并从与该响应报文匹配的转发表项中选择出该第二散列值对应的第二出接口,并通过选择出的第二出接口向与该第二出接口对应的LVS发送该响应报文。其中,该第二网络设备可以是与服务器连接的网络设备,如图2中的网络设备21。
下面结合图2对响应报文的传输过程进行详细说明。
服务器11在接收到请求报文后,可以返回针对该请求报文的响应报文,且该响应报文的源IP地址为127.118.12.11(即请求报文的目的IP地址,也就是服务器11的IP地址),而目的IP地址为100.100.1.1(即请求报文的源IP地址,也就是客户端41的IP地址)。
网络设备21在接收到服务器11返回的针对请求报文的响应报文后,确定响应报文的目的IP地址100.100.1.1对应的第二散列值,并确定与响应报文匹配的转发表项,如与虚拟IP地址200.10.2.2匹配的转发表项,如表2所示。从与响应报文匹配的转发表项中得到出接口VXLAN隧道1和VXLAN隧道2,并从VXLAN隧道1和VXLAN隧道2中选择出第二散列值对应的第二出接口,假设第二出接口为VXLAN隧道1,网络设备21通过VXLAN隧道1发送响应报文。
网络设备22在接收到响应报文后,将该响应报文发送给LVS31,LVS31在接收到该响应报文后,将该响应报文的源IP地址修改为虚拟IP地址200.10.2.2,并通过网络设备22将响应报文发送给网络设备24。网络设备24接收到响应报文后,基于目的IP地址100.100.1.1将响应报文发送给客户端41。
至此,成功将响应报文发送给客户端41,从而完成响应报文的传输过程。
在上述过程中,响应报文的目的IP地址为100.100.1.1,而网络设备21在确定与响应报文匹配的转发表项时,确定的是与虚拟IP地址200.10.2.2匹配的转发表项,而不是与目的IP地址100.100.1.1匹配的转发表项,其原因在于:
情况一:在网络设备21上配置策略路由,该策略路由用于使网络设备21在接收到来自服务器11/服务器12的报文时,不基于报文的目的IP地址查询转发表项,而是基于虚拟IP地址200.10.2.2查询转发表项。基于此策略路由,网络设备21在接收到响应报文后,确定与虚拟IP地址200.10.2.2匹配的转发表项。
情况二:在网络设备21上配置默认路由,该默认路由用于使网络设备21基于虚拟IP地址200.10.2.2查询转发表项。在此情况下,网络设备21在接收到响应报文之后,可以先通过该响应报文的目的IP地址100.100.1.1查询转发表项,若没有查询到与该目的IP地址100.100.1.1匹配的转发表项,则网络设备21可以基于该默认路由,确定与该虚拟IP地址200.10.2.2匹配的转发表项。
在步骤302中,针对“第二网络设备确定该响应报文的目的IP地址对应的第二散列值”的过程,可以包括但不限于:利用预设哈希算法对该响应报文的目的IP地址进行哈希运算,得到该目的IP地址对应的第二散列值;其中,预设哈希算法可以包括:能够使哈希运算后得到的第二散列值,小于等于LVS的总数量的哈希算法,且第二散列值可以为大于0的正整数。例如,当LVS的总数量为2时,则第二散列值可以为1,第二散列值也可以为2。
例如,网络设备21在确定响应报文的目的IP地址100.100.1.1对应的第二散列值时,可以先将目的IP地址100.100.1.1转换为数值10010011,当然,网络设备21也可以将目的IP地址100.100.1.1转换为其它数值,对此不做限制。然后,网络设备21利用预设哈希算法对10010011进行哈希运算,得到第二散列值,对此预设哈希算法不做限制,只要能够使第二散列值小于等于LVS的总数量2即可,即第二散列值可以是1或者2,后续以得到的第二散列值是1为例。
在步骤302中,针对“第二网络设备从与该响应报文匹配的转发表项中选择出该第二散列值对应的第二出接口”的过程,可以包括但不限于:确定该第二散列值对应的第二位置,按照排序策略对各第二出接口进行排序,根据排序结果将与该第二位置对应的第二出接口选择为第二散列值对应的第二出接口。
例如,网络设备21在从VXLAN隧道1和VXLAN隧道2中选择出第二散列值对应的第二出接口时,确定该第二散列值对应的第二位置,该第二位置表示出接口的位置,如第二散列值1对应第二位置1,其表示第1个出接口,第二散列值2对应第二位置2,其表示第2个出接口。其中,第二散列值与第二位置的关系可以根据实际需要任意配置,只要不同的第二散列值对应不同的第二位置即可,如:第二散列值1对应第二位置1、第二散列值2对应第二位置2、第二散列值3对应第二位置3;或者,第二散列值1对应第二位置2、第二散列值2对应第二位置3、第二散列值3对应第二位置1;对此对应关系不做限制。
然后,网络设备21按照排序策略对VXLAN隧道1和VXLAN隧道2进行排序,该排序策略可以根据实际经验进行任意配置。例如,当排序策略为“按照下一跳IP地址从大到小的顺序排序”时,则可以按照VXLAN隧道1的照下一跳IP地址(即网络设备22的IP地址)、VXLAN隧道2的照下一跳IP地址(即网络设备23的IP地址)从大到小的顺序进行排序。又例如,当排序策略为“按照下一跳IP地址从小到大的顺序排序”时,则可以按照VXLAN隧道1的照下一跳IP地址、VXLAN隧道2的照下一跳IP地址从小到大的顺序进行排序。
假设排序结果为VXLAN隧道1、VXLAN隧道2,第二散列值1对应第二位置1,网络设备21可以选择VXLAN隧道1为第二散列值对应的第二出接口。
在一个例子中,网络设备21上配置的排序策略、预设哈希算法、散列值与位置的对应关系,与网络设备24上配置的排序策略、预设哈希算法、散列值与位置的对应关系相同。基于此,由于响应报文的目的IP地址100.100.1.1与请求报文的源IP地址100.100.1.1相同,且预设哈希算法相同,因此,利用预设哈希算法确定出的第二散列值以及利用预设哈希算法确定出的第一散列值相同。
由于散列值与位置的对应关系相同,因此,第二散列值对应的第二位置与第一散列值对应的第一位置相同,如二者均为1,其可以表示第1个出接口。
由于排序策略相同,因此,第二位置对应的第二出接口的下一跳与第一位置对应的第一出接口的下一跳相同,即二者的下一跳是同一个网络设备。
综上所述,在通过第一出接口发送请求报文、并通过第二出接口发送响应报文时,该请求报文和该响应报文可以被发送给同一个LVS。
例如,假设第二散列值和第一散列值均为1,第二位置和第一位置均为1,排序策略为“按照下一跳IP地址从大到小的顺序排序”,网络设备22的IP地址大于网络设备23的IP地址,则:由于VXLAN隧道3的下一跳IP地址大于VXLAN隧道4的下一跳IP地址,因此,第一位置对应的第一出接口为VXLAN隧道3,且请求报文被通过网络设备22发送给LVS31;由于VXLAN隧道1的下一跳IP地址大于VXLAN隧道2的下一跳IP地址,因此,第二位置对应的第二出接口为VXLAN隧道1,且响应报文被通过网络设备22发送给LVS31。
在一个例子中,针对网络设备24确定源IP地址对应的第一散列值,选择第一出接口,并通过第一出接口发送请求报文的过程,可以通过网络设备24的交换芯片实现。而且,可以在交换芯片上配置预设哈希算法,该预设哈希算法用于对源IP地址进行哈希处理,因此,交换芯片在接收到请求报文后,从该请求报文中解析出源IP地址,并对该源IP地址进行哈希处理,得到第一散列值。
针对网络设备21确定目的IP地址对应的第二散列值,选择第二出接口,并通过第二出接口发送响应报文的过程,可以通过网络设备21的交换芯片实现。而且,可以在交换芯片上配置预设哈希算法(与网络设备24的交换芯片配置的算法相同),该预设哈希算法用于对源IP地址进行哈希处理。由于这个预设哈希算法用于对源IP地址进行哈希处理,网络设备21的交换芯片是对目的IP地址进行哈希处理,因此还可以在交换芯片上配置哈希策略,该哈希策略用于使交换芯片将响应报文中的目的IP地址作为输出给预设哈希算法的源IP地址,基于此,交换芯片在接收到响应报文后,从响应报文中解析出目的IP地址,并将该目的IP地址作为源IP地址,对目的IP地址进行哈希处理,得到第二散列值。
当然,网络设备24的交换芯片、网络设备21的交换芯片上配置的预设哈希算法,也可以用于对目的IP地址进行哈希处理,处理过程类似,不再赘述。
基于上述技术方案,本申请实施例中,由于请求报文的源IP地址与响应报文的目的IP地址相同,因此,第一网络设备在向LVS发送请求报文时,可以对源IP地址进行哈希运算,得到第一散列值,并通过第一散列值对应的出接口发送请求报文,而第二网络设备在向LVS发送响应报文时,可以将目的IP地址作为源IP地址进行哈希运算,得到第二散列值,并通过第二散列值对应的出接口发送响应报文,这样,就可以使得客户端发送的请求报文、与服务器返回的响应报文,被发送给同一个LVS,从而避免TCP连接的反复重建,继而提升了TCP有效带宽,系统效率较高。
基于与上述方法同样的申请构思,本申请实施例中还提出一种负载均衡系统,所述负载均衡系统包括:第一网络设备(与客户端连接的网络设备)、第二网络设备(与服务器连接的网络设备)、至少两个LVS;其中:
所述第一网络设备,用于接收客户端发送的请求报文,确定所述请求报文的源IP地址对应的第一散列值,并从与所述请求报文匹配的转发表项中选择出所述第一散列值对应的第一出接口,并通过选择出的所述第一出接口向与所述第一出接口对应的LVS发送所述请求报文;
所述第二网络设备,用于接收服务器返回的针对所述请求报文的响应报文,确定所述响应报文的目的IP地址对应的第二散列值,并从与所述响应报文匹配的转发表项中选择出所述第二散列值对应的第二出接口,并通过选择出的所述第二出接口向与所述第二出接口对应的所述LVS发送所述响应报文。
在一个例子中,所述第一网络设备,具体用于在确定所述请求报文的源IP地址对应的第一散列值的过程中,利用预设哈希算法对所述请求报文的源IP地址进行哈希运算,得到所述源IP地址对应的第一散列值;
所述第二网络设备,具体用于在确定所述响应报文的目的IP地址对应的第二散列值的过程中,利用所述预设哈希算法对所述响应报文的目的IP地址进行哈希运算,得到所述目的IP地址对应的第二散列值;
其中,所述预设哈希算法包括:能够使哈希运算后得到的第一散列值或者第二散列值,小于等于LVS的总数量的哈希算法。
在一个例子中,所述第一网络设备,具体用于在从与所述请求报文匹配的转发表项中选择出所述第一散列值对应的第一出接口的过程中,确定所述第一散列值对应的第一位置,按照排序策略对各第一出接口进行排序,根据排序结果将与第一位置对应的第一出接口选择为所述第一散列值对应的第一出接口;
所述第二网络设备,具体用于在从与所述响应报文匹配的转发表项中选择出所述第二散列值对应的第二出接口的过程中,确定所述第二散列值对应的第二位置,按照排序策略对各第二出接口进行排序,根据排序结果将与第二位置对应的第二出接口选择为所述第二散列值对应的第二出接口。
基于与上述方法同样的申请构思,本申请实施例中还提出一种报文传输装置,所述报文传输装置可以应用于第一网络设备(与客户端连接的网络设备),如图4所示,为报文传输装置的结构图,所述报文传输装置可以包括:
接收模块401,用于接收客户端发送的请求报文;
确定模块402,用于确定所述请求报文的源IP地址对应的第一散列值;
选择模块403,用于从与所述请求报文匹配的转发表项中选择出所述第一散列值对应的第一出接口;
发送模块404,用于通过选择出的所述第一出接口向与所述第一出接口对应的LVS发送所述请求报文。
所述确定模块402,具体用于在确定所述请求报文的源IP地址对应的第一散列值的过程中,利用预设哈希算法对所述请求报文的源IP地址进行哈希运算,得到所述源IP地址对应的第一散列值;其中,所述预设哈希算法包括:能够使哈希运算后得到的第一散列值,小于等于LVS的总数量的哈希算法;
所述选择模块403,具体用于在从与所述请求报文匹配的转发表项中选择出所述第一散列值对应的第一出接口的过程中,确定所述第一散列值对应的第一位置,按照排序策略对各第一出接口进行排序,根据排序结果将与第一位置对应的第一出接口选择为所述第一散列值对应的第一出接口。
本申请实施例提供的第一网络设备,从硬件层面而言,其硬件架构示意图具体可以参见图5所示。包括:机器可读存储介质和处理器,其中:
机器可读存储介质:存储指令代码。
处理器:与机器可读存储介质通信,读取和执行机器可读存储介质中存储的所述指令代码,实现本申请上述示例公开的报文传输操作。
这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(RadomAccess Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
基于与上述方法同样的申请构思,本申请实施例中还提出一种报文传输装置,所述报文传输装置可以应用于第二网络设备(与服务器连接的网络设备),如图6所示,为报文传输装置的结构图,所述报文传输装置可以包括:
接收模块601,用于接收服务器返回的针对请求报文的响应报文;
确定模块602,用于确定所述响应报文的目的IP地址对应的第二散列值;
选择模块603,用于从与所述响应报文匹配的转发表项中选择出所述第二散列值对应的第二出接口;
发送模块604,用于通过选择出的所述第二出接口向与所述第二出接口对应的LVS发送所述响应报文。
所述确定模块602,具体用于在确定所述响应报文的目的IP地址对应的第二散列值的过程中,利用预设哈希算法对所述响应报文的目的IP地址进行哈希运算,得到所述目的IP地址对应的第二散列值;所述预设哈希算法包括:能够使哈希运算后得到的第二散列值,小于等于LVS的总数量的哈希算法;
所述选择模块603,具体用于在从与所述响应报文匹配的转发表项中选择出所述第二散列值对应的第二出接口的过程中,确定所述第二散列值对应的第二位置,按照排序策略对各第二出接口进行排序,根据排序结果将与第二位置对应的第二出接口选择为所述第二散列值对应的第二出接口。
本申请实施例提供的第二网络设备,从硬件层面而言,其硬件架构示意图具体可以参见图7所示。包括:机器可读存储介质和处理器,其中:
机器可读存储介质:存储指令代码。
处理器:与机器可读存储介质通信,读取和执行机器可读存储介质中存储的所述指令代码,实现本申请上述示例公开的报文传输操作。
这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(RadomAccess Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可以采用完全硬件实施例、完全软件实施例、或者结合软件和硬件方面的实施例的形式。而且,本申请可以采用在一个或者多个其中包含有计算机可用程序代码的计算机可用存储介质(可以包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种报文传输方法,应用于负载均衡系统,其特征在于,所述方法包括:
第一网络设备接收客户端发送的请求报文,确定所述请求报文的源IP地址对应的第一散列值,并从与所述请求报文匹配的转发表项中选择出所述第一散列值对应的第一出接口,并通过选择出的所述第一出接口向与所述第一出接口对应的虚拟服务器发送所述请求报文;
第二网络设备接收服务器返回的针对所述请求报文的响应报文,确定所述响应报文的目的IP地址对应的第二散列值,并从与所述响应报文匹配的转发表项中选择出所述第二散列值对应的第二出接口,并通过选择出的所述第二出接口向与所述第二出接口对应的所述虚拟服务器发送所述响应报文。
2.根据权利要求1所述的方法,其特征在于,
所述第一网络设备确定所述请求报文的源IP地址对应的第一散列值的过程,具体包括:所述第一网络设备利用预设哈希算法对所述请求报文的源IP地址进行哈希运算,得到所述源IP地址对应的第一散列值;
所述第二网络设备确定所述响应报文的目的IP地址对应的第二散列值的过程,具体包括:所述第二网络设备利用所述预设哈希算法对所述响应报文的目的IP地址进行哈希运算,得到所述目的IP地址对应的第二散列值;
其中,所述预设哈希算法包括:能够使哈希运算后得到的第一散列值或者第二散列值,小于等于虚拟服务器的总数量的哈希算法。
3.根据权利要求1所述的方法,其特征在于,
所述第一网络设备从与所述请求报文匹配的转发表项中选择出所述第一散列值对应的第一出接口的过程,具体包括:所述第一网络设备确定所述第一散列值对应的第一位置,按照排序策略对各第一出接口进行排序,根据排序结果将与第一位置对应的第一出接口选择为所述第一散列值对应的第一出接口;
所述第二网络设备从与所述响应报文匹配的转发表项中选择出所述第二散列值对应的第二出接口的过程,具体包括:所述第二网络设备确定所述第二散列值对应的第二位置,按照排序策略对各第二出接口进行排序,根据排序结果将与第二位置对应的第二出接口选择为所述第二散列值对应的第二出接口。
4.一种负载均衡系统,其特征在于,所述负载均衡系统包括:第一网络设备、第二网络设备、至少两个虚拟服务器;其中:
所述第一网络设备,用于接收客户端发送的请求报文,确定所述请求报文的源IP地址对应的第一散列值,并从与所述请求报文匹配的转发表项中选择出所述第一散列值对应的第一出接口,并通过选择出的所述第一出接口向与所述第一出接口对应的虚拟服务器发送所述请求报文;
所述第二网络设备,用于接收服务器返回的针对所述请求报文的响应报文,确定所述响应报文的目的IP地址对应的第二散列值,并从与所述响应报文匹配的转发表项中选择出所述第二散列值对应的第二出接口,并通过选择出的所述第二出接口向与所述第二出接口对应的所述虚拟服务器发送所述响应报文。
5.根据权利要求4所述的系统,其特征在于,
所述第一网络设备,具体用于在确定所述请求报文的源IP地址对应的第一散列值的过程中,利用预设哈希算法对所述请求报文的源IP地址进行哈希运算,得到所述源IP地址对应的第一散列值;
所述第二网络设备,具体用于在确定所述响应报文的目的IP地址对应的第二散列值的过程中,利用所述预设哈希算法对所述响应报文的目的IP地址进行哈希运算,得到所述目的IP地址对应的第二散列值;
其中,所述预设哈希算法包括:能够使哈希运算后得到的第一散列值或者第二散列值,小于等于虚拟服务器的总数量的哈希算法。
6.根据权利要求4所述的系统,其特征在于,
所述第一网络设备,具体用于在从与所述请求报文匹配的转发表项中选择出所述第一散列值对应的第一出接口的过程中,确定所述第一散列值对应的第一位置,按照排序策略对各第一出接口进行排序,根据排序结果将与第一位置对应的第一出接口选择为所述第一散列值对应的第一出接口;
所述第二网络设备,具体用于在从与所述响应报文匹配的转发表项中选择出所述第二散列值对应的第二出接口的过程中,确定所述第二散列值对应的第二位置,按照排序策略对各第二出接口进行排序,根据排序结果将与第二位置对应的第二出接口选择为所述第二散列值对应的第二出接口。
7.一种报文传输装置,应用于第一网络设备,其特征在于,所述装置包括:
接收模块,用于接收客户端发送的请求报文;
确定模块,用于确定所述请求报文的源IP地址对应的第一散列值;
选择模块,用于从与所述请求报文匹配的转发表项中选择出所述第一散列值对应的第一出接口;
发送模块,用于通过选择出的所述第一出接口向与所述第一出接口对应的虚拟服务器发送所述请求报文。
8.根据权利要求7所述的装置,其特征在于,
所述确定模块,具体用于在确定所述请求报文的源IP地址对应的第一散列值的过程中,利用预设哈希算法对所述请求报文的源IP地址进行哈希运算,得到所述源IP地址对应的第一散列值;其中,所述预设哈希算法包括:能够使哈希运算后得到的第一散列值,小于等于虚拟服务器的总数量的哈希算法;
所述选择模块,具体用于在从与所述请求报文匹配的转发表项中选择出所述第一散列值对应的第一出接口的过程中,确定所述第一散列值对应的第一位置,按照排序策略对各第一出接口进行排序,根据排序结果将与第一位置对应的第一出接口选择为所述第一散列值对应的第一出接口。
9.一种报文传输装置,应用于第二网络设备,其特征在于,所述装置包括:
接收模块,用于接收服务器返回的针对请求报文的响应报文;
确定模块,用于确定所述响应报文的目的IP地址对应的第二散列值;
选择模块,用于从与所述响应报文匹配的转发表项中选择出所述第二散列值对应的第二出接口;
发送模块,用于通过选择出的所述第二出接口向与所述第二出接口对应的虚拟服务器发送所述响应报文。
10.根据权利要求9所述的装置,其特征在于,
所述确定模块,具体用于在确定所述响应报文的目的IP地址对应的第二散列值的过程中,利用预设哈希算法对所述响应报文的目的IP地址进行哈希运算,得到所述目的IP地址对应的第二散列值;其中,所述预设哈希算法包括:能够使哈希运算后得到的第二散列值,小于等于虚拟服务器的总数量的哈希算法;
所述选择模块,具体用于在从与所述响应报文匹配的转发表项中选择出所述第二散列值对应的第二出接口的过程中,确定所述第二散列值对应的第二位置,按照排序策略对各第二出接口进行排序,根据排序结果将与第二位置对应的第二出接口选择为所述第二散列值对应的第二出接口。
CN201710271575.0A 2017-04-24 2017-04-24 一种报文传输方法、系统及其装置 Active CN107046503B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710271575.0A CN107046503B (zh) 2017-04-24 2017-04-24 一种报文传输方法、系统及其装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710271575.0A CN107046503B (zh) 2017-04-24 2017-04-24 一种报文传输方法、系统及其装置

Publications (2)

Publication Number Publication Date
CN107046503A true CN107046503A (zh) 2017-08-15
CN107046503B CN107046503B (zh) 2020-08-04

Family

ID=59545129

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710271575.0A Active CN107046503B (zh) 2017-04-24 2017-04-24 一种报文传输方法、系统及其装置

Country Status (1)

Country Link
CN (1) CN107046503B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108111385A (zh) * 2017-12-28 2018-06-01 新华三技术有限公司 报文转发方法和装置
CN111614540A (zh) * 2020-06-04 2020-09-01 北京百度网讯科技有限公司 用于传递信息的方法及装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101106528A (zh) * 2007-07-31 2008-01-16 杭州华三通信技术有限公司 基于安全设备的报文转发系统和方法以及安全设备
CN102255816A (zh) * 2011-08-18 2011-11-23 华为数字技术有限公司 负载分担方法及装置
CN102307136A (zh) * 2011-07-06 2012-01-04 杭州华三通信技术有限公司 报文处理方法及其装置
CN102932270A (zh) * 2012-11-27 2013-02-13 无锡城市云计算中心有限公司 支持网络安全业务的负载均衡方法和设备
CN103024819A (zh) * 2012-06-15 2013-04-03 中国人民解放军国防科学技术大学 基于用户终端ip的第三代移动通信核心网数据分流方法
CN104780201A (zh) * 2015-03-02 2015-07-15 新浪网技术(中国)有限公司 一种ipvs集群中的数据包处理方法及装置
CN106210058A (zh) * 2016-07-13 2016-12-07 成都知道创宇信息技术有限公司 一种多核并行的反向代理方法
CN106375237A (zh) * 2016-09-28 2017-02-01 郑州云海信息技术有限公司 一种基于Intel 82599万兆网卡的Hash函数Key值筛选方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101106528A (zh) * 2007-07-31 2008-01-16 杭州华三通信技术有限公司 基于安全设备的报文转发系统和方法以及安全设备
CN102307136A (zh) * 2011-07-06 2012-01-04 杭州华三通信技术有限公司 报文处理方法及其装置
CN102255816A (zh) * 2011-08-18 2011-11-23 华为数字技术有限公司 负载分担方法及装置
CN103024819A (zh) * 2012-06-15 2013-04-03 中国人民解放军国防科学技术大学 基于用户终端ip的第三代移动通信核心网数据分流方法
CN102932270A (zh) * 2012-11-27 2013-02-13 无锡城市云计算中心有限公司 支持网络安全业务的负载均衡方法和设备
CN104780201A (zh) * 2015-03-02 2015-07-15 新浪网技术(中国)有限公司 一种ipvs集群中的数据包处理方法及装置
CN106210058A (zh) * 2016-07-13 2016-12-07 成都知道创宇信息技术有限公司 一种多核并行的反向代理方法
CN106375237A (zh) * 2016-09-28 2017-02-01 郑州云海信息技术有限公司 一种基于Intel 82599万兆网卡的Hash函数Key值筛选方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108111385A (zh) * 2017-12-28 2018-06-01 新华三技术有限公司 报文转发方法和装置
CN108111385B (zh) * 2017-12-28 2021-04-27 新华三技术有限公司 报文转发方法和装置
CN111614540A (zh) * 2020-06-04 2020-09-01 北京百度网讯科技有限公司 用于传递信息的方法及装置
CN111614540B (zh) * 2020-06-04 2022-04-08 北京百度网讯科技有限公司 用于传递信息的方法及装置

Also Published As

Publication number Publication date
CN107046503B (zh) 2020-08-04

Similar Documents

Publication Publication Date Title
CN103179433B (zh) 一种视频内容提供系统、方法及服务节点
CN106325998A (zh) 一种基于云计算的应用部署的方法和装置
CN104811392B (zh) 用于处理网络中的资源访问请求的方法和系统
CN103929492A (zh) 业务链负载均衡方法及其装置、系统
CN104462370A (zh) 分布式任务调度系统及方法
CN108259347A (zh) 一种报文传输方法和装置
CN101741907A (zh) 一种均衡服务器负载的方法、系统和主服务器
CN107547391A (zh) 一种报文传输方法和装置
CN108737224A (zh) 一种基于微服务架构的报文处理方法和装置
CN105791381A (zh) 访问控制的方法及装置
CN109525684A (zh) 报文转发方法和装置
CN111431730B (zh) 一种业务处理方法、系统、计算机设备及可读介质
CN109976907A (zh) 任务分配方法和系统、电子设备、计算机可读介质
CN108683722A (zh) 一种数据传输的方法、esb平台及客户端
CN108418752B (zh) 一种聚合组的创建方法和装置
CN108337116A (zh) 消息保序方法及装置
CN104811383A (zh) 一种报文转发方法和设备
CN104219159B (zh) 基于虚拟局域网的虚拟接口进行链路聚合方法和装置
CN107046503A (zh) 一种报文传输方法、系统及其装置
CN104267985A (zh) 一种软件加载方法和设备
CN106302861A (zh) 一种地址分配方法及装置
CN106790489A (zh) 并行数据加载方法和系统
JP2023545985A (ja) エッジ・コンピューティング環境におけるタスク・フローの管理
CN104951238A (zh) 用于在分布式虚拟环境中管理数据存储的方法和装置
CN106534247B (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