LLDP邻居信息处理方法及LLDP邻居信息处理设备与流程

文档序号:12829179阅读:891来源:国知局
LLDP邻居信息处理方法及LLDP邻居信息处理设备与流程

本发明涉及以太网技术,特别涉及以太网lldp(linklayerdiscoveryprotocol,链路层发现协议)协议的技术。



背景技术:

lldp属于慢速单向信息通告协议,周期的向邻居数据通信设备(以下简称设备)通告本设备和端口信息等,同时需要处理邻居设备发过来的设备和端口信息。

如图2所示,为两台数据通信设备直连时的系统框图,其中,设备a的端口p1与设备b的端口p2相连。先后在设备a的端口p1和设备b的端口p2上启用lldp协议,在设备a的端口p1上启用lldp协议后,设备a立即通过端口p1向设备b发送lldp协议报文,设备b的端口p2接收到设备a发送的lldp协议报文后,当端口p2上还未启用lldp协议时,会将lldp协议报文丢弃,但当设备b的端口p2启用lldp协议后,设备b立即通过端口p2向设备a发送lldp协议报文,设备a的端口p1接收到lldp协议报文后进行解析,学习到邻居设备b的信息。

而设备b由于之前丢弃了设备a的lldp协议报文,则设备b若要学习到设备a的信息,就需要等待至设备a再次发送lldp协议报文,若设备a发送lldp协议报文的周期较长(例如10分钟),则需要等待较长的一段时间才能学习到设备a的信息,用户体验不好。

申请号为201410606724.0的专利申请公布了一种方法:通过发送主动请求更新tlv的方法可以解决此类问题。本专利申请的技术方案是:设备在端口上启用lldp协议后,向邻居设备主动发送更新请求,邻居设备接收到更新请求的报文后立即响应,举例如下:

对于设备a的端口p1先启用lldp协议,设备b的端口p2后启用lldp协议,设备b在其端口p2上启用lldp协议后,主动向设备a发送更新请求报文,设备a接收到设备b的更新请求报文后,立即响应(相当于再次发送lldp协议报文),设备b即学习到了设备a的信息。

上述方法的缺点在于必须在lldp协议报文中增加新的tlv和兼容性方面的问题,即修改了报文格式,且增加了协议的复杂性。



技术实现要素:

本发明的目的就是解决直连的两台设备先后启动lldp协议无法快速学习邻居信息的问题,提供一种不修改报文格式就能解决上述问题的lldp邻居信息处理方法及一种lldp邻居信息处理设备。

本发明解决其技术问题,采用的技术方案是,lldp邻居信息处理方法,其特征在于,包括以下步骤:

接收邻居设备发送的lldp协议报文后,判断接收端口是否启用lldp协议,如果接收端口未启用lldp协议,则缓存该lldp协议报文;当所述接收端口由未启用lldp协议的端口变为启用lldp协议的端口时,判断缓存中是否缓存有lldp协议报文,如是,则学习缓存中的lldp协议报文中的邻居信息;否则直接学习接收到的lldp协议报文的邻居信息。

具体的,所述如果接收端口未启用lldp协议,则缓存该lldp协议报文,具体包括以下具体步骤:

所述如果接收端口未启用lldp协议,判断是否已接收过相同邻居设备的对应端口发送来的lldp协议报文,如是,则缓存该lldp协议报文,并释放所缓存的该邻居设备的对应端口之前发送来的lldp协议报文;否则直接缓存该lldp协议报文。

进一步的,所述方法还包括,如果判断所述接收端口由未启用lldp协议的端口变为启用lldp协议的端口时,立即生成并周期性地向邻居设备的对应端口发送自身的lldp协议报文。

具体的,所述学习缓存中的lldp协议报文中的邻居信息或者学习接收到的lldp协议报文的邻居信息的方法是:

从该lldp协议报文中解析出邻居信息,将邻居信息置于邻居信息表中。

再进一步的,所述学习缓存中的lldp协议报文中的邻居信息的方法,包括:

解析缓存中所有邻居设备发送的lldp协议报文,将解析出的邻居信息置于邻居信息表中。

一种lldp邻居信息处理设备,其特征在于,包括:

接收模块,用于接收邻居设备发送的lldp协议报文;

