发明内容
有鉴于此,本发明提供一种基于TRILL网络的处理报文的方法和路由桥。能够有效减少RB对Hello报文的处理数量,从而提高了链路带宽的利用率以及RB的CPU处理能力。
为解决上述技术问题,本发明的技术方案是这样实现的:
一种基于TRILL网络的处理报文的方法,所述方法包括:
RB在不同使能VLAN内重复发送Hello报文时,在所述Hello报文中携带同一序列号,其中,所述序列号大于上次相应VLAN内发送Hello报文时所携带的序列号;
若RB接收邻居RB发送的携带序列号的Hello报文,比较该接收的Hello报文携带的序列号与上次收到的该邻居RB发送的Hello报文中携带的序列号的大小,当比较结果为大于时,获取该Hello报文携带的使能VLAN的子TLV中的所有使能VLAN,并根据所述接收的Hello报文的内容进行处理;当比较结果为等于时,更新邻居状态;当比较结果为小于时,将该接收的Hello报文丢弃。
一种基于TRILL网络的处理报文的RB,所述RB包括:收发单元、比较单元和处理单元;
所述收发单元,用于发送Hello报文,当在不同使能VLAN内重复发送Hello报文时,在所述Hello报文中携带同一序列号,其中,所述序列号大于上次相应VLAN内发送Hello报文时所携带的序列号;用于接收邻居RB发送的Hello报文;
所述比较单元,用于当所述收发单元接收的Hello报文携带序列号时,比较该接收的Hello报文携带的序列号与上次收到的该邻居RB发送的Hello报文中携带的序列号的大小;
所述处理单元,用于当所述比较单元比较结果为大于时,获取该Hello报文携带的使能VLAN的子TLV中的所有使能VLAN,并根据所述接收的Hello报文的内容进行处理;当比较结果为等于时,更新邻居状态;当比较结果为小于时,将该接收的Hello报文丢弃。
综上所述,本发明通过在不同使能VLAN内重复发送Hello报文时增加相同序列号,而在接收到同一邻居RB发送的相同序列号的Hello报文时,只处理第一条收到的Hello报文,能够减少Hello报文的处理数量,从而提高了链路带宽的利用率以及RB的CPU处理能力。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。
参见图1,图1为本发明实施例中Hello报文处理过程流程示意图。具体步骤为:
步骤101,RB在不同使能VLAN内重复发送Hello报文时,在Hello报文中携带同一序列号,其中,序列号大于上次相应VLAN内发送Hello报文时所携带的序列号。
本步骤的具体实现为RB在某端口上发送Hello报文时,在该端口的所有使能VLAN内重复发送Hello报文时,在报头中增加序列号字段,每次在不同使能VLAN上发送Hello报文时序列号相同,在后续每次在同一VLAN上进行Hello报文刷新时,对序列号递增。
步骤102,若RB接收邻居RB发送的携带序列号的Hello报文,比较该接收的Hello报文携带的序列号与上次收到的该邻居RB发送的Hello报文中携带的序列号的大小,当比较结果为大于时,获取该Hello报文携带的使能VLAN的子TLV中的所有使能VLAN,并根据所述接收的Hello报文的内容处理;当比较结果为等于时,更新邻居状态;当比较结果为小于时,将该接收的Hello报文丢弃。
步骤102中接收某邻居RB发送的Hello报文时,确定报文头中是否携带序列号,若未携带,则根据Hello报文的内容对该Hello报文进行处理,即通过TRILL协议标准实现。否则,获取该报文中携带的序列号,与上次收到该邻居Hello报文携带的序列号比较大小。具体实现可以为:
对收到的同一邻居RB发送的Hello报文,获取其序列号并保存,当再次获取的序列号比该已保存的序列号大时,则更新保存的序列号,获取该Hello报文携带的使能VLAN的子TLV中的所有使能VLAN,并按照收到的Hello报文的内容进行对该报文的处理,如更新邻居状态、发送响应报文等;认为在该Hello报文携带的所有使能VLAN内收到该Hello报文,但只在第一个收到该Hello报文的VLAN内进行应答。当新接收的Hello报文携带的序列号小时,直接将该Hello报文丢弃。当等于时,更新自身的邻居状态,但是并不发送应答报文。由上述处理可知,接收的不同VLAN内发送的相同序列号的Hello报文只有第一个会被处理。
RB发送Hello报文时还携带分片号,当该Hello报文不需要分片时,在发送的Hello报文中携带的分片号设置为初始值,当该Hello报文需要分片时,在该Hello报文中携带的分片号设置为大于初始值。
具体实现时,若该发送的Hello报文不需要分片时,可以将分片号设置为1;若携带内容较多,需要分片时,将分片号递增,若分两条报文发送,可以设置为1、2。
若RB接收邻居RB发送的Hello报文携带的序列号与上次发送的Hello报文携带的序列号相等,执行更新邻居状态之前进一步包括:比较该接收的Hello报文携带的分片号与上次收到的该邻居RB发送的Hello报文中携带的分片号的大小,当比较结果为大于时,获取该Hello报文携带的使能VLAN的子TLV中的所有使能VLAN,并更新邻居状态;当比较结果为等于时,执行所述更新邻居状态;当比较结果为小于时,将该接收的Hello报文丢弃。
若RB接收邻居RB发送的Hello报文携带的序列号与上次发送的Hello报文携带的序列号不相等时,直接如上文确定如何处理接收的Hello报文,不再比较分片号的大小。若该次接收的Hello报文携带的序列号相等,分片号较大时,则为该邻居保存序列号,并同时获取该Hello报文携带的使能VLAN子LTV中的所有使能VLAN,确定已收到这些VLAN内的Hello报文,等同于收到了携带该序列号的这些VLAN内的Hello报文。
参见图2,图2为本发明具体实施例中Hello报文结构示意图。图2中,序列号Sequence number和分片号Number of segmented为本发明新增字段,其他字段同现有实现,这里不再赘述。
RB发送Hello报文时携带自身被分配为AVF的使能VLAN。
RB接收邻居RB发送的Hello报文时,获取Hello报文中携带的该邻居RB被分配为AVF的使能VLAN。
由于接收的不同VLAN内发送的相同序列号的Hello报文只有第一个会被处理,所以,为了能在一个Hello报文中表明自己是哪些VLAN的AVF,在Hello报文中携带一个新的Assigned vlan sub-TLV表明自己是那些VLAN的AVF,以使该报文的接收方能识别到AVF冲突并进行抑制处理。
参见图3,图3为本发明具体实施例中Assigned vlan sub-TLV结构示意图。图3中Type:Assigned vlan,10;
Length:4×N,N为assigned vlan information数量。
参见图4,图4为本发明具体实施例中assigned vlan information结构示意图。图4中RESV:保留位,填0。
Start VLAN:起始VLAN;
End VLAN:结束VLAN。
基于上述方法同样的发明构思,本发明还提出一种处理报文的RB。参见图5,图5为本发明具体实施例中处理Hello报文的RB的结构示意图。该RB包括:收发单元501、比较单元502和处理单元503。
收发单元501,用于发送Hello报文,当在不同使能VLAN内重复发送Hello报文时,在该Hello报文中携带同一序列号,其中,该序列号大于上次相应VLAN内发送Hello报文时所携带的序列号;用于接收邻居RB发送的Hello报文。
比较单元502,用于当收发单元501接收的Hello报文携带序列号时,比较该接收的Hello报文携带的序列号与上次收到的该邻居RB发送的Hello报文中携带的序列号的大小。
处理单元503,用于当比较单元502比较结果为大于时,获取该Hello报文携带的使能VLAN的子TLV中的所有使能VLAN,并根据接收的Hello报文的内容进行处理;当比较结果为等于时,更新邻居状态;当比较结果为小于时,将该接收的Hello报文丢弃。
较佳地,
收发单元501,进一步用于在发送Hello报文携带分片号,当该Hello报文不需要分片时,在发送的Hello报文中携带的分片号设置为初始值,当该Hello报文需要分片时,在该Hello报文中携带的分片号设置为大于初始值。
比较单元502,进一步用于当收发单元501接收的Hello报文携带的序列号与上次收到的该邻居RB发送的Hello报文中携带的序列号的大小相等时,比较该接收的Hello报文携带的分片号与上次收到的该邻居RB发送的Hello报文中携带的分片号的大小。
处理单元503,进一步用于当比较单元502比较分片号结果为大于时,获取该Hello报文携带的使能VLAN的子TLV中的所有使能VLAN,并根据接收的Hello报文的内容进行处理;当比较结果为等于时,更新邻居状态;当比较结果为小于时,将该接收的Hello报文丢弃。
较佳地,该RB进一步包括:获取单元504。
收发单元501,进一步用于发送Hello报文时携带自身被分配为AVF的使能VLAN。
获取单元504,用于获取收发单元501接收的Hello报文中携带的该邻居RB被分配为AVF的使能VLAN。
上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可以进一步拆分成多个子单元。
综上所述,本发明具体实施例中通过在不同使能VLAN内重复发送Hello报文时增加相同序列号以及分片号,而在接收到Hello报文时,对一个RB在不同VLAN上发送的大量的Hello报文只需处理一次,能够有效减少RB对Hello报文的处理数量,从而提高了链路带宽的利用率以及RB的CPU处理能力。
由于只处理第一条接收的Hello报文,其他相同序列号和分片号的报文只更新状态,并不发送应答报文,因此各RB减少了发送应答报文的条数,并减少了接收处理应答报文。
同时,在此实现方案的基础上,考虑到识别AVF冲突和识别VLAN映射的需求,修改了原有的用于AVF冲突和抑制的通过在Hello报文中携带一个标记位来指示自己是否是Hello报文外层VLAN的AVF属性的方式。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。