数据包传输方法、装置、设备、存储介质和程序产品制造方法及图纸

技术编号:39298980 阅读:12 留言:0更新日期:2023-11-07 11:07
本申请涉及一种数据包传输方法、装置、设备、存储介质和程序产品。所述方法包括:获取在当前检测周期生成的、待发送至目的IP地址的原数据包;确定通往目的IP地址的多路径传输隧道;多路径传输隧道包括多条路径,每条路径的路径标识源于对数据包进行网络路由所需的外层端口号;根据原数据包计算路径索引并查询路径索引表得到目标路径标识;路径索引表中的每个索引对应在当前检测周期判定为正常状态的路径中的一条,路径状态根据上一检测周期内相应路径的发包记录与收包记录确定;根据源IP地址、目的IP地址及目标路径标识所源自的外层端口号,对原数据包进行外层隧道封装,得到封装数据包,能够提高上层流量的连续性,增强上层业务的可用性。业务的可用性。业务的可用性。

【技术实现步骤摘要】
数据包传输方法、装置、设备、存储介质和程序产品


[0001]本申请涉及计算机
,特别是涉及一种数据包传输方法、装置、计算机设备、存储介质和计算机程序产品。

技术介绍

[0002]数据中心网络是路由器、交换机、接口等网络设备的复杂排列,提供网络、存储和计算资源,为企业数据中心执行广泛的工作负载。这些工作负载需要不同的硬件或高端网络组件来计算、存储、检索和传输来自本地和广域网的工作负载中的数据。
[0003]数据中心网络中的网络设备,互连数据中心资源池中的各种计算和存储单元,以确保高水平的性能。数据中心网络通常使用ECMP(Equal

Cost

Multi

Path)哈希的路由方法对数据包进行路由寻址,一般在某个交换机上,可以看到多条通往同一个目的IP地址的等长的路径,同一条数据流(具有相同外层包头信息的数据包的集合)的数据包会按照发出来的顺序,沿着相同的路径达到目的IP地址在对应的服务器。
[0004]虽然数据中心网络里的交换机虽然已经比较可靠,但大量交换机长时间高压力运行时,仍然不可避免地会有交换机出现某些故障,在交换机出现故障时,交换机通常呈现出黑洞状态,发送端会长时间接收不到任何反馈,致使路由层面在转发数据包时无法避开故障交换机。这种情况下,受影响的数据流即使有多次超时重传也无济于事,引起数据流中断和上层业务报错,降低上层业务可用性。

技术实现思路

