基于fc网络的一种级联端口负载均衡方法

文档序号:9633743阅读:356来源:国知局
基于fc网络的一种级联端口负载均衡方法
【技术领域】
[0001]本发明属于计算机应用技术,涉及基于FC网络的一种级联端口负载均衡方法的实现。
【背景技术】
[0002]FC网络具备高带宽、低延迟和高可靠等特性,非常适合在对数据传输实时性有较高要求的分布式实时系统中使用。FC交换机作为整个FC网络的核心部件,负责为网络中所有节点提供单播、组播和广播的数据交换支持。为了支持更多的网络节点,通常通过级联端口将交换机进行级联组成级联网络。
[0003]当数据帧通过级联端口在交换机之间进行传输时,各级联端口负载存在不均衡的情况,导致网络传输拥堵。

【发明内容】

[0004]本发明的目的是,为解决网络传输拥堵的技术问题,提出了一种基于FC网络的一种级联端口负载均衡方法,来保证各个级联端口以相同的负载传输数据帧。
[0005]本发明的技术解决方案是,
[0006]基于FC网络的一种级联端口负载均衡方法,其特殊之处在于,
[0007]若FC网络中传输的数据帧为单播
[0008]1) FC节点机向FC交换机发送单播数据帧
[0009]1.1)上电复位FC节点机,将该帧帧头的0X_ID初始化为0x0,该帧帧头的D_ID初始化为0x0 ;
[0010]1.2)判断该帧是否为第一帧:如果是,跳转到步骤1.3);否则,跳转到步骤1.5);
[0011]1.3)将该帧的0X_ID设置为0x0080,并记录该帧D_ID及0X_ID,跳转到步骤
1.4);
[0012]1.4)填充该帧帧头其它字段,该帧具备发送条件后将该帧发送至FC交换机;发送完成后,跳转到步骤1.2);
[0013]1.5)判断该帧0_10与上一帧的D_ID是否相同:如果相同,则跳转到步骤1.6);否则,跳转到步骤1.7);
[0014]1.6)将该帧0X_ID设置为上一帧的0X_ID值,并记录该帧D_ID及0X_ID,跳转到步骤1.4);
[0015]1.7)判断上一帧0X_ID值是否等于OxFFFE:如果等于,则跳转到步骤1.3);否则,跳转到步骤1.8);
[0016]1.8)将该帧的0X_ID设置为上一帧的0X_ID值加1 ;并记录该帧D_ID及0X_ID,跳转到步骤1.4);
[0017]2)FC交换机单播数据帧发送至级联端口
[0018]2.1)配置级联端口路由表,其中该路由表地址为级联端口编号,取值从0到N-1 ;路由表内容为级联端口端口号;
[0019]2.2) FC交换机接收到的单播数据帧D_ID判断该帧目的端口是否为本地端口:如果是,跳转到步骤2.3);否则,跳转到步骤2.4);
[0020]2.3)根据该帧0_10进行路由寻址,并进行转发;转发完成后,跳转到步骤2.2);
[0021]2.4)解析出该帧的0X_ID,将该0X_ID值与接收到该单播数据帧的端口对应的端口号相加;跳转到步骤2.5);
[0022]2.5)将步骤2.4)所得结果对FC交换机的级联端口数目N取模求余;跳转到步骤
2.6);
[0023]2.6)根据步骤2.5)所得结果作为地址,查询级联端口路由表,得到与步骤2.5)所得结果对应的级联端口端口号,跳转到步骤2.7);
[0024]2.7)将该帧转发到步骤2.6)所得级联端口端口号对应的级联端口,转发完成后跳转到步骤2.2);
[0025]若FC网络中传输的数据帧为多播
[0026]I)配置多播路由表,其中该路由表地址为多播ID,路由表内容为多播目的端口 ;
[0027]II)FC交换机接收到多播数据帧后,解析得到该帧的多播ID ;跳转到步骤III);
[0028]III)根据步骤II)得到的多播ID作为地址查询多播路由表,得到多播目的端口 ;跳转到步骤IV);
[0029]IV)判断步骤III)所得的多播目的端口中是否包含级联端口:如果包含,跳转到步骤V);否则,跳转到步骤VIII);
[0030]V)将该帧的多播ID与接收该帧的端口对应的端口号相加,跳转到步骤VI);
[0031]VI)将步骤V)所得结果对级联端口数目N取模求余,跳转到步骤VII);
[0032]VII)根据步骤VI)所得余数,将步骤III)得到的多播目的端口中级联端口对应位置1,其余级联端口对应位置0,得到新的多播目的端口 ;
[0033]VIII)根据步骤III)得到的多播目的端口或步骤VII)得到的新的多播目的端口,将该帧进行转发;转发完成后,跳转到步骤II);
[0034]若FC网络中传输的数据帧为广播
[0035]a)配置广播路由寄存器,该寄存器内容为广播目的端口 ;
[0036]b)FC交换机接收到广播数据帧后,查询广播路由寄存器,得到广播目的端口 ;跳转到步骤c);
[0037]c)判断步骤b)所得的广播目的端口中是否包含级联端口:如果包含,跳转到步骤
d);否则,跳转到步骤f);
[0038]d)将接收该帧的端口对应的端口号对级联端口数目N取模求余,跳转到步骤e);
[0039]e)根据步骤d)所得余数,将步骤b)得到的广播目的端口中级联端口对应位置1,其余级联端口对应位置0,得到新的广播目的端口 ;
[0040]f)根据步骤b)得到的广播目的端口或步骤e)得到的新的广播目的端口,将该帧进行转发;转发完成后,跳转到步骤b)。
[0041]若FC网络中传输的数据帧为多播时,
[0042]相应步骤I)中所述多播ID的取值从0x0到OxFE。
[0043]若FC网络中传输的数据帧为多播时,
[0044]相应步骤I)中还包括如下操作:如果需要通过级联端口转发多播数据帧,则将多播目的端口中级联端口任一端口对应位置1,其余级联端口对应位置0 ;否则,将级联端口对应位全部置0。
[0045]若FC网络中传输的数据帧为广播时,相应步骤a)中还包括如下操作:如果广播帧需要通过级联端口转发广播数据帧,则将广播目的端口中级联端口任一端口对应位置1 ;否则,将级联端口对应位全部置0。
[0046]本发明具有的优点是:
[0047](1)控制简单,易于硬件逻辑实现;
[0048](2)可保证各级联端口流量负载均衡;
[0049](3)易于扩展,支持多FC交换机级联网络;
[0050](4)可保证数据帧通过级联端口后不会出现乱序。
【附图说明】
[0051 ] 图1是FC交换机级联示意图;
[0052]图2是FC节点机单播数据帧均衡处理流程图;
[0053]图3是FC交换机单播数据帧均衡处理流程图;
[0054]图4是FC交换机多播数据帧均衡处理流程图;
[0055]图5是FC交换机广播数据帧均衡处理流程图。
【具体实施方式】
[0056]本发明针对单播、多播及广播数据帧分别提出相应的级联端口负载均衡方法:
[0057](1)单播数据帧通过级联端口时的负载均衡由FC节点机和FC交换机共同完成。FC节点机发送单播数据帧时,对帧头0X_ID字段按照特定规则进行填充,然后发送。FC交换机接收到单播数据帧后,根据解析到的0X_ID字段,然后0X_ID加上端口号所得结果对级联端口数目求模取余的方法,来选择相应的级联端口进行路由,实现负载均衡;
[0058](2)多播数据帧的级联端口负载均衡通过FC交换机完成,通过对多播ID与端口号求和,然后对级联端口数目求模取余的方法实现级联路径的选择,实现级联端口的负载均衡;
[0059](3)广播数据帧的级联端口负载均衡通过FC交换机完成,通过对端口号对级联端口数目求模取余的方法实现级联路径的选择,实现级联端口的负载均衡。
[0060]下面结合附图,从单播、多播及广播数据帧三种数据帧分别对级联端口负载均衡方法的【具体实施方式】进行详细说明。如图1所示,为两个FC交换机组成的级联交换网络,两个FC交换机通过N个级联端口进行级联,交换机其余端口分别与节点机连接。
[0061]1、若FC网络中传输的数据帧为单播
[0062]单播数据帧通过级联端口时的负载均衡由FC节点机和FC交换机共同完成。FC节点机发送单播数据帧时,对帧头0X_ID字段按照特定规则进行填充,然后发送。FC交换机接收到单播数据帧后,根据解析到的帧头字段选择相应的级联端口进行路由,实现负载均衡。
[0063]1) FC节点机向FC交换机发送单播数据帧
[0064]1.1)上电复位FC节点机,将该帧帧头的0X_ID初始化为0x0,该帧帧头的D_ID初始化为0x0 ;
[0065]1.2)判断该帧是否为第一帧:如果是,跳转到步骤1.3);否则,跳转到步骤1.5);
[0066]1.3)将该帧的0X_ID设置为0x0080,并记录该帧D_ID及0X_ID,跳转到步骤
1.4);
[0067]1.4)填充该帧帧头其它字段,该帧具备发送条件后将该帧发送至FC交换机;发送完成后,跳转到步骤1.2);
[0068]1.5)判断该帧0_10与上一帧的D_ID是否相同:如果相同,则跳转到步骤1.6);否则,跳转到步骤1.7);
[0069]1.6)将该帧0X_ID设置为上一帧的0X_ID值,并记录该帧D_ID及0X_ID,跳转到步
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1