基于IP/MAC交换的地址解析映射方法与流程

文档序号:18267827发布日期:2019-07-27 09:20阅读:405来源:国知局
基于IP/MAC交换的地址解析映射方法与流程

本发明涉及通信技术领域,特别涉及一种基于ip/mac交换的地址解析映射方法。



背景技术:

在一个子网内,主机间欲要通信,必须获知通信目标的ip地址及mac地址,一般使用地址解析协议(arp协议)获取已知ip的主机其对应mac地址。其流程如下:若a欲与b通信,已知b的ip地址,在本地arp缓存表中寻找对应的mac地址,若无,则在子网广播一个arp请求,包含b的ip,自身的ip及mac。b收到广播后回复arp应答,包含自身ip及mac。a得到b的mac地址和才能往b发送数据包。

但arp协议只能应用于同一子网中设备,且设备间必须能监听到所有节点的广播。对于多跳网络,单个节点的广播可能无法传递到所有节点,传统arp协议不再适用。相关技术中存在的方法是在每个多跳节点维护整个多跳网络的拓扑,构建路由表,根据已有路由表查找路径。有arp请求时查表得到目的节点,根据路由表发送arp请求,并在包中记录沿途节点,一路转发到目的节点。得到目的节点的arp应答后将结果记入本地缓存的arp表。

这种方法适用于多跳网络的arp,但缺点在于只适用于修改过部分代码的多跳节点,不能在网络中加入使用未经过修改的普通网络设备,即拓展性不高。由于多跳节点的部署相比普通网络设备成本更大,但普通网络设备的功能多样是单一多跳节点所不及。故若将多跳节点作为普通网络设备的接入点,将普通设备直连多跳节点后就能加入整个网络,将大大拓展网络的功能性。

现有连接全连接网络及多跳网络的方法一般是在多跳网络节点实施arp代理,为每个全连接网络分配不同的子网。这一方法的缺点在于每个全连接网络都需要分配不同的子网,当全连接网络数量众多但每个网络中设备数量很少时这一方法显得复杂且冗余。

传统的arp方法及使用于多跳网络的arp方法均不能使得普通网络设备通过直连多跳节点加入网络,而arp代理则需要复杂的子网分配过程。所以十分需要一种能够结合普通全连接网络与多跳网络的arp方法,每个节点的ip能够在同一子网,使得不仅修改过部分代码的多跳网络间能够通过arp协议获取各自mac地址与ip映射关系,多跳节点挂载的全连接网络设备不需要修改任何协议,直接连上多跳节点,就能通过这种方式向全网发送arp请求与获得应答。



技术实现要素:

本发明旨在至少在一定程度上解决相关技术中的技术问题之一。

为此,本发明的目的在于提出一种基于ip/mac交换的地址解析映射方法,该方法能够结合普通全连接网络与多跳网络的arp方法,不论是多跳节点还是全连接网络节点,都不需要修改其arp协议,大大提高了网络的可拓展性。

为达到上述目的,本发明提出了基于ip/mac交换的地址解析映射方法:包括以下步骤:包括以下步骤:步骤s1,分配每个多跳节点的ip地址,其中,所述每个多跳节点的ip地址属于同一个子网;步骤s2,控制所述每个多跳节点周期性发送广播包,所述广播包包含本地全网拓扑表、本地各个节点的ip/mac地址表,以更新所述本地全网拓扑与所述本地各节点的ip/mac地址表;步骤s3,若所述每个多跳节点收到自身的apr请求,则查询本地ip/mac地址表,若查询有对应项,则伪造arp应答直接回复,否则向无线多跳网络和直连全连接网络广播,若所述每个多跳节点收到直连全连接网络的arp请求,则查询所述本地ip/mac地址表,若查询有对应项,则伪造arp应答直接回复,否则向无线多跳网络广播;步骤s4,在所述每个多跳节点收到连接的全连接网络设备的arp请求或应答时,根据arp包中的ip/mac更新所述本地ip/mac表;步骤s5,在所述每个多跳节点收到无线多跳网络发来的arp请求包时,向全连接网络及无线多跳网络转发该广播;步骤s6,在得到所述arp应答包之后,记录mac/ip表项,若最终目的节点为自身,则接受,若下一跳节点为自身且所述最终目的不是自身,则根据目的地址查询所述本地ip/mac表与所述本地全网拓扑表,并进行转发;以及步骤s7,确定所述ip地址与所述mac地址映射关系,根据拓扑与ip/mac表查找所述最终目的节点以进行多跳节点间的通信,并转发规划路径,以使多跳网络节点连接全连接网络,实现整个网络范围内的地址解析映射。

