[0020] 以下将结合附图所示的具体实施方式对本发明进行详细描述,但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。
[0021] 生成树协议(STP,Spanning Tree Protocol)是一种二层管理协议,它通过选择性地阻塞网络中的冗余链路来消除二层环路,同时还具备链路备份的功能。生成树协议随着网络的发展而不断更新的,从最初的STP到快速生成树协议(RSTP,Rapid Spanning Tree Protocol),再到多生成树协议(MSTP,Multiple Spanning Tree Protocol)。
[0022] STP、RSTP和MSTP之间的主要区别是:STP,不能快速迁移,即使是在点对点链路或边缘端口,也必须等待2倍的forward delay的时间延迟,网络才能收敛;RSTP,根据IEEE Std 802.1w定义,通过P(proposal)/A(agreement)机制快速收敛,但是局域网内所有网桥共享一棵生成树,不能按虚拟局域网(VLAN,Virtual Local Area Network)阻塞冗余链路;MSTP,允许不同VLAN的流量沿各自的路径分发,从而为冗余链路提供了更好的负载分担机制。
[0023] 图1为本发明一具体实施例中用于确定边缘接口的系统组网图。参照图1,在该系统中假设有三台交换机,每台交换机的多个端口中,有端口与另一台交换机相连,它们之间有特定的二层报文交互;每台交换机都包括跟非交换机连接的edge port,例如这三台交换机分别通过自己的edge port连接服务器、个人电脑和打印机。
[0024] 图2为本发明所公开的确定边缘接口的方法的流程示意图。参照图2,本发明的确定边缘接口的方法,应用在运行STP、RSTP或MSTP的交换机上,该方法包括:
[0025] 步骤201,在交换机的端口进行初始化时,设定本端口为指定端口并对外发送特定的二层报文;
[0026] 步骤202,如果本端口在设定时间内没有接收到对端发送的STP、RSTP或MSTP报文,则确定本端口为edge port。
[0027] 图3是基于图2的确定边缘接口的方法的详细流程示意图。参照图3,该方法包括:
[0028] 步骤301,确定交换机运行的协议。
[0029] 在本步骤中,该协议包括STP、RSTP和MSTP。
[0030] STP不兼容RSTP和MSTP,即运行STP的交换机不识别RSTP和MSTP报文,如果收到RSTP或MSTP报文通常直接丢弃;RSTP和MSTP兼容STP,即运行RSTP和MSTP的交换机接收到STP报文,会以STP方式运行。
[0031] 步骤302,如果交换机运行RSTP和MSTP,在交换机的端口进行初始化时,设定本端口为指定端口并对外发送proposal报文。
[0032] 步骤303,如果交换机运行STP,在交换机的端口进行初始化时,设定本端口为指定端口并对外发送STP报文。
[0033] 在本步骤中,由于RSTP和MSTP兼容STP,因此对端只要支持STP、RSTP和MSTP中的任意一种,都会进入STP模式,都有可能发送STP报文。但若本端口发出的STP报文优先级较高,则对端就不一定会发STP报文了,导致无法判断是否是edge port。因此,需要保证本端口发出的STP报文的优先级。
[0034] 具体地,当本端口进入STP后,设置发送STP报文的数量和发送STP报文的间隔时间,可以在交换机中增加计数器来对发送STP报文的数量进行计数。不论何种情况,都至少发送出去设置数量的STP报文。当发出的STP报文优先级较低时,对端通常直接丢弃处理,因此影响不大;在MSTP场景下,报文丢失的概率较低,因此可设置为至少发出2个STP报文,此外设置发送STP报文的间隔时间为不超过2秒,后续的STP报文仍按原协议规范发送。
[0035] 步骤304,判断在设定时间内是否收到对端发送到的STP、RSTP或MSTP报文,如果是,则本端口为非edge port;如果否,则本端口为edge port。
[0036] 在本步骤中,只要是支持STP类型协议的交换机,就至少会发送设置数量的STP类型报文,而非交换机不会发送任意STP类型的报文,其中STP类型报文即指STP、RSTP或MSTP类型中的任意一种。
[0037] 如此,在设定时间,例如3S,内收到对端发送到的STP、RSTP或MSTP报文,则本端口为非edge port;如果在设定时间内没有收到对端发送到的STP、RSTP或MSTP报文,则本端口为edge port。
[0038] 如图4所示,本发明还提供了一种用于确定边缘接口的装置,应用在运行STP、RSTP或MSTP的交换机上,该装置包括:
[0039] 第一处理模块401,用于在交换机的端口进行初始化时,设定本端口为指定端口并对外发送特定的二层报文;
[0040] 第二处理模块402,用于如果本端口在设定时间内没有接收到对端发送到的STP、RSTP或MSTP报文,确定本端口为edge port。
[0041] 进一步地,第一处理模块具体用于:确定交换机运行的协议;如果交换机运行RSTP和MSTP,在交换机的端口进行初始化时,设定本端口为指定端口并对外发送proposal报文;如果交换机运行STP,在交换机的端口进行初始化时,设定本端口为指定端口并对外发送STP报文。
[0042] 进一步地,第二处理模块具体用于:判断在设定时间内是否收到对端发送到的STP、RSTP或MSTP报文;如果收到,则本端口为非edge port;如果没有收到,则本端口为edge port。
[0043] 进一步地,该装置还包括:计数器,用于对发送STP报文的数量进行计数。
[0044] 本发明用于确定边缘接口的装置的技术细节和前述的确定边缘接口类似,故在此不赘述。
[0045] 本发明中交换机能够在STP、RSTP或MSTP模式下识别出edge port,edge port可直接进入转发状态,从而简化网络计算,提升效率。
[0046] 虽然本发明已以较佳实施例披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。