[发明专利]基于FPGA的高速网络数据流负载均衡调度方法有效
申请号: | 201310056497.4 | 申请日: | 2013-02-22 |
公开(公告)号: | CN103139093A | 公开(公告)日: | 2013-06-05 |
发明(设计)人: | 王勇;刘勇;陶晓玲;何倩 | 申请(专利权)人: | 桂林电子科技大学 |
主分类号: | H04L12/803 | 分类号: | H04L12/803 |
代理公司: | 桂林市持衡专利商标事务所有限公司 45107 | 代理人: | 陈跃琳 |
地址: | 541004 广*** | 国省代码: | 广西;45 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 fpga 高速 网络 数据流 负载 均衡 调度 方法 | ||
技术领域
本发明涉及互联网技术领域,具体涉及一种基于FPGA的高速网络数据流负载均衡调度方法。
背景技术
目前现有网络的各个核心部分随着业务量的提高以及访问量和数据流量的快速增长,其处理能力和计算强度也相应地增大,使得单一的服务器设备根本无法承担。在此情况下,如果扔掉现有设备去做硬件升级,这样将造成现有资源的巨大浪费,针对这种情况,一些负载均衡方法应运而生。
当网络应用的访问量不断增长,单个处理单元无法满足负载需求或者网络应用流量将要出现瓶颈时,负载均衡才会起到作用,其将单个重负载节点的计算分担到多台低速节点上做并行处理,使得系统处理能力得到大幅度提高。为增加网络吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性,选择合理的负载均衡方法至关重要。
目前常用的负载均衡方法中轮循调度、加权轮循调度、地址散列调度等为静态负载均衡方法,另外最小连接调度、最小数据包均衡、最快响应时间均衡等为动态负载均衡方法。然而单一的负载均衡方法很难满足网络应用多样性与复杂性要求,另外以上负载均衡方法都没有考虑各个子通道的当前流量负载情况,故而导致在各子通道中流量均衡度不高;此外现有的负载均衡方法中鲜有考虑流粒度(属于同一条TCP流的数据包必须被调度到相同的子通道中)问题,这在很大程度上影响了入侵检测、协议还原等对数据流的完整性需求。
FPGA(Field Programmable Gate Array,现场可编程门阵列)不仅解决了定制电路的不足,也结合了软件与硬件各自的优点,和纯软件实现速度相比得到了极大的提高,和纯硬件实现相比又有了更大的灵活性。除此之外,FPGA有丰富的片内资源,减少了外围电路设计,提高了系统的稳定度。
发明内容
本发明所要解决的技术问题是现有的负载均衡方法均衡度不高的不足,提供一种基于FPGA的高速网络数据流负载均衡调度方法。
为解决上述问题,本发明是通过以下方案实现的:
基于FPGA的高速网络数据流负载均衡调度方法,包括如下步骤:
S1.数据包首部信息提取,FPGA采用TEMAC(TriMode Ethernet MAC,三态以太网MAC)核将物理层比特流封装成MAC帧,然后再相应提取源IP地址、目的IP地址、源端口、目的端口、复位RST、同步SYN和终止FIN;
S2.哈希运算,对提取的源IP地址、目的IP地址、源端口和目的端口进行四元组哈希运算,并将哈希结果对4求模取余数;
S3.流映射表管理,包括流映射表的写操作管理、读操作管理和清除操作管理;即
S31.判断TCP新建连接,若SYN=1,则根据在本周期中队列组中最大剩余数据量,判断是否存在队列拥塞,若最大剩余数据量没有超过一定门限值则视为没有拥塞,则不做任何处理;若最大剩余量超过该门限且存在某种梯度时视为轻度、中度与重度拥塞,则分别按某种概率增长方式依概率选中最小流量端口作为当前数据包的输出端口,并标记流映射端口有效,同时将该数据包对应的源IP地址和目的IP地址写入CAM(Content Addressable Memory,内容可寻址存储器)中,并将该CAM地址作为RAM(Random Access Memory,随机存储器)地址,将该输出端口值存入RAM中,以备后续同一条流的数据包访问;若SYN=0,则执行S32;
S32.判断TCP复位,若RST=1,则将数据包对应的源IP地址和目的IP地址匹配CAM,若匹配CAM命中,则将该CAM地址写入指定FIFO(First Input First Output,先入先出队列),以示该CAM地址单元已被清除,可以为S31中新建连接提供备用,尽量解决CAM不够用情况,若匹配CAM不命中,则不做任何处理;若RST=0,执行S33;
S33.将数据包相应的源IP地址和目的IP地址匹配CAM,若匹配CAM命中,则将该命中的CAM地址作为地址访问RAM,得到该数据包的输出端口,并标记流映射端口有效,再判断TCP终止,若FIN=1,则再将该CAM地址写入指定FIFO,以示该CAM地址单元已被清除,可以为S31中新建连接提供备用,尽量解决CAM不够用情况,若FIN=0,则表示该数据包为普通数据包,跳出此步;若匹配CAM不命中,则不做任何处理;
S4.输出端口选择,根据流映射表与哈希值来选择当前数据包的输出端口,即在流映射端口有效时优先选择流映射端口为输出端口,在流映射端口无效时选择哈希值为输出端口;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于桂林电子科技大学,未经桂林电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310056497.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种电容触摸屏及其制造方法
- 下一篇:电气故障火花实时监测方法及装置