CN117041100B - 一种分布式系统应用间网络包延迟检测方法和装置 - Google Patents

一种分布式系统应用间网络包延迟检测方法和装置 Download PDF

Info

Publication number
CN117041100B
CN117041100B CN202311278951.0A CN202311278951A CN117041100B CN 117041100 B CN117041100 B CN 117041100B CN 202311278951 A CN202311278951 A CN 202311278951A CN 117041100 B CN117041100 B CN 117041100B
Authority
CN
China
Prior art keywords
heartbeat
application
packet
node
time difference
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
Application number
CN202311278951.0A
Other languages
English (en)
Other versions
CN117041100A (zh
Inventor
华炜
杨松
杨钊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Lab
Original Assignee
Zhejiang Lab
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang Lab filed Critical Zhejiang Lab
Priority to CN202311278951.0A priority Critical patent/CN117041100B/zh
Publication of CN117041100A publication Critical patent/CN117041100A/zh
Application granted granted Critical
Publication of CN117041100B publication Critical patent/CN117041100B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route

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)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种分布式系统应用间网络包延迟检测方法和装置,对于任意两个系统应用A和B,每个系统应用包含一个心跳包收发模块,一个网络包收发模块和一个网络延迟计算模块,其方法包括:应用节点通过心跳发送模块按固定时间间隔向系统内其余节点发送心跳包;应用节点通过心跳接收模块接收系统内其他应用节点的心跳包,并向发来心跳包的应用节点发送心跳确认包;应用节点通过网络延迟计算模块通过心跳包中所含数据计算任意两个应用节点间上行平均主机时间差;应用节点根据心跳包计算的上行平均主机时间差作为偏移值计算业务消息的上行网络延迟。本发明减小了分布式系统内各应用所在主机的时间差对网络延迟计算的影响,使网络延迟的计算更加快速与精准。

Description