判断模块,用于判断接收端口是否启用lldp协议,如果接收端口未启用lldp协议,通知缓存模块将所述lldp协议报文进行缓存;当判断所述接收端口由未启用lldp协议的端口变为启用lldp协议的端口时,判断缓存中是否缓存有lldp协议报文,如是,通知处理模块学习缓存中的lldp协议报文中的邻居信息;否则,通知处理模块直接学习接收到的lldp协议报文的邻居信息;

缓存模块,用于根据判断模块的通知,将所述lldp协议报文进行缓存;

处理模块,用于当所述接收端口由未启用lldp协议的端口变为启用lldp协议的端口时,且缓存中有lldp协议报文时,学习缓存中的lldp协议报文中的邻居信息;否则直接学习接收到的lldp协议报文的邻居信息。

具体的,所述判断模块,具体用于,判断是否已接收过相同邻居设备的对应端口发送来的lldp协议报文,如是,则缓存该lldp协议报文,并释放所缓存的该邻居设备的对应端口之前发送来的lldp协议报文;否则直接缓存该lldp协议报文。

进一步的,所述设备还包括发送模块,所述发送模块用于,当所述接收端口由未启用lldp协议的端口变为启用lldp协议的端口时,立即生成并周期性地向邻居设备的对应端口发送自身的lldp协议报文。

具体的,所述处理模块,具体用于解析缓存中的lldp协议报文中的邻居信息或者接收到的lldp协议报文的邻居信息,将从该lldp协议报文中解析出置于邻居信息表中。

再进一步的,所述处理模块,具体用于,解析缓存中所有邻居设备发送的lldp协议报文,将解析出的邻居信息置于邻居信息表中。

本发明的有益效果是,通过上述lldp邻居信息处理方法及一种lldp邻居信息处理设备,由于仅需要在接收端口未启用lldp协议时,缓存所接收到的lldp协议报文,并在端口启用lldp协议时,从缓存中获取lldp协议报文学习邻居信息即可,实现简单,且不需要修改lldp协议报文格式,不需要增加lldp协议处理的复杂性,也不存在与友商设备的兼容性问题,由于可以迅速学习邻居信息,从而提高了用户体验。

附图说明

图1是两台数据通信设备直连时的系统框图;

图2是本发明中一种lldp邻居信息处理设备的系统框图。

具体实施方式

下面结合实施例及附图,详细描述本发明的技术方案。

本发明的lldp邻居信息处理方法,具体为:接收邻居设备发送的lldp协议报文后,判断接收端口是否启用lldp协议,如果接收端口未启用lldp协议,则缓存该lldp协议报文;当所述接收端口由未启用lldp协议的端口变为启用lldp协议的端口时,判断缓存中是否缓存有lldp协议报文,如是,则学习缓存中的lldp协议报文中的邻居信息;否则直接学习接收到的lldp协议报文的邻居信息。

本发明的一种lldp邻居信息处理设备,其系统框图参见图1,包括接收模块,用于接收邻居设备发送的lldp协议报文;判断模块,用于判断接收端口是否启用lldp协议,如果接收端口未启用lldp协议,通知缓存模块将所述lldp协议报文进行缓存;当判断所述接收端口由未启用lldp协议的端口变为启用lldp协议的端口时,判断缓存中是否缓存有lldp协议报文,如是,通知处理模块学习缓存中的lldp协议报文中的邻居信息;否则,通知处理模块直接学习接收到的lldp协议报文的邻居信息;缓存模块,用于根据判断模块的通知,将所述lldp协议报文进行缓存;处理模块,用于当所述接收端口由未启用lldp协议的端口变为启用lldp协议的端口时,且缓存中有lldp协议报文时,学习缓存中的lldp协议报文中的邻居信息;否则直接学习接收到的lldp协议报文的邻居信息。

实施例

本发明实施例中lldp邻居信息处理方法,包括以下步骤:

接收邻居设备发送的lldp协议报文后,判断接收端口是否启用lldp协议,如果接收端口未启用lldp协议,则缓存该lldp协议报文;当接收端口由未启用lldp协议的端口变为启用lldp协议的端口时,判断缓存中是否缓存有lldp协议报文,如是,则学习缓存中的lldp协议报文中的邻居信息;否则直接学习接收到的lldp协议报文的邻居信息。

其中,如果接收端口未启用lldp协议,则缓存该lldp协议报文,具体包括以下步骤:

