掌桥专利:专业的专利平台
掌桥专利
首页

网络重传事件四元组获取方法和装置

文献发布时间:2024-04-18 20:02:40


网络重传事件四元组获取方法和装置

技术领域

本公开涉及Linux中的网络异常诊断技术领域,尤其涉及网络重传事件四元组获取方法和装置。

背景技术

相关技术中,Linux中的TCP/IP层在现实网络通信中发挥着非常重要的作用,对业务的网络通信准确性,确定性等起到关键的作用;确定网络重传的四元组,则可以有效的帮助发送端和接收端发现潜在的延迟等不确定风险。

目前,Tcpdump和Wireshark就是最常用的网络抓包和分析工具,其中,Tcpdump支持Linux命令行进行网络包抓取和分析;Wireshark window上的工具可以实现包,并提供了可视化分析网络包的图形页面。在现有技术中,以上二者是搭配使用的,一般先用Tcpdump命令在Linux服务器上抓包,接着把抓包的文件拖出到Windows电脑后,使用Wireshark可视化分析。如果在Windows上抓包,只需要用Wireshark工具就可以。Tcpdump和Wireshark是大而全的一个网络专业分析集成工具;但是,Tcpdump和Wireshark的使用需要有较高的专业知识,即使用有门槛,如果消息太多,则需要操作人员的专业知识进行过滤;此外,Tcpdump和Wireshark的诊断内容也不够聚焦,无法与业务联动,且不具备系统异常主动识别能力。

发明内容

为克服相关技术中存在的问题,本公开提供一种网络重传事件四元组获取方法和装置。

根据本公开实施例的第一方面,提供一种网络重传事件四元组获取方法,包括:

在内核重传路径上增加重传统计逻辑;

通过所述重传统计逻辑统计内核重传路径中重传事件四元组丢包的总数以及重传事件四元组丢包的详细信息;

对所述重传事件四元组丢包的总数和所述重传事件四元组丢包的详细信息进行统计,得到重传统计数据。

根据本公开实施例的第二方面,提供一种网络重传事件四元组获取装置,包括:

设置模块,用于在内核重传路径上增加重传统计逻辑;

记录模块,用于通过所述重传统计逻辑统计内核重传路径中重传事件四元组丢包的总数以及重传事件四元组丢包的详细信息;

统计模块,用于对所述重传事件四元组丢包的总数和所述重传事件四元组丢包的详细信息进行统计,得到重传统计数据。

根据本公开实施例的第三方面,提供一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现本公开第一方面所提供的网络重传事件四元组获取方法。

根据本公开实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序指令,该程序指令被处理器执行时实现本公开第一方面所提供的网络重传事件四元组获取方法的步骤。

本公开的实施例提供的技术方案可以包括以下有益效果:通过在内核重传路径上增加重传统计逻辑,可以直接通过重传统计逻辑获得发生重传四元组的详细信息,使系统具备了异常的主动识别能力,降低了使用者的难度,并且,通过获取的四元组的详细信息,还可以进一步有效的帮助发送端和接收端发现潜在的延迟等不确定风险。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

图1是根据一示例性实施例示出的一种网络重传事件四元组获取方法方法的流程图。

图2是根据一示例性实施例示出的一种网络重传事件四元组获取方法方法的一优选实例的详细处理流程图。

图3是根据一示例性实施例示出的一种网络重传事件四元组获取装置的框图。

图4是根据一示例性实施例示出的一种电子设备的框图。

具体实施方式

下面将结合附图详细地对示例性实施例进行描述说明。

应当指出,相关实施例及附图仅为描述说明本公开所提供的示例性实施例,而非本公开的全部实施例,也不应理解本公开受相关示例性实施例的限制。

应当指出,本公开中所用术语“第一”、“第二”等仅用于区别不同步骤、设备或模块等。相关术语既不代表任何特定技术含义,也不表示它们之间的顺序或者相互依存关系。

应当指出,本公开中所用术语“一个”、“多个”、“至少一个”的修饰是示意性而非限制性的。除非在上下文另有明确指出,否则应该理解为“一个或多个”。

应当指出,本公开中所用术语“和/或”,用于描述关联对象之间的关联关系,一般表示至少存在三种关联关系。例如,A和/或B,至少可以表示:单独存在A,同时存在A和B,单独存在B这三种关联关系。

应当指出,本公开的方法实施例中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。除非特别说明,本公开的范围不受相关实施例中步骤的描述顺序限制。

需要说明的是,本公开中所有获取信号、信息或数据的动作都是在遵照所在地国家相应的数据保护法规政策的前提下,并获得由相应装置所有者给予授权的情况下进行的。

技术用语说明

四元组:四元组是TCP/IP中通信过程中,用于确定数据发送端和数据接收端的地址信息;其中四元组信息由源IP地址、源端口号、目的端口号和目的端口地址组成;

