一种轻量化的树形网络数据转发方法与流程

文档序号:31532999发布日期:2022-09-16 21:13阅读:30来源:国知局
一种轻量化的树形网络数据转发方法与流程

1.本发明涉及数据通信技术领域,更具体的说是涉及一种轻量化的树形网络数据转发方法。


背景技术:

2.目前,数据交换最流行的解决方案是以太网交换和ip交换。以太网交换工作在tcp/ip协议栈的第二层即数据链路层。以太网交换机通过学习各个端口进入数据的源mac地址建立转发表。以太网交换机的转发逻辑是根据进入数据包的目的mac地址进行查表,找到出接口进行发送。ip交换工作在tcp/ip协议栈的第三层即网络层。ip交换机通过路由协议来学习并建立转发表。ip交换机的转发逻辑是根据进入数据包的目的ip地址进行查表,通过最长掩码匹配找到出接口进行发送。
3.以太网交换不支持链路自动按带宽优选,数据转发路径也不一定是最优路径,不适合广域网环境的应用。ip交换虽然适合广域网环境,但是需要进行网络规划,配置接口ip地址,对网络管理人员素质要求较高,同时ip交换机需要cpu以运行操作系统、路由协议和tcp/ip协议栈,软硬件成本较高。
4.除了以太网交换和ip交换,其他交换技术还包括同步转发模式交换、异步转发模式交换、标签交换,这些交换方案的技术复杂度较高,需要适配运维管理进行开通和维护。
5.因此,如何提供一种结构简单且易于工程实现的网络数据转发方法是本领域技术人员亟需解决的问题。


技术实现要素:

