[发明专利]一种数据中心网络流负载均衡的方法有效
申请号: | 201711372360.4 | 申请日: | 2017-12-19 |
公开(公告)号: | CN108337183B | 公开(公告)日: | 2021-10-26 |
发明(设计)人: | 唐艺舟;田臣 | 申请(专利权)人: | 南京大学 |
主分类号: | H04L12/803 | 分类号: | H04L12/803 |
代理公司: | 南京钟山专利代理有限公司 32252 | 代理人: | 戴朝荣 |
地址: | 210093 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据中心 网络 负载 均衡 方法 | ||
1.一种数据中心网络流负载均衡的方法,其特征是:利用网络设备中广泛部署的ECMP方法,在主机发送方和主机接收方分别对同一条网络流中的每个数据包进行处理,使包均匀分散在等价的不同链路上,以实现更细粒度的负载均衡;所述的主机发送方的处理方法是为每个包生成随机数,以此修改唯一确定元组,并把随机数嵌入在包头的某个字段中;所述的主机接收方的处理方法是从包头的字段中提取随机数,并把唯一确定元组还原;
所述的主机发送方的处理方法具体包括以下步骤:
A1)利用Linux内核网络协议栈获取待发送的数据包;
A2)获取数据包的源端口号和目的端口号;
A3)生成随机数;
A4)重新计算新的源端口号和新的目的端口号;
A5)将生成随机数、新的源端口号和新的目的端口号写回数据包;
所述的主机接收方的处理方法具体包括以下步骤:
B1) 利用Linux内核网络协议栈获取待接收的数据包;
B2)获取写回数据包的生成随机数、新的源端口号和新的目的端口号;
B3)计算并还原原来的源端口号和目的端口号;
B4)将还原后的源端口号和目的端口号写回数据包;
所述的步骤A1)中利用Linux内核网络协议栈获取待发送的数据包,获取待发送的数据包需要自行实现Netfilter框架的NF_INET_LOCAL_IN钩子的回调函数;得到的数据包是以sk_buff结构体的形式表现的;
所述的步骤A2)中如果传输层协议是TCP,则通过tcp_hdr函数获取指向skbuff中TCP首部的指针,根据TCP首部tcphdr结构体的定义分别用source字段和dest字段获取数据包的源端口号和目的端口号;
如果传输层协议是UDP,则通过udp_hdr函数获取指向skbuff中UDP首部的指针,根据UDP首部udphdr结构体的定义分别用source字段和dest字段获取数据包的源端口号和目的端口号;
所述的步骤A3)中使用Linux内核网络协议栈提供的真随机数产生函数get_random_bytes,它可以指定获得的随机数占用存储空间的字节数;
所述的步骤A4)中新的源端口号和新的目的端口号的计算方法是取随机数的低6位bit,分别和两个端口号的低6位做异或操作得到新的两个端口号,两个端口号将在有效范围[0, 65535]内发生变化;
所述的步骤A5)中如果传输层协议是TCP,则把新的源端口号和新的目的端口号写回tcphdr结构体的source字段和dest字段即可;生成随机数放在包首部IP头的区分服务字段里;
如果传输层协议是UDP,则把新的源端口号和新的目的端口号写回udphdr结构体的source字段和dest字段即可;生成随机数放在包首部IP头的区分服务字段里。
2.根据权利要求1所述的一种数据中心网络流负载均衡的方法,其特征是:所述的步骤B1)中获取待接收的数据包为在Linux内核网络协议栈中,自行实现Netfilter框架的NF_INET_LOCAL_OUT钩子的回调函数;
所述的步骤B2)中如果传输层协议是TCP,则通过tcp_hdr函数获取指向skbuff中TCP首部的指针,根据TCP首部tcphdr结构体的定义分别用source字段和dest字段获取数据包的新的源端口号和新的目的端口号;通过ip_hdr函数获取指向skbuff中IP首部的指针,再由IP首部iphdr结构体tos字段获取随机数;
如果传输层协议是UDP,则通过udp_hdr函数获取指向skbuff中UDP首部的指针,根据UDP首部udphdr结构体的定义分别用source字段和dest字段获取数据包的源端口号和目的端口号;通过ip_hdr函数获取指向skbuff中IP首部的指针,再由IP首部iphdr结构体tos字段获取随机数;
所述的步骤B3)中将新的源端口号和新的目的端口号两个新的端口号的低6位与随机数再做一次异或即可计算并还原原来的源端口号和目的端口号;
所述的步骤B4)中如果传输层协议是TCP,则还原后的源端口号和目的端口号写回tcphdr结构体的source字段和dest字段即可;
如果传输层协议是UDP,则还原后的源端口号和目的端口号写回udphdr结构体的source字段和dest字段即可。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711372360.4/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种报负载分担方法及网络设备
- 下一篇:流量均衡调度方法及装置