具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例适用于一种SDN,如图1所示,该SDN包括控制器10和4个交换节点11至14,其中控制器10与交换节点11至14分别通过诸如A、B、C和D等双向控制链路连接,双向控制链路用于控制器10与交换节点之间传输诸如packet-out消息和packet-in消息等控制信令;不同的交换节点之间可以通过诸如E、F、G和H等双向数据链路连接,双向数据链路用于在相邻的交换节点之间传输数据。
在实际应用中,交换节点11至14可以是openflow交换机,也可以是其他类型的交换机,抑或是可以转发非LLDP帧的其他交换节点。交换节点通常包括控制器端口,用于在交换节点与控制器10之间传输诸如packet-out消息、packet-in消息等控制信令。例如,如图1所示,端口p1用于交换节点12与控制器10之间传输控制信令,端口p4用于交换节点13与控制器10之间传输控制信令。除控制器端口外,交换节点还包括与其他交换节点相连的非控制器端口,通常用于在该交换节点与其他交换节点之间传输数据。例如,如图1所示,端口p2和p3用于交换节点12与交换节点13之间传输数据。
在如图1所示的所有双向数据链路中,双向数据链路E可以透传诸如UDP包、IP报文或以太网(Ethernet)帧等数据,但双向数据链路E包含了不能透传LLDP帧的中间节点和/或中间网络,导致交换节点13不能接收到交换节点12发送的LLDP帧,同样地,交换节点12也不能接收到交换节点13发送的LLDP帧。根据现有技术,控制器10不能获取交换节点12和13之间的链路信息。如图2所示,现有技术获取的SDN全网视图并不包括交换节点12和13之间的双向数据链路E。
如图3所示,本申请实施例提供了一种获取SDN全网视图的方法,该方法包括:
步骤301、控制器向源交换节点发送源LLDP封装帧。
其中,源LLDP封装帧包括源封装信息和源交换节点信息,源交换节点信息用于源交换节点向目的交换节点发送源LLDP封装帧。
在本实施例的一种实施方式中,控制器可以是软件化的网络管理系统(NetworkManagement System,NMS)。在本实施例的另一种实施方式中,控制器也可以是集中控制SDN中的全部或部分交换节点的软硬件实体。
在本实施例的一种实施方式中,源交换节点是指从控制器接收源LLDP封装帧的交换节点,目的交换节点是指从源交换节点接收源LLDP封装帧的交换节点。例如,如图1所示,若控制器10通过控制器端口p1向交换节点12发送源LLDP封装帧,并指示交换节点12通过非控制器端口p2(根据源LLDP封装帧携带的源交换节点信息)向交换节点13发送源LLDP封装帧,交换节点13通过与交换节点12直接或间接相连的非控制器端口p3接收该源LLDP封装帧,则交换节点12为源交换节点,交换节点12交换节点12的端口p2为指定发送端口,交换节点13为目的交换节点,交换节点13的端口p3为接收端口。
需要说明的是,源LLDP封装帧是由控制器根据输入的配置信息生成源封装信息,并利用源封装信息封装了原始LLDP帧的一种控制信令。原始LLDP帧是指现有技术中的LLDP帧,在本实施例中,用于区分源LLDP封装帧与数据帧,其中数据帧用于承载数据。
如图3a所示,源LLDP封装帧包括源交换节点信息、源封装信息和原始LLDP帧。
其中,源交换节点信息可以包括源交换节点标识(Identifier,ID)和指定发送端口ID。源交换节点ID可以用于标识源交换节点的身份。例如,源交换节点ID可以是源交换节点的媒体访问控制(Media Access Control,MAC)地址。指定发送端口ID用于指示源交换节点通过控制器指定的全部或部分非控制器端口,向直接或间接相连的其他交换节点(目的交换节点)转发源LLDP封装帧。例如,指定发送端口ID可以是源交换节点的非控制器端口的端口号。
如图3b所示,源封装信息可以包括MAC首部、IP首部和UDP首部中的至少一种。或者,如图3c所示,源封装信息可以包括MAC首部、IP首部和TCP首部中的至少一种。
在本实施例的一种实施方式中,如图3b或图3c所示,源封装信息可以只包括MAC首部,且MAC首部可以包括目的MAC地址、源MAC地址和以太网类型,其中以太网类型的数值可以为0x0800。
在本实施例的另一种实施方式中,如图3b或图3c所示,除MAC首部外,源封装信息还可以包括IP首部,且IP首部可以包括源IP地址、目的IP地址和IP协议字段,其中IP协议字段的数值可以为0x11。
在本实施例的另一种实施方式中,如图3b所示,除MAC首部和IP首部外,源封装信息还可以包括UDP首部,且UDP首部可以包括UDP源端口号和UDP目的端口号。
在本实施例的另一种实施方式中,如图3c所示,除MAC首部和IP首部外,源封装信息还可以包括TCP首部,且TCP首部可以包括TCP源端口号和TCP目的端口号。
需要说明的是,若源封装信息包括UDP首部或TCP首部,则源封装信息还必须包括IP首部和MAC首部。若源封装信息包括IP首部,则源封装信息还必须包括MAC首部。换句话说,源封装信息可以只包括MAC首部,或者源封装信息可以包括MAC首部和IP首部,或者源封装信息可以包括MAC首部、IP首部和UDP首部,或者源封装信息可以包括MAC首部、IP首部和TCP首部。
在本实施例的一种实施方式中,源封装信息可以根据位于源交换节点与目的交换节点之间,且不能透传原始LLDP帧的中间设备和/或中间网络确定。
在本实施例的另一种实施方式中,也可以直接在源LLDP封装帧中从内到外依次封装UDP首部、IP首部和MAC首部,或者直接在源LLDP封装帧中从内到外依次封装TCP首部、IP首部和MAC首部。
此外,与上述MAC首部、IP首部、UDP首部或TCP首部相对应,如图3d所示,源封装信息还可以包括全局封装启用标志、MAC封装启用标志、IP封装启用标志、UDP封装启用标志和TCP封装启用标志,依次表示是否启用全局封装、是否启用MAC封装、是否启用IP封装、是否启用UDP封装以及是否启用TCP封装。需要说明的是,是否启用封装、以及启用哪几种封装可以根据实际的SDN确定,当然也可以默认启用上述全部封装启用标志,此时源封装信息可以不包括任何封装启用标志。
在本实施例的一种实施方式中,可以用二进制数字1表示启用封装,用二进制数字0表示不启用封装。在本实施例的另一种实施方式中,也可以用二进制数字0表示启用封装,用二进制数字1表示不启用封装。本申请实施例对此不作限定。
步骤302、源交换节点接收控制器发送的源LLDP封装帧。
源交换节点接收控制器发送的源LLDP封装帧,是指源交换节点通过源交换节点与控制器相连的控制器端口,接收控制器发送的源LLDP封装帧。
步骤303、控制器向目的交换节点发送目的封装信息。
对于同一个源LLDP封装帧,目的封装信息与源封装信息是一样的,均是由控制器根据同一个配置信息生成的。
控制器向目的交换节点发送目的封装信息,是指控制器通过控制器与目的交换节点直连的控制器端口,向目的交换节点发送携带了目的封装信息的控制信令。在本实施例的一种实施方式中,上述携带了目的封装信息的控制信令可以是流表。鉴于流表为现有技术,此处不再赘述。
步骤304、目的交换节点接收控制器发送的目的封装信息。
其中,目的交换节点通过目的交换节点与控制器直连的控制器端口接收控制器发送的目的封装信息。如图1所示,交换节点13可以通过交换节点13与控制器10直连的端口p4,接收控制器10发送目的封装信息。
需要说明的是,步骤303和304,也可以在执行步骤301和302之前执行,本申请实施例对此不作限定。
步骤305、源交换节点向目的交换节点发送源LLDP封装帧。
其中,源交换节点向目的交换节点发送源LLDP封装帧,是指源交换节点通过源指定发送端口,向目的交换节点发送源LLDP封装帧。
源指定发送端口,是指源交换节点信息中的源指定发送端口ID指定的、且与目的交换节点直接或间接相连的非控制器端口。在实际应用中,源指定发送端口可以是源交换节点所拥有的全部或部分非控制器端口。
步骤306、目的交换节点接收源交换节点发送的源LLDP封装帧。
在本实施例一种实现方式中,目的交换节点接收源交换节点发送的源LLDP封装帧,可以是目的交换节点通过与源交换节点直接或间接相连的非控制器端口接收源交换节点发送的源LLDP封装帧。
需要说明的是,当目的交换节点接收到源交换节点发送的源LLDP封装帧时,目的交换节点会记录接收源LLDP封装帧的非控制器端口的端口ID。例如,如图1所示,对于控制器10指定由交换节点12通过指定发送端口p2向交换节点13发送的一个源LLDP封装帧,交换节点13通过与交换节点12的指定发送端口p2直接或间接相连的接收端口p3接收该源LLDP封装帧,则交换节点13会记录接收端口p3的端口号。
步骤307、若源封装信息与目的封装信息匹配成功,则目的交换节点向控制器发送目的LLDP封装帧。
其中,目的LLDP封装帧包括目的交换节点信息和源LLDP封装帧。
例如,如图1所示,交换节点13在接收到交换节点12发送的源LLDP封装帧之后,若该源LLDP封装帧携带的源封装信息与目的封装信息匹配成功,则交换节点13向控制器发送目的LLDP封装帧。
在本实施例的一种实施方式中,源封装信息包括MAC头部,且目的封装信息包括MAC头部,则源封装信息与目的封装信息匹配成功包括:源封装信息携带的MAC头部与目的封装信息携带的MAC头部匹配成功。
在本实施例的另一种实施方式中,源封装信息包括MAC头部和IP头部,且目的封装信息包括MAC头部和IP头部,则源封装信息与目的封装信息匹配成功包括:源封装信息携带的MAC头部与目的封装信息携带的MAC头部匹配成功,且源封装信息携带的IP头部与目的封装信息携带的IP头部匹配成功。
在本实施例的另一种实施方式中,源封装信息可以包括MAC头部、IP头部和UDP头部,且目的封装信息包括MAC头部、IP头部和UDP头部,则源封装信息与目的封装信息匹配成功包括:源封装信息携带的MAC头部与目的封装信息携带的MAC头部匹配成功,且源封装信息携带的IP头部与目的封装信息携带的IP头部匹配成功,以及源封装信息携带的UDP头部与目的封装信息携带的UDP头部匹配成功。
在本实施例的另一种实施方式中,源封装信息可以包括MAC头部、IP头部和TCP头部,且目的封装信息包括MAC头部、IP头部和TCP头部,则源封装信息与目的封装信息匹配成功包括:源封装信息携带的MAC头部与目的封装信息携带的MAC头部匹配成功,且源封装信息携带的IP头部与目的封装信息携带的IP头部匹配成功,以及源封装信息携带的TCP头部与目的封装信息携带的TCP头部匹配成功。
在本实施例的一种实施方式中,若目的交换节点接收到的数据的封装信息与目的封装信息匹配成功,则意味着该数据的封装信息为源封装信息,该数据为源交换节点发送的源LLDP封装帧,进而目的交换节点可以确定目的交换节点与源交换节点之间的链路畅通,并向控制器发送目的LLDP封装帧。
其中,目的LLDP封装帧包括目的交换节点信息和源LLDP封装帧。目的交换节点信息可以包括目的交换节点ID和步骤306中记录的接收端口ID。目的交换节点ID可以用于标识目的交换节点的身份。例如,目的交换节点ID可以是目的交换节点的MAC地址。接收端口ID是指目的交换节点接收源交换节点发送的源LLDP封装帧的非控制器端口ID。
需要说明的是,若目的交换节点接收到的数据的封装信息与目的封装信息匹配失败,则意味着目的交换节点接收到的数据不是源交换节点转发的源LLDP封装帧,目的交换节点会将该数据丢弃或进行其他信息匹配操作。
步骤308、控制器接收目的交换节点发送的目的LLDP封装帧,以便控制器根据目的交换节点信息和源交换节点信息,获取源交换节点与目的交换节点之间的链路信息。
其中,源交换节点与目的交换节点之间的链路信息包括目的交换节点信息和封装在源LLDP封装帧内的源交换节点信息。
需要说明的是,源交换节点和目的交换节点是相对于特定的源LLDP封装帧的传输方向而言的。例如,如图1所示,对于传输方向为控制器10->交换节点12->交换节点13的源LLDP封装帧1,交换节点12为源交换节点,交换节点13为目的交换节点。而对于传输方向为控制器10->交换节点13->交换节点12的LLDP封装帧2,交换节点13为源交换节点,交换节点12为目的交换节点。
此外,源交换节点或目的交换节点与控制器之间的控制器端口也是双向端口。例如,如图1所示,以源LLDP封装帧1为例,控制器10可以通过控制器端口向交换节点13发送目的封装信息,也可以通过控制器端口接收交换节点13发送的目的LLDP封装帧。
在本实施例的一种实施方式中,为了快速获取SDN全网视图,控制器通常会为每个与其直连的交换节点的每个非控制器端口分别定制一个源LLDP封装帧,并通知每个交换节点向指定的非控制器端口发送上述定制的源LLDP封装帧;控制器根据所有交换节点回传的目的LLDP封装帧携带的源交换节点信息和目的交换节点信息,获取完整的SDN全网视图。
在本实施例的另一种实施方式中,若网络配置发生变化,或者增删了交换节点,则控制器根据网络配置或交换节点的变化情况定制并发送源LLDP封装帧,以便更新SDN全网视图。
本申请实施例提供的获取SDN全网视图的方法,源交换节点接收到控制器发送的源LLDP封装帧后,根据源LLDP封装帧携带的源交换节点信息,向目的交换节点发送源LLDP封装帧;若目的交换节点从控制器接收到的目的封装信息与目的交换节点从源交换节点接收到的源LLDP封装帧携带的源封装信息匹配成功,则目的交换节点向控制器发送包含目的交换节点信息和源LLDP封装帧的目的LLDP封装帧,以便控制器接收到目的LLDP封装帧后,根据目的交换节点信息和源交换节点信息获取源交换节点与目的交换节点之间的链路信息。
与现有技术相比,添加了源封装信息的源LLDP封装帧,可以像非LLDP帧一样在不能透传原始LLDP帧的链路上传输,以便目的交换节点能够接收到源交换节点发送的、包含了源交换节点信息的源LLDP封装帧。因此,目的交换节点能够向控制器回传携带了源交换节点信息和目的交换节点信息的目的LLDP封装帧,以便控制器根据回传的源交换节点信息和目的交换节点信息,获取源交换节点与目的交换节点之间的链路信息。利用本申请实施例提供的方法,控制器能够获取所有包含了不能透传原始LLDP帧的链路的链路信息,并记录在控制器创建的SDN全网视图中。利用本申请实施例提供的方法,控制器能够获取所有包含了不能透传原始LLDP帧的链路的链路信息,并记录在控制器创建的SDN全网视图中,从而可以获取到完整的SDN全网视图。
在如图3所示的实现方式的基础上,还可以实现为如图5所示的实现方式,步骤308控制器接收目的交换节点发送的目的LLDP封装帧之后,还可以执行步骤501:
步骤501、当目的LLDP封装帧携带的源封装信息与控制器本地存储的源封装信息匹配成功时,控制器根据目的交换节点信息和源交换节点信息,获取源交换节点与目的交换节点之间的链路信息。
其中,在一个实施例中,源封装信息可以只包括MAC头部,目的LLDP封装帧携带的源封装信息与控制器本地存储的源封装信息匹配成功,可以包括:目的LLDP封装帧携带的MAC头部与控制器本地存储的源封装信息中的MAC头部匹配成功。
在另一个实施例中,源封装信息可以包括MAC头部和IP头部,目的LLDP封装帧携带的源封装信息与控制器本地存储的源封装信息匹配成功,可以进一步包括:目的LLDP封装帧携带的MAC头部与控制器本地存储的源封装信息中的MAC头部匹配成功,且目的LLDP封装帧携带的IP头部与控制器本地存储的源封装信息中的IP头部匹配成功。
在另一个实施例中,源封装信息可以包括MAC头部、IP头部和UDP头部,目的LLDP封装帧携带的源封装信息与控制器本地存储的源封装信息匹配成功,可以进一步包括:目的LLDP封装帧携带的MAC头部与控制器本地存储的源封装信息中的MAC头部匹配成功,且目的LLDP封装帧携带的IP头部与控制器本地存储的源封装信息中的IP头部匹配成功,以及目的LLDP封装帧携带的UDP头部与控制器本地存储的源封装信息中的UDP头部匹配成功。
在另一个实施例中,源封装信息可以包括MAC头部、IP头部和TCP头部,LLDP封装帧携带的源封装信息与控制器本地存储的源封装信息匹配成功,可以进一步包括:目的LLDP封装帧携带的MAC头部与控制器本地存储的源封装信息中的MAC头部匹配成功,且目的LLDP封装帧携带的IP头部与控制器本地存储的源封装信息中的IP头部匹配成功,以及目的LLDP封装帧携带的TCP头部与控制器本地存储的源封装信息中的TCP头部匹配成功。
在本申请实施例中,在控制器根据目的交换节点信息和源交换节点信息,解析源交换节点与目的交换节点之间的链路信息之前,确定目的LLDP封装帧携带的源封装信息与控制器本地存储的源封装信息是否匹配,以便确定目的LLDP封装帧是否与控制器本地存储的源封装信息是否存在对应关系,若是,则控制器才会根据目的LLDP封装帧携带的目的交换节点信息和源交换节点信息解析源交换节点与目的交换节点之间的链路信息,提高了获取的链路信息的准确度,从而提高了获取的SDN全网视图的准确度。
在如图3或图5所示的实现方式的基础上,以图3为例,还可以实现为如图6所示的实现方式。其中,如图3d所示,目的封装信息还可以包括匹配优先级,步骤307若源封装信息与目的封装信息匹配成功,则目的交换节点向控制器发送目的LLDP封装帧,可以进一步实现为步骤601:
步骤601、若目的封装信息和目的交换节点从控制器接收的除目的封装信息外的其他封装信息均与源封装信息匹配成功,且目的封装信息的匹配优先级高于其他封装信息的匹配优先级,则目的交换节点向控制器发送目的LLDP封装帧。
其中,其他封装信息与源封装信息匹配成功,可以包括:
在本实施例的一种实施方式中,源封装信息包括MAC头部,其他封装信息包括MAC头部,则源封装信息与其他封装信息匹配成功包括:源封装信息携带的MAC头部与其他封装信息携带的MAC头部匹配成功。
在本实施例的另一种实施方式中,源封装信息包括MAC头部和IP头部,其他封装信息包括MAC头部和IP头部,则源封装信息与其他封装信息匹配成功包括:源封装信息携带的MAC头部与其他封装信息携带的MAC头部匹配成功,且源封装信息携带的IP头部与其他封装信息携带的IP头部匹配成功。
在本实施例的另一种实施方式中,源封装信息可以包括MAC头部、IP头部和UDP头部,其他封装信息包括MAC头部、IP头部和UDP头部,则源封装信息与其他封装信息匹配成功包括:源封装信息携带的MAC头部与其他封装信息携带的MAC头部匹配成功,且源封装信息携带的IP头部与其他封装信息携带的IP头部匹配成功,以及源封装信息携带的UDP头部与其他封装信息携带的UDP头部匹配成功。
在本实施例的另一种实施方式中,源封装信息可以包括MAC头部、IP头部和TCP头部,其他封装信息包括MAC头部、IP头部和TCP头部,则源封装信息与其他封装信息匹配成功包括:源封装信息携带的MAC头部与其他封装信息携带的MAC头部匹配成功,且源封装信息携带的IP头部与其他封装信息携带的IP头部匹配成功,以及源封装信息携带的TCP头部与其他封装信息携带的TCP头部匹配成功。
在本申请实施例中,在目的交换节点向控制器发送目LLDP封装帧之前,目的交换节点确定源LLDP封装帧携带的源封装信息与目的交换节点从控制器接收的目的封装信息是否匹配,以便确定目的交换节点接收的数据是否为源交换节点从控制器接收、并向目的交换节点转发的源LLDP封装帧,可以避免将目的交换节点接收到的其他数据作为源LLDP封装帧与目的交换节点信息封装为目的LLDP封装帧,并向控制器发送,进而可以避免控制器根据错误的目的LLDP封装帧获取错误的源交换节点与目的交换节点之间的链路信息,提高了控制器获取链路信息的准确度,从而提高了控制器获取的SDN全网视图的准确度。
如图7所示,本申请实施例提供了一种控制器70,用于实现如图3所示的方法流程。其中,控制器70包括:
通信接口71,用于向源交换节点发送源LLDP封装帧,源LLDP封装帧包括源封装信息和源交换节点信息,源交换节点信息用于源交换节点向目的交换节点发送源LLDP封装帧;
通信接口71,还用于向目的交换节点发送目的封装信息,目的封装信息用于目的交换节点接收到源LLDP封装帧后,若源封装信息与目的封装信息匹配成功,则目的交换节点向控制器70发送目的LLDP封装帧,目的LLDP封装帧包括目的交换节点信息和源LLDP封装帧;
通信接口71,还用于接收目的LLDP封装帧,以便处理器72根据目的交换节点信息和源交换节点信息,获取源交换节点与目的交换节点之间的链路信息。
处理器72,用于根据目的交换节点信息和源交换节点信息,获取源交换节点与目的交换节点之间的链路信息。
需要说明的是,本实施例中的控制器70,可以是如图1所示的控制器10。
在本申请实施例中,源交换节点接收到控制器70发送的源LLDP封装帧后,根据源LLDP封装帧携带的源交换节点信息,向目的交换节点发送源LLDP封装帧;若目的交换节点从控制器70接收到的目的封装信息与目的交换节点从源交换节点接收到的源LLDP封装帧携带的源封装信息匹配成功,则目的交换节点向控制器70发送包含目的交换节点信息和源LLDP封装帧的目的LLDP封装帧,以便控制器70接收到目的LLDP封装帧后,根据目的交换节点信息和源交换节点信息获取源交换节点与目的交换节点之间的链路信息。
与现有技术相比,添加了源封装信息的源LLDP封装帧,可以像非LLDP帧一样在不能透传原始LLDP帧的链路上传输,以便目的交换节点能够接收到源交换节点发送的、包含了源交换节点信息的源LLDP封装帧。因此,目的交换节点能够向控制器70回传携带了源交换节点信息和目的交换节点信息的目的LLDP封装帧,以便控制器70根据回传的源交换节点信息和目的交换节点信息,获取源交换节点与目的交换节点之间的链路信息。利用本申请实施例提供的方法,控制器70能够获取所有包含了不能透传原始LLDP帧的链路的链路信息,并记录在控制器70创建的SDN全网视图中。利用本申请实施例提供的方法,控制器70能够获取所有包含了不能透传原始LLDP帧的链路的链路信息,并记录在控制器70创建的SDN全网视图中,从而可以获取到完整的SDN全网视图。
在如图7所示的控制器70的基础上,可以实现如图7所示的另一种控制器70,用于实现如图5所示的方法流程。其中,
处理器72,还用于当目的LLDP封装帧携带的源封装信息与控制器70本地存储的源封装信息匹配成功时,根据目的交换节点信息和源交换节点信息,获取源交换节点与目的交换节点之间的链路信息。
其中,在本实施例的一种实施方式中,源封装信息可以包括MAC头部,处理器72还用于确定源封装信息携带的MAC头部与控制器70本地存储的源封装信息中的MAC头部是否匹配。
在本实施例的一种实施方式中,源封装信息可以包括IP头部,处理器72还用于确定源封装信息携带的IP头部与控制器70本地存储的源封装信息中的IP头部是否匹配。
在本实施例的一种实施方式中,源封装信息可以包括UDP头部,处理器72还用于确定源封装信息携带的UDP头部与控制器70本地存储的源封装信息中的UDP头部是否匹配。
在本实施例的一种实施方式中,源封装信息可以包括TCP头部,处理器72还用于确定源封装信息携带的TCP头部与控制器70本地存储的源封装信息中的TCP头部是否匹配。
如图8所示,本申请实施例提供了一种目的交换节点80,用于实现如图3所示的方法流程。其中,目的交换节点80包括:
通信接口81,用于接收控制器70发送的目的封装信息;
通信接口81,还用于接收源交换节点发送的源LLDP封装帧,源LLDP封装帧包括源封装信息和源交换节点信息,源交换节点信息用于源交换节点向目的交换节点发送源LLDP封装帧;
通信接口81,还用于若源封装信息与目的封装信息匹配成功,则向控制器70发送目的LLDP封装帧,目的LLDP封装帧包括目的交换节点信息和源LLDP封装帧,以便控制器70接收到目的LLDP封装帧后,根据目的交换节点信息和源交换节点信息,获取源交换节点与目的交换节点之间的链路信息;
处理器82,用于确定源封装信息与目的封装信息是否匹配。
需要说明的是,本实施例中的目的交换节点80,可以是如图1所示的交换节点11至14中接收其他交换节点发送的源LLDP封装帧的交换节点。
其中,在本实施例的一种实施方式中,源封装信息包括MAC头部,目的封装信息包括MAC头部,则处理器82还用于确定源封装信息携带的MAC头部与目的封装信息携带的MAC头部是否匹配。
在本实施例的另一种实施方式中,源封装信息包括IP头部,目的封装信息包括IP头部,则处理器82还用于确定源封装信息携带的IP头部与目的封装信息携带的IP头部是否匹配。
在本实施例的另一种实施方式中,源封装信息可以包括UDP头部,目的封装信息包括UDP头部,则处理器82还用于确定源封装信息携带的UDP头部与目的封装信息携带的UDP头部是否匹配。
在本实施例的另一种实施方式中,源封装信息可以包括TCP头部,目的封装信息包括TCP头部,则处理器82还用于确定源封装信息携带的TCP头部与目的封装信息携带的TCP头部是否匹配。
本申请实施例提供的目的交换节点80,在源交换节点接收到控制器70发送的源LLDP封装帧,并根据源LLDP封装帧携带的源交换节点信息,向目的交换节点80发送源LLDP封装帧后,若目的交换节点80从控制器70接收到的目的封装信息与目的交换节点80从源交换节点接收到的源LLDP封装帧携带的源封装信息匹配成功,则目的交换节点80向控制器70发送包含目的交换节点信息和源LLDP封装帧的目的LLDP封装帧,以便控制器70接收到目的LLDP封装帧后,根据目的交换节点信息和源交换节点信息获取源交换节点与目的交换节点80之间的链路信息。
与现有技术相比,添加了源封装信息的源LLDP封装帧,可以像非LLDP帧一样在不能透传原始LLDP帧的链路上传输,以便目的交换节点80能够接收到源交换节点发送的、包含了源交换节点信息的源LLDP封装帧。因此,目的交换节点80能够向控制器70回传携带了源交换节点信息和目的交换节点信息的目的LLDP封装帧,以便控制器70根据回传的源交换节点信息和目的交换节点信息,获取源交换节点与目的交换节点80之间的链路信息。利用本申请实施例提供的方法,控制器70能够获取所有包含了不能透传原始LLDP帧的链路的链路信息,并记录在控制器70创建的SDN全网视图中,从而可以获取到完整的SDN全网视图。
在如图8所示的目的交换节点80的基础上,可以实现如图8所示的另一种目的交换节点80,用于实现如图6所示的方法流程。其中,目的封装信息包括匹配优先级,
通信接口81,还用于若目的封装信息和目的交换节点80从控制器70接收的除目的封装信息外的其他封装信息均与源封装信息匹配成功,且目的封装信息的匹配优先级高于其他封装信息的匹配优先级,则向控制器70发送目的LLDP封装帧;
处理器82,还用于确定目的封装信息的匹配优先级是否高于通信接口81从控制器70接收的其他封装信息的匹配优先级;
处理器82,还用于确定其他封装信息与源封装信息是否匹配。
其中,在本实施例的一种实施方式中,源封装信息包括MAC头部,其他封装信息包括MAC头部,则处理器82,还用于确定源封装信息携带的MAC头部与其他封装信息携带的MAC头部是否匹配。
在本实施例的另一种实施方式中,源封装信息包括IP头部,其他封装信息包括IP头部,则处理器82,还用于确定源封装信息携带的IP头部与其他封装信息携带的IP头部是否匹配。
在本实施例的另一种实施方式中,源封装信息可以包括UDP头部,其他封装信息包括UDP头部,则处理器82,还用于确定源封装信息携带的UDP头部与其他封装信息携带的UDP头部是否匹配。
在本实施例的另一种实施方式中,源封装信息可以包括TCP头部,其他封装信息包括TCP头部,则处理器82,还用于确定源封装信息携带的TCP头部与其他封装信息携带的TCP头部是否匹配。
本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序加载到计算机上被计算机执行时,可以使计算机执行如图3或图5所示的方法。
本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序加载到计算机上被计算机执行时,使计算机执行如图3或图6所示的方法。
其中,计算机可读存储介质,例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机节点(可以是个人计算机,服务器,或者网络节点等)执行本申请各个实施例所述的方法。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。