CN103825813B - Lldp报文的处理方法及装置 - Google Patents
Lldp报文的处理方法及装置 Download PDFInfo
- Publication number
- CN103825813B CN103825813B CN201410089614.1A CN201410089614A CN103825813B CN 103825813 B CN103825813 B CN 103825813B CN 201410089614 A CN201410089614 A CN 201410089614A CN 103825813 B CN103825813 B CN 103825813B
- Authority
- CN
- China
- Prior art keywords
- tlv
- information data
- type
- keep
- field
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
Landscapes
- Communication Control (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请公开了一种LLDP报文的处理方法及装置,其中,该方法中包括:预先定义KEEP TLV,KEEP TLV用于携带本次发布的信息数据对应的满足预定条件的TLV类型,其中,该预定条件包括:在本次发布的信息数据中对应于该TLV类型的信息数据与在前一次发布的信息数据中对应于该TLV类型的信息数据相同;当要发布信息数据时,将本次发布的信息数据与前一次发布的信息数据进行比较;若比较出本次发布的信息数据中与前一次发布的信息数据中对应于同一TLV类型的信息数据相同,则将该TLV类型添加到KEEP TLV中,并删除本次发布的信息数据中对应于该TLV类型的信息数据;将该KEEP TLV以及携带有本次发布的信息数据中的剩余信息数据的TLV封装到LLDP报文中,发送该LLDP报文。
Description
技术领域
本申请涉及网络通信技术领域,特别涉及一种LLDP报文的处理方法及装置。
背景技术
目前,网络通信设备的种类日益繁多且各自的配置错综复杂,为了使不同厂商的设备能够在网络中相互发现并交互各自的系统配置信息,需要有一个标准的信息交流平台。LLDP(Link Layer Discovery Protocol,链路层发现协议)就是在这样的背景下产生的,它提供了一种标准的链路层发现方式,可以将本端设备的主要能力、管理地址、设备标识和接口标识等信息组织成不同的TLV(Type Length Value,类型长度值),并封装在LLDPDU(Link Layer Discovery Protocol Data Unit,链路层发现协议数据单元),即LLDP报文中发布给与自己直连的邻居设备,邻居设备接收到这些信息后将其以标准MIB(Management Information Base,管理信息库)的形式保存起来,以供网络管理系统查询及自己判断链路的通信状况。
LLDP是通信设备之间的信息交互桥梁,可承载各种基本的设备信息交互及扩展信息交互,协议设计上有很大的可扩展性,基于LLDP的扩展应用有很多。LLDP通过TLV加OUISubType(组织唯一标识子类型,用于表示对应的TLV字段的类型)形式组织LLDP报文,可以方便不同的厂商对LLDP报文进行各种扩展使用。
下面对LLDP的各种TLV类型进行介绍如下:
(1)LLDP中基本的TLV类型如表1-1所示:
表1-1
(2)IEEE802.1中定义的TLV类型如表1-2所示:
表1-2
(3)IEEE802.3中定义的TLV类型如表1-3所示:
表1-3
(4)LLDP-MED(Media Endpoint Discovery,媒体端点发现)TLV为VoIP(Voiceover IP,在IP网络上传送语音)提供了许多高级的应用,包括基本配置、网络策略配置、地址信息以及目录管理等,满足了语音设备的不同生产厂商在成本有效、易部署、易管理等方面的要求,并解决了在以太网中部署语音设备的问题,为语音设备的生产者、销售者以及使用者提供了便利。LLDP-MED TLV类型如表1-4所示:
表1-4
此外,LLDP的最新标准中还定义了许多扩展TLV,例如:管理VLAN TLV、VIDUsageDigest TLV、QCN TLV、EVB TLV、CDCP TLV、APP TLV、PFC TLV和ETS TLV等。各个厂商私有的LLDP TLV也在应用实践中不断地新增。
发明内容
本申请提供了一种LLDP报文的处理方法及装置,旨在解决现有技术中存在的每次发布的LLDP报文中都携带完全相同的信息数据,造成了报文空间的浪费的问题,以及,当要发布的信息数据较多无法在一个LLDP报文中携带所有要发布的信息数据时,无法分多个LLDP报文进行发布的问题。
本申请的技术方案如下:
一方面,提供了一种LLDP报文的处理方法,包括:
预先定义KEEP TLV,KEEP TLV用于携带本次发布的信息数据对应的满足预定条件的TLV类型,其中,该预定条件包括:在本次发布的信息数据中对应于该TLV类型的信息数据与在前一次发布的信息数据中对应于该TLV类型的信息数据相同;
当要发布信息数据时,将本次发布的信息数据与前一次发布的信息数据进行比较;
若比较出本次发布的信息数据中与前一次发布的信息数据中对应于同一TLV类型的信息数据相同,则将该TLV类型添加到KEEP TLV中,并删除本次发布的信息数据中对应于该TLV类型的信息数据;
将该KEEP TLV以及携带有本次发布的信息数据中的剩余信息数据的TLV封装到LLDP报文中,发送该LLDP报文。
另一方面,还提供了一种LLDP报文的处理装置,包括:
定义模块,用于预先定义KEEP TLV,KEEP TLV用于携带本次发布的信息数据对应的满足预定条件的TLV类型,其中,该预定条件包括:在本次发布的信息数据中对应于该TLV类型的信息数据与在前一次发布的信息数据中对应于该TLV类型的信息数据相同;
比较模块,用于当要发布信息数据时,将本次发布的信息数据与前一次发布的信息数据进行比较;
添加模块,用于若比较模块比较出本次发布的信息数据中与前一次发布的信息数据中对应于同一TLV类型的信息数据相同,则将该TLV类型添加到KEEPTLV中;
删除模块,用于若比较模块比较出本次发布的信息数据中与前一次发布的信息数据中对应于同一TLV类型的信息数据相同,则删除本次发布的信息数据中对应于该TLV类型的信息数据;
封装模块,用于将该KEEP TLV以及携带有本次发布的信息数据中的剩余信息数据的TLV封装到LLDP报文中;
发送模块,用于发送封装模块封装得到的LLDP报文。
本申请的以上技术方案中,引入了一种新的TLV类型称为KEEP TLV,用于携带本次发布的信息数据对应的满足预定条件的TLV类型:在本次发布的信息数据中对应于该TLV类型的信息数据与在前一次发布的信息数据中对应于该TLV类型的信息数据相同;每次要发布信息数据时,将本次发布的信息数据与前一次发布的信息数据进行比较,若比较出本次发布的信息数据中与前一次发布的信息数据中对应于同一TLV类型的信息数据相同,则将该TLV类型添加到KEEP TLV中,并删除本次发布的信息数据中对应于该TLV类型的信息数据;将该KEEP TLV以及携带有本次发布的信息数据中的剩余信息数据的TLV封装到LLDP报文中,发送该LLDP报文。这样,对于信息内容完全没有发生改变的TLV类型,只需在KEEP TLV中携带该TLV类型,而无需携带该TLV类型对应的信息数据,从而精简了LLDP报文中需要携带的本次要发布的信息数据,可以使得LLDP报文在携带更少数据的基础上,发布更多的信息数据。
使用上述方法,在各次发布的信息数据中的大部分甚至全部不会发生改变的情况下,能够对没有发生改变的信息数据进行精简,每次发布的LLDP报文中无需携带完全相同的信息数据,只需携带这些相同的信息数据对应的TLV类型即可,节省了报文空间。
另外,当本端设备要发布的信息数据较多,无法在一个LLDP报文中携带所有要发布的信息数据时,也可以利用上述方法,首次发布时先通过LLDP报文发布其中一部分信息数据,第二次发布时,将首次发布的信息数据通过KEEP TLV进行精简,将其余的信息数据和该KEEP TLV通过LLDP报文发布出去,如果第二次发布时,除首次发布的信息数据以外的数据还是过长,无法在一个LLDP报文中携带完,则可以使用上述方法多次进行精简,直至全部信息数据均发布完毕。由于上述方法,是通过KEEP TLV将信息数据以增量的方式发布出去的,因此,邻居设备最终保存的就是完整的数据信息。
附图说明
图1是本申请实施例一的LLDP报文的处理方法的流程图;
图2是本申请实施例一的KEEP TLV的格式示意图;
图3是本申请实施例二的初始KEEP TLV的格式示意图;
图4是本申请实施例三的LLDP报文的处理装置的结构示意图。
具体实施方式
现有技术中存在以下两个问题:
(1)设备通过周期性发送LLDP报文来发布本设备的信息数据,而在大部分情况下,例如,网络稳定,用户对设备没有进行操作等情况下,各次发布的信息数据中的大部分甚至全部不会发生改变,这样,每次发布的LLDP报文中都携带有完全相同的信息数据,造成了报文空间的浪费。
(2)当本端设备要发布的信息数据较多,无法在一个LLDP报文中携带所有要发布的信息数据时,如果将所有要发布的信息数据携带在多个LLDP报文发送出去,即,每一个LLDP报文中携带部分信息数据,那么,邻居设备先后收到这些LLDP报文后,会认为最新收到的LLDP报文中携带的信息数据就是本端设备最新发布的信息数据,从而将前一次收到的LLDP报文中携带的信息数据覆盖,最终导致本地保存的是本端设备的部分信息数据,而非全部信息数据。
例如,本端设备要发布的信息数据记为A+B+C+D,由于无法在一个LLDP报文中携带完A+B+C+D,则使用2个LLDP报文分别携带A+B和C+D,假设,邻居设备先收到了携带A+B的LLDP报文,会将本地保存的对应于本端设备的信息数据更新为A+B,之后,收到携带C+D的LLDP报文后,又将本地保存的对应于本端设备的信息数据更新为C+D,该邻居设备最终保存的是本端设备发布的部分信息数据C+D,而该信息数据是错误的。
为了解决现有技术中存在的上述两个问题,本申请以下实施例中提供了一种LLDP报文的处理方法,以及一种可以应用该方法的装置。
本申请以下实施例中,将如表1-1所示的基本TLV的TLV类型称为基本TLV类型,将如表1-2~表1-4所示的扩展TLV以及其他组织或标准定义的扩展TLV的TLV类型称为扩展TLV类型,也可称为组织自定义的TLV类型。
实施例一
本申请实施例的方法可以由任一使能了LLDP的设备来执行,为了描述方便,将执行本申请实施例的方法的设备称为本端设备。本端设备会周期性地发布本设备的信息数据给邻居设备,其中,发布的信息数据由对应于不同TLV类型的信息数据组成,在发布时,不同TLV类型的数据信息会构成不同的TLV,将这些TLV封装到LLDP报文中发送给邻居设备。
如图1所示,本申请实施例的LLDP报文的处理方法包括以下步骤:
步骤S102,预先定义KEEP(保持)TLV;
其中,KEEP TLV可以是一种基本TLV类型,用于携带本次发布的信息数据对应的满足预定条件的TLV类型,其中,该预定条件包括:在本次发布的信息数据中对应于该TLV类型的信息数据与在前一次发布的信息数据中对应于该TLV类型的信息数据相同。也就是说,与前一次发布的信息数据中对应于该TLV类型的信息数据构成的至少一个TLV相比,本次发布的信息数据中对应于该TLV类型的信息数据构成的至少一个TLV完全没有发生改变,包括:TLV的个数没有改变、任一TLV的内容没有改变。
在实际实施过程中,KEEP TLV的具体格式可以如图2所示。如图2所示,KEEP TLV由以下字段组成:
(1)Type(类型)字段
Type字段用于表示本TLV的类型,当Type字段的值置为预定值时,表示本TLV为KEEP TLV;在实际实施过程中,第一值例如可以为125,Type字段的长度可以为7比特;
(2)Length(长度)字段
Length字段用于携带本TLV中除Type字段和Length字段以外的其他字段的总长度;Length字段的长度可以为9比特;
(3)BasicTLVNum(基本TLV数)字段
BasicTLVNum字段用于携带本次发布的信息数据对应的满足上述预定条件的基本TLV类型的总数N,其中,N为不小于0的正整数;
BasicTLVNum字段的长度可以是1字节;
(4)BasicTLVTypeList(基本TLV类型列表)字段
BasicTLVTypeList字段用于在N大于0时,携带本次发布的信息数据对应的满足预定条件的N个基本TLV类型,其中,每一个基本TLV类型可以占用1字节;
当N=0时,BasicTLVTypeList字段的长度为0;
(5)OrgTLVNum(组织自定义TLV数)字段
OrgTLVNum字段用于携带本次发布的信息数据对应的满足预定条件的扩展TLV类型的总数M,其中,M为不小于0的正整数;
OrgTLVNum字段的长度可以为1字节;
(6)OrgTLVTypeList(组织自定义TLV类型列表)字段
OrgTLVTypeList字段用于在M大于0时,携带本次发布的信息数据对应的满足预定条件的M个扩展TLV类型,其中,扩展TLV类型由OUI(Organizationally UniqueIdentifier,全球统一标识符)和Subtype(子类型)唯一标识;
每一个扩展TLV类型可以占用4字节,该扩展TLV类型的OUI占用其中的3字节,Subtype占用另外1字节;
当M=0时,OrgTLVTypeList字段的长度为0。
步骤S104,当要发布信息数据时,将本次发布的信息数据与前一次发布的信息数据进行比较;
具体的,针对每一个共有的TLV类型,判断本次发布的信息数据中对应于该TLV类型的信息数据与前一次发布的信息数据中对应于该TLV类型的信息数据是否相同;其中,共有的TLV类型是本次发布的信息数据和前一次发布的信息数据均对应的TLV类型。
步骤S106,若比较出本次发布的信息数据中与前一次发布的信息数据中对应于同一TLV类型(即,共有的TLV类型)的信息数据相同,则将该TLV类型添加到KEEP TLV中,并删除本次发布的信息数据中对应于该TLV类型的信息数据;
具体的,在步骤S106中,针对每一个共有的TLV类型,若比较出本次发布的信息数据中与前一次发布的信息数据中对应于该TLV类型的信息数据相同,则按照以下两种情况执行:
情况1:在该TLV类型是基本TLV类型时,将KEEP TLV中的BasicTLVNum字段的值加1,将该TLV类型添加到KEEP TLV中的BasicTLVTypeList字段中,并删除本次发布的信息数据中对应于该TLV类型的信息数据;
情况2:在该TLV类型是扩展TLV类型时,将KEEP TLV中的OrgTLVNum字段的值加1,将该TLV类型添加到KEEP TLV中的OrgTLVTypeList字段中,并删除本次发布的信息数据中对应于该TLV类型的信息数据。
例如,本次发布的信息数据中对应于Port And Protocol VLAN ID这一扩展TLV类型的信息数据与前一次发布的信息数据中对应于该Port And Protocol VLAN ID的信息数据相同,则将KEEP TLV中的OrgTLVNum字段的值加1,并将该Port And Protocol VLAN ID添加到KEEP TLV中的OrgTLVTypeList字段中,并从本次发布的信息数据中删除对应于PortAnd Protocol VLAN ID的信息数据。
步骤S108,将该KEEP TLV以及携带有本次发布的信息数据中的剩余信息数据的TLV封装到LLDP报文中,发送该LLDP报文。
本申请实施例的技术方案中,引入了一种新的TLV类型称为KEEP TLV,用于携带本次发布的信息数据对应的满足预定条件的TLV类型:在本次发布的信息数据中对应于该TLV类型的信息数据与在前一次发布的信息数据中对应于该TLV类型的信息数据相同;每次要发布信息数据时,将本次发布的信息数据与前一次发布的信息数据进行比较,若比较出本次发布的信息数据中与前一次发布的信息数据中对应于同一TLV类型的信息数据相同,则将该TLV类型添加到KEEP TLV中,并删除本次发布的信息数据中对应于该TLV类型的信息数据;将该KEEP TLV以及携带有本次发布的信息数据中的剩余信息数据的TLV封装到LLDP报文中,发送该LLDP报文。这样,对于信息内容完全没有发生改变的TLV类型,只需在KEEP TLV中携带该TLV类型,而无需携带该TLV类型对应的信息数据,从而精简了LLDP报文中需要携带的本次要发布的信息数据,可以使得LLDP报文在携带更少数据的基础上,发布更多的信息数据。
使用上述方法,在各次发布的信息数据中的大部分甚至全部不会发生改变的情况下,能够对没有发生改变的信息数据进行精简,每次发布的LLDP报文中无需携带完全相同的信息数据,只需携带这些相同的信息数据对应的TLV类型即可,节省了报文空间。
另外,当本端设备要发布的信息数据较多,无法在一个LLDP报文中携带所有要发布的信息数据时,也可以利用上述方法,首次发布时先通过LLDP报文发布其中一部分信息数据,第二次发布时,将首次发布的信息数据通过KEEP TLV进行精简,将其余的信息数据和该KEEP TLV通过LLDP报文发布出去,如果第二次发布时,除首次发布的信息数据以外的数据还是过长,无法在一个LLDP报文中携带完,则可以使用上述方法多次进行精简,直至全部信息数据均发布完毕。由于上述方法,是通过KEEP TLV将信息数据以增量的方式发布出去的,因此,邻居设备最终保存的就是完整的数据信息。
另外,在步骤S104之后,若比较出针对每一个共有的TLV类型,本次发布的信息数据中与前一次发布的信息数据中对应于该TLV类型的信息数据均不相同,则将KEEP TLV中的BasicTLVNum字段和OrgTLVNum字段的值分别置为0;将该KEEP TLV和携带有本次发布的信息数据的TLV封装到LLDP报文中,发送该LLDP报文。
在首次发布信息数据时,由于之前没有发布过信息数据,因此,当首次要发布信息数据时,也会将KEEP TLV中的BasicTLVNum字段和OrgTLVNum字段的值分别置为0;将该KEEPTLV和携带有本次发布的信息数据的TLV封装到LLDP报文中,发送该LLDP报文。
同样,邻居设备也会执行上述方法,此时,本端设备还会执行以下操作:
步骤S202,接收邻居设备发来的LLDP报文,其中,接收的LLDP报文中携带有KEEPTLV;之后执行步骤S204;
步骤S204,判断该KEEP TLV中的BasicTLVNum字段的值是否大于0且判断该KEEPTLV中的OrgTLVNum字段的值是否大于0,根据以下不同的判断结果,执行相应的步骤;
判断结果1:若该KEEP TLV中的BasicTLVNum字段的值大于0,则从该KEEP TLV中的BasicTLVTypeList字段中获取TLV类型;若该KEEP TLV中的OrgTLVNum字段的值大于0,则从该KEEP TLV中的OrgTLVTypeList字段中获取TLV类型;然后,根据获取到的TLV类型,从本地保存的该邻居设备发布的信息数据中获取对应于该TLV类型的信息数据;确定该邻居设备本次发布的信息数据为获取到的信息数据以及接收的LLDP报文中除该KEEP TLV以外的其它TLV中携带的信息数据。
判断结果2:若该KEEP TLV中的BasicTLVNum字段的值和OrgTLVNum字段的值均等于0,则确定该邻居设备本次发布的信息数据为接收的LLDP报文中除该KEEP TLV以外的其它TLV中携带的信息数据。
在实际实施过程中,在执行上述方法时,需要注意以下问题:
(1)支持本申请实施例的方法的设备,每一次发布信息数据时,必须携带KEEPTLV。
为了描述方便,以下将支持本申请实施例的方法的设备称为新设备,将不支持本申请实施例的方法的设备称为老设备。将BasicTLVNum字段的值和OrgTLVNum字段的值均等于0时的KEEP TLV称为初始KEEP TLV。
(2)KEEP TLV的位置需要符合LLDP协议要求,可以出现在三个必选TLV类型:Chassis ID、Port ID、Time To Live的后面,以及End of LLDPDU前面的任意位置。
(3)不能对以下TLV类型的信息数据进行精简:Chassis ID、Port ID、Time ToLive、End of LLDPDU。
(4)为了兼容老设备,对于新设备来说,如果收到一部分邻居设备发来的LLDP报文中携带有初始KEEP TLV,而另一部分邻居设备发来的LLDP报文中不携带初始KEEP TLV,即,说明该新设备的一部分邻居设备是新设备,而一部分邻居设备是老设备,则不使用KEEPTLV对要发布的信息数据进行精简,但是需要持续发布携带初始KEEP TLV的LLDP报文。也就是说,即使与前一次发布的信息数据相比,本次发布的信息数据中有没有发生改变的信息数据,也不能通过KEEP TLV进行精简,但是,发出的LLDP报文中必须携带有初始KEEP TLV。
否则,若收到的所有邻居设备发来的LLDP报文中均携带有KEEP TLV,则在首次通过LLDP报文发布了信息数据之后,使用本申请实施例的方法进行精简。
(5)老设备收到携带有KEEP TLV的LLDP报文后,将KEEP TLV作为不可识别的TLV进行处理。
其中,在实际实施过程中,为了防止丢包,针对每一次要发布的数据信息,设备可以重复发送多个相同的LLDP报文。
实施例二
以以下应用场景一为例,对上述实施例一中的方法进行详细说明。
应用场景一:设备1及其所有邻居设备均是新设备,设备1会通过LLDP报文周期性地向邻居设备发布本设备的信息数据。假设,设备1第一次需要发布的信息数据记为A+B+C,由于网络相对比较稳定,第二次需要发布的信息数据记为A+B+C'。
此时,需要执行的步骤如下:
步骤S302,当第一次需要发布信息数据时,设备1将第一次需要发布的信息数据A+B+C组装成多个不同TLV类型的TLV;
步骤S304,设备1构造KEEP TLV,将该KEEP TLV中的BasicTLVNum字段的值和OrgTLVNum字段的值设置为0,此时,该KEEP TLV(即初始KEEP TLV)的格式如图3所示;
步骤S306,设备1将该KEEP TLV和步骤S302中组装得到的多个TLV,封装到一个LLDP报文(记为LLDP报文1)中,发送给邻居设备;
在实际实施过程中,为了防止丢包,在步骤S306中可以连续发送多个,如3个LLDP报文1。
步骤S308,设备1的邻居设备接收到设备1发来的LLDP报文后,发现其中的KEEPTLV中的BasicTLVNum字段的值和OrgTLVNum字段的值均为0,则将除该KEEP TLV以外的其他TLV中携带的信息数据A+B+C保存到本地;
同样,设备1的邻居设备也会向设备1发送携带有初始KEEP TLV的LLDP报文。
步骤S310,设备1在收到了所有邻居设备发来的携带有初始KEEP TLV的LLDP报文之后,当第二次需要发布信息数据时,设备1将本次要发布的信息数据A+B+C'与前一次发布的信息数据A+B+C进行比较,发现本次发布的信息数据中的A+B与前一次发布的数据信息中的A+B是相同的,因此,将A+B对应的至少两个TLV类型中的基本TLV类型添加到KEEP TLV中的BasicTLVTypeList字段中,该基本TLV类型的个数添加到BasicTLVNum字段中,将该至少两个TLV类型中的扩展TLV类型添加到OrgTLVTypeList字段中,将本次要发布的信息数据中C'组装成对应的TLV,与KEEP TLV一起封装到一个LLDP报文中,发送给邻居设备;
步骤S312,设备1的邻居设备接收到该LLDP报文后,发现其中的BasicTLVNum字段的值和OrgTLVNum字段的值均大于0,则从BasicTLVTypeList字段和OrgTLVTypeList字段中获取TLV类型,从本地保存的信息数据A+B+C中获取对应于这些TLV类型的信息数据A+B,确认设备1本次发布的信息数据是A+B+C',将本地保存的A+B+C更新为A+B+C'。
实施例三
以以下应用场景二为例,对上述实施例一中的方法进行详细说明。
应用场景二:设备1及其邻居设备都是新设备,设备1通过LLDP报文周期性地向邻居设备发布本设备的信息数据。假设,设备1某一次要发布的信息数据过长,无法在一个LLDP报文中携带,将该信息数据记为A+B+C+D。
此时,需要执行的步骤如下:
步骤S402,由于要发布的信息数据A+B+C+D无法在一个LLDP报文中携带,则将部分信息数据A+B组装成多个不同TLV类型的TLV,将KEEP TLV中的BasicTLVNum字段和OrgTLVNum字段的值均设置为0,将该KEEP TLV(即初始KEEP TLV)和组装得到的这些TLV封装到一个LLDP报文中,发送给邻居设备;
步骤S404,设备1的邻居设备接收到该LLDP报文后,发现该报文中的KEEP TLV中的BasicTLVNum字段和OrgTLVNum字段的值均为0,则认为设备1本次发布的信息数据是除该KEEP TLV以外的其他TLV中携带的信息数据A+B,并保存到本地;
同样,设备1的邻居设备也会向设备1发送携带有初始KEEP TLV的LLDP报文。
步骤S406,设备1在收到了所有邻居设备发来的携带有初始KEEP TLV的LLDP报文之后,当再次要发布信息数据A+B+C+D时,将A+B+C+D与前一次发布的信息数据A+B进行比较,发现本次要发布的A+B与前一次发布的A+B是相同的,则将A+B对应的至少两个TLV类型中的基本TLV类型添加到KEEP TLV中的BasicTLVTypeList字段中,该基本TLV类型的个数添加到BasicTLVNum字段中,将该至少两个TLV类型中的扩展TLV类型添加到OrgTLVTypeList字段中,将本次要发布的信息数据中C+D组装成对应的TLV,与KEEP TLV一起封装到一个LLDP报文中,发送给邻居设备;
步骤S408,设备1的邻居设备收到该LLDP报文后,发现其中的BasicTLVNum字段的值和OrgTLVNum字段的值均大于0,则从BasicTLVTypeList字段和OrgTLVTypeList字段中获取TLV类型,从本地保存的信息数据A+B中获取对应于这些TLV类型的信息数据A+B,确认设备1本次发布的信息数据是A+B+C+D,将本地保存的A+B更新为A+B+C+D。
从而,设备1最终将要发布的信息数据A+B+C+D发布给了所有邻居设备。
实施例四
针对上述实施例一中的方法,本申请实施例中提供了一种可以应用该方法的LLDP报文的处理装置。
如图4所示,本申请实施例中的LLDP报文的处理装置中包括以下模块:定义模块10、比较模块20、添加模块30、删除模块40、封装模块50和发送模块60,其中:
定义模块10,用于预先定义KEEP TLV,KEEP TLV用于携带本次发布的信息数据对应的满足预定条件的TLV类型,其中,该预定条件包括:在本次发布的信息数据中对应于该TLV类型的信息数据与在前一次发布的信息数据中对应于该TLV类型的信息数据相同;
比较模块20,用于当要发布信息数据时,将本次发布的信息数据与前一次发布的信息数据进行比较;
添加模块30,用于若比较模块20比较出本次发布的信息数据中与前一次发布的信息数据中对应于同一TLV类型的信息数据相同,则将该TLV类型添加到KEEP TLV中;
删除模块40,用于若比较模块20比较出本次发布的信息数据中与前一次发布的信息数据中对应于同一TLV类型的信息数据相同,则删除本次发布的信息数据中对应于该TLV类型的信息数据;
封装模块50,用于将该KEEP TLV以及携带有本次发布的信息数据中的剩余信息数据的TLV封装到LLDP报文中;
发送模块60,用于发送封装模块50封装得到的LLDP报文。
具体的,KEEP TLV中包含有:BasicTLVNum字段、BasicTLVTypeList字段、OrgTLVNum字段和OrgTLVTypeList字段;
其中,BasicTLVNum字段用于携带本次发布的信息数据对应的满足上述预定条件的基本TLV类型的总数N,其中,N为不小于0的正整数;
BasicTLVTypeList字段用于在N大于0时,携带本次发布的信息数据对应的满足上述预定条件的N个基本TLV类型;
OrgTLVNum字段用于携带本次发布的信息数据对应的满足上述预定条件的扩展TLV类型的总数M,其中,M为不小于0的正整数;
OrgTLVTypeList字段用于在M大于0时,携带本次发布的信息数据对应的满足上述预定条件的M个扩展TLV类型。
上述装置中的添加模块具体用于:针对每一个共有的TLV类型,若比较模块比较出本次发布的信息数据中与前一次发布的信息数据中对应于该TLV类型的信息数据相同,则在该TLV类型是基本TLV类型时,将KEEP TLV中的BasicTLVNum字段的值加1,并将该TLV类型添加到KEEP TLV中的BasicTLVTypeList字段中,在该TLV类型是扩展TLV类型时,将KEEPTLV中的OrgTLVNum字段的值加1,并将该TLV类型添加到KEEP TLV中的OrgTLVTypeList字段中;其中,共有的TLV类型是本次发布的信息数据和前一次发布的信息数据均对应的TLV类型。
另外,上述装置中还可以包括:第一处理模块,用于若比较模块比较出针对每一个共有的TLV类型,本次发布的信息数据中与前一次发布的信息数据中对应于该TLV类型的信息数据均不相同,则将KEEP TLV中的BasicTLVNum字段和OrgTLVNum字段的值分别置为0。
上述装置中还可以包括:第二处理模块,用于当首次要发布信息数据时,将KEEPTLV中的BasicTLVNum字段和OrgTLVNum字段的值分别置为0。
上述装置中还可以包括:接收模块、获取模块和确定模块,其中:
接收模块,用于接收邻居设备发来的LLDP报文,其中,接收的LLDP报文中携带有KEEP TLV;
获取模块,用于若接收模块接收到的LLDP报文中携带的KEEP TLV中的BasicTLVNum字段的值大于0,则从该KEEP TLV中的BasicTLVTypeList字段中获取TLV类型,若该KEEP TLV中的OrgTLVNum字段的值大于0,则从该KEEP TLV中的OrgTLVTypeList字段中获取TLV类型;还用于根据获取到的TLV类型,从本地保存的该邻居设备发布的信息数据中获取对应于该TLV类型的信息数据;
确定模块,用于确定该邻居设备本次发布的信息数据为获取模块获取到的信息数据以及接收模块接收到的LLDP报文中除该KEEP TLV以外的其它TLV中携带的信息数据。
另外,确定模块,还用于若接收模块接收到的LLDP报文中携带的KEEP TLV中的BasicTLVNum字段的值和OrgTLVNum字段的值均等于0,则确定该邻居设备本次发布的信息数据为接收的LLDP报文中除该KEEP TLV以外的其它TLV中携带的信息数据。
综上,本申请以上实施例可以达到以下技术效果:
本申请实施例的技术方案中,引入了一种新的TLV类型称为KEEP TLV,用于携带本次发布的信息数据对应的满足预定条件的TLV类型:在本次发布的信息数据中对应于该TLV类型的信息数据与在前一次发布的信息数据中对应于该TLV类型的信息数据相同;每次要发布信息数据时,将本次发布的信息数据与前一次发布的信息数据进行比较,若比较出本次发布的信息数据中与前一次发布的信息数据中对应于同一TLV类型的信息数据相同,则将该TLV类型添加到KEEP TLV中,并删除本次发布的信息数据中对应于该TLV类型的信息数据;将该KEEP TLV以及携带有本次发布的信息数据中的剩余信息数据的TLV封装到LLDP报文中,发送该LLDP报文。这样,对于信息内容完全没有发生改变的TLV类型,只需在KEEP TLV中携带该TLV类型,而无需携带该TLV类型对应的信息数据,从而精简了LLDP报文中需要携带的本次要发布的信息数据,可以使得LLDP报文在携带更少数据的基础上,发布更多的信息数据。
使用上述方法,在各次发布的信息数据中的大部分甚至全部不会发生改变的情况下,能够对没有发生改变的信息数据进行精简,每次发布的LLDP报文中无需携带完全相同的信息数据,只需携带这些相同的信息数据对应的TLV类型即可,节省了报文空间。
另外,当本端设备要发布的信息数据较多,无法在一个LLDP报文中携带所有要发布的信息数据时,也可以利用上述方法,首次发布时先通过LLDP报文发布其中一部分信息数据,第二次发布时,将首次发布的信息数据通过KEEP TLV进行精简,将其余的信息数据和该KEEP TLV通过LLDP报文发布出去,如果第二次发布时,除首次发布的信息数据以外的数据还是过长,无法在一个LLDP报文中携带完,则可以使用上述方法多次进行精简,直至全部信息数据均发布完毕。由于上述方法,是通过KEEP TLV将信息数据以增量的方式发布出去的,因此,邻居设备最终保存的就是完整的数据信息。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (14)
1.一种链路层发现协议LLDP报文的处理方法,其特征在于,包括:
预先定义保持KEEP类型长度值TLV,所述KEEP TLV用于携带本次发布的信息数据对应的满足预定条件的TLV类型,其中,所述预定条件包括:在本次发布的信息数据中对应于该TLV类型的信息数据与在前一次发布的信息数据中对应于该TLV类型的信息数据相同;
当要发布信息数据时,将本次发布的信息数据与前一次发布的信息数据进行比较;
若比较出本次发布的信息数据中与前一次发布的信息数据中对应于同一TLV类型的信息数据相同,则将该TLV类型添加到KEEP TLV中,并删除本次发布的信息数据中对应于该TLV类型的信息数据;
将该KEEP TLV以及携带有本次发布的信息数据中的剩余信息数据的TLV封装到LLDP报文中,发送该LLDP报文。
2.根据权利要求1所述的方法,其特征在于,KEEP TLV中包含有:基本类型长度值数BasicTLVNum字段、基本类型长度值类型列表BasicTLVTypeList字段、组织自定义类型长度值数OrgTLVNum字段和组织自定义类型长度值类型列表OrgTLVTypeList字段;
其中,BasicTLVNum字段用于携带本次发布的信息数据对应的满足所述预定条件的基本TLV类型的总数N,其中,N为不小于0的整数;
BasicTLVTypeList字段用于在N大于0时,携带本次发布的信息数据对应的满足所述预定条件的N个基本TLV类型;
OrgTLVNum字段用于携带本次发布的信息数据对应的满足所述预定条件的扩展TLV类型的总数M,其中,M为不小于0的整数;
OrgTLVTypeList字段用于在M大于0时,携带本次发布的信息数据对应的满足所述预定条件的M个扩展TLV类型。
3.根据权利要求2所述的方法,其特征在于,若比较出本次发布的信息数据中与前一次发布的信息数据中对应于同一TLV类型的信息数据相同,则将该TLV类型添加到KEEP TLV中的方法包括:
针对每一个共有的TLV类型,若比较出本次发布的信息数据中与前一次发布的信息数据中对应于该TLV类型的信息数据相同,则在该TLV类型是基本TLV类型时,将KEEP TLV中的BasicTLVNum字段的值加1,并将该TLV类型添加到KEEP TLV中的BasicTLVTypeList字段中,在该TLV类型是扩展TLV类型时,将KEEP TLV中的OrgTLVNum字段的值加1,并将该TLV类型添加到KEEP TLV中的OrgTLVTypeList字段中;
其中,共有的TLV类型是本次发布的信息数据和前一次发布的信息数据均对应的TLV类型。
4.根据权利要求2所述的方法,其特征在于,在将本次发布的信息数据与前一次发布的信息数据进行比较之后,还包括:
若比较出针对每一个共有的TLV类型,本次发布的信息数据中与前一次发布的信息数据中对应于该TLV类型的信息数据均不相同,则将KEEP TLV中的BasicTLVNum字段和OrgTLVNum字段的值分别置为0;
将该KEEP TLV和携带有本次发布的信息数据的TLV封装到LLDP报文中,发送该LLDP报文。
5.根据权利要求2所述的方法,其特征在于,还包括:
当首次要发布信息数据时,将KEEP TLV中的BasicTLVNum字段和OrgTLVNum字段的值分别置为0;
将该KEEP TLV和携带有本次发布的信息数据的TLV封装到LLDP报文中,发送该LLDP报文。
6.根据权利要求3至5中任一项所述的方法,其特征在于,还包括:
接收邻居设备发来的LLDP报文,其中,接收的LLDP报文中携带有KEEP TLV;
若该KEEP TLV中的BasicTLVNum字段的值大于0,则从该KEEP TLV中的BasicTLVTypeList字段中获取TLV类型,若该KEEP TLV中的OrgTLVNum字段的值大于0,则从该KEEP TLV中的OrgTLVTypeList字段中获取TLV类型;
根据获取到的TLV类型,从本地保存的该邻居设备发布的信息数据中获取对应于该TLV类型的信息数据;
确定该邻居设备本次发布的信息数据为获取到的信息数据以及接收的LLDP报文中除该KEEP TLV以外的其它TLV中携带的信息数据。
7.根据权利要求6所述的方法,其特征在于,在接收邻居设备发来的LLDP报文之后,还包括:
若该KEEP TLV中的BasicTLVNum字段的值和OrgTLVNum字段的值均等于0,则确定该邻居设备本次发布的信息数据为接收的LLDP报文中除该KEEP TLV以外的其它TLV中携带的信息数据。
8.一种链路层发现协议LLDP报文的处理装置,其特征在于,包括:
定义模块,用于预先定义保持KEEP类型长度值TLV,所述KEEP TLV用于携带本次发布的信息数据对应的满足预定条件的TLV类型,其中,所述预定条件包括:在本次发布的信息数据中对应于该TLV类型的信息数据与在前一次发布的信息数据中对应于该TLV类型的信息数据相同;
比较模块,用于当要发布信息数据时,将本次发布的信息数据与前一次发布的信息数据进行比较;
添加模块,用于若所述比较模块比较出本次发布的信息数据中与前一次发布的信息数据中对应于同一TLV类型的信息数据相同,则将该TLV类型添加到KEEP TLV中;
删除模块,用于若所述比较模块比较出本次发布的信息数据中与前一次发布的信息数据中对应于同一TLV类型的信息数据相同,则删除本次发布的信息数据中对应于该TLV类型的信息数据;
封装模块,用于将该KEEP TLV以及携带有本次发布的信息数据中的剩余信息数据的TLV封装到LLDP报文中;
发送模块,用于发送所述封装模块封装得到的LLDP报文。
9.根据权利要求8所述的装置,其特征在于,KEEP TLV中包含有:基本类型长度值数BasicTLVNum字段、基本类型长度值类型列表BasicTLVTypeList字段、组织自定义类型长度值数OrgTLVNum字段和组织自定义类型长度值类型列表OrgTLVTypeList字段;
其中,BasicTLVNum字段用于携带本次发布的信息数据对应的满足所述预定条件的基本TLV类型的总数N,其中,N为不小于0的整数;
BasicTLVTypeList字段用于在N大于0时,携带本次发布的信息数据对应的满足所述预定条件的N个基本TLV类型;
OrgTLVNum字段用于携带本次发布的信息数据对应的满足所述预定条件的扩展TLV类型的总数M,其中,M为不小于0的整数;
OrgTLVTypeList字段用于在M大于0时,携带本次发布的信息数据对应的满足所述预定条件的M个扩展TLV类型。
10.根据权利要求9所述的装置,其特征在于,所述添加模块具体用于:
针对每一个共有的TLV类型,若所述比较模块比较出本次发布的信息数据中与前一次发布的信息数据中对应于该TLV类型的信息数据相同,则在该TLV类型是基本TLV类型时,将KEEP TLV中的BasicTLVNum字段的值加1,并将该TLV类型添加到KEEP TLV中的BasicTLVTypeList字段中,在该TLV类型是扩展TLV类型时,将KEEP TLV中的OrgTLVNum字段的值加1,并将该TLV类型添加到KEEP TLV中的OrgTLVTypeList字段中;
其中,共有的TLV类型是本次发布的信息数据和前一次发布的信息数据均对应的TLV类型。
11.根据权利要求9所述的装置,其特征在于,还包括:
第一处理模块,用于若所述比较模块比较出针对每一个共有的TLV类型,本次发布的信息数据中与前一次发布的信息数据中对应于该TLV类型的信息数据均不相同,则将KEEPTLV中的BasicTLVNum字段和OrgTLVNum字段的值分别置为0。
12.根据权利要求9所述的装置,其特征在于,还包括:
第二处理模块,用于当首次要发布信息数据时,将KEEP TLV中的BasicTLVNum字段和OrgTLVNum字段的值分别置为0。
13.根据权利要求10至12中任一项所述的装置,其特征在于,还包括:
接收模块,用于接收邻居设备发来的LLDP报文,其中,接收的LLDP报文中携带有KEEPTLV;
获取模块,用于若所述接收模块接收到的LLDP报文中携带的KEEP TLV中的BasicTLVNum字段的值大于0,则从该KEEP TLV中的BasicTLVTypeList字段中获取TLV类型,若该KEEP TLV中的OrgTLVNum字段的值大于0,则从该KEEP TLV中的OrgTLVTypeList字段中获取TLV类型;还用于根据获取到的TLV类型,从本地保存的该邻居设备发布的信息数据中获取对应于该TLV类型的信息数据;
确定模块,用于确定该邻居设备本次发布的信息数据为所述获取模块获取到的信息数据以及所述接收模块接收到的LLDP报文中除该KEEP TLV以外的其它TLV中携带的信息数据。
14.根据权利要求13所述的装置,其特征在于,
所述确定模块,还用于若所述接收模块接收到的LLDP报文中携带的KEEP TLV中的BasicTLVNum字段的值和OrgTLVNum字段的值均等于0,则确定该邻居设备本次发布的信息数据为接收的LLDP报文中除该KEEP TLV以外的其它TLV中携带的信息数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410089614.1A CN103825813B (zh) | 2014-03-12 | 2014-03-12 | Lldp报文的处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410089614.1A CN103825813B (zh) | 2014-03-12 | 2014-03-12 | Lldp报文的处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103825813A CN103825813A (zh) | 2014-05-28 |
CN103825813B true CN103825813B (zh) | 2017-02-15 |
Family
ID=50760654
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410089614.1A Active CN103825813B (zh) | 2014-03-12 | 2014-03-12 | Lldp报文的处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103825813B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104320347B (zh) * | 2014-10-31 | 2017-10-17 | 新华三技术有限公司 | 一种主动更新lldp的方法及设备 |
CN105357127B (zh) * | 2015-12-17 | 2018-10-26 | 上海市共进通信技术有限公司 | 携带公告协商tlv的lldp报文的处理系统及方法 |
CN106789709B (zh) * | 2016-12-21 | 2020-03-03 | 迈普通信技术股份有限公司 | 一种负载均衡的方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102739448A (zh) * | 2012-06-28 | 2012-10-17 | 华为技术有限公司 | 传输报文的方法、设备和系统 |
CN103179014A (zh) * | 2013-04-10 | 2013-06-26 | 杭州华三通信技术有限公司 | Lldp报文的处理方法及装置 |
CN103441983A (zh) * | 2013-07-11 | 2013-12-11 | 盛科网络(苏州)有限公司 | 基于链路层发现协议的信息保护方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9215146B2 (en) * | 2012-06-15 | 2015-12-15 | Hewlett Packard Enterprise Development Lp | Switch identification |
-
2014
- 2014-03-12 CN CN201410089614.1A patent/CN103825813B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102739448A (zh) * | 2012-06-28 | 2012-10-17 | 华为技术有限公司 | 传输报文的方法、设备和系统 |
CN103179014A (zh) * | 2013-04-10 | 2013-06-26 | 杭州华三通信技术有限公司 | Lldp报文的处理方法及装置 |
CN103441983A (zh) * | 2013-07-11 | 2013-12-11 | 盛科网络(苏州)有限公司 | 基于链路层发现协议的信息保护方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103825813A (zh) | 2014-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106131919B (zh) | 一种无中心自组织网络拓扑的同步方法 | |
CN105391628B (zh) | 数据传送系统及数据传送方法 | |
EP2951953A1 (en) | Method of managing zigbee network in the internet of things | |
CN101459536A (zh) | 端口配置方法和交换设备 | |
CN104780499A (zh) | 一种基于蓝牙的多设备智能互连方法及系统 | |
CN101252503B (zh) | 环网的业务倒换方法和装置 | |
WO2007144822A3 (en) | Method of communicating data in communication systems | |
CN103825813B (zh) | Lldp报文的处理方法及装置 | |
CN107465622A (zh) | 一种利用lldp实现网络拓扑发现的方法和系统 | |
CN102812744A (zh) | 用于移动回程网络的efm-oam和cfm-oam的互配 | |
CN106304401A (zh) | 一种公共wlan架构下的数据隧道建立方法和ap | |
CN102546409B (zh) | 一种基于trill网络的处理报文的方法和路由桥 | |
CN107277842A (zh) | 一种数据传输模式的选择方法、装置及网络系统 | |
CN101179511A (zh) | 获取网络地址的方法及接入设备 | |
CN104469764A (zh) | 一种wlan组网方法及系统 | |
CN103227733B (zh) | 一种拓扑发现方法及系统 | |
CN103179014B (zh) | Lldp报文的处理方法及装置 | |
CN107181614B (zh) | 一种wifi网络及其组网方法和数据传输方法 | |
CN101599865A (zh) | 一种基于唯一公网ip地址的集群网络的管理方法 | |
WO2017215383A1 (zh) | 网元配置方法及装置、网元管理方法及装置 | |
CN106550321A (zh) | 一种基于混合通信模式的移动自组网的构建方法 | |
WO2019157871A1 (zh) | 一种无线回程网络、通信方法及装置 | |
CN104135441B (zh) | 一种报文处理方法和装置 | |
JP2006203723A (ja) | 無線アクセスポイント及びその経路決定方法又はその通信方法、無線通信システム及びその通信方法 | |
CN110401716A (zh) | 边缘节点之间的通信方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |