CN102687464B - 通信***和创建拓扑信息的方法 - Google Patents
通信***和创建拓扑信息的方法 Download PDFInfo
- Publication number
- CN102687464B CN102687464B CN201080059969.6A CN201080059969A CN102687464B CN 102687464 B CN102687464 B CN 102687464B CN 201080059969 A CN201080059969 A CN 201080059969A CN 102687464 B CN102687464 B CN 102687464B
- Authority
- CN
- China
- Prior art keywords
- grouping
- port
- answer
- unit
- request
- 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.)
- Expired - Fee Related
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/42—Centralised routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/34—Signalling channels for network management communication
- H04L41/344—Out-of-band transfers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
公开了包括多个分组传送装置和控制每个分组传送装置的控制装置的通信***,该通信***能够将各分组传送装置在分组传送时采用的通信网络和控制装置用于控制每个分组传送装置的通信网络组织成单种通信网络。控制装置(80)向分组传送装置发送响应请求。在接收到响应请求时,分组传送装置(90)经由除了用来接收该响应请求的端口以外的端口发送响应请求。在接收到响应请求时,分组传送装置(90)沿着去到控制装置的路径返回包括该分组传送装置的端口信息的响应。控制装置(80)基于从每个分组传送装置发送来的响应生成拓扑信息,该拓扑信息包括控制装置和每个分组传送装置上的各个端口之间的端口连接信息。
Description
技术领域
本发明涉及包括多个分组传送单元和用于控制分组传送单元的控制单元的通信***。本发明还涉及应用于该通信***的分组传送单元、控制单元、拓扑信息创建方法和控制单元用程序。
背景技术
有一种包括各自传送分组的多个交换机和控制每个交换机的控制单元的通信***,在该通信***中,控制单元设定每个交换机中的流条目信息并且交换机根据流条目信息来传送接收到的分组。流条目信息依据分组的头部规定接收到的分组要经历的处理的类型(例如传送、丢弃、更新或其他)。这种通信***需要控制信道,控制单元使用该控制信道来控制交换机。例如,如果交换机接收到在流条目信息中未限定的分组,则交换机将此事通知给控制单元,然后控制单元根据该具体分组向交换机发送适当的流条目信息。控制信道被用于诸如从交换机到控制单元的通知和流条目信息从控制单元到交换机的发送之类的用途。控制单元用于控制交换机的协议被称为OpenFlow(开放流)。交换机可被认为是传送分组的分组传送单元。控制信道相当于OpenFlow协议中的“安全信道”。另外,控制单元在OpenFlow中被称为控制器。
OpenFlow的规范在非专利文献1中记载。在OpenFlow的规范中规定控制单元和交换机应当使用SSL(安全套接字层)来以端口号6633的TCP(传输控制协议)通信。从而,应用了OpenFlow协议的通信***通常包括两个独立的通信网络。一个是具有用于按顺序传送分组多个交换机的通信网络,另一个是充当控制单元与每个交换机之间的控制信道的通信网络。图20是示出应用了OpenFlow协议的一般通信***的示例的说明图。图20中所示的每个交换机92使用分组传送通信网络94来根据流条目信息向其他交换机传送接收到的分组。此外,独立于分组传送通信网络94提供了用作控制信道的控制通信网络93,并且控制单元91经由控制通信网络93控制每个交换机92。控制通信网络93使用诸如STP(生成树协议)、TCP/IP(传输控制协议/因特网协议)、RIP(路由信息协议)或OSPF(开放最短路径优先)之类的路由协议。
另外,在图20中作为示例示出的通信***中,当交换机的拓扑被改变时,每个交换机在通信***中交换控制帧并且认识到新拓扑。用于认识到拓扑的控制帧的示例例如包括STP中的BPDU(网桥协议数据单元)以及其他。
引文列表
非专利文献
非专利文献1:“OpenFlow Switch Specification Version 0.9.0”,“4.4Encryption”,2009年7月20日(2011年10月6日检索),因特网<http://www.openflowswitch.org/documents/openflow-spec-v0.9.0.pdf>
发明内容
技术问题
图20中的基于OpenFlow的一般通信***使用控制通信网络93和分组传送通信网络94。然而,在包括多个分组传送单元和控制每个分组传送单元的控制单元的通信***中,最好每个分组传送单元用于传送分组的通信网络和控制单元用于控制每个分组传送单元的通信网络应被集成为一种。
从而,本发明希望提供:包括多个分组传送单元和控制每个分组传送单元的控制单元的通信***,该通信***被配置成使得每个分组传送单元用于传送分组的通信网络和控制单元用于控制每个分组传送单元的通信网络可被集成为一种;以及应用于该通信***的分组传送单元、控制单元、创建拓扑信息的方法和控制单元用程序。
解决问题的方案
根据本发明的一种通信***包括多个分组传送单元以及控制每个分组传送单元的控制单元,其中控制单元包括:答复请求发送装置,该答复请求发送装置向分组传送单元发送答复请求;答复接收装置,该答复接收装置接收来自分组传送单元的包括关于在该分组传送单元处提供的端口的信息的答复;以及拓扑信息创建装置,该拓扑信息创建装置基于从每个分组传送单元发送来的答复创建拓扑信息,该拓扑信息包括关于在控制单元处提供的端口和分组传送单元的每个端口的端口互连信息;并且分组传送单元包括:传送装置,该传送装置在接收到答复请求时,从除了用来接收到该答复请求的端口以外的端口传送该答复请求;以及答复发送装置,该答复发送装置在接收到答复请求时,返回包括关于该分组传送单元的端口的信息的答复,该答复是通过用于控制单元的路径发送的。
根据本发明的一种控制单元控制多个分组传送单元,该控制单元包括:答复请求发送装置,该答复请求发送装置向分组传送单元发送答复请求;答复接收装置,该答复接收装置接收来自分组传送单元的包括关于在该分组传送单元处提供的端口的信息的答复;以及拓扑信息创建装置,该拓扑信息创建装置基于从每个分组传送单元发送来的答复创建拓扑信息,该拓扑信息包括关于在控制单元处提供的端口和分组传送单元的每个端口的端口互连信息。
根据本发明的另一方面的分组传送单元受控制单元控制,该分组传送单元包括:传送装置,该传送装置在接收到从控制单元发送来的答复请求时,从除了用来接收到该答复请求的端口以外的端口传送该答复请求;以及答复发送装置,该答复发送装置在接收到从控制单元发送来的答复请求时,返回包括关于该分组传送单元的端口的信息的答复,该答复是通过用于控制单元的路径发送的。
在根据本发明的一种创建拓扑信息的方法中,控制多个分组传送单元的控制单元执行:向每个分组传送单元发送答复请求;从分组传送单元接收包括关于在该分组传送单元处提供的端口的信息的答复;以及基于从每个分组传送单元发送来的答复创建拓扑信息,该拓扑信息包括关于在控制单元处提供的端口和分组传送单元的每个端口的端口互连信息。
根据本发明的一种控制单元用程序欲安装在控制多个分组传送单元的计算机上,该程序使得该计算机执行:向每个分组传送单元发送答复请求;从分组传送单元接收包括关于在该分组传送单元处提供的端口的信息的答复;以及基于从每个分组传送单元发送来的答复创建拓扑信息,该拓扑信息包括关于在控制单元处提供的端口和分组传送单元的每个端口的端口互连信息。
本发明的有利效果
根据本发明,在包括多个分组传送单元和控制每个分组传送单元的控制单元的通信***中,每个分组传送单元用于传送分组的通信网络和控制单元用于控制每个分组传送单元的通信网络可被集成为一种。
附图说明
图1描绘了示意性示出从控制单元未存储拓扑信息的状态直到控制单元开始基于隧道传输的通信为止的处理步骤的说明图。
图2描绘了示出本发明的通信***中配备的控制单元和交换机的配置的示例的框图。
图3描绘了示出源路由的示例的说明图。
图4描绘了示出请求分组的输出端口列表状态的变化的示例的说明图。
图5描绘了作为示例示出特定分组的格式的说明图。
图6描绘了示出请求分组中包括的信息的示例的说明图。
图7描绘了示出答复分组中包括的信息的示例的说明图。
图8描绘了示出设立分组中包括的信息的示例的说明图。
图9描绘了示出隧道分组中包括的信息的示例的说明图。
图10描绘了示出发送和接收特定分组的示例的说明图。
图11描绘了示出控制单元中的处理流程的示例的流程图。
图12描绘了示出创建拓扑信息的示例的流程图。
图13描绘了示出从每个交换机的端口发送的答复分组的路径的示例的说明图。
图14描绘了示出通过图13中所示的路径到达控制单元的答复分组的说明图。
图15描绘了示出一个交换机中的处理流程的示例的流程图。
图16描绘了示出一个交换机中的处理流程的示例的另一流程图。
图17描绘了示出根据本发明的通信***的最低限度配置的示例的框图。
图18描绘了示出本发明中的最低限度控制单元配置的示例的框图。
图19描绘了示出本发明中的最低限度分组传送单元配置的示例的框图。
图20描绘了示出应用了OpenFlow的一般通信***的示例的说明图。
具体实施方式
以下,将参考附图来描述本发明的示例性实施例。
本发明的通信***包括各自传送分组的多个分组传送单元,以及控制多个交换机(分组传送单元)的控制单元。控制单元向每个分组传送单元发送流条目信息,并且分组传送单元在接收到分组时根据流条目信息来处理分组。在此序列完成后,连接到一个分组传送单元的终端单元可经由给定的路径向连接到另一分组传送单元的任何其他终端单元发送分组,或者经由各路径向连接到其他分组传送单元的其他终端单元广播分组。
本发明中的分组传送单元例如是OpenFlow中的交换机,并且本发明中的控制单元例如是OpenFlow中的控制器。以下描述分组传送单元和控制单元分别是OpenFlow中的交换机和控制器的示例。然而,本发明也可应用到除OpenFlow以外的协议;本发明可应用到被构造成使得控制单元承担存在于通信网络上的每个分组传送单元的集中管理的任何通信***。
本发明的通信***不包括控制单元(控制器)与交换机之间的控制专用通信网络。控制单元只需要连接到至少一个交换机。控制单元利用交换机用来传送分组的通信网络来在每个交换机与控制单元自身之间提供控制信道。更具体而言,控制单元使用此通信网络的链路来形成控制单元自身与从控制单元看来连接到控制单元自身的交换机之后的每个交换机之间的控制信道。然后,控制单元经由控制信道通过隧道传输与每个交换机通信并且控制交换机。换言之,在本发明中,可以认为控制单元利用交换机用来传送分组的通信网络形成了每个交换机与控制单元自身之间的星形结构的覆盖网络。
在本发明的通信***中,控制单元还存储拓扑信息,该拓扑信息包括关于控制单元自身和每个交换机的端口之间的互连的信息。各个交换机不需要存储拓扑信息。控制单元在其初始状态下不存储拓扑信息,向交换机查询其端口的连接状态,并且创建拓扑信息。在认识到了交换机的拓扑后,控制单元为每个交换机确定充当该交换机与控制单元自身之间的控制信道的路径,并且发送分组来将通向控制单元的路径通知给该交换机。这使得控制单元能够认识到通向交换机的控制信道,并且交换机也同样能够认识到通向控制单元的控制信道。然后,交换机和控制单元通过隧道传输经由控制信道彼此通信。
图1是示意性示出从控制单元未存储拓扑信息的状态直到控制单元和每个交换机开始基于隧道传输的通信为止的处理步骤的说明图。图1(a)示意性示出了本发明的通信***的初始状态。在此状态下,控制单元10虽然连接到交换机群组的至少一个交换机,但没有认识到控制单元连接到哪个交换机的哪个端口。
控制单元10从不清楚控制单元连接到哪个交换机的控制单元自身的端口发送向交换机查询链接起来的端口的请求分组。此状态在图1(b)中示出。链接起来的端口是连接到任何其他交换机的端口。
接收到请求分组的每个交换机20从该交换机20的用于接收到该请求分组的端口向控制单元10返回答复分组。此状态在图1(c)中示出。答复分组包括三种信息。一种信息指示出处于链接起来的状态的端口,一种信息指示出交换机的用于接收到该请求分组的端口,并且一种信息指示出交换机20自身的标识。
在本发明中,控制单元10基于答复分组生成拓扑信息,并且存储拓扑信息。然而,即使在生成拓扑信息之后,控制单元10也再一次发送另一请求分组以根据交换机的拓扑的具体变化来更新拓扑信息。即,控制单元10重复请求分组发送以搜索交换机的拓扑。此外,控制单元10在请求分组中包括用于标识每一次搜索的信息。在本示例性实施例中,下面描述按号码来区分每次搜索的示例,并且以下将这些号码称为序列号。在一次搜索期间,当控制单元10从多个端口发送请求分组时,单元在每个请求分组中设定同一序列号。然后,当要对于另一次搜索重复请求分组发送时,控制单元10发送包括与先前搜索不同的序列号的请求分组。然而,与先前搜索的一样,在该搜索期间从每个端口发送的请求分组中的序列号是相同的。
交换机20在接收到请求分组后,从除了用来接收请求分组的端口以外的端口发送该具体请求分组。然而,该发送是以该请求分组中包括的序列号是交换机以前未接收到过的序列号这个事实为条件来执行的。换言之,发生请求分组洪泛(flooding)。如果限定了洪泛条件,则可以抑制请求分组的流量和由请求分组引起的答复分组的流量。通过执行洪泛,每个交换机20通过除了该交换机用来接收到先前请求分组的端口以外的端口接收额外的请求分组。在该情况下,交换机20也从交换机用于接收请求分组的端口向控制单元10返回答复分组。根据从每个交换机20接收的答复分组,控制单元10生成表示控制单元10自身和每个交换机的端口之间的互连关系的拓扑信息,并且存储拓扑信息。
控制单元10根据拓扑信息为每个交换机确定充当控制信道的路径。从而,控制单元10认识到每个交换机的控制信道。控制单元10随后发送设立分组来将路径或者说控制信道通知给每个交换机(参见图1(d))。接收到了设立分组的每个交换机20根据设立分组存储从交换机20自身延伸到控制单元10的路径或者说控制信道。这使得交换机20能够认识到通向控制单元10的各控制信道。
随后,控制单元10用于控制交换机20的通信是经由专用于每个交换机20的控制信道通过隧道传输进行的,如图1(e)中所示。例如,如果交换机20接收到在流条目信息中未限定的分组,则交换机20将此事通知给控制单元10。此时,交换机20经由控制信道通过隧道传输进行该通知。另外,接收到该通知的控制单元10生成新的流条目信息并将该信息发送到交换机,此时控制单元10经由控制信道通过隧道传输发送流条目信息。经由控制信道通过隧道传输在控制单元10和交换机20之间交换的分组在下文中被称为隧道分组。
请求分组、答复分组、设立分组和隧道分组被称为特定分组。交换机20对特定分组执行的处理不同于对在交换机之间传送的数据分组执行的处理。在接收到在终端(未示出)之间交换的数据分组时,交换机20根据流条目信息传送该数据分组,并且如果该数据分组的流在流条目信息中未限定,则将此事实通知给控制单元10。交换机20对于特定分组不进行这种处理。取而代之,交换机20依据接收到的分组是请求分组、答复分组、设立分组还是隧道分组来进行不同的处理。相对于数据分组处理,每个交换机向特定分组处理赋予优先权。特定分组处理的优先保证了通信***的QoS(服务质量)。
特定分组还包括与从该分组的发送源起的具体跳数相应的适当计数值。此计数值被称为端口计数。
图2是示出本发明的通信***中配备的控制单元和交换机的配置的示例的框图。虽然图2示出了通信***具有四个交换机20a至20d的示例,但此示例不限制交换机的数目及其拓扑。此外,虽然在图2的示例中两个交换机20a和20b连接到控制单元10,但连接到控制单元10的交换机的数目可以是一个或三个或更多个;控制单元10只需要有至少一个相连的交换机。
控制单元10包括控制单元侧特定分组发送/接收部11、拓扑搜索部12、拓扑存储部13、控制信道路径确定部14和控制单元侧控制消息隧道传输部15。
控制单元侧特定分组发送/接收部11(以下简称为特定分组发送/接收部11)发送和接收特定分组。更具体而言,特定分组发送/接收部11发送请求分组和设立分组,并且接收答复分组。特定分组发送/接收部11还发送和接收隧道分组。
特定分组发送/接收部11在接收到来自交换机的答复分组时,将该答复分组输出到拓扑搜索部12。特定分组发送/接收部11在接收到来自交换机的隧道分组时,将该隧道分组输出到控制单元侧控制消息隧道传输部15。
特定分组发送/接收部11发送的设立分组和隧道分组通过源路由被顺次传送到控制信道上的交换机,并且到达该分组所寻址到的交换机。生成设立分组的控制信道路径确定部14在设立分组中顺次记述控制单元10自身的输出端口和直到目的地交换机的控制信道上的每个交换机的输出端口,并且特定分组发送/接收部11从该输出端口的列表中第一个记述的控制单元10自身的端口发送设立分组。类似地,生成要发送到交换机的隧道分组的控制单元侧控制消息隧道传输部15在隧道分组中顺次记述控制单元10自身的输出端口和直到目的地交换机的控制信道上的每个交换机的输出端口,并且特定分组发送/接收部11从该输出端口的列表中第一个记述的控制单元10自身的端口发送隧道分组。后文将描述源路由。
此外,在请求分组的生成期间,拓扑搜索部12记述要用于输出该请求分组的控制单元10自身的端口。特定分组发送/接收部11从在请求分组中记述的控制单元10自身的端口发送请求分组。
以下,为了方便起见将描述就在特定分组中记述端口。然而,更具体而言,在特定分组中记述了标识控制单元10和每个交换机的端口的信息,并且端口标识号例如是该信息。输出端口列表因此是端口标识号的列表。在以下描述中以使用号码(端口标识号)作为端口标识信息为例。
拓扑搜索部12周期性地生成请求分组并且使得特定分组发送/接收部11发送请求分组。此时,拓扑搜索部12在请求分组中记述控制单元10自身的要用于输出该请求分组的端口作为输出端口。拓扑搜索部12还记述输出端口列表的长度(即记述的输出端口的数目)和端口计数的初始值。在此情况下,输出端口列表的长度是1,因为只有控制单元10自身的端口是输出端口。如果控制单元10具有多个端口,则拓扑搜索部12为每个端口生成请求分组。特定分组发送/接收部11从请求分组中记述的端口发送每个请求分组。
拓扑搜索部12如上所述周期性地生成请求分组。每次拓扑搜索部12以固定的时间间隔生成请求分组时,拓扑搜索部12就改变序列号并且在请求分组中记述新的序列号。在一次请求分组生成处理期间为每个端口生成独立的请求分组涉及生成多个请求分组,在此情况下,在多个请求分组中记述同一序列号。在图2的通信***中,拓扑搜索部12在某个时刻在从交换机20a、20b所连接到的每个端口输出的请求分组中记述例如“1”作为序列号。结果,各自包括序列号“1”的请求分组被发送到交换机20a、20b。在固定时段之后,拓扑搜索部12在从每个端口输出的请求分组中记述序列号“2”。结果,各自包括序列号“2”的请求分组被发送到交换机20a、20b。
此外,拓扑搜索部12基于作为对请求分组的答复从每个交换机获得的答复分组来生成拓扑信息。每个交换机在接收到记述了之前未接收到过的序列号的请求分组时,对于该请求分组执行洪泛。这使得控制单元10只要通过向直接连接到控制单元的交换机发送请求分组就能够获得来自每个交换机的答复分组。拓扑搜索部12基于每个答复分组生成拓扑信息,并且使得拓扑存储部13存储拓扑信息。
拓扑存储部13是用于存储拓扑信息的存储装置。
控制信道路径确定部14参考拓扑信息并且为每个交换机设定控制信道。对于此控制信道设定方法没有限制。例如,控制信道路径确定部14可使用迪杰斯特拉(Dijkstra)算法来计算到交换机的最短路径并将此路径设定为控制信道。控制信道路径确定部14还为每个交换机生成设立分组。此时,控制信道路径确定部14在设立分组中顺次记述控制单元10自身的输出端口和到设立分组目的地交换机的控制信道上存在的每个交换机的输出端口。控制信道路径确定部14还在设立分组中记述输出端口列表的长度(即记述的输出端口的数目)和端口计数的初始值。然后,控制信道路径确定部14使得特定分组发送/接收部11发送设立分组。
控制单元侧控制消息隧道传输部15(以下简称为控制消息隧道传输部15)利用隧道传输发送和接收在控制单元10和交换机之间交换的控制消息。即,控制消息隧道传输部15对要发送到交换机的控制消息(例如流条目信息)编码,并且生成经封装的隧道分组。此时,控制消息隧道传输部15在隧道分组中顺次记述控制单元10自身的输出端口和到隧道分组目的地交换机的控制信道上的每个交换机的输出端口。控制消息隧道传输部15还在隧道分组中记述输出端口列表的长度和端口计数的初始值。然后,控制消息隧道传输部15使得特定分组发送/接收部11发送隧道分组。
此外,如果特定分组发送/接收部11接收到来自交换机的隧道分组,然后将隧道分组输出到控制消息隧道传输部15,则控制消息隧道传输部15解封出隧道分组中包括的控制消息并进一步对控制消息解码。
虽然下面在本示例性实施例中描述初始端口计数值为0的示例,但端口计数的初始值可以不是0。
特定分组发送/接收部11、拓扑搜索部12、拓扑存储部13、控制信道路径确定部14和控制消息隧道传输部15可各自独立实现。
特定分组发送/接收部11、拓扑搜索部12、控制信道路径确定部14和控制消息隧道传输部15同样可由根据用于控制单元的程序操作的计算机的CPU来实现。在此情况下,例如计算机的程序存储装置(未示出)可存储控制单元用程序,并且CPU可加载程序并根据该程序充当特定分组发送/接收部11、拓扑搜索部12、控制信道路径确定部14和控制消息隧道传输部15。
接下来,下面描述交换机配置。交换机20a至20d基本上具有相同的配置。以下描述交换机20a作为示例。
交换机20a包括交换机侧特定分组发送/接收部21、洪泛控制部22、信息提供部23、路径存储部24和交换机侧控制消息隧道传输部25。
交换机侧特定分组发送/接收部21(以下简称为特定分组发送/接收部21)传送、接收和发送特定分组。
特定分组发送/接收部21在接收到非请求特定分组时将该特定分组中记述的输出端口列表的长度与端口计数相比较,并且判定交换机20a自身是否是该特定分组的目的地。在本示例性实施例中,由于端口计数的初始值是0,所以如果通过向接收到的特定分组中的端口计数加1获得的值与输出端口列表的长度相同,则特定分组发送/接收部21可判定交换机20a自身是该特定分组的目的地。如果通过向接收到的特定分组中的端口计数加1获得的值小于输出端口列表的长度,则特定分组发送/接收部21可判定交换机20a自身不是该特定分组的目的地。输出端口列表的长度是特定分组中记述的输出端口的数目。在判定交换机20a自身不是特定分组的目的地时,特定分组发送/接收部21在该特定分组的输出端口列表中记述的所有端口之中只将从端口计数决定的端口更新成交换机20a自身的用于接收到该特定分组的端口。在本示例性实施例中,如果特定分组中记述的端口计数的值是“k”,则输出端口列表中记述的第(k+1)个端口被更新成交换机20a自身的用于接收到该特定分组的端口。此外,特定分组发送/接收部21识别输出端口列表中记述的第k+2端口,即,紧跟被更新的那个之后的端口。此端口是要从交换机20a自身发送该特定分组之处。另外,特定分组发送/接收部21向特定分组中记述的端口计数的值加1。特定分组发送/接收部21接下来从所识别的端口发送特定分组。结果,具有递增的端口计数的特定分组被传送。
在判定交换机20a自身是特定分组的目的地后,如果该特定分组是设立分组,则特定分组发送/接收部21将设立分组输出到路径存储部24;如果该特定分组是隧道分组,则特定分组发送/接收部21将隧道分组输出到交换机侧控制消息隧道传输部25。
特定分组发送/接收部21在接收到请求分组时将请求分组输出到洪泛控制部22。洪泛控制部22判定是否对于该请求分组执行洪泛,然后在判定要执行洪泛时,在请求分组中的输出端口列表的末端位置处记述交换机20a自身的端口,并且更新输出端口列表的长度和端口计数。特定分组发送/接收部21从在输出端口列表末端处记述的交换机20a自身的端口发送经洪泛控制部22更新的请求分组。
另外,特定分组发送/接收部21发送答复分组。如后文所述,生成答复分组的信息提供部23在答复分组中顺次记述从交换机自身到控制单元10的路径上存在的每个交换机的输出端口。特定分组发送/接收部21从输出端口列表中第一个记述的交换机20a自身的端口发送该答复分组。
洪泛控制部22在接收到来自特定分组发送/接收部21的请求分组时,判定是否对于该请求分组执行洪泛。洪泛控制部22存储从特定分组发送/接收部21输入的请求分组中包括的序列号。如果新输入的请求分组中包括的序列号是之前未接收到过的,则洪泛控制部22判定要执行洪泛,或者如果序列号是之前接收到过的,则洪泛控制部22判定不执行洪泛。即,如果新输入的请求分组中包括的序列号不与任何存储的序列号一致,则洪泛控制部22判定要执行洪泛,或者如果该序列号与任一存储的序列号一致,则洪泛控制部22判定不执行洪泛。在该判定后,洪泛控制部22还存储该请求分组中包括的序列号。
在判定要执行对于请求分组的洪泛时,为了使得请求分组将被从除了用来接收到请求分组的端口以外的每个端口发送,洪泛控制部22为除了接收端口以外的每个端口额外地创建请求分组的拷贝。洪泛控制部22接下来在请求分组中的输出端口列表的末端记述要用来发送拷贝的请求分组的输出端口。洪泛控制部22还在输出端口列表中记述的所有端口之中只将从端口计数决定的端口更新成交换机20a自身的用于接收到该请求分组的端口。在本示例性实施例中,如果请求分组中记述的端口计数的值是“k”,则输出端口列表中记述的第(k+1)个端口被更新成交换机20a自身的用于接收到该请求分组的端口。在更新操作完成时,由于洪泛而接收到了请求分组的其他交换机变得能够通过源路由向控制单元10发送答复分组。另外,洪泛控制部22向请求分组中记述的输出端口列表长度和端口计数的值加1。洪泛控制部22对为每个端口拷贝的每个请求分组进行此处理。洪泛控制部22使得特定分组发送/接收部21将输出端口列表、输出端口列表长度和端口计数已被这样更新的请求分组从与该请求分组相对应的端口发送。
无论是否要执行洪泛,洪泛控制部22都直接向信息提供部23输出从特定分组发送/接收部21输入的请求分组。即,洪泛控制部22将交换机接收到的请求分组原样输出到信息提供部23。
在接收到来自洪泛控制部22的请求分组时,信息提供部23创建包括与交换机20a自身的链接起来的端口有关的信息、指示出交换机20a的用于接收到该请求分组的端口的信息和交换机20a的标识信息的答复分组。信息提供部23还在答复分组中顺次记述从该交换机自身到控制单元10的路径上存在的每个交换机的输出端口。以下描述如何决定输出端口列表。即,信息提供部23将输入的请求分组中记述的输出端口列表中的最末端口更新成该交换机的用于接收到该请求分组的端口。另外,信息提供部23逆转在更新后的输出端口列表中重排列端口的顺序,并且在答复分组中记述经重排列的输出端口列表。信息提供部23还在答复分组中记述输出端口列表的长度和端口计数的初始值,然后使得特定分组发送/接收部21发送答复分组。结果,交换机从接收到请求分组的端口发送作为对该请求分组的答复的答复分组。
然而,信息提供部23在以下所述的某种情况下不生成答复分组。控制单元10周期性地发送请求消息。过去,在接收到来自控制单元10的请求分组时,信息提供部23已发送了与该请求帧相对应的答复分组。信息提供部23此次要发送的答复分组可与在来自控制单元10的请求分组的过去周期性发送期间接收到先前请求分组之后发送的相同。如果是这样的情况,则信息提供部23不发送当前答复分组。更具体而言,在答复过去的请求分组的答复分组发送之后,仅当目前连接到所关注交换机的交换机被任何其他交换机所替换或者断开连接时,信息提供部23才会发送与新接收到的请求分组相对应的答复分组。
路径存储部24在设立分组被从特定分组发送/接收部21输入到它时存储充当从该设立分组延伸到控制单元10的控制信道的路径。更具体而言,路径存储部24将输入的设立分组中记述的输出端口列表中的最末端口更新成交换机的用于接收到该设立分组的端口。此外,路径存储部24逆转在更新后的输出端口列表中重排列端口的顺序,并且存储经重排列的输出端口列表作为指示出作为控制信道的路径信息的信息。
交换机侧控制消息隧道传输部25(以下简称为控制消息隧道传输部25)通过隧道传输来发送和接收在控制单元10与交换机之间交换的控制消息。换言之,控制消息隧道传输部25对要发送到控制单元10的控制消息(例如,指示出接收到在流条目信息中未限定的分组的消息)编码,并且生成经封装的隧道分组。此时,控制消息隧道传输部25从路径存储部24中读取表示到控制单元10的控制信道的输出端口列表,并且将此输出端口列表记述在隧道分组中。控制消息隧道传输部25还在隧道分组中记述输出端口列表的长度和端口计数的初始值。然后,控制消息隧道传输部25使得特定分组发送/接收部21发送隧道分组。
此外,在隧道分组被从特定分组发送/接收部21输入到控制消息隧道传输部25时,控制消息隧道传输部25解封出隧道分组中包括的控制消息(例如流条目信息)并对控制消息解码。
特定分组发送/接收部21、洪泛控制部22、信息提供部23、路径存储部24和控制消息隧道传输部25可各自独立实现。
特定分组发送/接收部21、洪泛控制部22、信息提供部23、路径存储部24和控制消息隧道传输部25同样可由根据用于分组传送单元的程序操作的计算机的CPU来实现。在此情况下,例如计算机的程序存储装置(未示出)可存储用于分组传送单元的程序,并且CPU可加载程序并根据该程序充当特定分组发送/接收部21、洪泛控制部22、信息提供部23、路径存储部24和控制消息隧道传输部25。
接下来,下面描述本发明中的源路由。源路由是一种分组传送方法,其中,要充当发送源的节点在分组中记述通信路径并且中继节点根据分组中记述的通信路径来传送分组。在源路由中,中继节点不需要存储预先提供的路径信息。本发明的通信***在特定分组中记述输出端口列表,该输出端口列表表示各个节点要用来发送该特定分组的输出端口的顺序阵列。控制单元10和每个交换机通过从输出端口列表中记述的端口发送特定分组来实现源路由。控制单元10和每个交换机利用端口计数来判定与本地节点有关的输出端口被记述在输出端口列表中的什么位置。以下描述源路由的更具体示例。
图3是示出在控制单元向交换机发送设立分组时应用的源路由的示例的说明图。然而,为了描述起来简单,使图3中所示的交换机的拓扑与图2中所示的拓扑不同。图3中的交换机20A至20D与图2中的交换机20a至20d具有基本上相同的配置。此外,在图3中的控制单元10和交换机20A至20D旁边示出的标号表示赋予每个单元的端口标识号。在以下描述中用“#n”表述端口标识号为“n”的端口。
在此示例中,控制单元10向作为目的地的交换机20D发送设立分组。在该示例中,控制单元10首先将端口计数设定为具有初始值0并且发送其中记述了输出端口列表{2,3,2,1}的设立分组。由于此输出端口列表中的第一端口号是“2”,所以控制单元10从控制单元10的端口#2发送设立分组。此状态在图3(a)中示出。
交换机20A使用端口#1来接收该设立分组。由于端口计数的值是0,所以交换机20A接下来将输出端口列表中的第一端口标识号更新成接收到设立分组的端口#1的端口标识号。此外,由于端口计数的值是0,所以交换机20A还判定要用来发送设立分组的端口被记述在输出端口列表中的第二位置,并且识别出在第二位置记述的端口标识号“3”。然后,交换机20A将端口计数的值从0更新到1,并且从交换机20A的端口#3发送设立分组。这样在设立分组中记述的输出端口列表是{1,3,2,1}。此状态在图3(b)中示出。
交换机20B使用端口#1来接收此设立分组。由于端口计数的值是1,所以交换机20B接下来将输出端口列表中的第二端口标识号更新成接收到设立分组的端口#1的端口标识号。此外,由于端口计数的值是1,所以交换机20B还判定要用来发送设立分组的端口被记述在输出端口列表中的第三位置,并且识别出在第三位置记述的端口标识号“2”。然后,交换机20B将端口计数的值从1更新到2,并且从交换机20B的端口#2发送设立分组。这样在设立分组中记述的输出端口列表是{1,1,2,1}。此状态在图3(c)中示出。
交换机20C使用端口#3来接收此设立分组。由于端口计数的值是2,所以交换机20C接下来将输出端口列表中的第三端口标识号更新成接收到设立分组的端口#3的端口标识号。此外,由于端口计数的值是2,所以交换机20C还判定要用来发送设立分组的端口被记述在输出端口列表中的第四位置,并且识别出在第四位置记述的端口标识号“1”。然后,交换机20C将端口计数的值从2更新到3,并且从交换机20C的端口#1发送设立分组。这样在设立分组中记述的输出端口列表是{1,1,3,1}。此状态在图3(d)中示出。
交换机20D使用端口#2来接收此设立分组。由于端口计数的值是3并且输出端口列表中的端口标识号的数目是四,所以交换机20D接下来判定交换机20D自身是目的地。交换机20D还将设立分组的{1,1,3,1}输出端口列表中的最末端口标识号“1”更新成接收到设立分组的端口#2的端口标识号。输出端口列表结果变成了{1,1,3,2}。交换机20D按相反的顺序重排列输出端口列表,并且存储经重排列的输出端口列表{2,3,1,1}作为表示通向控制单元10的控制信道的输出端口列表。
当控制单元10发送寻址到交换机20D并且包括输出端口列表{2,3,2,1}的隧道分组时,交换机20A至20C也与上述交换机20D类似地操作。交换机20D结果接收到隧道分组。然而,交换机20D不需要在隧道分组中进行输出端口列表处理。
已经描述和示出了控制单元10发送寻址到交换机20D的设立分组或隧道分组的示例。对于寻址到其他交换机的分组的发送,每个交换机也按与上述基本相同的方式操作。
此外,当每个交换机在隧道分组中记述作为通向控制单元10的控制信道预先存储的输出端口列表并发送该隧道分组时,其他交换机与上述类似地操作并且顺次将该隧道分组传送到控制单元10。
接下来,下面描述更新从控制单元10发送的请求分组中的输出端口列表的示例。图4是示出请求分组中的输出端口列表的状态的变化的说明图。以下描述适用于控制单元10从端口#2发送的请求分组经过交换机20A、20B、20C并到达交换机20D的示例。
控制单元10向端口计数赋予初始值0并且从端口#2发送其中记述了输出端口列表{2}的请求分组,如图4(a)中所示。控制单元10还从端口#1输出其中记述了输出端口列表{1}的请求分组,但省略对此请求分组的描述。
交换机20A通过端口#1接收到从控制单元10的端口#2发送的请求分组。在交换机20A中,除了端口#1以外还存在两个端口,因此交换机20A创建请求分组的两个拷贝。在这两个拷贝之中,下面只描述将从端口#3发送的请求分组。交换机20A向将从端口#3发送的请求分组中的输出端口列表的末端添加端口#3的端口标识号。此外,由于请求分组中的端口计数是0,所以交换机20A将输出端口列表中的第一端口标识号更新成用来接收到请求分组的端口#1的端口标识号。结果,输出端口列表变成{1,3}。交换机20A将端口计数的值从0更新到1并且从端口#3发送包括输出端口列表{1,3}的请求分组。此状态在图4(b)中示出。
交换机20B通过端口#1接收到此请求分组。在交换机20B中,除了端口#1以外还存在两个端口,因此交换机20B创建请求分组的两个拷贝。在这两个拷贝之中,下面只描述将从端口#2发送的请求分组。交换机20B向将从端口#2发送的请求分组中的输出端口列表的末端添加端口#2的端口标识号。此外,由于请求分组中的端口计数是1,所以交换机20B将输出端口列表中的第二端口标识号更新成用来接收到请求分组的端口#1的端口标识号。结果,输出端口列表变成{1,1,2}。交换机20B将端口计数的值从1更新到2并且从端口#2发送包括输出端口列表{1,1,2}的请求分组。
交换机20C通过端口#3接收到此请求分组。在交换机20C中,除了端口#3以外还存在两个端口,因此交换机20C创建请求分组的两个拷贝。在这两个拷贝之中,下面只描述将从端口#1发送的请求分组。交换机20C向将从端口#1发送的请求分组中的输出端口列表的末端添加端口#1的端口标识号。此外,由于请求分组中的端口计数是2,所以交换机20C将输出端口列表中的第三端口标识号更新成用来接收到请求分组的端口#3的端口标识号。结果,输出端口列表变成{1,1,3,1}。交换机20C将端口计数的值从2更新到3并且从端口#1发送包括输出端口列表{1,1,3,1}的请求分组。
交换机20D通过端口#2接收到此请求分组。交换机20D将请求分组中记述的输出端口列表{1,1,3,1}中的最末端口标识号更新成用来接收到请求分组的端口#2的端口标识号。结果,输出端口列表变成{1,1,3,2}。交换机20按相反的顺序重排列输出端口列表内的输出端口,并且在在答复分组中记述此输出端口列表{2,3,1,1}之后,从与{2,3,1,1}中的第一位置相对应的端口#2发送答复分组。其他交换机在接收到答复分组时的操作与接收到设立分组或隧道分组时的基本相同。答复分组在该情况下最终到达控制单元10。
另外,控制单元10在接收到答复分组时,将答复分组中记述的输出端口列表中的最末端口标识号更新成用来接收到该答复分组的端口的标识号。在更新操作后,控制单元10按相反的顺序重排列输出端口列表内的输出端口。控制单元10接下来参考此输出端口列表并生成拓扑信息。
虽然描述了交换机20A至20C传送请求分组并且交换机20D发送答复分组的情形,但交换机20D也与其他交换机类似地传送请求分组。反过来,交换机20A至20C也与交换机20D类似地发送答复分组。
在图3和4中以初始端口计数值0为例进行了描述。每个交换机判定要更新输出端口列表中的第几个端口标识号的方法或者每个交换机判定从哪个端口传送特定分组的方法可根据端口计数的具体初始值来预设。接收到了特定分组的交换机判定该交换机自身是否是目的地的方法也可根据端口计数的具体初始值来预设。
接下来,下面描述特定分组的格式的示例。图5示出了特定分组格式的示例。图5中所示的示例涉及按以太网帧(以太网:注册商标)的格式实现特定分组。图5中以括号形式示出的值表示字节数。按以太网帧格式提供了目的地MAC地址51和源MAC地址52。然而,本发明的通信***不使用这些地址来发送/接收特定分组。取而代之,本发明的通信***如本示例性实施例中所述通过源路由来发送特定分组。在以太网帧格式的特定分组中,指示出该分组是特定分组的值被存储到类型标识信息53中。当控制单元10或每个交换机生成特定分组时,指示出该分组是特定分组的值被存储到类型标识信息53中。此外,当控制单元10或每个交换机接收到分组时,它们各自以在类型标识信息53内存储了指示出该分组是特定分组的值这个事实为条件判定接收到的分组是特定分组。
以太网帧格式的数据54包括标识特定分组的种类的类型代码61。数据54还包括第一数据长度62、输出端口列表的长度63、端口计数64、输出端口列表65、第二数据长度66以及特定分组的数据67。为了与以太网帧格式中的类型标识信息53相区分,以下将把标识特定分组的种类的类型代码61简称为类型61。此外,为了与以太网帧格式中的数据54相区分,以下将把特定分组的数据67称为特定分组数据67。第一数据长度62(在图5中示为“长度”)以后的全部信息的数据长度被存储到第一数据长度62中。第二数据长度66(在图5中示为“数据长度”)以后的全部信息的数据长度被存储到第二数据长度66中。
输出端口列表的长度63(在图5中示为“端口长度”)是输出端口列表中包括的端口的数目。更具体而言,长度63是输出端口列表中包括的端口标识号的数目。
端口计数64(在图5中示为“端口计数”)是由离特定分组的发送源的跳数所决定的计数值。
端口标识号以排列形式被存储在输出端口列表65内。
以太网帧格式中的数据54可包括除图5所示那些以外的项目。请求分组例如包括(一个或多个)序列号。下面对于每种特定分组描述以太网帧格式的数据54中包括的信息的示例。然而,省略对第一数据长度62、输出端口列表的长度63、端口计数64、输出端口列表65和第二数据长度66的描述。
图6是示出请求分组中包括的信息的示例的说明图。指示出分组是请求分组的值被存储到类型代码61中。控制单元10在生成请求分组时将指示出该分组是请求分组的值存储到类型代码61中。此外,每个交换机在接收到分组时以在类型代码61内存储了指示出该分组是请求分组的值这个事实为条件判定接收到的分组是请求分组。
序列号被存储到图6中所示的“序列号”68中。控制单元10在请求分组的生成期间将序列号的值存储到“序列号”68中。
对于请求分组,特定分组数据67是空(NULL)。
图7是示出答复分组中包括的信息的示例的说明图。指示出分组是答复分组的值被存储到类型代码61中。每个交换机在生成答复分组时将指示出该分组是答复分组的值存储到类型代码61中。此外,控制单元10和每个交换机在接收到分组时以在类型代码61内存储了指示出该分组是答复分组的值这个事实为条件判定接收到的分组是答复分组。
对于答复分组,表示被链接起来的端口的信息、表示交换机的用于接收请求分组的端口的信息以及标识要发送答复分组的交换机的信息被存储到特定分组数据67中。在答复分组创建期间,要发送答复分组的交换机将这三种信息存储到特定分组数据67中。在图7的示例中,“数据路径ID”对应于交换机标识信息。另外,“请求端口”对应于请求分组接收端口。此外,“端口#n状态”表示具有端口标识号“n”的端口是否被链接起来。例如,交换机可为每个端口记述“端口#n状态”的值,使得对于被链接起来的端口“端口#n状态”等于1,并且使得对于未被链接起来的其他端口“端口#n状态”等于0。于是可从逐端口记述的“端口#n状态”值的集合来定位被链接起来的端口。然而,可以使用其他表示方法来记述被链接起来的端口。
图8是示出设立分组中包括的信息的示例的说明图。指示出分组是设立分组的值被存储到类型代码61中。控制单元10在生成设立分组时将指示出该分组是设立分组的值存储到类型代码61中。此外,每个交换机在接收到分组时以在类型代码61内存储了指示出该分组是设立分组的值这个事实为条件判定接收到的分组是设立分组。
对于设立分组,特定分组数据67是空。
图9是示出隧道分组中包括的信息的示例的说明图。指示出分组是隧道分组的值被存储到类型代码61中。控制单元10和每个交换机在生成隧道分组时将指示出该分组是隧道分组的值存储到类型代码61中。此外,控制单元10和每个交换机在接收到分组时以在类型代码61内存储了指示出该分组是隧道分组的值这个事实为条件判定接收到的分组是隧道分组。
隧道分组在特定分组数据67中存储了控制消息。更具体而言,在OpenFlow方案的一般通信***中作为控制消息交换的控制分组被存储到特定分组数据67中。在本发明的通信***中,与一般通信***中一样,也在控制单元与每个交换机之间交换控制消息。
下面描述操作。
图10是示出发送和接收特定分组的示例的说明图。在图10的示例中,通信***包括控制单元10和交换机B至E。另外,在控制单元10和交换机B至E旁边示出的数字表示端口标识号。
控制单元10从端口#1和端口#2发送请求分组,如图10(a)中所示。该请求分组中包括的序列号是相同的,在这里的示例中是“P”。交换机B、D都接收到该请求分组,然后向控制单元10发送答复分组,如图10(b)中所示。此时,交换机B、D从交换机用来接收到该请求分组的端口发送答复分组。此外,在第一次接收到其中记述了序列号“P”的请求分组时,交换机B、D各自从除了用来接收到请求分组的端口以外的端口发送请求分组。此发送状态在图10(c)中示出。
交换机C从交换机B、D接收到请求分组。作为对请求分组的答复,交换机C接下来从用来接收到请求分组的端口向控制单元10发送答复分组。此发送状态在图10(d)中示出。在第一次接收到其中记述了序列号“P”的请求分组时,交换机C从除了用来接收到请求分组的端口以外的端口发送该具体请求分组。这同样也适用于交换机E。
这样,每个交换机在接收到请求分组时,从请求分组接收端口向控制单元10发送答复分组。此外,每个交换机在第一次接收到其中记述了序列号“P”的请求分组时,对于该具体请求分组执行洪泛。这使得控制单元10接收到从每个交换机的每个端口发送的答复分组,并且基于答复分组生成拓扑信息。控制单元10还根据拓扑信息设定通向每个交换机的控制信道。此发送状态在图10(e)中示出。虽然在图10(e)中作为示例示出了控制单元10为交换机C、E设定的控制信道,但用于交换机C、E的这些控制信道不限于图10(e)中所示的控制信道。
下面描述控制单元和交换机的操作。
图11是示出控制单元10中的处理流程的示例的流程图。首先,控制单元10的拓扑搜索部12生成请求分组并且使得特定分组发送/接收部11发送请求分组(步骤S1)。在步骤S1中,拓扑搜索部12为控制单元10的每个端口生成请求分组。拓扑搜索部12接下来仅记述要用来发送该具体请求分组的端口的端口标识号作为每个生成的请求分组中的输出端口列表。拓扑搜索部12还记述1作为输出端口列表的长度,并且记述0作为端口计数的初始值。拓扑搜索部12还记述要从每个端口发送的每个请求分组共同的序列号。特定分组发送/接收部11从与输出端口列表中记述的端口标识号相对应的端口发送请求分组。
每个交换机以接收到的请求分组中包括的序列号是该交换机之前未接收到过的序列号这个事实为条件来执行请求分组洪泛。通过执行洪泛处理,每个交换机还不仅通过一个端口、而且通过被链接起来的每个端口接收到请求分组,然后从每个链接起来的端口向控制单元10发送答复分组。
然后,控制单元10接收从每个交换机的链接起来的端口发送的答复分组(步骤S2)。在步骤S2中,特定分组发送/接收部11将接收到的分组中记述的输出端口列表中的最末端口标识号更新成用来接收到答复分组的端口的标识号。在更新操作后,特定分组发送/接收部11按相反的顺序重排列输出端口列表内的端口标识号。特定分组发送/接收部11接下来将经编辑的答复分组输出到拓扑搜索部12。
拓扑搜索部12参考这样从交换机的各个端口发送来的答复分组,并且创建拓扑信息(步骤S3)。由于每个答复分组中的输出端口列表在步骤S2中被更新或重排列,所以输出端口列表表示从控制单元10到答复分组发送源交换机的路径。拓扑搜索部12查看输出交换机在答复分组中记述的信息和端口列表,创建拓扑信息,并且使得拓扑存储部13存储拓扑信息。拓扑信息的创建将在后文中更详细描述。
在步骤S3之后,控制信道路径确定部14参考拓扑存储部13内存储的拓扑信息,并且设定通向每个交换机的控制信道。对于此设定方法没有限制。例如,控制信道路径确定部14可计算到每个交换机的最短路径并将此路径设定为控制信道。控制信道路径确定部14为每个交换机生成其中记述了输出端口列表以表示到该交换机的控制信道的设立分组。控制信道路径确定部14还在设立分组中记述初始端口计数值0和输出端口列表的长度。控制信道路径确定部14使得特定分组发送/接收部11发送为每个交换机生成的设立分组(步骤S4)。此时,特定分组发送/接收部11从设立分组的输出端口列表中记述的第一个端口发送该设立分组。
交换机在接收到设立分组时使用设立分组来识别到控制单元10的控制信道,并且存储该信道。这使得控制单元10和每个交换机能够认识到控制信道。当控制单元10发送控制消息时,控制消息隧道传输部15通过编码和封装该控制消息来生成隧道分组。此时,控制消息隧道传输部15在隧道分组中记述表示控制信道的输出端口列表、输出端口列表的长度和初始端口计数值0。然后,控制消息隧道传输部15使得特定分组发送/接收部11发送隧道分组。特定分组发送/接收部11从隧道分组的输出端口列表中记述的第一个端口发送隧道分组。在交换机发送控制消息的情况下,控制消息隧道传输部25和特定分组发送/接收部21与上述类似地操作。
此外,在控制单元10接收到来自交换机的隧道分组时,控制消息隧道传输部15解封出控制消息并且对解封出的控制消息进行解码。控制单元10随后执行与解码出的控制消息相适应的处理。
另外,控制单元10周期性地执行从步骤S1起往后的处理。此时,拓扑搜索部12在每次按固定时段执行步骤S1时改变序列号。在第二及其后的处理周期的步骤S1之后,只有连接状态变化了的交换机才发送答复分组。拓扑搜索部12在第一周期的步骤S3中创建拓扑信息。在第二及其后的处理周期的步骤S3中,拓扑搜索部12使用接收到的答复分组来更新拓扑存储部13内存储的拓扑信息。
接下来,下面描述拓扑信息创建(步骤S3)。图12是示出创建拓扑信息的示例的流程图。此示例假定控制单元10已经接收到了从每个交换机的每个链接起来的端口发送的答复分组,并且特定分组发送/接收部11已经对每个答复分组进行了输出端口列表更新和重排列操作。
拓扑搜索部12向变量“i”赋予1(步骤S11)。变量“i”用于指定输出端口列表的长度。
拓扑搜索部12提取输出端口列表的长度等于“i”的一个答复分组。接下来,拓扑搜索部12识别该答复分组的输出端口列表中的最末端口标识号表示哪个节点的哪个端口(步骤S12)。如果i=1,则拓扑搜索部12识别控制单元10中与该具体端口标识号相对应的端口。如果i>2,则拓扑搜索部12从输出端口列表中的第一端口标识号起按顺序追踪每个交换机并且识别出输出端口列表中的最末端口标识号所属的交换机。拓扑搜索部12接下来识别出与该交换机的该具体端口标识号相对应的端口。拓扑搜索部12按输出端口列表长度的降序参考答复分组并且创建拓扑信息。这使得拓扑搜索部12能够从输出端口列表中的第一端口标识号起按顺序追踪每个交换机。
接下来,拓扑搜索部12识别出发送了在步骤S12中提取的答复分组的交换机,以及该交换机用于发送该答复分组的端口(步骤S13)。交换机用于发送答复分组的端口与交换机用于接收请求分组的端口相同,并且此端口的标识号被记述在答复分组中。标识发送了答复分组的交换机的信息也被记述在其中。通过读取答复分组中的记述,拓扑搜索部12可识别出答复分组发送源交换机和该交换机用于发送答复分组的端口。
接下来,拓扑搜索部12判定在步骤S12中识别出的端口和在步骤S13中识别出的交换机的端口是互连的,并且使得拓扑存储部13存储该互连关系(步骤S14)。
在接下来的步骤S15中,拓扑搜索部12判定输出端口列表的长度等于“i”并且尚未经历步骤S12至S14的处理的另一答复分组的存在性。如果存在这样的答复分组(步骤S15中的“是”),则拓扑搜索部12重复从步骤S12起往后的处理。
如果不存在这样的答复分组,则拓扑搜索部12向变量“i”的值加1(步骤S16)并且重复从步骤S12起往后的处理。
拓扑搜索部12对拓扑信息的创建例如在对所有答复分组的步骤S12至S14的处理执行完成时完成。通过组合例如在步骤S14中识别出的端口之间的互连关系那样的多个端口间连接关系而形成的集合是拓扑信息。
在第二及其后处理周期的步骤S2中(参见图11),控制单元10仅从相对于邻近交换机的互连关系发生了变化的交换机接收到答复分组。在此情况下,拓扑搜索部12以下文要描述的方式更新拓扑信息。此更新操作假定特定分组发送/接收部11已对每个答复分组进行了输出端口列表更新和重排列操作。
拓扑搜索部12按输出端口列表长度的降序对答复分组排序。然后,拓扑搜索部12对答复分组进行步骤S12至S14的处理,以最短输出端口列表的分组为优先。
此时,如果在拓扑信息中包括要连接到在步骤S12中识别的端口的其他交换机的端口信息,则拓扑搜索部12从其中删除指示比那些交换机靠后的交换机间的互连关系的信息,并且执行步骤S13、S14的处理。这更新了拓扑信息。
下面描述创建拓扑信息的更具体示例。图13示出了从每个交换机的每个端口发送的答复分组的路径的示例。图13中的示例示出了与图10相同的拓扑。在控制单元10旁边示出的数字例如表示端口标识号。此外,以箭头标记的路径“a”至“h”是从每个交换机的每个端口发送的答复分组的路径。
图14示出了通过图13中的路径“a”至“h”到达控制单元10的答复分组。在图14中,例如“源:#2B”表示发送了答复分组的交换机和交换机使用的端口。跟在“#”后面的数字是端口标识号,并且跟在“”后面的符号是标识交换机的信息。例如,“源:#2B”的意思是答复分组是从交换机B的端口#2发送的。此外,“端口:()”表示输出端口列表。然而,在步骤S2中,特定分组发送/接收部11将接收到的分组中记述的输出端口列表中的最末端口标识号更新成用来接收到答复分组的端口的端口标识号,并且还按相反的顺序重排列输出端口列表内的端口标识号。图14中所示的输出端口列表是在进行了更新和重排列操作之后存在的输出端口列表。以下,将用与答复分组追随以到达控制单元10的路径相同的符号来表述图14中所示的每个答复分组。例如,经过了图13中所示的路径“a”的答复分组将被称为答复分组“a”。
拓扑搜索部12设定“i=1”(步骤S11)并且对于答复分组“a”、“b”进行步骤S12至S14的处理。
拓扑搜索部12识别出答复分组“a”的输出端口列表中的最末端口标识号“2”是控制单元10的端口#2(步骤S12)。拓扑搜索部12还判定答复分组“a”是从交换机B的端口#2发送的(步骤S13)。拓扑搜索部12接下来判定控制单元10的端口#2和交换机B的端口#2相互连接(步骤S14)。
类似地,拓扑搜索部12使用答复分组“b”来判定控制单元10的端口#1和交换机D的端口#1是互连的。
接下来,拓扑搜索部12设定“i=2”(参见步骤S16)并且对于答复分组“c”、“d”、“e”、“f”进行步骤S12至S14的处理。
拓扑搜索部12识别出答复分组“c”的输出端口列表中的最末端口标识号“3”是交换机B的端口#3(步骤S12)。由于答复分组“c”中的输出端口列表是(#2,#3),所以拓扑搜索部12可从已知的互连关系进行该识别。拓扑搜索部12还判定答复分组“c”是从交换机C的端口#2发送的(步骤S13)。拓扑搜索部12接下来判定交换机B的端口#3和交换机C的端口#2是互连的。
类似地,拓扑搜索部12使用答复分组“d”来判定交换机D的端口#2和交换机C的端口#1是互连的。拓扑搜索部12类似地使用答复分组“e”来判定交换机B的端口#1和交换机E的端口#2是互连的。拓扑搜索部12类似地使用答复分组“f”来判定交换机D的端口#3和交换机E的端口#1是互连的。
接下来,拓扑搜索部12设定“i=3”(参见步骤S16)并且对于答复分组“g”、“h”进行步骤S12至S14的处理。
拓扑搜索部12识别出答复分组“g”的输出端口列表中的最末端口标识号“1”是交换机C的端口#1(步骤S12)。由于答复分组“g”中的输出端口列表是(#2,#3,#1),所以拓扑搜索部12可从已知的互连关系进行该识别。拓扑搜索部12还判定答复分组“g”是从交换机D的端口#2发送的。拓扑搜索部12接下来判定交换机C的端口#1和交换机D的端口#2是互连的(步骤S14)。
拓扑搜索部12类似地使用答复分组“h”来判定交换机E的端口#2和交换机B的端口#1是互连的。
在本示例中,虽然对于答复分组“g”、“h”也进行了步骤S12至S14的处理,但拓扑搜索部12可以仅利用答复分组“a”至“f”完成拓扑信息。
图15和16是示出一个交换机中的处理流程的示例的流程图。在交换机接收到特定分组时,特定分组发送/接收部21判定该特定分组是否是请求分组(步骤S21)。如果接收到的特定分组是请求分组(步骤S21中的“是”),则特定分组发送/接收部21将该请求分组输出到洪泛控制部22。
洪泛控制部22判定从特定分组发送/接收部21输入的请求分组中的序列号是否与任何存储的序列号一致(步骤S23)。如果该序列号不与任何存储的序列号一致(步骤S23中的“否”),则洪泛控制部22通过执行随后的处理步骤S24和S25来对该请求分组进行洪泛。更具体而言,洪泛控制部22为除了用来接收到请求分组的端口以外的每个端口创建请求分组的拷贝,并且更新每个请求分组中的输出端口列表、其长度和端口计数(步骤S24)。洪泛控制部22向输出端口列表的末端添加要用来发送在步骤S24中拷贝的请求分组的输出端口的标识号。洪泛控制部22还在输出端口列表中的所有端口标识号之中仅将与从端口计数决定的位置相对应的端口标识号替换为用来接收到请求分组的端口的标识号。如果端口计数的初始值是0并且端口计数的当前值是“k”,则洪泛控制部22更新第(k+1)个端口标识号。此外,洪泛控制部22向输出端口列表的长度值和端口计数的值加1。洪泛控制部22接下来使得特定分组发送/接收部21发送请求分组(步骤S25)。特定分组发送/接收部21从与被添加到输出端口列表的末端的端口标识号相对应的端口发送请求分组。处理接下来转到步骤S26。
如果请求分组中的序列号与存储的序列号中的任何一个一致(步骤S23中的“是”),则洪泛控制部22不执行处理步骤S24、S25,并且处理随后转到步骤S26。
在步骤S26中,洪泛控制部22将交换机接收到的请求分组原样输出到信息提供部23。
信息提供部23判定从作为对过去从控制单元10发送的请求分组的答复发送答复分组时起,交换机自身在连接关系上是否有变化(步骤S27)。即,信息提供部23判定当前连接到信息提供部23的交换机的交换机是否被任何其他交换机所替换或断开连接。如果在连接关系上没有变化(步骤S27中的“否”),则请求分组接收处理完成。
如果在连接关系上有变化(步骤S27中的“是”),则信息提供部23生成答复分组并且使得特定分组发送/接收部21发送该答复分组(步骤S28)。信息提供部23生成包括指示出交换机自身的链接起来的端口的信息、标识交换机的信息和交换机用于接收请求分组的端口的标识号的答复分组。信息提供部23还将所输入的请求分组中记述的输出端口列表中的最末端口标识号更新成请求分组接收端口的标识号,并且还逆转输出端口列表中的端口标识号的排列顺序。在此重排列后,信息提供部23在答复分组中记述输出端口列表。信息提供部23还在答复分组中记述输出端口列表的长度和端口计数的初始值,然后使得特定分组发送/接收部21发送答复分组。特定分组发送/接收部21从输出端口列表中的第一端口标识号指示的端口发送答复分组。在步骤S28完成时,请求分组接收处理结束。
这样,以交换机在连接关系上有变化为条件,生成并发送答复分组,由此抑制了与不影响拓扑信息的答复分组的发送和接收相关联的流量的增加。
如果接收到的特定分组不是请求分组(步骤S21中的“否”),则特定分组发送/接收部21判定接收到特定分组的交换机自身是否是该特定分组的目的地(步骤S29)。如果交换机自身是目的地(步骤S29中的“是”),则特定分组发送/接收部21辨别此特定分组的类型(步骤S30)。
如果特定分组是设立分组,则特定分组发送/接收部21将该设立分组输出到路径存储部24(步骤S31)。路径存储部24将设立分组中记述的输出端口列表内的最末端口标识号更新成用来接收到设立分组的端口的标识号。然后,路径存储部24按相反的顺序重排列输出端口列表内的端口标识号,并且存储经编辑的输出端口列表作为指示出成为控制信道的路径的信息(步骤S32)。
如果特定分组是隧道分组,则特定分组发送/接收部21将该隧道分组输出到控制消息隧道传输部25(步骤S33)。控制消息隧道传输部25从隧道分组中解封出控制消息并且对解封出的控制消息解码(步骤S34)。交换机进行与该控制消息相适应的处理。
如果接收到特定分组的交换机自身不是此分组的目的地(步骤S29中的“否”),则特定分组发送/接收部21在输出端口列表中的所有端口标识号之中仅将与从端口计数决定的位置相对应的端口标识号更新成用来接收到该特定分组的端口的标识号。特定分组发送/接收部21还向特定分组中的端口计数加1(步骤S35)。然后,特定分组发送/接收部21发送该特定分组(步骤S36)。
在步骤S32、S34或S36结束时,特定分组接收处理完成。
根据本发明,控制单元与每个交换机之间的控制信道是经由交换机用来传送数据分组的通信网络建立的。换言之,交换机用来传送数据分组的通信网络和控制信道是利用一种通信网络实现的。这进而产生了以下有利效果。
第一,冗余性和容错性改善了。这是因为,即使在交换机用来传送数据分组的通信网络的一部分中发生故障的情况下,如果确保了从控制单元10到交换机的路径,则也还是能够设定控制信道。例如,在图2所示的拓扑中,即使在控制单元10与交换机20b之间发生链路故障,控制单元10发送到交换机20a的请求分组也能到达每个交换机。这进而使能了建立控制单元10与每个交换机之间的控制信道。
下面论述与图20中作为示例示出的一般通信***的比较。如图20中所示,在独立于分组传送通信网络94提供控制通信网络93的配置中,即使物理上存在使分组能够从控制单元91到达交换机92的路径,这些路径也不用于控制。从而,控制通信网络93中的故障导致了控制单元91中的控制故障,从而降低了容错性。与之不同,本发明由于前述原因改善了冗余性和容错性。
第二,因为不需要为控制信道提供专门的通信网络,所以不需要管理这样的专门通信网络,从而可以降低通信***的管理成本。如果交换机的数目增加或减少,控制单元10进行的请求分组发送也会使能最新拓扑信息的创建,因此使能通向每个交换机的控制信道的建立。
下面论述与图20中作为示例示出的一般通信***的比较。在图20中作为示例示出的通信***中,由于控制通信网络93和分组传送通信网络94两者都需要管理,所以管理成本增大了。例如,如果通过添加交换机改变了交换机群组的拓扑,则必须向控制通信网络93和分组传送通信网络94两者添加链路来适应/容适该变化。然而,在本发明中,对前述序列的使用降低了管理通信***所需的成本。
第三,即使在交换机的数目增加之后,如上所述,控制单元10也可通过发送请求分组来创建最新的拓扑信息。此时,由于只有控制单元10是请求分组的发送源,所以与诸如采用STP中的BPDU之类的情况相比,与交换机数目增加时的特定分组交换相关联的流量可被抑制到更低的水平。此优点进而使得可以防止通信***在开始拓扑信息的创建之前花费太多时间,并且防止给通信线路施加沉重的负担。
下面论述与图20中作为示例示出的一般通信***的比较。在图20中作为示例示出的通信***中,如果交换机的拓扑变化,则由于通信***用于认识新拓扑的控制帧(例如STP中的BPDU)被在交换机之间交换,所以使用太多交换机将引起这种控制帧的频繁生成并且导致改善此状态需要大量的时间或者导致通信线路被施加沉重的负担。然而,在本发明中,由于与交换机数目增加时的特定分组交换相关联的流量如上所述与诸如采用STP中的BPDU之类的情况相比能够被抑制到更低的水平,所以对于通信***的规模能够实现可扩展性。
另外,每个交换机执行请求分组洪泛,从而控制单元10通过从一个端口发送一个请求分组,就能够收集用于识别连接到该端口的交换机链的拓扑的答复分组。控制单元10因此在周期性拓扑搜索的一次会话期间只需要从一个端口发送一个请求分组。这使答复分组收集时间达到最短。
接下来,下面描述本发明的最低限度配置的示例。图17是示出根据本发明的通信***的最低限度配置的示例的框图。图18是示出本发明中的最低限度控制单元配置的示例的框图。图19是示出本发明中的最低限度分组传送单元配置的示例的框图。
根据本发明的通信***包括多个分组传送单元90(例如交换机20a至20d)和控制每个分组传送单元90的控制单元80(例如控制单元10)。
控制单元80包括答复请求发送装置81、答复接收装置82和拓扑信息创建装置83(参见图17、18)。
答复请求发送装置81(例如包括拓扑搜索部12和控制单元侧特定分组发送/接收部11的部分)向分组传送单元发送答复请求(例如请求分组)。
答复接收装置82(例如控制单元侧特定分组发送/接收部11)接收来自分组传送单元的包括关于在该分组传送单元处提供的端口的信息的答复(例如答复分组)。
拓扑信息创建装置83(例如拓扑搜索部12)使用从每个分组传送单元发送来的答复来创建包括关于在控制单元处提供的端口与分组传送单元的每个端口之间的互连的信息的拓扑信息。
分组传送单元90包括传送装置91和答复发送装置92(参见图17、19)。
传送装置91(例如包括洪泛控制部22和特定分组发送/接收部21的部分)在接收到答复请求时,从除了用来接收到该答复请求的端口以外的端口传送该答复请求。
答复发送装置92(例如包括信息提供部23和交换机侧特定分组发送/接收部21的部分)在接收到答复请求时,返回包括关于该分组传送单元的端口的信息的答复,该答复是通过通向控制单元的路径发送的。
上述示例性实施例包括在下面第(1)至(10)项中描述的那些作为特征的通信***配置。也包括在随后的第(11)至(13)项中描述的那些作为特征的控制单元配置。还包括在随后的第(14)和(15)项中描述的那些作为特征的分组传送单元配置。
(1)本发明的通信***包括多个分组传送单元(例如交换机20a至20d)和控制每个分组传送单元的控制单元(例如控制单元10),其中:控制单元包括答复请求发送装置(例如包括拓扑搜索部12和控制单元侧特定分组发送/接收部11的部分),该答复请求发送装置向分组传送单元发送答复请求(例如请求分组);答复接收装置(例如控制单元侧特定分组发送/接收部11),该答复接收装置接收来自分组传送单元的包括关于在该分组传送单元处提供的端口的信息的答复(例如答复分组);以及拓扑信息创建装置(例如拓扑搜索部12),该拓扑信息创建装置基于从每个分组传送单元发送来的答复创建拓扑信息,该拓扑信息包括关于在控制单元处提供的端口和分组传送单元的每个端口的端口互连信息;并且分组传送单元包括传送装置(例如包括洪泛控制部22和特定分组发送/接收部21的部分),该传送装置在接收到答复请求时,从除了用来接收到该答复请求的端口以外的端口传送该答复请求;以及答复发送装置(例如包括信息提供部23和交换机侧特定分组发送/接收部21的部分),该答复发送装置在接收到答复请求时,返回包括关于该分组传送单元的端口的信息的答复,该答复是通过通向控制单元的路径发送的。
(2)还公开了通信***被配置成使得:除了周期性地重复向分组传送单元的答复请求发送以外,每次答复请求发送装置发送答复请求时,答复请求发送装置还在答复请求中包括发送计数标识信息以指示出该答复请求是发送计数中的第几个请求;并且以接收到的答复请求中包括的发送计数标识信息是之前未接收到过的第一发送计数标识信息这个事实为条件,传送装置从除了传送装置用来接收到该答复请求的端口以外的端口传送该答复请求。此***配置对于抑制与答复请求发送相关联的流量和与由答复请求的发送引起的答复的生成相关联的流量是有效的。
(3)此外,所公开的通信***被配置成使得,答复发送装置以在分组传送单元接收到答复请求时,接收到答复请求的分组传送单元自身相对于任何其他分组传送单元的连接关系从响应于过去从控制单元发送的答复请求发送答复时起有了变化这个事实为条件而返回答复。此***配置对于抑制与不影响拓扑信息的答复的发送和接收相关联的流量的增加是有效的。
(4)另外,所公开的通信***被配置成使得,拓扑信息创建装置在接收到由在创建拓扑信息后发送的答复请求引起的答复时,根据该答复更新拓扑信息。此***配置对于将最新的拓扑包含到拓扑信息中是有效的。
(5)另外,所公开的通信***被配置成使得控制单元包括:控制信道确定装置(例如控制信道路径确定部14),该控制信道确定装置使用拓扑信息来确定作为控制单元和每个分组传送单元之间的路径的控制信道;以及控制信道通知发送装置(例如控制单元侧特定分组发送/接收部11),该控制信道通知发送装置发送控制信道通知以将控制信道通知给分组传送单元,并且所公开的通信***被配置成使得分组传送单元包括控制信道存储装置(例如路径存储部24),该控制信道存储装置在接收到控制信道通知时,使用控制信道通知来存储在控制单元和该分组传送单元之间形成的控制信道。
(6)本发明的通信***可包括多个分组传送单元和控制每个分组传送单元的控制单元,其中:控制单元包括答复请求发送部,该答复请求发送部向分组传送单元发送答复请求;答复接收部,该答复接收部接收来自分组传送单元的包括关于在该分组传送单元处提供的端口的信息的答复;以及拓扑信息创建部,该拓扑信息创建部基于从每个分组传送单元发送来的答复创建拓扑信息,该拓扑信息包括关于在控制单元处提供的端口和分组传送单元的每个端口的端口互连信息;并且分组传送单元包括传送部,该传送部在接收到答复请求时,从除了用来接收到该答复请求的端口以外的端口传送该答复请求;以及答复发送部,该答复发送部在接收到答复请求时,返回包括关于该分组传送单元的端口的信息的答复,该答复是通过通向控制单元的路径发送的。
(7)还公开了通信***被配置成使得:除了周期性地重复向分组传送单元的答复请求发送以外,每次答复请求发送部发送答复请求时,答复请求发送部还在答复请求中包括发送计数标识信息以指示出该答复请求是发送计数中的第几个请求;并且以接收到的答复请求中包括的发送计数标识信息是之前未接收到过的第一发送计数标识信息这个事实为条件,传送部从除了传送部用来接收到该答复请求的端口以外的端口传送该答复请求。
(8)此外,所公开的通信***被配置成使得,答复发送部以在分组传送单元接收到答复请求时,接收到答复请求的分组传送单元自身相对于任何其他分组传送单元的连接关系从响应于过去从控制单元发送的答复请求发送答复时起有了变化这个事实为条件而返回答复。
(9)另外,所公开的通信***被配置成使得,拓扑信息创建部在接收到由在创建拓扑信息后发送的答复请求引起的答复时,根据该答复更新拓扑信息。
(10)另外,所公开的通信***被配置成使得控制单元包括:控制信道确定部,该控制信道确定部使用拓扑信息来确定作为控制单元和每个分组传送单元之间的路径的控制信道;以及控制信道通知发送部,该控制信道通知发送部发送控制信道通知以将控制信道通知给分组传送单元,并且所公开的通信***被配置成使得分组传送单元包括控制信道存储部,该控制信道存储部在接收到控制信道通知时,使用控制信道通知来存储在控制单元和该分组传送单元之间形成的控制信道。
(11)根据本发明的另一方面的控制单元控制多个分组传送单元,该控制单元包括:答复请求发送部,该答复请求发送部向分组传送单元发送答复请求;答复接收部,该答复接收部接收来自分组传送单元的包括关于在该分组传送单元处提供的端口的信息的答复;以及拓扑信息创建部,该拓扑信息创建部基于从每个分组传送单元发送来的答复创建拓扑信息,该拓扑信息包括关于在控制单元处提供的端口和分组传送单元的每个端口的端口互连信息。
(12)还公开了通信***被配置成使得:除了周期性地重复向分组传送单元的答复请求发送以外,每次答复请求发送部发送答复请求时,答复请求发送部还在答复请求中包括发送计数标识信息以指示出该答复请求是发送计数中的第几个请求。
(13)此外,本发明中的被配置为控制多个分组传送单元的控制单元可包括:答复请求发送装置,该答复请求发送装置向分组传送单元发送答复请求;答复接收装置,该答复接收装置接收来自分组传送单元的包括关于在该分组传送单元处提供的端口的信息的答复;以及拓扑信息创建装置,该拓扑信息创建装置基于从每个分组传送单元发送来的答复创建拓扑信息,该拓扑信息包括关于在控制单元处提供的端口和分组传送单元的每个端口的端口互连信息。
(14)根据本发明的另一方面的分组传送单元受控制单元控制,该分组传送单元包括:传送部,该传送部在接收到从控制单元发送来的答复请求时,从除了用来接收到该答复请求的端口以外的端口传送该答复请求;以及答复发送部,该答复发送部在接收到从控制单元发送来的答复请求时,返回包括关于该分组传送单元的端口的信息的答复,该答复是通过通向控制单元的路径发送的。
(15)另外,根据本发明的分组传送单元可受控制单元控制,该分组传送单元包括:传送装置,该传送装置在接收到从控制单元发送来的答复请求时,从除了用来接收到该答复请求的端口以外的端口传送该答复请求;以及答复发送装置,该答复发送装置在接收到从控制单元发送来的答复请求时,返回包括关于该分组传送单元的端口的信息的答复,该答复是通过通向控制单元的路径发送的。
虽然以上已参考示例性实施例描述了本发明,但本发明不限于示例性实施例。在本发明的范围内可对本发明的配置和细节做出本领域的技术人员可理解的各种改变。
本申请基于2009年12月28日提交的日本专利申请No.2009-298853要求优先权,特此通过引用将该日本专利申请的全部公开内容并入本申请中。
工业应用
本发明适用于包括多个分组传送单元和控制每个分组传送单元的控制单元的通信***。
标号列表
10 控制单元
11 控制单元侧特定分组发送/接收部
12 拓扑搜索部
13 拓扑存储部
14 控制信道路径确定部
15 控制单元侧控制消息隧道传输部
20、20a至20d、20A至20D 交换机(分组传送单元)
21 交换机侧特定分组发送/接收部
22 洪泛控制部
23 信息提供部
24 路径存储部
25 交换机侧控制消息隧道传输部
Claims (9)
1.一种通信***,包括:
多个分组传送单元;以及
控制每个分组传送单元的控制单元,所述控制单元向每个分组传送单元发送流条目信息以使每个分组传送单元根据接收到的流条目信息来处理分组,
其中,控制单元包括
答复请求发送装置,该答复请求发送装置向分组传送单元发送答复请求,
答复接收装置,该答复接收装置接收来自分组传送单元的包括关于在该分组传送单元处提供的端口的信息的答复,以及
拓扑信息创建装置,该拓扑信息创建装置基于从每个分组传送单元发送来的答复创建拓扑信息,该拓扑信息包括关于在控制单元处提供的端口和分组传送单元的每个端口的端口互连信息;并且
分组传送单元包括
传送装置,该传送装置在接收到答复请求时,从除了用来接收到该答复请求的端口以外的端口传送该答复请求,以及
答复发送装置,该答复发送装置在接收到答复请求时,返回包括关于该分组传送单元的端口的信息的答复,该答复是通过通向控制单元的路径发送的。
2.根据权利要求1所述的通信***,
其中:答复请求发送装置周期性地向分组传送单元发送答复请求,该答复请求包括指示出答复请求发送次数的发送计数标识信息;并且
传送装置在接收到的答复请求中的发送计数标识信息中包括的数字是之前未接收到过的数字时,从除了传送装置用来接收到该答复请求的端口以外的端口传送该答复请求。
3.根据权利要求2所述的通信***,
其中:如果接收到答复请求的分组传送单元自身相对于任何其他分组传送单元的连接关系从响应于过去从控制单元发送的答复请求发送答复时起有了变化,则答复发送装置响应于接收到的答复请求返回答复。
4.根据权利要求2或3所述的通信***,
其中:当拓扑信息创建装置接收到响应于在创建拓扑信息后发送的答复请求的答复时,拓扑信息创建装置基于该答复更新拓扑信息。
5.根据权利要求1所述的通信***,
其中:控制单元包括
控制信道确定装置,该控制信道确定装置基于拓扑信息确定作为控制单元和每个分组传送单元之间的路径的控制信道,以及
控制信道通知发送装置,该控制信道通知发送装置发送控制信道通知以将控制信道通知给分组传送单元;并且
分组传送单元包括
控制信道存储装置,该控制信道存储装置在接收到控制信道通知时,基于控制信道通知来存储在控制单元和该分组传送单元之间形成的控制信道。
6.一种控制多个分组传送单元的控制单元,所述控制单元向每个分组传送单元发送流条目信息以使每个分组传送单元根据接收到的流条目信息来处理分组,该控制单元包括:
答复请求发送装置,该答复请求发送装置向分组传送单元发送答复请求,
答复接收装置,该答复接收装置接收来自分组传送单元的包括关于在该分组传送单元处提供的端口的信息的答复,以及
拓扑信息创建装置,该拓扑信息创建装置基于从每个分组传送单元发送来的答复创建拓扑信息,该拓扑信息包括关于在控制单元处提供的端口和分组传送单元的每个端口的端口互连信息。
7.根据权利要求6所述的控制单元,
其中:答复请求发送装置周期性地向分组传送单元发送答复请求,该答复请求包括指示出答复请求发送次数的发送计数标识信息。
8.一种受控制单元控制的分组传送单元,所述分组传送单元从所述控制单元接收流条目信息并根据接收到的流条目信息来处理分组,该分组传送单元包括:
传送装置,该传送装置在接收到来自控制单元的答复请求时,从除了用来接收到该答复请求的端口以外的端口传送该答复请求,以及
答复发送装置,该答复发送装置在接收到来自控制单元的答复请求时,返回包括关于该分组传送单元的端口的信息的答复,该答复是通过通向控制单元的路径发送的。
9.一种创建拓扑信息的方法,其中:控制多个分组传送单元的控制单元向每个分组传送单元发送流条目信息以使每个分组传送单元根据接收到的流条目信息来处理分组,所述控制单元执行:
向每个分组传送单元发送答复请求;
从分组传送单元接收包括关于在该分组传送单元处提供的端口的信息的答复;以及
基于从每个分组传送单元发送来的答复创建拓扑信息,该拓扑信息包括关于在控制单元处提供的端口和分组传送单元的每个端口的端口互连信息。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009-298853 | 2009-12-28 | ||
JP2009298853 | 2009-12-28 | ||
PCT/JP2010/006878 WO2011080871A1 (ja) | 2009-12-28 | 2010-11-25 | 通信システムおよびトポロジー情報作成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102687464A CN102687464A (zh) | 2012-09-19 |
CN102687464B true CN102687464B (zh) | 2015-03-18 |
Family
ID=44226300
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080059969.6A Expired - Fee Related CN102687464B (zh) | 2009-12-28 | 2010-11-25 | 通信***和创建拓扑信息的方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20110305168A1 (zh) |
EP (1) | EP2521309B1 (zh) |
JP (1) | JP5644775B2 (zh) |
CN (1) | CN102687464B (zh) |
ES (1) | ES2595213T3 (zh) |
RU (1) | RU2522029C2 (zh) |
WO (1) | WO2011080871A1 (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9252970B2 (en) * | 2011-12-27 | 2016-02-02 | Intel Corporation | Multi-protocol I/O interconnect architecture |
US9185166B2 (en) | 2012-02-28 | 2015-11-10 | International Business Machines Corporation | Disjoint multi-pathing for a data center network |
JP6128132B2 (ja) * | 2012-03-06 | 2017-05-17 | 日本電気株式会社 | 通信装置、制御装置、通信システム、パケット処理方法、通信装置の制御方法及びプログラム |
WO2013141191A1 (ja) * | 2012-03-19 | 2013-09-26 | 日本電気株式会社 | 制御装置、通信システム、ノード制御方法及びプログラム |
US9036469B2 (en) * | 2012-04-26 | 2015-05-19 | Hewlett-Packard Development Company, L.P. | Data communication in openflow networks |
US9112793B2 (en) | 2012-05-31 | 2015-08-18 | International Business Machines Corporation | End-to-end multipathing through network having switching devices compatible with different protocols |
WO2013180182A1 (ja) * | 2012-05-31 | 2013-12-05 | 株式会社ニコン | 移動電子機器およびプログラム |
US9118573B2 (en) * | 2012-05-31 | 2015-08-25 | International Business Machines Corporation | Multipath effectuation within singly contiguous network fabric via switching device routing logic programming |
US20150134842A1 (en) * | 2012-06-25 | 2015-05-14 | Rangaprasad Sampath | Translated session information to provision a network path |
CN103001887B (zh) | 2012-11-22 | 2018-01-05 | 中兴通讯股份有限公司 | 一种链路保活方法、控制器及交换机 |
CN103220234B (zh) * | 2013-04-19 | 2015-12-23 | 杭州华三通信技术有限公司 | 矩阵堆叠***的拓扑发现方法和设备 |
JP6063826B2 (ja) * | 2013-06-21 | 2017-01-18 | エヌ・ティ・ティ・コムウェア株式会社 | 経路確認装置、経路確認システム、経路確認方法、及びプログラム |
US9628356B2 (en) * | 2013-10-10 | 2017-04-18 | Ixia | Methods, systems, and computer readable media for providing user interfaces for specification of system under test (SUT) and network tap topology and for presenting topology specific test results |
US9356855B2 (en) * | 2013-10-10 | 2016-05-31 | Ixia | Methods, systems, and computer readable media for providing for specification or autodiscovery of device under test (DUT) topology information |
CN104579968B (zh) | 2013-10-26 | 2018-03-09 | 华为技术有限公司 | Sdn交换机获取精确流表项方法及sdn交换机、控制器、*** |
WO2015074258A1 (zh) * | 2013-11-22 | 2015-05-28 | 华为技术有限公司 | 一种控制业务数据在虚拟网络中转发的方法、装置及*** |
JP2018522480A (ja) * | 2015-08-20 | 2018-08-09 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | フロントホールトポロジを探索するための方法および装置 |
CN105847148B (zh) * | 2016-03-18 | 2019-07-16 | 上海斐讯数据通信技术有限公司 | 一种数据帧转发控制方法及*** |
CN110365569A (zh) * | 2019-07-12 | 2019-10-22 | 迈普通信技术股份有限公司 | 报文处理方法、装置及通信设备 |
US10917326B1 (en) | 2019-08-23 | 2021-02-09 | Keysight Technologies, Inc. | Methods, systems, and computer readable media for debugging test traffic generation |
JP7198951B2 (ja) * | 2020-07-20 | 2023-01-04 | ホーチキ株式会社 | 管理装置及び端末機器 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1497913A (zh) * | 2002-10-04 | 2004-05-19 | 株式会社Ntt都科摩 | 路径控制装置及路径控制信息生成方法 |
US6987740B1 (en) * | 2000-09-11 | 2006-01-17 | Cisco Technology, Inc. | STP root guard |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5319633A (en) * | 1992-08-17 | 1994-06-07 | International Business Machines Corporation | Enhanced serial network topology generation algorithm |
US6590928B1 (en) * | 1997-09-17 | 2003-07-08 | Telefonaktiebolaget Lm Ericsson (Publ) | Frequency hopping piconets in an uncoordinated wireless multi-user system |
US6678726B1 (en) * | 1998-04-02 | 2004-01-13 | Microsoft Corporation | Method and apparatus for automatically determining topology information for a computer within a message queuing network |
US6426947B1 (en) * | 1998-10-21 | 2002-07-30 | Kim K. Banker | Apparatus and method for unilateral topology discovery in network management |
KR100703499B1 (ko) * | 2000-12-09 | 2007-04-03 | 삼성전자주식회사 | 다중 프로토콜 레이블 교환 시스템에서 트래픽 엔지니어링기능을 구현하기 위한 데이터구조 및 구축 방법 |
JP2002223235A (ja) * | 2001-01-26 | 2002-08-09 | Kddi Corp | Mpls経路設定装置 |
JP3823867B2 (ja) * | 2002-04-11 | 2006-09-20 | 日本電気株式会社 | 通信ネットワーク制御システム、制御方法、ノード及びプログラム |
JP2004129054A (ja) * | 2002-10-04 | 2004-04-22 | Ntt Docomo Inc | 経路制御装置及び経路制御情報生成方法 |
US7493562B2 (en) * | 2003-06-27 | 2009-02-17 | Computer Associates Think, Inc. | System and method for bridge port administration |
RU2337504C2 (ru) * | 2003-08-26 | 2008-10-27 | Телефонактиеболагет Лм Эрикссон (Пабл) | Устройство и способ для аутентификации пользователя при доступе к мультимедийным службам |
JP4030979B2 (ja) * | 2004-03-31 | 2008-01-09 | Necパーソナルプロダクツ株式会社 | ネットワーク機器の相互接続装置 |
JP4517997B2 (ja) * | 2005-10-05 | 2010-08-04 | 株式会社日立製作所 | ネットワーク管理装置およびネットワークシステム |
US8184644B1 (en) * | 2006-02-28 | 2012-05-22 | Nortel Networks Limited | WiMAX R6 management protocol |
US9083609B2 (en) * | 2007-09-26 | 2015-07-14 | Nicira, Inc. | Network operating system for managing and securing networks |
JP2009298853A (ja) | 2008-06-10 | 2009-12-24 | Ube Ind Ltd | ポリアミド樹脂組成物 |
-
2010
- 2010-11-25 WO PCT/JP2010/006878 patent/WO2011080871A1/ja active Application Filing
- 2010-11-25 RU RU2012132446/08A patent/RU2522029C2/ru not_active IP Right Cessation
- 2010-11-25 EP EP10840731.3A patent/EP2521309B1/en not_active Not-in-force
- 2010-11-25 JP JP2011547262A patent/JP5644775B2/ja not_active Expired - Fee Related
- 2010-11-25 CN CN201080059969.6A patent/CN102687464B/zh not_active Expired - Fee Related
- 2010-11-25 ES ES10840731.3T patent/ES2595213T3/es active Active
-
2011
- 2011-08-19 US US13/137,486 patent/US20110305168A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6987740B1 (en) * | 2000-09-11 | 2006-01-17 | Cisco Technology, Inc. | STP root guard |
CN1497913A (zh) * | 2002-10-04 | 2004-05-19 | 株式会社Ntt都科摩 | 路径控制装置及路径控制信息生成方法 |
Also Published As
Publication number | Publication date |
---|---|
RU2012132446A (ru) | 2014-02-20 |
CN102687464A (zh) | 2012-09-19 |
JP5644775B2 (ja) | 2014-12-24 |
US20110305168A1 (en) | 2011-12-15 |
EP2521309B1 (en) | 2016-08-31 |
EP2521309A1 (en) | 2012-11-07 |
JPWO2011080871A1 (ja) | 2013-05-09 |
WO2011080871A1 (ja) | 2011-07-07 |
ES2595213T3 (es) | 2016-12-28 |
EP2521309A4 (en) | 2015-07-29 |
RU2522029C2 (ru) | 2014-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102687464B (zh) | 通信***和创建拓扑信息的方法 | |
CN102687465B (zh) | 通信***和收集端口信息的方法 | |
CN100555992C (zh) | 基于网络的择路方案 | |
EP1320224B1 (en) | Telecommunications network and a packet header therefor | |
CN103210617B (zh) | 用于减少网络中的消息和计算开销的方法和*** | |
US6735177B1 (en) | Multicast communication device and method | |
CN100512238C (zh) | Mpls网络中的递归bgp路由更新方法 | |
CN101072162B (zh) | 以太网交换机内的转发表最小化 | |
CN1943173B (zh) | 用于实现智能附属网络设备的方法和*** | |
US20080101386A1 (en) | MAC (media access control) tunneling and control and method | |
CN101356778A (zh) | 网络***及数据传送装置 | |
CN103688498A (zh) | 可操作用于指定和确定用于链路状态路由选择协议的链路状态消息完整集的方法和网络元件 | |
CN106487537A (zh) | 业务链实现方法以及策略控制平台 | |
US8223651B2 (en) | Information processing apparatus, summarizing method and summarizing program | |
KR20130087535A (ko) | 라우팅 정보의 룩헤드 계산 | |
US6600583B1 (en) | Optical internet router | |
CN100496023C (zh) | 一种传输链路状态信息的方法 | |
CN104683143A (zh) | 网络元件以及用于管理网络元件的控制器 | |
CN101184047B (zh) | 一种消息路由方法、设备及*** | |
JP2006511115A (ja) | パケット交換方式ネットワークにおけるリターンパス導出 | |
CN110099137A (zh) | 地址转换 | |
CN103916322A (zh) | 定义软件定义网络的网络元件的查找***的方法和设备 | |
JP2006060337A (ja) | ネットワーク、通信装置及びそれらに用いる経路探索方法 | |
CN104247347A (zh) | 网络控制方法和设备 | |
JP4657898B2 (ja) | 通信装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1176478 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150318 Termination date: 20161125 |