一种分布式系统应用间网络包延迟检测方法和装置
技术领域
本发明涉及网络通信技术领域,具体为一种实现分布式系统应用间网络包延迟检测方法和装置。
背景技术
网络是用物理链路将各个孤立的工作站或主机相连在一起,组成的数据链路,从而达到资源共享和通信的目的。通信是人与人之间通过某种媒体进行的信息交流与传递。网络通信是通过网络将各个孤立的设备进行连接,通过信息交换实现人与人,人与计算机,计算机与计算机之间的通信。由于分布式统具有高度的透明性和内聚性,因此被广泛的应用于计算机网络通信中。现有技术缺少一种可以检测分布式系统应用间网络包延迟的方法,导致无法确定发送和接收网络包的延迟以及同一网络包的处理转发速度。
发明内容
本发明的目的在于针对现有方法的不足, 提供一种实现分布式系统应用间网络延迟检测方法和装置。针对分布式系统不同应用所在主机时间戳不一致的情况,本发明通过根据应用间的心跳包计算不同主机自身的系统时间差,从而确定发送与接收网络包的延迟以及同一网络包的处理转发速度。同时可以快速确定当前网络通信质量,定位网络通信问题的应用或节点。
一种分布式系统应用间网络包延迟检测方法,在所述分布式系统每个应用节点包含一个心跳发送模块、心跳接收模块、网络延迟计算模块;包括如下步骤:
所述应用节点通过心跳发送模块按固定时间间隔向系统内其余节点发送心跳包;
所述应用节点通过心跳接收模块接收系统内其他应用节点的心跳包,并向发来心跳包的应用节点发送心跳确认包;
所述应用节点通过网络延迟计算模块通过心跳包中所含数据计算任意两个应用节点间上行平均主机时间差;
所述应用节点根据心跳包计算的上行平均主机时间差作为偏移值计算业务消息的上行网络延迟。
进一步,所述的分布式系统应用建立网络通信的方法包括UDP、TCP和组播通信。
进一步,所述的心跳包中包含心跳编号与心跳包发送时间戳;
所述的心跳确认包中包含心跳编号、心跳包发送时间戳、接收心跳包时的时间戳、发送心跳确认包时的时间戳。
进一步,所述的分布式系统中任意应用节点,心跳包中的心跳编号随心跳包每次发送增加,保证心跳编号唯一性。
进一步,所述的分布式系统中任意两个应用节点,其心跳确认包中的心跳编号、心跳包发送时间戳与收到对应心跳包中的心跳编号、心跳包发送时间戳保持一致。
进一步,任意应用节点收到其他应用节点发送的心跳确认包时,将心跳确认包接收时间戳记录到心跳确认包中,根据心跳确认包中所含数据计算得出当前节点与对应心跳确认节点的上行主机时间差,上行主机时间差计算公式为:
其中,A表示发送节点,B表示接收节点,i表示心跳编号,表示A节点相对B节点i心跳包的上行主机时间差,/>表示B接收心跳包i的时间戳,/>表示A接收心跳确认包i的时间戳,/>表示A发送心跳包i的时间戳,/>表示B发送心跳确认包i的时间戳。
进一步,上行平均主机时间差由多个时间点的上行主机时间差计算得出,并且所述方法进一步包括:预设时间窗口,对处于时间窗口内的上行主机时间差通过聚类方法计算得出上行平均主机时间差;删除处于时间窗口外的上行主机时间差数据;
所述的聚类方法将数据分为N类,N通过预设值确定;根据聚类结果,仅保留每一类别中数据量超过预设数据量阈值的数据,其余数据视为脉冲数据,不纳入计算范围;
根据聚类结果,对每一类中的上行主机时间差求均值;根据类别中数据量与有效数据总量的比值作为加权系数,计算得出当前应用节点与任意其他应用节点间的上行平均主机时间差;上行平均主机时间差的计算公式为:
其中,A表示当前待计算节点,N为聚类后的类别总数,j表示当前类别,表示当前类的数据量,/>表示有效数据总量,/>表示当前类的上行主机时间差均值。
进一步,上行网络延迟通过业务包内的接收时间戳、发送时间戳、收发节点间的上行平均主机时间差计算得出;
任意节点对其他节点的上行网络延迟计算公式为:
其中,A表示发送节点,B表示接收节点,i表示当前业务包编号,表示A节点向B节点发送的第i个业务包的网络延迟,/>表示B节点接收到i包时的时间戳,/>表示A节点发送i包时的时间戳,/>表示A到B的上行平均主机时间差。
本发明的一种分布式系统应用间网络包延迟检测方法,对于任意两个系统应用A和B,每个系统应用包含一个心跳包收发模块,一个网络包收发模块和一个网络延迟计算模块,包含以下步骤:
两个应用间发送心跳包;
更新心跳包缓存队列,计算两个应用的主机时间差;
对于两个应用间通讯的网络包,综合主机时间差,计算出网络延迟。
进一步,所述的两个应用间发送心跳包包括:
S1 设置间隔时间,在/>时刻,应用A向应用B发送一次心跳包/>,所述心跳包/>包含心跳编号/>和发送/>时应用A所在的主机时间/>。在/>应用B向应用A发送一次心跳包/>,所述心跳包/>包含心跳编号/>和发送/>时应用B所在的主机时间/>
应用B将收到的转发回应用A,并向/>中写入接收/>时应用B所在的主机时间、转发/>时应用B所在的主机时间/>。应用A将收到的/>转发回应用B,并向/>中写入接收/>时应用A所在的主机时间/>、转发/>时应用A所在的主机时间/>
应用A接收应用B转发的心跳包时,记录当前时刻应用A所在的主机时间/>。应用B接收应用A转发的心跳包/>时,记录当前时刻应用B所在的主机时间/>
进一步,所述的更新心跳包缓存队列,计算两个应用的主机时间差,包括:S2计算应用A发送到应用B的心跳包的主机时间差/>,并存储到应用A预设定的时间窗口中,更新应用A到应用B上行平均主机时间差/>。计算应用B发送到应用A的心跳包的主机时间差/>,并存储到应用B预设定的时间窗口中,更新应用B到应用A上行平均主机时间差/>
进一步,所述的对于两个应用间通讯的网络包,综合主机时间差,计算出网络延迟,包括:
S3 当应用A与应用B进行网络包通信时,应用B收到应用A发送的网络包后,将发送/>时应用A所在的主机时间/>、接收/>时应用B所在的主机时间/>存储到/>中。当应用B与应用A进行网络包通信时,应用A收到应用B发送的网络包/>后,将发送/>时应用B所在的主机时间/>、接收/>时应用A所在的主机时间/>存储到/>中。
S4 网络延迟计算模块根据应用A到应用B的上行平均主机时间差和网络包/>存储的/>、/>计算出应用A与B通信的上行网络延迟/>。网络延迟计算模块根据应用B到应用A的上行平均主机时间差/>和网络包/>存储的/>、/>计算出应用B与A通信的上行网络延迟/>
进一步,步骤S2中,具体包含以下子步骤:
S21计算应用A向应用B发送心跳包的主机时间差/>。计算应用B向应用A发送心跳包/>的主机时间差/>
S22在应用A中维护一个先进先出队列,队列最大长度为L,由预设的时间窗口大小确定,用来存储应用A与B间心跳包/>的主机时间差/>。在应用B中维护一个先进先出队列/>,队列最大长度为L,由预设的时间窗口大小确定,用来存储应用B与A间心跳包/>的主机时间差/>
S23对队列中每个心跳包的主机时间差/>进行聚类,将/>中的数据分为N类,N由预设的参数确定,根据聚类结果及其所占权重计算平均主机时间差。对队列/>中每个心跳包的主机时间差/>进行聚类,将/>中的数据分为N类,N由预设的参数确定,根据聚类结果及其所占权重计算平均主机时间差/>
进一步,步骤S21中,计算应用A与B心跳包的主机时间差为:
计算应用B与A心跳包的主机时间差为:
进一步,步骤S23中采用聚类算法,将中主机时间差分为N类后,每类中数据量记为/>,其中/>,每类中的主机时间差均值为/>。将/>与预定义阈值threshold进行比较,数据量少于threshold的类不纳入计算平均主机时间差范围,设置其,得到/>中有效数据总数:
中主机时间差分为N类后,每类中数据量记为/>,其中/>,每类中的主机时间差均值为/>。将/>与预定义阈值threshold进行比较,数据量少于threshold的类不纳入计算平均主机时间差范围,设置其/>,得到/>中有效数据总数:
进一步,步骤S23中,计算应用A到应用B上行平均主机时间差为:
计算应用B到应用A上行平均主机时间差为:
进一步,步骤S4中, 计算应用A与应用B通信的上行网络延迟:
计算应用B与应用A通信的上行网络延迟:
进一步,步骤S1中的系统应用建立网络通信的方法包括UDP、TCP和组播通信。
本发明的第二个方面包括一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现本发明的一种实现分布式系统应用间网络包延迟检测方法。
本发发明的第三个方面提供一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现本发明的一种实现分布式系统应用间网络包延迟检测方法。
本发明的第四个方面提供一种实现分布式系统应用间网络包延迟检测装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现本发明的一种实现分布式系统应用间网络包延迟检测方法。
本发明的工作原理是:本发明通过分布式系统应用间发送心跳包和心跳确认包,获取了任意两个应用节点收发心跳包、心跳确认包的时间戳;由于应用节点间存在系统时间差,心跳包接收与发送的时间间隔包含主机时间差和网络延时,心跳确认包接收与发送的时间间隔包含逆向主机时间差和网络延时,本发明分布式系统应用在接收心跳包后立即发送心跳确认包,这一时刻可认为网络环境基本保持不变,因此可以通过两次通信过程中的收发时间差去除网络延时影响,确定任意两个应用节点的主机时间差;通过聚类滤波去除不合理的脉冲数据后,即可得到在一定时间内的先验平均主机时间差;后续业务消息的网络延时即可根据此先验平均主机时间差计算得出网络延时。
本发明的优点是:本发明通过分布式系统各应用发送固定间隔的心跳包及心跳确认包,最大限度的减小了分布式系统内各应用所在主机的时间差对网络延迟计算的影响,使网络延迟的计算更加快速与精准;由于延迟计算由各应用节点独立计算,不因某应用节点的故障影响其他应用节点的计算,提升了系统的可靠性;与传统的通过主机间校时方式一致化主机时间不同,本发明在系统各应用节点无需部署校时模块,在应用部署,资源占用等方面均有明显优势,具有易于迁移、易于部署的特点。
附图说明
图1是本发明方法的流程图。
图2是本发明的心跳包示意图。
图3是本发明的心跳包收发时序图示意图。
图4是本发明中聚类方法示意图。
图5A是本发明的心跳包结构示意图,图5B是本发明的心跳确认包结构示意图。
图6是本发明可应用的建立网络通信方法的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,下述的实施例及实施方式中的特征可以相互组合。
实施例1
如图1和图2所示,本发明的一种分布式系统应用间网络包延迟检测方法,对于任意两个系统应用节点A和应用节点B,每个系统应用包含一个心跳包收发模块,一个网络包收发模块和一个网络延迟计算模块,两个应用间发送心跳包;更新心跳包缓存队列,计算两个应用的主机时间差;对于两个应用间通讯的网络包,综合主机时间差,计算出网络延迟;参照图3,包括以下步骤:
步骤一,启动部署于不同机器上的应用节点A和B,使A和B间开始产生心跳包,每个应用记录并处理其它应用发送的心跳包,具体包括以下子步骤:
步骤1.1:设置间隔时间,在/>时刻,应用A向应用B发送一次心跳包/>,所述心跳包/>包含心跳编号/>和发送/>时应用A所在的主机时间/>。在应用B向应用A发送一次心跳包/>,所述心跳包/>包含心跳编号/>和发送时应用B所在的主机时间/>
步骤1.2:应用B将收到的转发回应用A,并向/>中写入接收/>时应用B所在的主机时间/>、转发/>时应用B所在的主机时间/>,心跳包此时包结构如图5A所示。应用A将收到的/>转发回应用B,并向/>中写入接收/>时应用A所在的主机时间/>、转发/>时应用A所在的主机时间/>
步骤1.3:应用节点A接收应用节点B转发的心跳包时,记录当前时刻应用节点A所在的主机时间/>。应用节点B接收应用节点A转发的心跳包/>时,记录当前时刻应用节点B所在的主机时间/>,此时心跳包的包结构如图5B所示。
步骤二,计算应用节点A发送到应用节点B的心跳包的主机时间差/>,并存储到应用A预设定的时间窗口中,更新应用节点A到应用节点B上行平均主机时间差。计算应用节点B发送到应用节点A的心跳包/>的主机时间差/>,并存储到应用节点B预设定的时间窗口中,更新应用节点B到应用节点A上行平均主机时间差。具体包括以下子步骤:
步骤2.1:计算应用节点A向应用节点B发送心跳包的主机时间差/>。其中
计算应用节点B向应用节点A发送心跳包的主机时间差/>,其中
步骤2.2:在应用节点A中维护一个先进先出队列,队列最大长度为L,由预设的时间窗口大小确定,用来存储应用节点A与节点B间心跳包/>的主机时间差/>。在应用节点B中维护一个先进先出队列/>,队列最大长度为L,由预设的时间窗口大小确定,用来存储应用检点B与A间心跳包/>的主机时间差/>
步骤2.3:对队列中每个心跳包的主机时间差/>进行聚类,将/>中的数据分为N类,N由预设的参数确定,根据聚类结果及其所占权重计算平均主机时间差。对队列/>中每个心跳包的主机时间差/>进行聚类,将/>中的数据分为N类,N由预设的参数确定,根据聚类结果及其所占权重计算平均主机时间差/>
采用聚类算法,参照图4,将中主机时间差分为N类后,每类中数据量记为/>,其中/>,每类中的主机时间差均值为/>。将/>与预定义阈值threshold进行比较,数据量少于threshold的类不纳入计算平均主机时间差范围,设置其/>,得到中有效数据总数:
中主机时间差分为N类后,每类中数据量记为/>,其中/>,每类中的主机时间差均值为/>。将/>与预定义阈值threshold进行比较,数据量少于threshold的类不纳入计算平均主机时间差范围,设置其/>,得到/>中有效数据总数:
计算应用节点A到应用节点B上行平均主机时间差为:
计算应用节点B到应用节点A上行平均主机时间差为:
步骤三,计算应用节点A中的平均主机时间差,计算应用节点B中的平均主机时间差/>,具体包括以下子步骤:
步骤3.1:对队列中每个心跳包的主机时间差/>进行聚类,将/>中主机时间差分为N类,每类中数据量记为/>,其中/>,每类中的主机时间差均值为。将/>与预定义阈值threshold进行比较,数据量少于threshold的类不纳入计算平均主机时间差范围,设置其/>,得到/>中有效数据总数:。对队列/>中每个心跳包的主机时间差/>进行聚类,将中主机时间差分为N类,每类中数据量记为/>,其中/>,每类中的主机时间差均值为/>。将/>与预定义阈值threshold进行比较,数据量少于threshold的类不纳入计算平均主机时间差范围,设置其/>,得到/>中有效数据总数:
步骤3.2:计算应用节点A到应用节点B上行平均主机时间差,计算应用节点B到应用节点A上行平均主机时间差
步骤四,网络延迟计算模块根据应用节点A到应用节点B的上行平均主主机时间差和网络包/>存储的/>、/>计算出应用A与B通信的上行网络延迟。网络延迟计算模块根据应用B到应用A的上行平均主机时间差/>和网络包/>存储的/>、/>计算出应用节点B与节点A通信的上行网络延迟/>
实施例2
本实施例包括一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现实施例1的一种实现分布式系统应用间网络包延迟检测方法。
实施例3
本实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现实施例1的一种实现分布式系统应用间网络包延迟检测方法。
实施例4
本实施例提供了一种可兼容分布式系统应用间多种网络通信的方法,如图6所示,网络通信方法包括UDP、TCP和组播通信等。所述可兼容分布式系统应用间多种网络通信的方法用于实现实施例1的一种实现分布式系统应用间网络包延迟检测方法。
实施例5
本实施例提供一种实现分布式系统应用间网络包延迟检测装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现本发明的一种实现分布式系统应用间网络包延迟检测方法。
在硬件层面,该装置包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1所示的方法。当然,除了软件实现方式之外,本发明并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(ProgrammableLogic Device, PLD)(例如现场可编程门阵列(Field Programmable Gate Array,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(HardwareDescription Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(AdvancedBoolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(JavaHardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby HardwareDescription Language)等,目前最普遍使用的是VHDL(Very-High-Speed IntegratedCircuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20 以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本发明中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

Claims (4)

1.一种分布式系统应用间网络包延迟检测方法,其特征在于:在所述分布式系统每个应用节点包含一个心跳发送模块、心跳接收模块、网络延迟计算模块;包括如下步骤:
S1.所述应用节点通过心跳发送模块按固定时间间隔向系统内其余节点发送心跳包;
S2.所述应用节点通过心跳接收模块接收系统内其他应用节点的心跳包,并向发来心跳包的应用节点发送心跳确认包;所述的心跳包中包含心跳编号与心跳包发送时间戳;
所述的心跳确认包中包含心跳编号、心跳包发送时间戳、接收心跳包时的时间戳、发送心跳确认包时的时间戳;所述的分布式系统中任意应用节点,心跳包中的心跳编号随心跳包每次发送增加,保证心跳编号唯一性;所述的分布式系统中任意两个应用节点,其心跳确认包中的心跳编号、心跳包发送时间戳与收到对应心跳包中的心跳编号、心跳包发送时间戳保持一致;
S3.所述应用节点通过网络延迟计算模块通过心跳包中所含数据计算任意两个应用节点间上行平均主机时间差;任意应用节点收到其他应用节点发送的心跳确认包时,将心跳确认包接收时间戳记录到心跳确认包中,根据心跳确认包中所含数据计算得出当前节点与对应心跳确认节点的上行主机时间差,上行主机时间差计算公式为:其中,A表示发送节点,B表示接收节点,i表示心跳编号,/>表示A节点相对B节点i心跳包的上行主机时间差,/>表示B接收心跳包i的时间戳,/>表示A接收心跳确认包i的时间戳,/>表示A发送心跳包i的时间戳,/>表示B发送心跳确认包i的时间戳;上行平均主机时间差由多个时间点的上行主机时间差计算得出,并且进一步包括:预设时间窗口,对处于时间窗口内的上行主机时间差通过聚类方法计算得出上行平均主机时间差;删除处于时间窗口外的上行主机时间差数据;
所述的聚类方法将数据分为N类,N通过预设值确定;根据聚类结果,仅保留每一类别中数据量超过预设数据量阈值的数据,其余数据视为脉冲数据,不纳入计算范围;
根据聚类结果,对每一类中的上行主机时间差求均值;根据类别中数据量与有效数据总量的比值作为加权系数,计算得出当前应用节点与任意其他应用节点间的上行平均主机时间差;上行平均主机时间差的计算公式为:其中,A表示当前待计算节点,N为聚类后的类别总数,j表示当前类别,/>表示当前类的数据量,/>表示有效数据总量,/>表示当前类的上行主机时间差均值;
S4.所述应用节点根据心跳包计算的上行平均主机时间差作为偏移值计算业务消息的上行网络延迟;任意节点对其他节点的上行网络延迟计算公式为:其中,A表示发送节点,B表示接收节点,i表示当前业务包编号,/>表示A节点向B节点发送的第i个业务包的网络延迟,表示B节点接收到i包时的时间戳,/>表示A节点发送i包时的时间戳,表示A到B的上行平均主机时间差。
2.如权利要求1所述的方法,其特征在于:所述的分布式系统应用建立网络通信的方法包括UDP、TCP和组播通信。
3.一种计算机可读存储介质,其特征在于,其上存储有程序,该程序被处理器执行时,实现权利要求1-2中任一项所述的一种分布式系统应用间网络包延迟检测方法。
4.一种实现分布式系统应用间网络包延迟检测装置,其特征在于,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现权利要求1-2中任一项所述的一种分布式系统应用间网络包延迟检测方法。
CN202311278951.0A 2023-10-07 2023-10-07 一种分布式系统应用间网络包延迟检测方法和装置 Active CN117041100B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311278951.0A CN117041100B (zh) 2023-10-07 2023-10-07 一种分布式系统应用间网络包延迟检测方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311278951.0A CN117041100B (zh) 2023-10-07 2023-10-07 一种分布式系统应用间网络包延迟检测方法和装置

Publications (2)

Publication Number Publication Date
CN117041100A CN117041100A (zh) 2023-11-10
CN117041100B true CN117041100B (zh) 2024-03-12

Family

ID=88645149

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311278951.0A Active CN117041100B (zh) 2023-10-07 2023-10-07 一种分布式系统应用间网络包延迟检测方法和装置

Country Status (1)

Country Link
CN (1) CN117041100B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103220060A (zh) * 2012-01-24 2013-07-24 索尼公司 时间控制装置、时间控制方法以及程序
CN111371639A (zh) * 2020-02-21 2020-07-03 腾讯科技(深圳)有限公司 网络延时分析方法、装置、存储介质和计算机设备
CN111431772A (zh) * 2020-04-28 2020-07-17 上海众链科技有限公司 网络延迟测量方法、系统、可读存储介质及终端设备
CN112332941A (zh) * 2021-01-04 2021-02-05 北京东方通软件有限公司 一种基于分布式系统的时间误差校正方法
CN113364726A (zh) * 2020-03-05 2021-09-07 华为技术有限公司 一种分布式数据传输的方法、装置和系统
CN113965488A (zh) * 2021-09-10 2022-01-21 北京百度网讯科技有限公司 数据包的延迟获取方法及设备、电子设备与存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013083451A (ja) * 2011-10-06 2013-05-09 Sony Corp 時刻制御装置、時刻制御方法、およびプログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103220060A (zh) * 2012-01-24 2013-07-24 索尼公司 时间控制装置、时间控制方法以及程序
CN111371639A (zh) * 2020-02-21 2020-07-03 腾讯科技(深圳)有限公司 网络延时分析方法、装置、存储介质和计算机设备
CN113364726A (zh) * 2020-03-05 2021-09-07 华为技术有限公司 一种分布式数据传输的方法、装置和系统
CN111431772A (zh) * 2020-04-28 2020-07-17 上海众链科技有限公司 网络延迟测量方法、系统、可读存储介质及终端设备
CN112332941A (zh) * 2021-01-04 2021-02-05 北京东方通软件有限公司 一种基于分布式系统的时间误差校正方法
CN113965488A (zh) * 2021-09-10 2022-01-21 北京百度网讯科技有限公司 数据包的延迟获取方法及设备、电子设备与存储介质

Also Published As

Publication number Publication date
CN117041100A (zh) 2023-11-10

Similar Documents

Publication Publication Date Title
CN111756550B (zh) 一种区块链共识方法及装置
CN103222242B (zh) 用于避免线端阻塞的动态流重新分布
CN113783793B (zh) 对时间敏感的数据帧的流量调度方法及相关设备
US10177997B1 (en) Method and apparatus for packet and byte counting
CN108462652B (zh) 一种报文处理方法、装置和网络设备
CN110830388B (zh) 一种数据调度方法、装置、网络设备及计算机存储介质
CN113645208A (zh) 一种数据传输方法、装置、存储介质及电子设备
CN107566972B (zh) 一种基于ble标准的蓝牙数据高速传输方法及装置
CN117041100B (zh) 一种分布式系统应用间网络包延迟检测方法和装置
CN116501657B (zh) 缓存数据的处理方法、设备及系统
CN104052831A (zh) 一种基于队列的数据传输方法、装置及通信系统
CN111913807A (zh) 一种基于多个存储区域的事件处理方法、系统及装置
CN111541583B (zh) 一种分片报文缓存测试系统、方法及装置
CN114095386A (zh) 一种数据流统计方法、设备及存储介质
CN107645541B (zh) 数据存储方法、装置及服务器
CN115344410B (zh) 判断事件执行顺序的方法、装置、存储介质及电子设备
CN116846517B (zh) 一种网络数据的传输方法、装置、存储介质及电子设备
JP6502134B2 (ja) データ送信制御装置、データ送信制御方法、及び、プログラム
CN114915596B (zh) 数据发送方法、装置、设备及存储介质
CN116844321B (zh) 用于工控系统中do模块的多通道脉宽输出实现方法
CN115437823B (zh) 一种超时遍历的方法和芯片
CN112822125B (zh) 一种业务流的传输方法、装置、设备及存储介质
CN116346268A (zh) 一种无人驾驶系统和时间同步方法
CN109413122B (zh) 一种数据处理方法、网络处理器及计算机存储介质
CN116150627A (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