CN104780201A - 一种ipvs集群中的数据包处理方法及装置 - Google Patents
一种ipvs集群中的数据包处理方法及装置 Download PDFInfo
- Publication number
- CN104780201A CN104780201A CN201510093806.4A CN201510093806A CN104780201A CN 104780201 A CN104780201 A CN 104780201A CN 201510093806 A CN201510093806 A CN 201510093806A CN 104780201 A CN104780201 A CN 104780201A
- Authority
- CN
- China
- Prior art keywords
- lvs
- packet
- cluster
- ipvs
- sending
- 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.)
- Pending
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种IPVS集群中的数据包处理方法及装置,该方法接收发送给IPVS集群的数据包,基于一致性哈希算法,在所述IPVS集群中确定所述数据包所属的LVS,根据确定出的LVS,对所述数据包进行处理,其中,所述IPVS集群中至少包括两个LVS。通过上述方法,即使IPVS集群中的LVS的数量发生变化,也只会影响IPVS集群中的小部分Session,而不会使IPVS集群中的大部分的Session连接失效,从而,IPVS集群可以只对该小部分Session进行处理即可,提高了IPVS集群的处理效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种因特网协议虚拟服务器(Internet Protocol Virtual Server,IPVS)集群中的数据包处理方法及装置。
背景技术
目前,IPVS集群当与终端进行交互时,可在自身中选定一个Linux虚拟服务器(Linux Virtual Server,LVS),由该LVS与终端建立会话(Session)连接,并基于该Session连接与该终端进行交互,对终端发送的数据包进行处理。同理,IPVS集群中的各LVS在与多个终端进行交互时,可以建立起多个Session连接,其中,每个LVS可分别记录一张Session表,用于维护与自己对应的终端之间的Session。
在现有技术中,一般采用基于静态哈希算法实现等价路由的方式,为各终端发送的数据包选定LVS,进而对各数据包在IPVS集群中进行分发处理。
但是,一旦IPVS集群中的LVS的数量发生变化,则在变化后,重新为各终端发送的数据包选定的LVS可能都会发生改变,由于每个LVS只记录之前与自己对应的终端之间的Session,并没有其他终端的Session,从而导致IPVS集群中的大部分的Session连接失效,因此,IPVS集群中的各LVS要与各终端重新建立Session连接,降低了IPVS集群的处理效率。
发明内容
本申请实施例提供一种IPVS集群中的数据包处理方法及装置,用以解决现有技术中当IPVS集群中的LVS的数量发生变化后,IPVS集群中的大部分的Session连接失效的问题。
本申请实施例提供的一种IPVS集群中的数据包处理方法,包括:
接收发送给IPVS集群的数据包,其中,所述IPVS集群中至少包括两个LVS;
基于一致性哈希算法,在所述IPVS集群中确定所述数据包所属的LVS;
根据确定出的LVS,对所述数据包进行处理。
本申请实施例提供的一种IPVS集群中的数据包处理装置,包括:
接收模块,用于接收发送给IPVS集群的数据包,其中,所述IPVS集群中至少包括两个LVS;
确定模块,用于基于一致性哈希算法,在所述IPVS集群中确定所述数据包所属的LVS;
处理模块,用于根据确定出的LVS,对所述数据包进行处理。
本申请实施例提供一种IPVS集群中的数据包处理方法及装置,该方法接收发送给IPVS集群的数据包,基于一致性哈希算法,在所述IPVS集群中确定所述数据包所属的LVS,根据确定出的LVS,对所述数据包进行处理,其中,所述IPVS集群中至少包括两个LVS。通过上述方法,即使IPVS集群中的LVS的数量发生变化,也只会影响IPVS集群中的小部分Session,而不会使IPVS集群中的大部分的Session连接失效,从而,IPVS集群可以只对该小部分Session进行处理即可,提高了IPVS集群的处理效率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的IPVS集群中的数据包处理过程;
图2示出了一种典型的IPVS集群系统拓扑图;
图3为将LVS映射至预设的哈希环的示意图;
图4为将接收的发送给IPVS集群的数据包映射数据包至预设的哈希环的示意图;
图5为删除某节点后,预设的哈希环上的映射示意图;
图6为增加某节点后,预设的哈希环上的映射示意图;
图7示出了在本申请实施例中,当本地LVS接收到终端发送给IPVS集群的数据包时,对该数据包进行处理的详细过程;
图8示出了在本申请实施例中,当本地LVS接收到其他LVS发送的组播数据包时,所执行处理的详细过程;
图9为本申请实施例提供的IPVS集群中的数据包处理装置结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请实施例提供的IPVS集群中的数据包处理过程,具体包括以下步骤:
S101:接收发送给IPVS集群的数据包,其中,所述IPVS集群中至少包括两个LVS。
本申请实施例提供的IPVS集群中的数据包处理方法的执行主体可以是:IPVS集群中的任一LVS,或者管理IPVS集群的管理服务器。所述的执行主体并不构成对本申请的限定,为了便于描述,本申请实施例均以执行主体是所述IPVS集群中的任一LVS为例进行说明,以下将该执行主体称为:本地LVS。
图2示出了一种典型的IPVS集群系统拓扑图,可以看到,IPVS集群中有多个LVS(只列出其中3个),该多个LVS之间通过路由器和/或交换机相互连接,同时,IPVS集群也通过路由器和/或交换机,以及局域网、广域网等互联网络与各终端连接,并为各终端提供业务服务。
一般的,任一终端当与IPVS集群进行交互时,可向IPVS集群发送数据包(所述的数据包包括但不限于业务数据包、连接数据包等),进而,由IPVS集群在自身中选定一个LVS,然后,将接收到的数据包转发给选定的LVS进行处理,相应的,该LVS可与该终端建立Session连接,此后基于该Session连接与该终端进行交互。类似的,多个终端与IPVS集群之间的交互可以建立起多个Session连接,每个LVS分别维护一张Session表,用于记录与自己对应的终端之间的Session。
考虑到各LVS的负载均衡,在现有技术中,一般采用基于静态哈希算法实现等价路由的方式,为各终端发送的数据包选定LVS,进而对各数据包进行分发。但是,一旦IPVS集群中的LVS的数量发生变化,则在变化后,重新为各终端发送的数据包选定的LVS可能都会发生改变,而且,每个LVS只记录之前与自己对应的终端之间的Session,并没有其他终端的Session,从而导致IPVS集群中的大部分的Session连接失效,因此,IPVS集群中的各LVS要与各终端重新建立Session连接,降低了IPVS集群的处理效率。
在本申请实施例中,本地LVS可以接收到的、发送给IPVS集群的数据包可以是由终端发送的数据包,也可以是由其他LVS发送的组播数据包。
S102:基于一致性哈希算法,在所述IPVS集群中确定所述数据包所属的LVS。
S103:根据确定出的LVS,对所述数据包进行处理。
在本申请实施例中,当本地LVS接收到终端发送的数据包时,可基于一致性哈希算法,确定将该数据包是在本地LVS上进行处理,还是转发至其他LVS上进行处理。
通过上述方法,即使IPVS集群中的LVS的数量发生变化,仅会影响到原有的小部分Session连接,而不用重新建立原有的大部分Session连接,因此,提高了LVS的处理效率。下面进行详细的说明。
在本申请实施例中,对于上述步骤S101,当本地LVS接收发送给IPVS集群的数据包时,在网络层通过分析该数据包的IP头,为该数据包进行路由选择,若IP头中的目的IP地址即为本地LVS的IP地址,可将该数据包递交至协议栈上一层,并可根据IP头中的标识符和片偏移,对该数据包进行IP分片重组,若IP头中的目的IP地址不为本地LVS的IP地址,则将该数据包转发出去或者直接丢弃。同时,本地LVS还可以根据IP头中的目的IP地址,当该目的IP地址为单播地址时,确定该数据包是由终端发送的数据包,当该目的IP地址为组播地址时,由其他LVS发送的组播数据包。
在本申请实施例中,本地LVS在接收终端发送的数据包之前,可以进行一些预处理操作,以便于实现上述步骤S102,而且还可以提高LVS的处理效率。所述预处理操作具体包括:将所述IPVS集群中的各LVS映射至预设的哈希环上,并将映射后的每个LVS确定为所述哈希环上的一个节点。
例如,图3为将LVS映射至预设的哈希环的示意图。可以看到,预设的哈希环的哈希空间为0~232-1,映射后的节点NODE1、NODE2、NODE3分别对应与LVS1、LVS2、LVS3。
当然,上述的预处理操作也可以在步骤S102中执行。
在本申请实施例中,基于上述已完成的预处理操作,对于上述步骤S102,基于一致性哈希算法,在所述IPVS集群中确定所述数据包所属的LVS,具体包括:基于一致性哈希算法,将所述数据包映射至所述哈希环上,并根据映射结果,在所述IPVS集群中确定所述数据包所属的LVS为:以所述数据包为起点,沿所述哈希环的顺时针方向上的第一个节点对应的LVS。
继续用上例进行说明,图4为将接收的发送给IPVS集群的数据包映射数据包至预设的哈希环的示意图。可以看到,图4上示出了6个数据包(数据包1~6)在预设的哈希环上的映射点,虚线表明:虚线起点的数据包的映射点属于该虚线终点的节点;也可以称为:虚线起点的映射点对应的数据包属于该虚线终点的节点对应的LVS,则该数据包后续将由该LVS进行处理。
上述映射具体的操作方式在下面进行说明。
进一步的,基于一致性哈希算法,将所述数据包映射至所述哈希环上,具体包括:提取所述数据包的特征信息,根据所述特征信息,采用一致性哈希算法,将所述数据包映射至所述哈希环上,其中,所述特征信息包括但不限于源IP地址、目的IP地址、源端口、目的端口、传输层协议号。显然,在这里只是列举了一些可用的特征信息,所述的特征信息并不构成对本申请的限定。
更具体的,映射所述数据包具体的操作方式与映射LVS的操作方式一致,可以为:采用选定的一致性哈希函数,计算所述数据包的特征信息的摘要,然后对该摘要作取模运算,取模结果落在所述哈希环上的点即为所述数据包在所述哈希环上的映射值(或称为映射点),其中,所述的取模运算采用的模值可以为所述哈希环的空间大小。可以对使用的一致性哈希函数进行优选,以提高接收到的各数据包在所述哈希环上映射后的平衡性,也即,使接收到的各数据包对应的映射值尽量均匀地分布在所述哈希环上,进而可以提高各LVS的负载均衡程度。类似的,映射LVS时,则是计算LVS的特征信息(如LVS的IP地址等),后续操作与映射数据包相同。
此后,即使IPVS集群中的LVS数量发生变化,也只会影响变化的LVS相关的部分Session。继续用上例进行说明。
假定IPVS集群中的LVS1被删除,则重新映射后的哈希环如图5所示,可以看到,仅有数据包1和数据包2所属的LVS发生改变,也即,只有与数据包1和数据包2相关的Session受到影响,可能要重新建立Session连接,而不会影响到其他的Session,提高了IPVS集群的处理效率。
假定IPVS集群中加入LVS4,则重新映射后的哈希环如图6所示,可以看到,可以看到仅有数据包5所属的LVS发生改变,也即,只有与数据包5相关的Session受到影响,可能要重新建立Session连接,而不会影响到其他的Session,提高了IPVS集群的处理效率。
更进一步的,对于上述步骤S103,根据确定出的LVS,对所述数据包进行处理,具体包括:当确定出的LVS为本地LVS时,将所述数据包在所述本地LVS上进行处理,当确定出的LVS为其他LVS时,将所述数据包转发至所述其他LVS上进行处理。特别的,对于IPVS集群中处于同一冲突域内的LVS,这些LVS之间相互转发数据包可以采用二层转发的方式,也即,直接修改数据包的帧头中的目的物理地址,而不用进行复杂的隧道封装或者三层网络连接。从而,可以提高LVS的数据包转发性能。
在确定终端发送给IPVS集群的数据包由哪个LVS处理后,若该LVS的Session表中尚无与该数据包对应的Session表项时,则为该数据包创建和保存对应的Session表项,若该LVS的Session表中已有与该数据包对应的Session表项时,则基于该Session表项所标识的Session连接对该数据包进行后续处理,例如将该数据包递交至应用层中相应的进程进行处理。
根据上述的说明,在图7中示出了在本申请实施例中,当本地LVS接收到终端发送给IPVS集群的数据包时,对该数据包进行处理的详细过程,具体包括以下步骤:
S701:预先选定在一致性哈希算法中使用的哈希环,并将IPVS集群中的各LVS映射至该哈希环上,将映射后的每个LVS确定为该哈希环上的一个节点。
其中,步骤S701的执行顺序可以改变,使步骤S701在步骤S706之前执行即可。
S702:本地LVS接收到发送给IPVS集群的数据包。
S703:对该数据包进行路由选择和IP分片重组,并确定该数据包是由终端发送的单播数据包,而不是由其他LVS发送的组播数据包。
S704:提取该数据包的特征信息,其中,该特征信息包括但不限于源IP地址、目的IP地址、源端口、目的端口、传输层协议号。
S705:根据提取的特征信息,采用一致性哈希算法,将该数据包映射至该哈希环上。
S706:确定映射后,该数据包在该哈希环上所属的节点,即为:以该数据包为起点,沿该哈希环的顺时针方向上的第一个节点。
S707:当该节点为本地LVS时,将该数据包在本地LVS上进行处理,当该节点为其他LVS时,将该数据包转发至其他LVS上进行处理。
在本申请实施例中,当本地LVS接收到其他LVS发送的组播数据包时,可根据该组播数据包,维护自身所属的IPVS集群的相关信息。具体的,可预先将IPVS集群中的各LVS,以及选定的、尚未加入所述IPVS集群中的LVS加入同一个组播组,组播组中的每个LVS可以按照设定时间间隔向该组播组发送组播数据包以告知自己当前状态。进而,本地LVS当确定接收到的数据包为组播数据包时,可确定发送所述组播数据包的LVS,然后,判断在本地LVS上,是否存在为发送所述组播数据包的LVS创建的定时器,若是,则根据所述定时器,对发送所述组播数据包的LVS进行操作,否则,在本地LVS上,为发送所述组播数据包的LVS创建和启动定时器,并等待下一个组播数据包。
进一步的,根据所述定时器,对发送所述组播数据包的LVS进行操作,具体包括:当所述定时器符合第一指定条件时,将发送所述组播数据包的LVS加入所述IPVS集群中,当所述定时器符合第二指定条件时,将发送所述组播数据包的LVS从所述IPVS集群中删除。
更具体的,对于每个LVS,该LVS都可以为其他LVS分别创建对应的定时器,该定时器用于记录接收到其他LVS所发送的心跳信号的时间间隔,其中,通过路由器和/或交换机互联的各LVS可以以发送组播数据包的方式发送心跳信号。进而,本地LVS可以根据自身已创建的各定时器和预设的指定条件,对IPVS集群中的LVS数量进行变更,实现了IPVS集群自动发现新增的LVS,以及自动删除失效的LVS。
为了便于理解本申请实施例,在此对上述的心跳信号进行说明。对于网络中互联的双方中的一方,为了确定对方是否失效,可以每隔固定时间向对方发送一个很小的数据包(即为心跳信号)进行询问,并启动定时器计时,若对方在预设时限内成功地对该心跳信号进行了响应,则可认为对方尚未失效,可以正常通信。显然,在本申请实施例中,各LVS之间发送的组播数据包的功能与心跳信号的功能类似,用于使各LVS根据接收到组播数据包的判断IPVS集群中的其他LVS是否工作正常,以及判断尚未加入IPVS集群中的其他LVS是否已经符合加入IPVS集群的条件。其中,可预先将IPVS集群中的各LVS和尚未加入IPVS集群的各LVS加入同一个组播组中,则上述的各LVS所发送的组播数据包均是针对该组播组的。
更进一步的,所述的第一指定条件和第二指定条件,并不构成对本申请的限定。例如,在本申请实施例中,所述的第一指定条件可以是:在已设定超时时限的情况下,基于所述定时器,本地LVS已经连续5次在超时时限内,成功接收到了与该定时器对应的LVS所发送的组播数据包;则当定时器符合该第一指定条件时,可将发送该组播数据包的LVS加入IPVS集群中;所述的第二指定条件可以是:在已设定超时时限的情况下,基于所述定时器,本地LVS已经连续3次超时,未成功接收到与该定时器对应的LVS所发送的组播数据包;则当定时器符合该第二指定条件时,可认为发送该组播数据包的LVS已失效,若该LVS已在IPVS集群中,则可将该LVS从IPVS集群中删除。
另外,为了防止不在组播组中的设备向该组播组发送组播包,干扰IPVS集群的正常工作,本地LVS在接收到组播数据包后,还可以对校验发送该组播数据包的LVS是否是组播组中的成员,或者,也可以预先为组播组中的成员发送的组播数据包设置口令或校验字段,仅当校验通过时,才对接收到组播数据包进行后续处理,否则,可以直接丢弃。
根据上述的说明,在图8中示出了在本申请实施例中,当本地LVS接收到其他LVS发送的组播数据包时,所执行处理的详细过程,具体包括以下步骤:
S801:将IPVS集群中的各LVS,以及选定的、尚未加入IPVS集群中的LVS加入同一个组播组。
S802:本地LVS接收到其他LVS发送的组播数据包。
S803:确定发送该组播数据包的LVS。
S804:判断在本地LVS上,是否存在为发送该组播数据包的LVS创建的定时器,若是,则执行步骤S805,否则,执行步骤S806。
S805:当该定时器符合第一指定条件时,将发送该组播数据包的LVS加入IPVS集群中,当该定时器符合第二指定条件时,将发送该组播数据包的LVS从IPVS集群中删除,当该定时器既不符合第一指定条件,也不符合第二指定条件时,等待下一个组播数据包。
S806:在本地LVS上,为发送所述组播数据包的LVS创建定时器,并等待下一个组播数据包。
以上为本申请实施例提供的IPVS集群中的数据包处理方法,基于同样的思路,本申请实施例还提供相应的IPVS集群中的数据包处理装置,如图9所示。
图9为本申请实施例提供的IPVS集群中的数据包处理装置结构示意图,具体包括:
接收模块901,用于接收发送给IPVS集群的数据包,其中,所述IPVS集群中至少包括两个LVS;
确定模块902,用于基于一致性哈希算法,在所述IPVS集群中确定所述数据包所属的LVS;
处理模块903,用于根据确定出的LVS,对所述数据包进行处理。
所述装置还包括:
第一预处理模块904,用于在所述接收模块901接收发送给IPVS集群的数据包之前,将所述IPVS集群中的各LVS映射至预设的哈希环上,将映射后的每个LVS确定为所述哈希环上的一个节点;
第二预处理模块905,用于在所述确定模块902基于一致性哈希算法,在IPVS集群中确定所述数据包所属的LVS之前,对所述数据包进行路由选择和IP分片重组,并确定所述数据包不为组播数据包。
所述确定模块902具体用于,基于一致性哈希算法,将所述数据包映射至所述哈希环上,并根据映射结果,在所述IPVS集群中确定所述数据包所属的LVS为:以所述数据包为起点,沿所述哈希环的顺时针方向上的第一个节点对应的LVS。
所述确定模块902具体用于,提取所述数据包的特征信息,根据所述特征信息,采用一致性哈希算法,将所述数据包映射至所述哈希环上,其中,所述特征信息包括源IP地址、目的IP地址、源端口、目的端口、传输层协议号。
所述处理模块903具体用于,当确定出的LVS为本地LVS时,将所述数据包在所述本地LVS上进行处理,当确定出的LVS为其他LVS时,将所述数据包转发至所述其他LVS上进行处理。
所述装置还包括:
集群模块906,用于将所述IPVS集群中的各LVS,以及选定的、尚未加入所述IPVS集群中的LVS加入同一个组播组,当确定所述数据包为发送给所述组播组的组播数据包时,确定发送所述组播数据包的LVS,判断在本地LVS上,是否存在为发送所述组播数据包的LVS创建的定时器,若是,则根据所述定时器,对发送所述组播数据包的LVS进行操作,否则,在本地LVS上,为发送所述组播数据包的LVS创建定时器,并等待下一个组播数据包。
所述集群模块906具体用于,当为发送所述组播数据包的LVS创建的定时器符合第一指定条件时,将所述LVS加入所述IPVS集群中,当所述定时器符合第二指定条件时,将发送所述LVS从所述IPVS集群中删除。
具体的上述如图9所示的装置可以位于服务器上。
本申请实施例提供一种IPVS集群中的数据包处理方法及装置,该方法接收发送给IPVS集群的数据包,基于一致性哈希算法,在所述IPVS集群中确定所述数据包所属的LVS,根据确定出的LVS,对所述数据包进行处理,其中,所述IPVS集群中至少包括两个LVS。通过上述方法,即使IPVS集群中的LVS的数量发生变化,也只会影响IPVS集群中的小部分Session,而不会使IPVS集群中的大部分的Session连接失效,从而,IPVS集群可以只对该小部分Session进行处理即可,提高了IPVS集群的处理效率。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种IPVS集群中的数据包处理方法,其特征在于,包括:
接收发送给因特网协议虚拟服务器IPVS集群的数据包,其中,所述IPVS集群中至少包括两个Linux虚拟服务器LVS;
基于一致性哈希算法,在所述IPVS集群中确定所述数据包所属的LVS;
根据确定出的LVS,对所述数据包进行处理。
2.如权利要求1所述的方法,其特征在于,接收发送给IPVS集群的数据包之前,所述方法还包括:
将所述IPVS集群中的各LVS映射至预设的哈希环上;
将映射后的每个LVS确定为所述哈希环上的一个节点;
基于一致性哈希算法,在IPVS集群中确定所述数据包所属的LVS之前,所述方法还包括:
对所述数据包进行路由选择和IP分片重组;并
确定所述数据包不为组播数据包。
3.如权利要求2所述的方法,其特征在于,基于一致性哈希算法,在所述IPVS集群中确定所述数据包所属的LVS,具体包括:
基于一致性哈希算法,将所述数据包映射至所述哈希环上;并
根据映射结果,在所述IPVS集群中确定所述数据包所属的LVS为:以所述数据包为起点,沿所述哈希环的顺时针方向上的第一个节点对应的LVS。
4.如权利要求3所述的方法,其特征在于,基于一致性哈希算法,将所述数据包映射至所述哈希环上,具体包括:
提取所述数据包的特征信息,其中,所述特征信息包括源IP地址、目的IP地址、源端口、目的端口、传输层协议号;
根据所述特征信息,采用一致性哈希算法,将所述数据包映射至所述哈希环上。
5.如权利要求1所述的方法,其特征在于,根据确定出的LVS,对所述数据包进行处理,具体包括:
当确定出的LVS为本地LVS时,将所述数据包在所述本地LVS上进行处理;
当确定出的LVS为其他LVS时,将所述数据包转发至所述其他LVS上进行处理。
6.如权利要求2所述的方法,其特征在于,所述方法还包括:
将所述IPVS集群中的各LVS,以及选定的、尚未加入所述IPVS集群中的LVS加入同一个组播组;
当确定所述数据包为发送给所述组播组的组播数据包时,确定发送所述组播数据包的LVS;
判断在本地LVS上,是否存在为发送所述组播数据包的LVS创建的定时器;
若是,则根据所述定时器,对发送所述组播数据包的LVS进行操作;
否则,在本地LVS上,为发送所述组播数据包的LVS创建定时器,并等待下一个组播数据包。
7.如权利要求6所述的方法,其特征在于,根据所述定时器,对发送所述组播数据包的LVS进行操作,具体包括:
当所述定时器符合第一指定条件时,将发送所述组播数据包的LVS加入所述IPVS集群中;
当所述定时器符合第二指定条件时,将发送所述组播数据包的LVS从所述IPVS集群中删除。
8.一种IPVS集群中的数据包处理装置,其特征在于,包括:
接收模块,用于接收发送给IPVS集群的数据包,其中,所述IPVS集群中至少包括两个LVS;
确定模块,用于基于一致性哈希算法,在所述IPVS集群中确定所述数据包所属的LVS;
处理模块,用于根据确定出的LVS,对所述数据包进行处理。
9.如权利要求8所述的装置,其特征在于,所述装置还包括:
第一预处理模块,用于在所述接收模块接收发送给IPVS集群的数据包之前,将所述IPVS集群中的各LVS映射至预设的哈希环上,将映射后的每个LVS确定为所述哈希环上的一个节点;
第二预处理模块,用于在所述确定模块基于一致性哈希算法,在IPVS集群中确定所述数据包所属的LVS之前,对所述数据包进行路由选择和IP分片重组,并确定所述数据包不为组播数据包;
集群模块,用于将所述IPVS集群中的各LVS,以及选定的、尚未加入所述IPVS集群中的LVS加入同一个组播组,当确定所述数据包为发送给所述组播组的组播数据包时,确定发送所述组播数据包的LVS,判断在本地LVS上,是否存在为发送所述组播数据包的LVS创建的定时器,若是,则根据所述定时器,对发送所述组播数据包的LVS进行操作,否则,在本地LVS上,为发送所述组播数据包的LVS创建定时器,并等待下一个组播数据包,当为发送所述组播数据包的LVS创建的定时器符合第一指定条件时,将所述LVS加入所述IPVS集群中,当所述定时器符合第二指定条件时,将发送所述LVS从所述IPVS集群中删除。
10.如权利要求9所述的装置,其特征在于,
所述确定模块具体用于,基于一致性哈希算法,将所述数据包映射至所述哈希环上,并根据映射结果,在所述IPVS集群中确定所述数据包所属的LVS为:以所述数据包为起点,沿所述哈希环的顺时针方向上的第一个节点对应的LVS;和/或,
所述处理模块具体用于,当确定出的LVS为本地LVS时,将所述数据包在所述本地LVS上进行处理,当确定出的LVS为其他LVS时,将所述数据包转发至所述其他LVS上进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510093806.4A CN104780201A (zh) | 2015-03-02 | 2015-03-02 | 一种ipvs集群中的数据包处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510093806.4A CN104780201A (zh) | 2015-03-02 | 2015-03-02 | 一种ipvs集群中的数据包处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104780201A true CN104780201A (zh) | 2015-07-15 |
Family
ID=53621435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510093806.4A Pending CN104780201A (zh) | 2015-03-02 | 2015-03-02 | 一种ipvs集群中的数据包处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104780201A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107046503A (zh) * | 2017-04-24 | 2017-08-15 | 新华三技术有限公司 | 一种报文传输方法、系统及其装置 |
CN107329827A (zh) * | 2017-06-22 | 2017-11-07 | 平安科技(深圳)有限公司 | 支持哈希调度策略的lvs调度方法、设备及存储介质 |
CN107370671A (zh) * | 2016-05-13 | 2017-11-21 | 平安科技(深圳)有限公司 | 一种基于sdn网络的等价路由交互方法及终端 |
CN109617986A (zh) * | 2018-12-27 | 2019-04-12 | 华为技术有限公司 | 一种负载均衡方法及网络设备 |
CN111884942A (zh) * | 2020-08-03 | 2020-11-03 | 航天宏图信息技术股份有限公司 | 组播数据传输方法、装置、接收主机和组播系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102843403A (zh) * | 2011-06-23 | 2012-12-26 | 盛大计算机(上海)有限公司 | 基于分布式文件系统的文件处理方法、系统及客户端 |
CN102882973A (zh) * | 2012-10-11 | 2013-01-16 | 北京邮电大学 | 基于p2p技术的分布式负载均衡系统和方法 |
CN103246659A (zh) * | 2012-02-06 | 2013-08-14 | 阿里巴巴集团控股有限公司 | 键值数据查询的方法和装置 |
CN103501319A (zh) * | 2013-09-18 | 2014-01-08 | 北京航空航天大学 | 一种低延迟的面向小文件的分布式存储系统 |
CN104050270A (zh) * | 2014-06-23 | 2014-09-17 | 成都康赛信息技术有限公司 | 一种基于一致性哈希算法的分布式存储方法 |
-
2015
- 2015-03-02 CN CN201510093806.4A patent/CN104780201A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102843403A (zh) * | 2011-06-23 | 2012-12-26 | 盛大计算机(上海)有限公司 | 基于分布式文件系统的文件处理方法、系统及客户端 |
CN103246659A (zh) * | 2012-02-06 | 2013-08-14 | 阿里巴巴集团控股有限公司 | 键值数据查询的方法和装置 |
CN102882973A (zh) * | 2012-10-11 | 2013-01-16 | 北京邮电大学 | 基于p2p技术的分布式负载均衡系统和方法 |
CN103501319A (zh) * | 2013-09-18 | 2014-01-08 | 北京航空航天大学 | 一种低延迟的面向小文件的分布式存储系统 |
CN104050270A (zh) * | 2014-06-23 | 2014-09-17 | 成都康赛信息技术有限公司 | 一种基于一致性哈希算法的分布式存储方法 |
Non-Patent Citations (2)
Title |
---|
CHUANZHONGDU1: "详解Consistent Hashing算法", 《HTTPS://BLOG.CSDN.NET/CHUANZHONGDU1/ARTICLE/DETAILS/6827762》 * |
许勇: "《全国计算机等级考试立体化应试教程 四级网络工程师》", 28 February 2010, 北京:清华大学出版社 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107370671A (zh) * | 2016-05-13 | 2017-11-21 | 平安科技(深圳)有限公司 | 一种基于sdn网络的等价路由交互方法及终端 |
CN107370671B (zh) * | 2016-05-13 | 2020-05-15 | 平安科技(深圳)有限公司 | 一种基于sdn网络的等价路由交互方法及终端 |
CN107046503A (zh) * | 2017-04-24 | 2017-08-15 | 新华三技术有限公司 | 一种报文传输方法、系统及其装置 |
CN107046503B (zh) * | 2017-04-24 | 2020-08-04 | 新华三技术有限公司 | 一种报文传输方法、系统及其装置 |
CN107329827A (zh) * | 2017-06-22 | 2017-11-07 | 平安科技(深圳)有限公司 | 支持哈希调度策略的lvs调度方法、设备及存储介质 |
WO2018233372A1 (zh) * | 2017-06-22 | 2018-12-27 | 平安科技(深圳)有限公司 | 支持哈希调度策略的lvs调度方法、设备、装置及存储介质 |
CN109617986A (zh) * | 2018-12-27 | 2019-04-12 | 华为技术有限公司 | 一种负载均衡方法及网络设备 |
CN109617986B (zh) * | 2018-12-27 | 2020-08-07 | 华为技术有限公司 | 一种负载均衡方法及网络设备 |
CN111884942A (zh) * | 2020-08-03 | 2020-11-03 | 航天宏图信息技术股份有限公司 | 组播数据传输方法、装置、接收主机和组播系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11381507B2 (en) | Virtual network device and related method | |
US10320683B2 (en) | Reliable load-balancer using segment routing and real-time application monitoring | |
US20170264677A1 (en) | Service Processing Apparatus and Method | |
WO2018058677A1 (zh) | 一种报文处理方法、计算设备以及报文处理装置 | |
CN108718278B (zh) | 一种报文传输方法和装置 | |
CN111092801B (zh) | 数据传输方法及装置 | |
JP2016502370A (ja) | フローテーブルをマッチングするための方法及び装置、並びにスイッチ | |
CN107113241B (zh) | 路由确定方法、网络配置方法以及相关装置 | |
CN103118149B (zh) | 同一租户内服务器间的通信控制方法及网络设备 | |
CN104780201A (zh) | 一种ipvs集群中的数据包处理方法及装置 | |
US10454711B2 (en) | Method for obtaining port path and apparatus | |
CN102857414A (zh) | 一种转发表写入、报文转发方法及装置 | |
CN108600074B (zh) | 组播数据报文的转发方法及装置 | |
US10574570B2 (en) | Communication processing method and apparatus | |
CN104717081A (zh) | 一种网关功能的实现方法及装置 | |
CN103441932A (zh) | 一种主机路由表项生成方法及设备 | |
CN112887229B (zh) | 一种会话信息同步方法及装置 | |
US9197598B2 (en) | MAC address distribution | |
WO2014022350A1 (en) | Connection mesh in mirroring asymmetric clustered multiprocessor systems | |
CN113326101A (zh) | 基于远程直接数据存储的热迁移方法、装置及设备 | |
CN112134776A (zh) | 生成组播转发表项的方法和接入网关 | |
US20120287946A1 (en) | Hash-Based Load Balancing with Flow Identifier Remapping | |
WO2018161795A1 (zh) | 一种路由优先级配置方法、设备以及控制器 | |
CN104601645A (zh) | 一种数据包处理方法及装置 | |
CN104468389A (zh) | 消息的处理方法、服务器和服务器系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150715 |