网络重传:TCP/IP协议中一种保证数据准确性、完整性的措施,网络重传事件一般都会导致业务延迟,通常可能是由于丢包,链路网络异常等原因导致;

示例性方法

图1是根据一示例性实施例示出的一种网络重传事件四元组获取方法的流程图,如图1所示,网络重传事件四元组获取方法用于Linux机器中发现网络中出现的重传现象,并找到发生重传的四元组信息中,包括以下步骤。

在步骤S110中,在内核重传路径上增加重传统计逻辑;具体包括两种方式增加重传统计逻辑:

方式一:通过在内核重传路径上的tracepoint机制中增加所述重传统计逻辑;或者,方式二:通过将所述内核重传路径上的现有函数替换为所述重传统计逻辑。

其中,重传统计逻辑具体包括:重传数量统计结构体和重传信息结构体,其中,所述重传数量统计结构体具体包括:红黑树信息、链表信息、四元组信息以及重传事件四元组丢包的总数信息;所述重传信息结构体具体包括:重传类型信息、四元组信息、sync重传或skb重传信息、重传事件四元组丢包的总数信息以及重传时间信息。

在步骤S120中,通过所述重传统计逻辑统计内核重传路径中重传事件四元组丢包的总数以及重传事件四元组丢包的详细信息;具体包括:

通过所述重传数量统计结构体调用红黑树和链表,通过所述红黑树记录重传事件四元组丢包的总数,通过所述链表进行四元组存储资源的管理,并将重传事件四元组丢包的总数写入到内存缓存区;

通过所述重传信息结构体记录所述重传事件四元组丢包详的细信息,并将所述重传事件四元组丢包详的细信息存放到内核缓存区中。

在步骤S130中,对所述重传事件四元组丢包的总数和所述重传事件四元组丢包的详细信息进行统计,得到重传统计数据。具体包括:

基于所述重传事件四元组丢包的总数和所述重传事件四元组丢包详的细信息,对响应包sync ack重传事件进行统计,得到响应包重传统计数据并存储到内存缓存区;

基于所述重传事件四元组丢包的总数和所述重传事件四元组丢包详的细信息,对网络包skb重传事件进行统计,得到网络包重传统计数据并存储到内存缓存区。

优选地,在本发明实施例中,还可以通过用户态获取所述内存缓存区中的重传数据,随后,根据所述重传数据查找两个服务器业务之间通信的网络延迟,并确定业务IP和业务信息,并进一步定位所述网络延迟属于链路层问题或二端通信协议栈问题。其中,所述重传数据具体包括:重传事件四元组丢包的总数、重传事件四元组丢包详的细信息以及重传统计数据。

以下结合附图,对本发明实施例的上述技术方案进行详细说明。

如图2所示,本发明实施例在内核重传路径hook(增加)了重传统计逻辑;在实际应用中,hook重传统计的逻辑有二种方式,一种是通过现有的Tracepoint机制hook重传统计逻辑;当系统没有现有的Tracepoint时,为了准确统计重传信息,本发明实施例通过内核现有函数替换的手段来实现重传统计逻辑;其中重传统计逻辑包括二部分,一部分是汇总整个系统重传数量;另一方面是统计具体的重传信息;

本发明实施例的重传数量统计结构体用于记录四元组的丢包数量,他被红黑树和链表所管理,最终会被写入到内存缓存区;其中,红黑树用于记录丢包数量,链表用于记录丢包时候进行四元组存储资源管理,重传统计结构具体如下:

其中,rb_node表示红黑树,head list表示链表,src_addr、src_port、dest_addr、dest_port表示四元组信息,syncack_count表示响应包重传数量,skb_count表示网络包重传数量。

下面是重传信息结构体,用于记录四元组丢包详细信息,被存放到内核缓存区中;

其中,chushi_timespec tv表示重传时间和重传数量。

数据统计:

1)sync,ack重传数据统计的实现:a、维护在红黑树的四元组重传数据数量结构体;b、只关注tcp协议,获取四元组等网络信息;c、获取源端口、目的端口、源地址、目的端口信息获取;d、维护四元组数量信息,查找四元组存储结构,没有则创建一个信息;e、统计sync、ack包重传的数量;f、记录重传发生时间;g、记录源地址、源端口、目的地址、目的端口、重传还是skb重传,保存重传信息数据到内核缓存。

2)skb报文重传:

a、获取tcp四元组信息;b、维护统计数据信息;c、保存skb重传发生时的四元组信息;d、保存skb重传信息数据到内核缓存。

在上述处理之后,用户态通过相关手段获取内核缓存区获取的信息,就可以为用户提供重传四元组的信息;本发明实施例提供了一种方便有效直接获取系统重传事件的工具,可以直接获得发生重传四元组的信息、进程信息和业务信息;并且,通过查找两个服务器业务之间通信的网络延迟,可以确定业务IP和业务信息,从而进一步根据四元组来查询是链路层问题还是二端通信协议栈的问题。采用本发明实施例的上述技术方案,可以有效发现网络中存在的不稳定信息。

