CN116708150B - 网络诊断方法和电子设备 - Google Patents
网络诊断方法和电子设备 Download PDFInfo
- Publication number
- CN116708150B CN116708150B CN202211718452.4A CN202211718452A CN116708150B CN 116708150 B CN116708150 B CN 116708150B CN 202211718452 A CN202211718452 A CN 202211718452A CN 116708150 B CN116708150 B CN 116708150B
- Authority
- CN
- China
- Prior art keywords
- handshake
- delay
- terminal
- network
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 126
- 238000003745 diagnosis Methods 0.000 title abstract description 57
- 230000002159 abnormal effect Effects 0.000 claims abstract description 121
- 230000006854 communication Effects 0.000 claims abstract description 61
- 238000004891 communication Methods 0.000 claims abstract description 57
- 230000004044 response Effects 0.000 claims abstract description 51
- 230000005856 abnormality Effects 0.000 claims abstract description 25
- 238000001514 detection method Methods 0.000 claims description 146
- 230000003993 interaction Effects 0.000 claims description 85
- 230000005540 biological transmission Effects 0.000 claims description 28
- 238000012790 confirmation Methods 0.000 claims description 13
- 230000001934 delay Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 abstract description 39
- 238000012544 monitoring process Methods 0.000 description 106
- 238000012545 processing Methods 0.000 description 100
- 238000004458 analytical method Methods 0.000 description 75
- 238000012360 testing method Methods 0.000 description 31
- 238000010586 diagram Methods 0.000 description 29
- 238000013461 design Methods 0.000 description 17
- 239000000523 sample Substances 0.000 description 17
- 230000003287 optical effect Effects 0.000 description 14
- 238000005070 sampling Methods 0.000 description 14
- 241000282326 Felis catus Species 0.000 description 11
- 230000006855 networking Effects 0.000 description 11
- 238000006243 chemical reaction Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 238000005457 optimization Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000002405 diagnostic procedure Methods 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 208000033748 Device issues Diseases 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000005059 dormancy Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011897 real-time detection Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0677—Localisation of faults
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0811—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例公开了一种网络诊断方法和电子设备,涉及通信技术领域,包括:路由设备从终端接收用于请求建立终端和网络设备之间的传输层控制协议TCP连接的握手请求信息,路由设备向网络设备发送握手请求信息,路由设备获取发送握手请求信息的第一时间点。路由设备从网络设备接收握手请求信息对应的握手响应信息,路由设备获取接收到握手响应信息的第二时间点。如果确定第二时间点和第一时间点之间的时延大于第一时延阈值,路由设备确定路由设备和网络设备之间的通信时延异常。在终端上网的过程中,若出现网络慢的情况,路由设备可以基于获取到的终端与网络设备握手往返时延,根据握手往返时延与时延阈值来确定存在通信延时异常,提高用户体验。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种网络诊断方法和电子设备。
背景技术
路由设备负责连接两个或多个网络的硬件设备,根据不同类型网络数据包的目的地址,对不同的网络之间的数据包进行存储、分组转发处理,在网络间起网关的作用。
在终端通过路由设备上网的场景中,路由设备可以读取终端的数据包中的地址然后将数据包转发至地址对应的设备。路由设备也可以读取其他网络的设备的数据包中的地址将数据包转发至地址对应的终端。
由于终端通过路由设备上网的组网拓扑中涉及到多个不同类型网络的设备,如果终端上网过程中出现网络故障而导致的网络卡顿、上网慢,甚至不能连接网络的问题,现有技术难以定位网络异常的设备,从而影响用户体验。
发明内容
本申请实施例提供一种网络诊断方法和电子设备,在终端上网的过程中,若终端出现网络慢或者网络异常的情况,路由设备可以基于获取到的终端与网络设备在握手过程中产生的握手往返时延,根据握手往返时延与动态调整的时延阈值来定位异常的网络设备,将异常的网络设备信息上报至服务器,使得维护人员根据异常的网络设备信息及时对网络进行维护,优化网络存在的问题,提高用户体验。为达到上述目的,本申请的实施例采用如下技术方案。
第一方面,提供了一种网络诊断方法,该方法包括:
路由设备从终端接收握手请求信息;握手请求信息用于请求建立终端和网络设备之间的传输层控制协议TCP连接。路由设备向网络设备发送握手请求信息,路由设备获取发送握手请求信息的第一时间点;路由设备从网络设备接收握手请求信息对应的握手响应信息,路由设备获取接收到握手响应信息的第二时间点。如果确定第二时间点和第一时间点之间的时延大于第一时延阈值,路由设备确定路由设备和网络设备之间的通信时延异常。
本申请中,在终端上网的过程中若出现网络慢的情况,路由设备可以基于向与终端建立TCP连接的网络设备发送握手请求信息至从网络设备接收握手请求信息对应的握手响应信息的时延,以及第一时延阈值来确定路由设备与网络设备之间的网络通信时延是否异常。在时延大于第一时延阈值的情况下,路由设备可以确定路由设备与网络设备之间的网络通信时延异常。可选地,路由设备可以将通信时延异常上报至服务器,维护人员可以针对性地对网络进行优化,提高用户体验。此外,本申请的网络诊断方法是在用户无感知的情况下进行的后台实时检测,在用户实际使用网络的过程中,还可以对网络进行及时反馈和优化,进一步优化用户的上网体验。
结合第一方面,在一种可能的设计方式中,该方法还包括:
路由设备向终端发送握手响应信息,路由设备获取发送握手响应信息的第三时间点;路由设备从终端接收握手响应信息对应的握手确认信息,路由设备获取接收到握手确认信息的第四时间点。如果确定第四时间点和第三时间点之间的时延大于第二时延阈值,路由设备确定路由设备和终端之间的通信时延异常。
本申请中,在终端上网的过程中若出现网络慢的情况,路由设备可以基于向终端发送握手响应信息至从中断接收握手确认信息之间的时延,以及第二时延阈值来确定路由设备与终端之间的网络通信时延是否异常。在时延大于第二时延阈值的情况下,路由设备可以确定路由设备与终端之间的网络通信时延异常。可选地,路由设备可以将通信时延异常上报至服务器,维护人员可以针对性地对网络进行优化,提高用户体验。基于本方案可以实现在终端上网慢的场景下,定位导致网络慢的是网络设备或终端设备,进一步提高网络优化的针对性。
结合第一方面,在一种可能的设计方式中,在路由设备从终端接收握手请求信息之后,该方法还包括:
路由设备生成第一握手交互信息;第一握手交互信息是终端对应的握手交互信息,握手交互信息包括终端标识,以及与终端建立TCP连接的网络设备的标识。
本申请中,路由设备可以根据各个终端生成其对应的第一握手交互信息,用于记录终端在与网络设备建立TCP连接过程中的信息以及终端标识、网络设备标识等信息,该第一握手交互信息为进行通信延时分析提供有效的数据支撑。
结合第一方面,在一种可能的设计方式中,该方法还包括:
路由设备获取第一握手时延,第一握手时延为第二时间点和第一时间点之间的时延,路由设备在第一握手交互信息中记录第一握手时延。
本申请中,路由设备可以根据终端在与网络设备建立TCP连接过程中获取到的第一时间点与第二时间点确定第一握手时延并记录在第一握手交互信息中,为进行路由设备与网络设备之间的通信延时分析提供有效的数据支撑。
结合第一方面,在一种可能的设计方式中,该方法还包括:
路由设备获取第二握手时延,第二握手时延为第四时间点和第三时间点之间的时延,路由设备在第一握手交互信息中记录第二握手时延。
本申请中,路由设备可以根据终端在与网络设备建立TCP连接过程中获取到的第三时间点与第四时间点确定第二握手时延并记录在第一握手交互信息中,为进行路由设备与终端之间的通信延时分析提供有效的数据支撑。
结合第一方面,在一种可能的设计方式中,该方法还包括:
如果确定路由设备与网络设备之间通信时延异常,生成第一异常标识,路由设备将第一异常标识更新至第一握手交互信息中。
本申请中,路由设备在确定路由设备与网络设备之间通信时延异常时,可以生成第一异常标识并记录在第一握手交互信息中,在基于第一握手交互信息进行通信延时分析时,可根据第一异常标识确定路由设备与网络设备之间通信时延异常,实现快速准确地确定网路设备异常的效果。
结合第一方面,在一种可能的设计方式中,该方法还包括:
如果确定路由设备与终端之间通信时延异常,生成第二异常标识,路由设备将第二异常标识更新至第一握手交互信息中。
本申请中,路由设备在确定路由设备与终端之间通信时延异常时,可以生成第二异常标识并记录在第一握手交互信息中,在基于第一握手交互信息进行通信延时分析时,可根据第二异常标识确定路由设备与终端之间通信时延异常,实现快速准确地确定终端异常的效果。
结合第一方面,在一种可能的设计方式中,该方法还包括:
路由设备按照预设周期向服务器发送保存的握手交互信息。
本申请中,路由设备可以按照预设周期向服务器发送保存的多个握手交互信息,以减少与服务器的交互成本。向服务器发送握手交互信息,可以使得服务器基于握手交互信息确定第一时延阈值和第二时延阈值,路由设备可以基于第一时延阈值和第二时延阈值进行通信时延的判断。
结合第一方面,在一种可能的设计方式中,该方法还包括:
路由设备从服务器接收第一时延阈值和第二时延阈值。
本申请中,第一时延阈值和第二时延阈值为路由设备动态从服务器接收到的,第一时延阈值和第二时延阈值为服务器根据第一握手时延和第二握手时延确定的,第一时延阈值与第二时延阈值更符合终端实际的网络环境,使得通信时延的判断更准确。
结合第一方面,在一种可能的设计方式中,该方法还包括:
如果确定路由设备与网络设备之间通信时延异常,路由设备向网络设备发送第一检测指令,如果在第一时长内未接收到网络设备针对第一检测指令的第一检测响应,路由设备确定网络设备与路由设备断开连接。
本申请中,在路由设备确定路由设备与网络设备之间通信时延异常时,路由设备还可以向网络设备发送测试指令,来确定网络设备与路由设备之间的网络状态,在确定网络设备与路由设备断开连接时,可以实现网络故障设备的进一步定位。
结合第一方面,在一种可能的设计方式中,该方法还包括:
如果确定路由设备与终端之间通信时延异常,路由设备向终端发送第二检测指令,如果路由设备在第二时长内未接收到终端针对第二检测指令的第二检测响应,确定终端与路由设备断开连接。
本申请中,在路由设备确定路由设备与终端之间通信时延异常时,路由设备还可以向终端发送测试指令,来确定终端与路由设备之间的网络状态,在确定终端与路由设备断开连接时,可以实现网络故障设备的进一步定位。
第二方面,提供一种网络诊断方法,该方法包括:
服务器从路由设备接收多个握手交互信息;握手交互信息包括终端标识,以及与终端建立TCP连接的网络设备的标识,第一握手时延和第二握手时延;其中,第一握手时延为路由设备向网络设备发送握手请求信息至路由设备从网络设备接收到握手响应信息之间的时延;第二握手时延为路由设备向终端发送握手响应信息至路由设备从终端接收到握手确认信息之间的时延。
服务器根据多个握手交互信息中的第一握手时延确定第一时延阈值;第一时延阈值用于路由设备判断路由设备与网络设备之间是否存在通信时延异常,服务器根据多个握手交互信息中的第二握手时延确定第二时延阈值;第二时延阈值用于路由设备判断路由设备与终端之间是否存在通信时延异常。服务器向路由设备发送第一时延阈值和第二时延阈值。
本申请中,服务器可以根据从路由设备接收到的多个握手交互信息确定用于判断通信网络时延的第一时延阈值和第二时延阈值,基于实际采集到的握手交互信息来动态确定第一时延阈值和第二时延阈值,所得到的第一时延阈值与第二时延阈值更符合终端实际的网络环境,使得通信时延的判断更准确。
结合第二方面,在一种可能的设计方式中,服务器根据多个握手交互信息中的第一握手时延确定第一时延阈值,包括:
服务器对多个握手交互信息中的第一握手时延进行从小到大排序,服务器将排序后的第N个第一握手时延确定为第一时延阈值;其中,N为第一预设值,N大于0,并小于或等于预设数量。
本申请中,服务器可以根据预设值的确定原则从多个第一握手时延中确定第一时延阈值,所得到的第一时延阈值更符合终端实际的网络环境,使得路由设备与网络设备之间的通信时延的判断更准确。
结合第二方面,在一种可能的设计方式中,服务器根据多个握手交互信息中的第二握手时延确定第二时延阈值,包括:
服务器对多个握手交互信息中的第二握手时延进行从小到大排序,服务器将排序后的第M个第二握手时延的值确定为第二时延阈值;其中,M为第二预设值,M大于0,并小于或等于预设数量。
本申请中,服务器可以根据预设值的确定原则从多个第二握手时延中确定第二时延阈值,所得到的第二时延阈值更符合终端实际的网络环境,使得路由设备与终端之间的通信时延的判断更准确。
结合第二方面,在一种可能的设计方式中,该方法还包括:
服务器确定第一握手交互信息中包括第一异常标识,生成第一握手交互信息对应的终端的第一网络时延异常信息;第一握手交互信息中为多个握手交互信息中的一个,第一异常标识用于表示路由设备与网络设备之间通信时延异常,第一网络时延异常信息包括第一握手交互信息对应的终端的网络延时异常原因,服务器在显示界面显示第一握手交互信息对应的终端的第一网络时延异常信息。
本申请中,服务器还可以根据第一异常标识生成第一网络时延异常信息,可选地,服务器可以输出该第一网路时延异常信息,以供技术人员查看并进行网络优化,从而提高终端用户的上网体验。
结合第二方面,在一种可能的设计方式中,该方法还包括:
服务器确定第二握手交互信息中包括第二异常标识,生成第二握手交互信息对应的终端的第二网络时延异常信息;第二握手交互信息为多个握手交互信息中的一个,第二异常标识用于表示路由设备与终端之间通信时延异常,第二网络延时异常信息包括第二握手交互信息对应的终端的网络延时异常原因,服务器在显示界面显示第二握手交互信息对应的终端的第二网络时延异常信息。
本申请中,服务器还可以根据第二异常标识生成第二网络时延异常信息,可选地,服务器可以输出该第二网路时延异常信息,以供技术人员查看并进行网络优化,从而提高终端用户的上网体验。
第三方面,提供了一种电子设备,该电子设备包括存储器、显示屏和一个或多个处理器;所述存储器、所述显示屏与所述处理器耦合;所述存储器中存储有计算机程序代码,所述计算机程序代码包括计算机指令,当所述计算机指令被所述处理器执行时,使得所述电子设备执行如上述第一方面或第二方面中任一项所述的方法。
第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在电子设备上运行时,使得电子设备可以执行上述第一方面或第二方面中任一项所述的方法。
第五方面,提供了一种包含指令的计算机程序产品,当其在电子设备上运行时,使得电子设备可以执行上述第一方面或第二方面中任一项所述的方法。
第六方面,本申请实施例提供了一种芯片,芯片包括处理器,处理器用于调用存储器中的计算机程序,以执行如第一方面或第二方面任一项所述的方法。
可以理解地,上述提供的第三方面所述的电子设备,第四方面所述的计算机可读存储介质,第五方面所述的计算机程序产品,第六方面所述的芯片所能达到的有益效果,可参考第一方面或第二方面及其任一种可能的设计方式中的有益效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种路由器组网拓扑结构示意图;
图2为本申请实施例提供的一种网络诊断方法的网络架构示意图;
图3为本申请实施例提供的一种路由器的架构示意图;
图4为本申请实施例提供的一种结合路由器模块结构的组网拓扑结构示意图;
图5为本申请实施例提供的另一种网络诊断方法的网络架构示意图;
图6为本申请实施例提供的一种路由器内部模块交互的网络诊断方法流程图;
图7为本申请实施例提供的一种终端与服务器之间进行TCP三次握手交互示意图;
图8为本申请实施例提供的一种终端通过路由器与服务器进行TCP三次握手交互示意图;
图9为本申请实施例提供的一种路由器内核中iptables调用链数据流向示意图;
图10为本申请实施例提供的一种路由器内核中iptables调用链监听握手报文的示意图;
图11为本申请实施例提供的一种在终端通过路由器与服务器进行TCP三次握手过程中设定监听点的示意图;
图12为本申请实施例提供的一种路由器判断时延的方法过程示意图;
图13为本申请实施例提供的一种路由器动态调整时延阈值的方法过程示意图;
图14为本申请实施例提供的另一种路由器判断时延的方法过程示意图
图15为本申请实施例提供的一种路由器ping周围设备的示意图;
图16为本申请实施例提供的一种路由器ping检测方法的流程图;
图17为本申请实施例提供的一种路由器向分析服务器上报信息的环境架构图;
图18为本申请实施例提供的一种路由器向终端发送提醒信息的交互示意图;
图19为本申请实施例提供的一种电子设备的结构示意图;
图20为本申请实施例提供的一种芯片系统的结构示意图。
具体实施方式
在本申请实施例的描述中,以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一种”、“所述”、“上述”、“该”和“这一”旨在也包括例如“一个或多个”这种表达形式,除非其上下文中明确地有相反指示。还应当理解,在本申请以下各实施例中,“至少一个”、“一个或多个”是指一个或两个以上(包含两个)。术语“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系;例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A、B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。术语“连接”包括直接连接和间接连接,除非另外说明。“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在终端通过路由设备上网的场景中,由于组网拓扑中涉及到不同类型网络的设备,如果终端上网过程中出现网络故障而导致的网络卡顿、上网慢,甚至不能连接网络的问题,现有技术难以定位网络异常的设备,从而影响用户体验。
图1给出了一种常见的组网拓扑示意图。图1中包括终端(比如,无线上网设备和有线上网设备)、路由设备(比如,路由器)以及网络设备(比如,宽带接入服务器(broadbandremote access server,BRAS)、核心路由器、核心网设备等)。可选地,组网拓扑中还可以包括光调制解调器(比如,光猫)。其中,光调制解调器用于实现广域网中光电信号的转换和接口协议的转换,连接网络设备和路由设备。路由设备将终端与光调制解调器连接,实现将局域网连接到广域网中。路由设备通过同一网络使多台终端同时可用网络,以起到网络分发的作用。如图1,路由设备将终端与光调制解调器连接,光调制解调器连接宽带接入服务器,核心路由器将宽带接入服务器与网络设备连接,形成终端--路由设备--光调制解调器--宽带接入服务器--核心路由器--网络设备的组网拓扑结构,实现终端接入广域网的需求。终端包括无线上网设备和有线上网设备。其中,无线上网设备可以通过无线方式接入路由设备,有线上网设备可以通过有线上网方式接入路由设备。路由设备用于传输终端和网络设备之间的报文。
在图1所示的组网拓扑结构中,连接同一个路由设备的多个终端(无线上网设备和有线上网设备)处于同一局域网络(local area network,LAN)中,多个终端称为局域网设备。处于不同网络中的网络设备称为广域网(wide area network,WAN)设备。在终端上网过程中出现网络故障而导致的网络卡顿、上网慢,甚至不能连接网络的情况下,现有技术难以定位网络异常的是哪个具体设备。
本申请提供一种网络诊断方法,可以用于上述图1所示的组网拓扑结构。路由设备可以通过监听终端与服务侧在通信过程中的交互信息,来确定发生故障的具体设备。
在一些实施例中,终端可以为便携式计算机(如手机)、平板电脑、笔记本电脑、个人计算机(personal computer,PC)、可穿戴电子设备(如智能手表)、智能音响、智能家电、增强现实(augmented reality,AR)\虚拟现实(virtual reality,VR)设备、车载电脑等。网络设备可以为提供网站服务的服务器、服务器集群等。本申请实施例对具体形式不做特殊限制。
以终端是手机,路由设备是路由器为例。用户可以使用手机访问应用服务器提供的网站、电子邮件、数据等资源。手机访问应用服务器的资源,手机和应用服务器之间会进行数据交互。手机(客户端)和应用服务器(服务器)之间交互数据,需要在传输层建立类似于连接的通道,即传输控制协议(transmission control protocol,TCP)连接。建立TCP连接的过程也称为三次握手。
本申请提供的网络诊断方法,路由器可以监听终端与服务器的三次握手报文。其中,路由器监听到终端向服务器发送第一次握手报文的时间,与路由器监听到服务器向终端发送第二次握手报文的时间之间的时间差,为第一次握手报文与第二次握手报文之间的握手往返时延(简称第一握手往返时延)。路由器监听到服务器向终端发送第二次握手报文的时间,与路由器监听到终端向服务器发送第三次握手报文的时间之间的时间差,为第二次握手报文与第三次握手报文之间的握手往返时延(简称第二握手往返时延)。其中,第一握手往返时延为路由器向广域网中服务器转发数据包的时延,第一握手往返时延可以理解为WAN侧时延;第二握手往返时延为路由器向局域网终端转发数据包的时延,第二握手往返时延可以理解为LAN侧时延。路由器可以根据WAN侧时延以及对应的时延阈值、LAN侧时延以及对应的时延阈值,来确定是WAN侧时延存在时延超时还是LAN侧时延存在时延超时,从而确定是WAN侧设备异常还是LAN侧设备异常,以此实现定位异常设备的效果。进一步的,在确定是WAN侧设备异常或是LAN侧设备异常之后,路由器还可以将设备异常信息上报至服务器,以使服务器根据设备异常信息进行异常分析,便于维护人员进行网络优化。
在一些实施例中,结合图2给出了本申请实施例提供的网络诊断方法所适用的一种网络架构示意图。如图2所示,该网络架构包括终端、路由器和网络设备。其中,网络设备包括探测服务器、分析服务器和其他服务器。其中,路由器可以通过与探测服务器通信,来确定路由器本身是否存在异常。比如,在终端上网异常时,路由器可以向探测服务器发送检测数据包,在可以接收到探测服务器返回的检测数据包的情况下,确定路由器正常。在本实施例中,探测服务器为预先选定的服务器,在本实施例中,探测服务器的网络确定是正常的,探测服务器作为路由设备的检测对象,路由设备向探测服务器发送检测数据包,在未接收到数据包的情况下,认为路由设备存在异常。分析服务器负责根据路由器上报的设备异常信息进行异常分析。
示例性地,以图2中标号为1的路径来说明,终端进行上网时,通过路由器上传握手报文,路由器监听终端发送的握手报文,记录接收到握手报文的时间和握手报文的传输方向,并将握手报文转发至对应的网络设备。相应地,网络设备通过路由器下发握手报文时,路由器监听网络设备发送的握手报文,记录接收到握手报文的时间和握手报文的传输方向,并将握手报文转发至对应的终端。在终端与网络设备的三次握手场景下,路由器可以获取到终端与网络设备的第一握手往返时延(WAN侧时延)和第二握手往返时延(LAN侧时延)。路由器可以根据WAN侧时延以及对应的时延阈值、LAN侧时延以及对应的时延阈值,来确定是WAN侧时延存在时延超时还是LAN侧时延存在时延超时,从而确定是WAN侧设备异常还是LAN侧设备异常。比如,若WAN侧时延大于WAN侧时延阈值,确定是WAN侧设备可能存在网络异常;若LAN侧时延大于LAN侧时延阈值,确定是LAN侧设备可能存在网络异常。可选地,路由器可以将网络异常信息上报至分析服务器。如图2中标号为5的路径。
在一些实施例中,路由器确定导致网络慢的是LAN侧设备,进一步地,路由器可以通过向LAN侧设备发送测试指令来确定到底是LAN侧的哪一个设备存在异常。如图2中标号为3的路径,路由器可以向各个终端发送测试指令,基于各个终端的测试响应,确定网络异常的终端。路由器确定导致网络慢的是WAN侧设备,进一步地,路由器可以通过向WAN侧设备发送测试指令来确定到底是WAN侧的哪一个设备存在异常。如图2中标号为4的路径,路由器向网络设备和探测服务器发送测试指令,基于网络设备和探测服务器的测试响应,确定网络异常的设备。可选地,路由器在基于测试指令确定存在异常的某个设备后可生成网络异常上报信息,并将网络异常上报信息上报至分析服务器,如图2中标号为5的路径。
在一些实施例中,路由器还可以生成网络异常提示信息,将该网络异常提示信息下发至终端中,如图2中标号为6的路径。网络异常提示信息中可以包括网络慢的原因以及改善优化网络的建议。
在一些实施例中,图3提供了一种路由器的架构示意图。其中,路由器包括硬件模块、驱动模块以及处理器等。硬件模块包括射频硬件、网口器件(LAN侧)、网口器件(WAN侧)等;驱动模块包括无线驱动(Wi-Fi驱动)、网口驱动(有线)等。其中,路由器中的射频硬件与Wi-Fi驱动实现路由器与无线上网设备的连接;路由器中的网口器件(LAN侧)与网口驱动实现路由器与有线上网设备的连接。路由器的网口器件(WAN侧)与网口驱动实现路由器与广域网中的网络设备的连接。路由器的内核处理器实现报文监听、地址转换以及数据处理。
结合图1给出的组网拓扑结构和图3给出的路由器的硬件结构,图4给出了更细节的终端通过路由器与网络设备进行通信的示意图。图4中,路由器的内核处理器包括IP协议栈、监听模块;路由器还包括应用层的诊断模块、处理模块以及管理模块。
终端包括无线上网设备和有线上网设备。无线上网设备通过路由器中的射频硬件与Wi-Fi驱动实现与路由器的连接。有线上网设备通过网口器件(LAN侧)与网口驱动实现与路由器的连接。广域网中的网络设备通过网口器件(WAN侧)与网口驱动实现与路由器的连接。
终端向路由器发送握手报文的过程中,路由器监听终端发送的握手报文,并记录接收到该握手报文的时间、握手报文传输方向等信息。进而将握手报文转发至光猫,光猫将握手报文发送至对应的运营商核心网。其中,握手报文经过宽带接入服务器、核心路由器最终达到网络设备。网络设备下发握手报文的过程中,握手报文经过宽带接入服务器、核心路由器、光猫到达路由器,路由器监听网络设备发送的握手报文,并记录其接收到握手报文的时间、握手报文传输方向等信息。进而将握手报文转发至终端。从而实现终端通过路由器与网络设备的握手报文传输。
结合路由器的各个功能模块来说明:
路由器的监听模块,用于监听终端发送的握手报文,记录接收到握手报文的时间和握手报文的传输方向,并将握手报文转发至对应的网络设备;监听网络设备发送的握手报文,记录接收到握手报文的时间和握手报文的传输方向,并将握手报文转发至对应的终端。监听模块,还用于根据终端与网络设备的握手交互,生成包括终端与网络设备的信息流记录。其中,一条信息流记录包括终端与网络设备的每一次握手的时间,比如,终端与网络设备通过TCP三次握手建立通信连接,那么信息流中包括终端向网络设备发送第一次握手报文的时间以及握手报文的传输方向、网络设备向终端发送第二次握手报文的时间以及握手报文的传输方向、终端向网络设备发送第三次握手报文的时间以及握手报文的传输方向等信息。
路由器的处理模块,用于根据信息流记录,确定信息流记录中对应的握手往返时延,也即,处理模块可以确定终端与网络设备的WAN侧时延和LAN侧时延。比如,处理模块获取网络设备向终端发送第二次握手报文的时间,与终端向网络设备发送第一次握手报文的时间之间的时间差,得到WAN侧时延。获取终端向网络设备发送第三次握手报文的时间,与网络设备向终端发送第二次握手报文的时间之间的时间差,得到LAN侧时延。若WAN侧时延大于设定的WAN侧时延阈值,确定WAN侧设备(网络设备、探测服务器)存在异常。若LAN侧时延大于设定的LAN侧时延阈值,确定LAN侧设备存在异常。处理模块,还用于基于多条信息流记录以及多条信息流记录中WAN侧时延、LAN侧时延来动态调整时延阈值,以更准确地进行WAN侧时延或WAN侧时延的判断。
可选地,路由器的监听模块也可以基于信息流记录,来确定信息流记录对应的WAN侧时延、LAN侧时延。在监听模块获取到WAN侧时延、LAN侧时延之后,可以将该信息发送至处理模块,处理模块根据多条信息流记录以及多条信息流记录中WAN侧时延、LAN侧时延来动态调整时延阈值。
路由器的管理模块,用于进行终端的发现与管理。示例性地,管理模块可以获取终端的上线或下线状态,确定监测范围内的上线设备和下线设备。管理模块还可以对终端进行定期探测,来确定终端的实际状态。可选地,管理模块可以根据动态主机配置协议(dynamic host configuration protocol,DHCP)和地址解析协议(address resolutionprotocol,ARP)实现终端的管理。
示例性地,针对终端为动态IP地址,动态IP地址为自动分配的地址。路由器在收到终端1的DHCP请求并且需要向终端1返回ACK报文的情况下,由路由器中管理DHCP标准的模块增加关于终端1的信息表项,并为终端1分配动态互联网协议地址(internet protocoladdress,IP地址),确定终端1处于上线状态。示例性地,表项可以为lease表项。路由器中管理DHCP标准的模块向管理模块发送消息通知终端1处于上线状态,其中,所发送的消息携带的参数包括终端1的局域网地址(media access control address,MAC地址)、网口名、IP地址;格式可以为6C:02:E0:66:23:59、eth0.3、192.168.2.111。
针对终端为静态IP地址,其中,静态IP地址为固定IP地址。在路由器收到终端2的ARP报文后,解析其中的MAC地址、网口名、IP地址,如果确定IP地址是在LAN网段,且该MAC地址没有被管理模块记录过,确定终端2是静态IP设备,确定终端2处于上线状态。路由器中管理DHCP标准的模块向管理模块发送消息通知终端2处于上线状态,其中,所发送的消息携带的参数包括终端2的局域网地址(media access control address,MAC地址)、网口名、IP地址;格式与上述消息格式可以相同。
管理模块可以对至少一个终端定期进行ARP探测。示例性地,探测频率可以为5分钟一次。若路由器未收到终端3返回的ARP响应,确定终端3处于下线状态。路由器中管理DHCP标准的模块向管理模块发送消息通知终端3处于下线状态。其中,所发送的消息携带的参数包括终端3的局域网地址(media access control address,MAC地址)、网口名、IP地址;格式与上述消息格式可以相同。
在一些实施例中,示例性地,管理模块所记录的单个终端的信息可包括如下表1所示内容:
表1
MAC地址 | 字符串,如11:22:33:44:55:66 |
网口名 | 字符串,如eth0.3,wl0等 |
IP地址 | 整型,如192.168.2.111 |
探测结果 | 子结构体 |
单个终端的管理信息包括该终端的MAC地址、网口名、IP地址以及该终端对应的探测结果。其中,探测结果包括该设备的ping检测状态、时间、三次握手检测结果、1-2次握手往返时延(WAN侧时延)与2-3次握手往返时延(LAN侧时延)、Wi-Fi信号强度、Wi-Fi协商速率、ping网关时延、ping广域网时延、ping备用网时延等信息。
可选地,管理模块可定义一个参数来表示终端是处于上线状态还是处于下线状态。示例性地,参数可以定义为bActive。管理模块在完成对终端的上线、下线管理之后,还可以向监听模块发送请求,该请求用于指示监听模块只对处于上线状态的终端进行信息流分析。可选地,该请求中可以携带处于上线状态的终端的信息,例如,终端的MAC地址、IP地址、设备标识等。监听模块根据处于上线状态的终端的信息,对处于上线状态的终端的信息流的获取与分析。
路由器的诊断模块,用于在处理模块确定终端与网络设备之间存在WAN侧时延超时、LAN侧时延超时中至少一种情况时,向对应的WAN侧设备、LAN侧设备发送测试指令,根据WAN侧设备、LAN侧设备返回的测试响应,确定存在网络异常的设备。示例性地,诊断模块在确定WAN侧时延超时的情况下,可以对WAN侧设备进行ping检测,向WAN侧设备发送ping包,根据接收到WAN侧设备返回的ping包的时间来确定WAN侧设备是否异常。示例性地,诊断模块可以向LAN侧有线设备、LAN侧无线设备、WAN侧设备(网络设备)、光猫等设备进行测试。
在一些实施例中,图5给出了另一种路由器各个模块执行网络诊断方法的示意图。图5中标号为1的路径表示,终端进行上网时,通过路由器的Wi-Fi驱动或网口驱动上传握手报文,路由器的监听模块监听握手报文,记录接收到握手报文的时间和握手报文的传输方向,并将握手报文转发至对应的网络设备。相应地,网络设备通过路由器的网口驱动下发握手报文时,路由器的监听模块监听网络设备发送的握手报文,记录接收到握手报文的时间和握手报文的传输方向,并将握手报文转发至对应的终端。可选地,监听模块可以生成包括终端与网络设备的发送握手报文的时间、网络设备回应握手报文的时间的信息流记录。
监听模块可以将多条信息流记录发送至处理模块。如图5中标号为2的路径,处理模块根据多条信息流记录,确定各个信息流记录对应的终端与网络设备的WAN侧时延和LAN侧时延。若WAN侧时延大于设定的WAN侧时延阈值,确定WAN侧设备(网络设备)存在异常。若LAN侧时延大于设定的LAN侧时延阈值,确定LAN侧设备存在异常。
处理模块在确定网络慢的异常点之后,可以生成网络异常上报信息,并将网络异常上报信息上报至分析服务器,如图5中标号为3的路径。处理模块,还用于基于多条信息流记录以及多条信息流记录中WAN侧时延、LAN侧时延来动态调整时延阈值,以更准确地进行WAN侧时延或WAN侧时延的判断。
可选地,监听模块也可以根据信息流记录确定各个信息流记录对应的终端与网络设备的握手往返时延。在确定存在握手往返时延的情况下,监听模块可以触发诊断模块进行相应设备的测试,如图5中标号为4的路径。
诊断模块可以向对应的WAN侧设备、LAN侧设备发送测试指令,根据WAN侧设备、LAN侧设备返回的测试响应,确定存在网络异常的设备。示例性地,如图5中标号为5的路径,诊断模块在确定LAN侧时延超时的情况下,可以对LAN侧设备进行ping检测,向LAN侧设备发送ping包,根据接收到LAN侧设备返回的ping包的时间来确定LAN侧设备是否异常。诊断模块在确定WAN侧时延超时的情况下,可以对WAN侧设备(网络设备)进行ping检测,如图5中标号为6的路径,向WAN侧设备发送ping包,根据接收到WAN侧设备返回的ping包的时间来确定WAN侧设备是否异常。
在一些实施例中,诊断模块完成对WAN侧设备、LAN侧设备的测试之后,生成网络异常上报信息,将网络异常上报信息上报至分析服务器,如图5中标号为7的路径。
在一些实施例中,诊断模块还可以生成网络异常提示信息,将该网络异常提示信息下发至终端中,如图5中标号为8的路径。网络异常提示信息中可以包括网络慢的原因以及改善优化网络的建议。
在一些实施例中,管理模块可以对终端进行上线与下线的探测管理,如图5中标号为9的路径;此外,管理模块还可以通过监听模块获取终端与网络设备的三次握手检测结果,如图5中标号为10的路径。
图6给出了一种网络诊断方法的流程示意图,其中图6涉及到路由器的管理模块、诊断模块、监听模块以及处理模块之间的交互,包括:
路由器的管理模块对终端进行上线与下线管理与状态探测;并将设备管理信息发送至监听模块,监听模块只对上线的终端进行握手监听。
路由器的监听模块对上线的终端进行握手监听,获取各个终端的握手时延信息。其中,握手时延信息中包括终端的WAN侧时延和LAN侧时延。监听模块将握手时延信息发送至处理模块。
路由器的处理模块在初始化定时事件之后,根据接收到的握手时延信息和获取到的时延阈值,判断终端是否存在时延超时,并向监听模块返回时延超时信息。若WAN侧时延大于WAN侧时延阈值,则WAN侧时延超时,时延超时信息中包括WAN时延超时标记;若LAN侧时延超时,时延超时信息中包括LAN侧时延超时标记。存在WAN侧时延标记或LAN侧时延标记的设备为疑似异常设备。
监听模块将时延超时信息上报至诊断模块。
路由器的诊断模块根据接收到的各个终端的握手时延信息,针对某一个终端的握手时延信息,诊断模块基于其包含的WAN侧时延标记或LAN侧时延标记,对该终端通信过程中涉及到的疑似异常设备进行测试,诊断模块可以向异常设备发送测试指令,根据异常设备返回的测试响应判断异常设备是否确实存在网络异常。示例性地,诊断模块对异常进行ping检测,得到该终端对应的ping检测结果。其中,ping检测结果中包括异常设备、异常设备异常的原因等信息。可选地,诊断模块可以将ping检测结果上报至记录服务器或分析服务器。
路由器的处理模块还可以定时获取终端的采样信息。可选地,处理模块可以定时定量随机获取终端的采样信息,并将获取到的采样信息上报至分析服务器。例如,处理模块一天获取任意一个设备的采样信息,将该设备的一条采样信息上报至分析服务器。这样可以减少分析服务器的数据处理量,节省分析服务器的计算资源、传输资源和存储空间。
基于上述网络诊断方法,路由器可以基于终端与网络设备之间的握手往返时延与初步判断导致上网设备网络慢的原因是在LAN侧设备还是在WAN侧设备;进一步地,还可以通过向疑似异常设备发送测试指令,根据疑似异常设备的测试响应定位到导致上网设备网络慢的LAN侧或WAN侧的某一个设备,实现了网络慢场景下的异常点的准确定位。并且,路由器在确定异常点之后,还可以生成网络异常上报信息上报至分析服务器,以进行异常点的异常分析与优化,提高了用户体验。
在一些实施例中,本申请提供的一种路由器网络诊断方法可适应于网际协议版本4(internet protocol version 4,IPv4)、网际协议版本6(internet protocol version6,IPv6)中。本申请所提供的路由器网络诊断方法包括根据终端与网络设备之间通信握手往返时延确定疑似异常设备、以及通过对疑似异常设备进行网络测试来确定异常设备两大部分,以下分别从两部分来介绍。
在一些实施例中,提供一种根据终端与网络设备之间通信握手往返时延以及握手报文传输方向确定网络异常设备的方法,路由器可以将与路由器强相关的LAN接入设备(终端)及光猫WAN的连接情况作为检测点进行统计和分析,从而推断数据转发过程中的异常路径。终端接入网络通常通过传输控制协议TCP进行通信。TCP是面向连接的可靠的传输协议,可以保证一定有收发双向报文,本实施例基于TCP这一特点进行网络的连通性探测,探测结果比较可靠。
在介绍根据终端与网络设备之间通信握手往返时延以及握手报文传输方向确定网络异常设备的方法之前,先对TCP三次握手进行简单说明。示例性地,图7给出了一种终端(比如,终端)与网络设备(比如,服务器)的TCP三次握手流程的示意图,参考图7所示,终端与服务器的TCP三次握手流程包括:
(1)终端向服务器发送第一次握手报文(握手请求信息),其中,握手报文中包括syn数据包:终端将TCP握手报文的标志位SYN置为1,随机产生一个序号值seq=J,将序号值保存在TCP握手报文的首部的序列号(sequence number)字段里,并指明终端要连接的服务器的端口,得到syn数据包。终端向服务器发送syn数据包。可选地,在终端发送握手报文完毕后,终端进入SYN_SENT状态,等待服务器确认。
(2)服务器向终端发送第二次握手报文(握手响应信息),其中,握手报文中包括synack数据包:服务器收到syn数据包后,对syn数据包进行解析,检查syn数据包中的标志位SYN是否为1、序号值seq是否为J。在获取到SYN为1、seq=J时,服务器由标志位SYN=1确定终端请求建立连接。在这种情况下,服务器将TCP报文的标志位SYN和ACK都置为1,设定ack=J+1,随机产生一个序号值seq=K,得到synack数据包。服务器将synack数据包发送给终端,等待终端确认连接请求,此时,服务器进入SYN_RCVD状态。
(3)终端向服务器发送第三次握手报文(握手确认信息),其中,握手报文中包括ack数据包:终端收到synack数据包后,对synack数据包进行解析,检查synack数据包中的标志位SYN是否为1、ACK是否为1、序号值seq是否为k、ack是否为J+1。如果SYN为1、ACK为1、序号值seq为k、ack为J+1,则将标志位ACK置为1,ack置为K+1,得到ack数据包。终端将ack数据包发送给服务器。
(4)服务器接收到ack数据包,对ack数据包进行解析,检查ack数据包的ack是否为K+1,ACK是否为1。如果ack为K+1、ACK为1,则连接建立成功,终端和服务器进入ESTABLISHED状态,完成三次握手。此时,终端与服务器之间可以开始传输数据。
通过以上(1)-(4)实现终端与服务器的TCP三次握手,并建立终端与服务器之间的通信连接。
在一些实施例中,图8给出了一种终端通过路由器实现与服务器的TCP三次握手的流程示意图。如图8所示,终端通过路由器与服务器的TCP三次握手流程包括:
(1)终端向路由器发送第一次握手报文(握手请求信息),其中,握手报文中包括syn数据包:终端将TCP握手报文的标志位SYN置为1,随机产生一个序号值seq=J,将序号值保存在TCP握手报文的首部的序列号字段里,并指明终端要连接的服务器的端口,得到syn数据包。终端向路由器发送syn数据包。可选地,在终端发送syn数据包完毕后,终端进入SYN_SENT状态,等待服务器确认。
(2)路由器实现第一次握手报文的转发:路由器接收到syn数据包,进行地址转换,根据目的设备地址,将syn数据包转发至对应的服务器。
(3)服务器向终端发送第二次握手报文(握手响应信息),其中,握手报文中包括synack数据包:服务器收到syn数据包后,对syn数据包进行解析,检查syn数据包中的标志位SYN是否为1、序号值seq是否为J。在确定SYN为1、seq=J时,服务器由标志位SYN=1确定终端请求建立连接。在这种情况下,服务器将TCP报文的标志位SYN和ACK都置为1,设定ack=J+1,随机产生一个序号值seq=K,得到synack数据包。服务器将synack数据包发送给路由器,等待终端确认连接请求,此时,服务器进入SYN_RCVD状态。
(4)路由器实现第二次握手报文的转发:路由器接收到synack数据包,进行地址转换,根据源设备地址,将synack数据包转发至对应的终端。
(5)终端向服务器发送第三次握手报文(握手确认信息),其中,握手报文中包括ack数据包:终端收到synack数据包后,对synack数据包进行解析,检查synack数据包中的标志位SYN是否为1、ACK是否为1、序号值seq是否为k、ack是否为J+1。如果SYN为1、ACK为1、序号值seq为k、ack为J+1,则将标志位ACK置为1,ack置为K+1,得到ack数据包。终端将ack数据包发送给路由器。
(6)路由器实现第三次握手报文的转发:路由器接收到ack数据包,进行地址转换,根据目的设备地址,将ack数据包转发至对应的服务器。
(7)服务器接收到ack数据包,对ack数据包进行解析,检查ack数据包的ack是否为K+1,ACK是否为1。如果ack为K+1、ACK为1,则连接建立成功,终端和服务器进入ESTABLISHED状态,完成三次握手。此时,终端可以通过路由器与服务器传输数据。
通过以上(1)-(7)实现终端通过路由器与服务器的TCP三次握手,并建立终端、路由器与服务器之间的通信连接。
在终端通过路由器与服务器进行TCP三次握手过程中,路由器可以通过监听模块设定监听点来监听TCP三次握手报文。可选地,可以通过路由器的内核netfilter框架的iptables调用链,来实现监听模块监听TCP三次握手报文。iptables是netfilter的管理工具,通过iptables调用链可以实现TCP三次握手报文。示例性地,netfilter可以在路由器的数据包处理流程的若干位置放置多个监听点(hook),在每个监听点定义相应地回调函数进行数据处理,其中每个链的回调函数都可以根据内核标准结构体中的信息分析流的情况确定。
图9给出了一种iptables调用链的示意图。参考图9,iptables调用链的规则为,当一个数据包进入路由器的网卡时,首先进入路由前(PREROUTING)链,路由器的内核根据数据包目的设备IP判断是否需要转送出去。如果数据包是进入本机的,则进入输入(INPUT)链,数据包到了INPUT链后,本机的任何进程都会收到该数据包。本机上运行的程序可以发送数据包,数据包会经过输出(OUTPUT)链,到达路由后(POSTROUTING)链通过路由器的网卡输出。如果数据包是要转发出去的,且路由器的内核允许转发,数据包会经过转发(FORWARD)链,到达POSTROUTING链通过网卡输出。
结合图8与图9可知,路由器在接收到终端发送的syn数据包之后,基于目的设备IP确定syn数据包是需要转发出去的数据包,syn数据包会基于(POSTROUTING)链通过网卡输出。基于此,参考图9所示,在POSTROUTING链设定监听点1(图9中的标号1的监听点),监听模块来监听终端发送的syn数据包并记录路由器接收syn数据包的第一时间。路由器接收synack数据包,可在PREROUTING链设定监听点2(图9中的标号2的监听点),监听模块来监听服务器发送的synack数据包并记录路由器接收到synack数据包的第二时间。与监听点1相应地,终端发送ack数据包,在POSTROUTING链设定监听点3(图9中的标号3的监听点),监听模块来监听终端发送的syn数据包以及记录路由器接收数据包的第三时间。在一些实施例中,可选地,当路由器接收到synack数据包的第二时间超过设定的时间阈值,认为此条信息流WAN侧设备网络异常。当路由器接收ack数据包的第三时间超过设定的时间阈值,认为此条信息流LAN侧设备网络异常。
在一些实施例中,图10给出了又一种路由器内核netfilter框架的iptables调用链与监听模块监听TCP三次握手的流程图。图10中,终端开始上网,通过路由器向服务器发送第一次握手报文,第一次握手报文中携带syn数据包。iptables调用链中的转发(FORWARD)链监听syn数据包,同时通知到监听模块,监听模块新增该终端的信息流的序列信息、syn时间等数据。iptables调用链中的路由后(POSTROUTING)链监听syn数据包,通知到监听模块,监听模块更新该终端的信息流的syn时间。iptables调用链中的路由前(PREROUTING)链监听synack数据包,同时通知监听模块,监听模块更新该终端的信息流的synack时间。监听模块还可以基于synack时间和syn时间计算终端信息流的三次握手WAN侧时延,WAN侧时延为syn<->synack(RTT1)。POSTROUTING链监听synack数据包,同时通知监听模块,监听模块更新该终端的信息流的synack时间和序列信息。PREROUTING链监听ack数据包,同时通知监听模块,监听模块基于synack时间和ack时间计算终端信息流的三次握手LAN侧时延,LAN侧时延为synack<->ack(RTT2)。
在一些实施例中,若RTT1大于WAN侧时延阈值,则确定WAN侧时延超时;若RTT2大于LAN侧时延阈值,则确定LAN侧时延超时,通过iptables调用链与监听模块,实现对终端与服务器之间三次握手的时延的监听和判断。
在另一些实施例中,图11给出了一种路由器在终端与服务器进行三次握手过程中设定监听点的示意图。
参考图11,在路由器在接收到终端发送的syn数据包之后,设定4号监听点。4号监听点,用于判断某条信息流是否源IP地址和br0同网段,以及目的IP地址和br0不同网段。其中,源IP指的是终端IP地址,目的IP地址指的是网络设备IP地址;br0指的是网桥接口地址。若源IP地址和br0同网段,且,目的IP地址和br0不同网段,则说明是终端发往网络设备的TCP连接,在这种情况下,当前信息流才能作为路由器监听的流。可选地,路由器可以将信息流加入分析链表。链表中首先以MAC地址对应的设备信息作为节点,每个节点下又存在由多条该设备的信息流组成的子链表。
可选地,在一些实施例中,路由器也可以不在图11所示的4号点设定监听点,而是在接收到syn数据包之后,便触发执行判断信息流是否源IP地址和br0同网段,以及目的IP地址和br0不同网段的操作。需要说明的是,4号监听点的设定要在路由器进行地址转换之前,也即,在路由器转换地址向网络设备转发握手报文之前,路由器根据终端发送的握手报文中的地址转换之前的源IP地址和br0、以及目的IP地址和br0进行判断。
在路由器将终端发送的syn数据包转发至网络设备时,设定5号监听点,5号监听点用于记录信息流TCP一次握手WAN侧外发的时间点t1。
在路由器接收到服务器发送synack数据包时,设定6号监听点,6号监听点用于记录信息流TCP二次握手到达路由器WAN侧的时间点t2。
在路由器将服务器发送synack数据包转发至终端时,设定7号监听点,7号监听点用于记录信息流TCP二次握手从LAN侧出来的时间点t3。
在路由器接收到终端发送syn数据包时,设定8号监听点,8号监听点用于记录信息流TCP三次握手到达路由器LAN侧的时间点t4。
在本实施例中,t2与t1之间的时间差即为WAN侧时延;t4与t3的时间差为LAN侧时延。若WAN侧时延大于预设的时延阈值,则确定WAN侧时延超时,标记上网慢是WAN侧设备触发;若LAN侧时延大于预设的时延阈值,则确定LAN侧时延超时,标记上网慢是LAN侧设备触发。
结合到路由器的监听模块和处理模块来说明根据终端与网络设备之间通信握手往返时延以及握手报文传输方向确定网络异常设备的方法。图12给出了终端、路由器的监听模块、服务器、路由器的处理模块之间的交互图,包括:
S101、路由器启动,处理模块初始化,处理模块定时轮询当前记录的设备时延信息。
在一些实施例中,路由器上电后,会启动处理模块,处理模块进行模块状态初始化。初始化之后,处理模块对监听模块进行定时轮询,获取监听模块所记录的所有信息流。示例性地,定时轮询可以为每10秒一次轮询。
S102、终端向路由器发送syn数据包。
其中,终端向路由器发送TCP握手过程中的第一次握手报文,第一次握手报文中携带了syn数据包。
S103、路由器的监听模块记录通过路由器WAN侧外发syn数据包的第一时间点。
在一些实施例中,服务器在接收到syn数据包之后,需要根据syn数据包中对应的服务器的端口,将syn数据包通过WAN侧网口外发至对应的服务器。在服务器将通过WAN侧网口外发syn数据包时,监听模块记录当前外发时间点,作为当前信息流中TCP一次握手WAN侧网口外发syn数据包的第一时间点t1。
S104、路由器的监听模块将syn数据包转发至服务器。
在一些实施例中,路由器的监听模块根据syn数据包中对应的服务器的端口,将syn数据包转发至服务器。
S105、路由器的监听模块接收服务器发送的synack数据包。
服务器收到syn数据包后,对syn数据包进行解析,根据syn数据包中的数据生成synack数据包。服务器向路由器发送的携带synack数据包的第二次握手报文。
路由器的监听模块接收服务器发送的synack数据包。
S106、路由器的监听模块记录synack数据包到达路由器WAN侧的第二时间点。
在一些实施例中,路由器的监听模块接收到服务器发送的synack数据包。监听模块记录synack数据包到达路由器WAN侧的第二时间点,也即,监听模块记录当前信息流中TCP二次握手synack数据包到达路由器WAN侧的第二时间点t2。
可选地,第一时间点t1为路由器WAN侧发出数据的时间点,第二时间点t2为路由器WAN侧接收数据的时间点,监听模块可以获取第二时间点与第一时间点的时间差(t2-t1),作为WAN侧时延差。示例性地,若WAN侧时延大于WAN侧时延阈值,则确定WAN侧时延超时,WAN侧网络存在网络异常。
S107、路由器的监听模块记录通过LAN侧向终端发送synack数据包的第三时间点。
在一些实施例中,监听模块记录通过LAN侧向终端发送synack数据包的第三时间点t3。
S108、路由器的监听模块通过LAN侧向终端发送synack数据包。
在一些实施例中,路由器的监听模块根据synack数据包中的源设备地址,可以将synack数据包转发至对应的终端。
S109、路由器的监听模块接收终端发送的ack数据包。
在一些实施例中,终端在接收到synack数据包后,对synack数据包进行解析,根据synack数据包中的数据生成ack数据包。终端将携带ack数据包的第三次握手报文发送给路由器。
路由器的监听模块捕获终端发送的ack数据包。
S110、路由器的监听模块记录ack数据包到达路由器LAN侧的第四时间点。
在一些实施例中,路由器接收终端发送的ack数据包。监听模块记录ack数据包到达路由器LAN侧的第四时间点,也即,监听模块记录当前信息流中TCP三次握手ack数据包到达路由器LAN侧的第四时间点t4。
可选地,第三时间点t3为路由器LAN侧发出数据的时间点,第四时间点t4为路由器LAN侧接收数据的时间点,监听模块可以获取第四时间点与第三时间点的时间差(t4-t3),作为LAN侧时延。示例性地,若LAN侧时延大于LAN侧时延阈值,则确定LAN侧时延超时,LAN侧网络存在网络异常。
S111、路由器的监听模块将ack数据包转发至服务器。
在一些实施例中,路由器的监听模块实现第三次握手报文的转发:路由器的监听模块捕获到ack数据包,根据服务器的端口,将ack数据包转发至对应的服务器。
在一些实施例中,终端A通过路由器与服务器B交互形成一条终端A与服务器B的信息流,该信息流中包括监听模块记录的终端A与服务器B三次握手过程中,各个数据包对应的各个时间点,比如,S102的第一时间点t1、S104的第二时间点t2、S105的第三时间点t3以及S108的第四时间点t4;信息流中还包括终端A的信息与服务器B的信息,作为当前信息流的标识。
可选地,监听模块在获取到第一时间点t1、第二时间点t2之后,可以获取第二时间点与第一时间点的时间差t2-t1,作为WAN侧时延。在获取到第三时间点t3、第四时间点t4之后,获取第四时间点与第三时间点之间的时间差t4-t3,作为LAN侧时延。WAN侧时延与LAN侧时延也可记录在终端A与服务器B的信息流中。
在一些实施例中,终端包括多个,监听模块对各个终端与其对应的服务器之间的握手、通信过程进行监听,可生成多条各个终端对应的信息流。可选地,监听模块可以将多条信息流存储至路由器的存储器中,也可以将多条信息流存储至监听模块的存储空间中。
S112、处理模块根据时延判断算法对获取到的多条信息流进行时延超时判断。
其中,处理模块的判断过程可参考图13所示,图13给出了一种处理模块执行时延超时判断算法的流程图,包括:
S1121、处理模块获取WAN侧时延阈值和LAN侧时延阈值。
在一些实施例中,处理模块可以从路由器的存储器中获取WAN侧时延阈值和LAN侧时延阈值,也可以从路由器的共享内存中获取WAN侧时延阈值和LAN侧时延阈值。其中,存储器或共享内存中可以保存WAN侧时延阈值的默认值Q1、LAN侧时延阈值的默认值Q2。在判断模块进行阈值动态调整之后,存储器或共享内存中还可以保存动态调整之后的WAN侧时延阈值、动态调整之后的LAN侧时延阈值。
可选地,如果处理模块是启动之后第一次获取WAN侧时延阈值和LAN侧时延阈值,处理模块获取到的是WAN侧时延阈值的默认值Q1和LAN侧时延阈值的默认值Q2。
可选地,在一些实施例中,处理模块可设定定时进行时延判断,来减少处理模块的消耗。示例性地,在处理模块确定定时进行时延判断的逻辑到期,则触发执行基于所记录的时延信息进行时延判断的操作。
S1122、处理模块遍历当前获取到所有信息流,判断是否遍历完所有的信息流。
在一些实施例中,处理模块可以遍历从监听模块获取到的所有信息流,遍历获取到的信息流确定是否存在WAN侧时延超时或LAN侧时延超时。若遍历完毕,也即,当前所有的信息流已经完成时延判断,执行S1115以及S1116。若没有遍历完毕,也即,当前所获取到的信息流还有未进行时延判断的,执行S1113。
S1123、处理模块判断信息流是否存在WAN侧时延超时或LAN侧时延超时。
在一些实施例中,处理模块以滑动窗口逻辑进行判断,示例性地,窗口尺寸可以为5。示例性地,处理模块遍历每5条信息流,判断是否至少存在4条信息流出现了WAN侧时延或LAN侧时延。
可选地,结合图12,若信息流中包括第一时间点、第二时间点、第三时间点、第四时间点,处理模块需要先计算第二时间点与第一时间点的第一时间差(WAN侧时延)。将第一时间差与WAN侧时延阈值进行比较,若第一时间差大于WAN侧时延阈值,则确定该信息流存在WAN侧时延超时。处理模块计算第四时间点与第三时间点的第二时间差(LAN侧时延)。将第二时间差与LAN侧时延阈值进行比较,若第二时间差大于LAN侧时延阈值,则确定该信息流存在LAN侧时延超时。
S1124、如果存在WAN侧时延超时,处理模块标记WAN侧时延超时;如果存在LAN侧时延超时,处理模块标记LAN侧时延超时。
在一些实施例中,如果每5条信息流中存在4条信息流出现时延超时,处理模块则对这5条信息流进行时延超时标记。其中,如果4条信息流均是LAN侧时延大于LAN侧时延阈值,则标记LAN侧时延超时;如果4条信息流均是WAN侧时延大于WAN侧时延,则标记WAN侧时延超时。若4条信息流中既包括WAN侧时延超时的信息流,又包括LAN侧时延超时的信息流,则标记WAN侧时延超时以及LAN侧时延超时。在标记完时延超时之后,处理模块继续判断其他流。
如果每5条信息流中不满足4条信息流存在时延超时,处理模块继续遍历剩余的信息流。
S1125、处理模块获取一条信息流的时延信息,上报至分析服务器。
在一些实施例中,如果处理模块确定当前记录的信息流均遍历完毕,则从所有信息流中,随机获取一条信息流,将该信息流的时延信息上报至分析服务器。其中,信息流的时延信息指的是信息流的WAN侧时延数值和LAN侧时延数值。
在一些实施例中,分析服务器接收路由器的处理模块上传的信息流的时延信息。可选地,分析服务器可以根据多条信息流中的时延数值,确定动态时延阈值。比如,将多条信息流中的时延数值排序,取中位值作为动态时延阈值;或者,取时延数值的平均值作为动态时延阈值;或者,取时延数值中的指定数值作为动态时延阈值。可选地,指定数值可以为第N个数值。比如,分析服务器采用90%原则计算动态时延阈值。示例性地,分析服务器将获取到的所有信息流按照各个信息流的延时数值进行排序,可选地,可以按照各个信息流的时延数值从小到大排序,达到90%的时延数值即确定为动态时延阈值。比如,分析服务器获取到的信息流总数量为100,按照90%原则,时延数值从小到大的第90个信息流的时延数值为动态时延阈值。比如,100个信息流中,从小到大排序第90个信息流的时延数值为W,那么将W确定为动态时延阈值。
其中,LAN侧时延阈值与WAN侧时延阈值均可以按照90%原则来确定。示例性地,将所有信息流按照各个信息流的LAN侧延时数值进行从小到大排序,达到90%的LAN侧时延数值即确定为LAN侧动态时延阈值。例如,总的信息流数量为100,按照90%原则,时延数值从小到大的第90个信息流的LAN侧时延数值为LAN侧动态时延阈值。示例性地,将所有信息流按照各个信息流的WAN侧延时数值进行从小到大排序,达到90%的WAN侧时延数值即确定为WAN侧动态时延阈值。例如,总的信息流数量为100,按照90%原则,时延数值从小到大的第90个信息流的WAN侧时延数值为WAN侧动态时延阈值。
在获取到LAN侧动态时延阈值和WAN侧动态时延阈值之后,分析服务器可以将LAN侧动态时延阈值和WAN侧动态时延阈值发送至路由器的处理模块,使得处理模块基于LAN侧动态时延阈值和WAN侧动态时延阈值执行S1111。
S1126、处理模块判断所遍历的所有信息流中是否存在时延超时标记,若存在至少一种时延超时标记,执行S1117;若不存在任意一种时延超时标记,执行S1118。
S1127、处理模块将当前遍历得到的存在时延超时标记的信息流的时延信息上报至分析服务器,并等待下个延时判断周期到达,返回执行S1111。
其中,时延信息包括各个信息流的时延数值、时延超时类型等。比如,信息流1的时延数值为Q1,时延超时类型为LAN侧时延超时。
S1128、处理模块等到下个延时判断周期到达,返回执行S1111。
在上述方法中,路由器的监听模块通过WAN侧外发数据包以及通过WAN侧接收数据包时记录相应的时间点,计算时间差,得到WAN侧时延。监听模块通过LAN侧发送数据包以及通过LAN侧接收数据包时记录相应地时间点,计算时间差,得到LAN侧时延。监听模块每一条信息流的WAN侧时延与LAN侧时延保存至存储器中,以提供给处理模块进行时延判断。通过上述S1111-S1118,路由器的处理模块可以得到LAN侧动态时延阈值和WAN侧动态时延阈值,并且可以基于LAN侧动态时延阈值和WAN侧动态时延阈值对从监听模块获取到的信息流进行延时超时判断,在信息流存在WAN侧延时超时的情况下,确定信息流中对应的设备存在WAN侧网络异常;在信息流存在LAN侧延时超时的情况下,确定信息流中对应的设备存在LAN侧网络异常。从而实现了在基于路由器上网的环境下,定位导致网络慢是由WAN侧设备触发或是LAN侧设备触发的效果,实现了网络异常设备的定位,优化用户体验。
在一些实施例中,路由器的监听模块确定WAN侧时延与LAN侧延时的方法与图12所提供的方法不同。图14提供了另一种根据终端(终端)与网络设备(服务器)之间通信握手往返时延以及握手报文传输方向确定网络异常设备的方法,包括:
S201、路由器启动,处理模块初始化,定时轮询当前记录的设备时延信息。
在一些实施例中,路由器上电后,会启动处理模块,处理模块进行模块状态初始化。初始化之后,处理模块对监听模块进行定时轮询,获取监听模块所记录的所有信息流。示例性地,定时轮询可以为每10秒一次轮询。
S202、终端向路由器发送syn数据包。
其中,终端向路由器发送TCP握手过程中的第一次握手报文,第一次握手报文中携带了syn数据包。
S203、路由器的监听模块记录接收syn数据包的第五时间点。
在一些实施例中,监听模块在捕获到syn数据包之后,监听模块记录接收syn数据包的第五时间点t5。
S204、路由器的监听模块将syn数据包转发至服务器。
在一些实施例中,路由器根据syn数据包中对应的服务器的端口,将syn数据包转发至对应的服务器。
S205、路由器的监听模块捕获服务器发送的synack数据包。
在一些实施例中,服务器收到syn数据包后,对syn数据包进行解析,根据syn数据包中的数据生成synack数据包。服务器将携带synack数据包的第二次握手报文发送至路由器。路由器的监听模块捕获服务器基于syn数据包向路由器发送synack数据包。
S206、路由器的监听模块记录接收到synack数据包的第六时间点。
在一些实施例中,监听模块捕获到synack数据包,记录接收到synack数据包的第六时间点t6。
在一些实施例中,接收到synack数据包的第六时间点t6与接收syn数据包的第五时间点t5之间的时间差(t6-t5)为WAN侧时延。示例性地,若WAN侧时延大于预设的WAN时延阈值,则确定WAN侧时延超时,WAN侧网络存在网络异常。
S207、路由器的监听模块向终端发送synack数据包。
在一些实施例中,路由器的监听模块根据synack数据包中的源设备地址,可以将synack数据包转发至对应的终端。
S208、路由器的监听模块捕获终端发送的ack数据包。
在一些实施例中,终端在接收到synack数据包后,对synack数据包进行解析,根据synack数据包中的数据生成ack数据包。终端将携带ack数据包的第三次握手报文发送给路由器。
路由器的监听模块捕获终端发送的ack数据包。
S209、路由器的监听模块记录接收到ack数据包的第七时间点。
在一些实施例中,路由器的监听模块在捕获到ack数据包时,记录接收到ack数据包的第七时间点t7。
在一些实施例中,接收到ack数据包的第七时间点t7与接收到synack数据包的第六时间点t6之间的时间差(t7-t6)为LAN侧时延。示例性地,若LAN侧时延大于LAN侧时延阈值,则确定LAN侧时延超时,LAN侧网络存在网络异常。
S210、路由器的监听模块将ack数据包转发至服务器。
在一些实施例中,路由器的监听模块实现第三次握手报文的转发:路由器的监听模块捕获到ack数据包,根据服务器的端口,将ack数据包转发至对应的服务器。
在一些实施例中,终端A通过路由器与服务器B交互形成一条终端A与服务器B的信息流,该信息流中包括监听模块记录的终端A与服务器B三次握手过程中,各个数据包对应的各个时间点,比如,S203的第五时间点t5、S206的第六时间点t6以及S209的第七时间点t7;信息流中还包括终端A的信息与服务器B的信息,作为当前信息流的标识。
可选地,监听模块在获取到第五时间点t5、第六时间点t6之后,可以获取第六时间点t6与第五时间点t5的时间差(t6-t5),作为WAN侧时延。在获取到第六时间点t6、第七时间点t7之后,获取第七时间点t7与第六时间点t6之间的时间差(t7-t6),作为LAN侧时延。WAN侧时延与LAN侧时延也可记录在终端A与服务器B的信息流中。
在一些实施例中,终端包括多个,监听模块对各个终端与其对应的服务器之间的握手、通信过程进行监听,可生成多条各个终端对应的信息流。可选地,监听模块可以将多条信息流存储至路由器的存储器中,也可以将多条信息流存储至监听模块的存储空间中。
S211、处理模块根据时延判断算法对获取到的多条信息流进行时延判断。
在一些实施例中,处理模块根据时延判断算法对获取到的多条信息流进行时延判断的方法可参考上述S111以及S1111-S1118所提供的方法,本实施例不做赘述。
在一些实施例中,路由器的监听模块可以将记录的信息流上报至分析服务器,路由器的处理模块可以将每一条信息流的时延判断结果上报至分析服务器。可选地,路由器的监听模块、处理模块上报给分析服务器的结构体可以包括如下表所示内容,包括信息流对应的设备的MAC地址、三次握手时延判断结果以及握手往返时延。其中每项参数为:
表2
可选地,监听模块、处理模块可以将多个信息流对应的设备握手时延信息组成一个结构体数组,该结构体数组也为各个设备的握手时延检测结果。将其上报至分析服务器;同时,监听模块还可以将结构体数组上报至诊断模块,诊断模块在接收到结构体数组之后,触发进行ping检测操作。本实施例信息结构体不做限定。
在上述方法中,路由器的监听模块在每捕获一次握手报文的时候,记录响应的数据包的时间点,根据相邻的数据包的接收时间点,确定WAN侧时延和LAN侧时延。监听模块将每一条信息流的WAN侧时延和LAN侧时延保存至存储器中,以提供给处理模块进行时延判断。路由器的处理模块可以获取LAN侧动态时延阈值和WAN侧动态时延阈值,并且可以基于LAN侧动态时延阈值和WAN侧动态时延阈值对从监听模块获取到的信息流进行延时超时判断,在信息流存在WAN侧延时超时的情况下,确定信息流中对应的设备存在WAN侧网络异常;在信息流存在LAN侧延时超时的情况下,确定信息流中对应的设备存在LAN侧网络异常。从而实现了在基于路由器上网的环境下,定位导致网络慢是由WAN侧设备触发或是LAN侧设备触发的效果,实现了网络异常设备的定位,优化用户体验。
在一些实施例中,本申请提供的一种在根据上述方法确定存在握手时延超时的疑似异常设备之后,路由器可以向疑似异常设备发送测试指令,根据疑似异常设备的测试回应来确定疑似异常设备是否网络异常。示例性地,路由器向疑似异常设备可以发送ping指令,根据疑似异常设备返回的ping包来确定其网络是否异常。实现对疑似异常设备的二次确认。
ping是诊断网络问题的一个常用命令行工具,用于确定本地设备是否能与另一台设备成功交换(发送与接收)数据包,再根据返回的信息,就可以推断参数是否设置正确,以及运行是否正常、网络是否通畅等。ping命令可以进行以下操作:
通过将控制消息协议数据包发送到目的设备并侦听回复数据包来验证与一台或多台远程计算机的连接。其中,每个发送的数据包最多等待预先设定的秒数。
路由器的诊断模块可以记录已传输和接收的数据包数,以及耗时的统计结果。其内容如下所示:
示例1为ping网络联通的情况下的耗时结果:
/$ping 192.168.2.111
ping 192.168.2.111(192.168.2.111):56data bytes
64bytes from 192.168.2.111:seq=0ttl=128time=0.703ms
64bytes from 192.168.2.111:seq=1ttl=128time=0.482ms
64bytes from 192.168.2.111:seq=2ttl=128time=0.660ms
---192.168.2.111 ping statistics---
3packets transmitted,3packets received,0%packet loss
round-trip min/avg/max=0.482/0.615/0.703ms
上述ping结果为正在ping 192.168.2.111具有56字节的数据。收到192.168.2.111回复的64字节的数据,其中,序列号seq为0,生存时间(time to live,ttl)为128,时间为0.703ms;收到192.168.2.111回复的64字节的数据,其中,序列号seq为1,生存时间(time to live,ttl)为128,时间为0.482ms;收到192.168.2.111回复的64字节的数据,其中,序列号seq为3,生存时间(time to live,ttl)为128,时间为0.660ms。发送了3个数据包,接收到了3个数据包,0%丢包率。三次ping检测时间结果的最小值、平均值、最大值分别为0.482ms、0.615ms、0.703ms。
示例2为ping网络不通的情况下的耗时结果:
/$ping 192.168.2.2
ping 192.168.2.2(192.168.2.2):56data bytes
Request timed out
Request timed out
Request timed out
Request timed out
---192.168.2.2 ping statistics---
5 packets transmitted,0 packets received,100%packet loss
上述ping结果为正在ping 192.168.2.2具有56字节的数据。请求超时四次。发送了5个数据包,接收到0个数据包,100%的丢包率。
根据诊断模块所记录的信息,可确定ping的目的设备的网络是处于连通或不通的状态,从而确定目的设备是否为异常设备。
图15给出了一种路由器向周围设备发送ping包进行异常点确认的设备交互示意图。图14中包括路由器、终端(平板、手机、电脑)、光猫以及广域网设备(网络设备、探测服务器)。
图15中标号为1的路径指的是,路由器的诊断模块ping光猫。一般的光猫的地址为路由器的下一跳地址,因此,路由器的诊断模块ping下一跳地址,进行下一跳通路检测,可确定光猫是否异常,或,确定路由器本身WAN是否异常。比如,诊断模块ping光猫(下一跳地址),未接收到光猫回复的数据包,也即,ping不通。此时,路由器的诊断模块可以检查路由器与光猫建立连接的涉及到的参数,来确定是路由器的参数存在问题,还是光猫存在问题。
图15中标号为2的路径指的是,路由器的诊断模块ping广域网设备。广域网设备比如网络设备、运营商核心网、交换机、公网服务器等等。路由器的诊断模块可以ping公网服务器,若未接收到广域网设备回复的数据包,也即,ping不通。此时,路由器的诊断模块可以检查路由器WAN侧参数是否正常。同时,路由器诊断模块还可以根据对其他设备的ping结果,来进行故障排除。比如,ping光猫正常,ping公网服务器异常,则可以确定是服务器、运营商等广域网设备存在问题。可选地,本实施例中提供一种预设的公网探测服务器,探测服务器为网络正常设备,路由器的诊断模块可以通过ping探测服务器来确定路由器WAN是否正常。
图15中标号为3的路径指的是,路由器的诊断模块ping局域网中有线上网设备。若未接收到有线上网设备回复的数据包,也即,ping不通,则需要路由器的诊断模块排查网络协商速率等参数,确定故障原因。
图15中标号为4的路径指的是,路由器的诊断模块ping局域网中无线上网设备。若未接收到无线上网设备回复的数据包,也即,ping不通,则需要路由器的诊断模块排查Wi-Fi信道、接收的信号强度指示(received signal strength indication,RSSI)、协商带宽等参数,确定故障原因。
在一些实施例中,诊断模块所记录的单个终端的ping结果可包括如下表所示内容,以终端与网络设备通过TCP协议进行三次握手为例说明:
表3
在一些实施例中,监听模块在监听到终端的LAN侧握手往返时延和WAN侧握手往返时延时,可以向诊断模块上报该终端的信息流的结构化信息,该结构化信息包括该终端的LAN侧握手往返时延和WAN侧握手往返时延。在诊断模块基于该终端的结构化信息,确定存在LAN侧握手往返时延超时的情况下,诊断模块向终端发送测试指令。示例性地,诊断模块向终端发送ping指令,若在一定时长内未接收到针对于ping指令的响应,确定终端ping不通。若在一定时长内接收到针对于ping指令的响应,诊断模块获取发送ping指令至接收到该响应的响应时长,来确定终端的ping响应是否超时。诊断模块基于该终端的结构化信息,确定存在WAN侧握手往返时延超时的情况下,诊断模块可以向WAN侧设备发送测试指令。比如,诊断模块向网络设备等WAN侧设备发送ping指令,若在一定时长内未接收到针对于ping指令的响应,确定网络设备ping不通。若在一定时长内接收到针对于ping指令的响应,诊断模块获取发送ping指令至接收到该响应的响应时长,来确定网络设备的ping响应是否超时。
在本实施例中,监听模块在监听每个终端与其建立TCP连接的网络设备之间的握手交互信息流,生成结构化信息上报至诊断模块。诊断模块基于每一个终端对应的结构化信息进行WAN侧设备与LAN侧设备的测试诊断。可实现对每一个终端及时准确地测试,从而得到每一个终端对应的网络状态测试结果。
可选地,若路由器的终端数量为多个,诊断模块及时地对每一个终端的结构化信息进行测试诊断会增加诊断模的开支。在其中一种可行的实现方式中,监听模块可以获取各个终端的信息流,在信息流累计达到预设数量后,生成多个信息流对应的结构化信息。这里结构化信息中包括多个终端的信息流对应点握手往返时延。使得诊断模块可以针对包含多个终端信息流的结构化信息进行信息统计和信息筛选,从而进行针对性的ping诊断。
示例性地,在一些实施例中,图16给出了一种诊断模块进行ping检测方法的流程示意图。参考图16包括:
S301、接收到监听模块上报的结构化信息。
在一些实施例中,内核的监听模块在完成监听终端与目的设备之间的握手时延检测结果,得到握手时延检测结果后,生成对应的结构化信息。监听模块将结构化信息上报至应用层的诊断模块。诊断模块在接收到结构化信息后,触发启动ping检测。
S302、判断WAN拨号是否正常。
在一些实施例中,诊断模块可以获取路由器的WAN拨号状态参数。根据WAN拨号状态参数,来确定路由器WAN拨号是否正常。比如,WAN拨号状态参数为1时,表示已拨号,处于联网状态,可以对周围设备进行ping检测,执行S303。WAN拨号状态参数为0时,表示未拨号,诊断模块接收到的信息为断开拨号之前的信息。在未拨号(也即,未联网)的情况下,ping肯定是不通的,在这种情况下,直接不进行处理。也即,不做ping检测。
S303、判断ping处理是否空闲。
在一些实施例中,ping检测需要对结构化信息中每个设备,针对其握手时延检测结果进行ping检测,ping操作的超时时间为10s,共ping3次。因此ping检测最多需要30s才可以得到检测结果。在此期间内,需要判断ping处理是否空闲。示例性地,可以根据设定的标志位来确定ping处理是否空闲。比如,标志位为0为空闲,则执行S304。若ping处理未空闲,也即,当前仍然处于对上一次结构化信息进行ping检测的状态,上一次结构化信息未处理完,在这种情况下,诊断模块对新上报的结构化信息不处理,可选地,可以将新上报的结构化信息丢弃。
可选地,诊断模块可以创建一个临时目录/var/tcpSlowDetect,用于存放ping的临时文件。
S304、对结构化信息中的每一个设备进行记录。
在一些实施例中,诊断模块循环遍历结构化信息中的每个设备的信息。将各个设备的状态由初始化更新为检测中。对存在LAN侧时延超时或处于待采样状态的设备进行ping LAN侧设备诊断操作。若LAN侧设备为无线上网设备,则需要获取Wi-Fi信息。ping LAN侧设备的针对每一个存在LAN侧时延超时的设备而言。而由于针对的是同一个路由器,若有多个设备的WAN侧时延超时,则需要对每一个设备进行ping检测,基于此,本方法中需要判断是否存在至少一个设备存在WAN侧时延超时,则执行一次ping WAN侧操作即可。
具体,针对LAN侧进行ping检测,包括:
诊断模块根据结构化信息,以MAC为索引获取结构体信息,其中包括各个设备的IP地址、MAC地址,网口名、握手时延检测结果等信息。
可选地,诊断模块可以获取世界统一时间(universal time coordinated,UTC时间)。示例性地,诊断模块可以通过函数gettimeofday获取UTC时间,再通过预设的转换函数localtime_r,将世界统一时间转换为本地时间,再通过预设的转换函数strftime,将本地时间转换为年-月-日-时-分-秒的时间字符串"%Y-%m-%d%H:%M:%S”,并记录到时间参数里。
诊断模块将当前设备的状态置由初始化INIT置为检测中TRIGGER。
在更新当前设备的状态之后,诊断模块将当前设备的握手时延检测结果、时延参数分别根据结构化数组进行备份。根据网口名是否为wl开头的字符串判断,判断当前设备是无线上网设备还是有线上网设备。比如,网口名是否为wl开头的字符串,则为无线上网设备。其余则为有线上网设备。如果当前设备为无线上网设备,则通过预设函数ioctl获取到无线连接相关信息,比如,获取当前设备的信号强度(-100~0DB)、协商速率(单位Mbps)等信息,并将其记录到当前设备的ping检测结果中。
诊断模块根据握手时延检测结果,确定其存在LAN侧时延超时或需采样,则需要对该设备进行LAN侧ping检测。
示例性地,ping IP地址为192.168.3.2的终端的ping指令为:
ping-c3-W10000 192.168.3.2>/var/tcpSlowDetect/ping12:34:56:78:9A:BC.log&
其中,-c 3代表ping3次;-W 10000代表每次超时时间10000ms;&表示后台执行,即程序启动ping后就会继续向下运行,不需要阻塞等待ping结果。
ping的检测结果写到指定的目录文件中,比如目录文件为/var/tcpSlowDetect/ping12:34:56:78:9A:BC.log。
其中,12:34:56:78:9A:BC为IP地址为192.168.3.2的终端的MAC地址。其中,终端的IP地址可以通过node->ipAddr获取,并通过inet_ntop转换为字符串;终端的MAC地址可以通过node->mac获取,并通过inet_ntop转换为字符串。
基于上述ping检测,可以得到LAN侧设备(IP地址为192.168.3.2的终端)的ping检测结果。
S305、判断是否存在至少一个设备WAN侧时延超时或者处于需采样的状态。
在一些实施例中,若存在至少一个设备WAN侧时延超时或者处于待采样的状态,则进行WAN侧ping检测,诊断模块对相应的设备进行ping检测。若不存在任意一个设备WAN侧时延超时,或者,不存在任意一个设备处于待采样的状态,执行S306。
在一些实施例中,针对WAN侧进行ping检测。诊断模块遍历当前设备的结构化信息,通过预设的标志位记录此次上报处理是否已经进行过WAN诊断。比如,预设的标志位可以为wanHasping。从而可以实现同时存在多个设备需ping WAN侧时,复用同一次诊断过程和结果。预设的标志位wanHasping为false时,表示该设备还没有进行过WAN诊断,若该设备握手时延检测结果存在WAN侧时延超时或需采样,则进行ping检测,wanHasping改为true,此后本次上报的其他设备不再进行WAN诊断。
在一些实施例中,WAN诊断指令如下,依次启动ping上行网关(路由器的下一跳地址)和ping广域网,其中广域网的目的地址可以采用主备两个探测服务器,或者,其他公网地址。
进行WAN侧ping检测,ping指令如下:
ping-c3-W1000010.0.0.1>/var/tcpSlowDetect/pingGate.log&
ping-c3-W10000connectivitycheck.platform.hihonorcloud.com>/var/tcpSlowDetect/pingWan.log&
ping-c3-W10000connectivitycheck-backup.platform.hihonorcloud.com>/var/tcpSlowDetect/pingWanBak.log&
其中,-c3代表ping3次;-W10000代表每次超时时间10000ms;&表示后台执行,即程序启动ping后就会继续向下运行,不需要阻塞等待ping结果。
pingGate指的是ping上行网关(路由器的下一跳地址);pingWan和pingWanBak指的是ping主备两个探测服务器。
ping检测结果可以记录在目录/var/tcpSlowDetect中。
S306、启动ping检测等待定时器。
在一些实施例中,诊断模块创建ping检测定时器,定时可以为30秒,也即,每30s后执行ping结果的处理。
S307、ping检测完成。
经过S304和S305,目录/var/tcpSlowDetect下会产生若干个有LAN侧时延超时嫌疑的终端的ping检测结果文件,以及最多1组WAN侧网关+广域网的ping检测结果文件。
在一些实施例中,诊断模块需要对ping检测结果进行处理。
其中,对WAN侧ping检测结果进行处理,包括:
若存在ping上行网关(路由器的下一跳地址)的ping检测结果文件,比如,pingGate.log,从该文件中逐行检索“min/avg/max=”关键字符串,该关键字符串标识设备的三次ping检测时间结果的最小值、平均值、最大值。获取第一个浮点数,即为ping检测时间结果的最小延时。经实际测试,在ping终端时,第一次ping的时延总是大一下,可能是由于终端ping报文接收模块处于休眠状态,因此ping 3次可以避免休眠带来的误差,选取3次中的最小ping时延为准,将毫秒值记录在临时变量pingGateTmp中。
若存在ping主备两个探测服务器的ping检测结果文件,比如,pingWan.log和pingWanBak.log。从pingWan.log和pingWanBak.log中,获取pingWan.log中的ping检测时间结果的最小值、以及pingWanBak.log中的ping检测时间结果的最小值分别记录在临时变量中,再pingWan.log中的ping检测时间结果的最小值和pingWanBak.log中的ping检测时间结果的最小值中,取最小值记录到临时变量pingWanTmp中。主备服务器的结果选最小值,是为了避免某个服务器异常导致ping不通或延时大对结果正确性的影响。
对LAN侧结果ping检测结果进行处理,包括:若存在ping12:34:56:78:9A:BC.log格式的文件,从文件中获取三次ping检测时间结果的最小值,通过MAC地址对应到某个终端,并将三次ping检测时间结果的最小值赋值到该单个设备的ping检测结果中的pingDev时延参数中。
在一些实施例中,诊断模块可以将处理之后的ping检测结果传输至处理模块。处理模块针对ping检测结果进行分析,得到ping检测分析结果。可选地,可以将ping检测分析结果上报至分析服务器,并保存至本地存储空间中。
开始ping检测时诊断模块已经将设备对应检测状态置为检测中TRIGGER。处理模块遍历结构体信息中的所有设备,对其中状态置为TRIGGER的设备进行进一步处理,得到各个设备的ping检测结果。其中,ping检测分析结果主要包含内部错误码和data描述字符串。
示例性地,/*tcp slow chr为内部错误码,数值从左到右按字节看分别是:下挂有线|下挂无线|下一跳|外网服务器*/
ping检测结果的结构体如下所示:
typedef enum{
/*探测服务器故障情况*/
WAN_NORMAL_E=(0x00<<0),
WAN_SLOW_E=(0x01<<0),
WAN_DISCON_E=(0x02<<0),
/*下一跳故障情况*/
GATE_NORMAL_E=(0x00<<8),
GATE_SLOW_E=(0x01<<8),
GATE_DISCON_E=(0x02<<8),
/*下挂无线故障情况*/
WLAN_NORMAL_E=(0x00<<16),
WLAN_SLOW_E=(0x01<<16),
WLAN_DISCON_E=(0x02<<16),
WLAN_STATE_E=(0xFF<<16),
/*下挂有线故障情况*/
LAN_NORMAL_E=(0x00<<24),
LAN_SLOW_E=(0x01<<24),
LAN_DISCON_E=(0x02<<24),
}TcpSlowInnerReasonE;
针对不同侧的ping检测结果进行不同的分析处理。
示例性地,针对WAN侧的ping检测结果:
若首次发现设备存在WAN慢或需采样,结合ping检测结果确认是否的确存在WAN侧时延超时(wanslow)。
示例性地,获取ping上行网关的ping检测时间pingGateTmp,判断pingGateTmp是否大于第一阈值CONN_BLOCK_THRESHOD,若pingGateTmp大于第一阈值,则认为网络不通,错误码按位或GATE_DISCON_E,结构化数据中data中记录"gateDiscon;"。若pingGateTmp小于或等于第一阈值,再判断pingGateTmp是否大于第二阈值GATE_SLOW_THRESHOD,若pingGateTmp大于第二阈值,则错误码按位或LAN_SLOW_E,结构化数据中data追加记录"gateSlow rtt[%u];",其中%u是pingGateTmp的值。
示例性地,获取ping广域网的ping检测时间pingWanTmp,判断pingWanTmp是否大于第一阈值CONN_BLOCK_THRESHOD,若pingGateTmp大于第一阈值,则认为网络不通,错误码按位或WAN_DISCON_E,结构化数据中data中记录"wanDiscon;"。若pingWanTmp小于或等于第一阈值,再判断pingWanTmp是否大于第二阈值GATE_SLOW_THRESHOD,若pingWanTmp大于第二阈值,错误码按位或WAN_SLOW_E,结构化数据中data中追加记录"wanSlowrtt[%u%u];",其中%u分别是tcpHandRtt1-2次握手rtt值和pingWanTmp的值。
示例性地,针对LAN侧有线上网设备的ping检测结果:
若发现有线终端存在LAN慢或需采样,需要结合ping结果确认是否的确存在LAN侧时延超时(lanslow)。
获取ping终端的ping往返时延pingDevRtt,判断pingDevRtt是否大于第一阈值CONN_BLOCK_THRESHOD,若pingDevRtt大于第一阈值,认为网络不通,错误码按位或CHR_LAN_DISCON_E,结构化数据中data中记录"lanDiscon mac[%s];"。若pingDevRtt小于或等于第一阈值,再pingDevRtt判断是否大于第二阈值LAN_SLOW_THRESHOD,若pingDevRtt判断大于第二阈值,错误码按位或CHR_LAN_SLOW_E,结构化数据中data中追加记录"lanSlowmac[%s]rtt[%u%u];"。其中mac[%s]为设备MAC地址,如12:34:**:**:**:BC,MAC地址可以为经过模糊化处理的地址,提高用户信息安全性。rtt[%u%u]分别是tcpHandRtt2-3次握手rtt值和pingDevRtt的值。
示例性地,针对LAN侧无线上网设备的ping检测结果:
若发现无线终端存在LAN慢或需采样,需要结合ping结果确认是否的确存在LAN侧时延超时(lanslow)。
获取ping终端的ping往返时延pingDevRtt,判断pingDevRtt是否大于第一阈值CONN_BLOCK_THRESHOD,若pingDevRtt大于第一阈值,则认为网络不通,错误码按位或WLAN_DISCON_E,结构化数据中data中记录"wlanDiscon mac[%s]ifc[%s]rssi[%d]txRate[%u]rxRate[%u];"。若pingDevRtt小于或等于第一阈值,再判断pingDevRtt是否大于第二阈值WLAN_SLOW_THRESHOD,若pingDevRtt大于第二阈值,错误码按位或WLAN_SLOW_E,结构化数据中data中追加记录"wlanSlow mac[%s]rtt[%u%u]ifc[%s]rssi[%d]txRate[%u]rxRate[%u];"。
其中,ifc[%s]为网口名;wl0代表设备与路由器之间为5Gwifi连接,wl1代表2.4Gwifi;rssi[%d]为wifi信号强度,范围-100~0,单位DB;txRate[%u]、rxRate[%u]分别wifi协商发送/接收速率,单位Mbps。范围0~几千。
可选地,在一些实施例中,若此次上报存在待采样的设备,处理模块可以对该设备的WAN侧ping检测分析结果和LAN侧ping检测分析结果进行缓存,待后续使用。
在一些实施例中,在处理模块得到各个设备的ping检测分析结果之后,可以删除用于暂存各个设备的临时目录,比如,临时目录可以为/var/tcpSlowDetect。
在得到ping检测分析结果之后,处理模块可以将ping检测分析结果上报至分析服务器。
在一些实施例中,处理模块需要将ping检测分析结果中的内部错误码转换为外部错误码。比如,内部错误码为位图格式,上报给分析服务器时不便于阅读。转换为外部错误码,可便于分析服务器的维护人员阅读。
在一些实施例中,处理模块上报的ping检测分析结果可以包括上报事件标识、检测结果、检测参数等。示例性地,事件标识可以为事件ID、事件名称等。检测结果中可以包括终端以及网络设备的检测情况,比如,无线上网设备的检测情况、有线上网设备的检测情况、探测服务器的检测情况、路由器的下一跳地址的检测情况等等。检测参数可以包括每一个终端对应的握手往返时延、ping时延等等。针对无线上网设备,检测参数还包括信号强度、接收速率、发送速率等等。
在一些实施例中,给出一种上报ping检测分析结果的示例,其中,包括:
(1)事件编号,例如,1XXXXX8,具体data数据位于事件上报附带文件tcpSlowList中。
(2)本次检测的整体情况(errorCode),数值为10进制格式,从左到右按看共5位,每位数分别是:
是否有历史数据:1为没有,2为有
下挂有线上网设备的检测情况:0为正常,1为存在响应慢,2为存在无响应
下挂无线上网设备的检测情况:0为正常,1为存在响应慢,2为存在无响应
下一跳的检测情况:0为正常,1为存在响应慢,2为存在无响应
广域网的检测情况:0为正常,1为存在响应慢,2为存在无响应
示例性地,10001代表光猫到广域网之间的问题,无历史数据。20100代表LAN侧无线上网设备有问题,且有历史数据。
(3)WAN侧及每个LAN侧设备的具体情况(chr_upload的data参数)。
字符串以分号为间隔(最大10kB),包括:
gateSlow rtt[%u],表示ping网关慢;
wanSlow rtt[%u%u],表示ping广域网慢;
lanSlow mac[%s]rtt[%u%u],表示ping有线上网设备慢;
wlanSlow mac[%s]rtt[%u%u]ifc[%s]rssi[%d]txRate[%u]rxRate[%u],表示ping无线上网设备慢。
其中,rtt存在2个参数,参数1表示底层tcp握手rtt时延,参数2表示上层ping时延。
在实际应用中,处理模块在统计量达到一定值时,才将ping检测分析结果上报至分析服务器,以减少交互次数,节省交互资源。
在一些实施例中,处理模块上报的ping检测分析结果可以包括单条ping检测分析结果。单条ping检测分析结果中可以包括当前系统时间以及终端对应的检测参数。其中,检测参数可以包括WAN侧时延、LAN侧时延。在终端为无线上网设备的情况下,检测参数还可以包括信号强度、发送速率、接收速率等等。
示例性地,单条上报情况可参考如下内容:
2022-09-3011:41:33wanSlow rtt[50202];wlanSlow mac[E2:**:**:DA:**:55]rtt[4045]ifc[wl0]rssi[-54]txRate[960]rxRate[648];
在一些实施例中,上述ping检测过程中的第二阈值由分析服务器根据处理模块的采样数据进行动态计算确定。示例性地,分析服务器可按照90%原则,确定第二阈值。根据第一阈值、第二阈值,得到最后的ping结果。
示例性地,包括:
上报tcp1-2:60ms---对应可能WAN侧慢;
上报tcp2-3:30ms---对应可能LAN侧慢;
GATE_SLOW_THRESHOD(ping gate慢但能ping通):20ms
WAN_SLOW_THRESHOD(ping wan慢但能ping通):60ms
LAN_SLOW_THRESHOD(ping lan慢但能ping通):20ms
WLAN_SLOW_THRESHOD(ping wlan慢但能ping通):60ms
CONN_BLOCK_THRESHOD(ping超时未ping通):10s
ping结果信息通过常见的http或https协议上传给分析服务器进行记录。ping结果信息中包括事件标识、异常所属技术领域、事件含义、故障等级、故障原因以及上报时间。其中,事件标识可以为事件ID。异常所述技术领域为根据预先划分的技术领域确定,技术领域包括网络协议、网络设备等。事件含义指的是对异常事件的说明,比如,WAN侧无TCP应答,终端无应答等。故障等级按照预先设定的等级分类确定,比如故障等级包括A级、B级、C级,示例性地,可以设定A级故障等级最高,C级故障等级最低等,或者,还可以设定A级故障最低,C级故障最高。故障等级的数量以及程度根据实际情况确定。故障原因指的是造成异常事件的原因,比如,WAN侧无TCP应答的故障原因为网络设备异常,在上报信息时,上报网络设备异常对应的标识,比如,网络设备异常的标识为10200等等。下表4给出一种示例,分析服务器可将原始数据呈现为如下表所示:
表4
示例性地,通过事件错误码确认下挂无线设备慢可参考下表所示:
表5
WAN无TCP应答 | C | 10100 | 2011-10-1111:04:48 | HLB-600 |
其中,通过附件的日志信息确认导致上网慢的原因可能是wifi rx协商速率低。日志信息为:
2022-10-11 11:04:48wlanSlow mac[D6:**:**:09:**:22]rtt[40 69]ifc[wl1]rssi[-49]txRate[104]rxRate[8]
示例性地,通过事件错误码确认网关到广域网慢可参考下表所示:
表6
WAN无TCP应答 | C | 10100 | 2011-10-1111:38:38 | HLB-600 | 16.0.0.14 |
其中,通过附件的日志显示监听模块记录用户的连接及应用层路由器ping探测服务器结果都在90ms,说明光猫到广域网当前的确普遍存在延时,非路由器到下一跳的问题。日志信息为:
2022-10-1111:38:38wanSlow rtt[9097]
考虑到可能存在ping结果上报事件(tcpslow事件)频繁的情况,在实际应用中,多次上报可能造成分析服务器业务过于频繁。因此。每当产生处理模块的ping结果上报事件时,判断当前时间和上一次上报的时间差是否超过时间阈值,如最频繁每6个小时上报一次。若未超过时间阈值,则先将tcpslow事件的data信息累计缓存到一个文件中;若超过了时间阈值,则处理模块可以将tcpslow事件上报至分析服务器。
结合图6给出的流程图。处理模块在监听模块确定终端与目的设备握手时延的过程中,以及,在诊断模块进行ping检测的过程中。处理模块可以通过定时采样,将采样到的数据上报至分析服务器,分析服务器来确定握手时延阈值以及ping时延阈值。
处理模块进行tcp时延检测采样打点,打点信息可以包括设备类型、tcp1-2次握手之间时延、tcp2-3次握手之间时延,以及ping检测结果。比如,包括ping网关时延、ping广域网时延、ping设备时延。在终端为无线上网设备的情况下,打点信息还可以包括信号强度、发送速率、接收速率等等信息。
在一种示例中,打点事件的数据格式可表示为:
{"type":"%s","tcp_rtt1":%d,"tcp_rtt2":%d,"ping_gate":%d,"ping_wan":%d,"ping_dev":%d,"rssi":%d,"rx_rate":%d,"tx_rate":%d}
其中,type表示设备类型,eth0.x/wl0/wl1,wl开头的为LAN侧无线上网设备;eth0.x为LAN侧有线上网设备。tcp_rtt1表示tcp1-2次握手之间时延,单位为毫秒。tcp_rtt2表示tcp2-3次握手之间时延,单位为毫秒。ping_gate表示ping网关时延,单位为毫秒。ping_wan表示ping广域网时延,单位为毫秒。ping_dev表示ping设备时延,单位为毫秒。rssi表示信号强度,仅type为wifi时有效。rx_rate表示接收速率,单位为Mbps,仅type为wifi时有效。tx_rate表示发送速率,单位为Mbps,仅type为wifi时有效。
可选地,结合分析服务器的承载能力有限,路由器启动后首次拨号成功后,处理模块向分析服务器上报一次,之后每隔24小时上报一次。路由器的处理模块新增打点上报名称wan_tcp_sample通过http或https协议上报。
在大量用户使用路由器的情况下,打点数据可充分说明当前用户的平均上网时延情况。可以通过数据统计方法,如参考中位数或众数,来确定路由器进行网络诊断过程中涉及到的握手时延阈值,以及ping检测中涉及到的第二阈值。通过配置接口下发给各路由器,实现阈值的动态更新。
参考图17,图17给出了一种路由器将采样数据上传至分析服务器的结构示意图。路由器的ping检测模块将诊断结果上报到分析服务器,开发人员可远程登录分析服务器可以查询收集到的网络信息和故障原因,问题点等等。其中,分析服务器可以包括多个服务器,例如,将当前正在发生故障的事件上报至分析服务器1,事件包含ping检测数据及初判结果;将随机采样路由器上网的数据上报至分析服务器2,随机采样路由器上网的数据包含所有采样点的采样结果,用于大数据分析整体路由器的网络运行状态。
可选地,路由器还可以将ping检测分析结果下发至终端中。参考图18,图18给出了一种路由器向手机下发提醒信息的流程图。比如,在路由器与手机建立联动关系的情况下,在路由器发现当前手机LAN侧网络状态不佳时,向手机发送提醒消息,通知手机需要进行Wi-Fi网络优化等,以使无线终端在其显示界面显示相应的提醒信息,引导用户做出调整,得到更好的上网体验。
上述路由器诊断模块在接收到路由器监听模块传输的结构化信息,根据各个设备的握手时延检测结果,进行ping检测操作。进一步确定导致网络慢的原因是在网关、广域网还是LAN侧某一设备,可以准确定位网络慢的故障点。且,针对终端可以作为在用户感知弱或不感知的情况下,自动完成对网络的检测、诊断以及优化,提高了用户体验。
图19示出了上述实施例中所涉及的电子设备的一种可能的结构示意图。如图包括处理器1001、通信模块1002以及存储模块1003。
其中,处理器1001可以是中央处理器(central processing unit,CPU),数字信号处理器(digital signal processor,DSP),专用集成电路(application-specificintegrated circuit,ASIC),现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。处理器可以包括应用处理器和基带处理器。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信模块1002可以是收发器、收发电路等。例如,通信模块1002可以包括Wi-Fi模块、蓝牙模块、射频模块等通信模块。存储模块1003可以为存储器。
本申请实施例还提供一种芯片系统(例如,片上系统(system on a chip,SoC)),如图20所示,该芯片系统包括至少一个处理器701和至少一个接口电路702。处理器701和接口电路702可通过线路互联。例如,接口电路702可用于从其它装置(例如电子设备的存储器)接收信号。又例如,接口电路702可用于向其它装置(例如处理器701或者电子设备的摄像头)发送信号。示例性的,接口电路702可读取存储器中存储的指令,并将该指令发送给处理器701。当所述指令被处理器701执行时,可使得电子设备执行上述实施例中的各个步骤。当然,该芯片系统还可以包含其他分立器件,本申请实施例对此不作具体限定。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当所述计算机指令在上述电子设备上运行时,使得该电子设备执行上述方法实施例中电子设备100执行的各个功能或者步骤。
本申请实施例还提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行上述方法实施例中电子设备100执行的各个功能或者步骤。例如,该计算机可以是上述电子设备100。
通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (17)
1.一种网络诊断方法,其特征在于,所述方法包括:
路由设备从终端接收握手请求信息;所述握手请求信息用于请求建立终端和网络设备之间的传输层控制协议TCP连接;
所述路由设备向所述网络设备发送所述握手请求信息;
所述路由设备获取发送所述握手请求信息的第一时间点;
所述路由设备从所述网络设备接收所述握手请求信息对应的握手响应信息;
所述路由设备获取接收到所述握手响应信息的第二时间点;
如果确定所述第二时间点和所述第一时间点之间的时延大于第一时延阈值,所述路由设备确定所述路由设备和所述网络设备之间的通信时延异常;
所述路由设备向所述终端发送所述握手响应信息;
所述路由设备获取发送所述握手响应信息的第三时间点;
所述路由设备从所述终端接收所述握手响应信息对应的握手确认信息;
所述路由设备获取接收到所述握手确认信息的第四时间点;
如果确定所述第四时间点和所述第三时间点之间的时延大于第二时延阈值,所述路由设备确定所述路由设备和所述终端之间的通信时延异常。
2.根据权利要求1所述的方法,其特征在于,在所述路由设备从终端接收握手请求信息之后,所述方法还包括:
所述路由设备生成第一握手交互信息;所述第一握手交互信息是所述终端对应的握手交互信息,所述握手交互信息包括终端标识,以及与终端建立TCP连接的网络设备的标识。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述路由设备获取第一握手时延,所述第一握手时延为所述第二时间点和所述第一时间点之间的时延;
所述路由设备在所述第一握手交互信息中记录所述第一握手时延。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述路由设备获取第二握手时延,所述第二握手时延为所述第四时间点和所述第三时间点之间的时延;
所述路由设备在所述第一握手交互信息中记录所述第二握手时延。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述方法还包括:
如果确定所述路由设备与所述网络设备之间通信时延异常,生成第一异常标识;
所述路由设备将所述第一异常标识更新至所述第一握手交互信息中。
6.根据权利要求1-4中任一项所述的方法,其特征在于,所述方法还包括:
如果确定所述路由设备与所述终端之间通信时延异常,生成第二异常标识;
所述路由设备将所述第二异常标识更新至所述第一握手交互信息中。
7.根据权利要求1-4中任一项所述的方法,其特征在于,所述方法还包括:
所述路由设备按照预设周期向服务器发送保存的握手交互信息。
8.根据权利要求1-4中任一项所述的方法,其特征在于,所述方法还包括:
所述路由设备从服务器接收所述第一时延阈值和第二时延阈值。
9.根据权利要求1-4中任一项所述的方法,其特征在于,所述方法还包括:
如果确定所述路由设备与所述网络设备之间通信时延异常,所述路由设备向所述网络设备发送第一检测指令;
如果在第一时长内未接收到所述网络设备针对所述第一检测指令的第一检测响应,所述路由设备确定所述网络设备与所述路由设备断开连接。
10.根据权利要求1-4中任一项所述的方法,其特征在于,所述方法还包括:
如果确定所述路由设备与所述终端之间通信时延异常,所述路由设备向所述终端发送第二检测指令;
如果所述路由设备在第二时长内未接收到所述终端针对所述第二检测指令的第二检测响应,确定所述终端与所述路由设备断开连接。
11.一种网络诊断方法,其特征在于,所述方法包括:
服务器从路由设备接收多个握手交互信息;所述握手交互信息包括终端标识,以及与终端建立TCP连接的网络设备的标识,第一握手时延和第二握手时延;其中,所述第一握手时延为路由设备向网络设备发送握手请求信息至路由设备从网络设备接收到握手响应信息之间的时延;第二握手时延为路由设备向终端发送握手响应信息至路由设备从终端接收到握手确认信息之间的时延;
所述服务器根据多个所述握手交互信息中的第一握手时延确定第一时延阈值;所述第一时延阈值用于所述路由设备判断所述路由设备与网络设备之间是否存在通信时延异常;
所述服务器根据多个所述握手交互信息中的第二握手时延确定第二时延阈值;所述第二时延阈值用于所述路由设备判断所述路由设备与终端之间是否存在通信时延异常;
所述服务器向所述路由设备发送所述第一时延阈值和所述第二时延阈值。
12.根据权利要求11所述的方法,其特征在于,所述服务器根据多个所述握手交互信息中的第一握手时延确定第一时延阈值,包括:
所述服务器对多个所述握手交互信息中的第一握手时延进行从小到大排序,所述服务器将排序后的第N个第一握手时延确定为所述第一时延阈值;其中,N为第一预设值,N大于0,并小于或等于预设数量。
13.根据权利要求11所述的方法,其特征在于,所述服务器根据多个所述握手交互信息中的第二握手时延确定第二时延阈值,包括:
所述服务器对多个所述握手交互信息中的第二握手时延进行从小到大排序,所述服务器将排序后的第M个第二握手时延的值确定为所述第二时延阈值;其中,M为第二预设值,M大于0,并小于或等于预设数量。
14.根据权利要求11-13中任一项所述的方法,其特征在于,所述方法还包括:
所述服务器确定第一握手交互信息中包括第一异常标识,生成所述第一握手交互信息对应的终端的第一网络时延异常信息;所述第一握手交互信息中为所述多个握手交互信息中的一个,所述第一异常标识用于表示路由设备与网络设备之间通信时延异常,所述第一网络时延异常信息包括所述第一握手交互信息对应的终端的网络延时异常原因;
所述服务器在显示界面显示所述第一握手交互信息对应的终端的第一网络时延异常信息。
15.根据权利要求11-13中任一项所述的方法,其特征在于,所述方法还包括:
所述服务器确定第二握手交互信息中包括第二异常标识,生成所述第二握手交互信息对应的终端的第二网络时延异常信息;所述第二握手交互信息为所述多个握手交互信息中的一个,所述第二异常标识用于表示路由设备与终端之间通信时延异常,所述第二网络延时异常信息包括所述第二握手交互信息对应的终端的网络延时异常原因;
所述服务器在显示界面显示所述第二握手交互信息对应的终端的第二网络时延异常信息。
16.一种电子设备,其特征在于,所述电子设备包括存储器和一个或多个处理器;所述存储器与所述处理器耦合;所述存储器中存储有计算机程序代码,所述计算机程序代码包括计算机指令,当所述计算机指令被所述处理器执行时,使得所述电子设备执行如权利要求1-15中任一项所述的方法。
17.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1-15中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211718452.4A CN116708150B (zh) | 2022-12-29 | 2022-12-29 | 网络诊断方法和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211718452.4A CN116708150B (zh) | 2022-12-29 | 2022-12-29 | 网络诊断方法和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116708150A CN116708150A (zh) | 2023-09-05 |
CN116708150B true CN116708150B (zh) | 2024-04-02 |
Family
ID=87828138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211718452.4A Active CN116708150B (zh) | 2022-12-29 | 2022-12-29 | 网络诊断方法和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116708150B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102045750A (zh) * | 2009-10-10 | 2011-05-04 | 上海中兴通讯技术有限责任公司 | Wlan性能监测和故障处理方法及系统 |
CN106656643A (zh) * | 2015-10-29 | 2017-05-10 | 国家计算机网络与信息安全管理中心 | 一种分段计算网络延迟的测量方法 |
CN108809708A (zh) * | 2018-06-04 | 2018-11-13 | 深圳众厉电力科技有限公司 | 一种电力通信网络节点故障检测系统 |
CN109245936A (zh) * | 2012-09-06 | 2019-01-18 | 华为技术有限公司 | 控制网络传输时延的方法、服务质量控制实体和通信设备 |
CN109981325A (zh) * | 2017-12-28 | 2019-07-05 | 中移(苏州)软件技术有限公司 | 一种告警阈值的设定方法、装置、计算设备及介质 |
CN111030873A (zh) * | 2019-12-24 | 2020-04-17 | 迈普通信技术股份有限公司 | 一种故障诊断方法及装置 |
CN113452576A (zh) * | 2021-06-24 | 2021-09-28 | 青岛海尔科技有限公司 | 网络环境的监控方法及装置、存储介质、电子装置 |
CN113923140A (zh) * | 2020-06-22 | 2022-01-11 | 中国电信股份有限公司 | 往返时延测量方法、系统和存储介质 |
WO2022062735A1 (zh) * | 2020-09-22 | 2022-03-31 | 中兴通讯股份有限公司 | 时延测量方法及其装置、网络通信设备、存储介质 |
CN114301948A (zh) * | 2021-12-31 | 2022-04-08 | 四川德胜集团钒钛有限公司 | 一种用于高炉生产的工业控制网络架构 |
CN114650592A (zh) * | 2020-12-21 | 2022-06-21 | 华为技术有限公司 | 一种无线网络时延处理方法、系统以及接入服务器 |
CN115022161A (zh) * | 2022-06-10 | 2022-09-06 | 中国电信股份有限公司 | 网络时延故障定位方法及装置、网络时延故障检测设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130070738A1 (en) * | 2011-09-16 | 2013-03-21 | Research In Motion Limited | Discovering network information available via wireless networks |
-
2022
- 2022-12-29 CN CN202211718452.4A patent/CN116708150B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102045750A (zh) * | 2009-10-10 | 2011-05-04 | 上海中兴通讯技术有限责任公司 | Wlan性能监测和故障处理方法及系统 |
CN109245936A (zh) * | 2012-09-06 | 2019-01-18 | 华为技术有限公司 | 控制网络传输时延的方法、服务质量控制实体和通信设备 |
CN106656643A (zh) * | 2015-10-29 | 2017-05-10 | 国家计算机网络与信息安全管理中心 | 一种分段计算网络延迟的测量方法 |
CN109981325A (zh) * | 2017-12-28 | 2019-07-05 | 中移(苏州)软件技术有限公司 | 一种告警阈值的设定方法、装置、计算设备及介质 |
CN108809708A (zh) * | 2018-06-04 | 2018-11-13 | 深圳众厉电力科技有限公司 | 一种电力通信网络节点故障检测系统 |
CN111030873A (zh) * | 2019-12-24 | 2020-04-17 | 迈普通信技术股份有限公司 | 一种故障诊断方法及装置 |
CN113923140A (zh) * | 2020-06-22 | 2022-01-11 | 中国电信股份有限公司 | 往返时延测量方法、系统和存储介质 |
WO2022062735A1 (zh) * | 2020-09-22 | 2022-03-31 | 中兴通讯股份有限公司 | 时延测量方法及其装置、网络通信设备、存储介质 |
CN114650592A (zh) * | 2020-12-21 | 2022-06-21 | 华为技术有限公司 | 一种无线网络时延处理方法、系统以及接入服务器 |
CN113452576A (zh) * | 2021-06-24 | 2021-09-28 | 青岛海尔科技有限公司 | 网络环境的监控方法及装置、存储介质、电子装置 |
CN114301948A (zh) * | 2021-12-31 | 2022-04-08 | 四川德胜集团钒钛有限公司 | 一种用于高炉生产的工业控制网络架构 |
CN115022161A (zh) * | 2022-06-10 | 2022-09-06 | 中国电信股份有限公司 | 网络时延故障定位方法及装置、网络时延故障检测设备 |
Also Published As
Publication number | Publication date |
---|---|
CN116708150A (zh) | 2023-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10652765B2 (en) | Automated network diagnostic techniques | |
US10715408B2 (en) | Methods and apparatus for capturing and/or using packets to facilitate fault detection | |
CN101035037B (zh) | 检测网络通信质量的方法、系统及相关装置 | |
EP1641182B1 (en) | Detecting and diagnosing performance problems in a wireless network through neighbor collaboration | |
US8184553B2 (en) | Method and apparatus for measuring packet transmission quality | |
US9407522B2 (en) | Initiating data collection based on WiFi network connectivity metrics | |
CN110224883B (zh) | 一种应用于电信承载网的灰色故障诊断方法 | |
US20070250625A1 (en) | Real-time services network quality control | |
US7516049B2 (en) | Wireless performance analysis system | |
KR102133001B1 (ko) | 네트워크 관리 장치, 네트워크 관리 시스템 및 네트워크 관리 방법 | |
EP3682595B1 (en) | Obtaining local area network diagnostic test results | |
CN101595686A (zh) | 触发中间设备处的流分析 | |
CN107623752B (zh) | 基于链路层的网络管理方法和装置 | |
CN116708148B (zh) | 网络诊断方法和电子设备 | |
CN111989979A (zh) | 控制通信网络的操作以减少等待时间的方法和系统 | |
US20130042020A1 (en) | Quick Network Path Discovery | |
CN108512816B (zh) | 一种流量劫持的检测方法及装置 | |
EP4167530A1 (en) | Network monitoring method, electronic device and storage medium | |
CN116708150B (zh) | 网络诊断方法和电子设备 | |
EP4243365A1 (en) | Associating sets of data corresponding to a client device | |
CN116708149B (zh) | 网络诊断方法和电子设备 | |
CN116346634A (zh) | 网络管控系统的状态感知信息处理方法、装置及电子设备 | |
KR101831165B1 (ko) | Ntp 서버와 ntp 클라이언트 간 시각 동기 상태의 실시간 모니터링 및 분석 장치 | |
CN117857395A (zh) | 丢包原因分析方法及装置 | |
CN117560307A (zh) | 一种通信网络时延测量方法、系统、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |