CN102415057B - 节点装置及帧发送方法 - Google Patents
节点装置及帧发送方法 Download PDFInfo
- Publication number
- CN102415057B CN102415057B CN200980159067.7A CN200980159067A CN102415057B CN 102415057 B CN102415057 B CN 102415057B CN 200980159067 A CN200980159067 A CN 200980159067A CN 102415057 B CN102415057 B CN 102415057B
- Authority
- CN
- China
- Prior art keywords
- frame
- mentioned
- node
- node apparatus
- adjacent 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 360
- 230000005540 biological transmission Effects 0.000 claims abstract description 178
- 230000000875 corresponding effect Effects 0.000 claims 14
- 230000002596 correlated effect Effects 0.000 claims 3
- 239000000284 extract Substances 0.000 claims 1
- 238000000605 extraction Methods 0.000 claims 1
- 235000008694 Humulus lupulus Nutrition 0.000 abstract 1
- 230000008569 process Effects 0.000 description 355
- 238000007726 management method Methods 0.000 description 217
- 230000009471 action Effects 0.000 description 56
- 238000004891 communication Methods 0.000 description 52
- 230000032683 aging Effects 0.000 description 31
- 230000000052 comparative effect Effects 0.000 description 24
- 238000003860 storage Methods 0.000 description 23
- 230000033228 biological regulation Effects 0.000 description 22
- 238000012546 transfer Methods 0.000 description 22
- 230000008859 change Effects 0.000 description 21
- 238000013138 pruning Methods 0.000 description 17
- 238000012545 processing Methods 0.000 description 10
- 230000015572 biosynthetic process Effects 0.000 description 8
- 238000005259 measurement Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000005059 dormancy Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000009191 jumping Effects 0.000 description 4
- 238000013404 process transfer Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000013523 data management Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 239000006185 dispersion Substances 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 238000010200 validation analysis Methods 0.000 description 3
- 238000011835 investigation Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000002689 soil Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000000739 chaotic effect Effects 0.000 description 1
- 208000013407 communication difficulty Diseases 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 229910052751 metal Inorganic materials 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000011435 rock Substances 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000002618 waking effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W40/00—Communication routing or communication path finding
- H04W40/02—Communication route or path selection, e.g. power-based or shortest path routing
-
- 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
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/36—Backward learning
-
- 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/54—Organization of routing tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W40/00—Communication routing or communication path finding
- H04W40/24—Connectivity information management, e.g. connectivity discovery or connectivity update
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
节点装置将发送对象帧、发送目的地的邻接节点装置和在跳数1以下的范围内作为发送对象帧的起源被识别的节点装置各自的识别信息建立对应关系进行存储。节点装置,接收帧,在已存储的发送对象帧的识别信息和接收帧的识别信息相等的情况下,更新与接收帧的最终目的地建立对应关系存储的发送可能性信息。发送可能性信息,表示向多个邻接节点装置的每个进行发送的发送可能性,并被更新,以使得向与接收帧的识别信息建立了对应关系的发送目的地进行发送的发送可能性是“不能发送”。节点装置在没有能够发送的邻接节点装置并且已存储的发送对象帧的识别信息与接收帧的识别信息相等的情况下,向与接收帧的识别信息建立对应关系而作为起源所识别的邻接节点装置发送接收帧。
Description
技术领域
本发明涉及包含多个节点的网络中的可选择路径的节点装置。
背景技术
有关网络装置,至此已进行了非常多的研究。最普及的是利用了IP(Internet Protocol互联网协议)网络的网络装置。另外,以容纳多个协议和网络为目的的MPLS(Multi Protocol Labeled Switching,多协议标签交换)是与具有自动生成路径的机制的网络装置有关的技术。另外,作为自组织网络算法的代表例,有AODV(Ad-hoc On-Demand Vector,自组织网按需矢量)和OLSR(Optimized LinkState Routing,最优链路状态路由)。
在IP网络装置中,按照IP地址对包进行路由选择。IP地址具有树形结构。因此,按照如下那样的顺序,能够向作为最终目标的终端传送包。即,从包的目的地IP地址的上位8位位组开始,按顺序检索管理与前面与目的地IP地址一致的IP地址对应的IP网络的网络装置,并向所发现的网络装置反复传送包。
路由选择由IP地址体系决定。哪个网络装置管理哪个IP网络,由路由表来规定。多数时候以手动来设定路由表,但是,有时也利用RIP(Routing Information Protocol,路由选择信息协议)自动地更新路由表。RIP是向周围广播网络装置进行管理的IP网络并对网络装置相互管理的IP网络进行确认的方式。
在MPLS中,网络被分为称作LSR(Label Switch Router,标签交换路由器)的网络装置之间的网络即内部网络和外部网络。来自外部网络的帧,由称作边缘节点的装置(即横跨外部网络和内部网络两者的网络装置),取入到内部网络。
这时,在外部帧的前头插入标签。各LSR分别具有标签转送表。标签转送表保持输入帧的标签和输出帧的标签及目的地。LSR取出所输入的帧的标签,从标签转送表中发现符合的标签,改写为输出帧的标签,并向符合的目的地发送。
以上的处理,按照标签转送表的LDP(Label Distribution Protocol,标签分发协议)来进行。LDP是首先利用RIP等进行路由表的生成并向其附加标签,在相邻节点之间进行互相通知的协议。
AODV是将广播用于路径检索,其他的通信节点装置反复进行广播,发现去往目的节点装置的路径的手法。通信节点装置,为了发现设为目标的路径而向周围发送所谓“Route Request(RREQ),路由请求”的帧。在该帧中写明了检索目标的通信节点ID。
周围的通信节点装置,在未检索自身的情况下,重新生成RREQ帧,并向周围反复进行广播。此时,各通信节点装置记录发送源消息是从邻接的哪个通信节点装置接收的。当RREQ消息到达了目的通信节点装置时,该目的通信节点装置生成“Route Reply(RREP),路由应答”帧,并以顺着RREQ帧发送来的路径的方式向发送源节点发送RREP帧。这样,生成了双向的通信路径。
在OLSR(Optimized Link State Routing,最优链路状态路由)中,采用所谓通过通信节点装置彼此定期地交换帧,来把握网络整体,检测出到目的通信节点的路径的方式。通信节点装置,周期性地发送HELLO(问候)帧,相互通知存在。即使判明了成为通信对方的通信节点装置的存在,也生成用于接下来有效地向网络整体分发帧的泛洪用的通路。将之称为MPR(Multi Point Relay,多点中继)。
利用MPR,能够从各通信节点装置向网络整体有效地广播帧。接下来使用该MPR,节点装置彼此相互分发作为路径生成消息的TC(Topology Control,拓扑控制)帧,由此,全部节点装置能够知道网络拓扑。
为了向设为目标的通信节点装置发送帧,成为发送源的通信节点装置自身参照已知的网络拓扑,向应该发送的邻接通信节点装置委托帧。邻接节点装置也同样地进行处理,帧最终被送到目标节点装置。
关于自组织(Ad-hoc)无线通信网络,例如,也公开了如下那样的技术。即,各节点广播包含作为问候消息(Hello Messenger)而通知本节点的存在的信息和直到本节点为止的路由度量值的信息。而且,接收到问候消息的其他节点,对接收到的路由度量值增加用于广播了问候消息的节点和本节点之间的路由的路由度量值,并使用增加后的路由度量值。在此 的路由度量值是利用跳数、链路品质等因素计算出的表示发送源和目的地之间的成本的值。
专利文献1:日本特表2006-526937号公报
专利文献2:日本特开2003-273964号公报
专利文献3:日本特开2002-271399号公报
专利文献4:日本特开2006-340165号公报
专利文献5:日本特开2001-298488号公报
专利文献6:日本特开2006-33275号公报
专利文献7:日本专利4173842号公报
非专利文献1:岩尾忠重、山田健二、野村浩司、細川武司著“多用途向け有线センサネツトワ一ク:S-wire”杂志FUJITSU,2006年5月号(VOL.57,NO.3),285~290页。
如上述那样,关于网络技术,已进行了很多的研究,但在以网络内的各节点装置识别网络拓扑为前提的各种网络系统中有如下那样的问题。即,因为网络环境能够动态地变化,所以节点装置,即使基于事先在路径生成阶段识别出的网络拓扑,在数据发送阶段发送数据,也未必发送成功。
发明内容
因此,本发明,其目的在于,提供如下的技术:即使各节点装置未识别数据被发送的时间点的网络拓扑,作为网络整体,作为各节点装置的自主分散处理的结果,也选择出适当的路径来发送数据。
在一方式中提供了节点装置。上述节点装置具备接收单元、第1存储单元、第2存储单元、更新单元、发送单元和回溯单元。
上述接收单元,从多个邻接节点装置之中的任意1个接收帧。
上述第1存储单元,将用于识别发送对象帧的帧识别信息、用于在上述多个邻接节点装置之中识别上述发送对象帧的发送目的地即发送目的地邻接节点装置的发送目的地邻接节点识别信息、用于识别最初发送来该发送对象帧的邻接节点装置的起源节点识别信息建立对应关系进行存储。
上述第2存储单元,与帧的最终目的地建立对应关系,存储表示向上述多个邻接节点装置的每个发送的发送可能性的发送可能性信息。
当在上述第1存储单元作为上述帧识别信息而存储了用于识别上述接收单元接收到的接收帧的接收帧识别信息的情况下,上述更新单元如下述那样进行动作。即,上述更新单元更新与上述接收帧中指定的最终目的地即接收帧目的地建立对应关系而存储于上述第2存储单元的上述发送可能性信息,以使得向第1邻接节点装置发送的上述发送可能性表示不能发送,该第1邻接节点装置是利用在上述第1存储单元中与上述接收帧识别信息建立对应关系而存储的上述发送目的地邻接节点识别信息所识别出的。
上述发送单元,基于与上述接收帧目的地建立对应关系而存储于上述第2存储单元的上述发送可能性信息,从上述多个邻接节点装置之中选择能够发送的第2邻接节点装置,并向上述第2邻接节点装置发送上述接收帧。
在上述第2存储单元的发送可能性信息表示在上述多个邻接节点装置之中没有能够发送的节点装置,并且在上述第1存储单元作为上述帧识别信息而存储了上述接收帧识别信息的情况下,上述回溯单元,如下述那样进行动作。即,上述回溯单元,向在上述第1存储单元中作为与上述接收帧识别信息建立了对应关系的上述起源节点识别信息而存储的第3邻接节点装置发送上述接收帧。
根据上述节点装置,若上述节点装置发送过的帧经由网络而被上述节点装置自身接收了,则与上次选择了的邻接节点装置不同的邻接节点装置被尝试作为发送目的地。而且,若没有能够发送的邻接节点装置,则由回溯单元向上述第3邻接节点装置发送了接收帧,所以能够使第3邻接节点装置尝试另外的新的路径。
因此,在包含与上述节点装置同样的多个节点装置的网络中,即使各节点装置未识别网络拓扑,也得到如下那样的效果。即,作为网络整体,作为各节点装置的自主分散处理的结果,选择出适当的路径来发送数据。
附图说明
图1是表示网络构成的第1例的图。
图2是表示网络构成的第2例的图。
图3是表示第1实施方式中的节点装置的构成的功能方框图。
图4是表示第1实施方式中的节点装置的硬件构成的图。
图5是关注于1个节点装置对权重的学习进行说明的图。
图6是说明在图1的网络1中动态且自主分散地选择路径的情况的图。
图7是表示帧的例的图。
图8是表示图3的缓冲部109所保存的数据的例的图。
图9是表示图3的邻接节点管理表103的例的图。
图10是表示图3的加权表104的例的图。
图11是说明图10的加权表104-1-N3的变化的图。
图12是表示图3的FID管理表105的例的图(其1)。
图13是表示图3的FID管理表105的例的图(其2)。
图14是帧接收处理的流程图。
图15是图14的步骤S203中的问候帧接收处理的流程图。
图16是问候帧发送处理的流程图。
图17是邻接节点管理表103的时效处理的流程图。
图18是加权表104的时效处理的流程图。
图19是FID管理表105的时效处理的流程图。
图20是图14的步骤S205中的数据帧接收处理的流程图(其1)。
图21是图14的步骤S205中的数据帧接收处理的流程图(其2)。
图22是图14的步骤S205中的数据帧接收处理的流程图(其3)。
图23是图14的步骤S205中的数据帧接收处理的流程图(其4)。
图24是图21的步骤S812a中的加权表调整处理的流程图。
图25是图14的步骤S206中的ACK帧接收处理的流程图。
图26是表示直到超时时刻未接收ACK帧的情况下的处理的流程图。
图27是节点装置100成为GS并发送数据帧时的发送处理的流程图(其1)。
图28是节点装置100成为GS并发送数据帧时的发送处理的流程图(其2)。
图29是也能够成为GS的节点装置100作为数据帧接收处理的一部分,取代图23的处理而进行的处理的流程图。
图30是以对用于搜索路径的搜索空间进行表示的搜索树的形式,说明图6中的路径选择的图。
图31是表示基于问候帧的发送接收的邻接节点的识别和图6的路径选择的时序图。
图32是表示应用第2实施方式的有线网络的例的图。
图33是表示第2实施方式中的邻接节点管理表103a的例的图。
图34是对有循环判定而没有回溯动作的第1比较例进行说明的图(其1)。
图35是对有循环判定而没有回溯动作的第1比较例进行说明的图(其2)。
图36是对进行伪回溯动作但不进行循环判定的第2比较例进行说明的图。
具体实施方式
以下,对几种实施方式,参照图面详细地说明。具体来说,首先参照图1和图2说明网络构成的例,参照图3~31,对第1实施方式进行说明。之后,参照图32~33,对第2实施方式进行说明,对其他的实施方式也进行说明。最后,与图34~36所示的2个比较例进行比较,对各实施方式共同的优点进行说明。
图1是表示网络构成的第1例的图。图1的网络1是能够应用以下的各实施方式的自组织网络的一例,包含多个节点装置。此外,以下,在从网络拓扑的观点来看的说明中,有时也将“节点装置”只称作“节点”。
向网络1内的各节点装置预先分配了网络1内唯一的识别信息(以下,称作“节点ID(identification,识别)”)。以下,设为参照符号“Ni”是表示节点ID的符号,例如,对于作为节点ID而被分配了Ni的节点装置,如“节点装置Ni”那样进行参照。此外,以下,对于作为对节点装置Ni来说分配给自身的节点ID即Ni,也称作节点装置Ni的“本节点ID”(在图1中1≤i≤7)。
另外,在图1中以实线表示链路。具体来说,网络1的拓扑如下面那样。即,在节点装置N1和N2之间、在节点装置N2和N3之间、在节点装置N2和N6之间、在节点装置N3和N4之间、在节点装置N3和N5之间、在节点装置N4和N5之间、在节点装置N4和N7之间及在节点装置N6和N7之间,分别存在链路。
此外,以下,“链路”可以是无线链路,也可以是有线链路。当节点装置Ni和Nj不经过基于另外的节点装置Nk的中继而能够直接利用无线相互进行信息通信时,称做“在节点装置Ni和Nj之间存在无线链路(在图1中1≤i,j,k≤7)。另外,当节点装置Ni和Nj之间直接以电缆来连接,节点装置Ni和Nj能够借助于电缆相互进行信息通信时,称作“节点装置Ni和Nj 之间存在有线链路”。
另外,当节点装置Ni和Nj之间存在无线或者有线的链路时,称做“节点装置Ni和Nj相互邻接”。换言之,对节点装置Ni来说节点装置Nj是邻接节点装置,对节点装置Nj来说节点装置Ni是邻接节点装置。
此外,也有时能够向图1的网络1增加新的节点装置,也有时能够将节点装置N1~N7中的任意一个除去而从网络1中消失。另外,链路不是固定的,而能够动态地变化。
例如,因天气和遮蔽物等的影响,有时在节点装置Ni和Nj之间重新建立无线链路,或者至今为止已确立的无线链路消失。如果节点装置是可移动式的,则也有时由于节点装置间的距离的变动而使链路的有无发生变化。另外,有时由于电缆的连接替换而建立新的有线链路,或者至今为止存在的有线链路消失,也有时由于电缆切断等障碍而使有线链路消失。
根据以下说明的各实施方式,即使在这样节点和链路动态地变化的环境中,也根据数据被发送的时间点的网络1的状况,动态地找出并选择能够利用且适当的路径的同时,进行数据的发送。而且,不需要各节点装置N1~N7识别动态地变化的网络1整体的拓扑,而自主分散地实现与动态的拓扑的变化相应的路径选择。
然而,对于详细内容,与图7一起将后述,但是以下将节点装置之间所发送接收的PDU(Protocol Data Unit,协议数据单元)称作“帧”。使用帧来进行网络1内的数据的发送接收,但是以下把作为帧的发送源的节点装置称作“GS(Global Source,全局源)”,以下把作为帧的目的地的节点装置称作“GD(Global Destination,全局目的地)”。
例如,在节点装置N1是GS而节点装置N7是GD的情况下,在网络1中节点装置N1和N7不邻接,所以由另外的节点装置来对帧进行中继,作为其结果,帧到达节点装置N7。例如,帧也许被从节点装置N1向节点装置N2发送,从节点装置N2向节点装置N6发送,从节点装置N6向节点装置N7发送。以下,用如<N1,N2,N6,N7>那样的数组(tuple)来表示路径。
在路径<N1,N2,N6,N7>的例中,例如在从节点装置N1向节点装置N2发送帧时,帧的最终的目的地是作为GD的节点装置N7,但是帧的直接的目的地是与节点装置N1邻接的节点装置N2。以下,在这样相互邻接的2个节点装置之间的帧的发送中,把作为帧的发送源的节点装置称作“LS(Local Source,本地源)”,把作为帧的目的地的节点装置称作“LD(Local Destination,本地目的地)”。例如,如上述那样,帧从节点装置N1经由节点装置N2和N6而被向节点装置N7中继时的LS和LD如以下那样。
当从也作为GS的节点装置N1向与节点装置N1邻接的节点装置N2最初发送帧时,LS是节点装置N1,LD是节点装置N2。继而,从节点装置N2向与节点装置N2邻接的节点装置N6发送帧时,LS是节点装置N2,LD是节点装置N6。而且,从节点装置N6向与节点装置N6邻接并且也是作为GD的节点装置N7发送帧时,LS是节点装置N6,LD是节点装置N7。
此外,网络1内的1个或者多个节点装置也可以与属于与网络1不同的网络(以下称作“外部网络”)的未图示的网络设备连接。
例如,节点装置N7也可以通过有线链路或者无线链路与包含数据管理服务器的外部网络的网关装置连接。而且,节点装置N7被指定为GD而在网络1内所发送的数据,也可以借助于网关装置被从节点装置N7向数据管理服务器发送,并且在数据管理服务器中被管理。
接着,参照图2对其他的网络例进行说明。图2是表示网络构成的第2例的图。图2的网络2也是能够应用以下的各实施方式的自组织网络的一例,包含多个节点装置。另外,与图1的网络1同样地,网络2也可以与未图示的外部网络连接。
网络2包含节点装置N101~N120。图2是着眼于节点装置N101~N120之中的1个节点装置N105来表示的图。即,以粗实线的圆表示的节点装置N105只要识别出能够直接通信的邻接的3个节点装置N107、N111及N112的存在和节点ID即可,不需要识别出网络2整体的拓扑。节点装置N105也不需要识别出网络2的拓扑以及网络2内存在的节点装置的个数,也不需要预先知道与节点装置N105不邻接的节点装置的节点ID。
在图2中,以实线表示节点装置N105要进行识别的部分,以虚线表示节点装置N105不需要识别的部分。即,图2中以实线表示从节点装置N105来观察只在跳数1以内的范围内存在的以下的装置。
·节点装置N105本身
·与节点装置N105邻接的3个节点装置N107、N111及N112
·将节点装置N105分别与3个邻接节点装置N107、N111及N112进行连接的3条链路
根据以下将说明的各实施方式,网络内的各节点装置,如上述的节点装置N105那样,只要识别邻接节点装置即可。从而,即使网络的规模增大,也不可能陷于“各节点装置为了识别网络拓扑而进行控制信息的通信,因控制信息通信的原因而使网络的负荷提高,作为通信系统整体的性能恶化”这样的情况。
以下,具体地对能够运用于图1的网络1和图2的网络2等具有任意的拓扑的网络的实施方式进行说明。首先,参照图3~图31,对第1实施方式进行说明,对其他的实施方式,以与第1实施方式的不同为中心来进行说明。
关于第1实施方式,首先,参照图3和图4,说明节点装置的构成,参照图5来说明节点装置的动作的概要。而且,对于“通过各节点装置自主分散地如图5那样进行动作,图1的网络1整体怎样实现动态的路径选择”这一情况,参照图6来说明其概要。
之后,参照图7来说明帧的例,参照图8~图13来说明各节点装置存储的各种信息的例,参照图14~图29来说明各节点装置进行的处理的详细情况。而且,根据图7~图29的详细情况,再次对作为网络1整体的动作,参照图30和图31来进行说明。
那么,图3是表示第1实施方式中的节点装置的构成的功能方框图。图1或者图2的各节点装置,具体来说,例如是图3所示的节点装置100。
节点装置100具备对帧进行接收的接收部101和对帧进行发送的发送部102。另外,节点装置100,为了保存用于帧的发送的各种信息,而具备邻接节点管理表103、加权表104及FID(Frame IDentification,帧识别)管理表105。
节点装置100还具备用于判别接收部101接收到的帧的种类的帧分支处理部106。详细的形式与图7一起将后述,但在第1实施方式中,使用“数据帧”、“问候帧”及“ACK(ACKnowledgment,应答)帧”这样的至少3种帧。
节点装置100具备进行与ACK帧有关的处理的ACK处理部107和与问候帧的接收相应而进行处理的链路管理部108。另外,节点装置100,为了进行与数据帧的接收相应的处理,具备缓冲部109和数据帧处理部110。节点装置100还具备上位层处理部111、问候帧生成部112及FID生成部 113。
节点装置100的各部如以下那样进行动作。
接收部101接收帧,并将接收到的帧向帧分支处理部106输出。于是,帧分支处理部106判别帧的种类。
在接收到问候帧的情况下,帧分支处理部106将所接收的问候帧向链路管理部108输出。链路管理部108管理邻接节点管理表103,还参与加权表104的管理。
在此,问候帧是用于控制信息的通信的控制帧的一种,具体来说,是用于节点装置100向其他节点装置通知自身的存在的帧。因此,详细情况如与图15一起将后述的那样,链路管理部108以问候帧的接收为契机而识别出邻接节点装置的存在,使识别结果反映于邻接节点管理表103。即邻接节点管理表103是用于节点装置100预先存储与节点装置100邻接的其他节点装置的表。
此外,因为网络的状况能够动态地发生变化,所以根据情况不同,至今为止作为邻接节点装置由链路管理部108识别出的其他节点装置,也许变成不能作为邻接节点装置而识别。因此,详细情况如与图17一起后述的那样,链路管理部108也进行用于将与变成不能作为邻接节点装置而识别出的节点装置有关的项从邻接节点管理表103中删除的时效处理。
另外,在第1实施方式中链路管理部108随着邻接节点装置的变化而进行加权表104的增加、删除或者更新。
在此,加权表104是用于按每个GD管理用于决定将帧向哪个邻接节点装置发送的信息的表。图3中表示了分别与M个GD相对应而设置的加权表104-1~104-M。在本说明书中所谓“加权表104”是加权表104-1~104-M的总称。另外,在开始节点装置100的运用的时间点,加权表104不存在,M=0。
具体来说,加权表104按每个GD管理所谓“为了最终使帧到达GD,节点装置100自身能够选择哪个邻接节点装置作为LD”。换言之,加权表104,按每个帧的GD,对于与节点装置100邻接的1个以上的节点装置,把作为LD而选择时的优先级作为权重来表示并保持。
从另外的观点来说,某个邻接节点装置“能够作为LD选择”是指向该邻接节点装置发送帧的可能性是“能够发送”。另外,某个邻接节点装置 “不能作为LD选择”是指向该邻接节点装置发送帧的可能性是“不能发送”,该邻接节点装置的优先级是指与“不能发送”对应的规定的最低优先级。
从而,若根据网络状况的变化节点装置100的邻接节点装置发生了变化,则链路管理部108,详细情况如与图15及图17一起后述的那样,根据邻接节点装置的变化对加权表104进行增加、更新或者删除。
另外,在接收了ACK帧的情况下,帧分支处理部106将接收到的ACK帧向ACK处理部107输出。在此,ACK帧是控制帧的一种,是用于从作为节点装置100发送了的数据帧的LD的节点装置向节点装置100通知数据帧的接收的帧。
从而,ACK帧的接收表示数据帧的发送成功了,即使经过了规定的时间也没有接收到ACK帧而超时了表示数据帧的发送失败了。ACK处理部107进行后述的图25所示的ACK帧接收的超时监视。
缓冲部109,为了备于数据帧的发送失败和重发,而保存数据帧。因此,详细情况如与图25一起后述的那样,ACK处理部107,若以ACK帧的接收为契机而识别出数据帧的发送成功,则将变成不需要的数据帧从缓冲部109中删除。另外,ACK处理部107将数据帧的发送成功与否向数据帧处理部110通知。
另外,在接收了数据帧的情况下,帧分支处理部106,将所接收到的数据帧保存于缓冲部109,并且要求数据帧处理部110进行后述的图20~图23的处理。
在此,数据帧是,把作为GS的节点装置要向作为GD的节点装置传递的数据作为净荷而包含的帧。换言之,第1实施方式中的在比定义帧的层上位的层中定义的协议的PDU被作为净荷而包含在数据帧中。上位层处理部111,在节点装置100为GS或者GD的情况下,对在数据帧中作为净荷而包含的上位层的PDU进行处理。
从帧分支处理部106接受了进行数据帧处理的要求的数据帧处理部110的动作的概要,如以下那样。
数据帧处理部110要求发送部102发送针对接收部101接收到的数据帧的ACK帧。另外,数据帧处理部110判断接收到的数据帧的GD的值是否与节点装置100的本节点ID相等。而且,在接收到的数据帧的GD的值 与节点装置100的本节点ID不同的情况下,数据帧处理部110,通过参照FID管理表105,判断这次的接收属于下述(A1)和(A2)的哪一种情况。
(A1)过去节点装置100成为LS而发送了的数据帧,在网络内被中继的过程中又返回到节点装置100,而由接收部101接收到。
(A2)上述(A1)以外的新的数据帧由接收部101接收到。
数据帧处理部110,若判断为这次的接收属于(A2),则参照加权表104,选择为了转送接收到的数据帧而作为LD进行指定的邻接节点装置,并要求发送部102进行数据帧的转送。
另一方面,数据帧处理部110,若判断为这次的接收属于(A1),则识别为过去作为LD而选择的邻接节点装置不是适当的LD,并将识别结果反映于加权表104。而且,数据帧处理部110,参照加权表104,判断作为LD能够选择的邻接节点装置是否还残留有其他的。
数据帧处理部110,另外,接受来自ACK处理部107的数据帧发送成功或者发送失败的通知,进行作为该数据帧的LD而选择的邻接节点装置适当与否的识别,并将其识别结果反映于加权表104。
此外,与节点装置100邻接的某个节点装置Ni“能够作为LD选择”直觉上意味着,“试着将邻接节点装置Ni作为LD进行选择,存在试试看帧是否成功地到达GD的价值”。具体来说,节点装置Ni“能够作为LD选择”意味着,“不是下述(B1),也不是下述(B2)”。此外,对于“能够选择”这一用语的更详细的意思,根据后述的与图5有关的说明和与图22有关的(F1)~(F2)和(G1)~(G4)的说明会清楚。
(B1)节点装置100过去将邻接节点装置Ni作为LD选择了的结果是,发生了循环等的某些失败,已经判明“节点装置Ni作为LD不适当”。
(B2)对于这次接收部101接收到的数据帧,接收部101曾经最初接收到该数据帧时的LS(以下称为“Original Local Source,最初本地源”,略为“OLS”)是节点装置Ni。
数据帧处理部110,如果能够作为LD选择的邻接节点装置还残留有其他的,则选择能够选择的邻接节点装置作为LD进行指定,并要求发送部102进行数据帧的转送。相反地,如果已经未残留有能够作为LD选择的邻接节点装置,则数据帧处理部110,如下述(C1)或者(C2)那样进行动作。
(C1)在这次接收到的数据帧的GS是节点装置100以外的节点装置的情况下,数据帧处理部110,为了向OLS返回数据帧,而将OLS作为LD选择,并要求发送部102进行数据帧的转送。该动作,是用于使作为OLS的邻接节点装置识别出“将节点装置100作为LD选择是不适当的”的动作,如后述那样,相当于路径搜索中的回溯。
(C2)在这次接收到的数据帧的GS是节点装置100自身的情况下,本来生成该数据帧的是上位层处理部111。因此,数据帧处理部110对上位层处理部111通知数据帧的发送失败,并废弃保存在缓冲部109的数据帧。
此外,为了实现以上那样的数据帧处理部110的动作,数据帧处理部110需要进行上述(A1)和(A2)的区别。为此,在第1实施方式中,在各数据帧中包含能够唯一地识别数据帧的帧识别信息,并将帧识别信息存储在FID管理表105。
第1实施方式中的帧识别信息,具体来说,是作为数据帧的GS的节点装置的节点ID和FID的组合。FID是唯一地识别某1个节点装置成为GS而发送的多个帧的每个的识别信息,例如,也可以是规定位数的顺序编号,还可以是时标。
总之,由于各个节点装置独立地生成FID,也有时不同的多个节点装置会偶然生成相同的FID。但是,帧识别信息不只是FID,是作为数据帧的GS的节点装置的节点ID和FID的组合。而且,如上述那样,节点ID是在网络内唯一识别节点装置的信息。从而,即使例如不同的多个节点装置偶然地生成了相同的FID,不同的节点装置分别成为GS而发送的帧也具有不同的帧识别信息,所以能够进行区别。
此外,对于帧识别信息,即使数据帧经由1个以上的节点装置在网络内被转送,也不会由对数据帧进行中继的节点装置改写,因此不会发生变化。数据帧处理部110,通过将要求了发送部102进行发送的数据帧的帧识别信息记录在FID管理表105,在后来数据帧返回到节点装置100自身时,能够识别出属于上述(A1)。
此外,节点装置100也进行不以帧的接收为契机的其他的处理。具体来说,问候帧生成部112利用FID生成部113生成的FID定期地生成问候帧,并向发送部102输出。于是,发送部102发送问候帧,所以,节点装置100能够定期地向周围通知节点装置100自身的存在。
另外,上位层处理部111能够在任意的时刻,把在数据帧中作为净荷而包含并进行发送的作为对象的数据向数据帧处理部110输出。于是,数据帧处理部110,根据上位层处理部111的请求生成数据帧,并指示发送部102发送数据帧。这样,节点装置100自己能够成为GS。
图4是表示第1实施方式中的节点装置的硬件构成的图。图3的节点装置100,例如也可以利用图4所示的各种硬件来实现。
在图4的例中,节点装置100具备MPU(MicroProcessing Unit,微处理单元)201、PHY(PHYsical layer,物理层)芯片202及定时器IC(Integrated Circuit,集成电路)203。另外,节点装置100具备DRAM(Dynamic Random access Memory,动态随机访问存储器)204、瞬时存储器205及无线模块206。
将MPU201和PHY芯片202之间进行连接的通信接口是,MII/MDIO(Media Independent Interface or Management Data Input/Output,介质无关接口或管理数据输入/输出)207。MII和MDIO都是物理层和MAC子层(Media Access Control sublayer,介质访问控制子层)之间的接口。另外,MPU201和定时器IC203,通过I2C/PIO(Inter-Integrated Circuit or Parallel Input/Output,内置集成电路或并行输入/输出)总线208而被连接。而且,DRAM204、瞬时存储器205和无线模块206,通过PCI(Peripheral Component Interconnect,外部设备互连)总线209与MPU201连接。
MPU201,将作为非易失性存储装置的一种的瞬时存储器205中保存的固件等程序下载到DRAM204中,将DRAM204作为工作存储器来使用的同时执行各种处理。MPU201,通过执行程序能够作为图3的帧分支处理部106、ACK处理部107、链路管理部108、数据帧处理部110、上位层处理部111、问候帧生成部112及FID生成部113而进行动作。
此外,固件等程序也可以被保存在计算机可读的存储介质中而提供,并安装在节点装置100中。或者,也可以通过PHY芯片202或者无线模块206从网络下载程序并安装在节点装置100中。
此外,根据实施方式,也可以利用DRAM204和瞬时存储器205以外的其他种类的存储装置。例如,节点装置100也可以具有CAM(Content Addressable Memory,内容可寻址存储器)、SRAM(Static Random Access Memory,静态随机存取存储器)、SDRAM(Synchronous Dynamic Random Access Memory,同步动态随机存取存储器)等存储装置。
通过DRAM204、瞬时存储器205或者未图示的其他存储装置实现图3的邻接节点管理表103、加权表104、FID管理表105及缓冲部109。另外,瞬时存储器205,不只是程序,还存储节点装置100的节点ID等、节点装置100固有的信息。
PHY芯片202是进行有线连接时的物理层的处理的电路。第1实施方式能够应用于无线网络,所以在第1实施方式中,节点装置100也可以不具有PHY芯片202。但是,为了节点装置100和外部网络之间的连接,节点装置100也可以具有PHY芯片202。
例如,节点装置100,也可以具有按照以太网(注册商标)标准的有线LAN端口,通过与有线LAN端口连接的电缆与外部网络的网关装置等连接。
在这种情况下,MPU201能够生成以太网帧,并通过MII/MDI0207输出到PHY芯片202。而且,PHY芯片202,将来自MPU201的输出(即表示以太网帧的逻辑信号)转换成与电缆的种类相应的信号(即电气信号或者光信号),而向电缆输出。这样,节点装置100能够使用PHY芯片202将数据向外部网络发送。
另外,PHY芯片202也能够把通过电缆和有线LAN端口从外部网络输入的电气信号或者光信号转换成逻辑信号,并通过MII/MDIO207向MPU201输出。这样,节点装置100能够使用PHY芯片202从外部网络接收数据。
无线模块206是进行无线连接时的物理层的处理的硬件。无线模块206例如包含:天线、ADC(Analog-to-Digital Converter,模拟数字转换器)、DAC(Digital-to-Analog Converter,数字模拟转换器)、调制器、解调器、编码器、解译器等。
在第1实施方式中,利用图4的无线模块206来实现图3的接收部101和发送部102。总之,在第1实施方式中,网络内的链路是无线链路。当然,如后述的第2及第3实施方式那样,也可能是存在有线链路的实施方式。
定时器IC203,直到所设定的时间经过为止进行递增计数动作,若经过了所设定的时间则输出中断信号。例如,定时器IC203,也可以输出用于分别以规定的间隔执行邻接节点管理表103、加权表104、FID管理表 105的时效处理的中断信号。
此外,根据实施方式,节点装置的硬件构成也可以与图4不同,也能够将图4所示的标准、种类以外的其他的硬件利用于节点装置。
例如,也可以利用硬件电路来实现图3的帧分支处理部106、ACK处理部107、链路管理部108、数据帧处理部110、上位层处理部111、问候帧生成部112或者FID生成部113。具体来说,也可以代替MPU201,而利用FPGA(Field Programmable Gate Array,现场可编程门阵列)等可重新配置逻辑电路和ASIC(Application Specific Integrated Circuit,专用集成电路)等来实现这些图3的各部分。当然,也可以利用MPU201和硬件电路的双方来实现图3的各部分。
此外,在以下的说明中,为了说明的明确化,有时使用在图3及图4的各部分的参照符号的后面附加了节点ID的参照符号。例如,有的情况下将节点装置N1具有的图3的邻接节点管理表103用“103-N1”这样的参照符号进行参照。
接着,对每个节点装置的动作概要,参照图5进行说明,参照图6对作为每个节点装置的动作结果的作为网络整体所实现的路径选择进行说明。
图5是着眼于1个节点装置对权重的学习进行说明的图。图5中将网络3内的6个节点装置设为“节点α”~“节点ζ”提出并进行了表示。如图5所示那样,节点α、γ、δ、ε及ζ与节点β邻接,在图5中以实线表示下述5条链路。
·节点β和α之间的链路Lβ,α
·节点β和γ之间的链路Lβ,γ
·节点β和δ之间的链路Lβ,δ
·节点β和ε之间的链路Lβ,ε
·节点β和ζ之间的链路Lβ,ζ
另外,在图5中用云的形状示意性地表示的网络3a是网络3之中的一部分。具体来说,网络3a包含将节点δ和ζ之间直接连接的链路或者通过1个以上的未图示的节点和2条以上的未图示的链路将节点δ和ζ之间间接连接的路径。
以下,在图5中关注节点β,对节点β中的权重的学习进行说明。
有时,节点β通过链路Lβ,α从节点α接收以网络3内的未图示的某个节点(以下,为了方便称为“节点η”)为GD的数据帧301。节点β具有图3的加权表104,将其中与节点η对应的加权表,在图5的说明中,为了方便而用“104-h”这样的参照符号进行参照。
详细情况与图10及图11一起后述,但是,把按每个GD管理的加权表104的每个,存储了邻接节点和权重的对应关系。因为节点α、γ、δ、ε及ζ与节点β邻接,所以在加权表104-h中,分别地权重Wα与节点α、权重Wγ与节点γ、权重Wδ与节点δ、权重Wε与节点ε以及权重Wζ与节点ζ建立了对应关系。
为了方便说明,设节点β从节点α接收到数据帧301的时间点的加权的关系如式(1)所示。
Wγ<Wδ<Wε<Wζ (1)
以下,在第1实施方式中,为了方便说明,设权重取0以上1以下的值,权重的值越小,则表示与该权重对应的节点的优先级越高。
从而,根据式(1),节点β识别出,与最轻的权重Wγ建立了对应关系的节点γ的优先级,在邻接节点γ、δ、ε及ζ之中为最高的优先级。因此,作为为了转送数据帧301的LD,节点β从邻接节点γ、δ、ε及ζ之中首先选择节点γ,并向节点γ发送数据帧301。
在此,若从节点β向节点γ的发送失败了,则节点β学习为“在进行以节点η为GD的数据帧发送时,选择节点γ作为LD是不适当的”。而且,作为学习的结果,节点β降低节点γ的优先级。即,节点β增大权重Wγ的值。
对于发送失败,有几个种类,具体来说,节点β如下述(D1)或者(D2)那样,学习为“在以节点η为GD的数据帧发送时,选择节点γ作为LD是不适当的”。
(D1)链路障碍的情况
若在节点β向节点γ转送数据帧301的时间点,偶然在链路Lβ,γ或者节点γ发生障碍,则节点β识别出针对节点γ的发送失败了。
例如在链路Lβ,γ为无线链路的情况下,如果在规定时间内未从节点γ返回针对数据帧301的ACK帧,则节点β超时而判断为“向节点γ发送数据帧301失败了”。而且,节点β学习为“在以节点η为GD的数据帧发 送时,选择节点γ作为LD是不适当的”,增大与作为LD而选择过的节点γ建立了对应关系的权重Wγ的值。
此外,无线链路,其质量环境容易发生变化,所以,链路障碍有可能再次解除。为此,在第1实施方式中,在发生链路障碍时,不是一下子将权重Wγ设为最大值,而是增大规定值。这样,可以防止只是根据发生一次的链路障碍而使该LD成为不适当的情况。
(D2)从节点γ向节点β返回来数据帧301的情况
节点β向节点γ发送数据帧301成功。例如,节点β根据从节点γ接收到针对数据帧301的ACK帧,识别为向节点γ发送数据帧301成功了。因此,暂且,节点β减少与作为LD选择过的节点γ建立了对应关系的权重Wγ的值。
但是,之后,如果在网络3内没有找到能够从节点γ向节点η转送数据帧301的路径,则通过后述的回溯动作,节点γ向节点β送回数据帧301。例如,在节点γ只与节点β邻接的情况下,节点γ不能找到能够向节点η转送数据帧301的路径。另外,即使在节点γ与节点β以外的一些节点邻接的情况下,根据网络3的拓扑,也有时不能从节点γ到达节点η。
若节点γ进行了回溯动作,则节点β从节点γ接收到节点β自身过去向节点γ发送过的数据帧301,所以能够识别为“向节点γ的发送失败了”。作为识别结果,节点β学习为“在以节点η为GD的数据帧发送时,选择节点γ作为LD是不适当的”,增加与作为LD选择过的节点γ建立了对应关系的权重Wγ的值。
在第1实施方式中,如(D2)那样,在根据接收到节点β自身过去发送过的数据帧301这一情况,节点β识别出发送失败时,节点β具体地,将权重Wγ的值设定为最大值。
以下,为了说明方便,在图5的例中,设为,如(D2)那样节点β识别出发送失败,并将权重Wγ的值设定为最大值。其结果是,式(2)成立。
Wδ<Wε<Wζ<Wγ (2)
接着,节点β,为了使数据帧301到达作为GD的未图示的节点η,将判明为不适当的节点γ以外的邻接节点作为LD进行选择,试着再次发送发数据帧301。具体地,基于式(2),节点β选择与当前时间点最轻的权重Wδ建立了对应关系的节点δ作为LD,并向节点δ发送数据帧301。
在图5的例中,节点β从节点δ接收到针对数据帧301的ACK帧,节点β识别出发送成功。若识别出发送成功,则节点β减少与作为LD选择过的节点δ建立了对应关系的权重Wδ的值。其结果,仍然是式(2)成立。
接着,设为,数据帧301通过网络3a从节点δ到达节点ζ。而且,设为,节点ζ选择节点β作为LD。
于是,节点β从节点ζ接收到节点β自身过去向节点δ发送过的数据帧301,所以能够识别为“向节点δ的发送,由于存在循环而失败了”。作为识别结果,节点β学习为“在以节点η为GD的数据帧发送时,将节点δ作为LD选择是不适当的”,并增大权重Wδ的值。
在此,即使在节点β从节点ζ接收到通过循环而返回来的数据帧301的情况下,从“根据接收到节点β自身过去发送过的数据帧301这一情况,节点β识别出发送失败”这一点来看,与上述(D2)的情况相同。从而,节点β学习为“在以节点η为GD的数据帧发送时,选择节点δ作为LD是不适当的”,把与作为LD选择过的节点δ建立了对应关系的权重Wδ的值设定为最大值。其结果是,式(3)成立。
Wε<Wζ<Wγ=Wδ (3)
在图5中,表示了式(3),作为从节点ζ接收到同样数据帧301而更新了加权后的结果的新的加权的关系。
接着,节点β为了使数据帧301到达作为GD的未图示的节点η,而把判明为不适当的节点γ及δ以外的邻接节点作为LD进行选择,试着再次发送数据帧301。具体地,基于式(3),节点β选择与当前时间点最轻的权重Wε建立了对应关系的节点ε作为LD,并向节点ε发送数据帧301。
在图5的例中,节点β从节点ε接收到针对数据帧301的ACK帧,节点β识别为发送成功。若识别为发送成功了,则节点β减少与作为LD选择过的节点ε建立了对应关系的权重Wε的值。其结果,仍然是式(3)成立。
在此,设为,未通过回溯从节点ε向节点β返回数据帧301。另外,设为,数据帧301未在网络3内循环而被从节点β的任意一个邻接节点向节点β发送,并在节点β中接收到。
于是,根据式(3),节点β,在从邻接节点α、γ、δ、ζ的任意一个接收到与数据帧301同样地以节点η为GD的另外的数据帧的情况下, 优先选择与最轻的权重Wε建立了对应关系的节点ε作为LD。
图6是说明在图1的网络1中动态并且自主分散地选择路径的情况的图。具体来说,图6表示节点装置N1成为GS并发送把节点装置N7指定为GD的数据帧时的在网络1内的路径选择的情况。
图6表示了图1的网络1和在节点装置N4和N7之间产生的障碍。另外,图6的12根粗箭头表示在网络1内动态地选择路径的同时从GS(即节点装置N1)到GD(即节点装置N7)转送数据帧的情况。
此外,以下,为了方便,以“104-hi-Ni”这样的参照符号来参照节点装置Ni的加权表104-Ni之中的与节点装置N7对应的加权表(1≤i≤6)。
另外,在图6的说明中,设为,只要没有特别说明则数据帧的发送成功后返回ACK帧,对于ACK帧的返回,进行省略而简化其说明。也包含ACK帧的返回的一系列的处理流程将与图31一起后述。
在步骤S101中,作为GS的节点装置N1,将唯一与节点装置N1邻接的节点装置N2作为LD来进行选择,将数据帧向节点装置N2发送。
除了作为在步骤S101中被发送的数据帧的LS的节点装置N1以外,节点装置N3和N6与节点装置N2邻接。而且,在该2个邻接节点装置N3和N6之中节点装置N3在加权表104-h2-N2中与更轻的权重建立了对应关系。
于是,在步骤S102中节点装置N2选择节点装置N3作为用于转送在步骤S101中接收到的数据帧的LD,并将数据帧向节点装置N3发送。
除了作为在步骤S102中被发送的数据帧的LS的节点装置N2以外,节点装置N4和N5与节点装置N3邻接。而且,在该2个邻接节点装置N4和N5之中节点装置N4在加权表104-h3-N3中与更轻的权重建立了对应关系。
于是,在步骤S103中节点装置N3选择节点装置N4,作为用于转送在步骤S102中接收到的数据帧的LD,并向节点装置N4发送数据帧。
除了作为在步骤S103中被发送的数据帧的LS的节点装置N3以外,节点装置N5和N7与节点装置N4邻接。而且,在该2个邻接节点装置N5和N7之中节点装置N7在加权表104-h4-N4中与更轻的权重建立了对应关系。
于是,在步骤S104中节点装置N4,选择也作为GD的节点装置N7作为用于转送在步骤S103中接收到的数据帧的LD,并向节点装置N7发送数据帧。
但是,如图6所示那样,在节点装置N4向节点装置N7发送了数据帧的时间点,在节点装置N4和N7之间的链路上产生了障碍,从而发送失败。即因为即使节点装置N4待机了规定时间也没有从节点装置N7返回ACK帧,所以超时而识别出发送失败。
此外,步骤S104中的节点装置N4与在图5中向节点γ发送数据帧时如上述(D1)那样失败了的节点β相当。因此,节点装置N4根据发送失败而更新加权表104-h4-N4(具体来说,增大与作为在步骤S104的发送中的LD的节点装置N7建立了对应关系的权重值)。
而且,在步骤S105中节点装置N4,选择还未尝试的其他的邻接节点装置N5作为用于转送在步骤S103中接收到的数据帧的LD,将数据帧向节点装置N5发送。
除了作为在步骤S105中被发送的数据帧的LS的节点装置N4以外,只有节点装置N3与节点装置N5邻接。
因此,在步骤S106中节点装置N5,选择节点装置N3作为用于转送在步骤S105中接收到的数据帧的LD,并向节点装置N3发送数据帧。
于是,在步骤S106中节点装置N3,识别为“接收到了与节点装置N3自身在步骤S103中发送过的相同的数据帧”。总之,步骤S106中的节点装置N3与在图5中从节点ζ接收到循环回来的数据帧的节点β相当。因此,节点装置N3与图5同样地更新加权表104-h3-N3(具体来说,将与作为步骤S103中的发送的LD的节点装置N4建立了对应关系的权重值设定为最大值)。
而且,在步骤S107中节点装置N3,从OLS(即,作为在步骤S102中节点装置N3最初接收到该数据帧时的LS的节点装置N2)以外的邻接节点装置之中搜索还未作为LD尝试的节点装置。在此,OLS以外的邻接节点装置是节点装置N4和N5,节点装置N4在步骤S103中已选择。
因此,在步骤S107中节点装置N3选择未选择的节点装置N5作为LD,并向节点装置N5发送数据帧。总之,步骤S107中的节点装置N3,与在图5中将节点ε作为LD来重新选择并向节点ε发送数据帧的节点β相当。
于是,在步骤S107中节点装置N5识别为“接收到了与节点装置N5自身在步骤S106中发送过的相同的数据帧”。总之,步骤S107中的节点装置N5与在图5中向节点γ发送数据帧时如(D2)那样失败了的节点β相 当。因此,节点装置N5,与图5同样地更新加权表104-h5-N5(具体来说,将与作为步骤S106中的发送的LD的节点装置N3建立了对应关系的权重值设定为最大值)。
而且,对节点装置N5来说,除了OLS(即作为在步骤S105中最初节点装置N5接收到该数据帧时的LS的节点装置N4)以外,邻接的节点装置只是已判明为发送失败的节点装置N3。从而,已经没有能够作为LD选择的邻接节点装置。
因此在步骤S108中节点装置N5向作为OLS的节点装置N4回送数据帧。步骤S108是回溯动作,通过回溯动作节点装置N5,能够使节点装置N4知道“在以节点装置N7为GD的数据帧的发送过程中,节点装置N5自身前面的路径为死胡同(dead end)”。
于是,在步骤S108中节点装置N4识别为“接收到了与节点装置N4自身在步骤S105中发送过的相同的数据帧”。总之,步骤S108中的节点装置N4与在图5中向节点γ发送数据帧时如(D2)那样失败了的节点β相当。因此,节点装置N4与图5同样地更新加权表104-h4-N4(具体来说,将与作为步骤S105中的发送的LD的节点装置N5建立了对应关系的权重值设定为最大值)。
但是,对于图5的节点β,即使向节点γ发送数据帧时失败了,也还剩有能够作为LD选择的节点δ等,但对于图6的步骤S108的节点装置N4来说,没有剩下的能够作为LD选择的邻接节点装置。即,OLS以外的2个邻接节点装置N7和N5,在步骤S104和S105中已分别作为LD选择了,已经判明了成为两者都发送失败这样的结果。
从而,在步骤S109中节点装置N4,向作为OLS的节点装置N3回送数据帧。步骤S109也是回溯动作,节点装置N4能够使节点装置N3知道“在以节点装置N7为GD的数据帧的发送过程中,节点装置N4自身前面的路径成为死胡同”这一情况。
于是,在步骤S109中节点装置N3识别出“接收到了与节点装置N3自身在步骤S107中发送过的相同的数据帧”。总之,步骤S109中的节点装置N4与在图5中从节点ζ接收到循环回来的数据帧的节点β相当。因此,节点装置N3与图5同样地更新加权表104-h3-N3(具体来说,将与作为步骤S107中的发送的LD的节点装置N5建立了对应关系的权重值设定为最大 值)。
但是,对于图5的节点β,即使判明为向节点δ发送数据帧失败,也还剩有能够作为LD选择的节点ε,但对于图6的步骤S109的节点装置N3来说,没有剩下能够作为LD选择的邻接节点装置。即,OLS以外的2个邻接节点装置N4和N5在步骤S103和S107中已分别作为LD选择了,已经判明了成为两者都发送失败这样的结果。
从而,在步骤S110中节点装置N3向作为OLS的节点装置N2回送数据帧。步骤S110也是回溯动作,节点装置N3能够使节点装置N2知道“在以节点装置N7为GD的数据帧的发送过程中,节点装置N3自身前面的路径成为死胡同”这一情况。
于是,在步骤S110中节点装置N2识别出“接收到了与节点装置N2自身在步骤S102中发送过的相同的数据帧”。总之,步骤S110中的节点装置N2与在图5中向节点γ发送数据帧时如(D2)那样失败了的节点β相当。因此,节点装置N2与图5同样地更新加权表104-h2-N2(具体来说,将与作为步骤S102中的发送的LD的节点装置N3建立了对应关系的权重值设定为最大值)。
而且,在步骤S111中节点装置N2,选择还未尝试的另外的邻接节点装置N6作为用于转送数据帧的LD,并向节点装置N6发送数据帧。
除了作为在步骤S111中被发送的数据帧的LS的节点装置N2以外,只有也作为GD的节点装置N7与节点装置N6邻接。
因此,在步骤S112中节点装置N6选择节点装置N7作为用于转送在步骤S111中接收到的数据帧的LD,并向节点装置N7发送数据帧。
如以上那样,即使网络1内产生了障碍,通过各节点装置自主分散地动作,数据帧也成功地到达GD。
另外,在数据帧的转送中,即使局部地选择了不适当的节点装置作为LD,最终作为网络整体,也选择了从GS到GD的路径。原因是,各节点装置一个接一个地选择能够作为LD选择的节点装置,如果没有能够选择的节点装置,则进行回溯动作。
具体来说,在图6的例中,在步骤S102中节点装置N2选择了节点装置N3作为LD,结果在步骤S110中判明为不适当。但是,通过步骤S103~S110的动作,作为网络1整体,最终选择从GS到GD的路径<N1,N2,N6,N7> 成功了。
这样所选择的路径被学习,有助于下次以后的数据帧的转送的有效化。对基于学习的有效化,具体地说明则如以下那样。
作为步骤S110中的数据帧接收的结果,节点装置N2进行加权表104-h2-N2的学习,将与节点装置N3建立了对应关系的权重设定为最大值。从而,若节点装置N2,从邻接节点装置N1接收了以节点装置N7为GD的新的数据帧,则首先选择节点装置N6作为LD。总之,作为网络1整体,作为自主分散的学习的结果,没有包含回溯的试行错误而能够有效地利用路径<N1,N2,N6,N7>将数据帧发送到GD。
此外,根据第1实施方式,选择不适当的LD的影响或者局部的障碍的影响,不会波及网络1整体而被局部性地限定。即,根据第1实施方式,例如即使在节点装置N4和N7之间的链路产生了障碍,用于查询替代路径的控制帧不会向网络1整体的全节点装置泛洪等。因此,根据第1实施方式,即使障碍和循环局部地产生,也不陷于在网络1整体引起广播风暴这样的状况。
另外,显然在图6的例中节点装置N1对于节点装置N4和N7之间的链路的障碍和循环<N3,N4,N5,N3>全然认识不到。该情况意味着选择不适当的LD和局部的障碍的影响被局部性地限定,而不波及网络1整体。
问题的影响被局部性地限定是指,局部性的问题不会向网络1整体正反馈并发散,网络1作为系统已稳定。列举问题被局部性地限定的另外的例,例如如以下那样。
例如,假设在网络1中在节点装置N5和N7之间也存在链路,在加权表104-h5-N5中与节点装置N3相比节点装置N7与更轻的权重建立了对应关系。于是,在步骤S105之后,立即,节点装置N5选择节点装置N7作为LD并将数据帧向节点装置N7发送。其结果是,不进行步骤S108~S112的发送,不只是节点装置N1,节点装置N2和N3也全然认识不到障碍的产生。这样,链路的障碍和循环的产生等问题,根据问题产生的场所而只影响到最小限度的局部性的范围。
接着,对以上说明的节点装置100的构成及动作以及由网络1整体所实现的自主分散协调动作,逐步更详细地说明。
图7是表示帧的例的图。
第1实施方式中的数据帧,如图7的数据帧302那样,包含含有LD、LS、GD、GS、FID、类型和长度的各字段的帧头和净荷。例如图5的数据帧301也是与数据帧302同样的形式。
作为数据帧302的LD、LS、GD及GS的各节点装置的节点ID分别在数据帧302的LD字段、LS字段、GD字段及GS字段被指定。另外,作为数据帧302的GS的节点装置生成并分配给数据帧302的FID在数据帧302的FID字段被指定。
表示“数据帧”这样的类型的规定的常数在数据帧302的类型字段被指定。另外,净荷的长度在数据帧302的长度字段被指定。数据帧302的净荷是比定义数据帧302的协议上位的层的协议的PDU。
例如,假设将MAC子层再虚拟地分割为2个子层。也可以以该虚拟的2个子层之中的下面的子层来定义第1实施方式的帧,即,净荷中也可以包含由MAC子层所定义的其他协议(例如以太网等)的PDU。换言之,第1实施方式的帧也可以是将由第2层所定义的以太网帧进行封装的帧。在这种情况下,因为上位层处理部111是处理以太网帧的处理部,所以也能够使用周知的MAC芯片来实现。
以下,为了方便说明,设数据帧302的净荷为MAC层协议的帧(具体来说,例如以太网帧)。
但是,当然,根据实施方式不同,数据帧302的净荷也可以是由网络层(第3层)以上所定义的协议的PDU,也可以是与特定的通信协议无关的实时数据。例如,数据帧302的净荷也可以是IP(Internet Protocol)数据报。在这种情况下,上位层处理部111是处理IP数据报的处理部。
数据帧302的形式如以上说明的那样,但如果使用具体的值更详细地示例,则如数据帧303及304。
数据帧303是在图6的步骤S102中节点装置N2向节点装置N3发送的数据帧。数据帧303的具体的内容如以下那样。
·在LD字段指定在步骤S102的发送中被作为LD选择的节点装置N3的节点ID(即N3)。
·在LS字段指定步骤S102的发送中的作为LS的节点装置N2的节点ID(即N2)。
·在GD字段指定作为GS的节点装置N1在步骤S101的发送时指定了 的节点装置N7的节点ID(即N7)。
·在GS字段指定作为GS的节点装置N1的节点ID(即N1)。
·在FID字段指定作为GS的节点装置N1所生成的FID(以下设为Fa)。
·在类型字段指定表示“数据帧”这样的类型的规定的常数D。例如,能够利用2比特表示类型,也可以是D=(00)2。
·在长度字段指定数据帧302的净荷的长度Pa。此外,长度,例如也可以以字节为单位来表示,也可以以其他的单位来表示。
·作为净荷,包含MAC层协议的帧(例如以太网帧)。
另外,接收到数据帧303的节点装置N3在图6的步骤S103中向节点装置N4发送的是图7的数据帧304。数据帧304的具体的内容如以下那样。
·在LD字段指定在步骤S103的发送中被作为LD选择的节点装置N4的节点ID(即N4)。总之,当转送时,节点装置N3重写LD字段。
·在LS字段指定步骤S103的发送中作为LS的节点装置N3的节点ID(即N3)。总之,当转送时,节点装置N3重写LS字段,并设定本节点ID。
·GD、GS、FID、类型、长度各字段和净荷的内容与节点装置N3接收到的数据帧303相同。
另外,第1实施方式中的问候帧,如图7的问候帧311那样,具有包含LD、LS、GD、GS、FID和类型的各字段的帧头,但没有净荷。问候帧311的具体例是问候帧312,问候帧312在后述的图31的步骤S1203中由节点装置N3发送。
在问候帧311的LD字段指定特殊的值,该特殊的值表示向与要发送问候帧311的节点装置邻接的全部节点装置的广播。此外,在此的“广播”是“向邻接的全部节点装置的广播”,不是“向网络1整体的泛洪”,所以希望注意。
以下,为了方便说明,在第1实施方式中设为,用3个字节表示节点ID,“0x”表示16进制数。另外,0x000000和0xFFFFFF被保留,不作为通常的节点ID被使用。
在第1实施方式中的全部的问候帧中,与问候帧312相同,在LD字段指定0xFFFFFF,作为表示向与要发送该问候帧的节点装置邻接的全部节点装置的广播的特殊值。
在问候帧311的LS字段指定要发送问候帧311的节点装置自身的节点ID。因此,在节点装置N3要发送的问候帧312的LS字段指定作为节点装置N3的节点ID的N3。
另外,在第1实施方式中的全部的问候帧中,在GD字段指定表示无效(null)的特殊值0x000000。原因是,邻接节点装置只是利用问候帧,而不转送。
与LS字段相同,在问候帧311的GS字段指定要发送问候帧311的节点装置自身的节点ID。因此,在问候帧312的GS字段指定作为节点装置N3的节点ID的N3。
在问候帧311的FID字段指定发送问候帧311的节点装置生成并分配给问候帧311的FID。同样地,在问候帧312的FID字段指定发送问候帧312的节点装置N3生成并分配给问候帧312的FID(以下设为Fb)。
在问候帧311的类型字段指定表示“问候帧”这样的类型的规定的常数。具体来说,“问候帧”这样的类型,也可以如问候帧312所例示的那样由规定的常数H来表示,例如H=(10)2。
另外,第1实施方式中的ACK帧,如图7的ACK帧321那样,具有包含LD、LS、GD、GS、FID、类型的各字段的报头,但不具有净荷。ACK帧321的具体例是ACK帧322。另外,ACK帧322是当在图6的步骤S102中节点装置N2向节点装置N3发送了数据帧303时节点装置N3向节点装置N2返回的ACK帧。在后述的图31中,作为步骤S102a表示该从节点装置N3向节点装置N2返回ACK帧322。
在ACK帧321的LD字段指定发送了成为ACK帧321发送的契机的数据帧的邻接节点装置的节点ID。因此,例如在ACK帧322的LD字段指定作为发送了成为节点装置N3发送ACK帧322的契机的数据帧303的、节点装置N3的邻接节点装置N2的节点ID的N2。
在ACK帧321的LS字段指定要发送ACK帧321的节点装置自身的节点ID。因此,在节点装置N3要发送的ACK帧322的LS字段指定作为节点装置N3的节点ID的N3。
另外,与问候帧同样地也不转送ACK帧,所以在第1实施方式中的全部的ACK帧中,在GD字段指定表示无效(null)的特殊的值0x000000。
在ACK帧321的GS字段和FID字段复制成为ACK帧321发送的契机的数据帧的GS字段和FID字段的值。如上述那样,利用GS字段和FID字段的值的组合,在网络内唯一地识别数据帧。因此,要发送ACK帧321的节点装置从接收到的数据帧复制值,从而,在接收到ACK帧321的节点装置中能够识别ACK帧321是针对哪个数据帧的。
因此,例如在以数据帧303的接收为契机所发送的ACK帧322中,GS字段和FID字段的值与数据帧303相同,分别是N1和Fa。
在ACK帧321的类型字段指定表示“ACK帧”这样的类型的规定的常数。具体来说,“ACK帧”这样的类型,也可以如ACK帧322所示例的那样,由规定的常数A来表示,例如A=(11)2。
此外,图7所示的帧的形式只是一例,根据实施方式,能够适当决定帧中包含的字段的排列顺序,另外,帧也可以包含未图示的其他字段。另外,帧也还可以包含FCS(Frame Check Sequence,帧校验序列)等帧尾。
另外,以下,为了记载的简化,在不会混乱的情况下,例如也有时只将“LD字段”称作“LD”。对于其他字段也是同样。
图8是保存于图3的缓冲部109的数据的例的图。
缓冲部109包含与接收部101接收到的每个数据帧分别对应的多个项。而且,各项包含超时时刻和接收到的数据帧。
图8示例了节点装置N3的缓冲部109-N3内的某个项。具体来说,在图6的步骤S102中,若节点装置N3从节点装置N2接收了图7的数据帧303,则在缓冲部109-N3生成包含超时时刻TI3,j和数据帧303的项。缓冲部109中的项的生成的详细情况与图14一起将后述。另外,超时时刻TI3,j的含义如下面所述那样。
节点装置N3在步骤S103中如图7的数据帧304那样重写在步骤S102中接收到的数据帧303的帧头。而且,节点装置N3在步骤S103中发送数据帧304。
图8的超时时刻TI3,j表示在节点装置N3发送了数据帧304之后等待针对数据帧304的ACK帧的接收到什么时候。总之,如果节点装置N3,在超时时刻TI3,j之前不能够从节点装置N4接收到针对数据帧304的ACK帧,则因超时而判断为向节点装置N4发送数据帧304失败了。
此外,详细地如图22、图26及图28所示那样,也有时重写缓冲部109所设定的超时时刻。
例如,在图6的步骤S104中向节点装置N7发送数据帧失败了的节点装置N4,在步骤S105中,更新与从节点装置N3接收到的数据帧对应的缓冲部109-N4内的超时时刻。更新后的超时时刻,具体来说,表示在步骤S105中节点装置N4等待针对向节点装置N5发送过的数据帧的ACK帧的接收到什么时候。
图9是表示图3的邻接节点管理表103的例的图。邻接节点管理表103具有节点ID字段和最终更新时刻字段。
例如,在图1的网络1中,节点装置N1、N3及N6与节点装置N2邻接。从而,节点装置N2的邻接节点管理表103-N2具有与这3个邻接节点装置N1、N3及N6分别对应的3个项。而且,在与邻接节点装置Ni(i=1,3,6)对应的各项中,在节点ID字段保存作为邻接节点装置Ni的节点ID的Ni,在最终更新时刻字段保存该项最后被更新的时刻TA2,i。
另外,在图1的网络1中,节点装置N2、N4及N5与节点装置N3邻接。从而,节点装置N3的邻接节点管理表103-N3具有与这3个邻接节点装置N2、N4及N5分别对应的3个项。而且,在与邻接节点装置Ni(i=2,4,5)对应的各项中,在节点ID字段保存作为邻接节点装置Ni的节点ID的Ni,在最终更新时刻字段保存该项最后被更新的时刻TA3,i。
图10是表示图3的加权表104的例的图。图10,作为具体例,表示了图1的节点装置N3的加权表104-N3。
如图3所示那样,“加权表104”是按每个GD管理的多个加权表104-1~104-M的总称。各加权表104-i(1≤i≤M)存储了对应的GD。
而且,各加权表104-i(1≤i≤M)具有1个以上的项,各项具有最终更新时刻字段、LD字段及权重字段。为了权重的学习,在最终更新时刻字段保存项最后被更新的时刻,在LD字段保存邻接节点装置的节点ID,在权重字段保存与该邻接节点装置建立了对应关系的权重的值。
在图10的例中,第1张加权表104-1-N3是指定了节点装置N7作为GD的数据帧发送用的表,所以作为GD,存储了作为节点装置N7的节点ID的N7。
另外,在图1的网络1中,节点装置N2、N4及N5与节点装置N3邻接。 从而,加权表104-1-N3具有与这3个邻接节点装置N2、N4及N5分别对应的3个项。在加权表104-1-N3中与邻接节点装置Ni(i=2,4,5)对应的各项的内容如下所示。
·在最终更新时刻字段保存项的最终更新时刻TW3,7,i。
·在LD字段保存作为邻接节点装置Ni的节点ID的Ni。
·在权重字段保存与邻接节点装置Ni建立对应关系的权重W3,7,i。
即,权重W3,7,i是在节点装置N3发送指定节点装置N7(总之,与加权表104-1-N3对应的GD)为GD的数据帧时所参照的与邻接节点装置Ni对应的权重。
同样地,在图10的例中,第2张加权表104-2-N3是指定节点装置N4为GD的数据帧发送用的表,所以作为GD存储了作为节点装置N4的节点ID的N4。
而且,在图1的网络1中,节点装置N2、N4及N5与节点装置N3邻接,所以加权表104-2-N3也具有与这3个邻接节点装置N2、N4及N5分别对应的3个项。在加权表104-1-N3中与邻接节点装置Ni(i=2,4,5)对应的各项的内容如下面所述那样。
·在最终更新时刻字段保存项的最终更新时刻TW3,4,i。
·在LD字段保存作为邻接节点装置Ni的节点ID的Ni。
·在权重字段保存与邻接节点装置Ni建立对应关系的权重W3,4,i。
当然,加权表104-N3也可以还包含与另外的GD建立了对应关系的加权表104-j-N3(j>2)。
此外,应该注意下面的点。即,对于加权表104,如果是同样的GD,则譬如即使发送了FID和GS的组合不同的数据帧,在每次发送时,成为了发送目的地的LD的权重也被更新。例如,在发送某个数据帧时,即使由于链路障碍而使特定的LD的权重变大(即使优先级变低),如果在立即发送另外的数据帧(GD和LD相同)时,链路障碍被解除而发送成功,则该LD的权重变小(优先级变高)。相反地,有时,如果多个不同的数据帧(GD和LD相同)连续地由于链路障碍而发送失败,则即使譬如同样的FID和GS的组合的数据帧只尝试发送1次,相应的LD的权重也成为最大值。
图11是说明图10的加权表104-1-N3的变化的图。在图11的例中,Ta<Tb<Tc<Td<Te。
例如,设为,对于在图6的步骤S102中从节点装置N2接收到了数据帧的时间点,节点装置N3的加权表104-N3中不存在与节点装置N7对应的加权表104-1-N3。而且,设为,以步骤S102的接收为契机,在加权表104-N3中生成了以下那样的内容的新的加权表104-1-N3。
·3个项的最终更新时刻,都是时刻Ta。
·在3个项中,与邻接节点装置Ni(i=2,4,5)建立了对应关系的权重W3,7,i,都是0.5。
此外,关于图6,为了说明的简单化,说明了“2个邻接节点装置N4和N5之中的节点装置N4在加权表104-h3-N3中与更轻的权重建立了对应关系”。总之,图10和图11是h3=1的例,在图6的说明中,假定W3,7,4<W3,7,5。
但是,例如,如图11所示那样,也可以有W3,7,2=W3,7,4=W3,7,5=0.5那样的情况。在图11的例中,因为节点装置N4和N5与相同的权重0.5建立了对应关系,所以节点装置N3能够选择节点装置N4和N5的任一个作为步骤S103中的发送的LD,但是,设为,与图6的例同样地,选择了节点装置N4作为LD。
于是,在步骤S103中节点装置N3向节点装置N4发送数据帧。之后,若如在图31中作为步骤S103a所表示的那样,节点装置N4向节点装置N3发送了ACK帧,则节点装置N3识别为向节点装置N4发送数据帧成功了。
而且,与图5的例同样地,节点装置N3减小与节点装置N4建立了对应关系的权重W3,7,4的值。在图11的例中,具体来说,节点装置N3将W3,7,4的值从0.5更新为0.4。另外,节点装置N3在与节点装置N4对应的项的最终更新时刻字段中设定当前时刻Tb。
之后,如图6所示那样,节点装置N3在步骤S106中再次接收同样的数据帧。其结果是,节点装置N3,如关于图6而进行的说明那样,在加权表104-1-N3中将与节点装置N4建立了对应关系的权重W3,7,4的值从0.4更新为作为最大值的1.0。另外,节点装置N3在与节点装置N4对应的项的最终更新时刻字段中设定当前时刻Tc。
继而,如图6的步骤S107所示那样,节点装置N3选择节点装置N5作为LD并发送数据帧。之后,若如在图31中作为步骤S107a所表示的那样,节点装置N5向节点装置N3发送了ACK帧,则节点装置N3识别为向 节点装置N5发送数据帧成功了。
而且,与图5的例同样地,节点装置N3减小与节点装置N5建立了对应关系的权重W3,7,5的值。在图11的例中,具体来说,节点装置N3将W3,7,5的值从0.5更新为0.4。另外,节点装置N3在与节点装置N5对应的项的最终更新时刻字段设定当前时刻Td。
之后,如图6所示那样,节点装置N3在步骤S109中再次接收同样的数据帧。其结果是,如关于图6进行的说明那样,在加权表104-1-N3中将与节点装置N5建立了对应关系的权重W3,7,5的值从0.4更新为作为最大值的1.0。另外,节点装置N3在与节点装置N5对应的项的最终更新时刻字段设定当前时刻Te。
如以上那样,以ACK帧的接收为契机或者以接收与已发送的数据帧同样的数据帧为契机,而更新加权表104-1-N3。
图12和图13是表示图3的FID管理表105的例的图。如图12和图13所示那样,FID管理表105具有FID、GS、LD、OLS、最终更新时刻的各字段。
FID管理表105中的FID字段和GS字段是用于唯一识别数据帧的字段,分别从接收到的数据帧的FID字段和GS字段对值进行复制。
在FID管理表105的LD字段保存为了发送利用FID字段和GS字段的值所识别的数据帧最后作为LD选择的邻接节点装置的节点ID。
另外,在FID管理表105的OLS字段保存在最初接收到由FID字段和GS字段的值所识别的数据帧时,由该数据帧的LS字段所指定的邻接节点装置的节点ID。当为了转送数据帧而选择LD时,为了从LD的候补之中除去OLS也利用OLS字段,为了决定回溯动作时的LD也利用OLS字段。
而且,在FID管理表105的最终更新时刻字段中保存项最后被更新的时刻。
那么,图12和图13作为具体例表示了图6的步骤S101~S112中的各节点装置的FID管理表105。以下,将步骤S101~S112分别被执行的时刻表示为TF101~TF112。
当在步骤S101中节点装置N1向节点装置N2发送数据帧时,节点装 置N1在FID管理表105-N1内生成新的项E1。
而且,节点装置N1在项E1的FID字段和GS字段设定发送了的数据帧的FID和GS的值。
在此,对于数据帧的GS和FID的值,如上述那样,即使数据帧在网络1内被转送也不被改写。从而,在图6中网络1内在步骤S101~S112中所发送的数据帧的FID和GS的值,与图7的数据帧303及304相同,分别是Fa和N1。因此,在步骤S101中节点装置N1分别在项E1的FID字段和GS字段设定Fa和N1这样的值。
此外,在以下的各步骤S102~S112中其他节点装置在各自的FID管理表105的项的FID字段和GS字段设定的值也同样是Fa和N1。因此,以下,将省略与FID字段和GS字段有关的说明。
另外,在步骤S101中节点装置N1在项E1的LD字段设定作为LD选择的节点装置N2的节点ID即N2。
可是,关于由GS和FID的值的组所唯一地识别的某个特定的数据帧,OLS是指由最初接收到该特定的数据帧时的该特定的数据帧的LS所指定的节点ID所识别的邻接节点装置。
但是,若这样定义OLS,则例如在节点装置N1成为GS并发送数据帧的情况下,对节点装置N1自身来说,关于已发送的数据帧,OLS成为未定义。因此,以下,扩展OLS的定义。具体来说,定义为“在节点装置Ni自身成为GS并发送数据帧的情况下,与该数据帧有关的对节点装置Ni自身来说的OLS,是节点装置Ni本身”。
换言之,OLS是在节点装置Ni自身直接识别的网络的范围内,对节点装置Ni来说作为数据帧的起源而识别出的节点装置。此外,在此,“节点装置Ni自身直接识别的网络的范围”是从节点装置Ni观察而跳数在1以下的范围,具体来说只包含节点装置Ni自身和节点装置Ni的邻接节点装置。例如,在图2的例中,以实线表示只是节点装置N105自身直接识别的网络的范围。
根据以上的扩展后的OLS的定义,在步骤S101中节点装置N1在项E1的OLS字段设定的值,是节点装置N1自身的节点ID(即N1)。如果节点装置N1今后接收了GS的值为N1、FID的值为Fa的数据帧,则基于如以上那样生成的项E1,能够识别出“接收到节点装置N1自身曾经发送过的 数据帧”。
另外,在步骤S101中节点装置N1在项E1的最终更新时刻字段设定当前时刻TF101。此外,在以下的各步骤S102~S112中其他节点装置在各自的FID管理表105的项的最终更新时刻字段中设定的值,同样是执行各步骤S102~S112的时刻TF102~TF112。因此,以下,也将省略与最终更新时刻字段有关的说明。
而且,在步骤S101中从节点装置N1接收到数据帧的节点装置N2,当在步骤S102中向节点装置N3发送数据帧时,在FID管理表105-N2内生成新的项E2。而且,节点装置N2在项E2中,对OLS字段设定N1,对LD字段设定N3。
继而,在步骤S102中从节点装置N2接收到数据帧的节点装置N3,当在步骤S103中向节点装置N4发送数据帧时,在FID管理表105-N3内生成新的项E3。而且,节点装置N3在项E3中,对OLS字段设定N2,对LD字段设定N4。
继而,在步骤S103中从节点装置N3接收到数据帧的节点装置N4,当在步骤S104中向节点装置N7发送数据帧时,在FID管理表105-N4内生成新的项E4。而且,节点装置N4在项E4中,对OLS字段设定N3,对LD字段设定N7。
然而,步骤S104的发送,因为节点装置N4和N7之间的链路的障碍而失败。即,因为节点装置N4不能从节点装置N7接收ACK帧,所以超时。其结果是,节点装置N4,如步骤S105那样,重新选择其他邻接节点装置N5作为接下来的LD,并向节点装置N5发送数据帧。
在此,对于在步骤S104和S105中分别发送的数据帧,由于FID的值是Fa且GS的值是N1,所以是同样的数据帧。从而,在步骤S105中节点装置N4不是生成新的项,而是更新既存的项E4。
具体来说,在步骤S105中节点装置N4在项E4中将LD字段的值重写为N5。此外,即使节点装置N4多少次发送GS的值为N1、FID的值为Fa的相同的数据帧,也不改变“节点装置N4最初是从节点装置N3接收到该数据帧”这一事实。因此,项E4的OLS字段的值,不会被改写,而是保持N3不变。
继而,在步骤S105中从节点装置N4接收到数据帧的节点装置N5, 当在步骤S106中向节点装置N3发送数据帧时,在FID管理表105-N5内生成新的项E5。而且,节点装置N5在项E5中,对OLS字段设定N4,对LD字段设定N3。
而且,在步骤S106中从节点装置N5接收到数据帧的节点装置N3,以接收到的数据帧的GS和FID的值为关键词检索FID管理表105-N3,找到项E3。因为找到了项E3,所以节点装置N3能够识别出“在步骤S106中接收到与节点装置N3自身曾在步骤S103中发送过的相同的数据帧”。
从而,节点装置N3,当在接下来的步骤S107中向节点装置N5发送数据帧时,不是在FID管理表105-N3内生成新的项,而是更新既存的项E3。具体来说,在步骤S107中节点装置N3在项E3中将LD字段的值重写为N5。此外,项E3的OLS字段的值不会被改写,而是保持N2不变。
于是,在步骤S107中从节点装置N3接收到数据帧的节点装置N5,以接收到的数据帧的GS和FID的值为关键词检索FID管理表105-N5,找到项E5。因为找到了项E5,所以节点装置N5能够识别出“在步骤S107中接收到与节点装置N5自身曾在步骤S106中发送过的相同的数据帧”。
从而,节点装置N5,当在接下来的步骤S108中向节点装置N4发送数据帧时,不是在FID管理表105-N5内生成新的项,而是更新既存的项E5。具体来说,在步骤S108中节点装置N5在项E5中将LD字段的值重写为N4。此外,项E5的OLS字段的值不会被改写,而是保持N4不变。
于是,在步骤S108中从节点装置N5接收到数据帧的节点装置N4,以接收到的数据帧的GS和FID的值为关键词检索FID管理表105-N4,找到项E4。因为找到了项E4,所以节点装置N4能够识别出“在步骤S108中接收到与节点装置N4自身曾在步骤S105中发送过的相同的数据帧”。
从而,节点装置N4,当在接下来的步骤S109中向节点装置N3发送数据帧时,不是在FID管理表105-N4内生成新的项,而是更新既存的项E4。具体来说,在步骤S109中节点装置N4在项E4中将LD字段的值重写为N3。此外,项E4的OLS字段的值不会被改写,而是保持N3不变。
于是,在步骤S109中从节点装置N4接收到数据帧的节点装置N3,以接收到的数据帧的GS和FID的值为关键词检索FID管理表105-N3,找到项E3。因为找到了项E3,所以节点装置N3能够识别出“在步骤S109中接收到与节点装置N3自身曾在步骤S103中发送过的相同的数据帧”。
从而,节点装置N3,当在接下来的步骤S110中向节点装置N2发送数据帧时,不是在FID管理表105-N3内生成新的项,而是更新既存的项E3。具体来说,在步骤S110中节点装置N3在项E3中将LD字段的值重写为N2。此外,项E3的OLS字段的值不会被改写,而是保持N2不变。
于是,在步骤S110中从节点装置N3接收到数据帧的节点装置N2,以接收到的数据帧的GS和FID的值为关键词检索FID管理表105-N2,找到项E2。因为找到了项E2,所以节点装置N2能够识别出“在步骤S110中接收到与节点装置N2自身曾在步骤S102中发送过的相同的数据帧”。
从而,节点装置N2,当在接下来的步骤S111中向节点装置N6发送数据帧时,不是在FID管理表105-N2内生成新的项,而是更新既存的项E2。具体来说,在步骤S111中节点装置N2在项E2中将LD字段的值重写为N6。此外,项E2的OLS字段的值不会被改写,而是保持N1不变。
而且,在步骤S111中从节点装置N2接收到数据帧的节点装置N6,当在步骤S112中向节点装置N7发送数据帧时,在FID管理表105-N6内生成新的项E6。而且,节点装置N6在项E6中,对OLS字段设定N2,对LD字段设定N7。
接下来,参照图14~图29的流程图,说明节点装置100的动作的详细情况。
图14是帧接收处理的流程图。若向节点装置100投入了电源,则开始帧接收处理。
在步骤S201中接收部101直到接收到帧为止进行待机。总之,如果接收部101未接收到帧,则反复进行步骤S201。若接收到了帧,则接收部101将接收到的帧向帧分支处理部106输出,处理转移到步骤S202。
在步骤S202中,帧分支处理部106参照在步骤S201中接收部101接收到的帧的类型字段的值,判定帧的类型。在接收到的帧的类型是问候帧的情况下,处理转移到步骤S203,在是数据帧的情况下,处理转移到步骤S204,在是ACK帧的情况下,处理转移到步骤S206。
在步骤S203中,帧分支处理部106向链路管理部108输出所接收到的问候帧,链路管理部108进行图15的问候帧接收处理。然后,处理返回到步骤S201。当然,如果是图4的MPU201并行执行与图3的各部对应的多个任务的多任务环境,若帧分支处理部106输出了问候帧,则也可以 不等待问候帧接收处理结束而使处理转移到步骤S201。
另外,在步骤S204中,帧分支处理部106把在步骤S201中所接收到的数据帧保存在缓冲部109中。总之,帧分支处理部106在缓冲部109内确保新的项的区域,并把在步骤S201中所接收到的数据帧保存在确保了的区域内。另外,帧分支处理部106,为了接下来的步骤S205而从数据帧中取出GS和FID的值并存储起来。
此外,如图8那样,缓冲部109具有超时时刻字段,但是,在步骤S204的时间点,还未设定超时时刻。
而且,在步骤S205中帧分支处理部106指示数据帧处理部110进行数据帧接收处理。在进行指示时,帧分支处理部106把在步骤S204中预先存储的数据帧的GS和FID的值向数据帧处理部110进行通知。
此外,在节点装置100是不会成为GS的类型的装置的情况下(即,在节点装置100是专职进行中继的装置的情况下),数据帧接收处理如图20~23那样。另一方面,在节点装置100是也能够成为GS的类型的装置的情况下,数据帧接收处理如图20~22、29那样。
若数据帧处理部110按照指示而进行了数据帧接收处理,则处理返回到步骤S201。当然,如果是多任务环境,若帧分支处理部106指示了数据帧处理部110进行数据帧接收处理,则也可以不等待数据帧接收处理结束而使处理转移到步骤S201。
另外,在步骤S206中,帧分支处理部106向ACK处理部107输出所接收到的ACK帧,ACK处理部107进行图25的ACK帧接收处理。然后,处理返回到步骤S201。当然,如果是多任务环境,若帧分支处理部106输出了ACK帧,则也可以不等待ACK帧接收处理结束而使处理转移到步骤S201。
图15是图14的步骤S203中的问候帧接收处理的流程图。若从帧分支处理部106向链路管理部108输出了问候帧,则开始图15的处理。
在步骤S301中链路管理部108判断是否在邻接节点管理表103(参照图9)中存在作为节点ID具有与接收到的问候帧的LS相同的值的项。如果找到了项,则处理转移到步骤S302,如果没有找到项,则处理转移到步骤S303。
此外,图15的说明中的“接收到的问候帧”是在图14的步骤S201 中接收部101接收到的问候帧。总之,图15的说明中的“接收到的问候帧”是在步骤S202中帧分支处理部106向链路管理部108输出并成为了图15的处理开始的契机的问候帧。
在步骤S302中链路管理部108设定当前时刻作为在步骤S301中找到的项的最终更新时刻。然后,图15的处理结束。
例如,在节点装置N2中作为执行了步骤S302的结果,如图9那样在邻接节点管理表103-N2中,将与N1这样的节点ID对应的最终更新时刻字段的值被更新为TA2,1。其结果是,节点装置N2能够预先存储“在时刻TA2,1是节点装置N2能够将节点装置N1作为邻接节点装置而识别的状况”。
另一方面,在步骤S301中没有找到项的情况,是从至今为止未作为邻接节点装置而识别的新的节点装置接收到了问候帧这一情况。因此,在接下来的步骤S303~S308中,进行用于将该新的节点装置作为邻接节点装置进行登记的处理。
在步骤S303中链路管理部108在邻接节点管理表103中增加新项。
而且,在步骤S304中链路管理部108在在步骤S303中增加的新项中设定接收到的问候帧的LS的值和当前时刻。例如,当初次接收到图7的问候帧312时,节点装置N2在新项的节点ID字段中设定问候帧312的LS的值即N3,在新项的最终更新时刻字段设定当前时刻。
继而,在步骤S305中链路管理部108判断在加权表104-1~104-M(参照图10和图11)之中是否有还未关注的加权表104-i(1≤i≤M)。如果全部的加权表104-1~104-M已经关注过了,则结束图15的处理,如果有还未关注的加权表104-i,则处理转移到步骤S306。
在步骤S306中链路管理部108,从加权表104-1~104-M之中的还未关注的加权表之中,对接下来的加权表进行关注。以下,为了方便说明,设为,在步骤S306中关注了加权表104-i。
而且,在步骤S307中链路管理部108在正在关注的加权表104-i中增加新项。
此外,在步骤S308中链路管理部108在在步骤S307中增加的新项的LD、权重、最终更新时刻的各字段中分别设定接收到的问候帧的LS的值、初始加权值、当前时刻。初始加权值是根据实施方式而任意决定的常数。
在第1实施方式中,如上述那样,权重的值是在0以上1以下,1 是表示不能作为LD进行选择这一情况的特别的值,所以初始加权值可以是0以上而小于1的任意值。更具体来说,初始加权值,例如也可以是0.5。例如,图11的最上面所示的加权表104-1-N3的最初的项,也可以是如下那样生成的项(但是,准确地说,在这种情况下,对最初的项的最终更新时刻,设定与其他2个项的最终更新时刻Ta不同的值,与图11完全不同)。
·与作为GD的节点装置N7建立了对应关系的加权表104-1-N3已存在。
·但是,节点装置N3至今为止未将节点装置N2识别为邻接节点装置。
·节点装置N3从节点装置N2初次接收到问候帧。
·在以上的状况的基础上,在步骤S306中关注了加权表104-1-N3。
·因此,在步骤S308中,在新项的LD字段中设定接收到的问候帧的LS的值即N2,在新项的权重字段中设定作为初始加权值的0.5。
在执行步骤S308之后,处理返回到步骤S305。
图16是问候帧发送处理的流程图。图16的处理与图14的处理相独立并且并行地由问候帧生成部112来执行。具体来说,若向节点装置100投入了电源,则问候帧生成部112开始图16的处理。
在步骤S401中问候帧生成部112判断当前时刻是否是发送预定时刻。如果当前时刻是发送预定时刻,则处理转移到步骤S402,如果当前时刻不是发送预定时刻,则处理返回到步骤S401。总之,问候帧生成部112直到成为发送预定时刻为止进行待机。
例如,也可以预先决定基准时刻Tref和问候帧的发送间隔ΔThello。另外,问候帧生成部112,例如能够基于图4的MPU201的时钟来参考当前时刻Tnow。问候帧生成部112,也可以只是当式(4)的Z为整数时,判断为“当前时刻是发送预定时刻”。
Z=(Tref-Tnow)/ΔThello (4)
例如,基准时刻Tref也可以是预先决定的常数,还可以是向节点装置100投入电源的时刻。另外,能够根据实施方式适当决定发送间隔ΔThello,例如也可以是10秒等比较长的时间。
在步骤S402中,问候帧生成部112向FID生成部113请求生成新的FID,FID生成部113生成新的FID。例如,FID也可以是序列号,FID生成部113也可以通过使用计数器电路来实现。当然,FID生成部113也 可以通过MPU201执行程序来实现。
在步骤S402中问候帧生成部112还使用FID生成部113生成的FID,来生成问候帧。
例如,如下述那样生成图7的问候帧312。即,节点装置N3的FID生成部113-N3生成Fb这样的值作为新的FID。于是,节点装置N3的问候帧生成部112-N3生成新的问候帧312。
这时,问候帧生成部112-N3,在问候帧312中,对LD设定0xFFFFFF这样的规定值,对LS和GS设定作为本节点ID的N3,对GD设定0x000000这样的规定值。另外,问候帧生成部112-N3,在问候帧312中,对FID设定由FID生成部113-N3生成的值Fb,对类型设定规定值H。
若如以上那样在步骤S402中生成了问候帧,则接着在步骤S403中问候帧生成部112要求发送部102发送其生成的问候帧,发送部102发送问候帧。然后,处理返回到步骤S401。
接着,对各种表的时效处理,参照图17~图19进行说明。各时效处理,例如,也可以以来自图4的定时器IC203的中断信号为契机而开始。
图17是邻接节点管理表103的时效处理的流程图。例如,也可以是,定时器IC203以规定的间隔Ia向链路管理部108输出中断信号,链路管理部108以中断信号为契机以规定的间隔Ia进行图17的处理。
在步骤S501中链路管理部108关注邻接节点管理表103(参照图9)的第1个项。以下,在与图17有关的说明中,将链路管理部108正在关注的邻接节点管理表103的项称作“关注项”。
接着在步骤S502中链路管理部108判断当前时刻与关注项的最终更新时刻之间的差是否在规定值Ga以上。此外,根据实施方式,也可以是Ga=Ia,也可以是Ga<Ia,也可以是Ga>Ia。
如果当前时刻与关注项的最终更新时刻之间的差是在规定值Ga以上,则处理转移到步骤S503。另一方面,如果当前时刻与关注项的最终更新时刻之间的差小于规定值Ga,则处理转移到步骤S505。
在步骤S503中链路管理部108将作为LD具有与关注项的节点ID相同的值的项从加权表104中删除。
例如,在关注项是图9的邻接节点管理表103-N3的第3项的情况下, 关注项的节点ID的值是N5。从而,在步骤S503中链路管理部108,从加权表104-1-N3~104-M-N3的每一个中删除LD的值是N5的项。例如,在步骤S503中,删除了图10的加权表104-1-N3的第3个项和加权表104-2-N3的第3个项。
而且,在步骤S504中链路管理部108从邻接节点管理表103中删除关注项。然后处理转移到步骤S505。
在步骤S505中链路管理部108判断邻接节点管理表103中是否残留有还未关注的项。如果链路管理部108关注完了邻接节点管理表103的全部的项,则结束图17的处理。另一方面,如果邻接节点管理表103中残留有链路管理部108还未关注的项,则处理转移到步骤S506。
在步骤S506中链路管理部108关注邻接节点管理表103的还未关注的项之中的接下来的项。然后,处理返回到步骤S502。
通过以上的图17的时效处理,若节点装置100中来自至今为止作为邻接节点装置而识别的节点装置的问候帧的接收中断了,则能够识别出“该节点装置已经不与节点装置100邻接”。总之,通过图17的处理,节点装置100能够根据环境的变化而适当地管理作为潜在的LD的候补的邻接节点装置。
此外,优选,与环境容易变化程度等相应,根据实施方式适当决定上述的规定的间隔Ia及规定值Ga。此外,在第1实施方式中,在网络内的全部的节点装置中设定了相同的问候帧的发送间隔ΔThello,作为邻接节点管理表103的时效时间的上述的规定值Ga满足Ga>ΔThello。
图18是加权表104的时效处理的流程图。例如,也可以是,定时器IC203以规定的间隔Iw向数据帧处理部110输出中断信号,数据帧处理部110以中断信号为契机而以规定的间隔Iw进行图18的处理。
在步骤S601中数据帧处理部110关注加权表104(参照图10和图11)之中第1张加权表104-1。以下,在与图18有关的说明中,将数据帧处理部110正在关注的加权表以“104-i”这样的参照符号来表示(1≤i≤M),称作“关注表”。在刚刚执行步骤S601之后,i=1。
接着在步骤S602中数据帧处理部110关注关注表104-i的第1个项。以下,将关注表之中数据帧处理部110正在关注的项称作“关注项”。
接着在步骤S603中数据帧处理部110判断当前时刻与关注项的最终 更新时刻之间的差是否在规定值Gw以上。此外,根据实施方式,也可以是Gw=Iw,也可以是Gw<Iw,也可以是Gw>Iw。
如果当前时刻与关注项的最终更新时刻之间的差在规定值Gw以上,则处理转移到步骤S604。另一方面,如果当前时刻与关注项的最终更新时刻之间的差小于规定值Gw,则处理转移到步骤S605。
在步骤S604中数据帧处理部110从关注表104-i中删除关注项。然后处理转移到步骤S605。
在步骤S605中数据帧处理部110判断关注表104-i中是否残留有还未关注的项。如果数据帧处理部110关注完了关注表104-i的全部的项,则处理转移到步骤S607。另一方面,如果关注表104-i中残留有数据帧处理部110还未关注的项,则处理转移到步骤S606。
在步骤S606中数据帧处理部110,关注于关注表104-i内的还未关注的项之中的接下来的项。然后处理返回到步骤S603。
在步骤S607中数据帧处理部110判断在关注表104-i中是否存在项。当反复执行步骤S603~S606的结果是,在关注表104-i中没有项了的情况下,处理转移到步骤S608。另一方面,如果关注表104-i中存在1个以上的项,则处理转移到步骤S609。
在步骤S608中数据帧处理部110,删除不存在项的关注表104-i。然后,处理转移到步骤S609。
在步骤S609中数据帧处理部110判断在加权表104之中是否残留有还未关注的加权表。如果数据帧处理部110关注完了全部的加权表104-1~104-M,则结束图18的处理。另一方面,如果在加权表104之中残留有数据帧处理部110还未关注的加权表104-j(1≤j≤M),则处理转移到步骤S610。
在步骤S610中,数据帧处理部110关注于加权表104之中还未关注的接下来的加权表104-j(即,选择加权表104-j作为关注表104-i)。然后,处理返回到步骤S602。
通过以上的图18的时效处理,节点装置100不会陷于“由于过去的障碍的影响被累积,而使哪个邻接节点装置都不能被选择作为LD”的事态。
例如,假设在图6的例中,在步骤S112之后,在节点装置N6和N7 之间的链路产生了障碍,节点装置N4和N7之间的链路从障碍中恢复了的状况。若没有进行图18的时效处理,则即使由于实际上从障碍中恢复了,例如能够利用路径<N1,N2,N3,N4,N7>发送数据帧了,而作为自主分散协调的结果也不会选择该路径。但是,如果进行了图18的时效处理,则在上述所假设的状况中,会选择路径<N1,N2,N3,N4,N7>。
此外,优选,与环境容易变化程度等相应,根据实施方式适当决定上述的规定的间隔Iw及规定值Gw。
图19是FID管理表105的时效处理的流程图。例如,也可以是,定时器IC203以规定的间隔If向数据帧处理部110输出中断信号,数据帧处理部110以中断信号为契机而以规定的间隔If进行图19的处理。
在步骤S701中数据帧处理部110关注FID管理表105(参照图12和图13)之中第1个项。以下,在与图19有关的说明中,将数据帧处理部110正在关注的项称作“关注项”。
接着在步骤S702中数据帧处理部110判断当前时刻与关注项的最终更新时刻之间的差是否在规定值Gf以上。此外,根据实施方式,也可以是Gf=If,也可以是Gf<If,也可以是Gf>If。
另外,与图21的步骤S807有关,由于后述的理由,在第1实施方式中,作为加权表104的时效时间的规定值Gw和作为FID管理表105的时效时间的规定值Gf,满足Gf<Gw。
如果当前时刻与关注项的最终更新时刻之间的差是在规定值Gf以上,则处理转移到步骤S703。另一方面,如果当前时刻与关注项的最终更新时刻之间的差小于规定值Gf,则处理转移到步骤S704。
在步骤S703中数据帧处理部110从FID管理表105中删除关注项。然后处理转移到步骤S704。
而且,在步骤S704中数据帧处理部110判断在FID管理表105中是否残留有还未关注的项。如果数据帧处理部110关注完了FID管理表105的全部的项,则结束图19的处理。另一方面,如果FID管理表105中残留有数据帧处理部110还未关注的项,则处理转移到步骤S705。
在步骤S705中数据帧处理部110关注于FID管理表105的还未关注的项之中的接下来的项。然后处理返回到步骤S702。
通过以上的图19的时效处理,能够防止“持续增加FID管理表105 的项而用尽了存储区域”的事态。
此外,也可以以如下方式决定上述的规定值Gf,即例如,成为在产生了几次回溯的最坏的情况下,预测为数据帧从GS到达GD所花费的时间的长度以上。此外,“最坏情况”,详细地将与图30一起后述,是指在搜索空间中,在未修剪的全部搜索节点中进行回溯的同时按深度优先搜索顺序进行追溯的情况。一般地,优选,网络的规模越大,则规定值Gf也预先设定得越大。
图20~图23是图14的步骤S205中的数据帧接收处理的流程图。此外,为了方便说明,首先,对节点装置100不是GS而是专职中继的类型时的数据帧接收处理,参照图20~图23进行说明。对节点装置100是也能够成为GS的类型的情况,将图23的部分置换为后述的图29的处理。
若在图14的步骤S205中由帧分支处理部106指示了进行数据帧接收处理,则数据帧处理部110开始图20的处理。此外,如上述那样,来自帧分支处理部106的指示伴随接收到的数据帧的GS和FID的值的通知。
在步骤S801中数据帧处理部110判断接收到的数据帧的LD的值是否是本节点ID。如果接收到的数据帧的LD的值不是本节点ID,则处理转移到步骤S802,如果接收到的数据帧的LD的值是本节点ID,则处理转移到步骤S803。
此外,在数据帧接收处理的说明中,“接收到的数据帧”是指在图14的步骤S201中接收部101接收并在步骤S204中由缓冲部109所保存的成为图20的处理的开始契机的数据帧。
另外,在帧分支处理部106,向数据帧处理部110指示开始数据帧接收处理时,将接收到的数据帧的GS和FID的值向数据帧处理部110通知。因此,数据帧处理部110,以被通知的GS和FID的值为关键词,检索缓冲部109,从而能够找到包含接收到的数据帧的项。从而,数据帧处理部110能够从找到的项中读出在接收到的数据帧的帧头中包含的各字段的值。
准确地说,在步骤S801中,数据帧处理部110首先,如以上那样,将接收到的数据帧的帧头中包含的各字段的值从缓冲部109中读出并进行存储。而且,将已存储的LD的值(即接收到的数据帧的LD的值)与本节点ID进行比较。此外,作为节点装置100自身的节点ID的本节点ID,例如, 由图4的瞬时存储器205预先记录,所以,数据帧处理部110能够参照本节点ID。
当接收到的数据帧的LD的值与本节点ID不同时,是节点装置100偶然接收到与节点装置100自身无关系的数据帧的情况。因此,在步骤S802中数据帧处理部110废弃接收到的数据帧。总之,数据帧处理部110删除在步骤S801中找到的缓冲部109的项。而且,结束数据帧接收处理。
另一方面,在接收到的数据帧的LD的值与本节点ID相等的情况下,在步骤S803中数据帧处理部110生成ACK帧,要求发送部102发送ACK帧。而且,发送部102发送ACK帧。
例如,若节点装置N3接收了图7的数据帧303,则节点装置N3的数据帧处理部110-N3在步骤S803中生成图7的ACK帧322。而且,发送部102-N3发送ACK帧322。
具体来说,数据帧处理部110-N3对ACK帧322的LD设定接收到的数据帧303的LS的值即N2,对ACK帧322的LS设定本节点ID(也就是节点装置N3自身的节点ID即N3)。另外,因为ACK帧322与对应的作为数据帧303的LS的节点装置N2以外无关,所以数据帧处理部110-N3,对ACK帧322的GD设定表示无效的特殊值0x000000。
另外,数据帧处理部110-N3,以接收到ACK帧322的节点装置N2能够识别出“ACK帧322是针对数据帧303的ACK帧”的方式,来设定ACK帧322的GS和FID。即,数据帧处理部110-N3对ACK帧322的GS和FID分别设定接收到的数据帧303的GS和FID的值N1和Fa。
而且,数据帧处理部110-N3,作为ACK帧322的类型,设定表示“ACK帧”的规定值A。在步骤S803中,如以上那样数据帧处理部110-N3生成ACK帧322,发送部102-N3发送ACK帧322。
接着,在步骤S804中数据帧处理部110判断接收到的数据帧的GD的值是否是本节点ID。如果接收到的数据帧的GD的值是本节点ID,则处理转移到步骤S805。另一方面,如果接收到的数据帧的GD的值与本节点ID不同,则处理转移到图21的步骤S806。
在步骤S805中数据帧处理部110向上位层处理部111传递接收到的数据帧的净荷,结束数据帧接收处理。具体来说,数据帧处理部110,从在步骤S801中找到的缓冲部109的项中取出净荷并向上位层处理部111 输出,并从缓冲部109中删除该项。而且结束数据帧接收处理。
例如,在图6的步骤S112中从节点装置N6接收到数据帧的节点装置N7,将接收到的数据帧的净荷向上位层处理部111-N7输出,并在上位层处理部111-N7中进行处理。
图21的步骤S806以后的处理,在接收到的数据帧的LD的值与本节点ID相等并且接收到的数据帧的GD的值与本节点ID不同的情况下被执行。
在步骤S806中数据帧处理部110使用接收到的数据帧的FID和GS的值作为检索关键词,检索FID管理表105。此外,如上述那样,在图20的处理开始时由帧分支处理部106通知接收到的数据帧的FID和GS的值,
接着,在步骤S807中数据帧处理部110判断步骤S806的检索结果的项是否命中了。在命中了项的情况下,因为是接收了与节点装置100以前发送过的数据帧相同的数据帧的情况,所以处理转移到步骤S808。另一方面,在项没有命中的情况下,因为是接收到了节点装置100没有发送过的数据帧的情况,所以处理转移到步骤S810。
此外,准确地说,在“接收到了与节点装置100以前发送过的数据帧相同的数据帧,但是,检索对象的项已经由于时效而消失了”的情况下,也不会是项命中。优选,以不产生这样的情况的方式,基于在网络内反复回溯的最坏的时间的估计等,适当地决定FID管理表105的时效时间Gf。
在步骤S808中数据帧处理部110取出在步骤S806的检索中命中的FID管理表105的项的LD和OLS的值,例如存储于图4的DRAM204等存储区域中。
接着,在步骤S809中数据帧处理部110,如下方式更新与接收到的数据帧的GD的值对应的加权表(以下,在图21~23的说明中以“104-i”这样的参照符号进行参照)。即,数据帧处理部110在加权表104-i中将与在步骤S808中取出的LD对应的权重变更为最大值。此外,在第1实施方式中,权重的最大值是1。在权重变更后,处理转移到步骤S817。
此外,在如步骤S807、S808、S809那样进行处理时,与在步骤S808中取出的LD对应的项存在于与接收到的数据帧的GD的值对应的加权表104-i中这一情况,在步骤S809中被保证。其理由如以下所述那样。
如与图12和图13有关而进行说明的那样,在FID管理表105的项中将最终更新时刻设定为发送数据帧时。另外,如与图19有关而进行说明的那样,将FID管理表105的时效时间Gf,例如,设定为以最坏情况所预测的时间以上。因此,当节点装置100过去发送过的数据帧在网络内循环并在节点装置100中被接收时,保证了与该数据帧对应的项还残留在FID管理表105中。
而且,如与图11有关而进行说明的那样,若发送数据帧而返送回ACK帧,则权重被更新,在加权表104-1~101-M内的各项中,在权重被更新时也设定最终更新时刻。
从而,若按着时间序列,则成为下述(E1)~(E5)的顺序。
(E1)从节点装置100发送GD的值为NGD、GS的值为NGS、LD的值为NLD、FID的值为Fc的数据帧。这时,在FID管理表105中设定最终更新时刻。例如,在图6的节点装置N3中,在步骤S103中在图12的项E3中设定最终更新时刻T103。
(E2)若接收了针对上述数据帧的ACK帧,则在与节点装置NGD对应的加权表104-i中,更新LD字段的值是NLD的项的权重。这时,设定该项的最终更新时刻。例如,在节点装置N3中,如图11所示那样在步骤S103a中将加权表104-1-N3的LD字段的值是N4的项的最终更新时刻设定为Tb。
(E3)在节点装置100中接收GS的值是NGS、FID的值是Fc的相同的数据帧。例如,在图6的步骤S106中节点装置N3接收数据帧。此外,因为数据帧的GD的值在进行中继时不会被改写,所以在(E3)接收的数据帧的GD的值,根据上述(E1),当然是NGD。
(E4)从上述(E1)的时间点起经过FID管理表105的时效时间Gf。
(E5)从上述(E2)的时间点起经过加权表104的时效时间Gw。
如以上那样,(E3)的时间点在(E5)的时间点之前。因此,在(E3)的时间点,在与节点装置NGD对应的加权表104-i中,保证了LD字段的值是NLD的项的存在。
例如,在上述的例中,在图6的步骤S106的时间点保证了加权表104-1-N3的、LD字段的值是N4的项的存在。此外,在此的“步骤S106的时间点”,更详细地说,是节点装置N3执行以步骤S106中的接收为契机的数据帧接收处理所包含的步骤S809的处理的时间点。
从而,当在图21的步骤S806的检索中在FID管理表105中找到了项的情况下,在步骤S809中必定在加权表104-i中存在与在步骤S808中取出的LD对应的项。因此,在步骤S809中数据帧处理部110在已保证存在的项中,将权重的值设定为最大值。
相反地,当在步骤S806的检索中没有找到项的情况下,在步骤S810中数据帧处理部110将接收到的数据帧的LS的值,例如在图4的DRAM204等存储区域中,作为OLS进行存储。
而且,在步骤S811中数据帧处理部110,使用接收到的数据帧的GD的值作为检索关键词,检索加权表104。
接着,在步骤S812中数据帧处理部110判断步骤S811的检索结果是否命中了表。
如果与接收到的数据帧的GD的值对应的加权表在加权表104之中存在,则处理转移到步骤S812a。此外,在步骤S809中导入的“104-i”这样的参照符号是指示与接收到的数据帧的GD的值对应的加权表,所以步骤S811的检索结果命中的表也是“加权表104-i”。
另一方面,如果与接收到的数据帧的GD的值对应的加权表在加权表104之中不存在,则处理转移到步骤S813。
在步骤S812a中数据帧处理部110调整在步骤S811的检索中命中的加权表104-i。步骤S812a的加权表调整处理,详细地将与图24一起后述,是中和时效处理的副作用的处理。
步骤S812a的结果保证了与由邻接节点管理表103所管理的全部的邻接节点装置对应的项在加权表104-i中存在。而且,处理转移到步骤S817。
在步骤S813中数据帧处理部110增加与接收到的数据帧的GD的值对应的新加权表。此外,在步骤S813中所增加的表也是“加权表104-i”。
而且,在步骤S814中数据帧处理部110,在新加权表104-i中,将接收到的数据帧的GD的值作为加权表104-i的GD进行设定。
此外,在步骤S815中数据帧处理部110在新加权表104-i中生成与邻接节点管理表103的项数相同数目的新项。
而且,在步骤S816中数据帧处理部110,在在步骤S815中生成的 各项中分别设定邻接节点管理表103的各项的节点ID、初始加权值、当前时刻。
此外,如果列举以上的步骤S811~S816的具体例,则如以下那样。
例如,设为,当在图6的步骤S102中从节点装置N2接收到图7的数据帧303时,节点装置N3的加权表104-N3中不存在图11的加权表104-1-N3。于是,即使节点装置N3的数据帧处理部110-N3以作为节点装置N3接收到的数据帧303的GD的值的N7为检索关键词,在步骤S811中检索加权表104-N3,也不会命中表。
因此,数据帧处理部110-N3,在步骤S813中新生成加权表104-1-N3,在步骤S814中对加权表104-1-N3的GD设定N7。而且,数据帧处理部110-N3,在步骤S815中在加权表104-1-N3中生成与图9的邻接节点管理表103-N3相同数目的(即3个)新项。
在此,邻接节点管理表103-N3的各项的节点ID,如图10那样,是N2和N4和N5。因此,在步骤S816中数据帧处理部110-N3,在在步骤S815中生成的3个项中分别设定N2和N4和N5作为LD。另外,数据帧处理部110-N3,对这3个项的权重字段都设定0.5这样的初始加权值,对这3个项的最终更新时刻字段都设定当前时刻。
作为以上步骤S813~S816的结果,在加权表104-N3之中增加如图11的第1段那样的加权表104-1-N3。
在此,从具体例的说明返回到图21的处理的一般的说明。执行步骤S817是在执行步骤S809之后、执行步骤S816之后、或者在步骤S812中判断为在步骤S811的检索中命中了表之后。因此,在执行步骤S817时,保证了与接收到的数据帧的GD的值对应的加权表104-i的存在。
因此,在步骤S817中数据帧处理部110,在与接收到的数据帧的GD的值对应的加权表104-i中,取得与OLS不同的LD之中的与最小的权重建立了对应关系的LD的值。
总之,数据帧处理部110,在加权表104-i中,从具有与在步骤S808或者S810中存储的OLS的值不同的值作为LD的项之中,选择权重的值最小的项。而且,数据帧处理部110,将选择了的项的LD和权重的值例如存储在图4的DRAM204等存储区域内。
接着,在步骤S818中数据帧处理部110判断下述的2个条件(F1)和 (F2)中的任意一个是否成立。
(F1)与在步骤S817(或者后述的S829)中取得的LD的值对应的权重是权重的最大值(在第1实施方式中为1.0)。
(F2)向与在步骤S808或者S810中存储的OLS的值不同的LD转送数据帧全部失败了(但是,也包含加权表104-i中的LD本来只存在OLS的情况)。
在条件(F1)或者(F2)成立的情况下,已未残留有能够作为LD选择的邻接节点装置,所以处理转移到图23的步骤S830。
另一方面,在条件(F1)和(F2)都不成立的情况下,还残留有能够作为LD选择的邻接节点装置。换言之,与(G1)~(G4)中的任意一个都不符合的邻接节点装置至少存在1个。而且,在步骤S817(或者后述的S829)中取得能够作为LD选择的邻接节点装置的节点ID。
(G1)因为判断为该邻接节点装置前面的路径成为死胡同或者循环,所以该邻接节点装置与最大值的权重建立了对应关系。
(G2)因为累积了过去向该邻接节点装置发送同样GD目的地的数据帧失败的结果,所以该邻接节点装置与最大值的权重建立了对应关系。
(G3)在这次的数据帧接收处理中作为尝试向该邻接节点装置发送数据帧的结果,判明为“发送失败”。即,即使经过规定时间,也没能从发送了数据帧的邻接节点装置接收ACK帧。
(G4)该邻接节点装置是OLS。
因此,若在步骤S818中判断为条件(F1)和(F2)都不成立,则处理转移到步骤S819。步骤S819以后的处理是尝试向由已经取得的LD的值所识别的邻接节点装置转送数据帧的处理。
在步骤S819中数据帧处理部110,如以下那样生成新的数据帧并向发送部102输出,发送部102发送所生成的数据帧。
具体来说,数据帧处理部110对新的数据帧的LD指定在步骤S817(或者后述的S829)中取得的LD的值,对新的数据帧的LS指定本节点ID。另外,数据帧处理部110,从接收到的数据帧向新的数据帧复制GD、GS、FID、类型、长度的各字段的值及净荷。此外,“接收到的数据帧”,如上述那样,是在步骤S801中找到的缓冲部109内的项中所保存的数据帧。
在步骤S819的发送后,处理转移到步骤S820,数据帧处理部110更新缓冲部109的超时时刻。即,数据帧处理部110,在缓冲部109中,对保存了接收到的数据帧的项的超时时刻设定式(5)的时刻Ttimeout。
Ttimeout=Tnow+Twait (5)
此外,在式(5)中时刻Tnow是当前时刻,时间Twait是ACK帧等待时间。
而且,在步骤S821中数据帧处理部110,确认在步骤S806的FID管理表105的检索中是否命中了项,或者在后述的步骤S823及步骤S824中是否在FID管理表105中增加新项并设定了值。总之,数据帧处理部110确认作为GS及FID而具有与接收到的数据帧的GS和FID的值相等的值的项是否在FID管理表105中存在。
如果在步骤S806的检索中命中了项,或者在步骤S823及步骤S824中在FID管理表105中增加新项并设定了值,则这次的数据帧接收处理,是以接收与过去节点装置100自身发送过的相同的数据帧为契机的处理。因此,数据帧处理部110接着执行步骤S822。另一方面,如果在步骤S806的检索中未命中项并且在步骤S823及步骤S824中未在FID管理表105中增加新项并设定了值,则节点装置100是尝试初次转送初次接收的数据帧。因此,处理转移到步骤S823。
在步骤S822中数据帧处理部110,更新在步骤S806的检索中命中的项。具体来说,数据帧处理部110,在在步骤S806的检索中命中的项中,对LD字段设定在步骤S819中发送过的数据帧的LD的值,对最终更新时刻字段设定当前时刻。而且,处理转移到步骤S825。
另外,在步骤S823中数据帧处理部110,在FID管理表105中增加新项。
而且,在下面的步骤S824中数据帧处理部110,对新项设定值。具体来说,数据帧处理部110,在新项中对FID、GS及LD的各字段分别复制在步骤S819中发送过的数据帧的值。另外,数据帧处理部110,在新项中,对最终更新时刻字段设定当前时刻,对OLS字段复制在步骤S810中存储的OLS的值。然后,处理转移到步骤S825。
在步骤S825中数据帧处理部110等待步骤S819的发送成功与否的通知。
例如,在数据帧处理部110由执行规定程序的线程的图4的MPU201 来实现的情况下,在步骤S825中线程也可以休眠。在这种情况下,“发送成功”或者“发送失败”的通知是唤醒线程的处理。
在步骤S819的发送成功了的情况下,从在步骤S819发送过的数据帧中作为LD所指定的邻接节点装置返回ACK帧。而且,ACK处理部107进行后述的图25的处理,并向数据帧处理部110通知“发送成功”。
另外,步骤S819的发送失败是,即使成为式(5)的时刻Ttimeout,节点装置100也未接收到来自在步骤S819发送过的数据帧中作为LD所指定的邻接节点装置的ACK帧这一情况。ACK帧的接收,由基于ACK处理部107的后述的图26的处理来监视,若即使成为超时时刻Ttimeout也没有接收到ACK帧,则ACK处理部107向数据帧处理部110通知“发送失败”。
若数据帧处理部110在步骤S825中的待机之后从ACK处理部107接受了“发送成功”或者“发送失败”的通知,则处理转移到步骤S826。
在步骤S826中数据帧处理部110,基于从ACK处理部107接受了的通知,判断步骤S819的发送是否成功了。在发送成功了的情况下,处理转移到步骤S827,在发送失败了的情况下,处理转移到步骤S828。
在发送成功了的情况下,在步骤S827中数据帧处理部110,在加权表104中减小与在步骤S819中发送过的数据帧的GD和LD的组对应的权重。在此,注意到数据帧的GD未由于转送而被改写这一情况,换言之,在步骤S827中数据帧处理部110,在与接收到的数据帧的GD对应的加权表104-i中,进行权重的更新。
总之,数据帧处理部110,在加权表104-i中搜索作为LD而具有在步骤S817(或者后述的步骤S829)中取得的LD的值的项,减小找到的项的权重值。减小权重值即是提高对应的LD的优先级。
在此,若将找到的项的当前的权重值设为Wcurrent,则在步骤S827中数据帧处理部110也可以将找到的项的权重值更新为例如式(6)的Wrevised。
Wrevised=max(Wmin,Wcurrent-ΔWsuccess) (6)
此外,在式(6)中,Wmin是权重的最小值,在第1实施方式中是Wmin=0。另外,ΔWsuccess是在发送成功时将权重减小的规定的量,能够根据实施方式而决定适当值。例如,也可以是ΔWsuccess=0.1。
此外,数据帧处理部110在步骤S827,在作为LD而具有在步骤S817(或者后述的步骤S829)中取得的LD的值的加权表104-i的项中,对最终更新时刻设定当前时刻。而且,数据帧接收处理结束。
另一方面,在发送失败了的情况下,在步骤S828中数据帧处理部110在加权表104中增大与在步骤S819中发送过的数据帧的GD和LD的组对应的权重。总之,在步骤S828中数据帧处理部110在加权表104-i中搜索作为LD而具有在步骤S817(或者后述的步骤S829)中取得的LD的值的项,增大找到的项的权重值。增大权重值即是降低对应的LD的优先级。
例如,在步骤S828中数据帧处理部110,也可以将找到的项的权重值更新为式(7)的Wrevised。
Wrevised=min(Wmax,Wcurrent+ΔWfailure) (7)
此外,在式(7)中,Wmax是权重的最大值,在第1实施方式中为Wmax=1。另外,ΔWfailure是发送失败时将权重增加的规定量,能够根据实施方式而决定适当值。例如,也可以是ΔWfailure=0.1。当然,也可以是ΔWfailure≠ΔWsuccess。
此外,数据帧处理部110,在步骤S828中,例如在图4的DRAM204等工作区域存储在步骤S817(或者后述的步骤S829)中取得的LD的值,作为“转送失败的LD”。例如,也可以数据帧处理部110,将DRAM204上的线性表在步骤S817中初始化为空,在每次执行步骤S828时,在线性表中增加保持在步骤S817(或者后述的步骤S829)中取得的LD的值的要素。当然,为了存储“转送失败的LD”,也可以使用排列等其他的数据构造。
此外,数据帧处理部110在步骤S828中,在作为LD而具有在步骤S817(或者后述的步骤S829)中取得的LD的值的加权表104-i的项中,对最终更新时刻设定当前时刻。然后处理转移到步骤S829。
在步骤S829中数据帧处理部110搜索至今为止未作为LD尝试的其他的能够选择的邻接节点装置。具体来说,数据帧处理部110,在与接收到的数据帧的GD的值对应的加权表104-i中,取得转送失败的LD以外的且与OLS不同的LD之中的与最小的权重建立了对应关系的LD的值。此外,在步骤S828中例如在图4的DRAM204等工作区域内,例如以线性表等形式存储转送失败的LD。
总之,数据帧处理部110,在加权表104-i中从作为LD而具有(H1) 及(H2)的值的项之中,选择权重的值最小的项。而且,数据帧处理部110,将选择的项的LD和权重的值存储在例如图4的DRAM204等存储区域中。
(H1)与过去在步骤S817或者S829中取得的LD的值不同的值
(H2)与在步骤S808或者S810中存储的OLS的值不同的值
从而,例如,在步骤S829中不作为LD选择与在步骤S828中被更新为0.2的权重建立了对应关系的邻接节点装置,有时也能够在步骤S829中选择比0.2大的0.8等的权重的邻接节点装置。
如果列举以上的步骤S817~S829的具体例,则如以下那样。例如,节点装置N3、N5及N7与图6的节点装置N4邻接。而且,如图12那样,节点装置N4的FID管理表105-N4的项E4的OLS的值是N3。
在图6的例中,因为节点装置N4的数据帧处理部110-N4最初在步骤S817中取得LD的值N7,所以如步骤S104那样向节点装置N7发送数据帧。但是,如图6所示那样,因为步骤S104的发送失败,所以数据帧处理部110-N4在步骤S826中判断为“发送失败”。
于是,在数据帧处理部110-N4执行步骤S829的时间点,转送失败了的LD(即N7)以外并且与OLS(即N3)不同的LD的值只是N5。因此,在步骤S829中取得LD的值N5。
若这样在步骤S829中取得了LD的值,则处理从步骤S829返回到步骤S818。
因此,在上述的节点装置N4的例中,在步骤S829之后,再次执行步骤S818~S826。而且,如图6作为步骤S105所示那样,这次在步骤S826中判断为“发送成功”,执行步骤S827,并结束数据帧接收处理。
此外,如果对在步骤S828中例如如式(7)那样更新权重的影响,列举具体例进行说明,则如以下那样。
例如,设为,在图2的网络2中,在时刻Trcv1节点装置N106从邻接节点装置N108接收到指定节点装置N118为GD的第1数据帧。而且,设为,在时刻Trcv1在节点装置N106中存在与节点装置N118对应的加权表104-g106-N106。另外,在时刻Trcv1的加权表104-g106-N106中,分别地,权重0.4与节点装置N102建立了对应关系,权重0.7与节点装置N103建立了对应关系,权重0.1与节点装置N107建立了对应关系,权重0.5与节点装置N108建立了对应关系。
于是,在步骤S817中,选择与最小的权重0.1建立了对应关系的节点装置N107作为LD。然而,设为,当在步骤S819中发送数据帧时,偶然地,由于在节点装置N106和N107之间设置了遮蔽物等理由,暂时地节点装置N106和N107的无线链路变成不能通信。
于是,因为不会返回ACK帧,所以在步骤S828中,将节点装置N107的权重从0.1更新为0.2。而且,在步骤S829中,选择与权重0.4建立了对应关系的节点装置N102作为LD。在此,设为,步骤S819中的数据帧的发送成功,从节点装置N102返回了ACK帧。于是,在步骤S827中节点装置N102的权重被从0.4更新为0.3,数据帧接收处理结束。
在此,设为,从节点装置N106向节点装置N102所发送的第1数据帧,不会向节点装置N106回溯,而是到达了节点装置N118。总之,在加权表104-g106-N106中,随着第1数据帧的转送,没有权重被更新为1的项。
于是,当节点装置N106在其后的时刻Trcv2这回从节点装置N103接收到同样指定节点装置N118为GD的第2数据帧时,加权表104-g106-N106的内容如下面那样。即,分别地,权重0.3与节点装置N102建立了对应关系,权重0.7与节点装置N103建立了对应关系,权重0.2与节点装置N107建立了对应关系,权重0.5与节点装置N108建立了对应关系。
因此,在步骤S817中,尽管第1数据帧的转送失败了,还是选择与最小的权重建立了对应关系的节点装置N107作为LD。而且,如果在时刻Trcv2节点装置N106和N107之间的无线链路的通信质量好转了,步骤S819中的第2数据帧的发送成功了,则在步骤S827中节点装置N107的权重再次返回到0.1。
在此,若设为,向节点装置N107转送第2数据帧的结果是,没有产生回溯,则节点装置N107的权重保持0.1不变。因此,进而在其后的时刻Trcv3,如果节点装置N106从节点装置N107以外的邻接节点装置接收了同样指定节点装置N118为GD的第3数据帧,则最优先作为LD选择的仍然是节点装置N107。
这样,若在步骤S829中不是将权重急剧地设定为最大值,而只是稍微增大,则加权表104不会对通信环境的变化过度地反应。因此,在节点装置N106一个接一个地接收指定相同的节点装置作为GD的多个数据帧的过程中,如果暂时性地产生了障碍的链路从障碍中恢复出来,则随着环境 的好转,会在LD的选择中再次利用过去的学习结果。总之,在上述的例中,会再次优先选择过去已经学习为作为LD是适当的节点装置N107,作为LD。
或者,也可能有在时刻Trcv2节点装置N106和N107之间的无线链路未从障碍中恢复出来的情况。在这种情况下,暂且选择了权重0.2的节点装置N107作为第2数据帧发送时的LD,但是由于不能接收到ACK帧,节点装置N107的权重被更新为0.3。而且,也可能有时最终选择与权重0.3建立了对应关系的节点装置N102作为LD,发送成功而将权重更新为0.2。
于是,若在时刻Trcv3,例如节点装置N106从节点装置N103接收了第3数据帧,则选择与权重0.2建立了对应关系的节点装置N102作为LD,而且发送成功,节点装置N102的权重也许成为0.1。而且,其后不久,作为指定节点装置N118为GD的数据帧的LD,节点装置N106也许继续选择节点装置N102。
但是,若设为在之后,节点装置N106和N102之间的无线链路又产生了障碍,则不会从节点装置N102返回ACK帧。于是在步骤S829中进行LD的再选择。
在这种情况下,在时刻Trcv1以前已学习为作为LD是适当的节点装置N107比与权重0.5和0.7建立了对应关系且相对地作为LD不太适当的节点装置N108和N103,优先选择为LD。其理由为,因为发送第1和第2数据帧时的权重的学习,如步骤S828所示那样使权重平缓地变化,节点装置N107的权重,还比节点装置N108和N103的权重小。
而且,如果在此时间点节点装置N106和N107之间的无线链路从障碍中恢复出来了,则再次将节点装置N107的权重减小为0.2。这样,即使恢复多少花费时间,也因为暂时性的环境的变化不会过度地反映于加权表104中,所以过去的学习成果和缓地被反映。从而,选择适当的LD的概率也提高。
如以上那样,为了不过度地受到暂时性的障碍的影响,所以在步骤S828中,只稍微调整权重。
那么,在此,返回到步骤S818的分支的说明。若在步骤S818中判断为2个条件(F1)和(F2)中的任意一个成立,则因为已经未残留有能够作为LD选择的邻接节点装置,所以处理转移到图23的步骤S830。
在步骤S830中数据帧处理部110,如以下那样生成新的数据帧并向发送部102输出,发送部102发送所生成的数据帧。
具体来说,数据帧处理部110,对新的数据帧的LD指定在步骤S808或者S810中存储的OLS的值,对新的数据帧的LS指定本节点ID。另外,数据帧处理部110,从接收到的数据帧向新的数据帧复制GD、GS、FID、类型和长度的各字段的值及净荷。此外,“接收到的数据帧”,如上述那样,是在步骤S801中找到的缓冲部109内的项所保存的数据帧。在步骤S830所进行的发送处理即是回溯动作。
此外,步骤S830的发送的具体例是图6的步骤S110。
在步骤S830的发送之后,处理转移到步骤S831。在步骤S831中数据帧处理部110,将接收到的数据帧的FID和GS的值作为检索关键词使用,检索FID管理表105。
而且,在步骤S832中数据帧处理部110判断步骤S831的检索结果是否命中了项。如果已命中了项,则处理转移到步骤S833,如果未命中项,则处理转移到步骤S834。
此外,当在步骤S807中判断为“命中了项”的情况下,作为步骤S831的检索结果而找到的项,是作为步骤S806的检索结果而找到的项。另外,当在步骤S807中判断为“没有命中项”并且在步骤S823中生成了新项的情况下,步骤S831的检索结果是找出在步骤S823中所生成的新项。
在步骤S832中判断为“没有命中项”,是(I1)且(I2)的情况,换言之,是(J1)且(J2)的情况。
(I1)在步骤S807中判断为“没有命中项”。
(I2)在第1次刚刚执行了步骤S818之后,处理转移到了步骤S830。
(J1)节点装置100接收到了至今为止没有接收到的数据帧。
(J2)在与接收到的数据帧的GS的值对应的加权表104-i中,最大值的权重与全部的LD建立了对应关系。
在步骤S833中数据帧处理部110,更新作为步骤S831的检索结果命中的项。具体来说,数据帧处理部110,在命中的项中,对LD复制命中的项本身的OLS的值,对最终更新时刻设定当前时刻。然后处理转移到步骤S836。
另一方面,在步骤S834中,数据帧处理部110对FID管理表105 增加新项。而且,在接下来的步骤S835中数据帧处理部110,对在步骤S834增加的新项设定值。具体来说,数据帧处理部110,在新项中,对FID和GS分别复制接收到的数据帧的值,对最终更新时刻设定当前时刻,对OLS和LD复制接收到的数据帧的LS的值。然后处理转移到步骤S836。
在步骤S836中数据帧处理部110等待与在步骤S830中发送了的数据帧有关的发送成功与否的通知。而且,若数据帧处理部110从ACK处理部107接受了“发送成功”或者“发送失败”的通知,则处理转移到步骤S837。因为步骤S836与步骤S825类似,省略详细的说明。
而且,在步骤S837中数据帧处理部110判断步骤S830的数据帧发送是否成功了。在发送失败了的情况下,处理转移到步骤S838,在发送成功了的情况下,处理转移到步骤S839。
执行步骤S838是(K1)且(K2)这样的例外的的情况。
(K1)OLS以外的全部的邻接节点装置是(K1-1)或者(K1-2)。
(K1-1)与最大值的权重建立了对应关系。
(K1-2)若作为LD指定并发送了数据帧,则发送失败。
(K2)向OLS发送数据帧(即回溯动作)失败了。
在这种情况下,数据帧处理部110在步骤S838中废弃接收到的数据帧。即,数据帧处理部110,从缓冲部109中删除在步骤S801中找到的项。而且,结束数据帧接收处理。
此外,如果对步骤S838的影响,与具体例一起说明,则如以下那样。
例如,图6的步骤S110是节点装置N3在步骤S830中进行的发送。在图6的例中,对于步骤S110中的从节点装置N3向节点装置N2的数据帧发送,节点装置N2向节点装置N3返回ACK帧。
在此,相反地,假定在步骤S110的时间点节点装置N2和N3之间的链路产生障碍,在步骤S110(即步骤S830)节点装置N3发送的数据帧没有到达节点装置N2。于是,当然节点装置N3也不会从节点装置N2接收ACK帧,节点装置N3在步骤S837判断为“发送失败”,执行步骤S838。总之,在步骤S101节点装置N1发送的数据帧,在到达作为GD的节点装置N7前,在网络1内消失了。
而且,对节点装置N2来说,是“在步骤S102发送成功之后,从哪个邻接节点装置都未接收到相同的数据帧”这一状态。从而,节点装置N2 不能识别为“作为GD指定了节点装置N7时,节点装置N2选择节点装置N3作为LD是不适当的”。总之,如图6的例那样,节点装置N2不能学习为“作为GD指定了节点装置N7时,节点装置N2选择节点装置N6作为LD是适当的”。
其结果是,在节点装置N2接收到指定了节点装置N7作为GD的新的另外的数据帧的情况下(或者节点装置N2成为GS并发送那样的数据帧的情况下),节点装置N2选择节点装置N3作为LD。
假设,如果在该时间点节点装置N2和N3之间的链路还未从障碍中恢复出来(例如,如果恶劣的电波状况继续),则从节点装置N2发送的数据帧不会到达节点装置N3。从而,节点装置N2不能接收到ACK帧,在图22的步骤S826中判断为“发送失败”。
其结果是,节点装置N2在步骤S828在与作为GD的节点装置N7对应的加权表104-h2-N2(该参照符号与图6的说明相同)中增大与节点装置N2对应的权重。而且,节点装置N2在接着的步骤S829中再次选择节点装置N6作为LD。
这样,若在网络1内的节点装置N3中在步骤S838废弃了数据帧,则作为与被废弃的数据帧有关的OLS的其他节点装置N2中的加权表104-h2-N2的学习有时延迟。
但是,从上述的例示可知,节点装置N2中的学习只是稍微延迟。节点装置N2,在接收到与前面的数据帧同样以节点装置N7为GD的接下来的数据帧之后,能够通过以该接收为契机的一系列的处理,学习适当的权重。总之,作为多个数据帧一个接一个流通的网络1整体的动作来看,则即使有由于用于向OLS的回溯的数据帧的发送失败而局部地使权重的学习延迟的节点装置,也能够马上挽回学习的延迟。
在此,返回到图23的流程图的说明。在向OLS发送数据帧成功了的情况下,执行步骤S839。
在步骤S839中数据帧处理部110,在加权表104中,减小与在步骤S830中发送过的数据帧的GD和LD的组对应的权重。换言之,数据帧处理部110,在与接收到的数据帧的GD对应的加权表104-i中,更新与发送过的数据帧的LD(即在步骤S808或者S810中存储的OLS)对应的权重。
由于步骤S839的详细情况与步骤S827相同,所以省略详细说明, 但是,数据帧处理部110,例如也可以使用式(6)来更新权重。数据帧处理部110,进一步,在加权表104-i的更新了权重的项中,对最终更新时刻设定当前时刻。而且,结束数据帧接收处理。
接着,参照图24,说明图21的步骤S812a的加权表调整处理的详细情况。此外,图24的加权表调整处理,也在后述的图27的步骤S1108a中被调出。在图24的说明中“命中的加权表104-i”意思是在图21的步骤S811的检索或者图27的步骤S1107的检索中命中的表。
在步骤S851中数据帧处理部110关注于邻接节点管理表103(参照图9)的第1个项。此外,在以下的图24的说明中,将数据帧处理部110正在关注的邻接节点管理表103的项称作“关注项”。
接着,在步骤S852中,数据帧处理部110判断命中的加权表104-i中是否有作为LD包含关注项的节点ID的值的项。如果命中的加权表104-i中有作为LD包含关注项的节点ID的值的项,则处理转移到步骤S855。相反地,如果命中的加权表104-i中没有作为LD包含关注项的节点ID的值的项,则处理转移到步骤S853。
在步骤S853中数据帧处理部110在命中的加权表104-i中增加新项。
接着在步骤S854中数据帧处理部110,对在步骤S853中在加权表104-i增加的新项设定值。总之,数据帧处理部110,在新项中,分别对LD字段设定邻接节点管理表103的关注项的节点ID的值,对权重字段设定初始加权值,对最终更新时刻字段设定当前时刻。
此外,步骤S854中的初始加权值,与图15的步骤S308中的初始加权值不同。具体来说,步骤S854中的初始加权值,在命中的加权表104-i的权重字段中,是小于1的权重之中的最大值。
例如,在命中的加权表104-i的权重字段中存在4个项,如果各个权重字段的值是0.4、0.7、1及0.5,则步骤S854中的初始加权值是0.7。此外,在命中的加权表104-i的权重字段的值在全部项中是1的情况下,步骤S854中的初始加权值是小于1的任意值,例如也可以与图15的步骤S308中的初始加权值同样地是0.5。
通过在步骤S854中使用以上那样的初始加权值,加权表104-i的既存的项所反映的学习结果被优先考虑。其结果是,路径不会没必要地进行变动,换言之,路径稳定。
例如,设为,在4个项的权重字段的值分别是0.4、0.7、1及0.5的上述例中,在步骤S854中作为初始加权值与图15的步骤S308同样地使用0.5。于是,并未学习权重的邻接节点装置(即在步骤S853中所增加的新项中作为LD记录了节点ID的邻接节点装置),比权重为0.7的邻接节点装置被优先作为LD选择。总之,作为至今为止的学习的累积的权重0.7被忽视了。
因此,在第1实施方式中,防止并未学习权重的邻接节点装置比学习权重完成的邻接节点装置被优先作为LD选择这一情况,为了优先考虑至今为止的学习结果,而利用如上述那样被定义的初始加权值。
在步骤S855中数据帧处理部110判断邻接节点管理表103中是否残留有还未关注的项。如果数据帧处理部110关注完了邻接节点管理表103的全部的项,则结束图24的处理。另一方面,如果邻接节点管理表103中残留有数据帧处理部110还未关注的项,则处理转移到步骤S856。
而且,在步骤S856中数据帧处理部110关注邻接节点管理表103的还未关注的项之中的接下来的项。然后,处理返回到步骤S852。
此外,图24的处理的意义如以下所述那样。
作为加权表104-i中的每个项的时效处理的副作用,在即将进行图24的处理之前,也有如下那样的状况的可能性。即,作为LD具有邻接节点管理表103中登记的某个邻接节点装置的节点ID的项,有可能在加权表104-i中不存在。
在此,节点装置100的邻接节点装置是在发送数据帧时数据帧处理部110进行选择的LD的潜在的候补。因此,为了节点装置100进行适当的动作,优选在命中的加权表104-i的LD字段中包括全部邻接节点装置。
根据以上的图24的加权表调整处理,消除了作为时效处理的副作用而有可能产生的上述那样的状况。总之,保证了邻接节点管理表103中登记的全部的节点ID作为LD在命中的加权表104-i中被登记。
以上,参照图20~24,对图14的步骤S205中的数据帧接收处理进行了详细的说明。接着,对与数据帧接收处理的步骤S826及S837中的发送成功与否的通知相关的处理,参照图25和图26进行说明。
图25是图14的步骤S206中的ACK帧接收处理的流程图。若从帧分支处理部106向ACK处理部107输出了ACK帧,则开始图25的处理。
在步骤S901中ACK处理部107判断从帧分支处理部106接受的ACK帧的LD的值是否与本节点ID相等。如果ACK帧的LD的值与本节点ID相等,则处理转移到步骤S902,如果ACK帧的LD的值与本节点ID不同,则结束图25的处理。ACK处理部107,例如也能够参照预先在瞬时存储器205等中保存的本节点ID。
例如,若如图31作为步骤S105a所示那样节点装置N5发送了针对在图6的步骤S105节点装置N4发送过的数据帧的ACK帧,则无关系的节点装置N3也接收ACK帧。原因是节点装置N3与节点装置N5邻接。
但是,作为步骤S901的判断结果,节点装置N3的ACK处理部107-N3立刻结束图25的处理,所以节点装置N3不会受到与节点装置N3无关的ACK帧的副作用。
在步骤S902中ACK处理部107,根据ACK帧的GS和FID的值,确定与ACK帧对应的完成发送的数据帧。
例如,对于在图6的步骤S102中节点装置N2向节点装置N3发送的图7的数据帧303,节点装置N3向节点装置N2返回图7的ACK帧322。在此,若对以ACK帧322的接收为契机节点装置N2的ACK处理部107-N2进行图25的处理的情况详细地进行说明,则如以下所述那样。
ACK处理部107-N2,在步骤S902中取出ACK帧322的GS和FID的值(即N1和Fa)。另外,因为缓冲部109-N2是与图8同样的形式,所以在缓冲部109-N2中保存了从节点装置N2发送完的数据帧303。因此,ACK处理部107-N2,以取出的GS和FID的值(即N1和Fa)为关键词,检索缓冲部109-N2的项,来确定包含数据帧303的项。
接着,在步骤S903中ACK处理部107从缓冲部109删除在步骤S902中确定的完成发送的数据帧。总之,ACK处理部107从缓冲部109中删除在步骤S902的检索中找到的项。
另外,在步骤S904中ACK处理部107,关于步骤S902所确定的完成发送的数据帧,向数据帧处理部110通知“发送成功”。而且,结束图25的处理。
例如,数据帧处理部110,也可以通过图4的MPU201执行程序来实现。在这种情况下,将MPU201作为数据帧处理部110而发挥功能的线程,也可以在数据帧发送后,直到接收ACK帧为止一直休眠。步骤S904 中的“发送成功”的通知是唤醒正在休眠的线程的处理。
此外,步骤S904的通知伴随步骤S902所确定的数据帧的GS和FID的值的通知。例如在上述的例中,ACK处理部107-N2,也将用于识别数据帧303的GS和FID的值(即N1和Fa)向数据帧处理部110通知。
图26是表示直到超时时刻还未接收到ACK帧时的处理的流程图。例如,以图4的定时器IC203以规定间隔产生的中断信号为契机,定期地进行图26的处理。
在步骤S1001中ACK处理部107,关注于缓冲部109(参照图8)的第1个项。以下,在与图26有关的说明中,将ACK处理部107正在关注的缓冲部109的项称作“关注项”。
接着,在步骤S1002中ACK处理部107,比较当前时刻和关注项的超时时刻字段的值。而且,如果当前时刻是在超时时刻以后,则处理转移到步骤S1003。另一方面,如果当前时刻还未达到超时时刻,则处理转移到步骤S1005。
在步骤S1003中ACK处理部107,关于缓冲部109的关注项中保存的数据帧,向数据帧处理部110通知“发送失败”。步骤S1003的通知,与图25的步骤S904的通知同样地,具体来说,例如也可以是唤醒正在休眠的线程的处理。
另外,与步骤S904的通知同样地,步骤S1003的通知也伴随数据帧的GS和FID的值的通知。具体来说,ACK处理部107,读取保存于关注项的数据帧的GS和FID的值,利用读取出的GS和FID的值确定数据帧,并将所确定的数据帧的“发送失败”向数据帧处理部110通知。
此外,在发送失败的情况下,有时数据帧处理部110选择至今为止未作为LD而尝试的邻接节点装置作为新的LD并尝试再发送数据帧。因此,在步骤S1003的时间点,不从缓冲部109中删除关注项。
接着,在步骤S1004中,ACK处理部107对关注项的超时时刻设定式(5)的时刻Ttimeout。然后,处理转移到步骤S1005。
在步骤S1005中,ACK处理部107判断在缓冲部109中是否残留有还未关注的项。如果ACK处理部107关注完了缓冲部109的全部的项,则结束图26的处理。另一方面,如果缓冲部109中残留有ACK处理部107 还未关注的项,则处理转移到步骤S1006。
在步骤S1006中ACK处理部107,关注于在缓冲部109之中还未关注的接下来的项。然后,处理返回步骤S1002。
可是,参照图20~图23进行了说明的数据帧接收处理,如上述那样,是节点装置100是不会成为GS的类型的节点装置时的例。以下,参照图27~图29,对能够成为GS的类型的节点装置所特有的处理进行说明。
图27和图28是节点装置100成为GS并发送数据帧时的发送处理的流程图。以从上位层处理部111向数据帧处理部110的请求为契机,开始图27的处理。
在步骤S1101中数据帧处理部110,从上位层处理部111取得数据帧的GD的值及净荷,作为上位层处理部111的上位层的协议的处理结果。
例如,“上位层的协议”也可以是以太网协议。在这种情况下,上位层处理部111向数据帧处理部110输出以太网帧,作为在第1实施方式中所定义的数据帧的净荷。另外,上位层处理部111,将对第1实施方式中的数据帧的GD设定的值向数据帧处理部110通知。
而且,数据帧处理部110,生成包含从上位层处理部111取得的净荷的新的数据帧,对生成的数据帧的GD设定从上位层处理部111取得的值。例如,在图6的例中,节点装置N1的数据帧处理部110-N1,从上位层处理部111-N1取得N7作为GD的值,并对数据帧的GD设定为N7。
接着,在步骤S1102中数据帧处理部110,求出在步骤S1101中取得的净荷的长度,并在所生成的数据帧的长度字段中进行设定。例如,在图6的例中,如图7的数据帧302和303所示例的那样,因为净荷的长度是Pa,所以节点装置N1的数据帧处理部110-N1,对所生成的数据帧的长度字段设定为Pa。
而且,在步骤S1103中数据帧处理部110,对所生成的数据帧的GS和LS设定本节点ID。例如,在图6的例中,节点装置N1的数据帧处理部110-N1,对所生成的数据帧的GS和LS分别设定为N1。
而且,在步骤S1104中数据帧处理部110,向FID生成部113请求生成新的FID。于是FID生成部113生成新的FID并向数据帧处理部110输出,所以数据帧处理部110,对所生成的数据帧的FID字段设定所生成的FID。
此外,在步骤S1105中数据帧处理部110,对所生成的数据帧的类型字段设定表示“数据帧”的规定值D(参照图7)。此外,以上的步骤S1102~S1105的执行顺序可以是任意的顺序。
如以上那样,若生成完了要发送的数据帧,则在步骤S1106中数据帧处理部110将所生成的数据帧保存在缓冲部109中。即,数据帧处理部110,在缓冲部109内确保新的项的区域,在确保的区域内保存所生成的数据帧。此外,如图8所示那样缓冲部109中有超时时刻字段,但是在此时间点,不设定超时时刻。
接着在步骤S1107中数据帧处理部110,使用在步骤S1101由上位层处理部111指定的GD的值来检索加权表104。
而且在步骤S1108中数据帧处理部110判断是否作为步骤S1107的检索的结果命中了与所指定的GD的值对应的加权表。在命中了与所指定的GD的值对应的加权表的的情况下,处理转移到步骤S1108a,在不存在与所指定的GD的值对应的加权表的情况下,处理转移到步骤S1009。
在步骤S1108a中数据帧处理部110进行图24的加权表调整处理,中和时效处理的副作用。然后,处理转移到步骤S1110。
在步骤S1109中数据帧处理部110,在加权表104之中增加与在步骤S1101中所指定的GD的值对应的新加权表。具体来说,数据帧处理部110在步骤S1109进行与图21的步骤S813~S816类似的处理。
即,数据帧处理部110在步骤S1109中增加与由上位层处理部111所指定的GD的值对应的新加权表,在新加权表中设定由上位层处理部111所指定的GD的值作为GD。此外,数据帧处理部110在新加权表内生成与邻接节点管理表103相同数目的新项。而且,数据帧处理部110,在所生成的各项中分别设定邻接节点管理表103的各项的节点ID、初始加权值及当前时刻。
此外,以下,为了方便说明,步骤S1101中将与所指定的GD的值对应的加权表以“104-i”这样的参照符号进行参照。即,加权表104-i,是在步骤S1107的检索中命中的表或者在步骤S1109中被增加的表。
如以上那样,在步骤S1108中判断为命中了加权表104-i后,或者在步骤S1109中生成了加权表104-i后,处理转移到步骤S1110。
而且,在步骤S1110中数据帧处理部110,在与由上位层处理部111 所指定的GD的值对应的加权表104-i中取得与最小的权重建立了对应关系的LD的值。此外,如图11所示例的那样,也可能有在加权表104-i中多个项具有相同的最小的权重的情况。在这种情况下,数据帧处理部110,在步骤S1110中选择并取得与最小的权重建立了对应关系的多个LD的值之中任意1个。数据帧处理部110,例如,将所取得的LD的值及对应的权重的值存储于图4的DRAM204等存储区域。
接着,处理转移到图28的步骤S1111,在步骤S1111中数据帧处理部110,判断下述的2个条件(L1)和(L2)的任意一个是否成立。
(L1)与在步骤S1110中所取得的LD的值对应的权重是权重的最大值(在第1实施方式中,具体来说是1.0)。
(L2)向在加权表104-i中所登记的全部的LD的发送全都失败了。
在条件(L1)或者(L2)成立的情况下,已经未残留有能够作为LD选择的邻接节点装置,所以处理转移到步骤S1112。
另一方面,在条件(L1)和(L2)都不成立的情况下,还残留有能够作为LD选择的邻接节点装置。换言之,与关于数据帧接收处理的步骤S818而进行了说明的(G1)~(G3)中的任一个都不符合的邻接节点装置至少存在1个。而且,在步骤S1110(或者后述的步骤S1125)中取得能够作为LD选择的邻接节点装置的节点ID。因此,若在步骤S1111中判断为条件(L1)和(L2)的都不成立,则处理转移到步骤S1114。
在条件(L1)或者(L2)成立的情况下,在步骤S1112中数据帧处理部110废弃数据帧。总之,数据帧处理部110从缓冲部109中删除在步骤S1106中新生成并保存了数据帧的项。
而且,在接下来的步骤S1113中数据帧处理部110向上位层处理部111通知“发送失败”。总之,数据帧处理部110向上位层处理部111通知,向哪个邻接节点装置都不能成功地发送数据帧。而且结束图27~图28的处理。
另一方面,若在步骤S1111中判断为条件(L1)和(L2)都不成立,则在步骤S1114~S1125中进行尝试向由已经取得的LD的值所识别的邻接节点装置转送数据帧的处理。
在步骤S1114中,数据帧处理部110对在步骤S1106保存于缓冲部109的数据帧的LD设定在步骤S1110或者后述的步骤S1125中所取得的 LD的值。而且,数据帧处理部110要求发送部102发送设定了LD的值的数据帧。于是,发送部102发送数据帧。
接着在步骤S1115中数据帧处理部110对在步骤S1106中保存了数据帧的缓冲部109内的项的超时时刻设定式(5)的时刻Ttimeout。
而且,在步骤S1116中数据帧处理部110,使用本节点ID和在步骤S1104中FID生成部113所生成的FID来检索FID管理表105。
接着,在步骤S1117中数据帧处理部110判断在步骤S1116的FID管理表105的检索中是否命中了项。此外,在第1次执行步骤S1117的情况下判断为“没有命中项”,在第2次以后执行步骤S1117时判断为“命中了项”。
如果在步骤S1116的检索中命中了项,则处理转移到步骤S1118。另一方面,如果在步骤S1116的检索中未命中项,则处理转移到步骤S1119。
在步骤S1118中数据帧处理部110更新在步骤S1116的检索中命中的项。具体来说,数据帧处理部110,在在步骤S1116的检索中命中的项中,对LD字段设定在步骤S1114发送过的数据帧的LD的值,对最终更新时刻字段设定当前时刻。然后,处理转移到步骤S1121。
另外,在步骤S1119中数据帧处理部110在FID管理表105中增加新项。
而且,在接下来的步骤S1120中数据帧处理部110,对新项设定值。具体来说,数据帧处理部110,在新项中,对FID和GS及LD的各字段分别复制在步骤S1114发送过的数据帧的值。另外,数据帧处理部110,在新项中,对最终更新时刻字段设定当前时刻,对OLS字段复制本节点ID。
例如,图12所示的节点装置N1的FID管理表105-N1的项E1是节点装置N1的数据帧处理部110-N1通过以上的处理所生成的项。
在步骤S1121中数据帧处理部110,等待步骤S1114的发送成功与否的通知。步骤S1121的详细情况与图22的步骤S825相同。若数据帧处理部110进行步骤S1121的待机之后从ACK处理部107接受了“发送成功”或者“发送失败”的通知,则处理转移到步骤S1122。
在步骤S1122中数据帧处理部110基于从ACK处理部107接受的通 知,判断步骤S1114的发送是否成功了。在发送成功了的情况下,处理转移到步骤S1123,在发送失败了的情况下,处理转移到步骤S1124。
在发送成功了的情况下,在步骤S1123中数据帧处理部110,在加权表104中,减小与在步骤S1114发送过的数据帧的GD和LD的组对应的权重。
总之,数据帧处理部110,在与由上位层处理部111所指定的GD的值对应的加权表104-i中,例如使用式(6)来更新与发送过的数据帧的LD对应的权重。数据帧处理部110还在加权表104-i的更新了权重的项中,对最终更新时刻设定当前时刻。而且,结束图27~图28的处理。
相反地,在发送失败了的情况下,在步骤S1124中数据帧处理部110,在加权表104中增大与在步骤S1114发送过的数据帧的GD和LD的组对应的权重。
总之,数据帧处理部110,在与由上位层处理部111所指定的GD的值对应的加权表104-i中,例如使用式(7)来更新与发送过的数据帧的LD对应的权重。
此外,数据帧处理部110在步骤S1124中还将发送过的数据帧的LD的值,例如在图4的DRAM204等工作区域作为“发送失败了的LD”而进行存储。与图22的步骤S828同样地,为了存储“发送失败了的LD”,也可以利用线性表和排列等数据构造。
另外,数据帧处理部110在步骤S1124中还在加权表104-i的更新了权重的项中,对最终更新时刻设定当前时刻。然后,处理转移到步骤S1125。
在步骤S1125中数据帧处理部110搜索至今为止未作为LD尝试的其他的能够选择的邻接节点装置。具体来说,数据帧处理部110在与由上位层处理部111所指定的GD的值对应的加权表104-i中,取得发送失败了的LD以外的LD之中的与最小的权重建立了对应关系的LD的值。在此,发送失败了的LD,在步骤S1124中例如在图4的DRAM204等工作区域,例如以线性表和排列的形式被存储。
总之,数据帧处理部110在加权表104-i中取得在过去在步骤S1110或者S1125中所未取得的LD的值之中的与最小的权重建立了对应关系的LD的值。数据帧处理部110,将所取得的LD的值及对应的权重的值,例如存储于图4的DRAM204等存储区域。然后,处理返回到步骤S1111。
那么,图29是能够成为GS的节点装置100作为数据帧接收处理的一部分取代图23的处理而进行的处理的流程图。
在节点装置100是能够成为GS的类型的装置的情况下,数据帧接收处理中的步骤S801~S829与节点装置100专职中继的的情况同样,如图20~图22所示那样。但是,在是节点装置100也能够成为GS的类型的装置的情况下,若在图22的步骤S818中数据帧处理部110判断为“条件(F1)和(F2)中的任意一个成立了,则处理转移到图29的步骤S830a。
在步骤S830a中数据帧处理部110判断接收到的数据帧的GS的值是否是本节点ID。如果接收到的数据帧的GS的值与本节点ID不同,则处理转移到步骤S830b,如果接收到的数据帧的GS的值是本节点ID,则处理转移到步骤S830c。
在步骤S830b中数据帧处理部110,如以下那样生成新的数据帧并向发送部102输出,发送部102发送所生成的数据帧。
具体来说,数据帧处理部110对新的数据帧的LD指定在步骤S808或者S810中存储的OLS的值,对新的数据帧的LS指定本节点ID。另外,数据帧处理部110,从接收到的数据帧向新的数据帧复制GD、GS、FID、类型和长度的各字段的值及净荷。在发送数据帧后,处理转移到步骤S831a。
另外,在步骤S830c中,数据帧处理部110向上位层处理部111通知“发送失败”。当通知时,数据帧处理部110,例如也可以从接收到的数据帧中取出净荷,将净荷或者净荷的一部分向上位层处理部111输出。于是,上位层处理部111能够基于从数据帧处理部110接受的净荷的内容,来识别哪个数据的发送失败了。在通知发送失败之后,处理转移到步骤S838a。
那么,在步骤S831a中,数据帧处理部110使用接收到的数据帧的FID和GS的值作为检索关键词来检索FID管理表105。此外,以下的步骤S831a~S839a分别是与图23的步骤S831~S839类似的步骤。
在接下来的步骤S832a中数据帧处理部110判断作为步骤S831a的检索结果是否命中了项。如果命中了项,则处理转移到步骤S833a,如果未命中项,则处理转移到步骤S834a。
此外,当在步骤S807中判断为“命中了项”的情况下,作为步骤 S831a的检索结果找到的项是作为步骤S806的检索结果找到的项。另外,在步骤S807中判断为“没有命中项”并且在步骤S823中生成了新项的情况下,作为步骤S831a的检索结果是找到在步骤S823所生成的新项。
在步骤S832a判断为“没有命中项”,是(M1)且(M2)的情况。
(M1)在步骤S807中判断为“没有命中项”。
(M2)在刚刚第1次执行了步骤S818之后,处理转移到了步骤S830a。
在步骤S833a中数据帧处理部110更新作为步骤S831a的检索结果命中的项。具体来说,数据帧处理部110,在命中的项中,对LD复制命中的项本身的OLS的值,对最终更新时刻设定当前时刻。然后,处理转移到步骤S836a。
另一方面,在步骤S834a中,数据帧处理部110在FID管理表105增加新项。
而且,在接下来的步骤S835a中数据帧处理部110对在步骤S834a增加的新项设定值。具体来说,数据帧处理部110,在新项中,对FID和GS分别复制接收到的数据帧的值,对最终更新时刻设定当前时刻,对OLS和LD复制接收到的数据帧的LS的值。然后,处理转移到步骤S836a。
在步骤S836a中数据帧处理部110等待与在步骤S830b发送过的数据帧有关的发送成功与否的通知。而且,若数据帧处理部110从ACK处理部107接受了“发送成功”或者“发送失败”的通知,则处理转移到步骤S837a。
在步骤S837a中数据帧处理部110判断步骤S830b的数据帧的发送是否成功了。在发送失败了的情况下,处理转移到步骤S838a,在发送成功了的情况下,处理转移到步骤S839a。
执行步骤S838a是(N1)或者(N2)的情况。
(N1)节点装置100自身成为GS而发送过的数据帧通过回溯而返回到节点装置100并被接收,并且节点装置100的邻接节点装置全部是(N1-1)或者(N1-2)。
(N1-1)与最大值的权重建立了对应关系。
(N1-2)若作为LD指定并发送了数据帧,则发送失败。
(N2)接收到的数据帧的GS是节点装置100以外的其他节点装置,并且OLS以外的全部的邻接节点装置是(N2-1)或者(N2-2)并且向OLS发送数据帧失败了。
(N2-1)与最大值的权重建立了对应关系。
(N2-2)若作为LD指定并发送了数据帧,则发送失败。
在这种情况下,数据帧处理部110在步骤S838a中废弃接收到的数据帧。即数据帧处理部110从缓冲部109中删除在步骤S801找到的项。而且,结束数据帧接收处理。
另一方面,在关于不是节点装置100的另外的节点装置是GS的数据帧,从节点装置100向节点装置100的OLS的发送成功了的情况下,执行步骤S839a。在步骤S839a中数据帧处理部110,在加权表104中,减小与在步骤S830b中发送过的数据帧的GD和LD的组对应的权重。换言之,数据帧处理部110,在与接收到的数据帧的GD对应的加权表104-i中,更新与发送过的数据帧的LD(即在步骤S808或者S810中存储的OLS)对应的权重。
例如,与步骤S829和S839同样地,数据帧处理部110也可以使用式(6)来更新权重。数据帧处理部110还在加权表104-i的更新了权重的项中,对最终更新时刻设定当前时刻。而且,结束数据帧接收处理。
继而,在以上的详细说明的基础上,再次对图6的例进行说明。
图30是以表示搜索空间的搜索树的形式来说明图6中的路径选择的图,该搜索空间用于搜索路径。在人工智能的领域中,搜索空间常常以搜索树的形式进行表达。图30是从在网络内动态地进行第1实施方式中的数据帧的转送的路径搜索的观点来看,将搜索空间作为搜索树400来表达的图。此外,搜索树400,不是在节点装置内所生成的数据构造,也不是网络拓扑其本身。
对包含于搜索树400的各搜索节点附加了网络1内的节点装置的节点ID的标签。此外,在图30中以圆形、正方形、六边形3种图形表示各搜索节点,但是,对于圆形、正方形、六边形的含义的不同将后述。
另外,在图6的例中,因为数据帧的GS和GD分别是节点装置N1和N7,所以搜索树400的根节点是附加了N1这样的标签的搜索节点401。而且,路径搜索的目标是在搜索树400中发现附加了N7这样的标签的搜索 节点409。
在此,如果在图6的网络1中节点装置Ni和Nj邻接(1≤i、j≤7),则对节点装置Ni来说邻接节点装置Nj是潜在的LD的候补,对节点装置Nj来说邻接节点装置Ni也是潜在的LD的候补。因此,在搜索树400内,附加了Ni这样的标签的搜索节点具有附加了Nj这样的标签的搜索节点作为子节。
从而,在搜索树400中,附加了Ni这样的标签的第1搜索节点具有附加了Nj这样的标签的第2搜索节点作为子节点,第2搜索节点具有附加了Ni这样的标签的第3搜索节点作为子节点。因为以下相同,所以搜索树400,潜在地具有无限的搜索节点。
在潜在地无限大的搜索树400的搜索中,在进行搜索空间的修剪(pruning)的同时,进行深度优先搜索。“搜索空间的修剪”是为了提高搜索效率而忽视搜索树的1个以上的枝的技术,在搜索算法的研究领域中,根据应用领域提出了各种修剪方法。
作为第1实施方式的节点装置100的自主分散协调的结果的修剪有2种。以下,简便地称为“第1种修剪”和“第2种修剪”。
第1种修剪是具有与父节点相同的标签的子节点的修剪。例如,在上述的第1~第3搜索节点的例中,作为第2搜索节点的子节点的第3搜索节点的标签与作为第2搜索节点的父节点的第1搜索节点的标签相同。因此,在第2搜索节点前面的搜索中,修剪第3搜索节点。通过第1种修剪所修剪的搜索节点在图30中以正方形来表示。
第2种修剪是具有与先辈节点相同的标签的子节点的修剪。第2种修剪,能够根据第1实施方式的FID管理表105进行。通过第2种修剪所修剪的搜索节点在图30中以六边形来表示。
此外,在图30中圆形表示没有被修剪而搜索出的搜索节点。
以下,具体地对图6的例和搜索树400之间的关系进行说明。
如上述那样,作为搜索树400的根节点的搜索节点401的标签,是作为数据帧的GS的节点装置N1的节点ID/N1。而且,在网络1中只有节点装置N2与节点装置N1邻接,所以搜索节点401只具有1个搜索节点402作为子节点,搜索节点402的标签是N2。
另外,因为只有节点装置N2与节点装置N1邻接,所以如图6的步 骤S101那样,从节点装置N1向节点装置N2发送数据帧。步骤S101的发送在图30中与从搜索节点401向搜索节点402进行搜索的情况相对应。
而且,在网络1中节点装置N1和N3和N6与节点装置N2邻接。因此,搜索节点402具有3个搜索节点403、404合405作为子节点,搜索节点403、404和405各自的标签是N3、N6和N1。
在图6中节点装置N2最初选择节点装置N3作为LD,并在步骤S102向节点装置N3发送数据帧这一情况,在图30中与从搜索节点402向搜索节点403进行搜索相对应。
而且,在网络1中节点装置N2和N4和N5与节点装置N3邻接。因此,搜索节点403具有3个搜索节点406、407及408作为子节点,搜索节点406、407及408各自的标签是N4、N2和N5。
在图6中节点装置N3最初选择节点装置N4作为LD,并在步骤S103向节点装置N4发送数据帧这一情况,在图30中与从搜索节点403向搜索节点406进行搜索相对应。
而且,在网络1中节点装置N7和N5和N3与节点装置N4邻接。因此,搜索节点406具有3个搜索节点411、412及413作为子节点,搜索节点411、412及413各自的标签是N7、N5和N3。
在图6中节点装置N4最初选择节点装置N7作为LD,并在步骤S104向节点装置N7发送数据帧这一情况,在图30中与从搜索节点406向搜索节点411进行搜索相对应。
然而,如图6所示那样,在步骤S104中由于节点装置N4和N7之间的链路障碍而使发送失败。总之,在搜索树400中,在搜索节点411搜索失败而产生回溯。此外,从搜索节点411向搜索节点406的搜索树400上的回溯,在实际的网络1上,是未接收到ACK帧而节点装置N4超时这一现象。
在图6中,在步骤S104的发送失败之后,节点装置N4接着选择节点装置N5作为LD并在步骤S105向节点装置N5发送数据帧。该步骤S105的发送,在图30中与从搜索节点406向搜索节点412进行搜索相对应。
而且,在网络1中节点装置N3和N4与节点装置N5邻接,所以搜索节点412具有2个搜索节点414和415作为子节点,搜索节点414和415 各自的标签是N3和N4。
在图6中节点装置N5最初选择节点装置N3作为LD并在步骤S106中向节点装置N3发送数据帧这一情况,在图30中与从搜索节点412向搜索节点414进行搜索相对应。
此外,在搜索树400中,搜索节点414具有与作为先辈节点的搜索节点403相同的标签。但是,因为在搜索节点403和414之间夹着2个搜索节点406和412,所以在此时间点,不修剪搜索节点414。
而且,因为在网络1中节点装置N2、N4和N5与节点装置N3邻接,所以搜索节点414具有3个搜索节点416、417及418作为子节点,搜索节点416、417及418各自的标签是N2、N4和N5。
可是,在步骤S106接收到数据帧的时间点,在节点装置N3的FID管理表105-N3中如图12那样已经存在项E3。这种情况意味着下面的(O1)和(O2)。
(O1)在搜索树400中,作为从搜索节点414观察的先辈节点,存在具有与搜索节点414自身相同的标签N3的搜索节点403。
(O2)从而,作为搜索节点414的子节点的搜索节点416、417及418,是修剪对象。
而且,如下那样实现修剪。
具有标签N3的搜索节点414的先辈节点中存在具有标签N4的搜索节点406这一情况,与在节点装置N3的FID管理表105-N3的项E3中,在步骤S106的时间点LD的值是N4相对应(参照图12)。而且,若在步骤S106接收了数据帧,则节点装置N3如图11所示那样,将与在步骤S103作为LD选择的节点装置N4对应的权重设定为最大值。
换言之,以步骤S106中的数据帧的接收为契机,节点装置N3将节点装置N4从潜在的LD的候补中除去了。而且,因为从潜在的LD的候补中除去是搜索树400中的修剪,所以修剪了具有标签N4的搜索节点417。
另外,在搜索节点414的先辈节点中存在具有标签N2的搜索节点402这一情况,与在节点装置N3的FID管理表105-N3的项E3中OLS的值是N2相对应(参照图12)。
而且,在步骤S106接收到数据帧的时间点,存在在OLS以外潜在 地能够作为LD选择的节点装置N5,所以节点装置N3不选择作为OLS的节点装置N2作为LD。总之,修剪具有标签N2的搜索节点416。
另外,以步骤S106的接收为契机,节点装置N3选择节点装置N5作为LD。在此,若关注于在搜索树400中作为搜索节点414的子节点的搜索节点418具有与作为搜索节点414的父节点的搜索节点412相同的标签N5这一情况,则搜索节点418是第1种修剪的对象。
实际上,步骤S107中的从节点装置N3向节点装置N5发送数据帧,如图30所示那样,能够作为搜索树400上的从搜索节点414向作为父节点的搜索节点412的回溯来表示。换言之,是搜索节点414的子节点,且具有与父节点的搜索节点412相同的标签N5的搜索节点418被修剪。
在接下来的步骤S108中,如图6所示那样,节点装置N5使数据帧向作为OLS的节点装置N4回溯。该步骤S108的动作,在图30中,作为在搜索树400中从具有标签N5的搜索节点412向具有标签N4的搜索节点406的回溯来表达。换言之,是搜索节点412的子节点,且具有与搜索节点412的父节点的搜索节点406相同的标签N4的搜索节点415被修剪。
而且,在接下来的步骤S109中也如图6所示那样,节点装置N4使数据帧向作为OLS的节点装置N3回溯。该步骤S109的动作,在图30中,也作为在搜索树400中从具有标签N4的搜索节点406向具有标签N3的搜索节点403的回溯来表达。换言之,是搜索节点406的子节点且具有与搜索节点406的父节点的搜索节点403相同的标签N3的搜索节点413被修剪。
在该阶段,在具有标签N3的搜索节点403的子节点之中未搜索的,是具有标签N2的搜索节点407和具有标签N5的搜索节点408。
但是,节点装置N3在步骤S107中向节点装置N5已经发送数据帧,以步骤S109中的数据帧的接收为契机,如图11所示那样,将与节点装置N5对应的权重设定为最大值。由此,将节点装置N5从LD的候补中除去,修剪具有标签N5的搜索节点408。
结果是,在步骤S110中,如图6所示那样,节点装置N3使数据帧向作为OLS的节点装置N2回溯。该步骤S110的动作,在图30中作为在搜索树400中从具有标签N3的搜索节点403向具有标签N2的搜索节点402的回溯来表达。换言之,是搜索节点403的子节点且具有与搜索节点403的父节点的搜索节点402相同的标签N2的搜索节点407被修剪。
接着,在步骤S111中,节点装置N2重新选择节点装置N6作为LD,并向节点装置N6发送数据帧。步骤S111的发送,在图30中与从具有标签N2的搜索节点402向具有标签N6的搜索节点404进行搜索相对应。
而且,在网络1中节点装置N7和N2与节点装置N6邻接,所以搜索节点404具有2个搜索节点409和410作为子节点,搜索节点409和410各自的标签是N7和N2。
在图6中节点装置N6不是作为OLS的节点装置N2,首先选择节点装置N7作为LD并在步骤S112中发送数据帧。总之,具有标签N2的搜索节点410被修剪。而且,通过步骤S112的发送,向具有作为GD的节点装置N7的节点ID/N7作为标签的搜索节点409进行搜索,搜索结束。此外,因为在步骤S112搜索结束,所以不搜索作为搜索节点402的子节点的搜索节点405,但是,搜索节点405,因为也是第1种修剪的对象,所以在图30中简便地以正方形表达。
此外,在搜索树400中,若按顺序用数组表示从作为根节点的搜索节点401到作为如以上那样通过搜索找到的叶节点的搜索节点409的、路径上的各搜索节点的标签全部,则成为<N1,N2,N6,N7>。而且,该数组是在图6的网络1中通过学习得到的路径<N1,N2,N6,N7>。
根据第1实施方式,转送数据帧的同时动态地搜索路径,但是,若将其搜索顺序在搜索树400中表示,则如图30那样是深度优先搜索顺序。对于不是进行宽度优先搜索而是进行深度优先搜索,根据数据帧不是被组播而经常是被单播也可以理解。
而且,根据以上的说明可知,如果适当地设定了FID管理表105的项的时效时间Gf,则在网络1内直到找到从GS到达GD的路径为止,通过深度优先搜索彻底搜索出潜在可能的路径。即,如果时效时间Gf不是过短,则只要从GS到达GD的路径存在,就一定能找到路径。此外,与图19有关而叙述的“最坏情况”是指,在搜索树400的以深度优先搜索顺序进行的遍历(traverse)中具有GD的节点装置的节点ID作为标签的搜索节点最后找到的情况。
接着,还从另外的观点对第1实施方式进行说明。
图31是表示基于问候帧的发送接收的邻接节点的识别和图6的路径选择的时序图。
在图1的网络1中,各节点装置N1~N7,独立地分别进行图16的问候帧发送处理。哪个节点装置先发送问候帧是任意的,但在图31的例中,首先在步骤S1201中节点装置N2执行图16的步骤S403,发送问候帧。于是,问候帧分别被与节点装置N2邻接的节点装置N1、N3及N6接收。而且,节点装置N1、N3及N6,在图14的步骤S203中分别调出并执行图15的问候帧接收处理,并将节点装置N2识别为邻接节点装置。
另外,在图31的例中,接着在步骤S1202中,节点装置N4执行图16的步骤S403,发送问候帧。于是,与节点装置N4邻接的节点装置N3、N5及N7分别接收到问候帧。而且,节点装置N3、N5及N7,分别在图14的步骤S203中调出并执行图15的问候帧接收处理,并将节点装置N4识别为邻接节点装置。
此外,在步骤S1203中,节点装置N3执行图16的步骤S403,并发送图7的问候帧312。于是,与节点装置N3邻接的节点装置N2、N4及N5分别接收到问候帧312。而且,节点装置N2、N4及N5,分别在图14的步骤S203中调出并执行图15的问候帧接收处理,并将节点装置N3识别为邻接节点装置。
另外,在步骤S1204中,节点装置N7执行图16的步骤S403,发送问候帧。此外,设为,在步骤S1204的时间点,节点装置N4和N7之间的链路还未产生障碍。因此,与节点装置N7邻接的节点装置N4和N6分别接收到问候帧。而且,节点装置N4和N6,分别在图14的步骤S203中调出并执行图15的问候帧接收处理,并将节点装置N7识别为邻接节点装置。
另外,在步骤S1205中,节点装置N1执行图16的步骤S403,发送问候帧。于是,与节点装置N1邻接的节点装置N2接收到问候帧。而且,节点装置N2,在图14的步骤S203中调出并执行图15的问候帧接收处理,并将节点装置N1识别为邻接节点装置。
此外,在步骤S1206中,节点装置N6执行图16的步骤S403,发送问候帧。于是,与节点装置N6邻接的节点装置N2和N7分别接收到问候帧。而且,节点装置N2和N7,分别在图14的步骤S203中调出并执行图15的问候帧接收处理,并将节点装置N6识别为邻接节点装置。
而且,在步骤S1207中,节点装置N5执行图16的步骤S403,发送问候帧。于是,与节点装置N5邻接的节点装置N3和N4分别接收到问候帧。 而且,节点装置N3和N4,分别在图14的步骤S203中调出并执行图15的问候帧接收处理,并将节点装置N5识别为邻接节点装置。
利用以上的步骤S1201~S1207,图1及图6所示的网络1内的节点装置N1~N7,分别识别邻接节点装置,更新邻接节点管理表103-N1~103-N7。另外,如图15所示那样,节点装置N1~N7,有时以问候帧的接收为契机,根据情况更新加权表104-N1~104-N7)。
之后,在步骤S1208中节点装置N4和N7之间的链路产生障碍。
另外,与障碍的产生没有关系,在步骤S101中节点装置N1将指定节点装置N7为GD的数据帧,指定节点装置N2为LD并发送。总之,在步骤S101中节点装置N1进行图27~28的处理。
于是,接收到数据帧的节点装置N2,通过图14的步骤S205调出并执行图20~23的处理。在图20的步骤S803中节点装置N2发送ACK帧这一情况,在图31中作为步骤S101a来表达。
另一方面,节点装置N1在图28的步骤S1121中等待接收ACK帧。而且,节点装置N1若接收了在步骤S101a中发送的ACK帧,则通过图14的步骤S206调出并执行图25的处理,其结果是,结束步骤S1121的待机,执行步骤S1122和S1123,结束图28的处理。
另外,如步骤S101a所示那样,在图20的步骤S803中发送了ACK帧的节点装置N2,继续进行步骤S804以后的处理,在图22的步骤S819中指定节点装置N3作为LD并发送数据帧。步骤S819中的发送与图31的步骤S102相当。此外,图7示例了在步骤S102中所发送的数据帧303。
于是,接收到数据帧的节点装置N3,通过图14的步骤S205调出并执行图20~23的处理。在图20的步骤S803中节点装置N3发送ACK帧这一情况,在图31中作为步骤S102a来表达。此外,图7示例了在步骤S102a中所发送的ACK帧322。
另一方面,节点装置N2在图22的步骤S825中等待接收ACK帧。而且,节点装置N2若接收了在步骤S102a中所发送的ACK帧,则通过图14的步骤S206调出并执行图25的处理,其结果是,结束步骤S825的待机,执行步骤S826和S827,结束图22的处理。
另外,如步骤S102a所示那样在图20的步骤S803中发送了ACK帧的节点装置N3继续进行步骤S804以后的处理,在图22的步骤S819中, 指定节点装置N4作为LD并发送数据帧。步骤S819中的发送与图31的步骤S103相当。此外,图7示例了在步骤S103中所发送的数据帧304。
于是,接收到数据帧的节点装置N4,通过图14的步骤S205调出并执行图20~23的处理。在图20的步骤S803中节点装置N4发送ACK帧这一情况,在图31中作为步骤S103a来表达。
另一方面,节点装置N3在图22的步骤S825中等待接收ACK帧。而且,节点装置N3若接收了在步骤S103a中所发送的ACK帧,则通过图14的步骤S206调出并执行图25的处理,其结果是,结束步骤S825的待机,执行步骤S826和S827,结束图22的处理。
另外,如步骤S103a所示那样,在图20的步骤S803中发送了ACK帧的节点装置N4继续进行步骤S804以后的处理,在图22的步骤S819中,指定节点装置N7作为LD并发送数据帧。步骤S819中的发送与图31的步骤S104相当。
但是,在步骤S1208中节点装置N4和N7之间的链路产生了障碍,数据帧没有到达节点装置N7。为此,在图31中步骤S104的箭头,从中途开始成为虚线。
节点装置N4在图22的步骤S825中等待接收ACK帧。但是,因为没有从节点装置N7接收到ACK帧,节点装置N4在定期执行的图26的处理的步骤S1003中识别为向节点装置N7发送数据帧失败了。
其结果是,节点装置N4,结束步骤S825的待机,按顺序执行步骤S826、S828、S829、S818的处理。而且,节点装置N4在接下来的步骤S819中,指定节点装置N5作为LD并发送数据帧。步骤S819中的发送与图31的步骤S105相当。
于是,接收到数据帧的节点装置N5,通过图14的步骤S205调出并执行图20~23的处理。在图20的步骤S803中节点装置N5发送ACK帧这一情况,在图31中作为步骤S105a来表达。
另一方面,节点装置N4在图22的步骤S825中等待接收ACK帧。而且,节点装置N4若接收了在步骤S105a中所发送的ACK帧,则通过图14的步骤S206调出并执行图25的处理,其结果是,结束步骤S825的待机,执行步骤S826和S827,结束图22的处理。
另外,如步骤S105a所示那样在图20的步骤S803中发送了ACK帧的节点装置N5继续进行步骤S804以后的处理,在图22的步骤S819中,指定节点装置N3作为LD并发送数据帧。步骤S819中的发送与图31的步骤S106相当。
于是,接收到数据帧的节点装置N3通过图14的步骤S205调出并执行图20~23的处理。在图20的步骤S803中节点装置N3发送ACK帧这一情况,在图31中作为步骤S106a来表达。
另一方面,节点装置N5在图22的步骤S825中等待接收ACK帧。而且,节点装置N5若接收了在步骤S106a中所发送的ACK帧,则通过图14的步骤S206调出并执行图25的处理,其结果是,结束步骤S825的待机,执行步骤S826和S827,结束图22的处理。
另外,如步骤S106a所示那样在图20的步骤S803中发送了ACK帧的节点装置N3继续进行步骤S804以后的处理,在图22的步骤S819中指定节点装置N5作为LD并发送数据帧。步骤S819中的发送与图31的步骤S107相当。
于是,接收到数据帧的节点装置N5通过图14的步骤S205调出并执行图20~23的处理。在图20的步骤S803中节点装置N5发送ACK帧这一情况,在图31中作为步骤S107a来表达。
另一方面,节点装置N3在图22的步骤S825中等待接收ACK帧。而且,节点装置N3若接收了在步骤S107a中所发送的ACK帧,则通过图14的步骤S206调出并执行图25的处理,其结果是,结束步骤S825的待机,执行步骤S826和S827,结束图22的处理。
另外,如步骤S107a所示那样在图20的步骤S803中发送了ACK帧的节点装置N5继续进行步骤S804以后的处理。具体来说,处理从图22的步骤S818向图23的步骤S830推进,节点装置N5在步骤S830中,指定作为OLS的节点装置N4为LD并发送数据帧。步骤S830中的发送与图31的步骤S108相当。
于是,接收到数据帧的节点装置N4通过图14的步骤S205调出并执行图20~23的处理。在图20的步骤S803中节点装置N4发送ACK帧这一情况,在图31中作为步骤S108a来表达。
另一方面,节点装置N5在图23的步骤S836中等待接收ACK帧。 而且,节点装置N5若接收了在步骤S108a中所发送的ACK帧,则通过图14的步骤S206调出并执行图25的处理,其结果是,结束步骤S836的待机,执行步骤S837和S839,结束图23的处理。
另外,如步骤S108a所示那样在图20的步骤S803中发送了ACK帧的节点装置N4继续进行步骤S804以后的处理。具体来说,处理从图22的步骤S818向图23的步骤S830推进,节点装置N4在步骤S830中,指定作为OLS的节点装置N3为LD并发送数据帧。步骤S830中的发送与图31的步骤S109相当。
于是,接收到数据帧的节点装置N3通过图14的步骤S205调出并执行图20~23的处理。在图20的步骤S803中节点装置N3发送ACK帧这一情况,在图31中作为步骤S109a来表达。
另一方面,节点装置N4在图23的步骤S836中等待接收ACK帧。而且,节点装置N4若接收了在步骤S109a中所发送的ACK帧,则通过图14的步骤S206调出并执行图25的处理,其结果是,结束步骤S836的待机,执行步骤S837和S839,结束图23的处理。
另外,如步骤S109a所示那样在图20的步骤S803中发送了ACK帧的节点装置N3继续进行步骤S804以后的处理。具体来说,处理从图22的步骤S818向图23的步骤S830推进,节点装置N3在步骤S830中,指定作为OLS的节点装置N2为LD并发送数据帧。步骤S830中的发送与图31的步骤S110相当。
于是,接收到数据帧的节点装置N2通过图14的步骤S205调出并执行图20~23的处理。在图20的步骤S803中节点装置N2发送ACK帧这一情况,在图31中作为步骤S110a来表达。
另一方面,节点装置N3在图23的步骤S836中等待接收ACK帧。而且,若节点装置N3接收了在步骤S110a中所发送的ACK帧,则通过图14的步骤S206调出并执行图25的处理,其结果是,结束步骤S836的待机,执行步骤S837和S839,结束图23的处理。
另外,如步骤S110a所示那样在图20的步骤S803中发送了ACK帧的节点装置N2继续进行步骤S804以后的处理,在图22的步骤S819中,指定节点装置N6作为LD并发送数据帧。步骤S819中的发送与图31的步骤S111相当。
于是,接收到数据帧的节点装置N6通过图14的步骤S205调出并执行图20~23的处理。在图20的步骤S803中节点装置N6发送ACK帧这一情况,在图31中作为步骤S111a来表达。
另一方面,节点装置N2在图22的步骤S825中等待接收ACK帧。而且,节点装置N2若接收了在步骤S111a中所发送的ACK帧,则通过图14的步骤S206调出并执行图25的处理,其结果是,结束步骤S825的待机,执行步骤S826和S827,结束图22的处理。
另外,如步骤S111a所示那样在图20的步骤S803中发送了ACK帧的节点装置N6继续进行步骤S804以后的处理,在图22的步骤S819中,指定节点装置N7作为LD并发送数据帧。步骤S819中的发送与图31的步骤S112相当。
于是,接收到数据帧的节点装置N7通过图14的步骤S205调出并执行图20~23的处理。在图20的步骤S803中节点装置N7发送ACK帧这一情况,在图31中作为步骤S112a来表达。
利用以上说明的一连串的处理,网络1整体,譬如即使在步骤S1208中要产生障碍,作为节点装置N1~N7的自主分散协调的结果,也动态地选择并学习了路径<N1,N2,N6,N7>。即,利用以上的一连串的处理在节点装置N1~N6中更新了加权表104-N1~104-N6。
从而,在步骤S112a之后,作为学习结果,指定节点装置N7作为GD的数据帧,不是如图6那样在网络1内试行错误地回溯的同时被转送,而是从开始就有效地被转送。列举几个具体例,如下述那样。
(P1)若节点装置N1成为GS并向邻接的节点装置N2发送了指定节点装置N7作为GD的数据帧,则节点装置N2,基于所学习的加权表104-N2,从最初开始就选择节点装置N6作为LD。而且,从节点装置N6向作为GD的节点装置N7发送数据帧。
(P2)同样地,在节点装置N2成为GS并发送指定节点装置N7作为GD的数据帧时,节点装置N2,也基于所学习的加权表104-N2,从最初开始选择节点装置N6作为LD。而且,从节点装置N6向作为GD的节点装置N7发送数据帧。
(P3)在节点装置N5成为GS并发送指定节点装置N7作为GD的数据帧时,节点装置N5,基于所学习的加权表104-N5,不是选择产生了回溯的 节点装置N3,而是最初选择节点装置N4作为LD。以下同样地,节点装置N4选择节点装置N3作为LD,节点装置N3选择节点装置N2作为LD,节点装置N2选择节点装置N6作为LD,节点装置N6选择节点装置N7作为LD。
(P4)在节点装置N3成为GS并发送指定节点装置N7作为GD的数据帧时,节点装置N3,基于所学习的加权表104-N3,选择节点装置N2作为LD。从而,数据帧从最初开始就沿着路径<N3,N2,N6,N7>有效地被转送。
如以上那样根据第1实施方式,若如图6那样通过回溯在网络1内试行错误地并动态地选择了路径,则在回溯的过程中经由了的各节点装置中,以加权表104的权重这样的形式,学习了适当的路径。因此,在今后发送同样指定了节点装置N7作为GD的数据帧的情况下,如上述(P1)~(P4)的例那样,根据学习结果,使路径选择有效化。
接着,对应用于有线网络的第2实施方式进行说明。在第1实施方式中,图3的接收部101和发送部102,利用图4的无线模块206来实现,以图1的网络1是无线网络的情况为例进行了说明。但是,在第2实施方式中,例如图1和图2的网络1和2,也可以是由有线链路所连接的有线自组织网络。以下,对具体例,参照图32进行说明。
图32是表示应用第2实施方式的有线网络的例的图。图32的网络4包含多个节点装置100a~100i,是有线自组织网络的一例。首先,说明节点装置100a的构成的概略情况。
此外,节点装置100a~100i的构成是同样的。对相互同样的构成部分,如“211a-1”、“211a-2”、“211b-1”等那样,除了注脚以外,分配相同的参照符号,有时省略详细的说明。
节点装置100a~100i,取代利用无线模块206实现的图3的接收部101及发送部102,具有利用用于有线通信的物理端口(以下只称作“端口”)和PHY芯片所实现的未图示的接收部及发送部。在图32的例中,节点装置100a具备4个端口211a-1~211a-4,但端口的数量根据实施方式是任意的。
此外,端口211a-1~211a-4是用于进行基于第2实施方式的帧的通信的端口。总之,与图7所示的第1实施方式同样的数据帧通过端口211a-1~211a-4而被发送接收。换言之,端口211a-1~211a-4是用于节点 装置100a与邻接节点装置有线连接的端口。
以下,为了方便说明,假定与1个端口对应而有1个PHY芯片,但是,物理上1个PHY芯片也能够进行4个端口的输入输出处理。
另外,在第2实施方式中不使用ACK帧和问候帧。因此,节点装置100a不包含图3的ACK处理部107和问候帧生成部112。另外,详细情况将后述,但是,在第2实施方式中,帧分支处理部106、链路管理部108及数据帧处理部110的动作的一部分与第1实施方式不同。而且,不用图9所示的第1实施方式的邻接节点管理表103,而使用图33所示的邻接节点管理表103a。
可是,在第1实施方式中,示例了为了与外部网络连接节点装置100具备图4的PHY芯片202的情况。第2实施方式的节点装置100a也同样地,为了与外部网络连接,具备通用LAN端口212a。
通用LAN端口212a,例如是依照了以太网标准的有线连接用的物理端口,与未图示的PHY芯片连接。在图32中,以斜线表示通用LAN端口212a~212i,以与端口211a-1~211i-4区别。此外,本实施方式中的通用LAN端口212a~212i是有线LAN端口,但是,根据实施方式,也能够代替使用无线LAN接口。
而且,具有上述那样的构成的各节点装置100a~100i,在网络4中利用电缆(例如,铜电缆等金属线电缆或者光纤电缆)物理地被连接为网格状(换言之,格子状)。
当然,网络中的物理上的连接拓扑,根据实施方式是任意的,也可以不必是网格状。
图32所示的网格状的物理上的拓扑,具体来说,由下面的(Q1)~(Q12)那样的电缆布线来实现。
(Q1)节点装置100a和100d,通过端口211a-1和211d-1之间的链路515连接起来。
(Q2)节点装置100a和100b,通过端口211a-4和211b-1之间的链路516连接起来。
(Q3)节点装置100b和100e,通过端口211b-2和211e-2之间的链路517连接起来。
(Q4)节点装置100b和100c,通过端口211b-4和211c-1之间的链路518连接起来。
(Q5)节点装置100c和100f,通过端口211c-3和211f-3之间的链路519连接起来。
(Q6)节点装置100d和100g,通过端口211d-2和211g-2之间的链路521连接起来。
(Q7)节点装置100d和100e,通过端口211d-4和211e-1之间的链路522连接起来。
(Q8)节点装置100e和100h,通过端口211e-3和211h-3之间的链路523连接起来。
(Q9)节点装置100e和100f,通过端口211e-4和211f-1之间的链路524连接起来。
(Q10)节点装置100f和100i,通过端口211f-4和211i-4之间的链路525连接起来。
(Q11)节点装置100g和100h,通过端口211g-4和211h-1之间的链路526连接起来。
(Q12)节点装置100h和100i,通过端口211h-4和211i-1之间的链路527连接起来。
当然,根据实施方式,通过在图32所示例的以外的组合的端口间以电缆进行连接,也能够实现与图32等价的网状拓扑。
可是,在图32的例中,网络4不是孤立的网络,也与LAN和WAN(Wide AreaNetwork,广域网)等的外部网络连接。
例如,在图32的例中,网络4如以下那样与外部网络连接。即,通过链路511与PC(Personal Computer)501连接的L2SW(Layer 2Switch,二层交换机)502分别通过链路512和513与节点装置100a和100b各自的通用LAN端口212a和212b相连接。另外,PC503、505、506分别通过链路514、528、529与节点装置100c、100g、100h各自的通用LAN端口212c、212g、212h相连接。
此外,L2SW502也可以还与未图示的路由器和未图示的其他PC相连接。另外,PC503、505及506也可以与未图示的其他外部网络相连接。
另外,为了方便说明,图32示例了包含9个节点装置100a~100i 的网络4,但根据实施方式,例如有线自组织网络也可以包含数千个~数十万个这样的许多的节点装置。
例如,本实施方式的有线自组织网络也可以应用于传感器网络,该传感器网络是用于从到处所配置的许多传感器收集各种信息的网络。在这种情况下,对应于许多传感器,有线自组织网络也可以包含数千个~数十万个程度的许多节点装置。在传感器网络中,例如,利用图像传感器、温度传感器、湿度传感器、压力传感器、加速度传感器等任意种类的传感器。
图32也表示了基于本实施方式的有线自组织网络的对传感器网络的1个应用例。即,在图32中具备LAN接口的传感器504和507分别通过链路520和530与节点装置100e和100i各自的通用LAN端口212e和212i相连接。传感器504和507,通过LAN接口输出表示传感到的结果的数据作为以太网帧。这些传感器504和507的种类是任意的。
若利用了基于如图32所示那样的本实施方式的有线自组织网络,则即使对于若是无线通信则通信困难的环境如果是有线通信则能够通信的情况较多,所以即使是严酷的环境,也能够构筑传感器网络。
例如,传感器和通过通用LAN端口与该传感器连接的节点装置也可以埋入田地和山崖等土中,水田、河川和海等水中以及建物的壁和柱子等构造物中等。在那样的情况下,节点装置也能够利用有线连接与其他节点装置可靠地通信。因此,若利用了基于本实施方式的有线自组织网络,则即使是土中、水中、构造物中等无线通信困难的环境,也能够构筑传感器网络。
继而,对如图32那样的网络4中的各节点装置100a~100i的构成和动作,按顺序参照与第1实施方式有关的图7~29,说明与第1实施方式的不同点。
首先参照图7,则在第2实施方式中,不利用问候帧和ACK帧。其理由是因为有线链路与无线链路相比,通信质量格外好。总之,在将物理端口间1对1进行连接的有线通信中,只要检测出传送介质上的载波信号,通信事实上就100%成功。
例如,节点装置100a,不需要以问候帧的接收为契机识别邻接节点装置,而只是监视端口211a-1~211a-4,只要调查是否检测出载波信号即可。如果检测出载波信号,则存在邻接节点装置。
另外,例如,只要不是由于电缆的切断等而使端口211a-4成为断开状态,若节点装置100a通过链路516从端口211a-4向邻接的节点装置100b发送了数据帧,则发送的成功被保证。因此,也不需要ACK帧。
接着,参照图8,在第2实施方式中不使用ACK帧,所以在缓冲部109中不需要超时时刻字段。
另外,在第2实施方式中,不用图9那样形式的邻接节点管理表103,而使用图33那样的邻接节点管理表103a。图33是表示第2实施方式中的邻接节点管理表103a的例的图。
此外,以下,设为,在节点装置100a中,分别识别4个端口211a-1~211a-4的端口ID被预先分配给各端口211a-1~211a-4。
将图33与图9进行比较,则在图33中只有增加了端口ID字段的点不同。例如,在图1的网络1是有线网络的情况下,节点装置N2的邻接节点管理表103a-N2与图9同样地具有分别对应于与节点装置N2邻接的3个节点装置N1、N3及N6的3个项。而且,在各项中,端口ID字段的值Q2,i(i=1,3,6),表示“节点装置Ni与在节点装置N2中作为端口ID而被分配了Q2,i的端口连接”。
例如,节点装置N2,从在被分配了某个端口ID/Q2,i的端口中接收到的数据帧中取出LS的值Ni,将取出的值Ni和端口ID/Q2,i建立对应关系,生成如图33那样的邻接节点管理表103a。
接着,参照图10和图11,则在第2实施方式中加权表104的形式也与第1实施方式相同。但是,在第2实施方式中权重的值是“0”和“1”的2值。
在第1实施方式中,为了也考虑无线链路的质量而选择更适当的邻接节点装置作为LD,根据是否接收到ACK帧,利用式(6)或者(7)一点一点地调整权重。但是,端口间1对1连接的有线链路的状态是以下的(R1)和(R2)的二者选一。
(R1)因为检测出了载波信号,所以事实上保证了100%通信成功。
(R2)因为是没有检测出载波信号的断开状态,所以明显可知通信失败。
为此,在第2实施方式中,权重的值可以是2值。权重的值的操作的详细情况将后述。
继而参照图12和图13,在第2实施方式中FID管理表105的形式也与第1实施方式相同。
接着参照图14,在第2实施方式中没有基于接收到的帧的类型的步骤S202中的分支,从而,步骤S203和S206也不存在。
但是,在第2实施方式中,取代通过步骤S203调出的图15的处理,链路管理部108定期地监视各端口的状态。而且,链路管理部108调查在图33的邻接节点管理表103a中是否存在具有检测出载波信号的端口的端口ID的项。
如果项存在,则链路管理部108将找到的项的最终更新时刻字段的值更新为当前时刻。如果没有找到项,则链路管理部108生成新项,并将检测出载波信号的端口的端口ID和当前时刻在新项中登记。在该阶段中节点ID字段是空。
另外,在第2实施方式中,当在图14的步骤S201中接收到了数据帧时,帧分支处理部106除了步骤S204的处理以外,还进行下面的处理。即,帧分支处理部106将数据帧的LS的值和接收到数据帧的端口的端口ID向链路管理部108通知。
于是,链路管理部108检索图33的邻接节点管理表103a,进行以下的(S1)~(S4)的操作。
(S1)存在节点ID字段的值与数据帧的LS的值一致并且端口ID字段的值与接收到数据帧的端口的端口ID一致的项的情况。
链路管理部108,作为该项的最终更新时刻设定当前时刻。
(S2)存在节点ID字段是空并且端口ID字段的值与接收到数据帧的端口的端口ID一致的项的情况。
链路管理部108,在该项中作为节点ID设定数据帧的LS的值,作为最终更新时刻设定当前时刻。另外,链路管理部108,不用图15中的“接收到的问候帧的LS的值”,而是使用接收到的数据帧的LS的值,来进行图15的步骤S305~S308的处理。
(S3)没有端口ID字段的值与接收到数据帧的端口的端口ID一致的项的情况。
链路管理部108,在邻接节点管理表103a中生成新项,在新项中设定数据帧的LS的值、接收到数据帧的端口的端口ID及当前时刻。另外,链 路管理部108,不用图15中的“接收到的问候帧的LS的值”,而是使用接收到的数据帧的LS的值,来进行图15的步骤S305~S308的处理。
(S4)存在节点ID字段的值与数据帧的LS的值一致,但是端口ID字段的值与接收到数据帧的端口的端口ID不一致的项的情况。
链路管理部108删除该项。总之,链路管理部108将电缆的连接替换反映于邻接节点管理表103a。
继而,若参照图16说明与第1实施方式的不同,则在第2实施方式中不使用问候帧,所以也不进行图16的处理。
另外,图17~19的各种时效处理,在第2实施方式中也与第1实施方式相同。
在第2实施方式中,图20~23的数据帧接收处理如下那样被变形。
在图20中,省略步骤S803。另外,在图21的步骤S816中,作为初始加权值,使用表示能够发送这一情况的“0”。
另外,因为在第2实施方式中不存在ACK帧,当然也不进行以超时为契机的LD的再选择。而且,在第2实施方式中权重是2值。从而,图22的步骤S818如下那样被变形。即,数据帧处理部110判断与所取得的LD的值对应的权重是否为1,如果该权重为1,则处理转移到图23的步骤S830,如果该权重为0,则处理转移到步骤S819。
而且,在步骤S819中,数据帧处理部110,与第1实施方式同样地生成新的数据帧并向发送部102输出。于是,第2实施方式的发送部102,参照邻接节点管理表103a,确定与作为LD被指定的邻接节点装置对应的端口ID。而且,发送部102,将从数据帧处理部110接受的新的数据帧向分配了确定的端口ID的端口输出。
之后,在第2实施方式中省略步骤S820。步骤S821~S824与第1实施方式相同。
另外,因为在第2实施方式中没有ACK帧,所以省略了步骤S825和S826。而且,数据帧处理部110在步骤S819中向发送部102要求完了发送的时间点识别为“发送成功”,将接收到的数据帧从缓冲部109中删除。
由此,在紧挨着步骤S822或者S824之后,数据帧处理部110执行步骤S827。但是,在第2实施方式中,在步骤S827中,数据帧处理部110 不进行权重的更新。因为在第2实施方式中的权重是0和1的2值,权重可以保持0不变。
另外,因为在步骤S819中数据帧处理部110已经识别为“发送成功”,所以步骤S828和S829在第2实施方式中不存在。
而且,在图23中,步骤S830中的发送与步骤S819同样被变形。另外,步骤S836及S837与步骤S825及S826同样被省略。步骤S838与步骤S828同样被省略。而且,在步骤S839中与步骤S827同样地省略权重的更新,只更新最终更新时刻。
而且,在第2实施方式中不存在ACK帧,所以图25和26的处理也不存在。
另外,图27~28的数据帧发送处理在第2实施方式中如下那样被变形。
图27的步骤S1101~S1110与第1实施方式同样。但是,图28的步骤S1111与步骤S818同样被变形。即,数据帧处理部110在步骤S1111中判断与所取得的LD的值对应的权重是否为1,如果该权重为1,则处理转移到步骤S1112,如果该权重为0,则处理转移到步骤S1114。
另外,步骤S1114中的发送与步骤S819同样被变形,接收到的数据帧在新的数据帧的发送后马上被从缓冲部109删除。因此省略步骤S1115。
步骤S1116~S1120与第1实施方式相同,但是步骤S1121、S1122、S1124及S1125在第2实施方式中不存在。另外,步骤S1123与步骤S827同样被变形。即,数据帧处理部110在步骤S1123中,不更新权重,而只更新最终更新时刻。
另外,图29的处理与图23的处理同样在第2实施方式中被变形。
接着,对第3实施方式进行说明。第3实施方式是使第1及第2实施方式组合后的实施方式,是应用于有线连接和无线连接混合存在的网络的实施方式。
具体来说,在第3实施方式中,下述的3种节点装置在网络内混合存在。
(T1)如第1实施方式的节点装置100那样通过无线链路与邻接节点装置进行通信的无线类型的节点装置。
(T2)如第2实施方式的节点装置100a~100h那样通过有线链路与 邻接节点装置进行通信的有线类型的节点装置。
(T3)如第1实施方式的节点装置100那样具有利用无线模块206所实现的接收部101及发送部102并且还如第2实施方式的节点装置100a~100h那样具备有线连接用的端口和PHY芯片的混合类型的节点装置。总之,是既能够通过无线链路与邻接节点装置进行通信并且能够通过有线链路与邻接节点装置进行通信的混合类型的节点装置。
此外,在混合类型的节点装置中,例如,也可以使用如图33那样的邻接节点管理表。在这种情况下,在端口ID字段,关于借助于有线链路的邻接节点装置,保存端口ID的值,关于借助于无线链路的邻接节点装置,也可以保存不作为端口ID利用的特定的值。混合类型的节点装置,关于借助于无线链路的帧的发送接收,与第1实施方式的节点装置100同样地进行动作,关于借助于有线链路的数据帧的发送接收,与第2实施方式的节点装置100a~100h同样地进行动作。
接着,对第4实施方式进行说明。第4实施方式,是以不利用ACK帧的方式而对与无线网络有关的第1实施方式进行了变形的实施方式。
在此,首先,对在无线网络中不利用ACK帧的含义进行说明。
一般来说,通过利用ACK帧,得到了数据帧成功地到达邻接节点装置这样的到达保证。但是,通过针对数据帧返回ACK帧,产生等待的增大,实际上的吞吐量下降的影响,所以也有时作为网络系统整体性能降低。
另外,如图22所示那样,有由于没有接收到ACK帧,节点装置100一个接一个地选择另外的邻接节点装置作为LD的情况。于是,路径一个接一个地切换,作为结果,在从相同的GS向相同的GD所发送的多个数据帧间,有可能不能保证顺序。总之,从GS发送了多个数据帧的顺序和这些多个数据帧到达GD的顺序也许不同。
另一方面,若在无线网络中去掉ACK帧,则不能得到数据帧到达邻接节点装置这样的保证,相反地,保证了向GD的到达顺序。
总之,到达保证和顺序保证存在折衷的关系。因此,也可以考虑网络的用途或者数据帧的净荷中包含什么协议的PDU之类的因素,来决定是否在无线网络中利用ACK帧。
例如,会存在如下的情况:数据帧的净荷是以太网帧,以太网帧的 净荷是IP数据报,IP数据报的净荷是TCP(Transmission Control Protocol,传输控制协议)段的情况。在这种情况下,以TCP段丢掉为前提而设计了TCP,所以也可以没有基于ACK帧的到达保证。总之,即使有没有到达的数据帧,也通过作为上位层的协议的TCP进行再发送控制,所以不会产生问题。相反地,在TCP中需要顺序保证。
因此,不利用ACK帧的第4实施方式,例如优选如上述那样TCP段包含于图7的数据帧301的净荷之中的情况等。
具体来说,第4实施方式,在不存在ACK帧的点上与第2实施方式相同。但是,在第4实施方式中,与第1实施方式同样地利用问候帧来管理邻接节点装置。
因此,在第4实施方式中,在图14中省略了步骤S206,但图15~19的处理与第1实施方式相同。另外,在图20中与第2实施方式同样省略了步骤S803,接下来的图21的处理与第1实施方式相同。
在图22中,步骤S818与第2实施方式同样被变形,步骤S819与第1实施方式相同。但是,在第4实施方式中,数据帧处理部110,在步骤S819向发送部102要求完了发送的时间点,识别为“发送成功”,将接收到的数据帧从缓冲部109删除。因此,步骤S820与第2实施方式同样被省略。
步骤S821~S824与第1实施方式相同。而且,步骤S825和S826与第2实施方式同样被省略。因此,在紧挨着步骤S822或者S824之后,数据帧处理部110执行步骤S827,不存在步骤S828和S829。从而,不会通过式(7)更新权重。
此外,步骤S827也可以与第1实施方式相同,还可以是与第2实施方式同样省略了权重的更新的步骤。
而且,在图23中,步骤S830中的发送与步骤S819同样被变形。另外,步骤S836及S837与步骤S825及S826同样被省略,步骤S838与步骤S828同样被省略。步骤S839,也可以与第1实施方式相同,还可以是与第2实施方式同样省略了权重的更新的步骤。
在第4实施方式中,因为不存在ACK帧,所以也不存在图25和26的处理。
另外,图27~28的数据帧发送处理在第4实施方式中如下那样被变形。
图27的步骤S1101~S1110与第1实施方式相同,但图28的步骤S1111与步骤S818同样被变形。即,数据帧处理部110在步骤S1111中判断与所取得的LD的值对应的权重是否是1,如果该权重为1,则处理转移到步骤S1112,如果该权重为0,则处理转移到步骤S1114。
另外,步骤S1114中的发送与步骤S819同样被变形,接收到的数据帧,在新的数据帧的发送后马上被从缓冲部109删除。因此省略步骤S1115。
步骤S1116~S1120与第1实施方式相同,但步骤S1121、S1122、S1124及S1125在第4实施方式中不存在。从而,不会通过式(7)来更新权重。
另外,步骤S1123也可以与第1实施方式相同,还可以是与第2实施方式同样地省略了权重的更新的步骤。
另外,图29的处理与图23的处理同样在第4实施方式中被变形。
接着,对第5实施方式进行说明。第5实施方式是折衷了第1实施方式和第4实施方式的实施方式,是调整ACK帧的频度的实施方式。
即,在第5实施方式中,利用请求ACK帧的第1种数据帧和不请求ACK帧的第2种数据帧。利用图7所示的类型字段的值来区别第1种和第2种数据帧。
例如,在第1种数据帧的类型字段,与图7的数据帧303同样地指定规定的常数D,在第2种数据帧的类型字段指定另外的常数C。具体来说,当类型字段是2位时,例如,也可以是D=(00)2并且C=(01)2。
可是,利用ACK帧的目的之一,如关于第4实施方式而叙述的那样是到达保证,但另外的目的是为了把握链路的质量的良好度。
一般来说,如果节点装置Ni和Nj之间的无线链路Li,j的通信质量非常不好,则借助于从节点装置Ni向节点装置Nj(或者从节点装置Nj向节点装置Ni)的无线链路Li,j的通信几乎不可能。即使是如问候帧那样极短的帧,也难以借助于通信质量非常坏的无线链路Li,j而从节点装置Ni到达节点装置Nj(或者从节点装置Nj到达节点装置Ni)。
另一方面,如果节点装置Ni和Nj之间的无线链路Li,j的通信质量非常好,则即使是如数据帧那样长的帧,也会通过无线链路Li,j从节点装置Ni成功地到达节点装置Nj(或者从节点装置Nj到达节点装置Ni)。
但是,如果节点装置Ni和Nj之间的无线链路Li,j的通信质量是中等程度,则也会有如下的情况:“关于极短的帧,借助于无线链路Li,j的发送成功,但是,关于长的帧,借助于无线链路Li,j的发送失败”的情况。当在图22的步骤S826等中判断为发送失败的情况之中,不仅包含链路暂时性地产生了障碍的情况,还包含如上述那样,无线链路的通信质量在问候帧的发送时是充分的,但在数据帧的发送时是不充分的情况。
在此,若关注于图22的步骤S827和S828,则根据是否接收到ACK帧,权重逐渐减小或者逐渐增大。因此,作为所学习的结果的权重值反映了接收ACK帧的比例,即,反映了通信质量的良好度。总之,越是与借助于通信质量良好的链路而邻接的节点装置对应的权重,其值越小,从而更优先地作为LD被选择。
那么,这样,除了到达保证以外,为了把握链路质量的良好度,也使用ACK帧,但如与第4实施方式有关而叙述的那样,也有时会导致网络系统整体的性能降低。因此,在第5实施方式中,如上述那样使用第1种和第2种数据帧。
例如,也可以是,节点装置100,基本地为了性能提高而利用第2种数据帧,有时,为了把握链路质量的良好度,而临时检查性地利用第1种数据帧。或者,也可以是,作为GS发送数据帧的节点装置100,根据上位层的协议等,判断第1种和第2种中哪一种适当,并在数据帧的类型字段对值进行设定。
在第5实施方式中,例如,能够有如以下的(U1)~(U4)那样的各种变形。
(U1)在作为GS发送数据帧的节点装置100中,数据帧处理部110存储最后发送数据帧的时刻Tlast。而且,在发送数据帧时,只是在当前时刻Tnow和最终发送时刻Tlast的差在规定的间隔Iack以上的情况下,数据帧处理部110,对数据帧的类型字段设定表示第1种的规定值D。在其他情况下,数据帧处理部110,对数据帧的类型字段设定表示第2种的规定值E。例如,间隔Iack也可以是10秒等比较长的时间。
(U2)在作为GS发送数据帧的节点装置100中,数据帧处理部110,也可以按每个GD或者按每个选择的LD存储时刻Tlast,并与上述(U1)同样地进行动作。
(U3)在作为GS发送数据帧的节点装置100中,数据帧处理部110,对发送过的数据帧的数量C进行计数。总之,在发送数据帧时,数据帧处理部110对C进行增量。只是在计数得到的值C与规定值Cack相等的情况下,数据帧处理部110,对数据帧的类型字段设定表示第1种的规定值D,并将C复位为零。在其他情况下,数据帧处理部110对数据帧的类型字段设定表示第2种的规定值E。例如,规定值Cack也可以是数千之类的比较大的数。
(U4)在作为GS发送数据帧的节点装置100中,数据帧处理部110,也可以按每个GD或者按每个选择的LD,计数发送过的数据帧的数量C,并与上述(U3)同样地进行动作。
此外,在转送从邻接节点装置接收到的数据帧的节点装置100中,数据帧处理部110,在要发送的数据帧的类型字段中照原样复制接收到的数据帧中指定的类型的值。
或者,也可以是,数据帧处理部110根据与所选择的LD建立了对应关系的权重的值,改写类型字段的值。例如,在与所选择的LD建立了对应关系的权重在规定的阈值以上的情况下,推测为链路质量变坏。因此,数据帧处理部110,也可以不论接收到的数据帧中的类型字段的值如何,都在要发送的数据帧的类型字段设定表示第2种的规定值E。
或者,也可以是,用3位以上来表示类型字段,数据帧有如以下的(V1)~(V4)那样的多个子类型。
(V1)请求了ACK帧,不允许改写中继时的类型字段的值的数据帧。
(V2)请求了ACK帧,允许改写中继时的类型字段的值的数据帧。
(V3)不请求ACK帧,不允许改写中继时的类型字段的值的数据帧。
(V4)不请求ACK帧,允许改写中继时的类型字段的值的数据帧。
以上,对第1~第5实施方式详细地进行了说明,为了帮助理解这些实施方式的优点,接着对第1及第2比较例进行说明。此外,以下,为了方便说明,将“接收到的数据帧的GS和FID的值是否与过去发送过的数据帧的GS和FID的值相等”的判定(即图21的步骤S807)称作“循环判定”。
图34和图35是对有循环判定但没有回溯动作的第1比较例进行说明的图。图34和图35与图6同样地表示了图1的网络1中的数据帧的转 送的情况。
第1比较例的节点装置,具有与第1实施方式同样的FID管理表,进行循环判定。总之,在与图21的步骤S809同样第1比较例的节点装置也接收了过去发送过的数据帧的情况下,将与发送时选择的LD对应的权重设定为最大值。
但是,第1比较例的节点装置不进行回溯动作。总之,在第1比较例的节点装置中,只是为了将担任OLS的节点装置从LD的候补中除去而参照FID管理表的OLS字段(参照图21的步骤S817和图22的步骤S829)。而且,在第1比较例中,取代图23的步骤S830~S839的处理,而只与步骤S838同样地,进行废弃接收到的数据帧的处理。
因此,在图1的节点装置N1~N7都是第1比较例的节点装置的情况下,若节点装置N1指定节点装置N7作为GD,节点装置N4和N7之间的链路产生了障碍,则如图34或者图35那样转送数据帧。
因为在图34中直到步骤S106为止与图6的第1实施方式相同,所以省略其说明。
与第1实施方式同样地,在步骤S106中接收到数据帧的节点装置N3,将与在步骤S103中作为LD选择过的节点装置N4对应的权重设定为1。而且,重新选择节点装置N5作为LD,并在步骤S107中发送数据帧。
于是,在步骤S107中接收到数据帧的节点装置N5,基于FID管理表,识别为接收到与在步骤S106中发送过的相同的数据帧。而且,节点装置N5将在步骤S106中作为LD选择过的节点装置N3的权重设定为最大值。
在此,只有作为OLS的节点装置N4和权重被设定为最大值的节点装置N3与节点装置N5邻接。因此,节点装置N5判断为没有能够作为LD选择的邻接节点装置,废弃在步骤S107中接收到的数据帧。这样数据帧不会到达作为GD的节点装置N7,而是从网络1中消失。
而且,对节点装置N3来说,是“在步骤S107的发送之后,从哪个邻接节点装置都未返回来相同的数据帧”的状况。因此,节点装置N3,进行了误认为“在发送指定节点装置N7作为GD的数据帧时,选择节点装置N5作为LD是适当的”的学习。同样地,节点装置N2也进行了误认为“在发送指定节点装置N7作为GD的数据帧时,选择节点装置N3作为LD是 适当的”的学习。
总之,在第1实施方式的图6的例中,通过步骤S109和S110的回溯动作,纠正了错误的学习结果,但在第1比较例中错误的学习结果未被纠正。
于是,若在图34的数据帧转送之后,节点装置N1再次指定节点装置N7作为GD,而节点装置N4和N7之间的链路未从障碍中恢复,则接下来如图35那样转送数据帧。
因为图35的步骤S101和S102与图6相同,所以省略其说明。在步骤S102中接收到数据帧的节点装置N3,基于图34中的学习结果,在步骤S103b中选择节点装置N5作为LD,并转送数据帧。
于是,通过图34的步骤S107的接收,而学习为“在作为GD而指定了节点装置N7的情况下,不能选择节点装置N3作为LD”的节点装置N5,选择另外的邻接节点装置N4作为LD。而且,节点装置N5指定节点装置N4作为LD,并在步骤S104b中发送数据帧。
设为,在该时间点的节点装置N4中,在与作为GD的节点装置N7对应的加权表中,与在图34的步骤S104中判断为发送失败而增加了值的节点装置N7的权重相比,节点装置N3的权重的值小。于是,节点装置N4选择节点装置N3作为LD,并在步骤S105b中发送数据帧。
于是,节点装置N3识别为接收了与在步骤S103b中发送过的相同的数据帧,将节点装置N5的权重设定为最大值。而且,节点装置N3重新选择还未作为LD进行选择的邻接节点装置N4作为LD,并在步骤S106b中发送数据帧。
于是,接收到数据帧的节点装置N4识别为接收到与在步骤S105b中发送过的相同的数据帧,将节点装置N3的权重设定为最大值。其结果是,节点装置N4判断为未残留有能够作为LD选择的邻接节点装置,废弃在步骤S106b中接收到的数据帧。这样,数据帧不会到达作为GD的节点装置N7,而从网络1中消失。
但是,对节点装置N2来说,是“在步骤S102的发送之后,从哪个邻接节点装置都未返回相同的数据帧”的状况。因此,节点装置N2,进行了误认为“发送指定了节点装置N7作为GD的数据帧时选择节点装置N3作为LD是适当的”的学习。
因此,在其后节点装置N2发送指定了节点装置N7作为GD的数据帧时,也继续选择节点装置N3作为LD。为此,只要节点装置N4和N7之间的链路未从障碍中恢复,数据帧就在网络内消失。
如以上那样,即使节点装置进行了循环判定,如果不进行回溯动作,则GS的节点装置也不识别为数据帧在网络内被废弃而消失,继续送出数据帧。其结果是,被继续送出的数据帧,在网络的某处继续被废弃。因此,不优选第1比较例。
图35是对进行伪回溯动作但不进行循环判定的第2比较例进行说明的图。
第2比较例的节点装置,不具有FID管理表105,也不进行循环判定。另外,第2比较例的节点装置,进行伪回溯动作。
即,第2比较例的节点装置,若接收了指定本节点装置以外的本节点装置作为GD的数据帧,则选择数据帧的LS以外的邻接节点装置之中的与不是最大值的权重建立了对应关系的节点装置作为LD,发送数据帧。而且,第2比较例的节点装置,按顺序逐步选择能够选择的邻接节点,直到发送成功为止。
其结果是,在即使尝试将权重是最大值的邻接节点及接收到的数据帧的LS以外的全部的邻接节点装置作为LD,发送也未成功的情况下,第2比较例的节点装置,向接收到的数据帧的LS返回数据帧。该返回是第2比较例中的伪回溯动作。
在图35中,因为步骤S101~S106与第1实施方式的图6相同,所以省略其说明。
第2比较例的节点装置不具有FID管理表105,不进行循环判定。因此,节点装置N3,若在步骤S106中接收了数据帧,则与步骤S103同样地再次将节点装置N4作为LD来选择,在步骤S107b中发送数据帧。
于是,仍然是不具有FID管理表105的节点装置N4,若在步骤S107b中接收了数据帧,则与步骤S105同样地再次将节点装置N5作为LD来选择,在步骤S108b中发送数据帧。
以下,同样地,在不进行循环判定的第2比较例中,在闭路<N3,N4,N5>内陷于永远持续转送数据帧的无限循环。因此,也不优选第2比较例。
相对于此,第1~第5实施方式的节点装置,因为进行循环判定和 回溯动作的全部,所以是适于自组织网络的装置。
此外,通过上述所说明的各实施方式,只要不相互矛盾,就能够适当组合。例如,能够是组合了第3实施方式和第5实施方式的实施方式(即,在有线连接和无线连接混合存在的网络中进行ACK帧的频度调整的实施方式)等。
另外,本发明不限定于上述的实施方式,能够进行各种变形。以下叙述几个该例。
变形的第1观点是数据构造。图8~13以表形式来表示,介是,根据实施方式,各种数据的形式是任意的,能够利用表、有限FIFO(First In First Out,先进先出)、线性表等任意的数据构造。
例如,FID管理表105,也可以利用有限FIFO来实现。在这种情况下,项,按从旧到新的顺序,从有限FIFO中被赶出。因此,不需要图19所示的FID管理表105的时效处理。从而,也不需要FID管理表105的最终更新时刻字段。
具体来说,在图22的步骤S822、图23的步骤S833、图28的步骤S1118及图29的步骤S833a中,也可以取代更新既存的项,进行新项的生成和所生成的新项中的值的设定。
例如,步骤S822,被替换为以下的(W1)~(W3)的处理。
(W1)数据帧处理部110在FID管理表105中生成新项。
(W2)数据帧处理部110,对新项从具有与接收到的数据帧的GS和FID相等的值作为GS及FID的既存的项中复制FID、GS、OLS的各字段的值。
(W3)数据帧处理部110,设定发送过的数据帧的LD的值作为新项的LD。
此外,在图21的步骤S806、图23的步骤S831、图28的步骤S1116及图29的步骤S831a中,按从有限FIFO的最新的项向旧的项的顺序,各项被按顺序调查。
变形的第2观点是权重的表达。表示权重的数值的范围根据实施方式是任意的。例如,取代如上述例那样以0~1的范围的值表示权重,也可以利用0~255的范围的整数来表示权重。另外,在上述各实施方式中,优先级越高则权重的值越小,但是,根据实施方式,也可以相反地,优先级 越高则权重的值越大。在这种情况下,适当变更对权重进行变更的各步骤的动作。
变形的第3观点是轮询处理和中断处理的替换。例如,定时器IC203也能够输出用于在发送数据帧后未返回ACK帧时超时的中断信号。总之,也可以是,取代如图26那样ACK处理部107通过轮询调查缓冲部109的各项的最终更新时刻的值,而是若成为缓冲部109的各项的最终更新时刻则定时器IC203发出中断信号那样的实施方式。
变形的第4观点与邻接节点装置的管理有关。
在已知其他节点装置发送问候帧的间隔的情况下,链路管理部108能够预测从当前识别为邻接节点装置的节点装置接下来接收问候帧的时刻。例如,当在网络内的全部的节点装置中问候帧的发送间隔ΔThello相等的情况下,已知其他节点装置发送问候帧的间隔。
另外,也可以取代图7的问候帧311而使用还具有表示问候帧的发送间隔的字段的另外形式的问候帧。在这种情况下,链路管理部108,能够根据已接收的问候帧预测从邻接节点装置接下来接收问候帧的时刻。
这样,在已知其他节点装置发送问候帧的间隔的情况下,例如,在邻接节点管理表103(参照图9)中,也可以省略最终更新时刻字段,取而代之增加如下那样的字段。
(X1)用于记录问候帧的接收连续失败的次数的连续失败次数字段
(X2)用于记录被预测为接下来接收问候帧的时刻的预测时刻字段
而且,也可以是,链路管理部108,在图15的步骤S302和S304中,不是将当前时刻作为最终更新时刻进行设定,而是将连续失败次数的值清零为0,将问候帧的已知的发送间隔与当前时刻相加的时刻作为预测时刻来设定。另外,也可以取代图17的步骤S502,进行如下那样的处理。
即,在关注项的预测时刻字段的值表示当前时刻之前的时刻的情况下,链路管理部108对关注项的连续失败次数的值进行增量,将预测时刻字段的值向后移动问候帧的已知的发送间隔的量。而且,如果关注项的连续失败次数的值在规定的次数(例如3回)以上,则处理转移到步骤S503,如果关注项的连续失败次数的值小于规定的次数,则处理转移到步骤S505。
另外,根据邻接节点装置的管理的上述第4观点,上述各实施方式 也可以如下那样变形。
即,也可以是,在接收数据帧时也基于接收到的数据帧的LS的值,与问候帧接收处理同样地,链路管理部108根据需要更新邻接节点管理表103和加权表104。同样地,也可以是,在接收ACK帧时也基于接收到的ACK帧的LS的值,与问候帧接收处理同样地,链路管理部108根据需要更新邻接节点管理表103和加权表104。
变形的第5观点是选择LD时的基准。即,在上述的各实施方式中,在发送数据帧时基于权重来选择LD,但是,在LD的选择中,也可以进一步考虑链路质量。例如,节点装置100也可以基于接收电波强度等来计量无线链路的链路质量。而且,数据帧处理部110也可以基于表示为权重和链路质量的函数的评价值来选择LD。
变形的第6观点,与未能接收到ACK帧时的处理有关。
例如,在图22的步骤S829中,一次在步骤S826中被判断为“发送失败”的邻接节点装置被从LD的候补中除去。但是,也可以是如下的实施方式:一次在步骤S826中被判断为“发送失败”的邻接节点装置不从候补中除去,而在步骤S829中也设为能够选择。
在这种情况下,步骤S818如下那样被变形。即,数据帧处理部110判断与所取得的LD的值对应的权重是否是最大值。而且,在该权重是最大值时,处理转移到图23的步骤S830,在该权重小于最大值时,处理转移到步骤S819。
同样地,图28的步骤S1125也能够以如下方式被变形:不将一次在步骤S1122中被判断为“发送失败”的邻接节点装置从LD的候补中除去。而且,步骤S1111也以如下方式被变形:数据帧处理部110判断与所取得的LD的值对应的权重是否是最大值。
若步骤S819和S819如上述那样被变形了,则例如,当图2的节点装置N111从节点装置N116接收到指定节点装置N101作为GD的数据帧时,节点装置N111如下那样进行动作。
设为,当接收上述数据帧时,在与节点装置N111具有的节点装置N101相对应的加权表中,邻接节点装置N105、N109、N115各自的权重是0.1、0.6、0.7。于是,首先选择邻接节点装置N105作为LD。
假如,若未从节点装置N105返回来ACK帧,则将节点装置N105的 权重更新为0.2。而且,在第1实施方式中,将发送失败了的节点装置N105从LD的候补中除去,接着选择邻接节点装置N109作为LD,但是,在该变形例中,因为0.2<0.6<0.7,所以再次选择节点装置N105作为LD。
而且,若设为又未从节点装置N105返回来ACK帧,则节点装置N105的权重被更新为0.3,因为0.3<0.6<0.7,所以再次选择节点装置N105作为LD。只要节点装置N111和N105之间的链路的状态不改善,则以下同样地反复选择节点装置N105作为LD后,发送失败。而且,在节点装置N105的权重成为0.6(或者0.7)的阶段中,初次选择与权重0.6建立了对应关系的节点装置N109作为LD。
如以上示例的那样,也能够不将一次判断为“发送失败”的邻接节点装置从LD的候补中除去。该变形例优选于即使“链路暂时性地产生障碍,链路也会马上从障碍中恢复”的情况。例如,如果在步骤S818~S829的反复循环的执行中链路从障碍中恢复了,则节点装置100,能够不受瞬间的障碍的影响,而选择根据至今为止的学习的结果判断为“优选作为LD”的邻接节点装置作为LD。
但是,不限定从障碍中恢复总是瞬间的。因此,在第1实施方式中,为了缩短路径的收敛所花费的时间,一次判断为“发送失败”的邻接节点装置被从LD的候补中除去。总之,通过将一次判断为“发送失败”的邻接节点装置从LD的候补中除去,与某1个数据帧有关,缩短了节点装置100最终决定LD所花费的时间。其结果是,即使作为网络整体,也缩短了数据帧从由GS发送起直到到达GD的等待。
另外,作为根据上述的第6观点的变形例也能够是在图22的步骤S828中数据帧处理部110不用式(7)而使用下述的式(8)进行权重的更新的变形例。
Wrevised=Wmax (8)
基于式(8)的权重的更新,意味着将通过产生了障碍的链路而与节点装置100邻接的节点装置从LD的候补中持续除去,直到通过时效处理消除了被更新了权重的该项为止。
此外,根据上述的第6观点,也能够是如下那样的变形。
即,在第1实施方式中,如图26所示那样,如果即使尝试发送数据帧一次,也未在规定的ACK帧等待时间Twait之中接收到ACK帧,则认为 发送失败。但是,也能够是如下的实施方式:即使尝试发送数据帧规定的次数(例如3次),也没有返回ACK帧时,才认为是“发送失败”。
例如,发送部102也可以具备与发送次数建立对应关系保存已经发送的数据帧的发送缓冲。发送部102,在最初被数据帧处理部110要求发送数据帧时,作为发送次数设定1,在发送缓冲中保存由数据帧处理部110输出的数据帧。而且,ACK处理部107,也可以取代进行图26的步骤S1003的处理,而如下那样进行动作。
即,ACK处理部107,基于GS字段和FID字段的值,确定与保存于缓冲部109的关注项的数据帧对应的发送缓冲中的已发送数据帧。
而且,如果与ACK处理部107所确定的已发送数据帧建立了对应关系的发送次数的值达到了规定的次数,则ACK处理部107进行步骤S1003的处理,接着处理转移到步骤S1004。
另一方面,如果与ACK处理部107所确定的已发送数据帧建立了对应关系的发送次数的值小于规定的次数,则不进行步骤S1003的处理,取而代之ACK处理部107对发送次数的值进行增量。而且,处理转移到步骤S1004。
此外,如果对上述的各种实施方式及其变形例进行总结,则如以下那样。
节点装置,具备例如图3的接收部101、图4的无线模块206、图21的端口211a-1~211a-4及与之连接的PHY芯片等,作为从多个邻接节点装置中的任意1个中接收帧的接收单元。
另外,图3的FID管理表105由图4的DRAM20网络4和瞬时存储器205来实现,保存了如图12和图13那样的信息。该FID管理表105是将以下的(Y1)~(Y3)的各信息建立对应关系进行存储的存储单元的一例。
(Y1)识别发送对象帧的帧识别信息
(Y2)用于在多个邻接节点装置之中识别作为发送对象帧的发送目的地的发送目的地邻接节点装置的发送目的地邻接节点识别信息
(Y3)用于识别最初发送来发送对象帧的邻接节点装置的起源节点识别信息
此外,上述(Y1)的发送对象帧的例是在图22的步骤S819、图23的步骤S830、图28的步骤S1114、图29的步骤S830b等中所发送的数据帧。而且,帧识别信息的例是GS字段的值和FID字段的值的组合。
另外,上述(Y2)的发送目的地邻接节点识别信息的具体例是保存于FID管理表105的LD字段的邻接节点装置的节点ID。
而且,上述(Y3)的起源节点识别信息的具体例是保存于FID管理表105的OLS字段的节点ID。
如上述那样,在节点装置100中继数据帧的情况下,在FID管理表105的OLS字段中保存了节点装置100最初接收到该数据帧时的该数据帧的LS字段的值。总之,在OLS字段保存了最初发送来发送对象帧的邻接节点装置的节点ID。
此外,按照扩展的OLS的定义,在节点装置100自身成为GS的情况下,在FID管理表105的OLS字段保存本节点ID。总之,在节点装置100自身生成了发送对象帧的情况下,在OLS字段保存作为节点装置100自身的识别信息的本节点ID。换言之,OLS字段所保存的节点ID,是在以节点装置100自身为中心的跳数1以下的范围内节点装置100识别为发送对象帧的起源的节点装置的节点ID。
另外,图3的加权表104,由图4的DRAM204和瞬时存储器205来实现,保存了如图10和图11那样的信息。该加权表104是与作为数据帧的最终目的地的GD建立对应关系来存储表示向多个邻接节点装置的每一个发送的可能性的发送可能性信息的存储单元的一例。
此外,发送可能性信息,在上述实施方式中,具体来说,以分别包含LD字段的节点ID和权重的值的组的1个或者多个项来表示。而且,发送可能性,例如以如下方式来表示:“如果权重的值为1则不能发送,如果权重的值小于1则能够发送”。
另外,图3的数据帧处理部110是例如由图4的MPU201和DRAM204来实现的用于更新发送可能性信息的更新单元的一例。当识别接收部101等的接收单元接收到的接收帧的接收帧识别信息作为(Y1)的帧识别信息而存储于FID管理表105等存储单元的情况下,作为更新单元的数据帧处理部110更新发送可能性信息。
具体来说,在这种情况下所更新的发送可能性信息,是与作为接收 帧中所指定的最终目的地(即GD)的接收帧目的地建立对应关系而存储于加权表104等存储单元的发送可能性信息。以如下方式更新发送可能性信息:向(Y2)的发送目的地邻接节点识别信息所识别的第1邻接节点装置发送的可能性表示“不能发送”,该(Y2)的发送目的地邻接节点识别信息是在FID管理表105等存储单元中与接收帧识别信息建立对应关系存储的信息。
具体来说,例如,由作为更新单元的数据帧处理部110进行“在LD字段具有与FID管理表105的LD字段相同的值的加权表104-i的项中,将权重设定为1”的动作。
另外,数据帧处理部110和发送部102协同动作作为从多个邻接节点装置之中选择能够发送的第2邻接节点装置,向第2邻接节点装置发送接收帧的发送单元而发挥功能。作为发送单元的一部分的数据帧处理部110,基于与接收帧目的地建立对应关系而存储于加权表104等存储单元的发送可能性信息,选择第2邻接节点装置。
在此,设为,在FID管理表105等存储单元中,作为与接收帧识别信息建立了对应关系的(Y3)的起源节点识别信息存储了第3邻接节点装置。
于是,在接收帧识别信息作为(Y1)的帧识别信息而被存储于FID管理表105等存储单元的情况下,作为发送单元的数据帧处理部110认为第3邻接节点装置不论发送可能性信息如何是不能发送。
总之,数据帧处理部110认为“作为OLS的邻接节点装置,不论权重的值如何是不能发送”,并从LD的候补中将作为OLS的邻接节点装置除去。而且,作为发送单元的数据帧处理部110选择与第3邻接节点装置不同的能够发送的第2邻接节点装置。
另外,数据帧处理部110和发送部102协同动作也作为回溯单元发挥功能。作为回溯单元的数据帧处理部110和发送部102,当在加权表104等存储单元的发送可能性信息中,在多个邻接节点装置之中没有能够发送的邻接节点装置,并且接收帧识别信息作为(Y1)的帧识别信息而存储于FID管理表105等存储单元的情况下,向第3邻接节点装置发送接收帧。
此外,在此所谓“多个邻接节点装置之中没有能够发送的邻接节点装置”,意思是“只有权重是1等根据发送可能性信息表示不能发送的邻接 节点装置或如上述那样不论发送可能性信息如何而被认为不能发送的第3邻接节点装置”。总之,作为回溯单元的数据帧处理部110和发送部102,在第3邻接节点装置以外的(0个、1个或者多个)邻接节点装置之中没有能够发送的邻接节点装置的情况下,向第3邻接节点装置发送接收帧。
另外,节点装置,也可以具备生成新帧的生成单元。生成单元的几种例,如下述(Z1)~(Z4)那样。
(Z1)图3的上位层处理部111
(Z2)在图31中借助于通用LAN端口212e而与传感器504连接的节点装置100e具备的未图示的MAC芯片和MPU
(Z3)在图31中借助于通用LAN端口212g而与PC505连接的节点装置100g具备的未图示的MAC芯片和MPU
(Z4)在图31中借助于通用LAN端口212a而与L2SW502连接的节点装置100a具备的未图示的MAC芯片和MPU
此外,根据上述的各种实施方式和其变形例,不是另外存在与数据传送阶段独立的事前的路径生成阶段,而是在数据传送阶段动态地进行路径生成。如果说明其优点,则如下述那样。
一般来说,如果是具有与数据传送阶段独立的事前的路径生成阶段的通信协议,则使用控制用的短的PDU来生成路径。但是,对于无线链路的通信质量来说,也可能有“对于控制用的短的PDU的通信来说是充分的,但是对于数据传送用的长的PDU的通信来说则不充分”的中间的水平。其理由之一,是因为根据PDU的长度不同,能够通信的距离也不同。
为此,也许在路径生成阶段认为有效的路径,进入数据传送阶段才判明为实际上不能使用。另外,电波状况经常会变化,或者,即使是有线网络,也经常发生节点装置的增设或者撤除或电缆的连接替换等。
但是,根据上述的各种实施方式及其变形例,在数据传送阶段,发送数据帧的同是,动态地生成能够发送数据帧的路径。从而,不会产生“不能用于实际的数据帧的传送的路径在与数据传送阶段独立的路径生成阶段被生成了”的浪费。
另外,根据上述的各种实施方式和其变形例,即使对于数据传送阶段中的网络环境的动态变化,也与其动态地适应的同时,选择路径。而且, 从上述的说明可知,没有基于人工的设定,作为各节点装置的自主分散协调的结果,而动态地发现适当的路径。
此外,从图6的例可知,根据上述的各种实施方式及其变形例,譬如即使产生回溯,也未必是影响到GS。总之,根据局部性地发生的变化,只在所限定的局部性的范围之中修正路径。因此,不会产生“局部性的变化向网络整体正反馈,其结果,使网络整体陷于过载状态”的情况。
Claims (7)
1.一种节点装置,其特征在于,具备:
接收单元,从多个邻接节点装置之中的任意1个接收帧;
第1存储单元,将用于识别发送对象帧的帧识别信息、用于在上述多个邻接节点装置之中识别上述发送对象帧的发送目的地即发送目的地邻接节点装置的发送目的地邻接节点识别信息、用于识别最初发送来该发送对象帧的邻接节点装置的起源节点识别信息建立对应关系进行存储;
第2存储单元,与帧的最终目的地建立对应关系存储表示向上述多个邻接节点装置的每个进行发送的发送可能性的发送可能性信息;
更新单元,当在上述第1存储单元作为上述帧识别信息而存储了用于识别上述接收单元接收到的接收帧的接收帧识别信息的情况下,上述更新单元更新与上述接收帧中指定的最终目的地即接收帧目的地建立对应关系而存储于上述第2存储单元的上述发送可能性信息,以使得向第1邻接节点装置发送的上述发送可能性表示不能发送,该第1邻接节点装置是利用在上述第1存储单元中与上述接收帧识别信息建立对应关系而存储的上述发送目的地邻接节点识别信息所识别出的;
发送单元,基于与上述接收帧目的地建立对应关系而存储于上述第2存储单元的上述发送可能性信息,从上述多个邻接节点装置之中选择能够发送的第2邻接节点装置,并向上述第2邻接节点装置发送上述接收帧;和
回溯单元,在上述第2存储单元的发送可能性信息表示在上述多个邻接节点装置之中没有能够发送的节点装置,并且在上述第1存储单元中作为上述帧识别信息而存储了上述接收帧识别信息的情况下,上述回溯单元向在上述第1存储单元中作为与上述接收帧识别信息建立了对应关系的上述起源节点识别信息而存储的第3邻接节点装置发送上述接收帧。
2.根据权利要求1所述的节点装置,其特征在于,
还具备缓冲单元,该缓冲单元在上述接收单元接收到上述接收帧时,存储上述接收帧,
上述发送单元和上述回溯单元,若识别为上述接收帧的发送成功了,则从上述缓冲单元删除上述接收帧。
3.根据权利要求1所述的节点装置,其特征在于,
在上述接收帧识别信息作为上述帧识别信息而存储于上述第1存储单元的情况下,上述发送单元,不论上述发送可能性信息如何而认为上述第3邻接节点装置是不能发送,选择与上述第3邻接节点装置不同的能够发送的上述第2邻接节点装置,上述回溯单元,在除了上述第3邻接节点装置外的上述多个邻接节点装置之中没有能够发送的邻接节点装置的情况下,向上述第3邻接节点装置发送上述接收帧。
4.根据权利要求1所述的节点装置,其特征在于,
在上述接收帧识别信息已经作为上述帧识别信息而存储于上述第1存储单元的情况下,上述发送单元,在上述第1存储单元中将下述信息相互建立对应关系地进行存储:作为帧识别信息的、上述接收帧识别信息;作为发送目的地邻接节点识别信息的、该发送单元发送了该接收帧的发送目的地即邻接节点装置的识别信息;以及,作为起源节点识别信息的、与已经存储于上述第1存储单元的上述帧识别信息对应的上述起源节点识别信息,
在上述接收帧识别信息未存储于上述第1存储单元的情况下,上述发送单元,在上述第1存储单元中将下述信息相互建立对应关系地进行存储:作为帧识别信息的、上述接收帧识别信息;作为发送目的地邻接节点识别信息的、该发送单元发送了该接收帧的发送目的地即邻接节点装置的识别信息;以及,作为起源节点识别信息的、该接收帧的发送源即邻接节点装置的识别信息。
5.根据权利要求1所述的节点装置,其特征在于,
还具备生成新帧的生成单元,
上述发送单元,
还基于与上述新帧的最终目的地建立对应关系而存储于上述第2存储单元的上述发送可能性信息,从上述多个邻接节点装置之中选择能够发送的邻接节点装置,并向该选择出的邻接节点装置发送上述新帧,
在上述第1存储单元中将下述信息相互建立对应关系地进行存储:作为帧识别信息的、识别上述新帧的新帧识别信息;作为发送目的地邻接节点识别信息的、上述选择出的邻接节点装置的识别信息;以及,作为起源节点识别信息的、识别生成了上述新帧的上述节点装置自身的本节点识别信息。
6.根据权利要求5所述的节点装置,其特征在于,
上述回溯单元,在上述多个邻接节点装置之中没有能够发送的邻接节点装置并且存储于上述第1存储单元的上述帧识别信息与上述接收帧识别信息相同并且上述起源节点识别信息是本节点识别信息的情况下,废弃上述接收帧。
7.一种帧发送方法,是节点装置向多个邻接节点装置之中任意1个发送帧的帧发送方法,其特征在于,具备上述节点装置进行的如下步骤:
提取步骤,从上述节点装置接收到的接收帧中,提取用于识别上述接收帧的接收帧识别信息,上述接收帧是从上述多个邻接节点装置之中的任意1个接收到的帧;
判断步骤,判断提取出的上述接收帧识别信息是否已作为帧识别信息而存储于第1存储单元,该第1存储单元用于将用于识别发送对象帧的上述帧识别信息、用于在上述多个邻接节点装置之中识别上述发送对象帧的发送目的地即发送目的地邻接节点装置的发送目的地邻接节点识别信息、用于识别最初发送来该发送对象帧的上述邻接节点装置的起源节点识别信息建立对应关系进行存储;
更新步骤,在判断为上述接收帧识别信息作为上述帧识别信息已存储的情况下,在与帧的最终目的地建立对应关系存储表示向上述多个邻接节点装置的每个进行发送的发送可能性的发送可能性信息的第2存储单元中,更新与上述接收帧中指定的最终目的地即接收帧目的地建立对应关系而存储的上述发送可能性信息,以使得向第1邻接节点装置发送的上述发送可能性表示不能发送,该第1邻接节点装置是利用在上述第1存储单元中与上述接收帧识别信息建立对应关系而存储的上述发送目的地邻接节点识别信息所识别出的;
发送步骤,基于与上述接收帧目的地建立对应关系而存储于上述第2存储单元的上述发送可能性信息,从上述多个邻接节点装置之中选择能够发送的第2邻接节点装置,并向上述第2邻接节点装置发送上述接收帧;和
回溯步骤,在上述第2存储单元的发送可能性信息表示在上述多个邻接节点装置之中没有能够发送的节点装置,并且在上述第1存储单元作为上述帧识别信息而存储了上述接收帧识别信息的情况下,向在上述第1存储单元中作为与上述接收帧识别信息建立了对应关系的上述起源节点识别信息而存储的第3邻接节点装置发送上述接收帧。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2009/003537 WO2011013165A1 (ja) | 2009-07-27 | 2009-07-27 | ノード装置、記憶媒体およびフレーム送信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102415057A CN102415057A (zh) | 2012-04-11 |
CN102415057B true CN102415057B (zh) | 2014-12-31 |
Family
ID=43528848
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980159067.7A Expired - Fee Related CN102415057B (zh) | 2009-07-27 | 2009-07-27 | 节点装置及帧发送方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8929375B2 (zh) |
EP (2) | EP3054633B1 (zh) |
JP (1) | JP4820464B2 (zh) |
KR (1) | KR101301885B1 (zh) |
CN (1) | CN102415057B (zh) |
WO (1) | WO2011013165A1 (zh) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2502203C2 (ru) * | 2009-05-11 | 2013-12-20 | Фудзицу Лимитед | Узловое устройство и способ связи |
JP5347846B2 (ja) * | 2009-08-31 | 2013-11-20 | 富士通株式会社 | ノード関連情報を収集するシステム、ノード装置、およびフレーム処理方法 |
JP5477462B2 (ja) * | 2010-03-31 | 2014-04-23 | 富士通株式会社 | ノード装置およびデータ送信方法 |
JP5754206B2 (ja) | 2011-03-29 | 2015-07-29 | 富士通株式会社 | アドホックネットワークにおける時刻同期方法および装置 |
JP5720793B2 (ja) * | 2011-09-20 | 2015-05-20 | 富士通株式会社 | データ転送方法およびそれを用いるノード装置 |
JP5692404B2 (ja) * | 2011-11-01 | 2015-04-01 | 富士通株式会社 | 送信制御方法および送信制御装置 |
WO2013088498A1 (ja) | 2011-12-12 | 2013-06-20 | 富士通株式会社 | 送信制御方法、ノードおよび送信制御プログラム |
JP5812111B2 (ja) | 2011-12-19 | 2015-11-11 | 富士通株式会社 | 送信制御方法およびノード |
WO2013099026A1 (ja) | 2011-12-28 | 2013-07-04 | 富士通株式会社 | ノード装置および時刻同期方法 |
JP5836477B2 (ja) | 2012-03-09 | 2015-12-24 | 三菱電機株式会社 | データ通信装置、データ通信システム及びデータ通信方法 |
US8792360B2 (en) | 2012-04-30 | 2014-07-29 | Fujitsu Limited | Duplicate packet suppression |
US9712559B2 (en) * | 2012-05-31 | 2017-07-18 | Red Hat, Inc. | Identifying frames |
JP6036841B2 (ja) | 2012-10-31 | 2016-11-30 | 富士通株式会社 | 通信制御方法、ネットワークシステム、および通信装置 |
US9674193B1 (en) * | 2013-07-30 | 2017-06-06 | Juniper Networks, Inc. | Aggregation and disbursement of licenses in distributed networks |
US9495378B2 (en) * | 2013-08-27 | 2016-11-15 | Purdue Research Foundation | Tracing message transmissions between communications network devices |
TWI524792B (zh) * | 2013-09-27 | 2016-03-01 | 財團法人資訊工業策進會 | 用於車載隨意網路系統的傳輸控制方法以及通訊裝置 |
JP6264856B2 (ja) | 2013-11-18 | 2018-01-24 | 富士通株式会社 | ノード装置、制御プログラム、無線通信システム、及びデータ通信方法 |
JP6303426B2 (ja) | 2013-11-18 | 2018-04-04 | 富士通株式会社 | ノード装置、通信システム、通信方法および通信プログラム |
US10015720B2 (en) | 2014-03-14 | 2018-07-03 | GoTenna, Inc. | System and method for digital communication between computing devices |
US9641616B2 (en) * | 2014-07-10 | 2017-05-02 | Kabushiki Kaisha Toshiba | Self-steering point-to-point storage protocol |
US20160149685A1 (en) * | 2014-11-21 | 2016-05-26 | Samsung Electronics Co., Ltd. | Method and apparatus for wireless communication |
JP6459558B2 (ja) | 2015-01-27 | 2019-01-30 | 富士通株式会社 | 無線通信装置、無線通信方法、および無線通信プログラム |
CN106330747B (zh) | 2015-06-30 | 2019-09-13 | 富士通株式会社 | 转发目的地选择方法以及通信装置 |
US11115320B2 (en) * | 2017-03-24 | 2021-09-07 | Telefonaktiebolaget Lm Ericsson (Publ) | Routing in communication networks |
CN110832826B (zh) | 2017-06-30 | 2023-01-13 | 区块链控股有限公司 | 区块链网络中概率中继的流量控制的方法和系统 |
EP3831021A1 (en) | 2018-07-27 | 2021-06-09 | Gotenna Inc. | VINEtm ZERO-CONTROL ROUTING USING DATA PACKET INSPECTION FOR WIRELESS MESH NETWORKS |
EP3925243B1 (en) * | 2019-02-12 | 2023-08-16 | KOC Universitesi | A method of qos-constrained semi-persistent scheduling of machine type communications in cellular networks |
US11606829B2 (en) * | 2019-06-18 | 2023-03-14 | Kyndryl, Inc. | Facilitation of data transmission in low connectivity areas |
CN110572790B (zh) * | 2019-08-19 | 2022-04-08 | 湖南九层台环境科技有限公司 | 一种农村快递小笼读取系统 |
CN110661550B (zh) * | 2019-09-27 | 2021-08-31 | 青岛联众芯云科技有限公司 | 一种hplc通信链路中转发报文的方法、装置、存储介质和电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1683353A (zh) * | 2005-03-11 | 2005-10-19 | 河南省科学院化学研究所 | 一种生产液体甲基四氢苯酐的新方法 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04173842A (ja) | 1990-11-07 | 1992-06-22 | Nippon Zeon Co Ltd | シロキサン複合ラテックスポリマー皮膜の製造方法 |
US6885937B1 (en) * | 1998-12-10 | 2005-04-26 | Tele Atlas North America, Inc. | Shortcut generator |
JP4076701B2 (ja) | 2000-04-14 | 2008-04-16 | 富士通株式会社 | ノード装置 |
JP3575435B2 (ja) | 2001-03-09 | 2004-10-13 | 日本電気株式会社 | 電話システム及び電話接続監視方法 |
US7082531B1 (en) * | 2001-11-30 | 2006-07-25 | Cisco Technology, Inc. | Method and apparatus for determining enforcement security devices in a network topology |
JP2003273964A (ja) | 2002-03-15 | 2003-09-26 | Ntt Docomo Inc | 通信システム、通信制御方法及びルータ |
WO2004114690A1 (en) | 2003-06-05 | 2004-12-29 | Meshnetworks, Inc. | Optimal routing in ad hac wireless communication network |
US8018953B1 (en) * | 2003-08-20 | 2011-09-13 | Cisco Technology, Inc. | Adaptive, deterministic ant routing approach for updating network routing information |
JP2005198201A (ja) | 2004-01-09 | 2005-07-21 | Ntt Docomo Inc | ネットワークトポロジー構成方法及びノード |
JP4173842B2 (ja) * | 2004-07-02 | 2008-10-29 | 富士通株式会社 | 位置検出装置、送受信方法および送受信プログラム |
JP2006033275A (ja) * | 2004-07-14 | 2006-02-02 | Fujitsu Ltd | ループフレーム検知装置およびループフレーム検知方法 |
FR2878674A1 (fr) * | 2004-12-01 | 2006-06-02 | France Telecom | Procede et systeme d'adaptation dynamique de metrique de qualite de service dans un reseau ad hoc |
JP2006340165A (ja) | 2005-06-03 | 2006-12-14 | Hitachi Communication Technologies Ltd | 通信経路切替制御システム及びルータ装置 |
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 |
WO2008053146A1 (en) * | 2006-10-31 | 2008-05-08 | British Telecommunications Public Limited Company | In-layer ethernet p-cycle protection scheme |
US7583589B2 (en) * | 2007-03-15 | 2009-09-01 | Cisco Technology, Inc. | Computing repair path information |
JP4720794B2 (ja) * | 2007-06-05 | 2011-07-13 | パナソニック電工株式会社 | マルチホップ通信ネットワークにおける隣接ノード確認方法、マルチホップ通信ネットワークのノード |
US7940776B2 (en) * | 2007-06-13 | 2011-05-10 | Cisco Technology, Inc. | Fast re-routing in distance vector routing protocol networks |
US8077602B2 (en) * | 2008-02-01 | 2011-12-13 | International Business Machines Corporation | Performing dynamic request routing based on broadcast queue depths |
US8315158B2 (en) * | 2008-05-01 | 2012-11-20 | Siemens Aktiengesellschaft | Methods and apparatus for decentralized rapid recovery for Ethernet rings |
-
2009
- 2009-07-27 CN CN200980159067.7A patent/CN102415057B/zh not_active Expired - Fee Related
- 2009-07-27 EP EP16162071.1A patent/EP3054633B1/en not_active Not-in-force
- 2009-07-27 JP JP2011524537A patent/JP4820464B2/ja not_active Expired - Fee Related
- 2009-07-27 WO PCT/JP2009/003537 patent/WO2011013165A1/ja active Application Filing
- 2009-07-27 KR KR1020117030491A patent/KR101301885B1/ko active IP Right Grant
- 2009-07-27 EP EP09847760.7A patent/EP2464060B1/en not_active Not-in-force
-
2011
- 2011-12-27 US US13/337,788 patent/US8929375B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1683353A (zh) * | 2005-03-11 | 2005-10-19 | 河南省科学院化学研究所 | 一种生产液体甲基四氢苯酐的新方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102415057A (zh) | 2012-04-11 |
EP2464060A4 (en) | 2014-11-05 |
EP2464060A1 (en) | 2012-06-13 |
KR101301885B1 (ko) | 2013-08-29 |
JP4820464B2 (ja) | 2011-11-24 |
US8929375B2 (en) | 2015-01-06 |
EP3054633B1 (en) | 2017-10-25 |
US20120106552A1 (en) | 2012-05-03 |
JPWO2011013165A1 (ja) | 2013-01-07 |
EP2464060B1 (en) | 2016-05-04 |
WO2011013165A1 (ja) | 2011-02-03 |
EP3054633A1 (en) | 2016-08-10 |
KR20120109995A (ko) | 2012-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102415057B (zh) | 节点装置及帧发送方法 | |
CN102835182B (zh) | 节点装置以及绕行路径调查方法 | |
CN102415054B (zh) | 节点装置和通信方法 | |
CN101711048B (zh) | 移动自组织网络与Internet融合过程中的网关选择方法 | |
US20090207783A1 (en) | Communication method and apparatus using virtual sink node in wireless sensor network | |
CN103210617A (zh) | 减少网络中的消息和计算开销 | |
CN102017716A (zh) | 路径信息中继方法以及无线终端 | |
US20170094579A1 (en) | Sensor network system, data transmission method and sensor node used in sensor network system | |
Mutombo et al. | EER‐RL: Energy‐Efficient Routing Based on Reinforcement Learning | |
JP2008118339A (ja) | 無線ネットワークシステム | |
KR101555315B1 (ko) | 저전력 사물 인터넷 네트워크 관리를 위한 네트워크 관리 데이터 전파 방법 및 저전력 사물 인터넷 노드 장치 | |
Gupta et al. | Energy aware data collection in wireless sensor network using chain based PEGASIS | |
CN105704776A (zh) | 一种兼顾网络节点能量和缓存的节点消息转发方法 | |
CN113965948A (zh) | 一种基于自适应分簇网络的传感器数据采集方法 | |
JP2006050461A (ja) | マルチホップ型無線システムの構成方法及び無線ノード装置 | |
EP4233288A1 (en) | Qos aware reinforcement learning prevention intrusion system | |
Chen | Simulation model of AI-assisted cognitive routing algorithm for the dynamic optical network in business | |
Malhotra et al. | A quality of service‐aware routing protocol for FANETs | |
Heimfarth et al. | Unmanned aerial vehicle as data mule for connecting disjoint segments of wireless sensor network with unbalanced traffic | |
WO2011121675A1 (ja) | データ通信装置および方法 | |
Sui | The research of the route protocols in opportunistic network | |
Zakaria et al. | Finding shortest routing solution in mobile ad hoc networks using firefly algorithm and queuing network analysis | |
JP5477462B2 (ja) | ノード装置およびデータ送信方法 | |
Sharma et al. | Ant Colony Optimization Based Routing Strategies for Internet of Things | |
Xu | Link optimization of the new generation instant messaging network based on artificial intelligence technology |
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 | ||
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: 20141231 |