示例性装置

图3是根据一示例性实施例示出的一种网络重传事件四元组获取装置框图。参照图3,该网络重传事件四元组获取装置300包括设置模块310,记录模块320和统计模块330。

该设置模块210,用于在内核重传路径上增加重传统计逻辑;具体包括:

通过在内核重传路径上的tracepoint机制中增加所述重传统计逻辑;或者,通过将所述内核重传路径上的现有函数替换为所述重传统计逻辑。

所述重传统计逻辑具体包括:重传数量统计结构体和重传信息结构体,其中,所述重传数量统计结构体具体包括:红黑树信息、链表信息、四元组信息以及重传事件四元组丢包的总数信息;所述重传信息结构体具体包括:重传类型信息、四元组信息、sync重传或skb重传信息、重传事件四元组丢包的总数信息以及重传时间信息。

该记录模块220,用于通过所述重传统计逻辑统计内核重传路径中重传事件四元组丢包的总数以及重传事件四元组丢包的详细信息;具体包括:

通过所述重传数量统计结构体调用红黑树和链表,通过所述红黑树记录重传事件四元组丢包的总数,通过所述链表进行四元组存储资源的管理,并将重传事件四元组丢包的总数写入到内存缓存区;

通过所述重传信息结构体记录所述重传事件四元组丢包详的细信息,并将所述重传事件四元组丢包详的细信息存放到内核缓存区中。

该统计模块230,用于对所述重传事件四元组丢包的总数和所述重传事件四元组丢包的详细信息进行统计,得到重传统计数据。具体包括:

基于所述重传事件四元组丢包的总数和所述重传事件四元组丢包详的细信息,对响应包sync ack重传事件进行统计,得到响应包重传统计数据并存储到内存缓存区;

基于所述重传事件四元组丢包的总数和所述重传事件四元组丢包详的细信息,对网络包skb重传事件进行统计,得到网络包重传统计数据并存储到内存缓存区。

本发明实施例的装置进一步包括:

获取定位模块,用于通过用户态获取所述内存缓存区中的重传数据,根据所述重传数据查找两个服务器业务之间通信的网络延迟,并确定业务IP和业务信息,并进一步定位所述网络延迟属于链路层问题或二端通信协议栈问题。其中,所述重传数据具体包括:重传事件四元组丢包的总数、重传事件四元组丢包详的细信息以及重传统计数据。

本发明实施例的装置是与上述示例性方法对应的装置实施例,模块的具体操作可以根据示例性方法中的描述进行理解,在此不再赘述。

示例性电子设备

图4是根据一示例性实施例示出的一种电子设备400的框图。该电子设备400可以是车辆控制器、车载终端、车载计算机或者其他类型的电子设备。

参照图4,电子设备400,可包括至少一个处理器410和存储器420。处理器410可以执行存储在存储器420中的指令。处理器410通过数据总线与存储器420通信连接。除存储器420外,处理器410还可通过数据总线与输入设备430、输出设备440、通信设备450通信连接。

处理器410可以是任何常规的处理器,诸如商业可获得的CPU。处理器还可以包括诸如图像处理器(Graphic Process Unit,GPU),现场可编程门阵列(Field ProgrammableGate Array,FPGA)、片上系统(System on Chip,SOC)、专用集成芯片(ApplicationSpecific Integrated Circuit,ASIC)或它们的组合。

存储器420可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。

在本公开实施例中,存储器420中存储有可执行指令,处理器410可以从所述存储器420中读取所述可执行指令,并执行所述指令以实现上述示例性实施例中任一所述的网络重传事件四元组获取方法的全部或部分步骤。

示例性计算机可读存储介质

除了上述方法和装置以外,本公开的示例性实施例还可以是计算机程序产品或存储有该计算机程序产品的计算机可读存储介质。该计算机产品中包括计算机程序指令,该计算机程序指令可被处理器执行,以实现上述示例性实施例中任一方法中描述的全部或部分步骤。

所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言以及脚本语言(例如Python)。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。

所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子包括:具有一个或多个导线电连接的静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘,或者上述的任意合适的组合。

本领域技术人员在考虑说明书及实践本公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

相关技术
  • 图像获取方法、图像获取装置、结构光组件及电子装置
  • 获取端到端网络时延的方法和装置
  • 访问控制规则的获取方法、装置及网络设备
  • 二维材料平均片径检测方法、装置及数量获取方法、装置
  • 文件获取方法及装置、文件传送方法及装置、存储介质
  • 四元组门图神经网络事件预测方法、装置、设备及介质
  • 四元组门图神经网络事件预测方法、装置、设备及介质
技术分类

06120116588075