本发明实施例的基于ip/mac交换的地址解析映射方法,通过结合无线多跳网络与全连接网络的异构网络,能够使得多跳网络节点连接全连接网络,实现整个网络范围内的地址解析映射,同时确保不论是多跳节点还是全连接网络节点,都不需要修改其arp协议,普通网络设备直接挂载上多跳网络节点即可通过arp协议获取目标地址,进而进行全网的通信。

另外,根据本发明上述实施例的基于ip/mac交换的地址解析映射方法还可以具有以下附加的技术特征:

进一步地,本发明实施例还包括:判断ip/mac表项更新是否出现冲突;如果ip/mac表项的更新出现冲突,则删除旧信息,并保留新信息。

进一步地,在本发明的一个实施例中,初始化的所述本地ip/mac地址表中仅含有自身的mac地址与ip地址,需通过接收其他广播包更新所述本地ip/mac地址表,存储其余节点的ip/mac信息。

进一步地,在本发明的一个实施例中,通过直连全连接网络设备的arp请求或应答来存储设备对应的ip/mac信息。

可选地,在本发明的一个实施例中,所述步骤s3具体包括:多跳节点底层接收其余无线多跳网络广播的arp请求,根据arp请求中信息查询所述本地ip/mac地址表;若存在对应的ip地址,则直接用对应的ip/mac信息伪造一个arp应答返回上层或全连接网络;若不存在对应的ip地址,则所述最终目的节点未加入网络或者ip/mac信息未同步到无线多跳网络中,则向无线多跳网络和直连全连接网络广播。

可选地,在本发明的一个实施例中,所述步骤s3具体还包括:多跳节点底层接收直连全连接网络的arp请求,根据arp请求中信息查询所述本地ip/mac地址表;若存在对应的ip地址,则直接用对应的ip/mac信息伪造一个arp应答直接回复;若不存在对应的ip地址,则向无线多跳网络广播,不再向直连全连接网络广播。

进一步地,在本发明的一个实施例中,所述多跳节点底层接收到其余无线多跳网络广播的arp请求时,因自身ip/mac理应通过周期性广播同步到各个多跳节点,故目的ip地址是自身的arp请求已经通过源多跳节点的伪造arp应答答复,故收到的arp请求所述目的ip地址不再是自身。

进一步地,在本发明的一个实施例中,若所述最终目的节点为其余多跳节点或其余全连接网络,则查询所述本地全网拓扑表设置下一跳,继续向无线多跳网络广播。

本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1为根据本发明实施例的基于ip/mac交换的地址解析映射方法流程图;

图2为根据本发明实施例的多跳网络与全连接网络连接示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

下面参照附图描述根据本发明实施例提出的基于ip/mac交换的地址解析映射方法。

图1是本发明一个实施例的基于ip/mac交换的地址解析映射方法流程图。

如图1所示,该基于ip/mac交换的地址解析映射方法包括以下步骤:

在步骤s1中,分配每个多跳节点的ip地址,其中,每个多跳节点的ip地址属于同一个子网。

在步骤s2中,控制每个多跳节点周期性发送广播包,广播包包含本地全网拓扑表、本地各个节点的ip/mac地址表,以更新本地全网拓扑与本地各节点的ip/mac地址表。

