数据包的转发方法及装置、存储介质、电子设备与流程

文档序号:36169939发布日期:2023-11-24 02:57阅读:25来源:国知局
数据包的转发方法及装置与流程

本技术实施例涉及信息传输领域,具体而言,涉及一种数据包的转发方法及装置、存储介质、电子设备。


背景技术:

1、路由算法分为最短路径算法(如图1中的a所示,其中,图中的圆圈为路由节点)和自适应性算法,自适应路由算法的原则是:在路由过程中优先选择最短路径,最短路径被占用的情况下可以根据网络状况和规则选择路由路径(如图1中的b所示)。在基于路由的网络中,如果使用最短路径算法,算法简单且不会产生死锁,但是却不能根据网络的繁忙情况调整路由路径,如果使用自适应路由算法,增加了路径多样性但是因为网络拓扑结构含有“环”容易产生死锁,如图2所示,其是一个环形拓扑,如果使用自适应路由算法很容易产生死锁。

2、例如,假设同时有三个路由请求:请求1:一级路由节点0到一级路由节点1;请求2:二级路由节点0到一级路由节点0;请求3:一级路由节点1到二级路由节点0;这三个路由请求的最短路径都被占用都选择了顺时针路由,且都已经占用中间路由节点时,就产生了死锁,具体如图3所示。

3、例如,假设同时有三个路由请求:请求1:一级路由节点0到二级路由节点0;请求2:一级路由节点1到一级路由节点0;请求3:二级路由节点0到一级路由节点1;这三个路由请求的最短路径都被占用都选择了逆时针路由,且都已经占用中间路由节点时,就产生了死锁,具体如图4所示。

4、针对相关技术中,在基于路由的网络中存在环型拓扑结构的情况下,使用自适应路由算法进行报文转发很容易产生死锁的问题,目前尚未提出有效的解决方案。

5、因此,有必要对相关技术予以改良以克服相关技术中的所述缺陷。


技术实现思路

1、本技术实施例提供了一种数据包的转发方法及装置、存储介质、电子设备,以至少解决在基于路由的网络中存在环型拓扑结构的情况下,使用自适应路由算法进行报文转发很容易产生死锁的问题。

2、根据本技术的一个实施例,提供了一种数据包的转发方法,包括:在目标网络中的第一路由节点获取到目标数据包的情况下,确定所述目标数据包中是否携带有转发标识,其中,所述转发标识用于指示所述目标数据包的转发方式;在所述目标数据包中未携带所述转发标识的情况下,判断所述目标数据包是否需要转发至所述目标网络中的路由节点;在判断出所述目标数据包需要转发至所述目标网络中的路由节点的情况下,确定转发路由节点以及对应的转发标识;在所述目标数据包中设置所述转发标识,并根据所述转发标识向所述转发路由节点转发所述目标数据包;在所述目标数据包中携带有所述转发标识的情况下,根据所述第一路由节点的节点类型、第二路由节点的节点类型和所述转发标识对所述目标数据包进行转发,其中,所述第二路由节点为所述目标网络中向所述第一路由节点发送所述目标数据包的节点。

3、在一个示例性的实施例中,所述目标网络中包括多个路由节点,所述多个路由节点包括:第一类型的路由节点、第二类型的路由节点、第三类型的路由节点;所述目标网络中的每个第二类型的路由节点与两个第一类型的路由节点相连、且与所述两个第一类型的路由节点中的每个路由节点之间具有两条数据传输通道,所述两个第一类型的路由节点之间具有两条数据传输通道,所述目标网络中的每个第二类型的路由节点与所述目标网络中的每个第三类型的路由节点相连,所述目标网络中的每个第一类型的路由节点与目标数量的端口相连,其中,所述端口用于接收和发送数据包。

4、在一个示例性的实施例中,判断所述目标数据包是否需要转发至所述目标网络中的路由节点,包括:从所述目标数据包中获取源端口的源端口号以及目标端口的目标端口号,其中,所述目标数据包为所述第一路由节点从所述源端口获取到的数据包,所述目标数据包待转发至所述目标端口;根据所述源端口号与所述目标端口号判断所述源端口和所述目标端口在所述目标网络中对应的第一类型的路由节点是否相同;在所述源端口和所述目标端口在所述目标网络中对应的第一类型的路由节点不相同的情况下,判断出所述目标数据包需要转发至所述目标网络中的路由节点。

5、在一个示例性的实施例中,所述方法还包括:在所述源端口和所述目标端口在所述目标网络中对应的第一类型的路由节点相同的情况下,判断出所述目标数据包不需要转发至所述目标网络中的路由节点;通过所述第一路由节点向所述目标端口转发所述目标数据包。

6、在一个示例性的实施例中,确定转发路由节点以及对应的转发标识,包括:根据所述源端口号与所述目标端口号判断所述源端口和所述目标端口在所述目标网络中对应的第二类型的路由节点是否相同;在所述源端口和所述目标端口在所述目标网络中对应的第二类型的路由节点不相同的情况下,确定所述第一路由节点与第三路由节点之间的数据传输通道是否被占用,其中,所述第三路由节点为所述目标网络中与所述第一路由节点直接相连的第二类型的路由节点;根据所述第一路由节点与第三路由节点之间的数据传输通道的占用情况确定转发路由节点以及对应的转发标识。

7、在一个示例性的实施例中,根据所述第一路由节点与第三路由节点之间的数据传输通道的占用情况确定转发路由节点以及对应的转发标识,包括:在所述第一路由节点与所述第三路由节点之间存在数据传输通道未被占用的情况下,确定转发路由节点为第三路由节点,并确定对应的转发标识为第一标识,其中,所述第一标识用于指示所述目标数据包基于最短路径进行转发;在所述第一路由节点与所述第三路由节点之间的数据传输通道均被占用的情况下,确定所述转发路由节点为第四路由节点,其中,所述第四路由节点为所述目标网络中与所述第一路由节点相连的所述第一类型的路由节点;在确定使用所述第一路由节点与所述第四路由节点之间的目标数据传输通道进行数据包传输的情况下,确定对应的转发标识为与所述目标数据传输通道对应的第二标识,其中,所述第二标识用于指示所述目标数据包未基于最短路径进行转发,且需使用所述目标数据传输通道进行转发。

8、在一个示例性的实施例中,所述方法还包括:在所述源端口和所述目标端口在所述目标网络中对应的第二类型的路由节点相同的情况下,确定所述第一路由节点与第四路由节点之间的数据传输通道是否被占用,其中,所述第四路由节点为所述目标网络中与所述第一路由节点相连的所述第一类型的路由节点;根据所述第一路由节点与第四路由节点之间的数据传输通道的占用情况确定转发路由节点以及对应的转发标识。

9、在一个示例性的实施例中,根据所述第一路由节点与第四路由节点之间的数据传输通道的占用情况确定转发路由节点以及对应的转发标识,包括:在所述第一路由节点与所述第四路由节点之间存在数据传输通道未被占用的情况下,确定转发路由节点为第四路由节点,并确定对应的转发标识为第一标识,其中,所述第一标识用于指示所述目标数据包基于最短路径进行转发;在所述第一路由节点与所述第四路由节点之间的数据传输通道均被占用的情况下,确定所述转发路由节点为第三路由节点,其中,所述第三路由节点为所述目标网络中与所述第一路由节点相连的所述第二类型的路由节点;在确定使用所述第一路由节点与第三路由节点之间的目标数据传输通道进行数据包传输的情况下,确定对应的转发标识为与所述目标数据传输通道对应的第二标识,其中,所述第二标识用于指示所述目标数据包未基于最短路径进行转发,且需使用所述目标数据传输通道进行转发。

10、在一个示例性的实施例中,根据所述源端口号与所述目标端口号判断所述源端口和所述目标端口在所述目标网络中对应的第一类型的路由节点是否相同,包括:将所述目标端口号除以第一阈值,得到第一结果;以及将所述源端口号除以所述第一阈值,得到第二结果;在所述第一结果与所述第二结果的整数位相同的情况下,确定所述源端口和所述目标端口在所述目标网络中对应的第一类型的路由节点相同;其中,所述第一阈值等于所述目标数量;在所述第一结果与所述第二结果的整数位不相同的情况下,确定所述源端口和所述目标端口在所述目标网络中对应的第一类型的路由节点不相同;根据所述源端口号与所述目标端口号判断所述源端口和所述目标端口在所述目标网络中对应的第二类型的路由节点是否相同,包括:将所述目标端口号除以第二阈值,得到第三结果;以及将所述源端口号除以所述第二阈值,得到第四结果;在所述第三结果与所述第四结果的整数位相同的情况下,确定所述源端口和所述目标端口在所述目标网络中对应的第二类型的路由节点相同;其中,所述第二阈值等于所述目标数量的两倍;在所述第三结果与所述第四结果的整数位不相同的情况下,确定所述源端口和所述目标端口在所述目标网络中对应的第二类型的路由节点不相同。