如果接收端口未启用lldp协议,判断是否已接收过相同邻居设备的对应端口发送来的lldp协议报文,如是,则缓存该lldp协议报文,并释放所缓存的该邻居设备的对应端口之前发送来的lldp协议报文;否则直接缓存该lldp协议报文。

还可以包括步骤:如果判断接收端口由未启用lldp协议的端口变为启用lldp协议的端口时,立即生成并周期性地向邻居设备的对应端口发送自身的lldp协议报文。

本发明实施例中,学习接收到的lldp协议报文的邻居信息的方法可以是:

从该lldp协议报文中解析出邻居信息,将邻居信息置于邻居信息表中。

而学习缓存中的lldp协议报文中的邻居信息的方法可以为:

解析缓存中所有邻居设备发送的lldp协议报文,将解析出的邻居信息置于邻居信息表中。

本发明实施例中的一种lldp邻居信息处理设备,其系统框图参见图1,包括:

接收模块,用于接收邻居设备发送的lldp协议报文。

判断模块,用于判断接收端口是否启用lldp协议,如果接收端口未启用lldp协议,通知缓存模块将所述lldp协议报文进行缓存;当判断所述接收端口由未启用lldp协议的端口变为启用lldp协议的端口时,判断缓存中是否缓存有lldp协议报文,如是,通知处理模块学习缓存中的lldp协议报文中的邻居信息;否则,通知处理模块直接学习接收到的lldp协议报文的邻居信息。

缓存模块,用于根据判断模块的通知,将所述lldp协议报文进行缓存。

处理模块,用于当所述接收端口由未启用lldp协议的端口变为启用lldp协议的端口时,且缓存中有lldp协议报文时,学习缓存中的lldp协议报文中的邻居信息;否则直接学习接收到的lldp协议报文的邻居信息。这里,可具体用于解析缓存中的lldp协议报文中的邻居信息或者接收到的lldp协议报文的邻居信息,将从该lldp协议报文中解析出置于邻居信息表中;或解析缓存中所有邻居设备发送的lldp协议报文,将解析出的邻居信息置于邻居信息表中。

这里,判断模块,可具体用于:判断是否已接收过相同邻居设备的对应端口发送来的lldp协议报文,如是,则缓存该lldp协议报文,并释放所缓存的该邻居设备的对应端口之前发送来的lldp协议报文;否则直接缓存该lldp协议报文。

本发明实施例中,还可以包括发送模块,发送模块用于:当所述接收端口由未启用lldp协议的端口变为启用lldp协议的端口时,立即生成并周期性地向邻居设备的对应端口发送自身的lldp协议报文。

本发明实施例中,由于在数据通信设备中,设备id具有全球唯一性,端口id在该设备内部具有唯一性,因此,在lldp协议中,都由设备id和端口id定义邻居信息,由设备id和端口id可以唯一确定邻居,即是邻居信息由设备id及端口id所定义。

下面以两台数据通信设备直连时为例进行具体说明,其系统框图参见图2,其中,设备a的端口p1与设备b的端口p2连接,设备a与设备b均为上述一种lldp邻居信息处理设备。

当设备a的端口p1启用lldp协议后,

第一步,设备a通过端口p1向设备b发送lldp协议报文,由于设备b的端口p2未启用lldp协议报文,设备b将端口p2接收到的lldp协议报文缓存起来,如果多次从端口p2接收到设备a的lldp协议报文,则缓存最后接收到的lldp协议报文,释放前面已经缓存的lldp协议报文。

第二步,由于设备b的端口p2还未启用lldp协议,设备a的端口p1未缓存过设备b的端口p2发送来的lldp协议报文,无法从缓存中获取端口p1曾经接收到的lldp协议报文。

设备b的端口p2由未启用lldp协议配置为启用lldp协议后,

第一步,设备b通过端口p2向设备a发送lldp协议报文,设备a的端口p1接收到lldp协议报文后解析出设备b的信息,并将这些信息保存在邻居信息表中。

第二步,设备b判断缓存中是否缓存有lldp协议报文,如是,则学习缓存中的lldp协议报文中的邻居信息,即从lldp协议报文中解析出设备a的信息,保存在邻居信息表中,当缓存中的lldp协议报文处理完后,直接学习接收到的lldp协议报文的邻居信息。

显然,设备b启用lldp协议后,设备a和设备b几乎同时学习到邻居信息。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1