进一步地,在本发明的一个实施例中,初始化的本地ip/mac地址表中仅含有自身的mac地址与ip地址,可通过接收其他广播包更新本地ip/mac地址表,存储其余节点的ip/mac信息。

也就是说,多跳节点周期性发送广播包,广播包内包含本地维护的ip/mac表,每一项代表一个ip地址及其对应的mac地址;此外包中还有自身已知全网拓扑。初始时表中只含自身mac地址与ip地址,通过接受其他广播包可以更新本地的ip/mac表,存储其余节点的ip/mac信息,同时可以通过直连的全连接网络设备的arp请求或应答来加入该设备对应的ip/mac信息。同时接受节点也会根据广播包中的拓扑信息更新本地拓扑结构。如此更新,可保证多跳节点的ip/mac对应关系以及进行过arp请求或应答的全连接网络设备的ip/mac信息在所有多跳节点都有存储。

在步骤s3中,若每个多跳节点收到自身的apr请求,则查询本地ip/mac地址表,若查询有对应项,则伪造arp应答直接回复,否则向无线多跳网络和直连全连接网络广播,若每个多跳节点收到直连全连接网络的arp请求,则查询本地ip/mac地址表,若查询有对应项,则伪造arp应答直接回复,否则向无线多跳网络广播。

可选地,在本发明的一个实施例中,步骤s3具体包括:

多跳节点底层接收其余无线多跳网络广播的arp请求,根据arp请求中信息查询本地ip/mac地址表;

若存在对应的ip地址,则直接用对应的ip/mac信息伪造一个arp应答返回上层或全连接网络;

若不存在对应的ip地址,则最终目的节点未加入网络或者ip/mac信息未同步到无线多跳网络中,则向无线多跳网络和直连全连接网络广播。

可选地,在本发明的一个实施例中,步骤s3具体还包括:多跳节点底层接收直连全连接网络的arp请求,根据arp请求中信息查询本地ip/mac地址表;

若存在对应的ip地址,则直接用对应的ip/mac信息伪造一个arp应答直接回复;

若不存在对应的ip地址,则向无线多跳网络广播,不再向直连全连接网络广播。

换句话说,多跳节点底层接受其余传来的arp请求(即节点自身发起的arp请求)或全连接网络通过网线发来的arp请求时,先根据arp请求中信息查询本地的ip/mac表,若存在对应的ip地址,则直接用对应的ip/mac信息伪造一个arp应答返回上层或全连接网络。若本地查表没有找到对应关系,则目标节点可能没有加入网络或者其ip/mac信息未同步到网络中,且由于多跳节点的ip/mac表必会同步到所有多跳节点,故目标节点若非未加入网络的多跳节点,就是还未进行过arp请求或应答的其余多跳节点挂载的全连接网络设备。该多跳节点即向无线多跳网络广播此arp请求。

其中,多跳节点底层接收到无线多跳网络广播的arp请求时,由于目的ip是自身的arp请求已经通过源多跳节点的伪造arp答复,故收到的arp请求目的ip不可能是自身。该节点直接向多跳网络及直连全连接网络广播该arp请求。经过多次广播后,若arp请求的最终目的节点在网络中,一定能收到arp请求,从而回复arp应答。

在步骤s4中,在每个多跳节点收到连接的全连接网络设备的arp请求或应答时,根据arp包中的ip/mac更新本地ip/mac表。

关于arp应答,具体来讲,由于多跳节点的ip/mac已经传递给其余多跳节点了,其arp应答在收到arp请求的多跳节点底层伪造且发送回上层或全连接网络。故只有全连接网络设备会向多跳网络发送arp应答包。多跳节点收到arp应答包后,更新本地ip/mac信息,再根据应答包的最终地址查询拓扑表进行发送,该部分处理方式与普通数据包一样。

在步骤s5中,在每个多跳节点收到无线多跳网络发来的arp请求包时,向全连接网络及无线多跳网络转发该广播。