11、在一个示例性的实施例中,根据所述转发标识向所述转发路由节点转发所述目标数据包:在所述转发标识指示了数据传输通道的情况下,使用所述转发标识指示的数据传输通道向所述转发路由节点转发所述目标数据包;在所述转发标识未指示数据传输通道的情况下,使用所述第一路由节点与所述转发路由节点之间未被占用的数据传输通道向所述转发路由节点转发所述目标数据包。

12、在一个示例性的实施例中,根据所述第一路由节点的节点类型、第二路由节点的节点类型和所述转发标识对所述目标数据包进行转发,包括:在所述第一路由节点的节点类型为所述第一类型,所述第二路由节点的节点类型为所述第二类型、且所述转发标识为第一标识的情况下,根据所述目标数据包中携带的目标端口的目标端口号将所述目标数据包转发至所述目标端口;在所述第一路由节点的节点类型为所述第一类型,所述第二路由节点的节点类型为所述第二类型、且所述转发标识为第二标识的情况下,将所述目标数据包中的所述转发标识修改为所述第一标识,并将所述目标数据包通过所述第一路由节点与第四路由节点之间的两个数据传输通道中与目标数据传输通道不同的数据传输通道转发至所述第四路由节点;其中,所述第四路由节点为所述目标网络中与所述第一路由节点相连的所述第一类型的路由节点;所述第一标识用于指示所述目标数据包基于最短路径进行转发,所述第二标识用于指示所述目标数据包未基于最短路径进行转发,且需使用所述目标数据传输通道进行转发。

13、在一个示例性的实施例中,根据所述第一路由节点的节点类型、第二路由节点的节点类型和所述转发标识对所述目标数据包进行转发,包括:在所述第一路由节点的节点类型为所述第一类型,所述第二路由节点的节点类型为所述第一类型、且所述转发标识为第一标识的情况下,根据所述目标数据包中携带的目标端口的目标端口号将所述目标数据包转发至所述目标端口;在所述第一路由节点的节点类型为所述第一类型,所述第二路由节点的节点类型为所述第一类型、且所述转发标识为第二标识的情况下,将所述目标数据包中的所述转发标识修改为所述第一标识,并将所述目标数据包通过所述第一路由节点与第三路由节点之间的两个数据传输通道中与目标数据传输通道不同的数据传输通道转发至所述第三路由节点;其中,所述第三路由节点为所述目标网络中与所述第一路由节点相连的所述第二类型的路由节点;所述第一标识用于指示所述目标数据包基于最短路径进行转发,所述第二标识用于指示所述目标数据包未基于最短路径进行转发,且需使用所述目标数据传输通道进行转发。

14、在一个示例性的实施例中,根据所述第一路由节点的节点类型、第二路由节点的节点类型和所述转发标识对所述目标数据包进行转发,包括:在所述第一路由节点的节点类型为所述第二类型,所述第二路由节点的节点类型为所述第一类型、且所述转发标识为第一标识的情况下,将所述目标数据包转发至第五路由节点,其中,所述第五路由节点为所述目标网络中与所述第一路由节点相连的一个第三类型的路由节点;在所述第一路由节点的节点类型为所述第二类型,所述第二路由节点的节点类型为所述第一类型、且所述转发标识为第二标识的情况下,将所述目标数据包中的所述转发标识修改为所述第一标识,并将所述目标数据包通过所述第一路由节点与第六路由节点之间的两个数据传输通道中与目标数据传输通道不同的数据传输通道转发至所述第六路由节点;其中,所述第六路由节点为所述目标网络中与所述第一路由节点相连的两个第一类型的路由节点中与所述第二路由节点不同的路由节点,所述第一标识用于指示所述目标数据包基于最短路径进行转发,所述第二标识用于指示所述目标数据包未基于最短路径进行转发,且需使用所述目标数据传输通道进行转发。

15、在一个示例性的实施例中,将所述目标数据包转发至第五路由节点之前,所述方法还包括:从目标网络中与所述第一路由节点相连的多个第三类型的路由节点中确定数据传输通道未被占用的第五路由节点。

16、在一个示例性的实施例中,根据所述第一路由节点的节点类型、第二路由节点的节点类型和所述转发标识对所述目标数据包进行转发,包括:在所述第一路由节点的节点类型为所述第二类型,所述第二路由节点的节点类型为所述第三类型、且所述转发标识为第一标识的情况下,根据所述目标数据包中携带的目标端口的目标端口号确定第七路由节点,其中,所述第七路由节点为所述目标网络中与所述目标端口对应的第一类型的路由节点,所述第一标识用于指示所述目标数据包基于最短路径进行转发;将所述目标数据包转发至与所述第七路由节点。

