一种分布式设备内部控制器间数据传输方法和装置的制造方法
【技术领域】
[0001]本发明涉及通信技术领域,特别是涉及一种分布式设备内部控制器间数据传输方法和装置。
【背景技术】
[0002]在分布式设备中,一个设备内部存在有多个控制器,每个控制器均具有自己的软件系统,设备内部的这些控制器之间需要相互传递数据,而为了实现在分布式设备内部控制器之间相互传递数据,就需要一种用于分布式设备内部控制器间的内部通信的方法。目前,一般通过IP地址来进行分布式设备的内部通信,为分布式设备内部的每个控制器均分配一个IP地址,在进行内部通信时,将需进行通信的目标控制器的IP地址作为目的地址来与该目标控制器进行内部通信。然而,在各分布式设备间,当各控制器间跨设备进行外部通信时,也一般使用IP地址来进行通信,如此,将导致分布式设备的内部通信与外部通信均使用了 IP地址来进行,占用较多的IP地址资源,易造成IP地址资源混淆和冲突,且不益于分布式设备在网络中的部署。
【发明内容】
[0003]有鉴于此,本发明实施例提供一种分布式设备内部控制器间数据传输方法和装置,以解决现有技术中分布式设备的内部通信与外部通信均使用了 IP地址来进行,占用较多的IP地址资源,不益于分布式设备在网络中的部署,且易造成IP地址资源混淆和冲突的问题。
[0004]为实现上述目的,本发明实施例提供如下技术方案:
[0005]—种分布式设备内部控制器间数据传输方法,包括:
[0006]确定接收数据的目标控制器,判断所述目标控制器是否为内部控制器;
[0007]若是,则确定所述目标控制器的控制器号,将所述控制器号作为目的地址进行数据封装,并通过所述控制器号得到所述目标控制器的链路层地址,其中,分布式设备内每个控制器具有的控制器号均唯一;
[0008]根据所述链路层地址将封装后数据发送给所述目标控制器。
[0009]其中,所述通过所述控制器号查找得到所述目标控制器的链路层地址包括:
[0010]判断是否在控制器号到链路层地址的映射表中查找到所述目标控制器的控制器号;
[0011 ]若查找到,则获取所述控制器号到链路层地址的映射表中所述目标控制器的控制器号相对应的链路层地区,得到所述目标控制器的链路层地址;
[0012]若未查找到,则向所有内部控制器进行广播,得到所有内部控制器的链路层地址,从得到的所有链路层地址后选取得到所述目标控制器的链路层地址。
[0013]其中,所述从得到的所有链路层地址后选取得到所述目标控制器的链路层地址后还包括:将所述目标控制器的控制器号和所述目标控制器的链路层地址对应添加至所述控制器号到链路层地址的映射表中。
[0014]其中,所述判断是否在控制器号到链路层地址的映射表中查找所述目标控制器的控制器号前包括:
[0015]判断是否存在控制器号到链路层地址的映射表;
[0016]若不存在,则建立控制器号到链路层地址的映射表。
[0017]其中,所述链路层地址为MAC地址。
[0018]其中,所述确定接收数据的目标控制器前还包括:
[0019]为分布式设备内部所有控制器均添加唯一标识,得到所述分布式设备内部各控制器的控制器号。
[0020]—种分布式设备内部控制器间数据传输装置,包括:判断模块、封装模块和传输模块;其中,
[0021 ]所述判断模块,用于确定接收数据的目标控制器,判断所述目标控制器是否为内部控制器;
[0022]所述封装模块,用于当所述判断模块判定所述目标控制器为内部控制器时,确定所述目标控制器的控制器号,将所述控制器号作为目的地址进行数据封装,并通过所述控制器号得到所述目标控制器的链路层地址,其中,分布式设备内每个控制器具有的控制器号均唯一;
[0023]所述传输模块,用于根据所述链路层地址将封装后数据发送给所述目标控制器。
[0024]其中,所述封装模块包括:第一判断单元、第一获取单元和第二获取单元;其中,
[0025]所述第一判断单元,用于判断是否在控制器号到链路层地址的映射表中查找到所述目标控制器的控制器号;
[0026]所述第一获取单元,用于当所述第一判断单元判定在控制器号到链路层地址的映射表中查找到所述目标控制器的控制器号时,获取所述控制器号到链路层地址的映射表中所述目标控制器的控制器号相对应的链路层地区,得到所述目标控制器的链路层地址;
[0027]所述第二获取单元,用于当所述第一判断单元判定在控制器号到链路层地址的映射表中未查找到所述目标控制器的控制器号时,向所有内部控制器进行广播,得到所有内部控制器的链路层地址,从得到的所有链路层地址后选取得到所述目标控制器的链路层地址。
[0028]其中,所述封装模块还包括:映射添加单元和/或第二判断单元;其中,
[0029]所述映射添加单元,用于在所述第二获取单元从得到的所有链路层地址后选取得到所述目标控制器的链路层地址后,将所述目标控制器的控制器号和所述目标控制器的链路层地址对应添加至所述控制器号到链路层地址的映射表中;
[0030]所述第二判断单元,用于在所述第一判断单元判断是否在控制器号到链路层地址的映射表中查找所述目标控制器的控制器号前,判断是否存在控制器号到链路层地址的映射表,若不存在,则建立控制器号到链路层地址的映射表。
[0031]其中,所述分布式设备内部控制器间数据传输装置还包括:标识模块,用于为分布式设备内部所有控制器均添加唯一标识,得到所述分布式设备内部各控制器的控制器号。
[0032]基于上述技术方案,本发明实施例提供的分布式设备内部控制器间数据传输方法和装置,当需要传输数据时,先确定接收数据的目标控制器,判断该接收数目的目标控制器是否为内部控制器,即判断该接收数据的目标控制器是否与发送数据的控制器位于同一分布式设备中,若是,则确定该目标控制器的控制器号,将该目标控制器的控制器号作为目的地址进行数据封装,并通过该目标控制器的控制器号得到该目标控制器的链路层地址,其中,分布式设备内每个控制器具有的控制器号均唯一,在得到目标控制器的链路层地址后,根据该链路层地址将封装后数据发送给所述目标控制器。当分布式设备进行内部控制器间通信时,将控制器号作为目的地址来进行数据传输,即通过控制器号来进行分布式设备的内部通信,减少了 IP地址资源的占用,清晰地区分了分布式设备的内部通信与外部通信,避免了 IP地址资源混淆和冲突,更便于分布式设备在网络中的部署。
【附图说明】
[0033]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0034]图1为本发明实施例提供的分布式设备内部控制器间数据传输方法的流