在步骤s6中,在得到arp应答包之后,记录mac/ip表项,若最终目的节点为自身,则接受,若下一跳节点为自身且最终目的不是自身,则根据目的地址查询本地ip/mac表与本地全网拓扑表,并进行转发。

具体地,多跳节点收到全连接网络发送的数据包时,查询本地ip/mac地址表获知其最终目的节点,根据本地全网拓扑表设置下一跳节点,向无线多跳网络转发。多跳节点收到其余多跳节点传来的下一跳节点为自身的数据包时,若查询本地ip/mac地址表得知最终目的节点是自身,则交给上层处理。若最终目的节点是直连全连接网络设备,则向全连接网络转发。若最终目的节点是其余多跳节点或其余全连接网络,则查询路由表设置下一跳节点,继续向无线多跳网络转发。

在步骤s7中,确定ip地址与mac地址映射关系,根据拓扑与ip/mac表查找最终目的节点以进行多跳节点间的通信,并转发规划路径,以使多跳网络节点连接全连接网络,实现整个网络范围内的地址解析映射。

进一步地,本发明实施例还包括:判断ip/mac表项更新是否出现冲突;

如果ip/mac表项的更新出现冲突,则删除旧信息,并保留新信息。

也就是说,本地ip/mac地址表的更新需要按时间顺序。若更新时发现与已有的ip或mac重复,则删除旧项,更新新的表项,确保ip/mac地址表的时效性。

综上可知,本发明实施例只需要修改多跳节点的下层处理过程,且不需要修改arp协议,即可实现多跳网络间,多跳网络设备直连的全连接网络间互相进行地址解析映射,继而进行通信。同时,全连接网络的普通设备不需要做任何更改,只要分配好同一子网的ip,连接进全连接网络就能进行全网通信,没有额外成本。且由于ip/mac表的同步更新,可以由多跳节点直接伪造arp应答回复,节省许多arp广播造成的带宽浪费,大大提高了网络的可拓展性。

下面对本发明实施例的实施步骤进行具体描述,其中,可结合图2进行理解,但图2仅为异构网络的示例,发明实施例在此不做具体限定。

(1)初始阶段,分配好各个节点的ip地址,所有节点ip属于同一子网。

(2)各个多跳节点周期性发送广播包,包含本地存的全网拓扑、本地存的各个节点的ip/mac地址表,接收到的多跳节点据此更新本地存的全网拓扑与各节点ip/mac地址表。

(3)多跳节点收到自身或直连全连接网络的arp请求,查询本地ip/mac地址表,若有对应项则伪造arp应答直接回复,若无则向无线多跳网络和直连全连接网络广播。

(4)多跳节点收到其连接的全连接网络设备的arp请求或应答,都会根据arp包中的ip/mac更新本地ip/mac表。

(5)多跳节点收到多跳网络发来的arp请求包,会向全连接网络及多跳网络转发该广播。

(6)多跳节点对于arp应答包的处理,除记录mac/ip表项外,与数据包一样。最终目的节点为自身则接受,下一跳节点为自身但最终目的不是自身,则根据目的地址,查询mac/ip表与本地拓扑,进行转发。

(7)通过上述方法得知ip与mac地址映射关系后,多跳节点间的通信只需根据拓扑与ip/mac表查找最终目的节点,并规划路径转发即可。全连接网络中设备发送的包经过其连接的多跳节点同样根据目的ip/mac地址进行发送,接收则由其连接的多跳节点判别:若目的ip/mac在本地ip/mac表内且非自身ip/mac地址,则向以太网端口转发,否则直接进行接收。

(8)ip/mac表项的更新若出现冲突,则删除旧信息,保留新信息。

根据本发明实施例提出的基于ip/mac交换的地址解析映射方法,通过结合无线多跳网络与全连接网络的异构网络,能够使得多跳网络节点连接全连接网络,实现整个网络范围内的地址解析映射,同时确保不论是多跳节点还是全连接网络节点,都不需要修改其arp协议,普通网络设备直接挂载上多跳网络节点即可通过arp协议获取目标地址,进而进行全网的通信。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1