17、在一个示例性的实施例中,根据所述目标数据包中携带的目标端口的目标端口号确定第七路由节点,包括:将所述目标端口号除以第一阈值,得到第五结果,其中,所述第一阈值等于所述目标数量;在所述第五结果的整数位为偶数的情况下,将所述目标网络中与所述第一路由节点对应的两个第一类型的路由节点中的第一预设路由节点确定为所述第七路由节点;在所述第五结果的整数位为奇数的情况下,将所述目标网络中与所述第一路由节点对应的两个第一类型的路由节点中的第二预设路由节点确定为所述第七路由节点。

18、在一个示例性的实施例中,将所述目标数据包转发至与所述第七路由节点,包括:确定所述第一路由节点与所述第七路由节点之间的数据传输通道是否被占用;在所述第一路由节点与所述第七路由节点之间存在数据传输通道未被占用的情况下,将所述目标数据包直接转发至与所述第七路由节点;在所述第一路由节点与所述第七路由节点之间的数据传输通道均被占用、且确定使用所述第一路由节点与第八路由节点之间的目标数据传输通道进行数据包传输的情况下,将所述目标数据包中的转发标识修改为与所述目标数据传输通道对应的第二标识,并将目标数据包转发至所述第八路由节点,以通过所述第八路由节点将所述目标数据包转发至所述第七路由节点;其中,所述第八路由节点为所述目标网络中与所述第一路由节点相连的两个第一类型的路由节点中除所述第七路由节点不同的路由节点,所述第二标识用于指示所述目标数据包未基于最短路径进行转发,且需使用所述目标数据传输通道进行转发。

19、在一个示例性的实施例中,根据所述第一路由节点的节点类型、第二路由节点的节点类型和所述转发标识对所述目标数据包进行转发,包括:在所述第一路由节点的节点类型为所述第三类型,所述第二路由节点的节点类型为所述第二类型、且所述转发标识为第一标识的情况下,根据所述目标数据包中携带的目标端口的目标端口号确定第九路由节点,其中,所述第九路由节点为所述目标网络中与所述目标端口对应的第二类型的路由节点,所述第一标识用于指示所述目标数据包基于最短路径进行转发;将所述目标数据包转发至所述第九路由节点。

20、在一个示例性的实施例中,根据所述目标数据包中携带的目标端口的目标端口号确定第九路由节点,包括:将所述目标端口号除以第二阈值,得到第六结果,其中,所述第二阈值等于所述目标数量的两倍;将所述目标网络中编号为所述第六结果的整数位的路由节点确定为所述第九路由节点。

21、根据本技术的又一个实施例,提供了一种数据包的转发装置,包括:确定模块,用于在目标网络中的第一路由节点获取到目标数据包的情况下,确定所述目标数据包中是否携带有转发标识,其中,所述转发标识用于指示所述目标数据包的转发方式;第一转发模块,用于在所述目标数据包中未携带所述转发标识的情况下,判断所述目标数据包是否需要转发至所述目标网络中的路由节点;在判断出所述目标数据包需要转发所述目标网络中的路由节点的情况下,确定转发路由节点以及对应的转发标识;在所述目标数据包中设置所述转发标识,并根据所述转发标识向所述转发路由节点转发所述目标数据包;第二转发模块,用于在所述目标数据包中携带有所述转发标识的情况下,根据所述第一路由节点的节点类型、第二路由节点的节点类型和所述转发标识对所述目标数据包进行转发,其中,所述第二路由节点为所述目标网络中向所述第一路由节点发送所述目标数据包的节点。

22、根据本技术的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

23、根据本技术的又一个实施例,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。

24、本技术,在目标网络中的第一路由节点获取到目标数据包的情况下,确定目标数据包中是否携带有转发标识,其中,转发标识用于指示目标数据包的转发方式;在目标数据包中未携带转发标识的情况下,判断目标数据包是否需要转发至目标网络中的路由节点;在判断出目标数据包需要转发至目标网络中的路由节点的情况下,确定转发路由节点以及对应的转发标识;在所述目标数据包中设置所述转发标识,并根据转发标识向转发路由节点转发目标数据包;在所述目标数据包中携带有转发标识的情况下,根据第一路由节点的节点类型、第二路由节点的节点类型和转发标识对目标数据包进行转发,其中,第二路由节点为目标网络中向第一路由节点发送目标数据包的节点。也就是说,本技术,在数据包中设置转发标识,进而对路由节点进行数据包转发的路由路径进行限制,从而解决了在基于路由的网络中存在环型拓扑结构的情况下,使用自适应路由算法进行报文转发很容易产生死锁的问题,到达了避免出现死锁现象的技术效果。

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