6.基于背景技术中述及的实际问题,本发明提出了一种方法可以由单片机和逻辑器件组成设备来构建树形网络的数据交换节点,通过特定的规则完成数据在树形网络内的转发。
7.为了实现上述目的,本发明采用如下技术方案:
8.一种轻量化的树形网络数据转发方法,其特征在于,所述方法包括:
9.s1、以数据交换节点为节点构建多层级树形网络;
10.s2、在多层级树形网络中构建各数据交换节点面向数据终端的主机转发表、面向上级节点的上级转发表及面向下级节点的下级转发表;
11.s3、向与初始数据终端相连的数据交换节点发送数据,查询当前数据交换节点的主机转发表,判断主机转发表中是否存在与目的数据终端网络编址相同的终端网络编址,若存在,则通过当前数据交换节点将数据转发给目的数据终端;
12.s4、若当前数据交换节点的主机转发表中不存在与目的数据终端网络编址相同的终端网络编址,则根据当前数据交换节点的层级判断目的数据终端的网络编址与当前数据交换节点的网络编址是否存在相同的掩码;
13.若目的数据终端的网络编址与当前数据交换节点的网络编址存在相同的掩码,则
查询当前数据交换节点的下级转发表,根据下级节点层级确定与目的数据终端网络编址具有相同掩码的下级节点网络编址,并将数据转发给所述下级节点网络编址对应的下级节点;
14.若目的数据终端的网络编址与当前数据交换节点的网络编址不存在相同的掩码,则查询当前数据交换节点的下级转发表,将数据转发给当前数据交换节点对应的上级节点;
15.s5、重复步骤s3-s4直至将数据转发至目的数据终端。
16.优选的,步骤s2中构建主机转发表、上级转发表及下级转发表具体包括:
17.数据交换节点定时向各个数据终端接口发送查询报文,各个数据终端回复终端信息给数据交换节点,通过单片机将终端信息写入数据交换节点的主机转发表,所述终端信息包括终端网络编址、终端ip地址、终端物理接口地址以及数据交换节点面向数据终端的外出接口号;
18.数据交换节点定时向多层级树形网络中的其他数据交换节点的中继接口发送邻居探测数据包,所述邻居探测数据包携带当前数据交换节点的层级,根据层级判断其他数据交换节点是当前数据交换节点的上级节点还是下级节点,其中,上级节点回复上级节点信息给当前数据交换节点,通过单片机将上级节点信息写入当前数据交换节点的上级转发表,所述上级节点信息包括数据交换节点面向上级节点的接口号以及上级节点物理接口地址;
19.下级节点回复下级节点信息给当前数据节点,通过单片机将下级节点信息写入当前数据交换节点的下级转发表,所述下级节点信息包括数据交换节点面向下级节点的接口号、下级节点网络编址、下级节点层级以及下级节点物理接口地址。
20.优选的,步骤s3中通过当前数据交换节点将数据转发给目的数据终端,具体包括:
21.当前数据交换节点接收数据对应的数据报文,将数据报文的“目的数据终端物理接口地址”替换为当前数据交换节点主机转发表中的终端物理接口地址,将报文的“目的数据终端ip地址”替换为当前数据交换节点主机转发表中的终端ip地址,并根据主机转发表中数据交换节点面向数据终端的外出接口号获取当前数据交换节点外出接口的ip地址和物理接口地址,以当前数据交换节点外出接口的ip地址和物理接口地址分别替换数据报文的源ip地址和源物理接口地址,进行数据报文ip头部校验后将数据转发给目的数据终端。
22.优选的,查询主机转发表、下级转发表或上级转发表之前还包括步骤:校验目的数据终端的物理接口地址是否与当前数据交换节点的物理接口地址相匹配,若不匹配则丢弃该数据对应的数据包。
23.优选的,步骤s4中根据当前数据交换节点的层级判断目的数据终端的网络编址与当前数据交换节点的网络编址是否存在相同的掩码,具体包括:
24.以当前数据交换节点的层级n为数位,取目的数据终端网络编址的开始n位编码作为第一掩码,取当前数据交换节点的网络编址的开始n位编码作为第二掩码,比较第一掩码是否与第二掩码相同。
25.本发明的有益效果是:本发明通过搭建由数据交换节点构成的多层级树形网络并建立数据交换节点对应的主机转发表、上级转发表和下级转发表,首先查询主机转发表,并根据网络编址判断查询上级转发表及下级转发表,最终完成数据的转发,相较于现有的查
询整体数据转发表的数据转发转发方法,本发明结构简单,便于维护并且易于在工程上实现。
附图说明
26.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
27.图1网络编址规则示意。
28.图2主机转发表形成示意。
29.图3上级转发表和下级转发表示意。
30.图4数据向下转发流程示意。
31.图5数据向上转发流程示意。
具体实施方式
32.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
33.本实施例公开了一种轻量化的树形网络数据转发方法,包括:
34.s1、以数据交换节点为节点构建多层级树形网络;
35.s2、在多层级树形网络中构建各数据交换节点面向数据终端的主机转发表、面向上级节点的上级转发表及面向下级节点的下级转发表;
36.s3、向与初始数据终端相连的数据交换节点发送数据,查询当前数据交换节点的主机转发表,判断主机转发表中是否存在与目的数据终端网络编址相同的终端网络编址,若存在,则通过当前数据交换节点将数据转发给目的数据终端;
37.s4、若当前数据交换节点的主机转发表中不存在与目的数据终端网络编址相同的终端网络编址,则根据当前数据交换节点的层级判断目的数据终端的网络编址与当前数据交换节点的网络编址是否存在相同的掩码;
38.若目的数据终端的网络编址与当前数据交换节点的网络编址存在相同的掩码,则查询当前数据交换节点的下级转发表,根据下级节点层级确定与目的数据终端网络编址具有相同掩码的下级节点网络编址,并将数据转发给所述下级节点网络编址对应的下级节点;
39.若目的数据终端的网络编址与当前数据交换节点的网络编址不存在相同的掩码,则查询当前数据交换节点的下级转发表,将数据转发当前数据交换节点对应的上级节点;
40.s5、重复步骤s3-s4直至将数据转发至目的数据终端。
41.下面结合具体的实施例对本发明轻量化的树形网络数据转发方法进行详细的说明。
42.1、以数据交换节点为节点构建多层级树形网络。
43.数据交换节点构成树形转发网络中的节点,节点包括树根节点、中间节点和树叶节点,每一个数据交换节点均可与数据终端连接,数据交换节点之间通过中继接口相互连接。对树形转发网络中的数据交换节点和与数据交换节点相连接的数据终端进行数字化的网络编址,数据交换节点与数据终端网络编址规则保持一致,具体的网络编址可以分为四个组成部分:依次包括前缀、本层编号、后缀、终端编号。其中,表示树根节点的数据交换节点以及与树根节点相连接的数据终端的网络编址无前缀,其余节点的前缀为上级节点的前缀加上级节点的本层编号;本层编号是数据交换节点和数据终端在本层的唯一编号;后缀采用补0的方式统一网络编址长度,表示树叶节点的数据交换节点以及与树叶节点相连接的数据终端的网络编址无后缀;终端编号是为了区分不同的终端,数据交换节点的终端编号为0。
44.如图1的3层树形转发网络,网络编址即为4个数字组合而成。表示树根节点的数据交换节点网络编址为3-0-0-0,其中因树根节点无前缀,3是本层编号,后缀是0-0,因为是数据交换节点而不是数据终端所以网络编址最后一位的终端编号为0。终端3-0-0-1和3-0-0-5分别代表与树根节点相连的第1号数据终端和第5号数据终端的网络编址。
45.第二层:数据交换节点3-1-0-0,因为与其相连的上层数据交换节点(即节点3-0-0-0)是树根节点,而树根节点无前缀,所以数据交换节点3-1-0-0的上级节点的前缀不存在,该数据交换节点(3-1-0-0)前缀为上级节点的本层编号3;网络编址中1代表数据交换节点3-1-0-0的本层编号;后缀是0;因为节点3-1-0-0是数据交换节点而不是数据终端所以终端编号也是0。同样对于网络编址为3-5-0-0的数据交换节点,前缀为3,本层编号为5,后缀是0,因为是数据交换节点而不是数据终端所以终端编号也是0。3-1-0-1代表与当前数据交换节点3-1-0-0相连的第1号数据终端。
46.第三层:数据交换节点3-1-1-0,与其相连的上层数据交换节点为3-1-0-0,因此当前数据交换节点3-1-1-0的前缀为上级节点的前缀3加上级节点的本层编号1,即3-1是前缀;第2个1是当前数据交换节点3-1-1-0的本层编号,因为是树叶节点所以无后缀,因为是数据交换节点而不是数据终端所以终端编号也是0。3-1-1-1代表与当前数据交换节点3-1-1-0相连的第1号数据终端。
47.其余层级的树形转发网络中数据交换节点和与之相连的数据终端的网络编址方法与3层树形转发网络的网络编址方法相同,但是具体的网络编址数字位数存在差异。
48.2、通过终端维护过程形成主机转发表
49.数据交换节点定时向与该数据交换节点相连的各个数据终端接口发送查询报文,要求各个数据终端回复其网络编址,以便通过单片机给该数据交换节点中的逻辑器件写入主机转发表数据,主机转发表的数据内容是终端网络编址、当前数据交换节点外出接口号、终端以太网ip地址、终端以太网mac地址。
50.如图2,数据交换节点3-0-0-0以ip报文或者udp报文形式向与节点3-0-0-0相连的各个数据终端接口发送查询报文,各个数据终端回复的报文中携带该数据终端的网络编址,当收到3-0-0-1终端的回复报文时,根据回复报文提取终端3-0-0-1的终端以太网mac地址、终端以太网ip地址、终端网络编址,以形成终端3-0-0-1的主机转发表。同理,收到3-0-0-5终端的回复报文时,形成终端3-0-0-5的主机转发表。
51.3、通过邻居维护过程形成上级转发表和下级转发表
52.数据交换节点定时向与该数据交换节点相连的其他数据交换节点的中继接口发送邻居探测数据包,邻居探测数据包携带当前数据交换节点的网络编址和层级。其他数据交换节点接收到当前数据交换节点的网络编址和层级后,判断其他数据交换节点是当前数据交换节点的上级节点还是下级节点,层级的数值越小代表层级越高,同时其他数据交换节点返回携带自身网络编址、ip地址、mac地址以及对应的外出接口号信息的邻居维护数据包给当前数据交换节点。当同一个数据交换节点有多个下级节点连接时选择带宽最高的下级节点接口的作为最优的数据转发接口,如果多个下级节点接口带宽一致则可以随机选择下级数据转发接口。上级转发表仅一条内容,包括当前数据交换节点对应目标节点的外出接口号和上级数据交换节点mac地址(物理接口地址);下级转发表包含下级数据交换节点网络编址、下级数据交换节点层级,当前数据交换节点对应目标节点的外出接口号、下级数据交换节点mac地址(物理接口地址)。
53.如图3,数据交换节点3-5-0-0发送邻居探测数据包(包含节点3-5-0-0的网络编址及层级)到与其相连的所有数据交换节点,包括节点3-0-0-0、节点3-5-1-0及节点3-5-2-0的中继接口,同时节点3-0-0-0、节点3-5-1-0及节点3-5-2-0均返回包含各自网络编址、ip地址、mac地址以及对应的外出接口号等信息的邻居维护数据包给数据交换节点3-5-0-0。
54.节点3-0-0-0接收到数据交换节点3-5-0-0发送的邻居探测数据包,提取邻居探测数据包中的网络编址3-5-0-0与层级2,根据层级判断节点3-0-0-0是3-5-0-0的上级节点还是下级节点,节点3-0-0-0的自身层级1,因为层级1比数据交换节点3-5-0-0的层级2小,所以判断节点3-0-0-0是当前数据交换节点3-5-0-0的上级节点,当前数据交换节点3-5-0-0从邻居维护数据包信息中获取节点3-0-0-0的上级数据交换节点物理接口地址(mac地址),将当前数据交换节点对应目标节点的外出接口号和上级数据交换节点物理接口地址写入当前数据交换节点3-5-0-0的上级转发表。图3用以太网接口示意,因此物理接口地址是以太网mac地址。
55.节点3-5-1-0接收到数据交换节点3-5-0-0发送的邻居探测数据包,提取邻居探测数据包中的网络编址3-5-0-0与层级2,因为节点3-5-1-0层级为3,大于当前数据交换节点3-5-0-0的层级2,所以判断节点3-5-1-0是当前数据交换节点3-5-0-0的下级节点,当前数据交换节点3-5-0-0从下级节点3-5-1-0返回的邻居维护数据包相关信息中获取下级节点3-5-1-0的物理接口地址后将下级节点的节点网络编址、下级数据交换节点层级、当前数据交换节点对应目标节点的外出接口号、下级数据交换节点的物理接口地址写入下级转发表中。
56.节点3-5-2-0经判断之后同样为当前数据交换节点3-5-0-0的下级节点,数据交换节点3-5-0-0从下级节点3-5-2-0返回的邻居维护数据包相关信息中获取下级节点3-5-2-0的物理接口地址后将下级节点3-5-2-0的节点网络编址、下级数据交换节点层级、当前数据交换节点对应目标节点的外出接口号、下级数据交换节点的物理接口地址写入另外的下级转发表中。图3用以太网接口示意,因此物理接口地址是以太网mac地址。下级节点有两个,因此当前数据交换节点3-5-0-0可写入两条下级转发表,在其他实施例中与同一个数据交换节点相连的下级节点不止两个,因此数据交换节点可同时具有多条下级转发表。
57.4、数据转发规则
58.首先,获取接收数据报文的目的物理接口地址,如果不是接收接口的物理地址将
丢弃该数据包。
59.其次,获取接收数据报文的目的网络编址,以目的网络编址为索引进行主机转发表的查表,如果匹配成功,根据匹配的结果,以表中的“终端以太网接口mac地址”替换转发数据包的目的mac地址,以表中“终端以太网接口ip地址”替换转发数据包的目的ip地址,并根据表中接口号获取本方出接口以及该接口的ip地址和mac地址,分别替换转发报文的源ip地址和源mac地址,重新进行ip头部的校验后进行转发。
60.最后,如果上面查表未匹配,则以节点的层级位数作为掩码来比较目的网络编址和自身网络编址,如果比较的结果不同则按照上级转发表的内容进行数据转发;如果比较的结果相同则继续查下级转发表,查表的规则以下级表每个表项的层级作为掩码来比较目的网络编址和表内的下级节点号,匹配成功后转发。
61.如图4描述与数据交换节点3-0-0-0(树根节点)相连的数据终端3-0-0-1发送数据报文到目的数据终端3-1-1-1的过程。首先数据交换节点3-0-0-0收到数据报文后检查目的mac地址是否匹配,匹配成功后进行主机转发表的查询,以目的数据终端3-1-1-1的网络编址为索引进行当前数据交换节点(树根节点3-0-0-0)的主机转发表的查询,以目的数据终端3-1-1-1的网络编址为索引进行当前数据交换节点(树根节点3-0-0-0)主机转发表的查询,因为树根节点3-0-0-0的主机转发表内无3-1-1-1数据终端的网络编址,因此进行树根节点3-0-0-0的上级转发表和下级转发表的查表,根据当前数据交换节点3-0-0-0的层级1,确定掩码为当前数据交换节点3-0-0-0网络编址的开始前1位数字编码3,以数字编码3作为掩码比较目的网络编址3-1-1-1和自身网络编址3-0-0-0的前1位数字编码,因为相同进入当前数据交换节点3-0-0-0的下级转发表查表过程,当前数据交换节点3-0-0-0的下级节点层级是2,因此以目的数据终端3-1-1-1网络编址的前2位数字编码3-1作为掩码,与当前数据交换节点3-0-0-0的多个下级转发表中下级数据交换节点网络编址的前2位数字编码相比较,若相同,由对应的下级转发表中的物理接口地址替换为报文的目的物理接口地址,此处以以太网mac地址示意,通过该下级转发表中当前数据交换节点对应目标节点的外出接口号将数据包发送到对应的下级数据交换节点3-1-0-0。
62.下级数据交换节点3-1-0-0收到数据报文后检查目的mac地址是否匹配,匹配成功后进行主机转发表查询,因为3-1-0-0节点的主机转发表内无3-1-1-1数据终端的网络编址,进行3-1-0-0节点上下级查表。以3-1-0-0节点的当前层级位数2确定掩码为当前数据交换节点3-0-0-0网络编址的开始前2位数字编码3-1,以3-1作为掩码比较目的数据终端的网络编址3-1-1-1和当前数据交换节点的自身网络编址3-1-0-0的前两位,结果都为3-1,因为相同进入当前数据交换节点3-1-0-0下级转发表查表过程。前数据交换节点3-1-0-0下级节点层级是3,因此以目的数据终端3-1-1-1网络编址的前3位数字编码3-1-1作为掩码,与当前数据交换节点3-1-0-0的多个下级转发表中下级数据交换节点网络编址的前3位数字编码相比较,若相同,由前数据交换节点3-1-0-0的下级转发表中的掩码相同的下级数据交换接口mac地址替换为报文的目的mac地址,此处以以太网mac地址示意,通过该下级转发表中当前数据交换节点对应目标节点的外出接口号将数据包发送到对应的下级数据交换节点3-1-1-0。
63.下级数据交换节点3-1-1-0节点收到数据报文后检查目的mac地址是否匹配,匹配成功后进行主机转发表查表,因为3-1-1-0节点主机转发表存在目的数据终端3-1-1-1的网
络编址,3-1-1-0节点主机转发表能匹配成功,根据匹配的结果,以3-1-1-0节点主机转发表中的“终端以太网接口mac地址”替换转发数据包的目的mac地址,以3-1-1-0节点主机转发表中“终端以太网接口ip地址”替换转发数据包的目的ip地址,并根据3-1-1-0节点主机转发表中接口号获取本方出接口以及该接口的ip地址和mac地址,分别替换转发报文的源ip地址和源mac地址,重新进行ip头部的校验后进行转发,将数据报文对应的数据转发到目的数据终端3-1-1-1。
64.至此,3-0-0-1终端发送到3-1-1-1终端的以太网数据包被正确的转发到目的地。
65.如图5描述与数据交换节点3-1-1-0(树叶节点)相连的数据终端3-1-1-1发送数据报文到目的数据终端3-0-0-5的过程。首先数据交换节点3-1-1-0收到3-1-1-1发送的数据报文后检查目的mac地址是否匹配,匹配成功后进行树叶节点3-1-1-0的主机转发表的查表,判断数据交换节点3-1-1-0的主机转发表内是否存在3-0-0-5数据终端的目的网络编址,因不存在,因此进行上级转发表和下级转发表的查表。以当前数据交换节点3-1-1-0的层级3确定掩码为当前数据交换节点3-1-1-0网络编址的开始前3位数字编码3-1-1,以数字编码3-1-1作为掩码比较目的网络编址3-0-0-5和自身网络编址3-1-1-0前三位数字编码,结果分别是3-0-0和3-1-1,因为结果不相同进入当前数据交换节点3-1-1-0上级转发表查表过程。如果上级转发表有表项,说明当前数据交换节点3-1-1-0存在上级节点3-1-0-0,将数据终端3-1-1-1的目的物理接口地址改写成当前数据交换节点3-1-1-0中上级转发表的物理接口地址,此处以以太网接口mac地址示意,通过上级转发表中当前数据交换节点3-1-1-0对应目标节点(3-1-0-0)的外出接口号转发数据包。
66.数据交换节点3-1-0-0收到节点3-1-1-0发送的转发数据包对应的数据报文后后,检查目的物理接口地址(物理mac地址)是否匹配,匹配成功后进行节点3-1-0-0的主机转发表查询,因为节点3-1-0-0主机转发表内无3-0-0-5终端的目的网络编址,因此进行上级转发表和下级转发表的查表。以当前数据交换节点3-1-0-0的层级2确定掩码为当前数据交换节点3-1-0-0网络编址的开始前2位数字编码3-1,以数字编码3-1作为掩码比较目的网络编址3-0-0-5和自身网络编址3-1-0-0前2位数字编码,结果分别是3-0和3-1,因为结果不相同进入当前数据交换节点3-1-0-0上级转发表查表过程,如果上级转发表有表项,说明当前数据交换节点3-1-0-0存在上级节点3-0-0-0,将数据终端3-1-1-1的目的物理接口地址改写成当前数据交换节点3-1-0-0中上级转发表的物理接口地址,此处以以太网接口mac地址示意,通过上级转发表中当前数据交换节点3-1-1-0对应目标节点(3-1-0-0)的外出接口号转发数据包到上级数据交换节点。
67.上级数据交换节点3-0-0-0收到节点3-1-0-0发送的转发数据包对应的数据报文后,检查目的目的物理接口地址(物理mac地址)是否匹配,匹配成功后进行数据交换节点3-0-0-0的主机转发表查询,因为节点3-0-0-0主机转发表中存在数据终端3-0-0-5的目的网络编址,节点3-0-0-0主机转发表匹配成功,根据匹配的结果,以节点3-0-0-0主机转发表中的“终端以太网接口mac地址”替换转发数据包的目的mac地址,以节点3-0-0-0主机转发表中“终端以太网接口ip地址”替换转发数据包的目的ip地址,并根据主机转发表中当前数据交换节点对应目标节点的外出接口号获取目的数据终端3-0-0-5的外出接口以及该接口的ip地址和mac地址,分别替换转发报文的源ip地址和源mac地址,重新进行ip头部的校验后将对应的数据发送给数据终端3-0-0-5。
68.至此,3-1-1-1终端发送到3-0-0-5终端的以太网数据包被正确的转发到目的地。
69.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
70.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1