[0005]基于此,有必要针对上述技术问题,提供一种数据包传输方法、装置、计算机设备、计算机可读存储介质和计算机程序产品,该方法能够提高上层流量的连续性,从而增强上层业务的可用性。
[0006]第一方面,本申请提供了一种数据包传输方法。所述方法包括:
[0007]获取在当前检测周期生成的、待发送至目的IP地址的原数据包;
[0008]确定通往所述目的IP地址的多路径传输隧道;所述多路径传输隧道包括在本地的源IP地址与所述目的IP地址之间传输数据流的多条路径,每条路径对应不同的路径标识,所述路径标识源于对数据包进行网络路由所需的外层端口号;
[0009]根据所述原数据包计算路径索引,根据所述路径索引查询所述多路径传输隧道对应的路径索引表,得到目标路径标识;所述路径索引表中的每个索引对应所述多条路径中在当前检测周期判定为正常状态的路径中的一条,在当前检测周期,路径状态根据上一检测周期内相应路径的发包记录与收包记录确定;
[0010]根据所述源IP地址、所述目的IP地址以及所述目标路径标识所源自的外层端口号,对所述原数据包进行外层隧道封装,得到封装数据包;
[0011]发送所述封装数据包至所述目的IP地址对应的第二服务器。
[0012]第二方面,本申请还提供了一种数据包传输装置。所述装置包括:
[0013]原数据包获取模块,用于获取在当前检测周期生成的、待发送至目的IP地址的原数据包;
[0014]确定模块,用于确定通往所述目的IP地址的多路径传输隧道;所述多路径传输隧道包括在本地的源IP地址与所述目的IP地址之间传输数据流的多条路径,每条路径对应不同的路径标识,所述路径标识源于对数据包进行网络路由所需的外层端口号;
[0015]路径选择模块,用于根据所述原数据包计算路径索引,根据所述路径索引查询所述多路径传输隧道对应的路径索引表,得到目标路径标识;所述路径索引表中的每个索引对应所述多条路径中在当前检测周期判定为正常状态的路径中的一条,在当前检测周期,路径状态根据上一检测周期内相应路径的发包记录与收包记录确定;
[0016]隧道封装模块,用于根据所述源IP地址、所述目的IP地址以及所述目标路径标识所源自的外层端口号,对所述原数据包进行外层隧道封装,得到封装数据包;
[0017]发送模块,用于发送所述封装数据包至所述目的IP地址对应的第二服务器。
[0018]在一个实施例中,所述装置还包括:
[0019]路径收包记录请求模块,用于在当前检测周期开始时,向所述目的IP地址对应的第二服务器,请求上一检测周期内所述多条路径对应的收包记录信息;
[0020]路径发包记录获取模块,用于在本地获取上一检测周期内所述多条路径对应的发包记录信息;
[0021]路径状态判定模块,用于根据所述上一检测周期内所述多条路径对应的发包记录信息与收包记录信息,判定所述多条路径中每条路径的路径状态;
[0022]路径索引表更新模块,用于根据所述每条路径的路径状态,更新所述多路径传输隧道对应的路径索引表,得到所述多路径传输隧道在当前检测周期对应的路径索引表,所述当前检测周期对应的路径索引表中,每个索引对应所述多条路径中在当前检测周期判定为正常状态的路径中的一条。
[0023]在一个实施例中,所述路径收包记录请求模块,用于当前检测周期开始时,若获取到待发送至目的IP地址的原数据包,则根据所述多路径传输隧道在上一检测周期对应的路径索引表,为所述原数据包进行路径选择后对所述原数据包进行外层隧道封装,得到所述原数据包对应的封装数据包,所述隧道封装信息携带收包记录信息请求;发送所述原数据包对应的封装数据包;获取所述第二服务器在接收到所述原数据包对应的封装数据包后,响应于所述收包记录信息请求并通过所述多路径传输隧道所反馈的上一检测周期内所述多条路径对应的收包记录信息。
[0024]在一个实施例中,所述路径收包记录请求模块,用于接收所述第二服务器发送的应答封装数据包;所述应答封装数据包,是所述第二服务器在接收到所述原数据包对应的封装数据包后,响应于所述收包记录信息请求,对在所述第二服务器上生成的、待发送至所述第一服务器的所述源IP地址的原数据包进行外层隧道封装得到的;所述应答封装数据包携带所述第二服务器记录的上一检测周期所述多条路径对应的收包记录信息;对所述应答封装数据包进行外层隧道解封装,得到上一检测周期所述多条路径对应的收包记录信息。
[0025]在一个实施例中,所述路径状态判定模块,用于对于所述多条路径中的每条路径,从所述多条路径对应的发包记录信息与收包记录信息中获取每条路径各自对应的发包记录与收包记录;若所述发包记录指示上一检测周期内相应路径发送过封装数据包、且所述
收包记录指示上一检测周期内相应路径接收过封装数据包,则判定当前检测周期相应路径的路径状态为正常状态;若所述发包记录指示上一检测周期内相应路径未发送过封装数据包、且所述收包记录指示上一检测周期内相应路径未接收过封装数据包,则判定当前检测周期相应路径的路径状态为正常状态;若所述发包记录指示上一检测周期内相应路径发送过封装数据包、且所述收包记录指示上一检测周期内相应路径未接收过封装数据包,则判定当前检测周期相应路径的路径状态为异常状态。
[0026]在一个实施例中,路径索引表更新模块,用于获取所述多路径传输隧道在上一检测周期对应的路径索引表;对于所述路径索引表中对应在当前检测周期判定为异常路径的索引,将所述索引所对应的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据包传输方法,其特征在于,由第一服务器执行,所述方法包括:获取在当前检测周期生成的、待发送至目的IP地址的原数据包;确定通往所述目的IP地址的多路径传输隧道;所述多路径传输隧道包括在本地的源IP地址与所述目的IP地址之间传输数据流的多条路径,每条路径对应不同的路径标识,所述路径标识源于对数据包进行网络路由所需的外层端口号;根据所述原数据包计算路径索引,根据所述路径索引查询所述多路径传输隧道对应的路径索引表,得到目标路径标识;所述路径索引表中的每个索引对应所述多条路径中在当前检测周期判定为正常状态的路径中的一条,在当前检测周期,路径状态根据上一检测周期内相应路径的发包记录与收包记录确定;根据所述源IP地址、所述目的IP地址以及所述目标路径标识所源自的外层端口号,对所述原数据包进行外层隧道封装,得到封装数据包;发送所述封装数据包至所述目的IP地址对应的第二服务器。2.根据权利要求1所述的方法,其特征在于,在所述获取在当前检测周期生成的、待发送至目的IP地址的原数据包之前,所述方法还包括:在当前检测周期开始时,向所述目的IP地址对应的第二服务器,请求上一检测周期内所述多条路径对应的收包记录信息;在本地获取上一检测周期内所述多条路径对应的发包记录信息;根据所述上一检测周期内所述多条路径对应的发包记录信息与收包记录信息,判定所述多条路径中每条路径的路径状态;根据所述每条路径的路径状态,更新所述多路径传输隧道对应的路径索引表,得到所述多路径传输隧道在当前检测周期对应的路径索引表,所述当前检测周期对应的路径索引表中,每个索引对应所述多条路径中在当前检测周期判定为正常状态的路径中的一条。3.根据权利要求2所述的方法,其特征在于,所述在当前检测周期开始时,向所述目的IP地址对应的第二服务器,请求上一检测周期内所述多条路径对应的收包记录信息,包括:当前检测周期开始时,若获取到待发送至目的IP地址的原数据包,则根据所述多路径传输隧道在上一检测周期对应的路径索引表,为所述原数据包进行路径选择后对所述原数据包进行外层隧道封装,得到所述原数据包对应的封装数据包,所述隧道封装信息携带收包记录信息请求;发送所述原数据包对应的封装数据包;获取所述第二服务器在接收到所述原数据包对应的封装数据包后,响应于所述收包记录信息请求并通过所述多路径传输隧道所反馈的上一检测周期内所述多条路径对应的收包记录信息。4.根据权利要求3所述的方法,其特征在于,所述获取所述第二服务器在接收到所述原数据包对应的封装数据包后,响应于所述收包记录信息请求并通过所述多路径传输隧道所反馈的上一检测周期内所述多条路径对应的收包记录信息,包括:接收所述第二服务器发送的应答封装数据包;所述应答封装数据包,是所述第二服务器在接收到所述原数据包对应的封装数据包后,响应于所述收包记录信息请求,对在所述第二服务器上生成的、待发送至所述第一服务器的所述源IP地址的原数据包进行外层隧道封装得到的;所述应答封装数据包携带所述第二服务器记录的上一检测周期所述多条路径
对应的收包记录信息;对所述应答封装数据包进行外层隧道解封装,得到上一检测周期所述多条路径对应的收包记录信息。5.根据权利要求2所述的方法,其特征在于,所述根据所述上一检测周期内所述多条路径对应的发包记录信息与收包记录信息,判定所述多条路径中每条路径的路径状态,包括:对于所述多条路径中的每条路径,从所述多条路径对应的发包记录信息与收包记录信息中获取每条路径各自对应的发包记录与收包记录;若所述发包记录指示上一检测周期内相应路径发送过封装数据包、且所述收包记录指示上一检测周期内相应路径接收过封装数据包,则判定当前检测周期相应路径的路径状态为正常状态;若所述发包记录指示上一检测周期内相应路径未发送过封装数据包、且所述收包记录指示上一检测周期内相应路径未接收过封装数据包,则判定当前检测周期相应路径的路径状态为正常状态;若所述发包记录指示上一检测周期内相应路径发送过封装数据包、且所述收包记录指示上一检测周期内相应路径未接收过封装数据包,则判定当前检测周期相应路径的路径状态为异常状态。6.根据权利要求2所述的方法,其特征在于,所述根据所述每条路径的路径状态,更新所述多路径传输隧道对应的路径索引表,得到所述多路径传输隧道在当前检测周期对应的路径索引表,包括:获取所述多路径传输隧道在上一检测周期对应的路径索引表;对于所述路径索引表中对应在当前检测周期判定为异常路径的索引,将所述索引所对应的异常路径修改为正常路径,得到所述多路径传输隧道在当前检测周期对应的路径索引表;其中,所述异常路径是当前检测周期相应路径状态判定为异常状态的路径,所述正常路径是当前检测周期相应路径状态判定为正常状态的路径。7.根据权利要求1所述的方法,其特征在于,所述方法还包括:生成路径探测请求;对于当前检测周期相应路径状态判定为异常状态的异常路径,根据所述源IP地址、所述目的IP地址以及所述异常路径的路径标识所源自的外层端口号,对所述路径探测请求进行外层隧道封装,得到路径探测请求对应的封装数据包;发送所述路径探测请求对应的封装数据包。8.根据权利要求1所述的方法,...

【专利技术属性】
技术研发人员:周显平叶君宏金峰
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1