具体实施方式
图1为本发明一实施方式的交换设备10的结构示意图。交换设备10通过以太网20与协商对方设备30进行自动协商(Auto-Negotiation)。在本实施方式中,交换设备10具有自动协商功能,可以为任何采用交换机芯片来实现交换功能的网络设备,如以太网交换机、拥有交换功能的以太网路由器或网关。协商对方设备30为以太网中的网络设备,也具有自动协商功能,如交换机、路由器、网关、个人电脑等。
交换设备10包括处理器12、存储媒介14、交换机芯片16及多个以太网的以太网端口18。为了简单清楚,图1中仅示出了四个以太网端口。交换机芯片16通过以太网端口18接入以太网20,实现交换设备10的交换功能。在本实施方式中,交换设备10除了实现正常的交换功能之外,还能自动检测以太网端口18是否发生了环回。
为了实现环回检测功能,交换设备10还包括自动协商模块100、变更模块101及环回判断模块104。为了更好的实现环回检测功能,减低误判率,交换设备10还包括延迟模块102。自动协商模块100、变更模块101、延迟模块102及环回判断模块104是存储于存储媒介14中的可执行程序,通过处理器12的执行来实现其各自的功能。上述模块的具体功能参见图3与图4的详细描述。
本发明的环回侦测方法在自动协商的过程中完成,为了更好的阐述本发明的环回侦测方法,在此先介绍一下自动协商。当以太网设备加电,重置或者要求重新协商时,才开始自动协商。在本实施方式中,自动协商是以太网中一种主动地协商方式,具有这种功能的设备会主动与网络中的另一台设备进行协商,并且等待对方返回协商结果。自动协商不仅能够协商两端的工作速度是10M,100M,还是1000M,而且还可以协商两端工作的双工方式是半双工还是全双工。
在本实施方式中,自动协商通过和对方互相交换链路码字(Link CodeWord)来告知对方自身的能力。链路码字里面包含了自己这端可以支持的工作组合方式(速度/双工方式)。对方收到之后和自己可以支持的工作组合方式相比较,选择一种最佳的工作方式。
图2为图1中交换设备10与协商对方设备30进行自动协商时使用的链路码字的结构示意图。在本实施方式中,链路码字总共16比特,即D0,D1,D2,......,D15。这16个比特包括5个比特的选择因子字段(即S0,S1,S2,S3,S4)、8个比特的技术能力字段(即A0,A1,A2,A3,A4,A5,A6,A7)及3个比特的其它字段(即RF、Ack、NP)。
其中,选择因子字段指明交换机芯片16所支持的行业标准,如对于IEEE802.3标准来说,选择因子取值为00001,对于IEEE 802.9标准来说,选择因子取值为00010。
8比特的技术能力字段给出了交换机芯片16所支持的媒体技术。若相应比特位设置为0,则表示交换机芯片16不支持相应的媒体技术,若设为1,则表示支持。举例说明,A0表示支持10BASE-T,A1表示支持10BASE-T及全双工,A2表示支持100BASE-TX,A3表示支持100BASE-TX及全双工,A4表示支持100BASE-T4,A5表示PAUSE,A6表示应用于全双工模式的不对称PAUSE,A7为保留字段。其中,10BASE-T、100BASE-TX、100BASE-T4都是以太网的有关传输介质的标准。
3个比特的其它字段包括远端错误(Remote Fault,RF)位、确认(Ack)位及下一页(Next Page,NP)位。RF位用于向对方表明错误。Ack位用于在连续收到3个相同的链路码字之后向对方表示确认。NP位表明后面还有一个16比特的下一页链路码字,用于扩展16比特的链路码字。
图3为本发明一实施方式的环回侦测方法的流程图。在本实施方式中,环回侦测方法通过图1中的功能模块来完成。
在步骤S300中,自动协商模块100通过以太网端口18与协商对方设备30进行自动协商,并在进行自动协商的过程中,自动协商模块100记录下实际与交换设备10进行自动协商的对方的链路码字。此时,若以太网端口18未发生环回,则此时记录下来的对方的链路码字就是协商对方设备30发送过来的链路码字。若以太网端口18发生环回,则此时记录下来的对方的链路码字就是交换设备10发送过去的链路码字。
在步骤S306,变更模块101变更自动协商模块100发送给协商对方设备30的链路码字。在本实施方式中,变更模块101可以通过随机变更链路码字内的8比特的技术能力字段,只需要使得A0-A4不全部为0且与变更前的链路码字不同即可。另外,若存在下一页链路码字,也可以通过随机变更下一页链路码字内的比特位来实现变更链路码字。
需要说明的是,由于各厂商提供的交换机芯片16所支持的媒体技术存在差异,交换机芯片16允许改变链路码字的比特位也存在差异,所以,变更模块101变更链路码字并非一定要变更技术能力字段的所有比特位,而是可以根据交换机芯片16的功能来选择其中某些比特位进行变更。如交换机芯片16不支持A4代表的媒体技术,则交换机芯片16就会不允许变更A4。反之,如交换机芯片16支持A0与A1代表的媒体技术,则交换机芯片16就会支持变更A0与A1,则变更模块101可随机变更A0与A1的值。这样,即使经过随机变更,链路码字也依然不会表示交换机芯片16所不支持的媒体技术。
在步骤S308,自动协商模块100利用变更后的链路码字重新通过以太网端口18进行自动协商。在步骤S310,自动协商模块100判断自动协商是否成功完成。因为即使经过随机变更,链路码字也依然不会表示交换机芯片16所不支持的媒体技术,所以若以太网端口18发生环回,利用变更后的链路码字作出的自动协商就会成功。反之,若以太网端口18未发生环回,则利用变更后的链路码字作出的自动协商可能成功,也可能失败。具体而言,若协商对方设备30也可以匹配变更后的链路码字,则自动协商会成功,若协商对方设备30不可以匹配变更后的链路码字,则自动协商会失败。
若利用变更后的链路码字作出的自动协商失败,则在步骤S313,环回判断模块104判定以太网端口18未发生环回。
若利用变更后的链路码字作出的自动协商成功完成,则在步骤S311,自动协商模块100记录自动协商过程中实际与交换设备10进行自动协商的对方的链路码字。此时,若以太网端口18发生环回,则此时记录下来的对方的链路码字就是交换设备10修改过后的链路码字。若以太网端口18未发生环回,则此时记录下来的对方的链路码字仍然是协商对方设备30发送过来的链路码字。
这样,根据以太网端口18是否发生环回来分析,存在三种情况。第一,若第一次记录时以太网端口18未发生环回,但在第二次记录时以太网端口18发生了环回,则两次记录下来的链路码字不同,第一次为协商对方设备30发送过来的链路码字,第二次为交换设备10修改过后的链路码字。第二,若两次记录时以太网端口18皆已经发生环回,则两次记录下来的链路码字也会不同,第一次为交换设备10修改前的链路码字,第二次为交换设备10修改过后的链路码字。第三,若两次记录时以太网端口18皆未发生环回,则两次记录下来的链路码字就会相同,都是协商对方设备30发送过来的链路码字。
这样,基于以上原理,在步骤S312,环回判断模块104判断两次记录的链路码字是否相同。若两次记录的链路码字相同,则在步骤S313,环回判断模块104判定以太网端口18未发生环回。若两次记录的链路码字不相同,则在步骤S314,环回判断模块104判定以太网端口18发生了环回。基于以上判断结果,交换设备10即可针对发生环回的以太网端口18进行处理,以便有效抑制环回给交换设备10所带来的危害。
进一步的,考虑到协商对方设备30也可能同样支持本发明提供的环回侦测方法,此时,如果协商对方设备30随机变更后的链路码字与交换设备10随机变更后的链路码字一样,则可能将本来并不存在环回的以太网端口18误判为发生了环回。为了减低误判率,本发明还可以采用如图4所示的实施方式。图4为本发明另一实施方式的环回侦测方法的流程图。在本实施方式中,图4所示的环回侦测方法通过图1中的功能模块来完成。
在步骤S400中,自动协商模块100通过以太网端口18与协商对方设备30进行自动协商,并在进行自动协商的过程中,自动协商模块100记录下实际与交换设备进行自动协商的对方的链路码字。此时,若以太网端口18未发生环回,则此时记录下来的对方的链路码字就是协商对方设备30发送过来的链路码字。若以太网端口18发生环回,则此时记录下来的对方的链路码字就是交换设备10发送过去的链路码字。
在步骤S402中,延迟模块102设置一个延迟时间。在本实施方式中,延迟模块102可在一定时间范围内随机设置延迟时间,如在1-10秒内随机选择并设置为延迟时间。在步骤S404中,延迟模块102判断设置的延迟时间是否到期,如延迟时间为1秒,则判断这1秒时间是否已到。若延迟时间还未到,则在步骤S405,自动协商模块100判断在延迟时间内,协商对方设备30是否有请求重新进行自动协商。如果在延迟时间内,协商对方设备30请求重新进行自动协商,说明以太网端口18没有发生环回,交换设备10仍然可以通过以太网端口18与协商对方设备30通信,则在步骤S413,环回判断模块104判定以太网端口18没有发生环回。
如果在延迟时间内,协商对方设备30都没有请求重新进行自动协商,则在步骤S406,变更模块101变更自动协商模块100发送给协商对方设备30的链路码字。步骤S406-S414与步骤S306-S314基本一致,在此不做赘述。
本发明实施方式所提供的交换设备10及其环回侦测方法通过修改自动协商所使用的链路码字,实现快速有效的判断发生环回的以太网端口,从而有效抑制环回给交换设备10所带来的危害。另外,本发明实施方式所提供的交换设备10及其环回侦测方法完全采用现有的硬件设备,并未额外增加产品成本。而且,由于该侦测方法是借助于自动协商来进行的,所以在进行网络连接的时候就开始了该侦测,从而不需要等到交换设备10完全启动后再进行侦测,可以更早的侦测以防止交换机芯片16的误操作。