发明内容
(一)要解决的技术问题
本发明的目的在于,提供一种IPv4/IPv6流量转换方法及系统,能对IPv4流量和IPv6流量进行均衡,以使得带宽分配更加合理,提高整体带宽占用率。
(二)技术方案
本发明提供一种IPv4/IPv6流量转换方法,包括:
S1,将上行IPv4流量转换为上行IPv6流量;
S2,接收下行IPv6流量,其中,下行IPv6流量为响应上行IPv6流量而产生的流量;
S3,将下行IPv6流量转换为下行IPv4流量。
进一步,步骤S1包括:
判断所有上行IPv4流量中流量超过阈值的地址段,将所述地址段产生的上行IPv4流量转换为上行IPv6流量。
进一步,步骤S1中,当有多个IPv4地址段产生的上行IPv4流量超过阈值时,根据各个IPv4地址段产生的上行IPv4流量所占带宽比重,为各个IPv4地址段分配权重,并将权重最高的IPv4地址段产生的上行IPv4流量转换为上行IPv6流量。
进一步,将权重最高的IPv4地址段产生的上行IPv4流量转换为上行IPv6流量后,降低该IPv4地址段的权重。
进一步,通过哈希函数计算IPv4地址段的与IPv6地址段的哈希值,并将哈希值存储于一哈希环中,其中,IPv6地址段的哈希值与其顺时针方向第一个IPv4地址段的哈希值对应,其中,所述步骤S3中,根据哈希环中IPv6地址段的哈希值与IPv4地址段的哈希值对应关系,得到IPv6地址段与IPv4地址段的对应关系,从而将下行IPv6流量转换为下行IPv4流量。
本发明还提供一种IPv4/IPv6流量转换系统,包括:流量转换模块,用于将上行IPv4流量转换为上行IPv6流量,同时,还用于将下行IPv6流量转换为下行IPv4流量,其中,下行IPv6流量为响应上行IPv6流量而产生的流量。
进一步,系统还包括一流量分析模块,其中,流量分析模块用于判断所有上行IPv4流量中流量超过阈值的地址段,所述流量转换模块将地址段产生的上行IPv4流量转换为上行IPv6流量。
进一步,当有多个IPv4地址段产生的上行IPv4流量超过所述阈值时,流量分析模块根据各个IPv4地址段产生的上行IPv4流量所占带宽比重,为各个IPv4地址段分配权重,流量转换模块将权重最高的IPv4地址段产生的上行IPv4流量转换为上行IPv6流量。
进一步,流量分析模块将权重最高的IPv4地址段产生的上行IPv4流量转换为上行IPv6流量后,降低该IPv4地址段的权重。
进一步,系统还包括一存储模块,用于采用一哈希环存储IPv4地址段的与IPv6地址段的哈希值,其中,IPv6地址段的哈希值与其顺时针方向第一个IPv4地址段的哈希值对应,其中,流量转换模块根据所述哈希环中IPv6地址段的哈希值与IPv4地址段的哈希值对应关系,得到IPv6地址段与IPv4地址段的对应关系,从而将下行IPv6流量转换为下行IPv4流量。
(三)有益效果
本发明具有以下优点:
1、在上行IPv4流量远远大于上行IPv6流量导致IPv4的上行带宽被占用的十分紧张,而IPV6上行带宽占用反而空闲的情况下,将部分IPV4流量转换为IPV6流量,以提高带宽占用率,减少浪费,缓解部分带宽占用紧张等问题。目的是通过流量的转换来实现带宽的合理占用,避免了DNS分流导致的流量相关性,以及CDN分流在出现单点故障需要处理故障转移的问题。
2、本发明还将下行IPv6流量转换为下行IPv4流量,使得根据上行IPv6流量响应的下行IPv6流量能够准确地下发至IPv4地址段中。
3、本发明采用哈希环来存储IPv4地址段和IPv6地址段的对应关系,使得IPv4地址段和IPv6地址段在对应关系上满足单调性,不会发生例如IPv4地址段添加或者删除后,原IPv6地址段无法对应或对应多个IPv4地址段的情况。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
首先介绍本发明一般的应用场景,如图1所示,因同时接入有IPv4网络和IPv6网络,在用户端100会同时产生上行IPv4流量和上行IPv6流量,上行IPv4流量和上行IPv6流量从用户端100分别进入交换机200中,交换机200通过上联口双栈将混合的IPv4流量和上行IPv6流量上传至代理服务器300。
如上图1所示的应用场景中,如果上行IPv4流量远大于上行IPv6流量,导致上行IPv4带宽占用率过大,而上行IPv6带宽占用率不高,这时,需要将部分的IPv4流量转换为IPv6流量,以使得带宽分配更加合理,提高带宽总体占用率。
本发明可以应用在如图1所示的代理服务器300中,以将交换机上传的上行IPv4流量转换为上行IPv6流量。代理服务器300具有3个网卡,如图1所示,网卡三303用于接收交换机上传的混合的IPv4流量和上行IPv6流量,通过本发明将部分上行IPv4流量转换为上行IPv6流量,然后,网卡一301负责转发代理服务器的上行IPv4流量至Internet,网卡二302负责转发代理服务器的上行IPv6流量至Internet400。
图2是图1中代理服务器详细图,代理服务器300包括有本发明提供的IPv4/IPv6流量转换系统,如图2所示,系统包括流量分析模块310和流量转换模块320,其中,代理服务器300接收到交换机200上传的IPv4+IPv6流量后,流量分析模块310分析各个地址段(包括IPv4地址段和IPv6地址段)的带宽占用率,如下表所示:
地址段类型 |
地址段编号 |
带宽占用率(IPv4/IPv6) |
IPv4 |
A |
40% |
IPv4 |
B |
20% |
IPv4 |
C |
10% |
IPv6 |
D |
10% |
IPv6 |
E |
0% |
表一
上表中,A、B、C表示3个IPv4地址段,其产生的流量所占带宽分别为40%、20%、10%,D、E表示2个IP地址段,其产生的流量所占带宽分别为10%和0%,因此,IPv4上行带宽的占用率达到了70%,而IPv6上行带宽占用率仅为10%。假设一实施例中的设定阈值为30%,A地址段的带宽占用率超过了该阈值,因此,需要将A地址段的上行IPv4流量转换为上行IPv6流量。具体地,流量转换模块320可以采用IVI技术将A的地址段映射为E的地址段,从而将A地址段产生的IPv4流量转换为E地址段产生的IPv6流量,转换后的带宽占用率如下表所示:
地址段类型 |
地址段编号 |
带宽占用率(IPv4/IPv6) |
IPv4 |
A |
0% |
IPv4 |
B |
20% |
IPv4 |
C |
10% |
IPv6 |
D |
10% |
IPv6 |
E |
40% |
表二
上表中,A、B、C产生的流量所占带宽分别为0%、20%、10%,D、E表产生的流量所占带宽分别为10%和40%,因此,IPv4上行带宽的占用率达到了40%,而IPv6上行带宽占用率为50%。这样使得IPv4带宽与IPv6带宽达到了相对均衡的状态。
需要说明的是,上述实施例仅为示意性地说明,实际上由于地址段众多,设定的阈值相对较小,可能某个地址段达到10%时系统即认为超过阈值,需要进行地址转换,以实现流量转换。另外,当有多个IPv4地址段产生的上行IPv4流量超过所述阈值时,流量分析模块310根据各个IPv4地址段产生的上行IPv4流量所占带宽比重,为各个IPv4地址段分配权重,流量转换模块优先将权重最高的IPv4地址段产生的上行IPv4流量转换为上行IPv6流量,转换完毕后,降低该IPv4地址段的权重,以转换其他较高权重IPv4地址段的流量。
以上描述本发明转换上行IPv4流量为上行IPv6流量的技术方案,然而,如图1所示,通过转换得到上行IPv6流量中,其源地址是IPv6地址,故Internet响应的下行IPv6流量的目的地址也应上述IPv6地址,为了使该下行IPv6流量能够顺利到达用户端100处,需要将下行IPv6流量的IPv6地址转换为IPv4地址。因此,代理服务器300中流量转换模块320还需要将下行IPv6流量转换为下行IPv4流量,以使得该Internet响应的流量能够准确到达请求的用户端100。
本发明在上行流量转换中,可以将占用率最大的IPv4地址与占用率最小的IPv6地址进行映射,这种地址映射关系是可以通过流量分析模块310通过分析带宽占用率而得到的,如A、E之间的映射。然而,在下行流量的转换中,系统无法获知A、E之间的映射关系。因此,本发明提供的IPv4/IPv6流量转换系统还包括一个存储模块330,其采用采用哈希环存储IPv4地址段的与IPv6地址段的哈希值。如图3所示,哈希环是一个具有232个桶的数据结构,这些桶头尾相连形成一个闭合环形。
本发明通过哈希函数,计算各个IPv4地址段和IPv6地址段的哈希值,并映射到上述的哈希环上。为了使IPv4地址段和IPv6地址段具有对应关系,如图4所示,objectl、object2、object3、object4表示4个IPv6地址段,其对应的哈希值为key1、key2、key3、key4:
Hash(object1)=key1;
Hash(object2)=key2;
Hash(object3)=key3;
Hash(object4)=key4;
NODE1、NODE2、NODE3表示三个IPv4地址段,其对应的哈希值为KEY1、KEY2、KEY3:
Hash(NODE1)=KEY1;
Hash(NODE2)=KEY2;
Hash(NODE3)=KEY3。
本发明将IPv6地址段的哈希值与其顺时针方向第一个IPv4地址段的哈希值对应,如图4所示,objectl、object2、object3、object4按顺时针转动,object1对应到NODE1,object3对应到NODE2中,object2、object4对应到NODE3中,这样即找到了IPv6地址段与IPv4地址段的对应关系。在这样的部署环境中,哈希环是不会变更的,因此,流量转换模块320通过算出IPv6地址段的哈希值就能快速的定位到对应的IPv4地址段中,从而将下行IPv6流量转换为下行IPv4流量。
需要说明的是,上述各个哈希值在哈希环中的存储位置是根据流量分析模块310得到的,例如,流量分析模块310根据表1,得到A、E对应关系,从而将A、E的哈希值按固定的顺序存储在哈希环上,使得E与其顺时针方向第一个Node即为A。这样,流量转换模块320响应的下行IPv6流量得到IPv6地址段,再根据IPv6地址段在存储模块330中匹配到相应的IPv4地址段,从而将下行IPv6流量到下行IPv4流量进行映射。
本发明采用哈希环相比于现有的哈希求余算法,现有的哈希求余算法最为不妥的地方就是在有IPv6地址段的添加或者删除之后会照成大量的IPv6地址段存储位置失效,这样就大大的不满足单调性了。反观本发明的哈希环,如图5所示,如果NODE2出现故障被删除了,那么按照顺时针迁移的方法,object3将会被迁移到NODE3中,这样仅仅是object3的映射位置发生了变化,其它的没有任何的改动。如图6所示,如果往添加一个新的IPv4地址段,即在哈希环上添加一个新的节点NODE4,通过对应的哈希算法得到KEY4,并映射到环中,通过按顺时针迁移的规则,那么object2被迁移到了NODE4中,其它IPv6地址段还保持这原有的存储位置。通综上所述,本发明的哈希环在保持了单调性的同时,还使得数据的迁移达到了最小,这样的算法,避免了大量数据迁移,减小了带宽的压力。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。