CN104038446A - 链路发现方法以及装置 - Google Patents
链路发现方法以及装置 Download PDFInfo
- Publication number
- CN104038446A CN104038446A CN201410250846.0A CN201410250846A CN104038446A CN 104038446 A CN104038446 A CN 104038446A CN 201410250846 A CN201410250846 A CN 201410250846A CN 104038446 A CN104038446 A CN 104038446A
- Authority
- CN
- China
- Prior art keywords
- switch
- probe messages
- port
- sign
- message
- 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.)
- Granted
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种链路发现方法以及装置,方法包括如下步骤:向第一交换机发送第一发送请求报文,第一发送请求报文中封装了第一探测报文,第一探测报文记载了第一交换机的标识且不包含从第一交换机的哪个端口转发的信息,第一交换机具有将第一探测报文从第一发送请求报文中解封装出来以及向所有端口广播第一探测报文的能力;接收第二交换机所发送的第一收包通知报文,第二交换机为接收到第一交换机广播的第一探测报文的交换机,第一收包通知报文封装了第一探测报文;根据第一探测报文中封装的第一交换机的标识以及从第二交换机接收到第一收包通知报文确定第一交换机与所述第二交换机之间存在链路。
Description
技术领域
本申请涉及通信领域,特别是涉及链路发现方法以及装置。
背景技术
软件定义网络(Software Defined Network,SDN)是一种新型网络架构,与传统网络所采用的查找IP路由相比,SDN/OpenFlow能够实现网络流量的灵活控制,为核心网络及应用的创新提供良好的平台,是今后网络架构发展的方向。
如图1所示,SDN通常包括控制器110以及交换机120两部分。控制器110分别与网络中的每一个交换机120连接,网络中的交换机120之间拓扑连接。在初始建网时,控制器110并不知道交换机120之间的拓扑连接关系是怎样的,但是交换机120之间的拓扑连接关系是非常重要的,后续控制器110在计算流转发路径时,必须依据交换机120之间的拓扑连接关系进行计算。
现有技术提供了一种SDN架构下的拓扑关系发现方法,控制器110为每个交换机120的每个端口构造一个独特的探测报文。所构造的独特的探测报文中同时封装了对应的交换机120的标识和对应的端口的标识,所以为某个交换机120的某个指定端口所构造的探测报文只能通过这个交换机120的这个指定端口发送。
下面以控制器110为交换机2的第一个端口构造一个探测报文为例进行说明。
控制器110为交换机2的第一个端口构造一个探测报文,则所述探测报文中同时记录了交换机2的标识以及指定端口(第一个端口)的标识(Node2,Port1),则这个探测报文只能通过交换机2的第一个端口发送出去。构造探测报文完毕后,控制器110将构造好的探测报文封装到发送请求报文中,然后,将发送请求报文对应发送到交换机2中去。其中,发送请求报文可以是Openflow协议定义的PACK_OUT报文。交换机2将探测报文从发送请求报文中解封装出来,然后通过指定端口(第一个端口)将探测报文发送出去。由于交换机2的第一个端口是与交换机3的某个端口连接的,所以,交换机2的第一个端口所发出的探测报文将会被交换机3接收到。交换机3接收到交换机2的第一个端口所发送的探测报文后,将接收到的探测报文封装到收包通知报文,然后再将收包通知报文向控制器110上报。其中,收包请求报文可以是Openflow协议定义的PACK_IN报文。控制器110接收到交换机3所发送的收包通知报文后,解封装收包通知报文以获得探测报文,并从探测报文中获知,这个探测报文是通过交换机2的第一个端口发出的。控制器110根据探测报文是通过交换机2的第一个端口发出的以及探测报文是从交换机3接收到的,确定交换机2的第一个端口与交换机3之间存在链路。
当每个交换机120的每个端口都发出探测报文后,控制器110就可以获知交换机120之间的所有链路,从而获得交换机120之间的拓扑关系。
但是,在现有技术下,控制器110需要为每个交换机120的每个端口都构造一个独特的探测报文,并分别将这些探测报文发送给对应的交换机120。当交换机120的端口比较多时,例如,交换机120为框式设备时,交换机120可能存在几百个端口,这时,控制器110需要为这个交换机120的每个端口都分别构造一个探测报文,然后再将这几百份探测报文向这个交换机120发送,会导致控制器110以及交换机120资源的极大浪费。
发明内容
本申请主要解决的技术问题是提供链路发现方法以及装置,能够减少控制器以及交换机的资源的消耗。
为解决上述技术问题,本申请一方面提供一种链路发现方法,包括如下步骤:向第一交换机发送第一发送请求报文,其中,所述第一发送请求报文中封装了第一探测报文,所述第一探测报文记载了所述第一交换机的标识且所述第一探测报文不包含从所述第一交换机的哪个端口转发的信息,所述第一交换机具有将所述第一探测报文从所述第一发送请求报文中解封装出来以及向所有端口广播所述第一探测报文的能力;接收第二交换机所发送的第一收包通知报文,其中,所述第二交换机为接收到所述第一交换机广播的所述第一探测报文的交换机,所述第一收包通知报文封装了所述第一探测报文;根据所述第一探测报文中封装的第一交换机的标识以及从所述第二交换机接收到所述第一收包通知报文确定所述第一交换机与所述第二交换机之间存在链路。
结合第一方面,在第一方面的第一种可能的实施方式中,所述第一收包通知报文还封装了接收端口的标识,其中,所述接收端口为所述第二交换机接收到所述第一交换机所广播的所述探测报文的端口,所述根据所述探测报文中封装的第一交换机的标识以及从所述第二交换机接收到所述第一收包通知报文确定所述第一交换机与所述第二交换机之间存在链路的步骤具体为:根据所述探测报文中封装的第一交换机的标识、从所述第二交换机接收到所述第一收包通知报文以及从所述第二交换机接收到的所述第一收包通知报文中封装的所述接收端口的标识,确定所述第一交换机与所述第二交换机的接收端口之间存在链路。
结合第一方面的第一种可能的实施方式,本申请第一方面的第二种可能的实施方式中,根据控制器从所述第二交换机接收到的所述第一收包通知报文中封装的所述接收端口的标识的数量确定所述第一交换机与所述第二交换机之间的链路的数量;
向所述第一交换机发送第二发送请求报文,其中,所述第二发送请求报文中封装了第二探测报文,所述第二探测报文记载了所述第一交换机的标识且所述第二探测报文记载了指定端口的标识,所述第一交换机具有将所述第二探测报文从所述第二发送请求报文中解封装出来以及通过所述指定端口向外转发所述第二探测报文的能力;
接收所述第二交换机所发送的第二收包通知报文,其中,所述第二收包通知报文封装了所接收到的所述第二探测报文以及接收到所述第二探测报文的接收端口的标识;
根据所述第二探测报文中的所述第一交换机的标识、所述第二探测报文中的所述指定端口的标识、从所述第二交换机接收到所述第二收包通知报文以及从所述第二交换机接收到的所述第二收包通知报文中封装的接收端口的标识,确定所述第一交换机的所述指定端口与所述第二交换机的接收端口之间存在链路。
为解决上述技术问题,本申请第二方面提供一种探测报文发送方法,其特征在于,所述方法包括如下步骤:交换机接收控制器所发送的第一发送请求报文,其中,所述第一发送请求报文中封装了第一探测报文,所述第一探测报文记载了所述交换机的标识且所述第一探测报文不包含从所述交换机的哪个端口转发的信息;将所述第一发送请求报文进行解封装,以获得所述第一探测报文;通过所述交换机的所有端口向外广播所述第一探测报文。
结合第二方面,在第二方面的第一种可能的实施方式中,所述方法还包括如下步骤:交换机接收控制器所发送的第二发送请求报文,其中,所述第二发送请求报文中封装了第二探测报文,所述第二探测报文记载了所述交换机的标识且所述第二探测报文记载了指定端口的标识;将所述第二发送请求报文进行解封装,以获得所述第二探测报文;通过所述交换机的指定端口向外转发所述第二探测报文。
为解决上述技术问题,本申请第三方面提供一种链路发现装置,包括发送模块、接收模块以及判断模块,所述发送模块用于向第一交换机发送第一发送请求报文,其中,所述第一发送请求报文中封装了第一探测报文,所述第一探测报文记载了所述第一交换机的标识且所述第一探测报文不包含从所述第一交换机的哪个端口转发的信息,所述第一交换机具有将所述第一探测报文从所述第一发送请求报文中解封装出来以及向所有端口广播所述第一探测报文的能力;所述接收模块用于接收第二交换机所发送的第一收包通知报文,其中,所述第二交换机为接收到所述第一交换机广播的所述第一探测报文的交换机,所述第一收包通知报文封装了所述第一探测报文;所述判断模块用于根据所述探测报文中封装的第一交换机的标识以及从所述第二交换机接收到所述第一收包通知报文确定所述第一交换机与所述第二交换机之间存在链路。
结合第三方面,在第三方面的第一种可能的实施方式中,所述接收模块接收到的所述第二交换机所发送的第一收包通知报文还封装了接收端口的标识,其中,所述接收端口为所述第二交换机接收到所述第一交换机所广播的所述探测报文的端口,所述判断模块还用于根据所述探测报文中封装的第一交换机的标识、从所述第二交换机接收到所述第一收包通知报文以及从所述第二交换机接收到的所述第一收包通知报文中封装的所述接收端口的标识,确定所述第一交换机与所述第二交换机的接收端口之间存在链路。
结合第三方面的第一种可能的实施方式,本申请第三方面的第二种可能的实施方式中,所述判断模块还用于根据控制器从所述第二交换机接收到的所述第一收包通知报文中封装的所述接收端口的标识的数量确定所述第一交换机与所述第二交换机之间的链路的数量;所述发送模块还用于向所述第一交换机发送第二发送请求报文,其中,所述第二发送请求报文中封装了第二探测报文,所述第二探测报文记载了所述第一交换机的标识且所述第二探测报文记载了指定端口的标识,所述第一交换机具有将所述第二探测报文从所述第二发送请求报文中解封装出来以及通过所述指定端口向外转发所述第二探测报文的能力;所述接收模块还用于接收所述第二交换机所发送的第二收包通知报文,其中,所述第二收包通知报文封装了所接收到的所述第二探测报文以及接收到所述第二探测报文的接收端口的标识;所述判断模块还用于根据所述第二探测报文中的所述第一交换机的标识、所述第二探测报文中的所述指定端口的标识、从所述第二交换机接收到所述第二收包通知报文以及从所述第二交换机接收到的所述第二收包通知报文中封装的接收端口的标识,确定所述第一交换机的所述指定端口与所述第二交换机的接收端口之间存在链路。
为解决上述技术问题,本申请第四方面提供一种探测报文发送装置,包括:接收模块、解封装模块以及发送模块,所述接收模块用于接收控制器所发送的第一发送请求报文,其中,所述第一发送请求报文中封装了第一探测报文,所述第一探测报文记载了所述交换机的标识且所述第一探测报文不包含从所述交换机的哪个端口转发的信息;所述解封装模块用于将所述第一发送请求报文进行解封装,以获得所述第一探测报文;
所述发送模块用于通过所述交换机的所有端口向外广播所述第一探测报文。
结合第四方面,在第四方面的第一种可能的实施方式中,所述接收模块还用于接收控制器所发送的第二发送请求报文,其中,所述第二发送请求报文中封装了第二探测报文,所述第二探测报文记载了所述交换机的标识且所述第二探测报文记载了指定端口的标识;所述解封装模块还用于将所述第二发送请求报文进行解封装,以获得所述第二探测报文;所述发送模块还用于通过所述交换机的指定端口向外转发所述第二探测报文。
为解决上述技术问题,本申请第五方面提供一种链路发现方法,包括如下步骤:向第一交换机发送发送请求报文,其中,所述发送请求报文中封装了探测报文模板,所述探测报文模板记载了所述第一交换机的标识,所述第一交换机具有将所述探测报文模板从所述发送请求报文中解封装出来以及将发送所述探测报文模板的发送端口的标识填写到所述探测报文模板中,然后发送的能力;接收第二交换机所发送的收包通知报文,其中,所述第二交换机为接收到所述第一交换机通过所述发送端口发送的所述探测报文模板的交换机,所述收包通知报文封装了所述填写发送端口标识后的探测报文模板以及所述第二交换机接收到所述探测报文模板的接收端口的标识;根据所述探测报文中封装的第一交换机的标识、所述第一交换机的所述发送端口、从所述第二交换机接收到所述收包通知报文以及所述第二交换机接收到所述探测报文模板的接收端口的标识确定所述第一交换机的所述发送端口与所述第二交换机的所述接收端口之间存在链路。
为解决上述技术问题,本申请第六方面提供一种探测报文模板发送方法,所述方法包括如下步骤:交换机接收控制器所发送的发送请求报文,其中,所述发送请求报文中封装了探测报文模板,所述探测报文模板记载了所述交换机的标识;将所述探测报文模板从所述发送请求报文进行解封装,以获得所述探测报文模板;将发送所述探测报文模板的发送端口的标识填写到所述探测报文模板中,并将所述探测报文模板通过所述发送端口向外转发。
为解决上述技术问题,本申请第七方面提供一种链路发现装置,包括发送模块、接收模块以及判断模块,所述发送模块用于向第一交换机发送发送请求报文,其中,所述发送请求报文中封装了探测报文模板,所述探测报文模板记载了所述第一交换机的标识,所述第一交换机具有将所述探测报文模板从所述发送请求报文中解封装出来以及将发送所述探测报文模板的发送端口的标识填写到所述探测报文模板中,然后发送的能力;所述接收模块用于接收第二交换机所发送的收包通知报文,其中,所述第二交换机为接收到所述第一交换机通过所述发送端口发送的所述探测报文模板的交换机,所述收包通知报文封装了所述填写发送端口标识后的探测报文模板以及所述第二交换机接收到所述探测报文模板的接收端口的标识;所述判断模块用于根据所述探测报文中封装的第一交换机的标识、所述第一交换机的所述发送端口、从所述第二交换机接收到所述收包通知报文以及所述第二交换机接收到所述探测报文模板的接收端口的标识确定所述第一交换机的所述发送端口与所述第二交换机的所述接收端口之间存在链路。
为解决上述技术问题,本申请第八方面提供一种探测报文模板发送装置,包括接收模块、解封装模块、以及发送模块,所述接收模块用于接收控制器所发送的发送请求报文,其中,所述发送请求报文中封装了探测报文模板,所述探测报文模板记载了所述交换机的标识;所述解封装模块用于将所述探测报文模板从所述发送请求报文进行解封装,以获得所述探测报文模板;所述发送模块用于将发送所述探测报文模板的发送端口的标识填写到所述探测报文模板中,并将所述探测报文模板通过所述发送端口向外转发。
上述方案中,控制器向第一交换机所发送的探测报文中记载了第一交换机的标识且不包含从第一交换机的哪个端口转发的信息,第一交换机接收到探测报文后,再将探测报文通过所有端口进行广播。接收到第一交换机所广播的探测报文的第二交换机再将探测报文向控制器发送。使得控制器可以根据探测报文中封装的第一交换机的标识以及从第二交换机接收到探测报文确定第一交换机与第二交换机之间存在链路。由于,控制器向第一交换机所发送的探测报文中记载了第一交换机的标识且不包含从第一交换机的哪个端口转发的信息,所以,探测报文没有绑定任何一个端口,可以为任何一个端口所用,故即使第一交换机的端口再多,控制器也只需为第一交换机构造一份探测报文以及向第一交换机发送一份探测报文即可,大大减少了控制器以及交换机的资源的浪费。
附图说明
图1是现有技术软件定义网络一实施方式的结构示意图;
图2是本申请链路发现***一实施方式的结构示意图;
图3是本申请链路发现***另一实施方式的结构示意图;
图4是本申请链路发现方法一实施方式的流程图;
图5是本申请链路发现方法另一实施方式的流程图;
图6是本申请探测报文发送方法一实施方式的流程图;
图7是本申请探测报文发送方法另一实施方式的流程图;
图8是本申请链路发现装置一实施方式的结构示意图;
图9是本申请控制器一实施方式的结构示意图;
图10是本申请探测报文发送装置一实施方式的结构示意图;
图11是本申请交换机一实施方式的结构示意图;
图12是本申请链路发现***再一实施方式的结构示意图;
图13是本申请链路发现方法又一实施方式的流程图;
图14是本申请探测报文模板发送方法的一实施方式的流程图;
图15是本申请链路发现装置另一实施方式的结构示意图;
图16是本申请控制器另一实施方式的结构示意图;
图17是本申请探测报文发送装置一实施方式的结构示意图;
图18是本申请交换机另一实施方式的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定***结构、接口、技术之类的具体细节,以便透彻理解本申请。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施方式中也可以实现本申请。在其它情况中,省略对众所周知的装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
参阅图2,图2是本申请链路发现的***一实施方式的结构示意图。本实施方式的链路发现***包括控制器210以及交换机220。控制器210分别与网络中的每一台交换机220相连接,网络中的交换机220之间拓扑连接。在初始建网时,控制器210并不知道交换机220之间的拓扑连接关系是怎样的,为了使控制器210发现交换机220之间的拓扑连接关系,本实施方式的控制器210为每一个交换机220构造一个探测报文,所构造的探测报文中封装了对应的交换机220的标识并且探测报文中不包含交换机220从哪个端口转发的信息,然后控制器210将探测报文封装在发送请求报文中,并向与探测报文中封装的交换机的标识对应的交换机发送该发送请求报文。交换机220接收到发送请求报文后,对发送请求报文进行解封装,并通过所有的端口向外广播该探测报文。与广播探测报文的交换机220相连接的交换机220接收到广播的探测报文后,将接收到的探测报文以及接收到该探测报文的端口封装到收包通知报文中,并向控制器210发送收包通知报文。这样,控制器210就能发现广播探测报文的交换机220与接到广播的探测报文的交换机220之间的链路。
下面以控制器210为交换机2构造一个探测报文为例进行说明。
控制器210为交换机2构造一个第一探测报文,所构造的第一探测报文中封装了对应的交换机2的标识Node2并且探测报文中不包含交换机2从哪个端口转发该探测报文的信息。构造第一探测报文完毕后,控制器210将构造好的第一探测报文封装到第一发送请求报文中,然后,将第一发送请求报文对应发送到具有标识Node2的交换机2中去。
交换机2接收到第一发送请求报文后,对第一发送请求报文进行解封装,获得探测报文,然后通过所有的端口将该探测报文广播出去。如图2所示,交换机2的端口1与交换机3的端口1相连接,交换机2的端口2与交换机4的端口3相连接,交换机2的端口3与交换机1的端口2相连接。所以当交换机2广播该探测报文后,交换机3的端口1、交换机4的端口3、交换机1的端口2都能接收到该探测报文。
交换机1、交换机3与交换机4分别将接收到的第一探测报文以及接收到探测报文的端口标识填写到第一收包通知报文,并将该收包通知报文向控制器210上报。例如,交换机1将接收到的第一探测报文以及端口标识Port2封装到第一收包通知报文,并将该第一收包通知报文向控制器210上报;交换机3将接收到的第一探测报文以及端口标识Port1封装到第一收包通知报文,并将该第一收包通知报文向控制器210上报;交换机4将接收到的第一探测报文以及端口标识Port3封装到第一收包通知报文,并将该第一收包通知报文向控制器210上报。
控制器210接收到交换机1所发送的第一收包通知报文后,解封装交换机1所发送的第一收包通知报文以获得第一探测报文和发送第一收包通知报文的交换机1的端口标识Port2,然后根据第一探测报文中记载的交换机2的标识Node2以及交换机1的端口标识Port2确定交换机2与交换机1的端口2之间存在链路。
控制器210接收到交换机3所发送的第一收包通知报文后,解封装交换机3所发送的第一收包通知报文以获得第一探测报文和发送第一收包通知报文的交换机3的端口标识Port1,然后根据第一探测报文中记载的交换机2的标识Node2以及交换机3的端口标识Port1确定交换机2与交换机3的端口1之间存在链路。
控制器210接收到交换机4所发送的第一收包通知报文后,解封装交换机4所发送的第一收包通知报文以获得第一探测报文和发送第一收包通知报文的交换机4的端口标识Port3,然后根据探测报文中记载的交换机2的标识Node2以及从交换机4的端口标识Port3报文确定交换机2与交换机4的端口3之间存在链路。
如果两个交换机220之间只存在一个链路,则当每个交换机220都发出探测报文后,控制器210就可以获知交换机220之间的所有链路,从而获得交换机220之间的拓扑关系。
如果两个交换机220之间存在不止一个链路,如图3所示,交换机2的端口1与交换机3的端口1相连接,交换机2的端口4与交换机3的端口3相连接,即交换机2与交换机3之间存在两条链路。
采用上述的方法,控制器210只能从交换机3的端口1和交换机3的端口3发送来的第一收包通知报文以及第一收包通知报文封装的标识Node2确定具有标识Node2的交换机2与交换机3之间存在两条链路,其中,交换机2与交换机3的端口1之间存在一条链路,交换机2与交换机3的端口3之间存在一条链路,但不能确定交换机2的哪一个端口与交换机3的端口1之间存在链路,也不能确定交换机2的哪一个端口与交换机3的端口3之间存在链路。
为了确定交换机2的哪一个端口与交换机3的端口1以及交换机2的哪一个端口与交换机3的端口3之间存在链路。控制器210为交换机2的每个端口构造一个第二探测报文,其中,第二探测报文记载了交换机2的标识且第二探测报文记载了指定端口的标识。例如,为交换机2的端口1构造的第二探测报文记载了交换机2的标识Node2且第二探测报文记载了端口1的标识Port1;为交换机2的端口4构造的第二探测报文记载了交换机2的标识Node2且第二探测报文记载了端口4的标识Port4。
控制器210将第二探测报文封装至第二发送请求报文中。控制器210向具有标识Node2的交换机2发送第二发送请求报文。交换机2接收到具有交换机2标识Node2和指定从端口1的端口标识Port1的第二发送请求后
,解封装第二发送请求报文,得到第二探测报文,然后,交换机2通过第二探测报文中指定的端口1发送第二探测报文。
与交换机2的端口1相连接的交换机3的端口1接收交换机2的端口1转发的第二探测报文。交换机3将接收到的第二探测报文以及端口标识Port1封装到第二收包通知报文,并将该第二收包通知报文向控制器210上报。
控制器210接收到交换机3所发送的第二收包通知报文,解封装交第二收包通知报文,获得第二探测报文和发送第二收包通知报文的交换机3的端口标识Port1,然后根据第二探测报文中记载的交换机2的标识Node2、交换机2的指定端口标识Port1以及交换机3的端口标识Port1确定交换机2的端口1与交换机3的端口1之间存在链路。
当控制器210向交换机2的端口4发送第二探测报文后,同样地,控制器210就可以获知交换机2的端口4与交换机3的端口3之间存在一条链路。当控制器向其他所有存在不止一条链路的交换机发送第二探测报文后,可以获得交换机220之间的所有拓扑关系。
参阅图4,图4是本申请链路发现方法一实施方式的流程图。本实施方式包括如下步骤:
401:向第一交换机发送第一发送请求报文,其中,第一发送请求报文中封装了第一探测报文,第一探测报文记载了第一交换机的标识且第一探测报文不包含从第一交换机的哪个端口转发的信息,第一交换机具有将第一探测报文从第一发送请求报文中解封装出来以及向所有端口广播第一探测报文的能力。
当用户设备利用SDN与服务器之间进行数据通信时,SDN中的控制器需要计算出用户设备至服务器之间的合适的转发路径,而控制器是通过交换机之间的拓扑结构来计算转发路径的。由于在初始建立SDN时,控制器并不知道交换机之间的拓扑连接关系是怎样的,因此,在建立SDN以后,交换机需要确定SDN内的交换机之间的拓扑关系。
具体的,控制器为第一交换机构造一个第一探测报文,所构造的第一探测报文中封装了对应的交换机的标识并且探测报文中不包含交换机从哪个端口转发的信息。然后,控制器将第一探测报文封装在第一发送请求报文中,并向与第一探测报文中封装的交换机的标识对应的第一交换机发送该第一发送请求报文,以使得第一交换机将第一发送请求报文解封装后得到第一探测报文,并向第一交换机的所有的端口广播第一探测报文。
402:接收第二交换机所发送的第一收包通知报文,其中,第二交换机为接收到第一交换机广播的第一探测报文的交换机,第一收包通知报文封装了第一探测报文。
与第一交换机端口相连接的第二交换机接收到第一探测报文后,会向控制器发送封装有第一探测报文的第一收包通知报文。相应地,控制器接收第一收包通知报文。
403:根据第一探测报文中封装的第一交换机的标识以及从第二交换机接收到第一收包通知报文确定第一交换机与第二交换机之间存在链路。
控制器接收到第二交换机所发送的第一收包通知报文后,解封装第一收包通知报文以获得第一探测报文,然后根据第一探测报文中记载的第一交换机的标识和第一收包通知报文确定广播第一探测报文的第一交换机与接收到第一探测报文并发送第一收包通知报文的第二交换机之间存在链路。
当控制器为SDN中所有的交换机生成并发送探测报文,并且每两个交换机之间只存在一个链路,利用本实施方式的方法就可获取到整个SDN中的交换机之间的拓扑联系。
区别于现有技术,本实施方式中控制器向第一交换机所发送的探测报文中记载了第一交换机的标识且不包含从第一交换机的哪个端口转发的信息,第一交换机接收到探测报文后,再将探测报文通过所有端口进行广播。接收到第一交换机所广播的探测报文的第二交换机再将探测报文向控制器发送。使得控制器可以根据探测报文中封装的第一交换机的标识以及从第二交换机接收到探测报文确定第一交换机与第二交换机之间存在链路。由于,控制器向第一交换机所发送的探测报文中记载了第一交换机的标识且不包含从第一交换机的哪个端口转发的信息,所以,探测报文没有绑定任何一个端口,可以为任何一个端口所用,故即使第一交换机的端口再多,控制器也只需为第一交换机构造一份探测报文以及向第一交换机发送一份探测报文即可,大大减少了控制器以及交换机的资源的浪费。
参阅图5,图5是本申请链路发现方法另一实施方式的流程图。本实施方式中的链路发现方法包括如下步骤:
501:向第一交换机发送第一发送请求报文,其中,第一发送请求报文中封装了第一探测报文,第一探测报文记载了第一交换机的标识且第一探测报文不包含从第一交换机的哪个端口转发的信息,第一交换机具有将第一探测报文从第一发送请求报文中解封装出来以及向所有端口广播第一探测报文的能力。
当用户设备利用SDN与服务器之间进行数据通信时,SDN中的控制器需要计算出用户设备至服务器之间的合适的转发路径,而控制器是通过交换机之间的拓扑结构来计算转发路径的。由于在初始建立SDN时,控制器并不知道交换机之间的拓扑连接关系是怎样的,因此,在建立SDN以后,控制器需要确定SDN内的交换机之间的拓扑关系。
具体的,控制器为第一交换机构造一个第一探测报文,所构造的第一探测报文中封装了对应的交换机的标识并且探测报文中不包含交换机从哪个端口转发的信息。然后,控制器将第一探测报文封装在第一发送请求报文中,并向与第一探测报文中封装的交换机的标识对应的第一交换机发送该第一发送请求报文,以使得第一交换机将第一发送请求报文解封装后得到第一探测报文,并向第一交换机的所有的端口广播第一探测报文。
502:接收第二交换机所发送的第一收包通知报文,所述第一收包通知报文中封装了第一探测报文,第一探测报文记载了第一交换机的标识,第一收包通知报文还封装了接收端口的标识,其中,接收端口为第二交换机接收到第一交换机所广播的探测报文的端口。
为了使控制器能确定广播第一探测报文的第一交换机具体与接收广播的第一探测报文的第二交换机的哪个端口相连接,与第一交换机相连接的第二交换机接收到第一探测报文后,会向控制器上报封装有第一探测报文和接收到第一交换机广播的第一探测报文的接收端口标识的第一收包通知报文。相应地,控制器接收第一收包通知报文。
503:根据探测报文中封装的第一交换机的标识、从第二交换机接收到第一收包通知报文以及从第二交换机接收到的第一收包通知报文中封装的接收端口的标识,确定第一交换机与第二交换机的接收端口之间存在链路。
控制器接收到第二交换机所发送的第一收包通知报文后,解封装第二交换机所发送的第一收包通知报文以获得第一探测报文和发送第一收包通知报文的第二交换机的接收端口的端口标识,然后根据第一探测报文中记载的第一交换机的标识以及第二交换机的接收端口的端口标识确定广播第一探测报文的第一交换机与接收到第一探测报文并发送第一收包通知报文第二交换机的接收端口之间存在链路。
504:根据控制器从第二交换机接收到的第一收包通知报文中封装的接收端口的标识的数量确定第一交换机与第二交换机之间的链路的数量。
在SDN中,存在相邻两个交换机之间不止一条链路相连接的情况,即第一交换机与第二交换机的多个端口相连接,这种情况下,控制器为了确定交换机之间的拓扑关系,首先确定第一交换机与第二交换机之间链路的数量。在本实施方式中,控制器是根据接收到第二交换机上报的封装了具有第一交换机的标识的第一收包通知报文的数量来确定广播第一探测报文的第一交换机与接收到广播的第一探测报文的第二交换机之间的链路的数量。比如,控制器接收了第二交换机上报的3个封装了第一交换机的标识的第一收包通知报文,那么控制器可以确定,广播第一探测报文的第一交换机与接收到广播的第一探测报文的第二交换机之间存在3条链路。
505:向第一交换机发送第二发送请求报文,其中,第二发送请求报文中封装了第二探测报文,第二探测报文记载了第一交换机的标识且第二探测报文记载了指定端口的标识,第一交换机具有将第二探测报文从第二发送请求报文中解封装出来以及通过指定端口向外转发第二探测报文的能力。
在确定第一交换机与第二交换机之间的存在的链路数量之后,控制器需要确定第一交换机的端口与第二交换机的端口之间的具体连接关系。具体地,控制器构造第二探测报文,第二探测报文中记载了对应第一交换机的标识和第一交换机从指定端口转发该第二探测报文的端口标识。然后,控制器将第二探测报文封装到第二发送请求报文中。控制器将封装好的第二发送请求报文发送到与第二探测报文中记载的交换机标识对应的第一交换机中去,以使第一交换机将第二发送请求报文解封装后得到第二探测报文,并通过第二探测报文中记载的第一交换机的指定端口转发第二探测报文。比如,第二探测报文中记载了第一交换机转发该第二探测报文的端口为第二端口,那么在第一交换机通过第二端口转发该第二探测报文。
506:接收第二交换机所发送的第二收包通知报文,其中,第二收包通知报文封装了所接收到的第二探测报文以及接收到第二探测报文的接收端口的标识。
与第一交换机指定端口相连接的第二交换机接收到第二探测报文后,会向控制器上报封装有第二探测报文和接收到第一交换机转发的第二探测报文的接收端口标识的第二收包通知报文。相应地,控制器接收第二收包通知报文。比如,第二交换机的第3端口接收到了第二探测报文,那么第二收包通知报文中封装了第二探测报文和接收到第二探测报文的第二交换机的第三端口的端口标识。
507:根据第二探测报文中的第一交换机的标识、第二探测报文中的指定端口的标识、从第二交换机接收到第二收包通知报文以及从第二交换机接收到的第二收包通知报文中封装的接收端口的标识,确定第一交换机的指定端口与第二交换机的接收端口之间存在链路。
控制器接收到第二交换机所发送的第二收包通知报文后,解封装第二收包通知报文,获得第二探测报文和发送第二收包通知报文的第二交换机的端口标识,然后根据第二探测报文中记载的转发第二探测报文的第一交换机的指定端口的端口标识以及接收到广播的第二探测报文的第二交换机的接收端口标识进一步确定第一交换机的指定端口与第二交换机的接收端口之间存在链路。比如,控制器根据第二探测报文中的记载发现第二探测报文由第一交换机的第二端口广播,并被第二交换机的第三端口接收,那么,控制器确定第一交换机的第二端口与第二交换机的第三端口之间存在一条链路。
当控制器发送的为其它指定端口构造的第二探测报文被第一交换机的其他指定端口转发至第二交换机后,控制器就可以获知第一交换机的其他指定端口与第二交换机的其他端口之间存在的链路。当控制器向其他所有存在不止一条链路的交换机发送第二探测报文后,可以获得SDN中交换机之间的所有拓扑关系。
区别于现有技术,本实施方式中控制器向第一交换机所发送的探测报文中记载了第一交换机的标识且不包含从第一交换机的哪个端口转发的信息,第一交换机接收到探测报文后,再将探测报文通过所有端口进行广播。接收到第一交换机所广播的探测报文的第二交换机再将记载了第二交换机接收到探测报文端口的端口标识的探测报文向控制器发送。使得控制器可以根据探测报文中封装的第一交换机的标识以及从第二交换机接收到探测报文确定第一交换机与第二交换机的具体端口之间存在链路。当第一交换机与第二交换机之间存在多条链路时,控制器先根据第二发送机发送的探测报文确定第一交换机与第二交换机之间的链路数量,然后向第一交换机再次发送记载了第一交换机的标识且包含从第一交换机的哪个端口转发的信息,第一交换机接收到探测报文后,再将探测报文通过指定端口进行广播。接收到第一交换机所广播的探测报文的第二交换机再将探测报文向控制器发送。使得控制器可以根据探测报文中封装的第一交换机的标识、第一交换机指定端口的标识以及从第二交换机接收到探测报文确定第一交换机指定端口与第二交换机之间存在链路。由于,控制器向第一交换机第一次发送的探测报文中记载了第一交换机的标识且不包含从第一交换机的哪个端口转发的信息,所以,探测报文没有绑定任何一个端口,可以为任何一个端口所用,故即使第一交换机的端口再多,控制器也只需为第一交换机构造一份探测报文以及向第一交换机发送一份探测报文即可,确定第一交换机与第二交换机之间存在不止一条链路时,再向第一交换机发送记载了指定端口的探测报文,大大减少了控制器以及交换机的资源的浪费。
参阅图6,图6是本申请探测报文发现方法一实施方式的流程图。包括如下步骤:
601:交换机接收控制器所发送的第一发送请求报文,其中,第一发送请求报文中封装了第一探测报文,第一探测报文记载了交换机的标识且第一探测报文不包含从交换机的哪个端口转发的信息。
为了确定SDN内的交换机之间的拓扑关系,在控制器为交换机构造一个第一探测报文,并且将第一探测报文封装在第一发送请求报文并向与第一探测报文中封装的交换机的标识对应的交换机发送该第一发送请求报文后,与第一探测报文中交换机标识对应的交换机接收第一发送请求报文。其中,第一探测报文中封装了对应的交换机的标识并且探测报文中不包含交换机从哪个端口转发的信息。
602:将第一发送请求报文进行解封装,以获得第一探测报文。
交换机接收到第一发送请求报文后,将第一探测报文从第一发送请求报文中解封装出来。
603:通过交换机的所有端口向外广播第一探测报文。
交换机得到第一探测报文后,交换机通过所有的端口向外广播该第一探测报文,以使与广播第一探测报文的交换机相连接的交换机接收到该第一探测报文后,向控制器发送封装了第一探测报文的第一收包通知报文,进一步使控制器能够根据第一收包通知报文确定广播第一探测报文的交换机与接收到广播的第一探测报文的交换机之间的存在的链路。
区别于现有技术,本实施方式的交换机接收控制器发送的探测报文中记载了交换机的标识且不包含从第一交换机的哪个端口转发的信息,将接收到的探测报文解封装后再将探测报文通过所有端口进行广播。能够使控制器可以接收来自接收到广播的探测报文的交换机上报的探测报文后,根据探测报文中封装的广播第一探测报文的交换机的标识以及从接收到广播的第一探测报文的交换机接收到探测报文确定广播第一探测报文的交换机与接收到广播的第一探测报文的交换机之间存在链路。由于,交换机所接收的探测报文中记载了交换机的标识且不包含从交换机的哪个端口转发的信息,所以,探测报文没有绑定任何一个端口,可以为任何一个端口所用,故即使交换机的端口再多,交换机也只需从控制器接收一份探测报文即可,大大减少了控制器以及交换机的资源的浪费。
参阅图7,图7是本申请探测报文发现方法另一实施方式的流程图。包括如下步骤:
701:交换机接收控制器所发送的第一发送请求报文,其中,第一发送请求报文中封装了第一探测报文,第一探测报文记载了交换机的标识且第一探测报文不包含从交换机的哪个端口转发的信息。
为了确定SDN内的交换机之间的拓扑关系,控制器为每个交换机构造一个第一探测报文,然后,控制器将构造好的第一探测报文封装到第一发送请求报文中,并在第一发送请求报文封装好后,向与第一探测报文中封装的交换机的标识对应的交换机发送该第一发送请求报文。相应地,与第一探测报文中交换机标识对应的交换机接收第一发送请求报文。其中,第一探测报文中封装了对应的交换机的标识并且第一探测报文中不包含交换机从哪个端口转发的信息。
702:将第一发送请求报文进行解封装,以获得第一探测报文。
交换机接收到第一发送请求报文后,将第一探测报文从第一发送请求报文中解封装出来。
703:通过交换机的所有端口向外广播第一探测报文。
交换机得到第一探测报文后,交换机通过所有的端口向外广播该第一探测报文,以使与广播第一探测报文的交换机相连接的交换机接收该第一探测报文。与广播第一探测报文的交换机相连接的交换机接收到第一探测报文后,向控制器发送封装了第一探测报文的和接收到广播的第一探测报文的端口标识的第一收包通知报文,进一步使控制器能够根据第一收包通知报文确定广播第一探测报文的交换机与接收广播的第一探测报文的交换机之间的存在的链路。
704:交换机接收控制器所发送的第二发送请求报文,其中,第二发送请求报文中封装了第二探测报文,第二探测报文记载了交换机的标识且第二探测报文记载了指定端口的标识。
如果广播第一探测报文的交换机与接收广播的第一探测报文的交换机之间的存在不止一条链路,为了确定第一交换机的哪一个端口与交第二交换机的指定端口之间存在链路,需要在控制器为交换机的每个端口构造一个记载了交换机标识和交换机指定端口标识的第二探测报文。控制器将第二探测报文封装在第二发送请求报文并向与第二探测报文中封装的交换机的标识对应的交换机发送该第二发送请求报文,相应地,与第二探测报文中交换机标识对应的交换机接收第二发送请求报文。
705:将第二发送请求报文进行解封装,以获得第二探测报文。再从第二探测报文中获取交换机转发该第二探测报文的指定端口的端口标识。
706:通过交换机的指定端口向外转发第二探测报文,以使与广播第二探测报文的交换机端口相连接的交换机在接收该第二探测报文后,向控制器发送封装了第二探测报文和接收广播的第二探测报文的端口标识的第二收包通知报文,进一步使控制器能够根据第二收包通知报文确定转发第二探测报文的交换机端口与接收到转发的第二探测报文的交换机端口之间的存在的链路。
当控制器发送的为其它指定端口构造的第二探测报文被第一交换机的其他指定端口转发至第二交换机后,控制器就可以获知第一交换机的其他指定端口与第二交换机的其他端口之间存在的链路。当控制器向其他所有存在不止一条链路的交换机发送第二探测报文后,可以获得SDN中交换机之间的所有拓扑关系。
区别于现有技术,本实施方式的交换机接收控制器发送的探测报文中记载了交换机的标识且不包含从第一交换机的哪个端口转发的信息,将接收到的探测报文解封装后再将探测报文通过所有端口进行广播。能够使控制器可以接收来自接收到广播的探测报文的交换机上报的探测报文后,根据探测报文中封装的广播第一探测报文的交换机的标识以及从接收到广播的第一探测报文的交换机接收到探测报文确定广播第一探测报文的交换机与接收到广播的第一探测报文的交换机之间存在链路数,如果存在不止一条链路,则交换机接收控制器发送的记载了交换机标识和指定端口的标识的第二探测报文,对第二探测报文解封装并从指定端口广播出去,进而使控制器确定交换机端口之间具体的连接关系。由于,交换机所接收的探测报文中记载了交换机的标识且不包含从交换机的哪个端口转发的信息,所以,探测报文没有绑定任何一个端口,可以为任何一个端口所用,故即使交换机的端口再多,交换机也只需从控制器接收一份探测报文即可,当确定相邻交换机之间存在不止一条链路时,再接收控制器发送的包含指定端口的第二探测报文,大大减少了控制器以及交换机的资源的浪费。
参阅图8,图8是本申请链路发现装置的一实施方式的结构示意图。本实施方式的链路发现装置包括发送模块801、接收模块802以及判断模块803。
发送模块801用于向第一交换机发送第一发送请求报文,其中,第一发送请求报文中封装了第一探测报文,第一探测报文记载了第一交换机的标识且第一探测报文不包含从第一交换机的哪个端口转发的信息,第一交换机具有将第一探测报文从第一发送请求报文中解封装出来以及向所有端口广播第一探测报文的能力。
接收模块802用于接收第二交换机所发送的第一收包通知报文,其中,第二交换机为接收到第一交换机广播的第一探测报文的交换机,第一收包通知报文封装了第一探测报文。
判断模块803用于根据探测报文中封装的第一交换机的标识以及从第二交换机接收到第一收包通知报文确定第一交换机与第二交换机之间存在链路。
可选地,接收模块802接收到的第二交换机所发送的第一收包通知报文还封装了接收端口的标识,其中,接收端口为第二交换机接收到第一交换机所广播的探测报文的端口,判断模块803还用于根据探测报文中封装的第一交换机的标识、从第二交换机接收到第一收包通知报文以及从第二交换机接收到的第一收包通知报文中封装的接收端口的标识,确定第一交换机与第二交换机的接收端口之间存在链路。
可选地,判断模块803还用于根据控制器从第二交换机接收到的第一收包通知报文中封装的接收端口的标识的数量确定第一交换机与第二交换机之间的链路的数量。发送模块801还用于向第一交换机发送第二发送请求报文,其中,第二发送请求报文中封装了第二探测报文,第二探测报文记载了第一交换机的标识且第二探测报文记载了指定端口的标识,第一交换机具有将第二探测报文从第二发送请求报文中解封装出来以及通过指定端口向外转发第二探测报文的能力。接收模块802还用于接收第二交换机所发送的第二收包通知报文,其中,第二收包通知报文封装了所接收到的第二探测报文以及接收到第二探测报文的接收端口的标识。判断模块803还用于根据第二探测报文中的第一交换机的标识、第二探测报文中的指定端口的标识、从第二交换机接收到第二收包通知报文以及从第二交换机接收到的第二收包通知报文中封装的接收端口的标识,确定第一交换机的指定端口与第二交换机的接收端口之间存在链路。
可以理解,图8所示的装置可以执行图4以及图5对应的实施例中的各个步骤。
区别于现有技术,本实施方式中发送模块向第一交换机所发送的探测报文中记载了第一交换机的标识且不包含从第一交换机的哪个端口转发的信息,第一交换机接收到探测报文后,再将探测报文通过所有端口进行广播。接收模块接收到第一交换机所广播的探测报文的第二交换机再将探测报文向控制器发送。使得判断模块可以根据探测报文中封装的第一交换机的标识以及从第二交换机接收到探测报文确定第一交换机与第二交换机之间存在链路。由于,发送模块向第一交换机所发送的探测报文中记载了第一交换机的标识且不包含从第一交换机的哪个端口转发的信息,所以,探测报文没有绑定任何一个端口,可以为任何一个端口所用,故即使第一交换机的端口再多,判断模块也只需为第一交换机构造一份探测报文以及向第一交换机发送一份探测报文即可,大大减少了控制器以及交换机的资源的浪费。
参阅图9,图9是本申请控制器的一实施方式的结构示意图。本实施方式的控制器包括发送器901、接收器902以及处理器903。
发送器901用于向第一交换机发送第一发送请求报文,其中,第一发送请求报文中封装了第一探测报文,第一探测报文记载了第一交换机的标识且第一探测报文不包含从第一交换机的哪个端口转发的信息,第一交换机具有将第一探测报文从第一发送请求报文中解封装出来以及向所有端口广播第一探测报文的能力。
接收器902用于接收第二交换机所发送的第一收包通知报文,其中,第二交换机为接收到第一交换机广播的第一探测报文的交换机,第一收包通知报文封装了第一探测报文。
处理器903用于根据探测报文中封装的第一交换机的标识以及从第二交换机接收到第一收包通知报文确定第一交换机与第二交换机之间存在链路。
本实施方式中的交换机还包括存储器904,存储器904可以包括只读存储器和随机存取存储器,并向处理器903提供指令和数据。存储器904的一部分还可以包括非易失性随机存取存储器(NVRAM)。
存储器904存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:
操作指令:包括各种操作指令,用于实现各种操作。
操作***:包括各种***程序,用于实现各种基础业务以及处理基于硬件的任务。
在本发明实施例中,处理器903通过调用存储器904存储的操作指令(该操作指令可存储在操作***中),来执行上述操作。
处理器903还可以称为CPU(Central Processing Unit,中央处理单元)。存储器904可以包括只读存储器和随机存取存储器,并向处理器702提供指令和数据。存储器904的一部分还可以包括非易失性随机存取存储器(NVRAM)。具体的应用中,控制器的各个组件通过总线***905耦合在一起,其中总线***905除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线***905。
上述本发明实施例揭示的方法可以应用于处理器903中,或者由处理器903实现。处理器903可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器903中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器903可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器904,处理器903读取存储器904中的信息,结合其硬件完成上述方法的步骤。
可选地,接收器902接收到的第二交换机所发送的第一收包通知报文还封装了接收端口的标识,其中,接收端口为第二交换机接收到第一交换机所广播的探测报文的端口,处理器903还用于根据探测报文中封装的第一交换机的标识、从第二交换机接收到第一收包通知报文以及从第二交换机接收到的第一收包通知报文中封装的接收端口的标识,确定第一交换机与第二交换机的接收端口之间存在链路。
可选地,处理器903还用于根据控制器从第二交换机接收到的第一收包通知报文中封装的接收端口的标识的数量确定第一交换机与第二交换机之间的链路的数量。发送器901还用于向第一交换机发送第二发送请求报文,其中,第二发送请求报文中封装了第二探测报文,第二探测报文记载了第一交换机的标识且第二探测报文记载了指定端口的标识,第一交换机具有将第二探测报文从第二发送请求报文中解封装出来以及通过指定端口向外转发第二探测报文的能力。接收器902还用于接收第二交换机所发送的第二收包通知报文,其中,第二收包通知报文封装了所接收到的第二探测报文以及接收到第二探测报文的接收端口的标识。处理器903还用于根据第二探测报文中的第一交换机的标识、第二探测报文中的指定端口的标识、从第二交换机接收到第二收包通知报文以及从第二交换机接收到的第二收包通知报文中封装的接收端口的标识,确定第一交换机的指定端口与第二交换机的接收端口之间存在链路。
区别于现有技术,本实施方式中发送器向第一交换机所发送的探测报文中记载了第一交换机的标识且不包含从第一交换机的哪个端口转发的信息,第一交换机接收到探测报文后,再将探测报文通过所有端口进行广播。接收器接收到第一交换机所广播的探测报文的第二交换机再将探测报文向控制器发送。使得判断模块可以根据探测报文中封装的第一交换机的标识以及从第二交换机接收到探测报文确定第一交换机与第二交换机之间存在链路。由于,发送器向第一交换机所发送的探测报文中记载了第一交换机的标识且不包含从第一交换机的哪个端口转发的信息,所以,探测报文没有绑定任何一个端口,可以为任何一个端口所用,故即使第一交换机的端口再多,处理器也只需为第一交换机构造一份探测报文以及向第一交换机发送一份探测报文即可,大大减少了控制器以及交换机的资源的浪费。
参阅图10,图10为本申请探测报文发送装置一实施方式的结构示意图,本实施方式的探测报文发送装置包括接收模块1001、解封装模块1002、以及发送模块1003,
接收模块1001用于接收控制器所发送的第一发送请求报文,其中,第一发送请求报文中封装了第一探测报文,第一探测报文记载了交换机的标识且第一探测报文不包含从交换机的哪个端口转发的信息;
解封装模块1002用于将第一发送请求报文进行解封装,以获得第一探测报文;
发送模块1003用于通过交换机的所有端口向外广播第一探测报文。
可选地,接收模块1001还用于接收控制器所发送的第二发送请求报文,其中,第二发送请求报文中封装了第二探测报文,第二探测报文记载了交换机的标识且第二探测报文记载了指定端口的标识;解封装模块1002还用于将第二发送请求报文进行解封装,以获得第二探测报文;发送模块1003还用于通过交换机的指定端口向外转发第二探测报文。
可以理解,图10所示的装置可以执行图6以及图7对应的实施例中的各个步骤。
区别于现有技术,本实施方式的接收模块接收控制器发送的探测报文中记载了交换机的标识且不包含从第一交换机的哪个端口转发的信息,解封装模块将接收到的探测报文解封装后再将探测报文发送模块通过所有端口进行广播。能够使控制器可以接收来自接收到广播的探测报文的交换机上报的探测报文后,根据探测报文中封装的广播第一探测报文的交换机的标识以及从接收到广播的第一探测报文的交换机接收到探测报文确定广播第一探测报文的交换机与接收到广播的第一探测报文的交换机之间存在链路。由于,交换机所接收的探测报文中记载了交换机的标识且不包含从交换机的哪个端口转发的信息,所以,探测报文没有绑定任何一个端口,可以为任何一个端口所用,故即使交换机的端口再多,交换机也只需从控制器接收一份探测报文即可,大大减少了控制器以及交换机的资源的浪费。
参阅图11,图11为本申请交换机一实施方式的结构示意图,本实施方式的探测报文发送装置包括接收器1101、处理器1102、以及发送器1103,
接收器1101用于接收控制器所发送的第一发送请求报文,其中,第一发送请求报文中封装了第一探测报文,第一探测报文记载了交换机的标识且第一探测报文不包含从交换机的哪个端口转发的信息;
处理器1102用于将第一发送请求报文进行解封装,以获得第一探测报文;
发送器1103用于通过交换机的所有端口向外广播第一探测报文。
本实施方式中的交换机还包括存储器1104,存储器1104可以包括只读存储器和随机存取存储器,并向处理器903提供指令和数据。存储器904的一部分还可以包括非易失性随机存取存储器(NVRAM)。
存储器1104存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:
操作指令:包括各种操作指令,用于实现各种操作。
操作***:包括各种***程序,用于实现各种基础业务以及处理基于硬件的任务。
在本发明实施例中,处理器1102通过调用存储器1104存储的操作指令(该操作指令可存储在操作***中),来执行上述操作。
处理器1102还可以称为CPU(Central Processing Unit,中央处理单元)。存储器1104可以包括只读存储器和随机存取存储器,并向处理器1103提供指令和数据。存储器1104的一部分还可以包括非易失性随机存取存储器(NVRAM)。具体的应用中,控制器的各个组件通过总线***1105耦合在一起,其中总线***1105除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线***1105。
上述本发明实施例揭示的方法可以应用于处理器1102中,或者由处理器1102实现。处理器1102可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1102中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1102可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1104,处理器1102读取存储器1104中的信息,结合其硬件完成上述方法的步骤。
可选地,接收器1101还用于接收控制器所发送的第二发送请求报文,其中,第二发送请求报文中封装了第二探测报文,第二探测报文记载了交换机的标识且第二探测报文记载了指定端口的标识;处理器1102还用于将第二发送请求报文进行解封装,以获得第二探测报文;发送器1103还用于通过交换机的指定端口向外转发第二探测报文。
区别于现有技术,本实施方式的接收器接收控制器发送的探测报文中记载了交换机的标识且不包含从第一交换机的哪个端口转发的信息,处理器将接收到的探测报文解封装后再将探测报文发送器通过所有端口进行广播。能够使控制器可以接收来自接收到广播的探测报文的交换机上报的探测报文后,根据探测报文中封装的广播第一探测报文的交换机的标识以及从接收到广播的第一探测报文的交换机接收到探测报文确定广播第一探测报文的交换机与接收到广播的第一探测报文的交换机之间存在链路。由于,交换机所接收的探测报文中记载了交换机的标识且不包含从交换机的哪个端口转发的信息,所以,探测报文没有绑定任何一个端口,可以为任何一个端口所用,故即使交换机的端口再多,交换机也只需从控制器接收一份探测报文即可,大大减少了控制器以及交换机的资源的浪费。
参阅图12,图12是本申请链路发现***又一实施方式的结构示意图。本实施方式的链路发现***包括控制器1210以及交换机1220。控制器1210分别与网络中的每一台交换机1220相连接,网络中的交换机1220之间拓扑连接。为了使控制器1210发现交换机1220之间的拓扑连接关系,本实施方式的控制器1210为每一个交换机1220构造一个探测报文模板,所构造的探测报文模板中记载了对应的交换机1220的标识,然后控制器1210将探测报文模板封装在发送请求报文中,并向与探测报文中封装的交换机的标识对应的交换机1220发送该发送请求报文。交换机1220接收到发送请求报文后,对发送请求报文进行解封装,获得探测报文模板,并将发送该探测报文模板的发送端口的标识填写到探测报文模板中后,通过与上述发送端口的标识对应的端口向外转发该探测报文模板。与转发探测报文模板的交换机1220相连接的交换机1220接收到转发的探测报文模板后,将接收到的探测报文模板以及接收到该探测报文模板的端口标识封装到收包通知报文中,并向控制器1210发送收包通知报文。这样,控制器210就能发现转发探测报文模板的交换机220的发送端口与接到转发的探测报文的交换机1220接收端口之间的链路。
下面以控制器1210为交换机2构造一个探测报文模板为例进行说明。
控制器1210为交换机2构造一个探测报文模板,所构造的探测报文模板中封装了对应的交换机2的标识Node2。构造探测报文模板完毕后,控制器1210将构造好的探测报文模板封装到发送请求报文中,然后,将发送请求报文对应发送到具有标识Node2的交换机2中去。
交换机2接收到发送请求报文后,对发送请求报文进行解封装,获得探测报文模板,并将发送该探测报文模板的发送端口的标识填写到探测报文模板中后,通过与上述发送端口的标识对应的端口向外转发该探测报文模板。如图12所示,交换机2包括4个端口,端口1、端口2、端口3以及端口4。交换机2接收到探测报文模板后,交换机2将端口1的标识Port1封装到探测报文模板中,并通过端口1将封装有端口标识Port1的探测报文模板转发出去;交换机2将端口2的标识Port2封装到探测报文模板中,并通过端口2将封装有端口标识Port2的探测报文模板转发出去;交换机2再将端口3的标识Port3封装到探测报文模板中,并通过端口3将封装有端口标识Port3的探测报文模板转发出去;交换机2再将端口4的标识Port4封装到探测报文模板中,并通过端口4将封装有端口标识Port4的探测报文模板转发出去。
与交换机2相连接的交换机1、交换3以及交换机4对应的接收交换机2的对应端口转发的探测报文模板。如图12所示,交换机2的端口1与交换机3的端口1相连接,交换机2的端口2与交换机4的端口3相连接,交换机2的端口3与交换机1的端口2相连接,交换机2的端口4与交换机3的端口3相连接。所以当交换机2的端口1转发该探测报文模板后,交换机3的端口1能接收到该探测报文模板。交换机2的端口2转发该探测报文模板后,交换机4的端口3能接收到该探测报文模板。交换机2的端口3转发该探测报文模板后,交换机1的端口2能接收到该探测报文模板。交换机2的端口4转发该探测报文模板后,交换机3的端口3能接收到该探测报文模板。
交换机1、交换机3与交换机4分别将接收到的探测模板报文以及接收到探测报文模板端口标识封装到收包通知报文,并将该收包通知报文向控制器1210上报。例如,交换机1将接收到的探测报文模板以及接收探测报文模板的端口标识Port2封装到第收包通知报文,并将该收包通知报文向控制器1210上报;交换机3将接收到的探测报文以及端口标识Port1封装到收包通知报文,并将该收包通知报文向控制器1210上报;交换机4将接收到的探测报文以及端口标识Port3封装到收包通知报文,并将该收包通知报文向控制器210上报,交换机3将接收到的探测报文以及端口标识Port3封装到收包通知报文,并将该收包通知报文向控制器1210上报。
控制器1210接收到交换机1所发送的收包通知报文后,解封装交换机1所发送的收包通知报文以获得探测报文模板,然后根据探测报文模板中的交换2的标识Node2,发送端口的标识Port3、从交换机1发送的收包通知报文的端口标识Port2,确定交换机2的端口3与交换机1的端口2之间存在链路。
控制器1210接收到交换机3所发送的收包通知报文后,解封装交换机3所发送的收包通知报文以获得探测报文模板,然后根据探测报文模板中的交换2的标识Node2,发送端口的标识Port1、从交换机3发送的收包通知报文的端口标识Port1,确定交换机2的端口1与交换机3的端口1之间存在链路。
控制器1210接收到交换机4所发送的收包通知报文后,解封装交换机4所发送的收包通知报文以获得探测报文模板,然后根据探测报文模板中的交换2的标识Node2,发送端口的标识Port2、从交换机4发送的收包通知报文的端口标识Port3,确定交换机2的端口2与交换机4的端口3之间存在链路。
控制器1210接收到交换机3所发送的收包通知报文后,解封装交换机3所发送的收包通知报文以获得探测报文模板,然后根据探测报文模板中的交换2的标识Node2,发送端口的标识Port4、从交换机3发送的收包通知报文的端口标识Port3,确定交换机2的端口4与交换机3的端口3之间存在链路。
当控制器为每个交换机1220构造并发送探测报文模板后,控制器1210就可以获知交换机220之间的所有链路,从而获得交换机220之间的所有拓扑关系。
参阅图13,图13是本申请链路发现方法又一实施方式的流程图。本实施方式包容如下步骤:
1301:向第一交换机发送发送请求报文,其中,发送请求报文中封装了探测报文模板,探测报文模板记载了所述第一交换机的标识,第一交换机具有将探测报文模板从发送请求报文中解封装出来以及将发送探测报文模板的发送端口的标识填写到探测报文模板中的能力。
控制器为了发现交换机之间的拓扑连接关系,为第一交换机构造一个探测报文模板,所构造的探测报文中记载了对应的第一交换机的标识,然后控制器将探测报文模板封装在发送请求报文中,并向与探测报文中封装的交换机的标识对应的第一交换机发送该发送请求报文,以使得交换机能够将探测报文模板从发送请求报文中解封装出来,然后,将发送探测报文模板的发送端口的标识填写到探测报文模板中,并将该探测报文模板通过与发送端口的标识对应的端口向外转发出去。
1302:接收第二交换机所发送的收包通知报文,其中,第二交换机为接收到第一交换机通过发送端口发送的探测报文模板的交换机,收包通知报文封装了探测报文模板以及第二交换机接收到探测报文模板的接收端口的标识。
当与第一交换机相连接的第二交换机接收到探测报文模板后,将探测报文模板以及接收到该探测报文模板的端口标识封装到收包通知报文中,并向控制器发送收包通知报文。相应地,控制器接收第二交换机发送的收包通知报文。
1303:根据探测报文中封装的第一交换机的标识、第一交换机的发送端口、从第二交换机接收到收包通知报文以及第二交换机接收到探测报文模板的接收端口的标识确定第一交换机的发送端口与第二交换机的接收端口之间存在链路。
控制器解封装第二交换机所发送的收包通知报文以获得探测报文模板,并从探测报文模板中获得第一交换机的标识,第一交换机封装在探测报文模板中的发送探测报文模板的发送端口的标识,以及第二交换机封装在探测报文模板中的接收探测报文模板的接收端口的标识,然后,控制器根据第一交换机标识、第一交换发送端口的标识、第二交换机接收端口的标识确定第一交换机的发送端口与第二交换机的接收端口之间存在链路。
当控制器为每个交换机都发出探测报文模板后,控制器获知交换机之间的所有链路,从而获得交换机之间的拓扑关系。
区别于现有技术,本实施方式中控制器向第一交换机所发送的探测报文模板中记载了第一交换机的标识,第一交换机接收到探测报文后,将发送该探测报文模板的发送端口的标识填写到探测报文中,再通过与发送端口的标识对应的端口向外转发该探测报文模板。接收到第一交换机所转发的探测报文模板的第二交换机再将探测报文模板向控制器发送。使得控制器可以根据探测报文中封装的第一交换机的标识、第一交换机发送端口的标识以及从第二交换机接收到探测报文模板确定第一交换机发送端口与第二交换机接收端口之间存在链路。由于,控制器向第一交换机所发送的探测报文模板中只记载了第一交换机的标识且不包含从第一交换机的哪个端口转发的信息,第一交换机接收到探测报文后只需要将发送端口的标识填写到探测报文模板中再进行转发,即使第一交换机的端口再多,控制器也只需为第一交换机构造一份探测报文以及向第一交换机发送一份探测报文即可,大大减少了控制器以及交换机的资源的浪费。
参阅图14,图14是本申请探测报文模板发送方法的一实施方式的流程图。本实施方式的探测报文模板发送方法包括如下步骤:
1401:交换机接收控制器所发送的发送请求报文,其中,发送请求报文中封装了探测报文模板,探测报文模板记载了交换机的标识。
为了确定SDN内的交换机之间的拓扑关系,控制器为每个交换机构造一个探测报文模板。然后,控制器将构造好的探测报文模板封装到发送请求报文中,并向探测报文模板中的封装的交换机的标识对应的交换机发送该发送请求报文。相应地,交换机接收发送请求报文。其中,探测报文中封装了对应的交换机的标识并且探测报文模板中不包含交换机从哪个端口转发的信息。
1402:将探测报文模板从发送请求报文进行解封装,以获得探测报文模板。
1403:将发送探测报文模板的发送端口的标识填写到探测报文模板中,并将探测报文模板通过发送端口向外转发。
交换机获得探测报文模板后,将发送该探测报文模板的发送端口的标识填写到探测报文模板中后,通过与上述发送端口的标识对应的端口向外转发该探测报文模板。以使与转发探测报文模板的交换机相连接的交换机1220接收到转发的探测报文模板后,将接收到的探测报文模板以及接收到该探测报文模板的端口标识封装到收包通知报文中,并将收包通知报文发送给控制器。使控制器根据探测报文模板中记载的交换机的发送端口的标识以及接收探测报文模板的交换机的接收端口的标识确定交换机的发送端口与接收探测报文模板的交换机的接收端口之间存在链路。
当所有交换机都接收到控制器发送的探测报文模板后,能够使控制器获知交换机之间的所有链路,从而获得交换机之间的拓扑关系。
区别于现有技术,本实施方式中交换机接收到控制器所发送的记载了交换机的标识探测报文模板后,将发送该探测报文模板的发送端口的标识填写到探测报文中,再通过与发送端口的标识对应的端口向外转发该探测报文模板。接收到转发的探测报文模板的交换机再将探测报文模板向控制器发送。使得控制器可以根据探测报文中封装的转发探测报文模板的交换机的标识、发送端口的标识以及从接收到探测报文的交换机发送来的探测报文模板确定转发探测报文模板的交换机的发送端口与接收探测报文模板的交换机的接收端口之间存在链路。由于,交换机接收的控制器所发送的探测报文模板中只记载了交换机的标识且不包含从第一交换机的哪个端口转发的信息,交换机接收到探测报文后只需要将发送端口的标识填写到探测报文模板中再进行转发,即使交换机的端口再多,控制器也只需为交换机构造一份探测报文以及向交换机发送一份探测报文即可,大大减少了控制器以及交换机的资源的浪费。
参阅图15,图15是本申请链路发现装置另一实施方式的结构示意图。本实施方式的链路发现装置包括发送模块1501、接收模块1502以及判断模块1503,
发送模块1501用于向第一交换机发送发送请求报文,其中,发送请求报文中封装了探测报文模板,探测报文模板记载了第一交换机的标识,第一交换机具有将探测报文模板从发送请求报文中解封装出来以及将发送探测报文模板的发送端口的标识填写到探测报文模板中的能力。
接收模块1502用于接收第二交换机所发送的收包通知报文,其中,第二交换机为接收到第一交换机通过发送端口发送的探测报文模板的交换机,收包通知报文封装了探测报文模板以及第二交换机接收到探测报文模板的接收端口的标识。
判断模块1503用于根据探测报文中封装的第一交换机的标识、第一交换机的发送端口、从第二交换机接收到收包通知报文以及第二交换机接收到探测报文模板的接收端口的标识确定第一交换机的发送端口与第二交换机的接收端口之间存在链路。
可以理解,图15所示的装置可以执行图13对应的实施例中的各个步骤。
区别于现有技术,本实施方式中发送模块向第一交换机所发送的探测报文模板中记载了第一交换机的标识,第一交换机接收到探测报文后,将发送该探测报文模板的发送端口的标识填写到探测报文中,再通过与发送端口的标识对应的端口向外转发该探测报文模板。接收模块接收到第一交换机所转发的探测报文模板的第二交换机再将探测报文模板向控制器发送。使得判断模块可以根据探测报文中封装的第一交换机的标识、第一交换机发送端口的标识以及从第二交换机接收到探测报文模板确定第一交换机发送端口与第二交换机接收端口之间存在链路。由于,发送模块向第一交换机所发送的探测报文模板中只记载了第一交换机的标识且不包含从第一交换机的哪个端口转发的信息,第一交换机接收到探测报文后只需要将发送端口的标识填写到探测报文模板中再进行转发,即使第一交换机的端口再多,发送模块也只需为第一交换机构造一份探测报文以及向第一交换机发送一份探测报文即可,大大减少了控制器以及交换机的资源的浪费。
参阅图16,图16是本申请控制器另一实施方式的结构示意图。本实施方式的链路发现装置包括发送器1601、接收器1602以及处理器1603,
发送器1601用于向第一交换机发送发送请求报文,其中,发送请求报文中封装了探测报文模板,探测报文模板记载了第一交换机的标识,第一交换机具有将探测报文模板从发送请求报文中解封装出来以及将发送探测报文模板的发送端口的标识填写到探测报文模板中的能力。
接收器160用于接收第二交换机所发送的收包通知报文,其中,第二交换机为接收到第一交换机通过发送端口发送的探测报文模板的交换机,收包通知报文封装了探测报文模板以及第二交换机接收到探测报文模板的接收端口的标识。
处理器1603用于根据探测报文中封装的第一交换机的标识、第一交换机的发送端口、从第二交换机接收到收包通知报文以及第二交换机接收到探测报文模板的接收端口的标识确定第一交换机的发送端口与第二交换机的接收端口之间存在链路。
本实施方式中的交换机还包括存储器1604,存储器1604可以包括只读存储器和随机存取存储器,并向处理器1603提供指令和数据。存储器1604的一部分还可以包括非易失性随机存取存储器(NVRAM)。
存储器1604存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:
操作指令:包括各种操作指令,用于实现各种操作。
操作***:包括各种***程序,用于实现各种基础业务以及处理基于硬件的任务。
在本发明实施例中,处理器1603通过调用存储器1604存储的操作指令(该操作指令可存储在操作***中),来执行上述操作。
处理器1603还可以称为CPU(Central Processing Unit,中央处理单元)。存储器1604可以包括只读存储器和随机存取存储器,并向处理器1603提供指令和数据。存储器1604的一部分还可以包括非易失性随机存取存储器(NVRAM)。具体的应用中,控制器的各个组件通过总线***1605耦合在一起,其中总线***1605除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线***1605。
上述本发明实施例揭示的方法可以应用于处理器1603中,或者由处理器1603实现。处理器1603可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1603中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1603可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1604,处理器1603读取存储器1604中的信息,结合其硬件完成上述方法的步骤。
区别于现有技术,本实施方式中发送器向第一交换机所发送的探测报文模板中记载了第一交换机的标识,第一交换机接收到探测报文后,将发送该探测报文模板的发送端口的标识填写到探测报文中,再通过与发送端口的标识对应的端口向外转发该探测报文模板。接收器接收到第一交换机所转发的探测报文模板的第二交换机再将探测报文模板向控制器发送。使得处理器可以根据探测报文中封装的第一交换机的标识、第一交换机发送端口的标识以及从第二交换机接收到探测报文模板确定第一交换机发送端口与第二交换机接收端口之间存在链路。由于,发送器向第一交换机所发送的探测报文模板中只记载了第一交换机的标识且不包含从第一交换机的哪个端口转发的信息,第一交换机接收到探测报文后只需要将发送端口的标识填写到探测报文模板中再进行转发,即使第一交换机的端口再多,发送器也只需为第一交换机构造一份探测报文以及向第一交换机发送一份探测报文即可,大大减少了控制器以及交换机的资源的浪费。
参阅图17,图17是本申请探测报文发送装置一实施方式的结构示意图。本实施方式的探测报文模板包括接收模块1701、解封装模块1702、以及发送模块1703,
接收模块1701用于接收控制器所发送的发送请求报文,其中,发送请求报文中封装了探测报文模板,探测报文模板记载了交换机的标识;
解封装模块1702用于将探测报文模板从发送请求报文进行解封装,以获得探测报文模板;
发送模块1703用于将发送探测报文模板的发送端口的标识填写到探测报文模板中,并将探测报文模板通过发送端口向外转发。
可以理解,图17所示的装置可以执行图14对应的实施例中的各个步骤。
区别于现有技术,本实施方式中接收模块接收到控制器所发送的记载了交换机的标识探测报文模板后,解封装模块解封装得到探测报文模板,发送模块将发送该探测报文模板的发送端口的标识填写到探测报文中,再通过与发送端口的标识对应的端口向外转发该探测报文模板。接收到转发的探测报文模板的交换机再将探测报文模板向控制器发送。使得控制器可以根据探测报文中封装的转发探测报文模板的交换机的标识、发送端口的标识以及从接收到探测报文的交换机发送来的探测报文模板确定转发探测报文模板的交换机的发送端口与接收探测报文模板的交换机的接收端口之间存在链路。由于,接收模块接收的控制器所发送的探测报文模板中只记载了交换机的标识且不包含从第一交换机的哪个端口转发的信息,接收模块接收到探测报文后只需要将发送端口的标识填写到探测报文模板中再进行转发,即使交换机的端口再多,控制器也只需为交换机构造一份探测报文以及向交换机发送一份探测报文即可,大大减少了控制器以及交换机的资源的浪费
参阅图18,图18是本申请交换机另一实施方式的结构示意图。本实施方式的探测报文模板包括接收器1801、处理器1802、以及发送器1803,
接收器1801用于接收控制器所发送的发送请求报文,其中,发送请求报文中封装了探测报文模板,探测报文模板记载了交换机的标识;
处理器1802用于将探测报文模板从发送请求报文进行解封装,以获得探测报文模板;
发送器1803用于将发送探测报文模板的发送端口的标识填写到探测报文模板中,并将探测报文模板通过发送端口向外转发。
本实施方式中的交换机还包括存储器1804,存储器1804可以包括只读存储器和随机存取存储器,并向处理器1802提供指令和数据。存储器1804的一部分还可以包括非易失性随机存取存储器(NVRAM)。
存储器1804存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:
操作指令:包括各种操作指令,用于实现各种操作。
操作***:包括各种***程序,用于实现各种基础业务以及处理基于硬件的任务。
在本发明实施例中,处理器1802通过调用存储器1804存储的操作指令(该操作指令可存储在操作***中),来执行上述操作。
处理器1802还可以称为CPU(Central Processing Unit,中央处理单元)。存储器1804可以包括只读存储器和随机存取存储器,并向处理器1802提供指令和数据。存储器1804的一部分还可以包括非易失性随机存取存储器(NVRAM)。具体的应用中,控制器的各个组件通过总线***1805耦合在一起,其中总线***1805除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线***1805。
上述本发明实施例揭示的方法可以应用于处理器1802中,或者由处理器1802实现。处理器1802可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1802中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1802可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1804,处理器1802读取存储器1804中的信息,结合其硬件完成上述方法的步骤。
区别于现有技术,本实施方式中接收器接收到控制器所发送的记载了交换机的标识探测报文模板后,处理器解封装得到探测报文模板,发送器将发送该探测报文模板的发送端口的标识填写到探测报文中,再通过与发送端口的标识对应的端口向外转发该探测报文模板。接收到转发的探测报文模板的交换机再将探测报文模板向控制器发送。使得控制器可以根据探测报文中封装的转发探测报文模板的交换机的标识、发送端口的标识以及从接收到探测报文的交换机发送来的探测报文模板确定转发探测报文模板的交换机的发送端口与接收探测报文模板的交换机的接收端口之间存在链路。由于,接收器接收的控制器所发送的探测报文模板中只记载了交换机的标识且不包含从第一交换机的哪个端口转发的信息,接收模块接收到探测报文后只需要将发送端口的标识填写到探测报文模板中再进行转发,即使交换机的端口再多,控制器也只需为交换机构造一份探测报文以及向交换机发送一份探测报文即可,大大减少了控制器以及交换机的资源的浪费
在本申请所提供的几个实施方式中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (14)
1.一种链路发现方法,其特征在于,包括如下步骤:
向第一交换机发送第一发送请求报文,其中,所述第一发送请求报文中封装了第一探测报文,所述第一探测报文记载了所述第一交换机的标识且所述第一探测报文不包含从所述第一交换机的哪个端口转发的信息,所述第一交换机具有将所述第一探测报文从所述第一发送请求报文中解封装出来以及向所有端口广播所述第一探测报文的能力;
接收第二交换机所发送的第一收包通知报文,其中,所述第二交换机为接收到所述第一交换机广播的所述第一探测报文的交换机,所述第一收包通知报文封装了所述第一探测报文;
根据所述第一探测报文中封装的第一交换机的标识以及从所述第二交换机接收到所述第一收包通知报文确定所述第一交换机与所述第二交换机之间存在链路。
2.根据权利要求1所述的方法,其特征在于,所述第一收包通知报文还封装了接收端口的标识,其中,所述接收端口为所述第二交换机接收到所述第一交换机所广播的所述探测报文的端口,
所述根据所述探测报文中封装的第一交换机的标识以及从所述第二交换机接收到所述第一收包通知报文确定所述第一交换机与所述第二交换机之间存在链路的步骤具体为:
根据所述探测报文中封装的第一交换机的标识、从所述第二交换机接收到所述第一收包通知报文以及从所述第二交换机接收到的所述第一收包通知报文中封装的所述接收端口的标识,确定所述第一交换机与所述第二交换机的接收端口之间存在链路。
3.根据权利要求2所述的方法,其特征在于,如果所述第一交换机与所述第二交换机之间存在多个链路,所述方法还包括如下步骤:
根据控制器从所述第二交换机接收到的所述第一收包通知报文中封装的所述接收端口的标识的数量确定所述第一交换机与所述第二交换机之间的链路的数量;
向所述第一交换机发送第二发送请求报文,其中,所述第二发送请求报文中封装了第二探测报文,所述第二探测报文记载了所述第一交换机的标识且所述第二探测报文记载了指定端口的标识,所述第一交换机具有将所述第二探测报文从所述第二发送请求报文中解封装出来以及通过所述指定端口向外转发所述第二探测报文的能力;
接收所述第二交换机所发送的第二收包通知报文,其中,所述第二收包通知报文封装了所接收到的所述第二探测报文以及接收到所述第二探测报文的接收端口的标识;
根据所述第二探测报文中的所述第一交换机的标识、所述第二探测报文中的所述指定端口的标识、从所述第二交换机接收到所述第二收包通知报文以及从所述第二交换机接收到的所述第二收包通知报文中封装的接收端口的标识,确定所述第一交换机的所述指定端口与所述第二交换机的接收端口之间存在链路。
4.一种探测报文发送方法,其特征在于,所述方法包括如下步骤:
交换机接收控制器所发送的第一发送请求报文,其中,所述第一发送请求报文中封装了第一探测报文,所述第一探测报文记载了所述交换机的标识且所述第一探测报文不包含从所述交换机的哪个端口转发的信息;
将所述第一发送请求报文进行解封装,以获得所述第一探测报文;
通过所述交换机的所有端口向外广播所述第一探测报文。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括如下步骤:
交换机接收控制器所发送的第二发送请求报文,其中,所述第二发送请求报文中封装了第二探测报文,所述第二探测报文记载了所述交换机的标识且所述第二探测报文记载了指定端口的标识;
将所述第二发送请求报文进行解封装,以获得所述第二探测报文;
通过所述交换机的指定端口向外转发所述第二探测报文。
6.一种链路发现装置,其特征在于,包括发送模块、接收模块以及判断模块,
所述发送模块用于向第一交换机发送第一发送请求报文,其中,所述第一发送请求报文中封装了第一探测报文,所述第一探测报文记载了所述第一交换机的标识且所述第一探测报文不包含从所述第一交换机的哪个端口转发的信息,所述第一交换机具有将所述第一探测报文从所述第一发送请求报文中解封装出来以及向所有端口广播所述第一探测报文的能力;
所述接收模块用于接收第二交换机所发送的第一收包通知报文,其中,所述第二交换机为接收到所述第一交换机广播的所述第一探测报文的交换机,所述第一收包通知报文封装了所述第一探测报文;
所述判断模块用于根据所述探测报文中封装的第一交换机的标识以及从所述第二交换机接收到所述第一收包通知报文确定所述第一交换机与所述第二交换机之间存在链路。
7.根据权利要求6所述的装置,其特征在于,所述接收模块接收到的所述第二交换机所发送的第一收包通知报文还封装了接收端口的标识,其中,所述接收端口为所述第二交换机接收到所述第一交换机所广播的所述探测报文的端口,
所述判断模块还用于根据所述探测报文中封装的第一交换机的标识、从所述第二交换机接收到所述第一收包通知报文以及从所述第二交换机接收到的所述第一收包通知报文中封装的所述接收端口的标识,确定所述第一交换机与所述第二交换机的接收端口之间存在链路。
8.根据权利要求7所述的装置,其特征在于,
所述判断模块还用于根据控制器从所述第二交换机接收到的所述第一收包通知报文中封装的所述接收端口的标识的数量确定所述第一交换机与所述第二交换机之间的链路的数量;
所述发送模块还用于向所述第一交换机发送第二发送请求报文,其中,所述第二发送请求报文中封装了第二探测报文,所述第二探测报文记载了所述第一交换机的标识且所述第二探测报文记载了指定端口的标识,所述第一交换机具有将所述第二探测报文从所述第二发送请求报文中解封装出来以及通过所述指定端口向外转发所述第二探测报文的能力;
所述接收模块还用于接收所述第二交换机所发送的第二收包通知报文,其中,所述第二收包通知报文封装了所接收到的所述第二探测报文以及接收到所述第二探测报文的接收端口的标识;
所述判断模块还用于根据所述第二探测报文中的所述第一交换机的标识、所述第二探测报文中的所述指定端口的标识、从所述第二交换机接收到所述第二收包通知报文以及从所述第二交换机接收到的所述第二收包通知报文中封装的接收端口的标识,确定所述第一交换机的所述指定端口与所述第二交换机的接收端口之间存在链路。
9.一种探测报文发送装置,其特征在于,包括:接收模块、解封装模块以及发送模块,
所述接收模块用于接收控制器所发送的第一发送请求报文,其中,所述第一发送请求报文中封装了第一探测报文,所述第一探测报文记载了所述交换机的标识且所述第一探测报文不包含从所述交换机的哪个端口转发的信息;
所述解封装模块用于将所述第一发送请求报文进行解封装,以获得所述第一探测报文;
所述发送模块用于通过所述交换机的所有端口向外广播所述第一探测报文。
10.根据权利要求9所述的装置,其特征在于,所述接收模块还用于接收控制器所发送的第二发送请求报文,其中,所述第二发送请求报文中封装了第二探测报文,所述第二探测报文记载了所述交换机的标识且所述第二探测报文记载了指定端口的标识;
所述解封装模块还用于将所述第二发送请求报文进行解封装,以获得所述第二探测报文;
所述发送模块还用于通过所述交换机的指定端口向外转发所述第二探测报文。
11.一种链路发现方法,其特征在于,包括如下步骤:
向第一交换机发送发送请求报文,其中,所述发送请求报文中封装了探测报文模板,所述探测报文模板记载了所述第一交换机的标识,所述第一交换机具有将所述探测报文模板从所述发送请求报文中解封装出来以及将发送所述探测报文模板的发送端口的标识填写到所述探测报文模板中,然后发送的能力;
接收第二交换机所发送的收包通知报文,其中,所述第二交换机为接收到所述第一交换机通过所述发送端口发送的所述探测报文模板的交换机,所述收包通知报文封装了所述填写发送端口标识后的探测报文模板以及所述第二交换机接收到所述探测报文模板的接收端口的标识;
根据所述探测报文中封装的第一交换机的标识、所述第一交换机的所述发送端口、从所述第二交换机接收到所述收包通知报文以及所述第二交换机接收到所述探测报文模板的接收端口的标识确定所述第一交换机的所述发送端口与所述第二交换机的所述接收端口之间存在链路。
12.一种探测报文模板发送方法,其特征在于,所述方法包括如下步骤:
交换机接收控制器所发送的发送请求报文,其中,所述发送请求报文中封装了探测报文模板,所述探测报文模板记载了所述交换机的标识;
将所述探测报文模板从所述发送请求报文进行解封装,以获得所述探测报文模板;
将发送所述探测报文模板的发送端口的标识填写到所述探测报文模板中,并将所述探测报文模板通过所述发送端口向外转发。
13.一种链路发现装置,其特征在于,包括发送模块、接收模块以及判断模块,
所述发送模块用于向第一交换机发送发送请求报文,其中,所述发送请求报文中封装了探测报文模板,所述探测报文模板记载了所述第一交换机的标识,所述第一交换机具有将所述探测报文模板从所述发送请求报文中解封装出来以及将发送所述探测报文模板的发送端口的标识填写到所述探测报文模板中,然后发送的能力;
所述接收模块用于接收第二交换机所发送的收包通知报文,其中,所述第二交换机为接收到所述第一交换机通过所述发送端口发送的所述探测报文模板的交换机,所述收包通知报文封装了所述填写发送端口标识后的探测报文模板以及所述第二交换机接收到所述探测报文模板的接收端口的标识;
所述判断模块用于根据所述探测报文中封装的第一交换机的标识、所述第一交换机的所述发送端口、从所述第二交换机接收到所述收包通知报文以及所述第二交换机接收到所述探测报文模板的接收端口的标识确定所述第一交换机的所述发送端口与所述第二交换机的所述接收端口之间存在链路。
14.一种探测报文模板发送装置,其特征在于,包括接收模块、解封装模块、以及发送模块,
所述接收模块用于接收控制器所发送的发送请求报文,其中,所述发送请求报文中封装了探测报文模板,所述探测报文模板记载了所述交换机的标识;
所述解封装模块用于将所述探测报文模板从所述发送请求报文进行解封装,以获得所述探测报文模板;
所述发送模块用于将发送所述探测报文模板的发送端口的标识填写到所述探测报文模板中,并将所述探测报文模板通过所述发送端口向外转发。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410250846.0A CN104038446B (zh) | 2014-06-06 | 2014-06-06 | 链路发现方法以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410250846.0A CN104038446B (zh) | 2014-06-06 | 2014-06-06 | 链路发现方法以及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104038446A true CN104038446A (zh) | 2014-09-10 |
CN104038446B CN104038446B (zh) | 2017-07-07 |
Family
ID=51469038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410250846.0A Active CN104038446B (zh) | 2014-06-06 | 2014-06-06 | 链路发现方法以及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104038446B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104283738A (zh) * | 2014-10-11 | 2015-01-14 | 杭州华三通信技术有限公司 | 一种链路检测方法及设备 |
CN105763463A (zh) * | 2016-01-27 | 2016-07-13 | 杭州华三通信技术有限公司 | 一种链路探测报文的传输方法和装置 |
WO2017157318A1 (zh) * | 2016-03-18 | 2017-09-21 | 华为技术有限公司 | 链路发现方法及装置 |
CN107682270A (zh) * | 2017-09-13 | 2018-02-09 | 北京百卓网络技术有限公司 | 一种网络拓扑发现方法及装置 |
CN108039983A (zh) * | 2017-12-06 | 2018-05-15 | 锐捷网络股份有限公司 | 寻线方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2521308A1 (en) * | 2009-12-28 | 2012-11-07 | Nec Corporation | Communications system and port information collection method |
CN103001887A (zh) * | 2012-11-22 | 2013-03-27 | 中兴通讯股份有限公司 | 一种链路保活方法、控制器及交换机 |
EP2621136A2 (en) * | 2012-01-26 | 2013-07-31 | Brocade Communications Systems, Inc. | Link aggregation in software-defined networks |
CN103259728A (zh) * | 2013-05-24 | 2013-08-21 | 华为技术有限公司 | 一种ofs带内通信方法及ofs |
CN103825825A (zh) * | 2014-01-18 | 2014-05-28 | 浙江大学 | 一种灵活可扩展且安全的域间拓扑发现方法 |
-
2014
- 2014-06-06 CN CN201410250846.0A patent/CN104038446B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2521308A1 (en) * | 2009-12-28 | 2012-11-07 | Nec Corporation | Communications system and port information collection method |
EP2621136A2 (en) * | 2012-01-26 | 2013-07-31 | Brocade Communications Systems, Inc. | Link aggregation in software-defined networks |
CN103001887A (zh) * | 2012-11-22 | 2013-03-27 | 中兴通讯股份有限公司 | 一种链路保活方法、控制器及交换机 |
CN103259728A (zh) * | 2013-05-24 | 2013-08-21 | 华为技术有限公司 | 一种ofs带内通信方法及ofs |
CN103825825A (zh) * | 2014-01-18 | 2014-05-28 | 浙江大学 | 一种灵活可扩展且安全的域间拓扑发现方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104283738A (zh) * | 2014-10-11 | 2015-01-14 | 杭州华三通信技术有限公司 | 一种链路检测方法及设备 |
CN104283738B (zh) * | 2014-10-11 | 2018-07-17 | 新华三技术有限公司 | 一种链路检测方法及设备 |
CN105763463A (zh) * | 2016-01-27 | 2016-07-13 | 杭州华三通信技术有限公司 | 一种链路探测报文的传输方法和装置 |
CN105763463B (zh) * | 2016-01-27 | 2020-01-03 | 新华三技术有限公司 | 一种链路探测报文的传输方法和装置 |
WO2017157318A1 (zh) * | 2016-03-18 | 2017-09-21 | 华为技术有限公司 | 链路发现方法及装置 |
CN107204924A (zh) * | 2016-03-18 | 2017-09-26 | 华为技术有限公司 | 链路发现方法及装置 |
CN107204924B (zh) * | 2016-03-18 | 2020-09-25 | 华为技术有限公司 | 链路发现方法及装置 |
US10797986B2 (en) | 2016-03-18 | 2020-10-06 | Huawei Technologies Co., Ltd. | Link discovery method and apparatus |
CN107682270A (zh) * | 2017-09-13 | 2018-02-09 | 北京百卓网络技术有限公司 | 一种网络拓扑发现方法及装置 |
CN108039983A (zh) * | 2017-12-06 | 2018-05-15 | 锐捷网络股份有限公司 | 寻线方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104038446B (zh) | 2017-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109981155B (zh) | 一种波束训练方法及相关设备 | |
CN104038446A (zh) | 链路发现方法以及装置 | |
CN109088820B (zh) | 一种跨设备链路聚合方法、装置、计算装置和存储介质 | |
CN111050361A (zh) | 一种报文传送方法、装置及*** | |
CN109412922B (zh) | 一种传输报文的方法、转发设备、控制器及*** | |
JP7193620B2 (ja) | データ伝送方法、無線アクセスネットワークデバイス及び端末デバイス | |
CN104426680A (zh) | 数据传输方法、装置和*** | |
CN105357737A (zh) | WiFi设备接入无线访问接入点的方法及装置 | |
US9847937B2 (en) | Hardware acceleration for routing programs | |
CN115065637B (zh) | 传输算力资源信息的方法、装置和电子设备 | |
CN111586629A (zh) | 一种ZigBee方式下车辆远程诊断方法以及相关装置 | |
CN104936315A (zh) | 一种通过wifi传输数据的方法、主设备及模块设备 | |
CN104639348A (zh) | 网络设备及其配置方法 | |
CN114039798A (zh) | 一种数据传输方法、装置及电子设备 | |
EP3032801B1 (en) | Method and device for generating forwarding information | |
CN103581317A (zh) | 一种网络资源共享的方法 | |
CN110113771B (zh) | 数据处理方法、装置、网关设备及存储介质 | |
CN103188153A (zh) | 一种广播网链路上bfd报文发送方法和设备 | |
CN105763463B (zh) | 一种链路探测报文的传输方法和装置 | |
WO2022001540A1 (zh) | 配置方法、绑定方法、装置、设备、发送节点、接收节点及介质 | |
CN102801686A (zh) | 设备控制方法、主设备、从设备及主从设备组 | |
WO2021047621A1 (zh) | 传输方法及装置 | |
CN110876155A (zh) | 无线网格网络的模拟***和方法 | |
CN108616453B (zh) | 一种用于网络设备的方法、装置和*** | |
CN115022424B (zh) | 水电lcu控制器网卡虚拟控制方法、***、设备及其介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |