CN102415054B - 节点装置和通信方法 - Google Patents
节点装置和通信方法 Download PDFInfo
- Publication number
- CN102415054B CN102415054B CN200980159059.2A CN200980159059A CN102415054B CN 102415054 B CN102415054 B CN 102415054B CN 200980159059 A CN200980159059 A CN 200980159059A CN 102415054 B CN102415054 B CN 102415054B
- Authority
- CN
- China
- Prior art keywords
- mentioned
- frame
- port
- node apparatus
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
-
- 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/18—Loop-free operations
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
第1节点装置从第1端口发送第1帧,将判别第1端口的信息和识别第1帧的第1识别信息建立对应关系地保存为循环检测信息,从第2节点装置接收第2帧。在识别第2帧的第2识别信息与第1识别信息一致的情况下,第1节点装置对与第2帧的目的地节点装置建立了对应关系而保存的端口状态信息进行更新,设为不可从第1端口进行发送。并且,根据更新后的信息,第1节点装置选择可发送的第2端口来发送第2帧。
Description
技术领域
本发明涉及包含多个节点装置的网络中的通信。
背景技术
关于网络中的通信,从故障发生时的控制、用于容错性的冗长化、路径控制等各种观点出发,开发有各种技术。
例如,公开有用于实现网络成本的降低、尽早进行故障判定的如下那样的通信系统。即,发送侧路由器A将包含用户包的包,以短于预先与接收侧路由器B之间规定的故障判定时间的时间间隔,连续地发送至路由器B。路由器B具备在故障判定时间到时的定时器。
如果路由器A、B间的网络正常,则路由器B会在定时器到时前接收包。利用这一点,路由器B如果在定时器到时前接收到包,则判断为“网络正常”,并对定时器复位。另外,如果在接收到包之前定时器到时,则路由器B能够判断为“网络不正常”,因此判定为“发生了故障”。这样,通过将定时器的判定应用于包含用户包的包的收发,能够避免网络二重化并实现成本的降低,同时能够尽早进行网络的故障判定。
另外,还公开了一种用于解决“在以往的互联网电话系统中,无法区别是由于无音压缩导致没有语音包的接收,还是由于在互联网内发生了异常而导致无法接收到语音包”这样的课题的如下的电话系统。
即,当在电话机与电话机之间建立了通话状态时,呼叫侧媒体网关经由互联网将监视包周期性地发送到被叫侧媒体网关。被叫侧媒体网关若接收到监视包,则经由互联网将响应包向呼叫侧媒体网关发送。2个媒体网关在要接收的响应包、监视包没有被周期性地输入的次数达到了规定的阈值时,向呼叫代理进行包非接收通知。呼叫代理在接收到包非接收通知时,控制2个媒体网关进行切断处理。
另外,还公开有用于解决“即使在路由器侧通信路径被切换,在路由器 以外的其他装置中也无法识别该通信路径的切换”这样的课题的如下的通信路径切换控制系统。
通信路径切换控制系统具有收容连接第1PBX(Private Branch eXchange,专用交换机)的第1IPGW(Internet Protocol GateWay,IP网关)、和掌管网络与第1IPGW间的通信接口的第1路由器。并且,当在网络内的多个通信路径内检测出当前使用中的通信路径中的线路故障时,第1路由器从多个通信路径中搜索绕过线路故障的通信路径,并切换连接到该搜索到的通信路径。第1路由器具备切换信息通知部,若切换连接到了搜索到的通信路径,则该切换信息通知部将与该切换连接到的通信路径有关的路径切换信息通知给第1IPGW。另外,第1IPGW具备线路控制部,若检测到了来自切换信息通知部的路径切换信息,则该线路控制部根据该路径切换信息,对第1PBX进行线路控制。
然而,近年来自组织(ad-hoc)网络受到了重视。关于自组织无线通信网络中的最佳路由,公开有用于计算节点中的最佳路由的如下的系统和方法。
即,对于在该系统和方法中使用的路由度量值来说,如果慎重地进行选择,则能够使网络具有稳定性,或者提供自行恢复和负荷平衡那样的功能。路由度量值作为基于跳数、数据速率、链路品质、和装置种类那样的许多要素的标量数而被计算。能够通过对问候报文(Hello Message)、或者根据需要对其他路由报文进行评价来决定各要素。
另外,除了无线自组织网络以外,也对有线自组织网络进行了研究,也尝试了针对传感器网络的应用。
例如,在被称为“S-wire”的有线式传感器网络中,各节点装置以有线方式与多个节点装置连接,利用有线方式进行数据通信和电源的供给。作为有线式的优点,列举有如下几点,即能够将传感器埋入土中、水中或构造物等中,或者能够进行切断等的检测。
专利文献1:日本特开2003-273964号公报
专利文献2:日本特开2002-271399号公报
专利文献3:日本特开2006-340165号公报
专利文献4:日本特开2006-526937号公报
非专利文献1:岩尾忠重,山田健二,野村浩司,細川武司著“多用途向け有線センサネツトワ一ク:S-wire”杂志FUJITSU,2006年5月号(VOL.57,NO.3),285~290页
如上述示例的那样,对于包含多个节点装置的网络中的通信,从故障发生时的控制、用于容错性的冗长化、路径控制等各种观点出发进行了技术开发。但是,在包含多个节点装置的网络系统中,在节点装置之间,一般进行如下处理,即通过进行与路径有关的信息的交互来实现分散协调,还有对各个节点装置的独立性(self-contained)进行提高的余地。
发明内容
于是,本发明的目的在于,提供一种技术,在包含多个节点装置的网络中,各个节点装置根据能够独立地得到的信息进行动作,由此作为网络整体而实现适当的分散协调。
根据本发明的一个方面,提供包含多个节点装置的网络中的第1节点装置,该多个节点装置包含被有线连接的上述第1节点装置和第2节点装置。
上述第1节点装置具备多个端口、保存循环检测信息的循环检测信息保存单元、保存路由信息的路由信息保存单元、接收单元、路由信息更新单元、和发送单元。
上述多个端口分别是用于将上述多个节点装置中的上述第1节点装置以外的其他节点装置和上述第1节点装置进行有线连接的端口。
另外,上述循环检测信息将用于从上述多个端口中判别上述第1节点装置发送了第1帧时的发送目的地端口、即第1端口的发送目的地端口判别信息、和用于唯一识别上述第1帧的第1识别信息建立了对应关系。
并且,上述路由信息将表示可否从上述多个端口的每个发送帧的信息、即状态信息与上述多个节点装置的每个节点装置建立了对应关系。
上述接收单元从上述第2节点装置接收第2帧,该第2帧包含用于唯一识别上述第2帧的第2识别信息。
并且,在上述第2识别信息与上述第1识别信息一致的情况下,该路由信息更新单元将通过上述路由信息与目的地节点装置建立了对应关系的上述状态信息更新为表示不可从上述第1端口发送帧,该目的地节点装置是上述多个节点装置中的任意一个、且是上述第2帧的目的地。
另外,上述发送单元根据通过上述路由信息与上述目的地节点装置建立了对应关系的上述状态信息,从上述多个端口中选择能够发送上述第2帧的第2端口。并且,上述发送单元从上述第2端口发送上述第2帧。
根据本发明的其他方面,提供了由上述第1节点装置执行的通信方法。
在第1帧在网络内进行循环并作为第2帧再次在第1节点装置中被接收到时,由于第2识别信息与第1识别信息一致,所以基于路由信息更新单元的更新被进行。其结果,第1节点装置能够避开产生循环的路径上的端口来发送第2帧。
另外,第1节点装置所利用的循环检测信息和路由信息是能够由第1节点装置自身独立地得到的信息。也就是说,第1节点装置无需与其他节点装置交换第1和第2帧之外的、与路径有关的信息等,就能够得到循环检测信息和路由信息。
因此,在具备多个与第1节点装置同样的节点装置的网络中,由于根据能够由各个节点装置独立地得到的信息来进行动作,从而,作为网络整体,能够经由无循环的合适的路径来进行帧的中继。
附图说明
图1是说明节点装置的概要的结构图。
图2A是表示应用了本实施方式的节点装置的网络的例子的图。
图2B是说明故障发生时的替代路径搜索的概念图。
图3是说明帧的形式的图。
图4是说明广播帧的拥塞被防止的情况的图。
图5是节点装置的硬件构成图。
图6是节点装置的功能构成图。
图7是表示暂停状态表的例子的图。
图8是表示端口链路状态表的例子的图。
图9是表示MAC表的例子的图。
图10是表示暂停状态管理数据的例子的图。
图11A是说明路由处理的流程图(之一)。
图11B是说明路由处理的流程图(之二)。
图11C是说明路由处理的流程图(之三)。
图11D是说明路由处理的流程图(之四)。
图12是说明路由表的时效(aging)的流程图。
图13是说明路由表的项的定时器设定的流程图。
图14是说明循环检测表的时效的流程图。
图15是说明循环检测表的项的定时器设定的流程图。
图16是暂停状态解除处理的流程图。
图17是说明节点装置对该节点装置自身进行的暂停控制处理的流程图。
图18是暂停开始处理的流程图。
图19是暂停解除处理的流程图。
图20是端口监视处理的流程图。
具体实施方式
下面参照附图对实施方式进行详细的说明。说明的顺序如下所述。
首先,对一些用语进行定义,然后参照图1对本实施方式的节点装置的构成概要进行说明。接着参照图2A、图2B和图4,对包含具有图1那样的组件的多个节点装置的网络中的分散协调动作的概要进行说明。同时,参照图3对帧形式的例子进行说明。
然后,参照图5和图6对节点装置的详细构成进行说明。并且,参照图7~图10,对节点装置所利用的数据中的、在图1中被省略的数据的具体例进行说明。
并且,参照图11A~图20的各流程图,对各个节点装置的动作的详细内容进行说明。在各个节点装置的动作的说明中,适当地参照图2A或者图4,对各个节点装置的动作、和由网络整体实现的分散协调动作之间的关联进行说明。然后,对本实施方式的节点装置进行概括,并且与一些技术进行对比来说明本实施方式的优点。最后,对本实施方式的变形例进行说明。
这里,对本实施方式的一些用语进行定义。
在本实施方式中,多个节点装置被包含在网络内。在后面,在第1节点装置和第2节点装置通过电缆直接连接的情况下,第1和第2节点装置被称为“邻接”。另外,有时将对第1节点装置来说的第2节点装置称为“邻接节点装置”。同样,对第2节点装置来说,第1节点装置是“邻接节点装置”。
另外,在本实施方式中,各种帧被处理。帧如下述那样根据几个观点而被分类。
帧能够根据是否包含图3所示的“自组织帧头”来分类。在后面,将包含自组织帧头的帧称为“自组织帧”。另一方面,作为不包含自组织帧头的帧的例子,例如有在周知的以太网(注册商标)中利用的以太网帧。
另外,自组织帧也可以进一步被分类成包含自组织帧头之后接着的以太网帧的通常帧、和在自组织帧头之后包含其他特定形式的控制数据的控 制帧。控制帧可以有多个种类,作为控制帧的一个例子有后述的“暂停帧”。
另外,帧也可以被分类成在网络内被广播的广播帧、和被单播的单播帧。另外,在后面进行了详细说明,暂停帧作为例外,被限定于邻接节点装置,而被广播。
在以下的说明中,根据需要会明确表示根据上述观点进行的帧的分类。另外,在根据上下文关系分类明确、或者与分类没有关系的地方,为了便于说明有时也单纯地记述为“帧”。
图1是说明节点装置的概要的构成图。
图1所示的节点装置100具有用于和邻接节点装置(图1中未图示)进行有线连接的多个端口101-1~101-x(1<x)、和进行帧的路由的路由引擎102。
图1的端口101-1~101-x是基于本实施方式的有线自组织网络用的端口。另外,在后述的图5中,与遵循一般的以太网标准的通用LAN(Local Area Network)端口区别开来,将图1的端口101-1~101-x记述为“有线自组织网络端口”。以后,在简记为“端口”的情况下,指的是基于本实施方式的有线自组织网络用的端口。
另外,节点装置100具备路由表103、广播管理表104、和循环检测表105各表,路由引擎102参照这些表进行路由。另外,路由引擎102也对这些表进行更新。
如图1所示那样,本实施方式的路由表103是将“目的地”和表示端口101-1~101-x的各自的状态的x个“端口状态”建立对应关系地进行存储的表。
在图1中,示例了包含n个项的路由表103。如与图11C一起在后面说明的那样,各项根据节点装置100所接收到的帧,在路由表103中被追加。另外,如与图12和图13一起在后面说明的那样,当在规定的时间内没有被访问时,各项被从路由表103删除。
在路由表103中,例如在第i个(1≤i≤n)项中,将端口101-1~101-x各自的状态RP1i~RPxi与目的地GDi建立了对应关系。
在此,目的地GDi是用于在包含和节点装置100同样的多个节点装置的有线自组织网络中,识别成为帧的目的地的节点装置的识别信息。在本实施方式中,各节点装置在有线自组织网络内被预先分配了唯一的3字节的ID(IDentification),在后面的说明中,将分配给节点装置的ID称为“节点ID”。目的地GDi具体为节点ID。
节点装置100利用端口101-1~101-x中的任意一个接收发往目的地GDi的帧,在要将接收到的帧进行中继时,路由引擎102参照路由表103。并且,路由引擎102根据在路由表103中与目的地GDi建立了对应关系的状态RP1i~RPxi,选择对接收到的帧进行发送(即输出)的端口。
在路由表103的第i个项中,第j个(1≤j≤x)端口101-j的状态RPji是“U”(Used,使用)、“E”(Empty,空闲)、“L”(Loop,循环)、“P”(Pause,暂停)、和“D”(Down,断开)这5个状态中的其中一种。
“U”表示使用状态。具体来讲,在端口101-j被实际用作节点装置100内的、用于中继发往由目的地GDi这样的节点ID所识别的其他节点装置的帧的发送目的地端口的情况下,状态RPji是“U”。也就是说,“U”状态是表示“可发送”的状态的例子。
“E”表示未使用状态。具体来讲,在端口101-j没有被作为节点装置100内的、用于中继发往由目的地GDi这样的节点ID所识别的其他节点装置的帧的发送目的地端口使用过的情况下,状态RPji是“E”。也就是说,“E”状态是表示“可发送”的状态的例子。
“L”表示循环状态。具体来讲,在下面的2个条件都成立时,状态RPji被更新成“L”。
·端口101-j曾经作为节点装置100内的、用于中继发往由目的地GDi这样的节点ID所识别的其他节点装置的帧的发送目的地端口被使用过。
·从端口101-j向由目的地GDi这样的节点ID所识别的其他节点装置发送了的帧在网络内循环并返回到节点装置100自身(即,被节点装置100再次接收到)。
另外,在状态RPji是“L”的情况下,状态RPji表示如下情况,即“由于若发往目的地GDi的帧被从端口101-j发送则进行循环,所以发往目的地GDi的帧不应该从端口101-j进行发送”。也就是说“L”状态是表示“不可发送”的状态的例子。
“P”表示暂停状态。具体来讲,在从端口101-j(即,从经由端口101-j连接的未图示的邻接节点装置)接收到“暂停请求”的情况下,状态RPji成为“P”。另外,“暂停请求”是如下的请求,即、用于由于帧的集中等而导致处理负荷较高的节点装置向邻接节点装置请求在一定期间内“停止”(pause)向本节点装置发送帧。关于暂停请求的详细内容会在后面与图16~图19一起进行说明,下面对其概要进行说明。
例如,假设经由端口101-j未图示的第2节点装置与图1的节点装置100连接。另外,在后面的说明中,将处理负荷超过了规定基准的状态称为“繁忙状态”。
第2节点装置在处于繁忙状态时,向多个邻接节点装置中的每个邻接节点装置发送暂停请求。暂停请求具体来讲包含指定上述的一定期间的长度的值,通过“暂停帧”这样的特定形式的自组织帧来表示。
因此,图1的节点装置100利用端口101-j接收暂停帧,识别为“第2节点装置当前处于繁忙状态”。即,节点装置100识别为,“在暂停帧所指定的上述的一定期间内,即使向端口101-j发送了帧,但由于第2节点装置由于过负荷而无法完全处理帧,所以不应该向端口101-j发送帧”。
并且,节点装置100的路由引擎102根据上述识别,在路由表103中将对应于端口101-j的状态RPji设定成“P”。通过以上说明可知,“P”是表示“不可发送”的状态的例子。
“D”表示链路断开状态。例如,在与端口101-j连接的电缆被物理切断的情况下等,当在端口101-j处无法在电气上检测到通过电缆被输送的信号的情况下,状态RPji成为“D”。“D”状态也是表示“不可发送”的状态的例子。
另外,“P”状态和“D”状态是与帧的目的地相独立的概念。但是,在本实施方式中,在路由表103中,有时某1个端口(例如端口101-j)的状 态RPj1~RPjn中的一部分成为“P”,一部分成为“P”以外。同样,在本实施方式中,也有时某1个端口(例如端口101-j)的状态RPj1~RPjn中的一部分成为“D”,一部分成为“D”以外。其原因在于,如后述那样,在本实施方式中,由于路由表103的项的更新以帧的接收为契机而进行,所以各项的更新时刻会有时差。
接着,对图1所示的其他表进行说明。
广播管理表104是将“MAC-SA(Media Access Contol Source Address,媒体访问控制地址)”和“时刻”建立对应关系地进行存储的表。在图1中,例示了包含a个项的广播管理表104。
如与图11B一起在后面说明的那样,各项根据节点装置100所接收到的广播帧,被追加在广播管理表104中。另外,虽然省略了图示,但是如后述那样,当在规定的时间内没有被访问过时,各项被从广播管理表104删除。
在广播管理表104中,例如在第i个(1≤i≤a)的项中,MAC地址MACSAi和时刻Ti被建立了对应关系。在此,MAC地址MACSAi是节点装置100接收到的广播帧的发送源节点装置的MAC地址。另外,时刻Ti是路由引擎102处理了该广播帧的时刻。
在节点装置100利用端口101-1~101-x中的任意一个接收到广播帧时,路由引擎102参照广播管理表104。并且,路由引擎102决定是将接收到的广播帧废弃来防止拥塞,还是对接收到的广播帧进行中继(即向与接收到该广播帧的端口不同的端口发送)。另外,如后面的详细说明那样,根据实施方式,仅通过循环检测表105也能够防止广播帧的拥塞。
循环检测表105是将表示“接收端口编号”和端口101-1~101-x的各自的状态的x个“端口状态”与“发送源”和“FID(Frame IDentification,帧识别)”的组建立对应关系地进行存储的表。
在图1中,示例了包含m个项的循环检测表105。如与图11B和图11C一起在后面说明的那样,各项,根据节点装置100接收到的帧,被追加到循环检测表105中。另外,如与图14和图15一起在后面说明的那样,各项若经过了规定的时间则被从循环检测表105删除。
在循环检测表105中,例如在第i个(1≤i≤m)项中,接收端口编号RCVPNi和端口101-1~101-x各自的状态LP1i~LPxi与发送源GSi和FIDi的组建立了对应关系。
这里,发送源GSi是用在包含和节点装置100同样的多个节点装置的有线自组织网络中识别作为帧的发送源的节点装置的识别信息,具体为节点ID。另外,FIDi是对发送源节点装置(即节点ID为GSi的节点装置)进行发送的帧分配的、用于唯一识别帧的识别信息。FIDi例如可以是序列编号。
在节点装置100利用端口101-1~101-x中的任意一个接收到帧,并要对接收到的帧进行中继时,路由引擎102除了参照路由表103以外,还参照循环检测表105。并且,路由引擎102也根据循环检测表105,选择对接收到的帧进行发送的端口。
循环检测表105的第i个项中的接收端口编号RCVPNi表示在与第i个项对应的帧在节点装置100中被接收到时,接收到该帧的端口。具体来讲,当在发送源节点装置(即由GSi这样的节点ID所识别的节点装置)中被分配了FIDi这样的FID的帧被在节点装置100的端口101-r(1≤r≤x)接收到时,接收端口编号RCVPNi是r。
在循环检测表105的第i个项中,第j个(1≤j≤x)端口101-j的状态LPji是“U”、“E”、或者“L”这3种状态中的任意一个。
与对路由表103进行的说明相同,“U”表示使用状态。在循环检测表105中,具体来讲,在下面的2个条件成立时,状态LPji是“U”。
·曾经由节点装置100中继过在由发送源GSi这样的节点ID所识别的发送源节点装置中被分配了FIDi这样的FID的帧。
·在进行该中继时,使用了端口101-j作为节点装置100内的发送目的地端口。
与对路由表103进行的说明相同,“E”表示未使用状态,在循环检测表105中,具体来讲,是如下的意思。即,如果曾经由节点装置100中继在由发送源GSi这样的节点ID所识别的发送源节点装置中被分配了FIDi 这样的FID的帧时的发送目的地端口不是端口101-j,则状态LPji是“E”。
与对路由表103进行的说明相同,“L”表示循环状态。在循环检测表105中,具体来讲,在下面的2个条件成立时,状态LPji成为“L”。
·节点装置100将端口101-j作为发送目的地端口中继过在由发送源GSi这样的节点ID所识别的发送源节点装置中被分配了FIDi这样的FID的帧。
·在中继后,该帧再次在节点装置100中被再次接收。
另外,在路由表103中,“U”状态和“E”状态,在“为可发送”、即“可作为发送目的地端口选择”的含义上是共同的。但是,在循环检测表105中,“U”状态和“E”状态如下述那样被严格区分。即,循环检测表105中的“U”状态表示如果假设以后会检测到循环,则向意味着“不可发送”的“L”状态转移的对象。与此相对,循环检测表105中的“E”状态表示,即使假设以后会检测到循环,在该循环被检测到的时间点,依然可以作为发送目的地端口选择。
接着,结合帧形式的例子,参照图2A~图4,对包含具有和图1相同的组件的多个节点装置的网络中的分散协调动作的概要进行说明。
图2A是表示应用了本实施方式的节点装置的网络的例子的图。
图2A的有线自组织网络200包含多个节点装置100a~100i。在有线自组织网络200中,节点装置100a~100i通过电缆(例如,铜电缆等金属线电缆、或者光纤电缆),在物理上被连接成网格状(也就是格子状)。
当然,有线自组织网络中的物理连接拓扑根据实施方式的不同是任意的,不用必须是网格状。
另外,节点装置100a~100i各自具有与图1相同的组件。另外,在图1中,节点装置100具有x个端口101-1~101-x,而在图2A中,具体表示了x=4的例子。
例如,节点装置100a具有4个端口101a-1~101a-4。其他节点装置100b~100i也是一样。另外,对于相互相同的组件,如“101-1”、“101a -1”、“101b-1”等那样,除了“a”或“b”等注脚以外分配相同的参照标记,有时会省略详细说明。
图2A所示的网格状的物理拓扑,具体来讲,通过下面那样的电缆布线来实现。
·节点装置100a和100d通过端口101a-1和101d-1之间的链路215被连接。
·节点装置100a和100b通过端口101a-4和101b-1之间的链路216被连接。
·节点装置100b和100e通过端口101b-2和101e-2之间的链路217被连接。
·节点装置100b和100c通过端口101b-4和101c-1之间的链路218被连接。
·节点装置100c和100f通过端口101c-3和101f-3之间的链路219被连接。
·节点装置100d和100g通过端口101d-2和101g-2之间的链路221被连接。
·节点装置100d和100e通过端口101d-4和101e-1之间的链路222被连接。
·节点装置100e和100h通过端口101e-3和101h-3之间的链路223被连接。
·节点装置100e和100f通过端口101e-4和101f-1之间的链路224被连接。
·节点装置100f和100i通过端口101f-4和101i-4之间的链路225被连接。
·节点装置100g和100h通过端口101g-4和101h-1之间的链路226被连接。
·节点装置100h和100i通过端口101h-4和101i-1之间的链路227被连接。
当然,根据实施方式,也可以通过利用电缆连接图2A所示例的以外的组合的端口之间来实现和图2A等价的网格状拓扑。
另外,在图2A的例子中,有线自组织网络200不是孤立的网络,其也与LAN或WAN(Wide Area Network,广域网)等其他网络(以下称为“外部网络”)相连接。
具体来讲,本实施方式的节点装置100a~100i除了具有图1所示的组件以外,还分别具有通用LAN端口106a~106i作为有线自组织网络200和外部网络之间的连接接口。在图2A中,用斜线表示通用LAN端口106a~106i,来与有线自组织网络端口101a-1~101i-4区别开来。另外,本实施方式中的通用LAN端口106a~106i是有线LAN端口,但是根据实施方式的不同,也可以用无线LAN接口来代替使用。
例如,在图2A的例子中,有线自组织网络200如下述那样与外部网络连接。即,经由链路211与PC(Personal Computer,个人电脑)201连接的L2SW(Layer 2 Switch,二层交换机)202,分别经由链路212和213与节点装置100a和100b各自的通用LAN端口106a和106b连接。另外,PC203、205、206,分别经由链路214、228、229与节点装置100c、100g、100h各自的通用LAN端口106c、106g、106h连接。
另外,L2SW202也可以进一步与未图示的路由器或未图示的其他PC连接。另外,PC203、205、和206也可以与未图示的其他外部网络连接。
另外,为了便于说明,在图2A中示例了包含9个节点装置100a~100i的有线自组织网络200,但是根据实施方式的不同,有线自组织网络例如也可以包含数千个~数十万个这样多的节点装置。
例如,本实施方式的有线自组织网络也可以适用于传感器网络、即用于从配置在各处的多个传感器收集各种信息的网络。在这种情况下,有线自组织网络也可以对应于多个传感器而包含数千个~数十万个程度多的节点装置。在传感器网络中,例如利用图像传感器、温度传感器、湿度传感器、压力传感器、加速度传感器等任意种类的传感器。
图2A也表示了基于本实施方式的有线自组织网络的、应用于传感器网络的应用例之一。即,在图2A中,具备LAN接口的传感器204和207分别经由链路220和230与节点装置100e和100i各自的通用LAN端口106e和106i,连接。传感器204和207将表示检测到的结果的数据作为以太网帧,经由LAN接口进行输出。这些传感器204和207的种类是任意的。
在利用了图2A所示那样的基于本实施方式的有线自组织网络时,由于即使是如果是无线通信则难以通信的环境而如果利用有线通信则可以进行通信的情况较多,所以即使在恶劣的环境下也能够构筑传感器网络。
例如,在田地或山崖等的土中、水田、江河或海等的水中、建筑物的墙壁或柱等的构造物中等,也可以埋入传感器、和经由通用LAN端口与该传感器连接的节点装置。即使在这样的情况下,节点装置也可以利用有线连接与其他节点装置可靠地进行通信。因此,在利用了基于本实施方式的有线自组织网络时,即使在土中、水中、构造物中等的难以进行无线通信的环境下,也能够构筑传感器网络。
以上对图2A中的网络构成进行了说明,因此接着对图2A的有线自组织网络200中的分散协调动作的概要进行说明。另外,各个节点装置100a~100i的详细动作会在后面与图11A~图20的流程图一起进行说明。
在后面的说明中,以PC203向PC205发送帧的情况为例,对故障发生时的、有线自组织网络200中的帧中继路径的切换进行说明。
若PC203经由链路214发送了以太网帧,则节点装置100c接收以太网帧,并向接收到的以太网帧添加自组织帧头。
并且,通过各节点装置按照图11A~图20的流程图进行动作而实现的自主分散协调,自组织帧在有线自组织网络200中被从节点装置100c向节点装置100g中继。并且,节点装置100g从自组织帧中去除自组织帧头。其结果,得到的以太网帧经由链路228被从节点装置100g输出到PC205。
设为,在图2A所示的各链路正常的情况下,作为从节点装置100c向节点装置100g的中继路径,例如选择由链路218、216、215、和221构成的路径。该路径通过下述那样的分散协调而被选择。
从PC203接收到帧的节点装置100c将经由链路218与节点装置100b连接的端口101c-1选择为帧的发送目的地端口。于是,从节点装置100c接收到帧的节点装置100b将经由链路216与节点装置100a连接的端口101b-1选择为帧的发送目的地端口。
并且,从节点装置100b接收到帧的节点装置100a将经由链路215与节点装置100d连接的端口101a-1选择为帧的发送目的地端口。接着,从节点装置100a接收到帧的节点装置100d将经由链路221与节点装置100g连接的端口101d-2选择为帧的发送目的地端口。
然而,假设在某个时刻链路215发生了物理故障。若在链路215发生了故障后,PC203要再次向PC205发送帧,则有线自组织网络200内的中继路径通过以下那样的分散协调控制被切换。
节点装置100c与正常时同样地将端口101c-1选择为帧的发送目的地端口,节点装置100b也与正常时同样地将端口101b-1选择为帧的发送目的地端口。于是,节点装置100a接收帧。
但是,如图2A所示那样,节点装置100a在有线自组织网络200内,仅与节点装置100b和100d这2个节点装置连接,而与节点装置100d之间的链路215发生了故障。因此,节点装置100a无法经由正常的链路,将经由链路216从节点装置100b接收到的帧发送到节点装置100b以外的有线自组织网络200内的节点装置。
于是,节点装置100a为了通知从节点装置100a自身无法转送帧这一情况,而经由链路216将帧向节点装置100b返送。于是,节点装置100b接收节点装置100b自身发送过的帧。
因此,节点装置100b识别为在路由表103中与节点装置100g建立了对应关系的端口状态信息中端口101b-1是“L”状态(即循环状态)。即节点装置100b识别为:“在对在有线自组织网络200内的最终的目的地是节点装置100g的帧进行中继时,不应该向与节点装置100a连接的端口101b-1发送帧”。
按照上述的识别,节点装置100b寻找能够作为帧的发送目的地端口利用的、端口101b-1以外的正常的端口。在这种情况下,找到了经由正常 的链路217与节点装置100e连接的端口101b-2。
因此,节点装置100b这次将从节点装置100a返回的帧向端口101b-2发送。
于是,节点装置100e接收帧。在图2A的例子中,与节点装置100e连接的各链路正常。因此,节点装置100e例如可以将经由链路223与节点装置100h连接的端口101e-3选择为帧的发送目的地端口。
作为该选择的结果,帧被从端口101e-3发送,并经由链路223被节点装置100h接收。于是,节点装置100h选择经由正常的链路226与节点装置100g连接的端口101h-1,并从端口101h-1发送帧。
其结果,节点装置100g能够接收帧。这样,即使在到目前为止使用的路径上的链路215发生了故障的情况下,通过有线自组织网络200内的各节点装置的分散协调,也会自动地进行路径的切换。
另外,如图1所示那样,由于路由表103按照目的地存有项,所以根据帧的目的地不同,节点装置100b有时也会将端口101b-1选择为发送目的地端口。也就是说,如上述那样在节点装置100b中,即使在对应于节点装置100g,端口101b-1被识别为“L”状态的情况下,节点装置100b也能够将发往节点装置100a的帧从端口101b-1进行发送。这样,根据本实施方式,依赖于帧的目的地而对是否能从某个端口发送帧进行管理。
接着,参照图2B,从其他的观点对以上说明的路径的切换进行说明。
图2B是说明故障发生时的替代路径搜索的概念图。在图2B中,示出了将在上述的例子中作为有线自组织网络200内的发送源的节点装置100c设为根节点,将作为有线自组织网络200内的发送目的地的节点装置100g设为叶节点的搜索树300。
为了便于说明,将搜索树300中的某个节点设为“第1节点”,将与第1节点相当的有线自组织网络200内的节点装置设为“第1节点装置”。另外,在第1节点装置的路由表103中,在作为目的地的节点装置100g所对应的项中,设定其他节点装置(为了便于说明称为“第2节点装置”)的状态是“U”状态或者“E”状态。此时,在搜索树300中,第1节点具有与 第2节点装置对应的子节点。
针对图2A说明过的链路215的故障发生前的中继路径是作为有线自组织网络200中的分散协调的结果的对应图2B的搜索路径301而找到的路径。搜索路径301是从作为搜索树300中的根节点的节点装置100c,经由节点装置100b、100a、和100d而到达作为搜索树300中的叶节点的节点装置100g的路径。
另外,针对图2A说明过的链路215发生了故障时的路径的切换(即替代路径搜索)与图2B的搜索路径302相对应。搜索路径302如图2B所示那样包含回溯(backtrack)303。
即,可以认为“针对图2A说明过的路径的切换,从有线自组织网络200整体来看,相当于进行搜索树300中的包含回溯303的深度优先搜索”。若包含回溯303的搜索路径302到达了是叶节点的节点装置100g,则搜索成功,有线自组织网络200中的帧的中继路径被建立。
在搜索树300中在节点装置100a处产生了回溯303的情况,对应于在图2A的说明中节点装置100a将帧返送回节点装置100b的情况。并且,通过搜索树300的搜索路径302最终发现的、从搜索树300中的根节点到叶节点的路径相当于从有线自组织网络200中的节点装置100c到节点装置100g的新的帧中继路径。也就是说,如图2B所示那样,通过节点装置100c、100b、100e、100h、100g的路径作为新的帧中继路径被发现。
通过以上的说明可知,从发送源的节点装置100c到发送目的地的节点装置100g的路径只要在有线自组织网络200中存在1个,作为深度优先搜索的结果,路径就一定会被发现。
接着,参照图3,对图2A中的有线自组织网络200的内侧和外侧的帧的形式的区别进行说明。图3是说明帧的形式的图。另外,基于本实施方式的“自组织帧”是在有线自组织网络内的节点装置间被收发的帧。
如图3所示那样,自组织帧400是如下形式的帧,即在一般的太网帧420的前面添加作为本实施方式所定义的特定形式的帧头的“自组织帧头”而得到的帧。也就是说,自组织帧头410是作为外部网络的以太网和本实施方式的有线自组织网络之间的接口而发挥作用的信息。
本实施方式的自组织帧头410如图3所示那样是14字节,包含GD411、GS412、类型413、FID414、TTL415、长度416、FCS417各字段。另外,在后面进行详细说明,自组织帧头410由有线自组织网络内的节点装置提供。另外,在后面的说明中为了简化记述,例如有时会将“GD字段”简记为“GD”。
在3字节的GD(Global Destination:全局目的地)411中,指定了用于在有线自组织网络内唯一识别有线自组织网络内的帧的发送源的节点装置的识别信息(例如节点ID)。另外,在3字节的GS(Global Source:全局源)412中,指定了用于在有线自组织网络内唯一识别有线自组织网络内的帧的发送目的地的节点装置的识别信息(例如节点ID)。
例如,在图2A的例子中,在经由有线自组织网络200发送从PC203到PC205的帧的情况下,有线自组织网络200内的发送源的节点装置是与PC203连接的节点装置100c。并且,有线自组织网络200内的发送目的地的节点装置是与PC205连接的节点装置100g。
因此,在这种情况下,在有线自组织网络200内被发送的自组织帧400中,在GD411指定节点装置100c的节点ID。另外,在GS412指定节点装置100g的节点ID。
在GD411和GS412被指定的值如上述那样,例如是预先被分配给各节点装置的节点ID,节点ID也可以是识别编号。或者,如果有线自组织网络内的各节点装置是厂商相同的产品,则也可以将节点装置的MAC地址的下位3字节用作GD411和GS412用的识别信息。其原因在于,MAC地址的上位3字节是OUI(OrganizationallyUnique Identifier,组织唯一标志符),下位3字节在厂商内是唯一的。
另外,结合图2A的例子,如下述那样对“GD”和“GS”这样的名称中的“全局”的用语的含意进行说明。
当在有线自组织网络200内从节点装置100c向节点装置100g发送自组织帧400时,节点装置100c的直接的发送目的地是与节点装置100c邻接的节点装置(例如节点装置100b)。于是,在对作为直接的发送目的地的节点装置100b和作为最终的发送目的地的节点装置100g进行明确区分 的情况下,将有线自组织网络200内的作为最终的发送目的地的节点装置100g称为“全局发送目的地”。并且,将通过电缆与节点装置100c直接连接的、与节点装置100c邻接的节点装置100b称为“本地发送目的地”。
因此,对于节点装置100b来说,节点装置100c是全局发送源,也是本地发送源。另外,对于节点装置100g来说,节点装置100c是全局发送源,(由于节点装置100g和100c并没有直接连接)而不是本地发送源。另外,根据图2A也可以明白,在有线自组织网络中,本地发送目的地与帧的发送目的地的端口一一对应,本地发送源与接收到帧的端口一一对应。
在此返回图3的说明,在4位的类型413中,指定了识别自组织帧400的类型(种类)的值。例如,根据实施方式,下述示例那样的一些识别类型的值在类型413中被指定。
·通常帧(在自组织帧头410后接着包含有以太网帧420的自组织帧400的一种)
·暂停帧(在自组织帧头410后接着包含有不是以太网帧420的规定形式的数据的自组织帧的一种)
·其他一些种类的控制帧(在自组织帧头410后接着包含有不是以太网帧420的规定形式的数据的自组织帧的一种)
·节点装置经由通用LAN端口接收到的广播帧(在自组织帧头410后接着包含有以太网帧420的自组织帧400的一种)
·起因于节点装置自身的广播帧(在自组织帧头410后接着包含有以太网帧420的自组织帧400的一种)
另外,在12位的FID(Frame Identification:帧识别)414中,指定了由GS412的值所识别的发送源的节点装置对自组织帧400分配的识别信息。在FID414中指定的值例如可以是节点装置利用未图示的内置计数电路生成的序列编号。
另外,在2字节的TTL(Time To Live:生存时间)415中,根据有线自组织网络内的跳数指定了自组织帧400的有效期间。当自组织帧400 在有线自组织网络内每跳(hop)一次时,TTL415的值就会由节点装置进行递减计数。
TTL415的初始值(即,由GS412的值所识别的发送源的节点装置分配的值)在本实施方式中是2字节的所有位都为“1”的值(即65535)。由于如此大的值被设定为TTL415的初始值,所以本实施方式也可以适用于包含数十万节点装置的有线自组织网络。当然,根据实施方式,TTL415的初始值是任意的。
在2字节的长度416中,指定以字节为单位数出自组织帧头410以外的部分的长度(例如,在图3所例示的自组织帧400的情况下以太网帧420的长度)而得到的值。
另外,2字节的FCS(Frame Check Sequence:帧校验序列)417指定了自组织帧头410的、根据从GD411到长度416为止的各字段得到的、CRC(Cyclic Redundancy Check:循环冗余校验)码等检错码。
以太网帧420包含以下各字段。
·6字节的MAC-DA(Media Access Control Destination Address:媒体存取控制目的地地址)421
·6字节的MAC-SA(Media Access Control Source Address:媒体存取控制源地址)422
·2字节的类型/长度423
·46~1500字节的长度可变的L3(Layer 3,三层)包424
·4字节的FCS425
由于以太网帧420的形式众所周知,所以省略其详细说明,在此对例如在图2A的例子中经由有线自组织网络200从PC203向PC205发送帧的情况下的具体例进行说明。
即,在PC203中,生成在MAC-DA421中指定了PC205的MAC地址、在MAC-SA422中指定了PC203自身的MAC地址的以太网帧420,并经由链路214将其发送到节点装置100c。于是,节点装置100c将如上 述说明那样的自组织帧头410添加在以太网帧420的前面来作成自组织帧400。
自组织帧400在有线自组织网络200内被向节点装置100g发送,节点装置100g经由链路228,将除去了自组织帧头410的以太网帧420向PC205输出。
另外,当在自组织帧头410中的类型413指定了表示暂停帧或其他控制帧的值的情况下,自组织帧在自组织帧头410的后面包含有以太网帧420以外的规定形式的净荷(pay-load)。
接着,参照图4,对广播帧被发送时的、本实施方式的有线自组织网络整体的动作进行说明。图4是说明广播帧的拥塞被防止的情况的图。
图4的有线自组织网络250包含分别具有与图1的节点装置100同样的各组件的多个节点装置100p~100t。有线自组织网络250内的节点装置间如下述那样被物理连接。
·节点装置100p与节点装置100q连接。
·节点装置100q除了与上述的节点装置100p连接以外,还与节点装置100r和100s连接。
·节点装置100r除了与上述的节点装置100q连接以外,还与节点装置100s和100t连接。
·节点装置100s除了与上述的节点装置100q和100r连接以外,还与节点装置100t连接。
·节点装置100t如上述那样,与节点装置100r和100s连接。
例如设定,在如以上那样的物理拓扑的有线自组织网络250中,从节点装置100p发送了广播帧。另外,“广播帧”是在MAC-DA421中指定了广播地址(即所有位的值都为1的地址)的以太网帧或者自组织帧。
例如,节点装置100p在图4中经由通用LAN端口与未图示的外部设备(PC或者传感器等)连接。并且,该外部设备将在MAC-DA421中指定了广播地址的以太网帧420向节点装置100p发送。
于是,节点装置100p将自组织帧头410添加在以太网帧420的前面来作成自组织帧400。这里作成的自组织帧400是广播帧。节点装置100p为了将作成的自组织帧400向有线自组织网络250内广播,而在步骤S101中向节点装置100q进行发送。
于是,节点装置100q在步骤S102中向节点装置100r发送广播帧,并且在步骤S103中向节点装置100s发送广播帧。
另外,从节点装置100q接收到广播帧的节点装置100r在步骤S104中将广播帧发送到节点装置100s。但是,由于节点装置100s已经在步骤S103中从节点装置100q接收到了广播帧,所以废弃在步骤S104中从节点装置100r接收到的广播帧。
具体来讲,节点装置100s将在步骤S103中接收到的广播帧的MAC-SA422的值与进行步骤S103的接收处理的时刻建立对应关系地存储在图1的广播管理表104中。另外,步骤S103和S104几乎同时被执行。
因此,节点装置100s若在步骤S104中接收到广播帧,则将接收到的广播帧的MAC-SA422的值作为检索关键词来对广播管理表104进行检索,从而得到建立了对应关系的时刻。并且,在正在执行步骤S104的当前的时刻与得到的时刻之差短于规定的时间的情况下,节点装置100s将在步骤S104中接收到的广播帧废弃。
另外,节点装置100s如步骤S105所示那样,将在步骤S103中从节点装置100q接收到的广播帧向节点装置100r发送。但是,节点装置100r在步骤S102中已经从节点装置100q接收到了广播帧,并在步骤S104中已经发送了广播帧。因此,节点装置100r废弃在步骤S105中从节点装置100s接收到的广播帧。节点装置100r进行的废弃具体来讲如下述那样被实现。
节点装置100r在步骤S104中已经向节点装置100s发送了广播帧。因此,节点装置100r在图1的循环检测表105中具有包含广播帧的GS412的值和FID414的值的项。
在步骤S105中,节点装置100r将从节点装置100s接收到的广播帧的GS412的值和FID414的值作为检索关键词对循环检测表105进行检索。 于是,节点装置100r确认了与检索关键词一致的项存在这一情况。也就是说,节点装置100r识别为“在步骤S104中由节点装置100r自身发送过的广播帧在有线自组织网络250内进行循环,并返回到节点装置100r自身”。作为该识别的结果,在步骤S105中节点装置100r废弃从节点装置100s接收到的广播帧。
另外,根据实施方式的不同,也会有在步骤S104的接收前先进行步骤S105的发送,而在这种情况下,节点装置100s根据循环检测表105废弃广播帧。
另外,节点装置100r如步骤S106所示那样,将在步骤S102中从节点装置100q接收到的广播帧也向节点装置100t发送。
并且,节点装置100s如步骤S107所示那样,将在步骤S103中从节点装置100q接收到的广播帧也向节点装置100t发送。但是,节点装置100t在步骤S106中已经接收到了广播帧。因此,与步骤S104中的节点装置100s同样,节点装置100t在步骤S107中参照广播管理表104,废弃从节点装置100s接收到的广播帧。
另外,节点装置100t如步骤S108所示那样,将在步骤S106中从节点装置100r接收到的广播帧向节点装置100s发送。但是,节点装置100s在步骤S105和S107中已经发送了广播帧。因此,与步骤S105中的节点装置100r同样,节点装置100s在步骤S108中参照循环检测表105,将从节点装置100t接收到的广播帧废弃。
根据实施方式的不同,也可能在步骤S107的发送前先进行步骤S108的接收。但是,在这种情况下,由于节点装置100s在步骤S105中已经发送了广播帧,所以也可以根据循环检测表105来适当地废弃来自节点装置100t的广播帧。
如上所述,根据本实施方式,各个节点装置适当地参照广播管理表104或者循环检测表105,判断是否将接收到的广播帧废弃。并且,各个节点装置仅在不废弃广播帧的情况下,才向邻接节点装置发送广播帧。
其结果,广播帧到达有线自组织网络250内的全部节点装置。并且,广播帧在有线自组织网络250内无限地持续循环的状态(即广播帧的拥塞) 被防止。拥塞的防止是基于有线自组织网络250内的各节点装置的分散协调的结果。
以上,参照图2A~图4对包含多个具有图1的各组件的节点装置的有线自组织网络中的分散协调的概要进行了说明。下面详细说明用于实现上述那样的分散协调的各个节点装置的具体构成以及动作。
图5是节点装置的硬件构成图。图5表示了实现图1的节点装置100的具体的硬件构成例。
图5的节点装置100具备用于与图5中未图示的邻接节点装置进行有线连接的多个有线自组织网络端口101-1~101-x(在图1中简记为“端口”)。另外,图5的节点装置100具备用于与图5中未图示的外部设备(例如PC、L2SW、传感器等)进行有线连接的、与图2A所例示的通用LAN端口106a~106i同样的通用LAN端口106。
并且,图5的节点装置100具备分别与有线自组织网络端口101-1~101-x连接的多个PHY(PHYsical layer,物理层)芯片111-1~111-x。另外,节点装置100具备与通用LAN端口106连接的L2SW(Layer 2Switch.二层交换机)部112。
另外,节点装置100具备实现图1的路由引擎102的FPGA(Field Programmable Gate Array,现场可编程门阵列)113,并且也具备MPU(MicroProcessing Unit,微处理单元)114和各种存储装置。
具体来讲,节点装置100具备能够由FPGA113访问的CAM(Content Addressable Memory,内容可寻址存储器)115、SRAM(Static Random Access Memory,静态随机存取存储器)116和SDRAM(Synchronous Dynamic Random Access Memory,同步动态随机存取存储器)117。另外,在本实施方式中,作为CAM115的检索结果而得到的地址是SRAM116的地址。另外,图1的路由表103、广播管理表104、和循环检测表105在本实施方式中通过CAM115和SRAM116来实现。
另外,节点装置100具备能够由MPU114访问的DDR(Double Data Rate,双倍速率)2·SDRAM118和闪存119。作为非易失性存储器之一的闪存119中,例如存储有节点装置100自身的节点ID、节点装置100自身 的MAC地址、和MPU114所执行的固件程序等。DDR2·SDRAM118作为MPU114执行固件程序时的作业区域而被使用。
另外,节点装置100还具备与L2SW部112连接的PHY芯片120。
并且,PHY芯片111-1~111-x各自通过作为物理层和MAC子层之间的接口的MII(Media Independent Interface,介质无关接口)121-1~121-x,分别与FPGA113连接。另外,L2SW部112和FPGA113之间也通过MII122被连接。
FPGA113和MPU114之间利用PCI(Peripheral Component Interconnect,外围组件接口技术)总线123进行连接,并且也通过MII124而被连接。与L2SW部112连接的PHY芯片120通过MII125与MPU114连接。
在本实施方式中,通过MII124与FPGA113连接的MPU114的内部连接端口114a、和通过MII125与PHY芯片120连接的MPU114的内部连接端口114b被分别分配了MAC地址。
另外,在节点装置100内的帧的转送路径如下述那样存在多种。
(1)由有线自组织网络端口101-i(1≤i≤x)接收到的帧经由PHY芯片111-i和MII121-i被输入到FPGA113。并且,帧从FPGA113经由MII121-j(1≤j≤x)而输出到PHY芯片111-j,并被从有线自组织网络端口101-j发送。
(2)由有线自组织网络端口101-i(1≤i≤x)接收到的帧经由PHY芯片111-i和MII121-i被输入到FPGA113。并且,帧经由MII122被输出到L2SW部112,并被从通用LAN端口106发送。
(3)由有线自组织网络端口101-i(1≤i≤x)接收到的帧经由PHY芯片111-i和MII121-i被输入到FPGA113。并且,帧经由MII124被输出到MPU114,并被MPU114处理。
(4)由通用LAN端口106接收到的帧经由L2SW部112和MII122被输入到FPGA113。并且,帧被从FPGA113经由MII121-j(1≤j≤x)输出到PHY芯片111-j,并被从有线自组织网络端口101-j发送。
(5)由通用LAN端口106接收到的帧经由L2SW部112、PHY芯片120和MII125被输入到MPU114,并被MPU114处理。
(6)MPU114生成帧,并经由MII124输出到FPGA113。并且,帧被从FPGA113经由MII121-j(1≤j≤x)输出到PHY芯片111-j,并被从有线自组织网络端口101-j发送。
(7)MPU114生成帧,并经由MII125输出到PHY芯片120。并且,帧被从PHY芯片120输出到L2SW部112,并被从通用LAN端口106发送。
另外,L2SW部112能够从在上述(7)的转送路径中接收的帧中学习MPU114的内部连接端口114b的MAC地址。因此,如果由通用LAN端口106接收到的帧的MAC-DA421的值与内部连接端口114b的MAC地址一致,则L2SW部112通过上述(5)的转送路径将帧输出到PHY芯片120。另一方面,如果由通用LAN端口106接收到的帧的MAC-DA421的值与内部连接端口114b的MAC地址不同,则L2SW部112通过上述(4)的转送路径将帧输出到FPGA113。
接着,对具有图5的各种硬件的节点装置100的功能进行说明。
图6是节点装置的功能构成图。另外,在图6中,用虚线表示各功能块和图5的硬件之间的关联,与通用LAN端口106有关的部分被省略。
如图6所示那样,节点装置100具备对自组织帧400进行接收的接收部131。具体来讲,接收部131包含多个用于从节点装置100的多个邻接节点装置(图6中未图示)分别接收自组织帧400的接收端口132-1~132-x。
另外,第i个接收端口132-i(1≤i≤x)通过有线自组织网络端口101-i和PHY芯片111-i来实现。在图6中,为了便于图示,将有线自组织网络端口101-1~101-x统一表示为“端口101”,将PHY芯片111-1~111-x统一表示为“PHY芯片111”。
另外,节点装置100具备将接收部131接收到的自组织帧400按照类型、目的地等信息进行分类的接收帧控制部133。
另外,节点装置100具备对将节点装置100自身作为目的地的自组织帧400进行处理的上位层处理部134。另外,“上位层”是指处于比规定自组织帧400的MAC子层更上位的层。
在接收部131接收到的自组织帧400的GD411的值与节点装置100自身的节点ID一致的情况下,接收帧控制部133将自组织帧400输出到上位层处理部134。并且,上位层处理部134从自组织帧400中取出以太网帧420进行处理。上位层处理部134通过MPU114、DDR2·SDRAM118、和闪存119来实现。
另外,节点装置100具备通过CAM115和SRAM116来实现的表保存部135。在表保存部135中,保存有图1的路由表103、广播管理表104、和循环检测表105。另外,与图7~图9一起在后面说明的各表也被保存在表保存部135中。
节点装置100还具备通过对表保存部135所保存的各种表的项进行生成、更新、删除来对各种表的内容进行控制的表控制部136。表控制部136具体来讲,能够进行CAM115的检索、以及对作为检索结果而得到的SRAM116的地址的访问。
另外,节点装置100还具备端口监视部137、端口选择部138、定时器139、和发送帧控制部140(另外,上述各部的功能会在后面进行说明)。
表控制部136按照由接收帧控制部133、端口监视部137、端口选择部138、定时器139、和发送帧控制部140提供的控制信息来对各种表的内容进行控制。具体的控制会与图11A~图20的流程图一起在后面进行说明。
接收帧控制部133、表控制部136、端口监视部137、端口选择部138、定时器139、和发送帧控制部140在本实施方式中通过FPGA113来实现。
节点装置100还具备发送自组织帧400的发送部141。
具体来讲,发送部141包含对自组织帧400进行缓冲的缓冲部142。缓冲部142例如可以通过SDRAM117来实现。缓冲部142也可以对应各发送端口143-1~143-x来将项分段。
另外,根据实施方式的不同,接收部131还可以具有接收用的其他缓冲部。
另外,发送部141包含向节点装置100的邻接节点装置(图6中未图示)分别发送自组织帧400的多个发送端口143-1~143-x。发送端口143-1~143-x读取被缓冲于缓冲部142的自组织帧400,并向图6中未图示的邻接节点装置发送读取出的自组织帧400。
另外,第i个发送端口143-i(1≤i≤x)通过有线自组织网络端口101-i和PHY芯片111-i来实现。也就是说,实现接收端口132-i和发送端口143-i的硬件是共同的。
这里,对在上述中省略了说明的端口监视部137、端口选择部138、定时器139、和发送帧控制部140的功能进行说明。
端口监视部137监视接收部131的各接收端口132-1~132-x、发送部141的缓冲部142、和发送部141的各发送端口143-1~143-x各自的状态。
例如,PHY芯片111-i也可以检测与有线自组织网络端口101-i连接的链路是否断开,并将检测结果向FPGA113(或者FPGA113能够访问的规定的寄存器等)输出。通过FPGA113实现的端口监视部137对从PHY芯片111-i输出的检测结果进行监视,由此来监视接收端口132-i和发送端口143-i是否处于链路断开状态。
另外,端口监视部137对缓冲部142的使用率进行监视,由此来监视在节点装置100中帧是否过度地集中,即,节点装置100是否陷于繁忙状态。
端口选择部138参照表保存部135所保存的表,选择从接收帧控制部133输出的帧的发送目的地端口。并且,端口选择部138将所选择的端口指示给发送帧控制部140,并且将帧向发送帧控制部140输出。
另外,端口选择部138能够使表控制部136对CAM115进行检索来得到SRAM116的地址,并能够使用得到的地址来直接访问SRAM116,从而进行数据的参照或者更新。
定时器139将被用于各种表中的各项的时效的时刻信息通知给表控制部136。
发送帧控制部140向缓冲部142输出帧。另外,发送帧控制部140进行如下控制,即、从端口选择部138所选择的发送端口(发送端口143-1~143-x中的任意一个)发送缓冲部142所存储的帧。
以上参照图5和图6对节点装置100的硬件构成和功能块构成进行了说明,接着,参照图7~图10对图1中未图示的其他数据进行说明。
图7是表示暂停状态表的例子的图。图7的暂停状态表151例如保存于图6的表保存部135。与暂停状态表151有关的详细处理会与图11A和图16一起在后面进行说明。
暂停状态表151具有与x个端口101-1~101-x分别对应的x个项。例如,在与第i个(1≤i≤x)端口101-i对应的项中,以下的3种信息被建立了对应关系。
·作为识别端口101-i的识别信息的端口101-i的端口编号PNi
·表示是否从经由端口101-i直接连接的邻接节点装置接受了暂停请求的暂停状态PSi
·计数器Counti
另外,在从经由端口101-i直接连接的邻接节点装置接受了暂停请求,且还未经过暂停请求中指定的期间的情况下,暂停状态PSi的值为“P”(Pause)。
另一方面,在没有从经由端口101-i直接连接的邻接节点装置接受到暂停请求的情况下,暂停状态PSi的值为“N”(Normal,正常)。另外,在接受了解除暂停请求的通知的情况下暂停状态PSi的值也成为“N”,在经过了暂停请求中指定的期间后,暂停状态PSi的值也成为“N”。由于暂停状态PSi是2值,所以能够用1位来表示。
另外,在从经由端口101-i直接连接的邻接节点装置接受到暂停请求时,计数器Counti被设定成暂停帧中指定的值,然后被递减计数。
图8是表示端口链路状态表的例子的图。图8的端口链路状态表152例如保存于图6的表保存部135。与端口链路状态表152有关的详细处理会与图20一起在后面进行说明。
端口链路状态表152具有与x个端口101-1~101-x分别对应的x个项。例如,在与第i个(1≤i≤x)端口101-i对应的项中,端口101-i的端口编号PNi、与表示和端口101-i连接的链路是否是可通信状态的链路状态Li建立了对应关系。
另外,如果与端口101-i连接的链路是可通信状态,则链路状态Li的值为“C”(Connected,连接),如果与端口101-i连接的链路断开,是不能通信的状态,则链路状态Li的值为“D”(Down,断开)。由于链路状态Li是2值,所以能够用1位来表示。
图9是表示MAC表的例子的图。图9的MAC表153例如保存于图6的表保存部135。
MAC表153的1个项对应于有线自组织网络内的1个节点装置。在图9中,示例了具有b个项的MAC表153。例如,在MAC表153的第i个(1≤i≤b)项中,将下面的2个信息建立了对应关系。
·与有线自组织网络内的某个节点装置连接的外部设备(例如PC或传感器等)的MAC地址MACi
·向具有MAC地址MACi的上述外部设备所连接的上述节点装置分配的、在有线自组织网络内是唯一的节点ID的NIDi
节点装置100在接收到自组织帧400时,对MAC-SA422和GS412的组进行学习。
即,表控制部136判断与接收到的自组织帧400中的MAC-SA422和GS412的值一致的项是否存在于MAC表153中。并且,如果与MAC-SA422和GS412的值一致的项不存在,则表控制部136作成将MAC-SA422的值和GS412的值建立对应关系的新的项,并追加到MAC表153中。
另外,节点装置100若从经由通用LAN端口106连接的第1外部设 备接收到了以太网帧420,则将MAC-DA421的值作为检索关键词对MAC表153进行检索。
作为检索结果,如果找到了项,则节点装置100作成将找到的项所包含的节点ID的值设定于GD411的自组织帧头410,并将其添加在以太网帧420的前面。也就是说,节点装置100在GD411中设定与由MAC-DA421的值识别的第2外部设备连接的、有线自组织网络内的其他节点装置的节点ID。
例如,在图2A的例子中,在从PC203向PC205发送帧时,在有线自组织网络200中位于发送路径上的节点装置100b进行如下的动作来进行MAC表153的学习。
在上述的例子中,在节点装置100b从节点装置100c接收到的自组织帧400中,在MAC-SA422中指定了PC203的MAC地址,在GS412中指定了节点装置100c的节点ID。因此,节点装置100b对PC203的MAC地址和节点装置100c的节点ID的对应关系建立进行学习,并根据需要向MAC表153追加项。
另外,设为,在进行了该学习后,例如节点装置100b从PC201经由L2SW202接收到了发往PC203的新的以太网帧420。于是,节点装置100b将该新的以太网帧420的MAC-DA421的值作为检索关键词,对MAC表153进行检索。
即,节点装置100b将PC203的MAC地址作为检索关键词对MAC表153进行检索。其结果,节点装置100b得到与PC203连接的有线自组织网络200内的节点装置100c的节点ID。因此,节点装置100b生成在GD411中指定了节点装置100c的节点ID的自组织帧头410,并添加在上述的新的以太网帧420的前面,由此生成新的自组织帧400。并且,节点装置100b对该新的自组织帧400进行发送。
另外,节点装置100c当在对PC205的MAC地址和节点装置100g的节点ID的对应关系建立进行学习之前,从PC203接收到了发往PC205的以太网帧420的情况下,例如也可以进行如下的动作。
即,节点装置100c也可以在有线自组织网络200内广播具有在 GD411指定了表示广播的规定的值的自组织帧头410的、用于询问节点ID的自组织帧。在用于询问节点ID的自组织帧的净荷中,包含PC205的MAC地址。
另外,由于图4所示例的分散协调机制,用于询问节点ID的自组织帧不会在有线自组织网络200内发生拥塞。
并且,通过在有线自组织网络200内广播的帧而接受了询问的节点装置100g向节点装置100c回信。也就是说,节点装置100g返回用于通知PC205的MAC地址和节点装置100g的节点ID的对应关系建立的、特殊的控制用的自组织帧。其结果,节点装置100c从返送回的自组织帧中学习PC205的MAC地址和节点装置100g的节点ID的对应关系建立,并向MAC表153追加项。
图10是表示暂停状态管理数据的例子的图。图10的暂停状态管理数据154由图6的端口监视部137进行管理,被用于对从节点装置100自身向邻接节点装置的暂停请求和暂停请求的解除通知进行控制。与暂停状态管理数据154有关的详细处理与图17~图19一起在后面进行说明。
如图10所示那样,暂停状态管理数据154包含暂停状态SS、计数器Scount、和暂停开始时刻StartTime。暂停状态SS的值在节点装置100自身处于繁忙状态时为“P”(Pause),在节点装置100自身不是繁忙状态时为“N”(Normal)。例如,端口监视部137对缓冲部142的使用率进行监视。并且,如果缓冲部142的使用率超过了规定的阈值,则端口监视部137也可以判定为“节点装置100自身处于繁忙状态”,并将暂停状态SS的值设定成“P”。
计数器Scount中设定在从节点装置100自身向其他节点装置发送暂停请求时在暂停帧中指定的值。即,在计数器Scount中,设定节点装置100自身向邻接节点装置请求“希望停止帧的发送”的期间的长度。
端口监视部137能够任意地设定计数器Scount的值。根据实施方式的不同,端口监视部137可以将预先决定的常数值设定于计数器SCount,也可以将对应于缓冲部142的使用率的可变参数的值设定于计数器SCount。
暂停开始时刻StartTime设定有节点装置100自身向邻接节点装置发送了暂停请求的时刻。
以上,对节点装置100的构成和各种数据结构进行了说明,下面参照流程图对节点装置100的动作的详细进行说明。
图11A~图11D是说明路由处理的流程图。如在图11A~图11D的流程图中表现为无限的反复循环那样,在对节点装置100接通电源的期间内,FPGA113持续执行图11A~图11D的处理。
在对节点装置100接通了电源时,在步骤S201中进行初始化。例如,也可以是,MPU114从闪存119读取节点装置100自身的节点ID,将其存储于DDR2·SDRAM118并且向FPGA113输出。另外,在步骤S201中,表控制部136也可以进行各种表的初始化。
例如,由于在步骤S201的时间点还未进行任何学习,所以路由表103、广播管理表104、循环检测表105和MAC表153被初始化为没有项的状态。另外,表控制部136也可以在暂停状态表151的各项(1≤i≤x)中,将暂停状态PSi设定为“N”,将计数器Counti设定为0。并且,表控制部136也可以在端口链路状态表152的各项(1≤i≤x)中,将链路状态Li设定为“C”。
另外,在步骤S201中,端口监视部137也可以对暂停状态管理数据154进行初始化。例如,端口监视部137也可以将暂停状态SS设定为“N”,将计数器SCount设定为0。
接着,在步骤S202中,节点装置100等待由端口101-1~101-x中的任意一个接收到帧。
在步骤S202中,例如,若在端口101-r(1≤r≤x)接收到帧,则如图6所示那样,帧被从接收端口132-r输出到接收帧控制部133。并且,接收帧控制部133指示表控制部136进行针对图9说明过的MAC表153的学习,表控制部136进行MAC表153的学习。并且,处理转移到步骤S203。
在步骤S203中,接收帧控制部133根据接收到的帧的类型413,判别在步骤S202中接收到的帧是否是暂停帧。当在步骤S202中接收到的帧是暂停帧时,处理转移到步骤S204,当在步骤S202中接收到的帧不是暂停帧时,处理转移到步骤S207。
在步骤S204中,接收帧控制部133判断在接收到的暂停帧中指定的暂停计数器的值是否为0。如果暂停计数器的值为0,则处理转移到步骤S205,如果暂停计数器的值不为0,则处理向步骤S206转移。
步骤S205在暂停计数器的值为0的情况下,即在通知了暂停请求的解除的情况下被执行。具体来讲,在步骤S205中,接收帧控制部133指示表控制部136对在步骤S202中接收到暂停帧的端口所对应的暂停状态进行解除,并对计数器进行清零。并且,表控制部136按照指示进行动作。
例如,当在步骤S202中在有线自组织网络端口101-r(1≤r≤x)中接收到暂停帧时,在步骤S205中表控制部136按照接收帧控制部133的指示进行如下的动作。
即,表控制部136在图7的暂停状态表151中,将与有线自组织网络端口101-r的端口编号PNr建立了对应关系的暂停状态PSr和计数器Countr分别设定为“N”和0。并且,处理返回步骤S202。
另一方面,步骤S206在暂停计数器的值不为0的情况下,即在接受了新的暂停请求或者暂停延长请求时被执行。
另外,暂停延长请求是暂停请求的1种。有时过去发出了第1暂停请求的节点装置,在经过了表示第1暂停请求的暂停帧所指定的期间后还处于繁忙状态的情况下,不是通知解除第1暂停请求,而是再次发出第2暂停请求。该第2暂停请求是暂停延长请求。
具体来讲,在步骤S206中接收帧控制部133指示表控制部136将与在步骤S202中接收到暂停帧的端口相对应的暂停状态设为“P”,并按照暂停帧来设定计数器。并且,表控制部136按照指示进行动作。
例如,在步骤S202中,在由有线自组织网络端口101-r(1≤r≤x)接收到暂停帧的情况下,在步骤S206中表控制部136按照接收帧控制部133的指示,进行如下的动作。
即,表控制部136在图7的暂停状态表151中将与有线自组织网络端口101-r的端口编号PNr建立了对应关系的暂停状态PSr设定为“P”。另外,表控制部136在图7的暂停状态表151中将与端口编号PNr建立了对应关系的计数器Countr设定成在步骤S202接收到的暂停帧中被指定的值。并且,处理返回步骤S202。
步骤S207,在暂停帧以外的种类的帧在步骤S202中被接收到时被执行。在步骤S207中接收帧控制部133判断在步骤S202中接收到的帧是否是广播帧。
具体来讲,如果MAC-DA421是广播地址(即所有位都是“1”的地址),则接收帧控制部133判断为接收到的帧是广播帧,处理向图11B的步骤S208转移。另一方面,如果MAC-DA421不是广播地址,则处理向图11A的步骤S216转移。
图11B所示的步骤S208~S215是在步骤S202中接收到广播帧时的处理。
在步骤S208中接收帧控制部133判断与在步骤S202中接收到的帧相符合的项是否存在于循环检测表105。也就是说,接收帧控制部133借助于表控制部136,以在步骤S202中接收到的帧的GS412的值和FID414的值的组作为检索关键词对循环检测表105进行检索。
作为检索结果,如果发送源GSi与GS412的值一致且FIDi与FID414的值一致的项被找到(1≤i≤m),则处理向步骤S209转移。另一方面,作为检索结果,如果没有找到上述那样的项,则处理向步骤S210转移。
另外,上述那样的项即使存在也只有1个。
步骤S209被执行的情况是,判明为在以前节点装置100发送过的广播帧再次在节点装置100中被接收到的情况。因此,在步骤S209中接收帧控制部133将在步骤S202中接收到的帧废弃。并且,处理返回步骤S202。图4的例中的节点装置100r的步骤S105的动作和节点装置100s的步骤S108的动作相当于步骤S209。
另外,在步骤S210中,接收帧控制部133借助于表控制部136对广 播管理表104进行检索。通过检索,接收帧控制部133判断在步骤S202中接收到的帧是否是如下的帧,即通过来自广播管理表104中存在的同一MAC地址的、规定时间(例如10ms)以内的广播而被再次接收到的帧。
具体来讲,接收帧控制部133借助于表控制部136,以在步骤S202中接收到的帧的MAC-SA422的值为检索关键词,对广播管理表104进行检索。作为检索结果,如果与当前时刻之差在规定时间(本实施方式中为10ms)以内的时刻与检索关键词建立了对应关系的项被找到,则处理向步骤S211转移。另一方面,作为检索结果,如果没有找到上述那样的项,则处理向步骤S212转移。
在最近(本实施方式中为10ms的期间内)节点装置100接收到的广播帧再次在节点装置100中接收到的情况下,执行步骤S211。因此,在步骤S211中,接收帧控制部133将在步骤S202中接收到的帧废弃。并且,处理返回到步骤S202。图4的例中的节点装置100s的步骤S104的动作和节点装置100t的步骤S107的动作与步骤S211相当。
作为步骤S210的检索结果,当在广播管理表104中没有找到项时,接收帧控制部133判断为“不是与过去接收到的相同的广播帧在步骤S202中被再次接收到”。因此,在步骤S212中进行上位转送处理。
即,在步骤S212中,接收帧控制部133将帧向上位层处理部134输出,上位层处理部134对帧进行处理。若按照图5进行说明,则在步骤S212中,帧被从FPGA113经由MII124向MPU114输出,在MPU114中帧被处理。
接着,在步骤S213中,接收帧控制部133指示端口选择部138进行向有线自组织网络内的广播,并向端口选择部138输出帧。于是,端口选择部138在步骤S213中,将端口101-1~101-x中的同时满足下列2个条件的所有端口选择为发送目的地端口。
·不是接收端口(即在步骤S202中接收到广播帧的端口)。
·图7的暂停状态表151的暂停状态不是“P”(即暂停状态是“N”)。
或者,根据实施方式的不同,端口选择部138也可以进一步对发送 目的地端口以如下的条件进行遴选,即“在图8的端口链路状态表152中链路状态是“C””这要的条件。
端口选择部138向发送帧控制部140指示从端口101-1~101-x中选择的端口(即,从发送端口143-1~143-x中选择的发送端口),并将帧向发送帧控制部140输出。另外,被选择的端口的数量是0、1、或者多个。
发送帧控制部140将接收到的帧的TTL415的值减1来重新计算FCS417,由此生成新的自组织帧头410,并将包含新的自组织帧头410的自组织帧400输出到缓冲部142。并且,发送帧控制部140进行用于从在发送端口143-1~143-x中选择出的发送端口发送在缓冲部142中缓冲的自组织帧400的控制。
通过以上那样的处理,在步骤S213中,从在发送端口143-1~143-x中选择出的发送端口进行帧的发送。于是,处理向步骤S214转移。
在步骤S214中,接收帧控制部133借助于表控制部136,将与在步骤S202中接收到的广播帧对应的项登记在广播管理表104中。即,在步骤S214中,把在步骤S202中接收到的广播帧的MAC-SA422的值和从定时器139得到的当前时刻(即时间戳)建立了对应关系的项追加到广播管理表104中。
并且,在步骤S215中,端口选择部138根据步骤S213中的选择结果,借助于表控制部136向循环检测表105登记新的项。
在步骤S215中登记的新的项如下所示。例如,设为,在步骤S202中利用端口101-r(1≤r≤x)接收到了自组织帧400。在这种情况下,将端口101-r的端口编号以及端口101-1~101x各自的状态与接收到的自组织帧400的GS412的值与FID414的值的组建立了对应关系的新项在步骤S215中,被追加到循环检测表105中。另外,若设为该新项是循环检测表105的第(m+1)个项,则该新项中的端口101-i(1≤i≤x)的状态LPi(m+1)如下述那样被设定。
·在端口101-i在步骤S213中被选择为发送目的地端口的情况下,状态LPi(m+1)的值是“U”。
·在上述以外的情况下,状态LPi(m+1)的值是“E”。
另外,根据实施方式的不同,可以调换步骤S212~S215的处理顺序,也可以并列执行步骤S212~S215。
这里,为了使步骤S210和S211的处理的意义更加清楚,参照图2A进一步对其他的具体例进行说明。
例如,图2A的PC206对包含ARP(Address Resolution Protocol,地址解析协议)包作为L3包424的以太网帧420进行广播的情况也存在。此时,在以太网帧420的MAC-DA421中,指定广播地址。
作为广播帧的以太网帧420在经由链路229与发送源的PC206连接的节点装置100h中被添加自组织帧头410,成为自组织帧400。这里,在自组织帧头410的GS412中,指定节点装置100h的节点ID,在FID414中,指定节点装置100h所生成的第1FID。
并且,作为广播帧的自组织帧400被从节点装置100h向有线自组织网络200进行广播。具体来讲,节点装置100h分别从端口101h-1、101h-3和101h-4发送自组织帧400(即进行广播)。
然后,自组织帧400例如可能经由链路223和链路217到达节点装置100b,并从节点装置100b经由链路216到达节点装置100a。
在这种情况下,节点装置100b执行步骤S212。作为其结果,节点装置100b将从接收到的自组织帧400中除去自组织帧头410而得到的以太网帧420向与通用LAN端口106b连接的L2SW202进行发送。
于是,从节点装置100b接收到作为广播帧的以太网帧420的L2SW202对接收到的以太网帧420进行广播。即,L2SW202经由链路211将以太网帧420向PC201发送,并且也经由链路212向节点装置100a进行发送。
另外,如上所述,作为有线自组织网络200内的广播的结果,节点装置100a经由链路216,利用端口101a-4接收了自组织帧400。另外,在节点装置100a中,还有可能经由链路215从节点装置100d接收到自组织帧400。
在节点装置100a从有线自组织网络200内的节点装置100b和100d的双方重复接收到作为广播帧的自组织帧400的情况下,后接收的帧在步骤S209中被废弃。步骤S209的废弃可以通过循环检测表105来进行,通过步骤S209,防止了有线自组织网络200内的广播帧的拥塞。
然而,如果广播管理表104不存在,则存在曾经经由有线自组织网络200的外部的L2SW202的广播帧再次回到有线自组织网络200内从而造成拥塞的可能性。因此,在本实施方式中,节点装置100具备广播管理表104。
如果广播管理表104不存在,则通过有线自组织网络200内的广播从节点装置100b或者100d接收到自组织帧400的节点装置100a,除去自组织帧头410后将以太网帧420向L2SW202发送。于是,L2SW202将作为广播帧的以太网帧420向PC201和节点装置100b的双方发送。
这里,在节点装置100b中从L2SW202接收的以太网帧420不含有自组织帧头410。因此,节点装置100b无法使用循环检测表105识别如下的情况,即再次接收到与节点装置100b自身在过去向L2SW202发送过的广播帧相同的以太网帧420这一情况。
另一方面,如果节点装置100b将从L2SW202接收到的广播帧向有线自组织网络200内广播,则相同的以太网帧420被再次广播。在此基础上,也存在着在L2SW202、节点装置100b和节点装置100a之间,相同的广播帧持续循环的可能性。其原因在于,曾经发到有线自组织网络200的外部后又返回到有线自组织网络200内的广播帧,在每次返回到有线自组织网络200内时会被分配新的FID。
因此,为了防止拥塞,节点装置100b需要利用循环检测表105以外的信息,来判定不含有自组织帧头410的以太网帧420之间的相同性。
在本实施方式中,通过使用广播管理表104,节点装置100可以通过MAC-SA422的值和时刻的组合来判断不包含自组织帧头410的以太网帧420之间的相同性。即,广播管理表104是即使在曾经经由了有线自组织网络200的外部的广播帧再次回到有线自组织网络200内的情况下也能够防止拥塞的机制的一个例子。
另外,上述所示例的“10ms”这样的值可以根据实施方式进行适当的变更。例如可以通过进行预备实验来决定合适的值。合适的值根据广播帧被发送的频度、和帧经由有线自组织网络200的外部设备(L2SW202等)再次回到有线自组织网络200内所花费的时间等而不同。
这里返回图11A的说明,对在广播帧以外的帧在步骤S202中被接收到的情况下进行的步骤S216的处理进行说明。
在步骤S216中,接收帧控制部133判断在步骤S202中接收到的帧是否是发往节点装置100自身。即,接收帧控制部133判断在步骤S201中从闪存119预先读取的节点装置100自身的节点ID、和在步骤S202中接收到的自组织帧400的GD411的值是否一致。
如果节点装置100自身的节点ID和GD411的值一致,则由于在步骤S202中接收到的帧是发往节点装置100自身的帧,所以处理向步骤S217转移。反之,如果节点装置100自身的节点ID和GD411的值不一致,则由于在步骤S202中接收到的帧不是发往节点装置100自身的帧,所以为了向其他节点装置中继帧而将处理转移到图11C的步骤S218。
在步骤S217中,进行上位转送处理。即,在步骤S217中,接收帧控制部133将帧输出到上位层处理部134,由上位层处理部134对帧进行处理。若按照图5进行说明,则在步骤S217中,帧被从FPGA113向MPU114输出,并在MPU114中帧被处理。在步骤S217中,上位层处理部134对接收到的帧的净荷中作为L3包424而包含的数据进行处理,或者执行基于接收到的帧的合适的控制。然后处理返回到步骤S202。
当在步骤S216中判断为“在步骤S202中接收到的帧不是发往节点装置100自身的帧”时,处理向图11C的步骤S218转移。
在步骤S218中,接收帧控制部133判断是否在循环检测表105中存在与在步骤S202中接收到的帧相符的项。即,接收帧控制部133借助于表控制部136,以在步骤S202中接收到的帧的GS412的值和FID414的值的组为检索关键词,对循环检测表105进行检索。
作为检索结果,如果找到发送源GSi和GS412的值一致、且FIDi与FID414的值一致的项(1≤i≤m),则处理向图11D的步骤S219转移。 另一方面,作为检索结果,如果没有找到上述那样的项,则处理向图11C的步骤S230转移。
另外,上述那样的项即使存在也只有1个。
图11D所示的步骤S219~S229是在过去节点装置100自身发送过的单播帧在有线自组织网络内进行循环又返回到节点装置100,并在步骤S202中由端口101-r接收到的情况下的处理。例如,在图2B中,搜索路径302上的回溯303之后的、从节点装置100a接收到帧的节点装置100b中的处理与图11D相对应。
在步骤S219中,端口选择部138将在步骤S202中接收到帧的端口识别为接收端口。
例如,若在步骤S218中找到了项,则接收帧控制部133也可以将从表控制部136通知的SRAM116的地址作为找到的项的地址,向端口选择部138进行通知。并且,接收帧控制部133也可以指示端口选择部138进行循环检测时的端口选择。作为其结果,端口选择部138也可以执行步骤S219以下的处理。
例如,设为,在步骤S202中端口101-r(1≤r≤x)接收到帧,在步骤S218中循环检测表105的第i个项作为检索结果被命中,循环检测表105是图1所示的形式。在这种情况下,在步骤S219中,端口选择部138将第i个项中的端口编号RCVPNi更新成端口101-r的编号。
接着,在步骤S220中,端口选择部138在由步骤S218检测到的循环检测表105的项中,将“U”状态的端口状态变更成“L”状态。
例如,设为,作为检索结果,在步骤S218中循环检测表105的第i个项被命中。这里,步骤S220是针对被单播的帧执行的步骤,因此在第i个项中的端口状态LP1i~LPxi中,值为“U”的只有1个。以下,为了便于说明,设为,端口101-t(1≤t≤x)的端口状态LPti的值是“U”。
即,当节点装置100曾经从端口101-t发送过在GS412中设定了发送源GSi、在FID414中设定了与FIDi相同的值的自组织帧400的情况下,在步骤S220中端口状态LPti的值是“U”。并且,在这种情况下,在步骤 S220中,端口状态LPti的值被从“U”更新为“L”。
并且,在步骤S221中,端口选择部138借助于表控制部136,对与在步骤S202中接收到的帧的GD411的值相对应的路由表103的项进行检索。另外,在本实施方式中,路由表103的时效期间(即各项的有效期间)比循环检测表105的时效期间长。因此,在步骤S221中,作为检索结果,可以确保一定有1个项被命中。因此,通过步骤S221,端口选择部138能够从表控制部136得到与命中的项相对应的SRAM116的地址,之后能够直接访问被命中的项。
路由表103的时效期间可以是例如225秒之类的较长的时间。与此相对,优选循环检测表105的时效期间是例如小于1秒的较短的时间。其原因在于,路由表103的1个项与有线自组织网络内的1个节点装置相对应,而循环检测表105的1个项与1个自组织帧400相对应。
也就是说,可以预见到循环检测表105被频繁追加项的程度远超路由表103。因此,为了防止循环检测表105的项数增加过多而导致的溢出,循环检测表105的时效期间被设定为较短的时间。
另外,优选,作为循环检测表105的时效期间的长度的合适的值,例如通过进行预备实验等来考虑有线自组织网络内的循环所花费的时间来决定。
以下为了便于说明,假定在步骤S221中路由表103的第j个项被命中。即,设为,在步骤S202中接收到的自组织帧400的GD411的值与路由表103中的目的地GDj的值一致。
于是,在步骤S222中,端口选择部138将当前的端口链路状态和暂停状态,反映在路由表103中的、在步骤S221中检测到的项中。也就是说,在步骤S222中,对于各端口101-k(1≤k≤x),进行以下的操作。
·在与端口101-k对应的图7的暂停状态表151的暂停状态PSk的值为“P”的情况下,在路由表103中被命中的第j个项中,将端口101-k的状态RPkj的值更新为“P”。另外,当在路由表103的第j个项中,端口101-k的状态RPkj的当前的值为“P”,并且暂停状态表151的暂停状态PSk的值为“N”时,将状态RPkj的值更新为“E”。
·在与端口101-k对应的图8的端口链路状态表152的链路状态Lk的值为“D”的情况下,在路由表103中命中的第j个项中,将端口101-k的状态RPkj的值更新为“D”。另外,当在路由表103的第j个项中端口101-k的状态RPkj的当前的值为“D”,并且端口链路状态表152的链路状态Lk的值为“C”时,将状态RPkj的值更新为“E”。
另外,在本实施方式中,在进行了反映暂停状态表151的内容的操作后,进行反映端口链路状态表152的内容的操作。因此,与暂停状态PSk相比,链路状态Lk被优先反映在路由表103中。另外,根据上述的说明可知,暂停状态表151和端口链路状态表152作为针对路由表103的一种掩模数据被利用。
并且,在步骤S223中,端口选择部138在路由表103的、在步骤S221中检测到的项中,将正在关注的端口101-t设定成“L”状态。也就是说,对于在步骤S220中在循环检测表105中从“U”状态变更成“L”状态的端口101-t,在步骤S223中,即使在路由表103中也将状态设定成“L”。具体来讲,在路由表103的第j个项中,端口101-t的状态RPtj的值被更新为“L”。
通过以上的步骤S220~S223,在节点装置100接收到在有线自组织网络内进行循环而返回的帧的情况下,目的地与返回的帧相同的帧在以后不会从到目前为止的发送目的地端口发送。也就是说,节点装置100对产生循环的端口进行学习,在以后,暂缓向产生循环的端口进行发送。其结果,作为有线自组织网络整体,减少了无用的通信量。
接着,在步骤S224中,端口选择部138在路由表103的第j个项内进行检索,寻找“E”状态的端口。也就是说,端口选择部138寻找如下的端口,即、还没有尝试过作为对指定了目的地GDj的自组织帧400进行中继时的发送目的地端口的端口,且该端口当前能够使用(即不是“P”状态也不是“D”状态)。
并且,在步骤S225中,端口选择部138判断作为步骤S224的检索结果,是否找到了“E”状态的端口,在没有找到的情况下处理向步骤S226转移,在找到的情况下处理向步骤S227转移。
在步骤S226中,端口选择部138将在步骤S219中被识别为接收端口的端口101-r选择为发送目的地端口。并且处理向步骤S229转移。
当即使要对在步骤S202中端口101-r接收到的帧进行中继,而没有找到为了进行中继而能够进行发送的端口时,执行步骤S226。这里的“能够进行发送的端口”具体来讲,是不处于循环状态,也不处于链路断开状态,也没有从邻接节点装置接收到暂停请求的端口。
也就是说,当节点装置100无法把在步骤S202中接收到的帧向与接收端口连接的邻接节点装置以外的其他邻接节点装置进行转送时,执行步骤S226。因此,节点装置100为了返送接收到的帧,把在步骤S202中接收到帧的端口101-r设为发送目的地端口。
通过返送,节点装置100能够向与端口101-r连接的邻接节点装置通知“在节点装置100处中继路径成为死路”这一情况。其结果,接收到被返送的帧的邻接节点装置利用循环检测表105,能够识别出“即使将发往目的地GDj的帧向与节点装置100连接的端口发送也会循环”。
例如,在图2B的例子中,设为,在通过接收利用回溯303从节点装置100a返送的帧而检测出循环的节点装置100b中,与节点装置100e之间的链路217是链路断开状态。于是,与搜索路径302不同,在节点装置100b中也发生了回溯。也就是说,节点装置100b在步骤S226中,将与节点装置100c连接的端口101b-4选择为发送目的地端口。
其结果,节点装置100c接收从节点装置100b返送的帧。因此,节点装置100c识别出“作为在GD411中设定了节点装置100g的节点ID的自组织帧400的发送目的地端口,与节点装置100b连接的端口101c-1不合适”。也就是说,在节点装置100c的路由表103中,与节点装置100g的节点ID建立了对应关系的端口101c-1的状态被设定为“L”。
并且,节点装置100c在步骤S225中选择与端口101c-1不同的端口101c-3。这样,在搜索树300中通过多次反复进行回溯而找到新的中继路径的情况也存在(另外,在图2B的搜索路径302中仅通过1次回溯就找到了新的中继路径)。
在此回来继续说明步骤S225。
当在步骤S224中找到“E”状态的端口时,在接着步骤S225的步骤S227中,端口选择部138将步骤S224中找到的“E”状态的端口中的任意1个(例如,最初找到的端口)选择为发送目的地端口。并且,端口选择部138在路由表103的第j个项中,将被选择为发送目的地端口的相应的端口的状态设定为“U”。
例如,当设为在步骤S227中选择了端口101-g(1≤g≤x)时,在由步骤S221命中的路由表103的第j个项中,将端口101-g的状态RPgj的值设定为“U”。
并且,在步骤S228中,端口选择部138还在循环检测表105中将相应的端口设定为“U”状态。也就是说,在由步骤S218找到的循环检测表105的第i个项中,把在步骤S227中被选择为发送目的地端口的端口101-g的状态LPgi的值设定为“U”。然后处理向步骤S229转移。
在步骤S229中,向在步骤S226或者S227中被选择为发送目的地端口的端口发送帧。
即,在步骤S229中,端口选择部138对发送帧控制部140指示被选择为发送目的地端口的端口,并将帧向发送帧控制部140输出。并且,发送帧控制部140通过将接收到的帧的TTL415减1来重新计算FCS417,生成新的自组织帧头410,并将包含新的自组织帧头410的自组织帧400向缓冲部142输出。并且,发送帧控制部140进行用于把在缓冲部142缓冲的自组织帧400从由端口选择部138选择的发送端口143-g(即端口101-g)进行发送的控制。
这样,在步骤S229中从端口101-g发送帧,然后,处理回到步骤S202。
如上所述,在产生了循环时,通过步骤S227~S229来尝试其他的新的中继路径,或者通过步骤S226和S229使回溯发生。另外,向基于步骤S227~S229的新的中继路径的切换,由节点装置100内的FPGA113以数μs来进行。
另外,即使设为产生了回溯,例如如图2B的搜索路径302那样,如果通过回溯来追溯搜索树300的次数较少,则就算从有线自组织网络整体来看,中继路径的切换也在非常短的时间内结束。这样,根据本实施方式,在因为产生故障或者其他的理由而产生了循环的情况下,帧的中继路径的切换会非常高速地被实现。
这里返回图11C的说明,对在步骤S218的检索中没有找到项的情况下的步骤S230~S239的处理进行说明。
在步骤S230中,端口选择部138借助于表控制部136,利用步骤S202中接收到的帧的GD411的值来对路由表103进行检索。
并且,作为步骤S230的检索结果,在步骤S231中端口选择部138判断是否在路由表103内找到将GD411的值与各端口的状态建立了对应关系的项。在没有找到上述的项的情况下,处理向步骤S232转移,在找到上述的项的情况下,处理向步骤S233转移。另外,即使找到上述的项也只存在1个。
在步骤S232中,端口选择部138借助于表控制部136向路由表103登记新项。在该新项中,目的地的值被设定成在步骤S202中接收到的帧的GD411的值,各端口101-1~101-x的状态全部被设定成“E”状态。并且处理向步骤S233转移。
在针对图11C的以下的说明中,将作为步骤S230的检索结果而找到的1个项、或者在步骤S232中新登记的项称为“关注项”,设为,关注项是路由表103的第f个项。
另外,若按照图1的例子进行说明,则当在步骤S230中找到关注项的情况下,1≤f≤n,当在步骤S232中登记了关注项的情况下f=n+1。另外,作为步骤S230或者S232的结果,由于端口选择部138从表控制部136得到了关注项的SRAM116上的地址,所以之后能够直接访问关注项。
在步骤S233中,端口选择部138将当前的端口链路状态和暂停状态反映在路由表103的关注项中。也就是说,在步骤S233中,针对各端口101-k(1≤k≤x),进行和步骤S222类似的如下操作。
·在与端口101-k对应的图7的暂停状态表151的暂停状态PSk的值为“P”的情况下,在路由表103的第f个项中,将端口101-k的状态 RPkf的值更新成“P”。或者,当在路由表103的第f个项中端口101-k的状态RPkf的当前值为“P”、且暂停状态表151的暂停状态PSk的值是“N”情况下,将状态RPkf的值更新成“E”。
·在与端口101-k对应的图8的端口链路状态表152的链路状态Lk的值是“D”的情况下,在路由表103的第f个项中,将端口101-k的状态RPkf的值更新成“D”。或者,当在路由表103的第f个项中端口101-k的状态RPkf的当前值是“D”、且端口链路状态表152的链路状态Lk的值是“C”的情况下,将状态RPkf的值更新成“E”。
并且,在步骤S234中,端口选择部138参照路由表103的关注项。并且,端口选择部138把在步骤S202中接收到帧的端口101-r(1≤r≤x)以外的、且状态为“L”、“P”、“D”状态以外的端口中的1个选择为发送目的地端口。另外,所谓状态是“L”、“P”、“D”状态以外,换句话说是“E”状态或者“U”状态。
在本实施方式中,端口选择部138在步骤S234中,与“E”状态的端口相比,优先选择“U”状态的端口。其原因在于,“U”状态的端口有在过去用作过发送目的地端口的经历,由于不会发生循环的情况在步骤S218中被确认,所以可以确定可靠性。
另外,当在步骤S202中接收到的帧是单播帧的情况下,执行步骤S234。因此,“U”状态的端口即使在关注项中存在,也只存在1个。
另外,在端口选择部138在步骤S234中选择“E”状态的端口,且关注项中存在多个“E”状态的端口的情况下,端口选择部138例如也可以选择最初找到的“E”状态的端口。
但是,满足“是端口101-r以外,且在关注项中状态被设定成“E”或者“U””的条件的端口也有可能不存在。
因此,在步骤S235中,端口选择部138判断在步骤S234中选择的发送目的地端口是否存在。当在步骤S234中选择的发送目的地端口存在时,处理向步骤S236转移,当在步骤S234中没有找到发送目的地端口时,处理向步骤S238转移。
在步骤S236中,端口选择部138将路由表103的关注项中的发送目的地端口的状态更新成“U”状态。例如,当在步骤S234中端口101-e(1≤e≤x)被选择为发送目的地端口时,在步骤S236中,状态RPef的值被设定成“U”。
并且,在步骤S237中,端口选择部138借助于表控制部136,向循环检测表105追加登记新项。若设为该新项例如是第(m+1)个项,则该新项的各字段的内容如下所示。
·发送源GSm+1被设定成在步骤S202中接收到的帧的GS412的值。
·FIDm+1被设定成在步骤S202中接收到的帧的FID414的值。
·接收端口编号RCVPNm+1被设定成在步骤S202中接收到帧的端口101-r的编号(即r)。
·与端口101-e对应的状态LPe(m+1)被设定成“U”,与除此以外的端口对应的状态全部被设定成“E”。
若在步骤S237中向循环检测表105追加了上述那样的新项,则处理向步骤S239转移。
另一方面,当在步骤S234中没有得到发送目的地端口时,在步骤S238中,端口选择部138把在步骤S202中接收到帧的端口101-r选择为发送目的地端口。也就是说,步骤S238是与图11D的步骤S226同样的步骤。为了通知“即使要对步骤S202中端口101-r接收到的帧进行中继,也没有找到为了中继而能够进行发送的端口”,所以在步骤S238中将端口101-r选择为用于返送帧的端口。并且处理向步骤S239转移。
在步骤S239中,帧被发送到在步骤S234或者S238中被选择为发送目的地端口的端口。步骤S239的处理与图11D的步骤S229同样,因此省略其详细说明。在发送帧后,处理返回到步骤S202。
另外,在图11A~图11D中为了简化说明而省略了图示,但是节点装置100在路由处理中根据TTL415的值废弃帧的情况也存在。即,当在步骤S202中接收到的帧的TTL415的值为1时,例如进行下面的处理。
·在图11B的步骤S213中,发送帧控制部140将帧废弃,步骤S214和S215被省略,处理返回到步骤S202。
·图11D的步骤S225~S229被省略。
·图11C的步骤S230~S239被省略。
另外,在图11A~图11D中,示出了与利用图5的有线自组织网络端口101-1~101-x中的任意一个接收的帧有关的处理,但是节点装置100也进行与利用通用LAN端口106接收的帧有关的处理。另外,节点装置100也进行与节点装置100自身的MPU114生成的帧有关的处理。
即,在以太网帧420由通用LAN端口106接收到的情况下,根据MAC-DA421,以太网帧420被输出到MPU114或者FPGA113。并且,以节点装置100自身为目的地的以太网帧420在MPU114中被处理。
反之,以其他节点装置为目的地的以太网帧420在FPGA113中被添加自组织帧头410,从有线自组织网络端口101-1~101-x中的任意一个被发送。此时,与图11C的步骤S237同样,也向循环检测表105追加项。另外,在由通用LAN端口106接收到广播帧的情况下,FPGA113也可以将表示来自外部设备的广播的特定的值设定于自组织帧头410的类型413中。
另外,在MPU114生成了以太网帧420的情况下,针对以太网帧420,根据MAC-DA421进行以下的任意一种处理。
·经由内部连接端口114b、PHY芯片120、L2SW部112,从通用LAN端口106发送以太网帧420。
·以太网帧420被输出到FPGA113,被添加自组织帧头410,并被从有线自组织网络端口101-1~101-x中的任意一个发送。此时,与图11C的步骤S237同样,向循环检测表105项。另外,在MPU114生成了广播帧的情况下,FPGA113也可以将表示是来自MPU114的广播的特定的值设定于自组织帧头410的类型413中。
接着,参照图12~图20,对与图11A~图11D的处理独立而进行的各种处理进行说明。
图12是说明路由表的时效的流程图。针对路由表103的各项,例如以预先决定的间隔定期执行图12的处理。以下,在图12的说明中,为了便于说明而将路由表103内的某个项称为“关注项”。并且,针对关注项来说明进行图12的处理的情况。
在步骤S301中,表控制部136计算从当前的节点装置100内部的定时器139的值减去关注项的定时器值而得到的差值。
另外,在本实施方式中,安装有与路由表103的各项对应的定时器。例如,也可以在FPGA113上安装与各项对应的硬件定时器。根据实施方式的不同,取而代之,路由表103的各项也可以具有表示项生成时刻的字段。在这种情况下,在步骤S301中,计算从当前的节点装置100内部的定时器139的值减去关注项的表示项生成时刻的字段的值而得到的差值。
接着,在步骤S302中,表控制部136判断在步骤S301中得到的计算结果是否在预先决定的路由表103的时效时间以上。如果在步骤S301中得到的差值小于上述时效时间,则图12的处理结束。
另一方面,如果在步骤S301中得到的差值在上述时效时间以上,则在步骤S303中表控制部136从路由表103删除关注项,图12的处理结束。
图13是说明路由表的项的定时器的设定的流程图。在如下的情况下进行图13的处理。
·在有对路由表103内的某个项的内容进行更新的访问的情况下(例如图11C的步骤S233、S236、图11D的步骤S222、S223、S227),针对被访问的项,进行图13的处理。
·在向路由表103新项的情况下(例如图11C的步骤S232),针对该新项,进行图13的处理。
·在路由表103被检索、且找到作为检索结果而命中的项的情况下(例如图11C的步骤S230、图11D的步骤S221),针对被命中的项,进行图13的处理。
下面为了便于说明,对上述的3种情况进行统一,将成为进行图13的处理的对象的项称为“关注项”。
在步骤S401中,表控制部136对关注项的定时器(例如针对图12示例的硬件定时器)设定当前的节点装置100的内部的定时器139的值。并且结束图13的处理。另外,对于路由表103具有表示项生成时刻的字段的实施方式,在步骤S401中,对表示项生成时刻的字段设定当前的定时器139的值。
通过以上的图12和图13的处理,路由表103的各项的时效被实现。另外,虽然省略了图示,但是针对广播管理表104,也通过与图12和图13同样的处理,使表控制部136和定时器139协同动作来进行时效处理。
图14是说明循环检测表的时效的流程图。针对循环检测表105的各项,例如以预先决定的间隔定期执行图14的处理。下面,在图14的说明中,为了便于说明,将循环检测表105内的某个项称为“关注项”。并且,针对关注项来进行说明图14的处理的情况。
在步骤S501中,表控制部136计算从当前的节点装置100内部的定时器139的值减去关注项的定时器值而得到的差值。在本实施方式中,与路由表103同样,针对循环检测表105安装有与各项对应的定时器。当然,根据实施方式的不同,循环检测表105的各项也可以具有表示项生成时刻的字段。
接着,在步骤S502中,表控制部136判断在步骤S501中得到的计算结果是否在预先决定的循环检测表105的时效时间以上。如果在步骤S501中得到的差值小于上述时效时间,则结束图14的处理。
另一方面,如果在步骤S501中得到的差值在上述时效时间以上,则在步骤S503中,表控制部136从循环检测表105删除关注项,并结束图14的处理。
图15是说明循环检测表的项的定时器的设定的流程图。循环检测表105的各项与路由表103不同,无论是否被访问,若从被生成开始经过了规定的时间,则被删除。因此,当在图11B的步骤S215或者图11C的步骤S237中对循环检测表105追加了新项时,针对该新项而执行图15的处理。换言之,图15的处理以帧的发送处理为契机,并与帧的发送配合而被执行(更详细来讲,在图11B的步骤S213中刚刚发送帧后,或者在图11C 的步骤S239中即将要发送帧之前)。
具体来讲,在步骤S601中,表控制部136对向循环检测表105追加的新项的定时器(例如硬件定时器),设定当前的节点装置100的内部的定时器139的值。并且结束图15的处理。另外,对于循环检测表105具有表示项生成时刻的字段的实施方式,在步骤S601中对表示项生成时刻的字段,设定当前的定时器139的值。
通过以上的图14和图15的处理,循环检测表105的各项的时效被实现。
图16是暂停状态解除处理的流程图。图16的处理是用于解除在图11A的步骤S206中被设定的“P”状态的处理。另外,例如以预先决定的间隔,定期地针对各端口执行图16的处理。下面,在图16的说明中将某个端口101-i(1≤i≤x)称为“关注端口”,说明针对关注端口101-i进行图16的处理的情况。
在步骤S701中,表控制部136参照图7的暂停状态表151,判定与关注端口101-i对应的暂停状态PSi的值是否为“P”。如果与关注端口101-i对应的暂停状态PSi的值不是“P”而是“N”,则结束图16的处理。
另一方面,如果与关注端口101-i对应的暂停状态PSi的值为“P”,则在步骤S702中,表控制部136在与暂停状态表151的关注端口101-i对应的项中,对计数器Counti递减计数。
接着,在步骤S703中,表控制部136判定作为步骤S702的递减计数的结果,计数器Counti的值是否变为0。如果计数器Counti的值没有变为0,则结束图16的处理。
另一方面,如果计数器Counti的值变为0,则在步骤S704中,表控制部136在与暂停状态表151的关注端口101-i对应的项中解除“P”状态。即,表控制部136将与关注端口101-i对应的项的暂停状态PSi设定为“N”。并且,结束图16的处理。
在通过步骤S704而解除了暂停状态后,暂停状态表151的内容在图11C的步骤S233或者图11D的步骤S222中被反映在路由表103中。
另外,暂停状态表151如图7所示例的那样,也可以具有“计数器”字段,也可以取而代之,通过硬件定时器来实现暂停状态表151的各项的递减计数。
或者,暂停状态表151也可以具有表示从“P”状态恢复的恢复预定时刻的“恢复预定时刻”字段,以此来代替“计数器”字段。并且,在图11A的步骤S206中,也可以利用表控制部136计算把暂停帧中指定的时间与步骤S206的执行时刻相加而得到的时刻,并记录到“恢复预定时刻”字段中。并且,图16的处理也可以进行如下变形,即、代替步骤S703的判断,而是在定时器139的当前时刻与恢复预定时刻字段的值相比是在后的时刻时,执行步骤S704。
图17是对节点装置针对该节点装置自身进行的暂停控制处理进行说明的流程图。例如,也可以以预先决定的间隔定期执行图17的处理。
在步骤S801中,端口监视部137参照图10的暂停状态管理数据154的暂停状态SS的值,判断本节点装置100是否为暂停状态。在暂停状态SS的值为“P”时,处理向步骤S804转移,在暂停状态SS的值为“N”时,处理向步骤S802转移。
在步骤S802中,端口监视部137判断节点装置100自身是否处于繁忙状态。例如,如果缓冲部142的使用率超过了规定的阈值,则端口监视部137判断为节点装置100自身处于繁忙状态,处理向步骤S803转移。反之,如果缓冲部142的使用率在上述的阈值以下,则端口监视部137判断为节点装置100自身不是繁忙状态,并结束图17的处理。
在步骤S803中,进行用于暂停开始的暂停帧发送处理。步骤S803的处理是用于向邻接节点装置发出暂停请求的处理,其详细情况会与图18一起在后面进行说明。在执行步骤S803后,结束图17的处理。
然而,当在步骤S801中暂停状态SS的值为“P”时,在步骤S804中端口监视部137以与步骤S802同样的方法来判断节点装置100自身是否处于繁忙状态。在端口监视部137判断为“节点装置100自身处于繁忙状态”时,处理向步骤S806转移。反之,在端口监视部137判断为“节点装置100自身不是繁忙状态”时,处理向步骤S805转移。
在步骤S805中,进行用于暂停解除的暂停帧发送处理。步骤S805的处理是用于向邻接节点装置发出用于对过去向邻接节点装置发出的暂停请求进行解除的通知的处理,其具体情况会与图19一起在后面进行说明。在执行步骤S805后,结束图17的处理。
在步骤S806中,端口监视部137将当前的定时器139的值与暂停状态管理数据154的暂停开始时刻StartTime之间的差值、和暂停状态管理数据154的计数器SCount进行比较。
并且在步骤S807中,端口监视部137判断上述差值是否已经达到了暂停状态管理数据154的计数器SCount的值。
如果上述差值已经达到了计数器SCount的值,则尽管已经经过了在过去的暂停请求中节点装置100对邻接节点装置请求过的时间,而由于节点装置100自身还未能从繁忙状态中恢复。因此,此时处理向步骤S808转移。
反之,如果上述差值小于计数器SCount的值,则由于还未经过在过去的暂停请求中节点装置100对邻接节点装置请求过的时间,所以结束图17的处理。
在步骤S808中,进行用于暂停开始的暂停帧发送处理。步骤S808的处理是用于向邻接节点装置发出暂停延长请求的处理,其详细情况会与图18一起在后面进行说明。在执行步骤S808后,结束图17的处理。
图18是暂停开始处理的流程图。图18的处理被图17的步骤S803或者S808调用。
在步骤S901中,端口监视部137将当前的定时器139的值(即步骤S901被执行的时间点的当前时刻)设定于图10的暂停状态管理数据154的暂停开始时刻StartTime。
并且,端口监视部137在步骤S902中生成暂停帧。如上所述,暂停帧是具有自组织帧头410的自组织帧的1种,在自组织帧头410的后面,不是以太网帧420,而是具有至少包含暂停计数器的1个以上的字段。
在本实施方式中,例如,端口监视部137在自组织帧头410中,对 GD411设定表示广播的特殊的值,对GS412设定节点装置100自身的节点ID,对类型413设定表示暂停帧的值。另外,端口监视部137对FID414设定新生成的FID,对TTL415设定规定的值。由于暂停帧是发往邻接节点装置的帧,所以在TTL415中设定的值也可以是1。
另外,在本实施方式中,由于暂停帧的形式是在自组织帧头410的后面跟有固定长的数据的形式,所以在长度416中,设定该预先决定的固定长的值。并且,端口监视部137按照从GD411开始到长度416的值计算FCS417。
另外,端口监视部137在步骤S903中,根据节点装置100自身的繁忙状况来决定暂停计数器值。例如,端口监视部137也可以根据缓冲部142的使用率来决定暂停计数器值。
另外,这里的“暂停计数器值”,是表示节点装置100向邻接节点装置请求停止发送帧的期间的长度的值。换言之,“暂停计数器值”是表示节点装置100的邻接节点装置维持与节点装置100连接的端口的暂停状态(即“P”状态)的时间的长度的值。根据实施方式的不同,端口监视部137也可以将不依赖于节点装置100自身的繁忙状况的预先决定的常数值用作暂停计数器值。
并且,端口监视部137在步骤S903中,还对暂停状态管理数据154的计数器SCount设定如上述那样决定的暂停计数器值。
另外,在步骤S904中,端口监视部137对暂停帧的暂停计数器设定在步骤S903中决定的暂停计数器值。
最后,在步骤S905中,端口监视部137使端口选择部138选择能够发送暂停帧的端口,并将暂停帧向发送帧控制部140输出。另外,端口选择部138将选择结果通知给发送帧控制部140。其结果,发送帧控制部140从由端口选择部138选择的端口的每个发送暂停帧。
另外,在本实施方式中,具体来讲,端口选择部138参照图8的端口链路状态表152,将连接状态(即“C”状态)的端口选择为“能够发送暂停帧的端口”。根据实施方式不同,端口选择部138也可以选择在图8的端口链路状态表152中为“C”状态、且在图7的暂停状态表151中不是 暂停状态而是正常状态(即“N”状态)的端口。
另外,如图6所示那样,在本实施方式中,由于端口监视部137通过FPGA113来实现,所以在图18的步骤S902中,暂停帧由FPGA113生成。因此,与MPU114根据软件来生成暂停帧的情况相比,在本实施方式中,能够以更短的时间来生成暂停帧。
暂停帧的生成所需时间的缩短,能够使从节点装置100陷入繁忙状态开始,到在邻接节点装置中与节点装置100连接的端口的状态被设定为“P”而切换了帧的中继路径为止的时间缩短。即,根据本实施方式,通过由FPGA113生成暂停帧,缩短了有线自组织网络整体的中继路径的切换所需的时间。
对于节点装置100陷入繁忙状态从而发出暂停请求的情况,作为有线自组织网络整体来看,也是发生了广义上的不理想情况。但是,如上所述,根据本实施方式,能够迅速进行向替代路径的切换。因此,本实施方式的有线自组织网络也能够适用于在不理想情况发生时希望迅速进行中继路径的切换那样的关键任务系统,是容错网络。
图19是暂停解除处理的流程图。图19的处理被图17的步骤S805调用。
在步骤S1001中,端口监视部137将图10的暂停状态管理数据154的暂停开始时刻StartTime清零。例如,端口监视部137也可以对暂停开始时刻StartTime设定作为时刻的无效的特殊的值,由此将暂停开始时刻StartTime清零。
并且,在步骤S1002中,端口监视部137与图18的步骤S902同样地生成暂停帧。
接着,在步骤S1003中,端口监视部137将暂停状态管理数据154的计数器SCount清零。例如,端口监视部137也可以将计数器SCount设定成0,由此将计数器SCount清零。
另外,在步骤S1004中,端口监视部137对暂停帧的暂停计数器设定0。暂停计数器被设定成0的暂停帧是用于通知对暂停状态进行解除的 帧。
并且,在步骤S1005中,进行与图18的步骤S905同样的处理。
即,端口监视部137使端口选择部138选择能够发送暂停帧的端口,并将暂停帧向发送帧控制部140输出。另外,端口选择部138,作为选择结果,例如将“C”状态的端口通知给发送帧控制部140。或者,端口选择部138也可以选择是“C”状态且是“N”状态的端口。
其结果,发送帧控制部140从由端口选择部138选择的端口的每个发送暂停帧。
图20是端口监视处理的流程图。针对端口101-1~101-x中的每个进行端口监视处理。下面,以针对端口101-i(1≤i≤x)进行端口监视处理的情况为例进行说明。
在步骤S1101中,端口监视部137判断端口101-i是否是连接状态。例如端口监视部137根据PHY芯片111-i的输出来进行步骤S1101的判断,该PHY芯片111-i的输出表示与端口101-i连接的电缆是可通信的状态还是链路断开状态。
如果与端口101-i连接的电缆是可通信的状态,端口101-i是经由电缆与邻接节点装置有效连接的状态,则处理向步骤S1102转移。另一方面,如果与端口101-i连接的电缆是链路断开状态,则处理向步骤S1103转移。
在步骤S1102中,端口监视部137借助于表控制部136,在图8的端口链路状态表152中将端口101-i的链路状态Li设定为“C”状态。并且,处理返回到步骤S1101。
另外,在步骤S1103中,端口监视部137借助于表控制部136,在图8的端口链路状态表152中将端口101-i的链路状态Li设定成“D”状态。并且,处理返回到步骤S1101。
通过以上那样的处理,以规定的周期反复执行图20的端口监视处理。
然而,若对以上那样的参照图1~图20说明了的本实施方式进行总结,则如下所述。
上述实施方式的节点装置100作为包含多个节点装置的网络中的第1节点装置来使用,且该多个节点装置包含被有线连接的第1节点装置和第2节点装置。上述网络的具体例是图2A的有线自组织网络200。
如图1、图5所示那样,第1节点装置具有多个端口101-1~101-x。各端口是用于将多个节点装置中的第1节点装置以外的其他节点装置与第1节点装置进行有线连接的端口。
另外,作为第1节点装置的节点装置100具有循环检测表105,作为保存循环检测信息的循环检测信息保存单元的具体例。下面为了便于说明,将与第i个(1≤i≤m)项对应的、节点装置100过去发送过的帧称为“第1帧”。
端口状态LP1i~LPxi是发送目的地端口判别信息的一个例子,该发送目的地端口判别信息是从多个端口中判别出节点装置100发送了第1帧时的发送目的地端口、即第1端口的信息。即,端口101-1~101-x各自的状态LP1i~LPxi作为整体,是用于判别““U”状态的端口是哪个端口”的信息,在第i个项中“U”状态的端口,具体来讲是上述的第1端口。
另外,发送源GSi和FIDi的组是用于唯一识别第1帧的第1识别信息的例子。这样,循环检测表105的第i个项的数据是将发送目的地端口判别信息和第1识别信息建立了对应关系的循环检测信息的一个例子。
本实施方式中的第1识别信息是作为节点装置识别信息(具体来讲是节点ID)的发送源GSi、和作为唯一识别发送源节点装置作为发送源而发送的多个帧的每个的帧识别信息的一个例子的FID、即FIDi的组。但是,循环检测表105是用于检测发生了循环的帧的表,因此当然可以利用能够唯一识别帧的任意的识别信息来代替节点ID与FID的组。
另外,路由表103是对路由信息进行保存的路由信息保存单元的一个例子。路由信息将表示可否从作为第1节点装置的节点装置100的多个端口101-1~101-x的每个发送帧的信息即状态信息与多个节点装置的每个建立了对应关系。
例如,若关注路由表103的第j个(1≤j≤n)项,则作为状态信息的具体例的状态RP1j~RPxj与多个节点装置中的、由目的地GDj这样的节点ID识别的某个节点装置建立了对应关系。这里,状态RP1j~RPxj表示可否从端口101-1~101-x的每个发送帧。更具体来讲,“U”状态和“E”状态表示“可发送”,“L”状态、“D”状态和“P”状态表示“不可发送”。
另外,作为上述第1节点装置的节点装置100具有图6的接收部131,该接收部131作为从邻接节点装置、即上述第2节点装置接收第2帧的接收单元发挥作用。另外,用于唯一识别第2帧的第2识别信息的具体例是第2帧所包含的、GS412和FID414的值的组。
另外,节点装置100所具有的路由引擎102也作为进行以下处理的路由信息更新单元而发挥作用。换言之,作为表控制部136和端口选择部138的FPGA113是路由信息更新单元的具体例。
作为路由信息更新单元的FPGA113,在第2识别信息与第1识别信息一致的情况下(具体来讲是在循环检测表105中项被命中的情况下),进行状态信息的更新。
也就是说,通过路由信息与作为第2帧的目的地的目的地节点装置建立了对应关系的状态信息被更新为表示“不可从第1端口发送帧”。在本实施方式中,具体来讲,在图11D的步骤S223中,在与目的地节点装置对应的路由表103的项中,与第1端口对应的状态被更新为“L”,由此表示为“不可从第1端口发送帧”。
并且,节点装置100具备作为发送单元而发挥作用的端口选择部138、发送帧控制部140和发送部141。作为发送单元而发挥作用的这些各部,根据通过路由信息与目的地节点装置建立了对应关系的状态信息,选择能够发送第2帧的第2端口,进行从第2端口发送第2帧的处理。在本实施方式中,第2端口如下述那样被选择。
·在第2识别信息与第1识别信息不一致的情况下(即没有检测出循环的情况下),在路由表103中与目的地节点装置对应的项中,“U”状态或者“E”状态的端口被选择为第2端口。另外,如本实施方式那样,也可以考虑网络整体的路径的收敛速度,在步骤S234中优先选择“U”状态 的端口。
·反之,在第2识别信息与第1识别信息一致的情况下(即检测出循环的情况下),在路由表103中被命中的、与目的地节点装置对应的项中,“E”状态的端口被选择为第2端口。
另外,节点装置100所具备的端口监视部137作为针对多个端口监视其是否为链路断开状态的链路断开监视单元而发挥作用,并且也作为监视第1节点装置的负荷的负荷监视单元而发挥作用。例如利用缓冲部142的使用率计测负荷。
在作为接收单元的接收部131接收到第2帧时,作为路由信息更新单元的端口选择部138如下述那样对状态信息进行更新。即,端口选择部138将通过路由信息与目的地节点装置建立了对应关系的状态信息更新为表示“不可从被判定为链路断开状态的端口发送帧”。在本实施方式中,如步骤S222和S233所示那样,由于是“D”状态,所以表示为“不可发送帧”。
另外,在被端口监视部137监视的负荷超过了预先决定的基准的情况下,如步骤S803所示那样,由端口监视部137生成第1暂停帧,并通过作为发送单元的发送帧控制部140和发送部141向邻接节点装置发送。
并且,也有作为接收单元的接收部131在从邻接节点装置中的任意一个接收到第2暂停帧后,从上述的第2节点装置(即邻接节点装置中的1个)接收上述的第2帧的情况。
在这种情况下,作为路由信息更新单元的端口选择部138如步骤S222和S233所示例的那样,对状态信息进行更新。也就是说,端口选择部138将通过路由信息与目的地节点装置建立了对应关系的状态信息,更新为表示“不可从与作为第2暂停帧的发送源的暂停请求节点装置连接的第3端口发送帧”。在本实施方式中,具体来讲由于是“P”状态,所以表示为“不可发送帧”。
另外,也存在由作为发送单元的端口选择部138,根据通过路由信息与目的地节点装置建立了对应关系的状态信息,判断为“不存在能够发送第2帧的端口”的情况。在这种情况下,通过作为发送单元的端口选择部138、发送帧控制部140、和发送部141,第2帧被返送回第2节点装置。
另外,广播管理表104是广播管理信息保存单元的具体例。广播管理表104与用于对第1广播帧的发送源进行识别的第1广播发送源信息即MAC地址建立对应关系地保存表示第1广播帧的处理时刻的时刻信息。
另外,在作为接收单元的接收部131接收到第2广播帧时,如果下面的2个条件成立,则如步骤S211那样,废弃第2广播帧。
·用于识别第2广播帧的发送源的第2广播发送源信息与第1广播发送源信息相同。
·上述的时刻信息和当前时刻之差在规定的时间以下。
另外,在本实施方式中,接收帧控制部133执行步骤S211的废弃,但是在涉及到为了对接收到的帧进行中继而判断是否从节点装置100自身进行发送的观点来看,步骤S211是发送处理的前处理。也就是说,接收帧控制部133在发送单元内也作为负责前处理的一部分来发挥作用。
另外,在本实施方式中,在图11A~图11D的处理中,各分支步骤是单纯的判断,即判断检索结果是命中还是未命中,或者判断规定的字段中是否设定了规定的值。如果时效时间与上述“规定的时间”相同,都是10ms,则步骤S210也回归到判断检索结果是命中还是未命中这样的单纯的判断。因此,利用开关元件(换言之是逻辑运算电路,更具体来讲是FPGA113)能够实现图11A~图11D中的分支。
另外,作为发送单元的端口选择部138选择第2端口的处理由于不依赖于各种信息的履历,所以能够通过组合逻辑电路来实现,具体来讲,能够通过作为可编程逻辑器件的一例的FPGA113来实现。另外,一般情况下,FPGA的动作可以利用将第1位组合作为输入、将第2位组合作为输出的查询表来进行编程。因此,作为上述的发送单元的FPGA113能够利用将下述那样的位组合作为输入输出的查询表来进行编程。
·第1位组合表示多个端口各自是由规定的1个以上的可发送状态与规定的1个以上的不可发送状态组成的规定个数的状态中的哪一种。例如,在没有检测出循环的情况下的处理逻辑中,“可发送状态”包含路由表103中的“E”状态和“U”状态,“不可发送状态”包含路由表103中的“L”状态、“D”状态和“P”状态。
·第2位组合表示用于识别多个端口的每个的端口识别信息。
同样,对于检测出循环的情况下的处理逻辑来说,在路由表103中,将针对各端口表示是可发送状态(“E”状态)还是不可发送状态(“L”、“U”、“P”、或者“D”状态)的位组合作为输入即可。
另外,由于参照图1~图20说明过的本实施方式中有各种优点,所以在下面进行说明。
本实施方式的第1优点在于,故障发生时的路径切换的所需时间较短。另外,对于广义上的网络故障来说,不仅包含链路的物理断线,也包含某个节点装置陷于繁忙状态而实际上无法接收帧的情况。
对于故障发生时的路径切换的本实施方式中的所需时间的长度,将本实施方式和其他技术进行比较就可以清楚的了解,因此下面将一些技术与本实施方式进行比较。
在构建网络时,有时会将线路等冗余化,以使得即使在发生了通信节点装置的故障或链路的断线之类的故障时,网络系统整体也不会瘫痪。例如,在OSI(Open Systems Interconnection,开放系统互连)的第2层(即数据链路层)上进行动作的、用于防止循环发生的协议、即STP(Spanning Tree Protocol,生成树协议)被应用于冗余化的网络。另外,在第3层(即网络层)在进行动作的路由协议、即OSPF(Open Shortest Path First,开放式最短路径优先)也被应用于冗余化的网络。另外,非专利文献1的S-wire也能够被应用于网格状地冗余化网络。
STP、OSPF、和S-wire实现选择网络中的路径的功能、以及在发生故障时重新计算路径来进行恢复的功能。下面为了使本实施方式的优点容易理解,对作为比较对象的STP、OSPF、以及S-wire稍微进行详细说明。
在使用了第2层的帧交换的冗余化构成中,网络线路被构成为环(即圆环)状。
这里,假设没有进行基于STP的帧的循环防止。于是,在被构成为交换装置被物理上连接成环状的网络中,以广播帧为首的各种通信数据有 可能在网络上永远循环下去。其原因在于,在第2层的帧的帧头中,没有TTL字段。
其结果,帧永远持续循环,导致各交换装置内的CPU(Central Processing Unit)的负荷上升,在最坏的情况下,存在CPU崩溃的危险性。由于帧持续进行循环,网络的带宽被浪费,其结果,存在着导致网络瘫痪的危险性。
根据STP,为了防止上述那样的危险的帧循环,以给定的优先等级为基础,在网桥间,交换被称为BPDU(Bridge Protocol Data Unit,桥协议数据单元)的控制信息。其结果,各网桥决定阻塞帧的端口和转发帧的端口。
各网桥适当地将某个端口设为阻塞状态,将阻塞状态的端口接收到的帧废弃。其结果,即使是通过电缆被物理连接成环状的网络,防止了帧一直持续在环中循环的情况。
另外,在OSPF中,为了了解当前的网络拓扑,各路由器从所有的路由器收集信息。被收集的信息由各路由器内的数据库进行保管。各路由器参照数据库,使用SPF(Shortest Path First,开放最短路径优先)算法来作成SPF树,根据SPF树作成路由表。由于在SPF树被作成后路由表被作成,所以根据OSPF,路由循环难以发生。
另外,在基于S-wire的路径作成算法(下面称为“S-wire算法”)中,各节点装置具有按端口管理权重的表。权重基于到成为帧转送的目标的网关为止数据经由的节点装置数(即跳数)。在进行帧转送时,各节点装置按照权重来决定发送目的地端口。
并且,在由于节点装置的故障或者断线等一些理由而导致通信失败的情况下,节点装置把与为了失败了的该通信而发送了帧的端口对应的权重进行更新,从其他端口再次发送帧。其结果,作为网络整体,实现了基于各节点装置的分散协调的路径的发现以及学习。
这里,对故障发生时的路径切换的所需时间进行比较、考察可知,本实施方式与STP、OSPF、S-wire的任意一个相比都具有优势。
根据STP,网桥在形成故障时的迂回路径(即路径切换)时,在“Disabled,无效”状态、“Blocking,阻塞”状态、“Listening,监听”状态、“Learning,学习”状态、和“Forwarding,转发”状态这5个状态中迁移。根据默认的定时器设定,“Blocking”状态的最大经过时间是20秒,“Listening”状态和“Learning”状态涉及的转送延迟各是15秒。因此,在默认的定时器设定中,最大会发生50(=20+15+15)秒的通信中断。
另外,虽然省略了详细说明,但是即使在对STP进行了改良而得到的RSTP(Rapid Spanning Tree Protocol,快速生成树协议)中,路径切换也需要1秒左右。
另外,根据OSPF,由于被路由器保持在内部的路由表的重新计算需要花费时间,所以有时从故障发生到恢复为止,需要花费数十秒的时间。其原因在于,在OSPF中,由于为了进行求出最短路径的计算而使用了复杂的算法(即迪杰斯特拉法),所以路由器的CPU和存储器资源消耗很大。
在S-wire算法中,由于权重的计算需要花费一定程度的时间,所以故障时的路径切换需要1秒左右。
在关键任务环境下,希望故障时的路径切换时间尽可能的短,根据网络用途的不同,有时连1秒也太长。但是,在进行STP中的路径成本计算、基于OSPF中的迪杰斯特拉法的计算、S-wire算法中的权重计算这样的算术计算时,很明显需要花费一定程度的时间。
另一方面,在本实施方式中,如上所述,在进行路由表103和循环检测表105的更新时,无需进行算术计算。其原因在于,被路由表103和循环检测表105管理的不是权重或距离等的数值数据,而是以离散形式表现的状态。
另外,不使用数值数据而是通过状态来管理端口在实用上也会得到足够的性能,其原因在于,在本实施方式中,邻接节点之间被有线连接,通信质量是稳定的。也就是说,在通信质量急剧变化的无线通信中,由于优选根据通信质量的变化来选择合适的路径,所以一般情况下,会进行反映通信质量的变化的算术运算,而在本实施方式中,无需考虑通信质量的 变化。
如上述那样,在本实施方式中,在进行路由表103和循环检测表105的更新时,无需进行算术计算。因此,通过进行接通、断开的开关动作的逻辑运算电路(具体来讲例如FPGA113),能够容易地实现路由引擎102。因此,与通过基于MPU114的软件控制来实现的情况相比,在本实施方式中,路由引擎102更高速地进行动作。
因此,根据本实施方式,对于故障发生时的路径切换所需的时间,从“在某1个节点装置100内路由表103被更新所需的时间”的含义来看,只不过是数μs。
当然,至于作为有线自组织网络整体而切换路径,有时会发生图2B所例示那样的回溯,在这种情况下,在节点装置间进行的帧的返送所花费的时间也不为零。但是,即使这样,在大部分的情况下,在远小于1秒的时间内,作为有线自组织网络整体,路径被切换。也就是说,只要回溯的次数不是异常的多,则从有线自组织网络整体来看,在远小于1秒的时间内路径被切换。
根据本实施方式,各节点装置100通过利用循环检测表105,不用进行任何算术运算,而且以独立的方式来检测循环,能够对与循环发生的路径对应的发送目的地端口进行学习。另外,这里的“独立的方式”指的是,与其他节点装置之间不交换与网络拓扑有关的信息。
这样,与各节点装置100以独立的方式进行动作无关,通过图11D的步骤S226或者图11C的步骤S238,在有线自组织网络整体中,实现图2B那样的、基于分散协调的深度优先搜索。并且,作为深度优先搜索的结果,新的路径被发现,切换到该新的路径为止所需的时间在本实施方式中如上述那样,远小于1秒。
这样,由于即使在故障发生时也会以较短的时间来切换路径,所以基于本实施方式的有线自组织网络也能够很好地适用于关键任务网络系统。例如,在将本实施方式应用于利用了以1秒数次~数十次左右的频度来输出数据的传感器的传感器网络的情况下,由于以远小于1秒的较短时间来完成路径的切换,所以故障发生时的数据消失的概率较低。
另外,本实施方式还具有其他优点。具体来讲,根据本实施方式,有如下优点:网络管理者无需事先设计有线自组织网络的拓扑、或者对节点装置100设定参数等。
设计和设定所花费的工夫随着网络所包含的节点装置的数量增多而成为严重的问题。因此,例如在传感器网络等的、网络内包含多个节点装置的应用领域中,“不用进行设计和设定就能够立即使用”这样的特征是非常理想的特征。
例如,STP和RSTP虽然是被设计成无需事先设定就能够进行动作的协议,但是在实用上,很多情况下需要事先进行网络设计。具体来讲,实用中要求,网络内的位于适当的位置的具有适当的性能的2个节点装置被分别预先设计成是根网桥和作为根网桥的冗余备份的网桥的设计。其原因在于,若网络的规模在一定程度上变大,则在发生故障时到再次形成路径为止的收敛时间变长,由于在所有的节点装置将相同信息共享之前不会再进行数据的转送,所以其结果有时会导致网络瘫痪。
另外,在OSPF中,需要进行如下的网络设计,即1个网络被分割成多个区域,并分成各区域内和区域间的路由。并且,需要进行按照该网络设计来设定路由器的作业。
需要进行这样的网络设计的理由之一是,随着网络的规模变大,故障或网络拓扑变更的发生概率变高,需要频繁地进行SPF树的再次计算。另外,还有一个理由是,随着路由器的增加,为了构建数据库而在路由器之间交换的LSA(Link-State Advertisement,链路状态通告)的数量增多。
于是,在利用OSPF的情况下,通过将网络分割成多个区域来构建具有多区域的网络,来对LSA到达的范围进行分割,使网络的变化只限于在区域内,从而来提高性能的方式被广泛运用。
另一方面,根据本实施方式,各表从空的初始状态开始被节点装置100自动地学习。也就是说,无需事先对各表设定参数。
另外,图11A~图20所示的各种处理是能够与“哪个节点装置之间被连接”或者“哪个端口之间被连接”之类的情况无关地被实现的处理。也就是说,根据本实施方式,只要通过任意的方式将多个节点装置有线连接, 来构建有线自组织网络,通过分散协调,适当的路径被选择,帧被中继。
并且,根据上述那样的本实施方式,到新的路径被选择为止的收敛(convergence)仅仅是远小于1秒的时间(例如数μs)。换言之,在本实施方式中,无需为了将收敛时间控制在不影响实用的范围内而事先进行网络设计。这样,根据本实施方式,不用进行繁琐的设计和设定作业就实现了合适的性能和冗余化。
并且,在本实施方式中,还具有能够充分利用网络资源的优点。与STP以及RSTP进行比较会更好地理解该优点。
在STP和RSTP中,在平常时,与冗余化的链路连接的端口被设定成阻塞状态(即被设定为阻塞端口),以使得被物理连接成环状的网络上不会发生帧无限循环的情况。换言之,除了平常时被利用的路径以外,还存在有在平常时不被利用而只是在故障发生时才被利用的后备路径。因此,在平常时,网络资源(即后备路径)处于休眠状态。
与此相对,在本实施方式中,由于有线自组织网络内的链路并不被区分成平常时用和故障发生时用,所以网络资源不会休眠,能够充分地进行利用。
另外,本发明不限于上述的实施方式,能够进行各种变形。下面对这些例子进行说明。
在上述实施方式中,路由引擎102通过FPGA113来实现,但是也可以通过ASIC(Application Specific Integrated Circuit,特殊应用集成电路)来实现路由引擎102。或者,也可以通过由MPU114执行固件程序来实现路由引擎102。固件程序可以由计算机可读的任意的存储介质进行保存并提供。
在上述实施方式中,各种数据例以表形式进行表示,但是表形式只是示例了能够实现利用了CAM115这样的硬件的快速检索的、优选的数据形式的一个例子。根据实施方式的不同,节点装置100也可以利用表形式以外的形式来保持各种数据。
另外,图6的表保存部135如上述那样,可以通过CAM115和 SRAM116的组合来实现,但是也可以仅通过CAM115、或者仅通过SRAM116来实现。表保存部135还可以通过其他的任意的1种以上的存储装置的组合来实现。
另外,图3的自组织帧400的形式是一个例子。自组织帧头410中的字段的顺序和各字段的长度根据实施方式可以是任意的。另外,类型413的具体的值、节点装置100生成FID414的值的方法、TTL415的初始值、FCS417的计算算法等,也可以根据实施方式任意地决定。
另外,在图2A中,例如传感器204被图示在节点装置100e的外部。但是,根据实施方式,节点装置也可以内置传感器。例如,除了图5的各硬件之外,节点装置还可以具有内置传感器。
并且,作为图5的通用LAN端口106的替代,内置传感器也可以将以太网帧形式的数据(即内置传感器探测到的结果的数据)向L2SW部112输出。或者,内置传感器也可以将探测到的结果的数据向MPU114输出,由MPU114生成包含内置传感器探测到的结果的数据的以太网帧420并向FPGA113输出。
另外,在图2A中,传感器204经由通用LAN端口106e与节点装置100e连接,但是传感器204和节点装置100e之间的连接接口也可以是通用LAN端口106e以外的任意的接口。
另外,在上述实施方式中,考虑有线自组织网络和外部网络之间的兼容性来进行利用了广播管理表104的广播帧的相同性的判定。但是,在不与外部网络连接而是被孤立运用的有线自组织网络中,各节点装置也可以不具有广播管理表104,图11B的步骤S210、S211、S214可以被省略。
Claims (8)
1.一种第1节点装置,其特征在于,是包含多个节点装置的网络中的第1节点装置,该多个节点装置包含被有线连接的上述第1节点装置和第2节点装置,该第1节点装置具备:
多个端口,分别是用于将上述多个节点装置中的上述第1节点装置以外的其他节点装置和上述第1节点装置进行有线连接的端口;
循环检测信息保存单元,其保存循环检测信息,该循环检测信息将发送目的地端口判别信息和第1识别信息建立了对应关系,该发送目的地端口判别信息用于从上述多个端口中判别上述第1节点装置发送了第1帧时的发送目的地端口、即第1端口,该第1识别信息用于唯一识别上述第1帧;
路由信息保存单元,其保存路由信息,该路由信息将表示可否从上述多个端口的每个发送帧的信息、即状态信息与上述多个节点装置的每个节点装置建立了对应关系;
接收单元,其从上述第2节点装置接收第2帧,该第2帧包含用于唯一识别上述第2帧的第2识别信息;
路由信息更新单元,在上述第2识别信息与上述第1识别信息一致的情况下,该路由信息更新单元将通过上述路由信息与目的地节点装置建立了对应关系的上述状态信息更新为表示不可从上述第1端口发送帧,该目的地节点装置是上述多个节点装置中的任意一个、且是上述第2帧的目的地;和
发送单元,其根据通过上述路由信息与上述目的地节点装置建立了对应关系的上述状态信息,从上述多个端口中选择能够发送上述第2帧的第2端口,并从上述第2端口发送上述第2帧。
2.根据权利要求1所述的第1节点装置,其特征在于,
还具备链路断开监视单元,其监视上述多个端口是否是链路断开状态,
在上述接收单元接收到上述第2帧时,上述路由信息更新单元将通过上述路由信息与上述目的地节点装置建立了对应关系的上述状态信息更新为表示不可从由上述链路断开监视单元判定为是链路断开状态的端口发送帧。
3.根据权利要求1或2所述的第1节点装置,其特征在于,
还具备负荷监视单元,该负荷监视单元监视上述第1节点装置的负荷,
在上述负荷超过了预先决定的基准的情况下,上述负荷监视单元生成第1暂停帧,上述发送单元将上述第1暂停帧向1个以上的邻接节点装置进行发送,其中,该第1暂停帧用于向上述多个节点装置中的与上述第1节点装置有线连接的上述1个以上的邻接节点装置请求停止向上述第1节点装置发送帧,
当上述接收单元在从上述1个以上的邻接节点装置中的任意一个接收到用于请求停止发送帧的第2暂停帧后,从上述第2节点装置接收到上述第2帧的情况下,上述路由信息更新单元将通过上述路由信息与上述目的地节点装置建立了对应关系的上述状态信息更新为表示不可从上述多个端口中的、与作为上述第2暂停帧的发送源的暂停请求节点装置连接的第3端口发送帧。
4.根据权利要求1或2所述的第1节点装置,其特征在于,
上述发送单元若根据通过上述路由信息与上述目的地节点装置建立了对应关系的上述状态信息判断为上述多个端口中不存在能够发送上述第2帧的端口,则将上述第2帧向上述第2节点装置返回。
5.根据权利要求1或2所述的第1节点装置,其特征在于,
还具备广播管理信息保存单元,该广播管理信息保存单元与用于识别由上述接收单元接收到的第1广播帧的发送源的第1广播发送源信息建立对应关系地保存表示上述第1广播帧的处理时刻的时刻信息,
在上述接收单元接收到第2广播帧时,如果用于识别上述第2广播帧的发送源的第2广播发送源信息与上述第1广播发送源信息相同,并且上述时刻信息与当前时刻之差在规定的时间以下,则上述发送单元废弃上述第2广播帧。
6.根据权利要求1或2所述的第1节点装置,其特征在于,
上述第1识别信息包含:
第1节点装置识别信息,用于在上述多个节点装置中唯一识别是上述多个节点装置中的任意一个、且是上述第1帧的发送源的第1发送源节点装置;和
第1帧识别信息,用于唯一识别上述第1发送源节点装置作为发送源发送的多个帧的每一个,
上述第2识别信息包含:
第2节点装置识别信息,用于在上述多个节点装置中唯一识别是上述多个节点装置中的任意一个、且是上述第2帧的发送源的第2发送源节点装置;和
第2帧识别信息,用于唯一识别上述第2发送源节点装置作为发送源发送的多个帧的每一个。
7.根据权利要求1或2所述的第1节点装置,其特征在于,
上述状态信息是针对上述多个端口的每个将表示可发送的规定的1个以上的可发送状态中的任意一个、或者表示不可发送的规定的1个以上的不可发送状态中的任意一个与之建立对应关系的信息,
上述发送单元具备利用查询表来定义的可编程逻辑器件,该查询表将第1位组合作为输入,将第2位组合作为输出,上述第1位组合表示上述多个端口的每一个是由上述规定的1个以上的可发送状态和上述规定的1个以上的不可发送状态组成的规定个数的状态中的哪一个,上述第2位组合表示用于识别上述多个端口的每一个的端口识别信息,
通过上述可编程逻辑器件,上述发送单元根据上述状态信息来决定上述第2端口。
8.一种通信方法,其特征在于,由包含多个节点装置的网络中的第1节点装置执行,该多个节点装置包含被有线连接的上述第1节点装置和第2节点装置,在该方法中,
从用于将上述多个节点装置中的上述第1节点装置以外的其他节点装置和上述第1节点装置进行有线连接的、上述第1节点装置所具备的多个端口中的第1端口发送第1帧,
将用于从上述多个端口中判别上述第1端口的发送目的地端口判别信息、和用于唯一识别上述第1帧的第1识别信息建立对应关系作为循环检测信息进行保存,
从上述第2节点装置接收第2帧,且该第2帧包含用于唯一识别上述第2帧的第2识别信息,
在上述第2识别信息与上述第1识别信息一致的情况下,
参照路由信息,且该路由信息将表示可否从上述多个端口的每个发送帧的信息、即状态信息与上述多个节点装置的每个节点装置建立了对应关系,
将通过上述路由信息与目的地节点装置建立了对应关系的上述状态信息更新为表示不可从上述第1端口发送帧,该目的地节点装置是上述多个节点装置中的任意一个、且是上述第2帧的目的地,
根据通过上述路由信息与上述目的地节点装置建立了对应关系的上述状态信息,从上述多个端口中选择能够发送上述第2帧的第2端口,
从上述第2端口发送上述第2帧。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2009/002055 WO2010131288A1 (ja) | 2009-05-11 | 2009-05-11 | ノード装置および通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102415054A CN102415054A (zh) | 2012-04-11 |
CN102415054B true CN102415054B (zh) | 2015-02-11 |
Family
ID=43084686
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980159059.2A Active CN102415054B (zh) | 2009-05-11 | 2009-05-11 | 节点装置和通信方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8672566B2 (zh) |
EP (1) | EP2432164B1 (zh) |
JP (1) | JP5299508B2 (zh) |
KR (1) | KR101208230B1 (zh) |
CN (1) | CN102415054B (zh) |
RU (1) | RU2502203C2 (zh) |
WO (1) | WO2010131288A1 (zh) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9124524B2 (en) * | 2011-06-29 | 2015-09-01 | Broadcom Corporation | System and method for priority based flow control between nodes |
JP5579325B2 (ja) * | 2011-07-12 | 2014-08-27 | 古河電気工業株式会社 | 通信装置及び通信システム |
WO2013042207A1 (ja) * | 2011-09-20 | 2013-03-28 | 富士通株式会社 | ノード装置および通信方法 |
US8862772B2 (en) * | 2012-10-09 | 2014-10-14 | Cisco Technology, Inc. | System and method for implementing a multilevel data center fabric in a network environment |
US8593948B1 (en) * | 2012-12-04 | 2013-11-26 | Hitachi, Ltd. | Network device and method of controlling network device |
US9369372B1 (en) * | 2013-03-13 | 2016-06-14 | Altera Corporation | Methods for network forwarding database flushing |
US9172646B2 (en) * | 2013-03-15 | 2015-10-27 | International Business Machines Corporation | Dynamic reconfiguration of network devices for outage prediction |
JP6098322B2 (ja) | 2013-04-17 | 2017-03-22 | 富士通株式会社 | パケット転送方法、ノード装置およびプログラム |
US9448548B2 (en) | 2013-06-14 | 2016-09-20 | Honeywell International Inc. | Synchronizing and displaying fault tolerant Ethernet (FTE) status |
JP6149597B2 (ja) * | 2013-08-14 | 2017-06-21 | 富士通株式会社 | ノード装置、データ中継方法、及び、プログラム |
US20160254980A1 (en) * | 2013-11-25 | 2016-09-01 | Mitsubishi Electric Corporation | Relay device and communication network |
US9413849B2 (en) * | 2013-12-05 | 2016-08-09 | International Business Machines Corporation | Distributing an executable job load file to compute nodes in a parallel computer |
GB2524749B (en) * | 2014-03-31 | 2018-12-19 | Metaswitch Networks Ltd | Spanning tree protocol |
US9647667B1 (en) * | 2014-04-30 | 2017-05-09 | Altera Corporation | Hybrid architecture for signal processing and signal processing accelerator |
TWI530126B (zh) * | 2014-06-04 | 2016-04-11 | 動聯國際股份有限公司 | 位基型網路系統 |
CN105282036A (zh) * | 2014-06-18 | 2016-01-27 | 深圳市中兴微电子技术有限公司 | 一种路由节点、路由交换方法及系统 |
CN105634944B (zh) * | 2014-11-26 | 2018-11-09 | 华为技术有限公司 | 路由环路确定方法及设备 |
RU2599937C1 (ru) * | 2015-03-26 | 2016-10-20 | Общество с ограниченной ответственностью "Научно-производственное предприятие "Цифровые решения" | Способ предотвращения сбоев в локальной компьютерной сети, вызванных возникновением неправильно настроенных узлов |
KR101650900B1 (ko) * | 2015-08-28 | 2016-08-24 | 성균관대학교산학협력단 | 트리 구조 무선 센서 네트워크의 백트래킹 스위칭 장치 및 방법 |
DE112015007035T5 (de) * | 2015-11-26 | 2018-07-19 | Mitsubishi Electric Corporation | Weiterleitungsvorrichtung und kommunikationsnetz |
US10588168B2 (en) * | 2017-05-15 | 2020-03-10 | Apple Inc. | Peer-to-peer transmission pause indication |
US11341123B2 (en) | 2017-06-30 | 2022-05-24 | Nchain Licensing Ag | Probabilistic relay for efficient propagation in a blockchain network |
US20190059041A1 (en) * | 2017-08-17 | 2019-02-21 | Hype Labs Inc. | Systems and methods for wireless communication network loop detection |
CN107528730B (zh) * | 2017-08-28 | 2021-08-27 | 北京格是菁华信息技术有限公司 | 多重冗余方法、多重冗余服务器以及系统 |
CA2982147A1 (en) * | 2017-10-12 | 2019-04-12 | Rockport Networks Inc. | Direct interconnect gateway |
RU182177U1 (ru) * | 2018-04-25 | 2018-08-06 | Общество с ограниченной ответственностью "КЬЮТЭК" | Управляемый коммутатор |
JP7010804B2 (ja) * | 2018-11-22 | 2022-01-26 | 株式会社東芝 | 中継装置、ネットワークシステム、中継方法およびプログラム |
SE1950056A1 (en) * | 2019-01-17 | 2020-07-18 | Telia Co Ab | Methods and apparatuses for switching frames in a network topology |
US11647259B2 (en) * | 2020-06-17 | 2023-05-09 | Yieldmo, Inc. | Method for serving interactive digital advertising content within a streaming platform |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11191782A (ja) * | 1997-12-25 | 1999-07-13 | Hitachi Cable Ltd | ブリッジ装置 |
AU2000238787A1 (en) | 2000-02-08 | 2001-08-20 | Nishan Systems, Inc. | Method and apparatus for transferring data between different network devices over an ip network |
JP3575435B2 (ja) | 2001-03-09 | 2004-10-13 | 日本電気株式会社 | 電話システム及び電話接続監視方法 |
JP2003273964A (ja) | 2002-03-15 | 2003-09-26 | Ntt Docomo Inc | 通信システム、通信制御方法及びルータ |
JP2004320248A (ja) * | 2003-04-14 | 2004-11-11 | Fujitsu Ltd | 通信装置,輻輳回避方法および伝送システム |
JP5037120B2 (ja) | 2003-06-05 | 2012-09-26 | メッシュネットワークス インコーポレイテッド | アドホック無線通信ネットワークにおける最適なルーティング |
US6925064B2 (en) * | 2003-09-11 | 2005-08-02 | Motorola, Inc. | Method and apparatus for discovering neighbors within a piconet communication system |
JP2006340165A (ja) | 2005-06-03 | 2006-12-14 | Hitachi Communication Technologies Ltd | 通信経路切替制御システム及びルータ装置 |
WO2007029337A1 (ja) * | 2005-09-09 | 2007-03-15 | Fujitsu Limited | データ損失を低減するアドホック系ネットワーク装置 |
WO2007066766A1 (ja) * | 2005-12-09 | 2007-06-14 | Matsushita Electric Industrial Co., Ltd. | ネットワークシステムおよび中継装置 |
WO2007108054A1 (ja) * | 2006-03-16 | 2007-09-27 | Fujitsu Limited | 通信ノード及び通信経路選択方法 |
US9043487B2 (en) * | 2006-04-18 | 2015-05-26 | Cisco Technology, Inc. | Dynamically configuring and verifying routing information of broadcast networks using link state protocols in a computer network |
US7583589B2 (en) * | 2007-03-15 | 2009-09-01 | Cisco Technology, Inc. | Computing repair path information |
US7940776B2 (en) * | 2007-06-13 | 2011-05-10 | Cisco Technology, Inc. | Fast re-routing in distance vector routing protocol networks |
JP2009033557A (ja) * | 2007-07-27 | 2009-02-12 | Fujitsu Telecom Networks Ltd | ネットワークアクセスシステムおよびネットワークアクセス方法 |
US7787480B1 (en) * | 2009-03-04 | 2010-08-31 | Juniper Networks, Inc. | Routing frames in a trill network using service VLAN identifiers |
EP2464060B1 (en) * | 2009-07-27 | 2016-05-04 | Fujitsu Limited | Node device, storage medium, and method for transmitting frame |
CN102835182B (zh) * | 2010-03-31 | 2015-07-15 | 富士通株式会社 | 节点装置以及绕行路径调查方法 |
-
2009
- 2009-05-11 JP JP2011513122A patent/JP5299508B2/ja active Active
- 2009-05-11 WO PCT/JP2009/002055 patent/WO2010131288A1/ja active Application Filing
- 2009-05-11 KR KR1020117026238A patent/KR101208230B1/ko not_active IP Right Cessation
- 2009-05-11 CN CN200980159059.2A patent/CN102415054B/zh active Active
- 2009-05-11 RU RU2011149464/08A patent/RU2502203C2/ru not_active IP Right Cessation
- 2009-05-11 EP EP09844564.6A patent/EP2432164B1/en active Active
-
2011
- 2011-11-03 US US13/288,462 patent/US8672566B2/en active Active
Non-Patent Citations (1)
Title |
---|
Intelligent Ants for Adaptive Network Routing;H. Yun等;《Proceedings of the Second Annual Conference on Communication Networks and Services Research(CNSR"04)》;20040521;全文 * |
Also Published As
Publication number | Publication date |
---|---|
JP5299508B2 (ja) | 2013-09-25 |
US8672566B2 (en) | 2014-03-18 |
KR20120040129A (ko) | 2012-04-26 |
KR101208230B1 (ko) | 2012-12-05 |
RU2011149464A (ru) | 2013-06-20 |
JPWO2010131288A1 (ja) | 2012-11-01 |
US20120051252A1 (en) | 2012-03-01 |
EP2432164B1 (en) | 2017-03-29 |
EP2432164A4 (en) | 2014-11-19 |
WO2010131288A1 (ja) | 2010-11-18 |
CN102415054A (zh) | 2012-04-11 |
EP2432164A1 (en) | 2012-03-21 |
RU2502203C2 (ru) | 2013-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102415054B (zh) | 节点装置和通信方法 | |
CN102859949B (zh) | 用于在胖树网络中路由数据分组的方法 | |
JP5361794B2 (ja) | ネットワーク要素の転送プレーンにおいてポート状態テーブルを保持するための方法及び装置 | |
US9674082B2 (en) | Server-centric high performance network architecture for modular data centers | |
CN104335530B (zh) | 用于网络元件的网络路由协议节能方法和装置 | |
Chen et al. | Survey on routing in data centers: insights and future directions | |
US9479432B2 (en) | DHT-based control network implementation method and system, and network controller | |
CN102084689B (zh) | 选择性先验反应式路由 | |
CN101888331B (zh) | 用于提供单播分组的快速重新路由的方法和装置 | |
CN106063195A (zh) | 具有单独控制设备和转发设备的网络中的控制设备发现 | |
CN104303467A (zh) | 集成的异构的软件定义的网络 | |
CN103210617A (zh) | 减少网络中的消息和计算开销 | |
CN103069756A (zh) | 通信系统、控制器、节点控制方法和程序 | |
CN105340230A (zh) | 虚拟机架拓扑管理 | |
US9385939B2 (en) | Method and a controller system for configuring a software-defined network | |
JP7144539B2 (ja) | ネットワークトポロジ生成方法および装置 | |
CN104054304A (zh) | 计算机系统、控制器、交换机、通信方法以及存储网络管理程序的记录介质 | |
JP2001298482A (ja) | 分散型障害回復装置及びシステムと方法並びに記録媒体 | |
CN105794156A (zh) | 通信系统、通信方法、网络信息组合装置以及网络信息组合程序 | |
CN104885417A (zh) | 控制装置、通信系统、通信节点控制方法以及程序 | |
EP2753033B1 (en) | A method and a device for defining a look-up system for a network element of a software-defined network | |
Sardouk et al. | Agent-cooperation based communication architecture for wireless sensor networks | |
WO2021232190A1 (en) | Forward path planning method in massive data center networks | |
Suganthe et al. | Emergency Health Information and Medical Services in Disaster Areas: A Delay Tolerant Network Approach | |
Lopes et al. | A Dependable Alternative to the Spanning Tree Protocol |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |