CN111355764B - 保活报文发送方法、装置、电子设备及可读存储介质 - Google Patents
保活报文发送方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN111355764B CN111355764B CN201811587980.4A CN201811587980A CN111355764B CN 111355764 B CN111355764 B CN 111355764B CN 201811587980 A CN201811587980 A CN 201811587980A CN 111355764 B CN111355764 B CN 111355764B
- Authority
- CN
- China
- Prior art keywords
- keep
- time
- sending
- ppp
- alive
- 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 71
- 230000005540 biological transmission Effects 0.000 claims abstract description 16
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 abstract description 32
- 238000004891 communication Methods 0.000 abstract description 11
- 238000012545 processing Methods 0.000 description 25
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000005641 tunneling Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002035 prolonged effect Effects 0.000 description 2
- 230000009514 concussion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1046—Joining mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/82—Miscellaneous aspects
- H04L47/825—Involving tunnels, e.g. MPLS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1048—Departure or maintenance mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/142—Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
- H04L67/145—Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供一种保活报文发送方法、装置、电子设备及可读存储介质,属于通信技术领域。该方法包括:在任一PPP接口协商成功后,根据PPP接口的保活周期计算发送该PPP接口的首个保活报文的第一发送时间;判断当前所有协商成功的PPP接口中在所述第一发送时间需要发送保活报文的PPP接口的数量是否超过预设值;如果超过预设值,将所述首个保活报文的发送时间调整到第二发送时间,所述第二发送时间晚于所述第一发送时间;在所述第二发送时间发送所述首个保活报文。由此在同一时间发送首个保活报文的PPP接口的数量不是太多,以避免网络服务器LNS同时处理大量的保活报文的发送而带来的负载过大的问题。
Description
技术领域
本申请涉及通信技术领域,具体而言,涉及一种保活报文发送方法、装置、电子设备及可读存储介质。
背景技术
随着数据通信技术的发展,人们提出了虚拟专用网络(Virtual PrivateNetwork,简称VPN),其目的是为了保证通信的安全性,使用公共网络,通过三层或二层隧道实现专用通信。
对于构建VPN来说,网络隧道技术是个关键技术。网络隧道技术指的是利用一种网络协议来传输另一种网络协议,也就是将现有的透明网络信息进行再次封装,从而保证网络信息传输的安全性。它主要利用网络隧道协议来实现这种功能,具体包括第二层隧道协议(Layer 2 Tunneling Protocol,简称L2TP)和三层隧道西医,
L2TP被普遍使用和认可,尤其在第三代移动通信技术的到来,使L2TP协议得到了更广泛的应用。L2TP协议是一种基于点对点PPP的二层隧道协议。在由L2TP构建的VPN中,有两种类型的服务器,一种是L2TP访问集中器(L2TP Access Concentrator,简称LAC),它是附属在网络上具有PPP端***和L2TP协议处理能力的设备,LAC一般就是一个网络接入服务器,用于为用户提供网络接入服务,另一种是L2TP网络服务器LNS(L2TP Network Server),是PPP端***上用于处理L2TP协议服务器端部分的软件。
在LNS和LAC之间存在着两种类型的连接,一种是隧道连接,它定义了一个LNS和LAC对,另一种是会话连接,它复用在隧道连接之上,用于表示承载在隧道连接中的每个PPP会话过程。
而在实际应用过程中,LNS支持的客户端数据很多,如1000个会话,所以对LNS处理大量会话PPP保活的性能、收敛时间的要求更高。现有技术中,LAC与LNS之间建立连接时,会先进行协商,L2TP的协商包含对应的PPP协议的协商,在LNS与LAC之间协商起来后就会触发两端设备开始PPP保活报文的收发,PPP保活报文用于使得两端设备确定对方是否存在,如LNS向LAC周期性发送PPP保活报文,LNS在发送了多个PPP保活报文后均未接收到LAC返回的应答信息,则很可能表示对方LAC已经下线了,LNS则自动将对应的PPP接口断掉。
但是如果LNS处理的大量不同的PPP接口的进行保活报文的收发超过了LNS的处理性能的时候,可能使得LNS没有更多的处理能力去处理新的LAC的协商,所以很可能就会导致大量的协商报文重复发送,导致L2TP的会话协商反复震荡,让本身负载较重的网络负载更加加重,从而形成雪崩效应,而现有技术中并未提出相应的解决办法。
发明内容
本申请实施例的目的在于提供一种保活报文发送方法、装置、电子设备及可读存储介质。
第一方面,本申请实施例提供了一种保活报文发送方法,所述方法包括:在任一PPP接口协商成功后,根据PPP接口的保活周期计算发送该PPP接口的首个保活报文的第一发送时间;判断当前所有协商成功的PPP接口中在所述第一发送时间需要发送保活报文的PPP接口的数量是否超过预设值;如果超过预设值,将所述首个保活报文的发送时间调整到第二发送时间,所述第二发送时间晚于所述第一发送时间;在所述第二发送时间发送所述首个保活报文。
在上述实现过程中,通过调整各个PPP接口发送首个保活报文的时间从而使得在同一时间发送首个保活报文的PPP接口的数量不是太多,以避免网络服务器LNS同时处理大量的保活报文的发送而带来的负载过大的问题。
可选地,所述将所述首个保活报文的发送时间调整到第二发送时间,包括:根据当前所有协商成功的PPP接口的数量以及在所述第一发送时间需要发送保活报文的PPP接口的数量,计算离散时间,将所述第一发送时间加上所述离散时间得到所述第二发送时间,将所述第二发送时间作为所述首个保活报文的发送时间。
在上述实现过程中,将PPP接口发送首个保活报文的发送时间调整为第二发送时间,第二发送时间为第一发送时间加上获得的离散时间获得的,即将PPP接口发送首个保活报文的时间进行延长,从而可以错开在同一时间均会发送首个保活报文的PPP接口的时间,减轻了LNS的处理压力。
可选地,所述在所述第二发送时间发送所述首个保活报文,包括:将所述第二发送时间放入时间数组的保活周期节点中;在所述第二发送时间为所述时间数组中的最小值时,将所述第二发送时间加入小根堆;基于所述小根堆,在所述第二发送时间到达后,发送所述任一PPP接口的所述首个保活报文。
在上述实现过程中,LNS通过构建的小根堆来处理各个PPP接口发送保活报文的发送时间,由于小根堆具有较高的性能,所以,可以提高LNS的数据处理效率。
可选地,所述将所述第二发送时间放入时间数组的保活周期节点中,包括:根据基于每个PPP接口的保活周期为节点构建的时间数组,将所述第二发送时间按照时间值先小后大顺序加入所述时间数组的所述任一PPP接口的保活周期所在节点中的对应位置。
在上述实现过程中,通过将发送时间按照时间值大小加入小根堆中,则使得LNS可以通过构建的小根堆来处理各个PPP接口发送保活报文的发送时间,可以提高LNS的数据处理效率。
可选地,所述在所述第二发送时间发送所述首个保活报文,还包括:在所述第二发送时间不是所述时间数组中的最小值时,等到所述第二发送时间成为所述时间数组中的最小值时,将所述第二发送时间加入所述小根堆;基于所述小根堆,在所述第二发送时间到达后,发送所述任一PPP接口的所述首个保活报文。
在上述实现过程中,由于先将发送时间加入到小根堆中,则减少小根堆的节点数,进一步提升小根堆的性能,进而进一步提高了LNS的数据处理效率。
第二方面,本申请实施例提供了一种保活报文发送装置,所述装置包括:
时间计算模块,用于在任一PPP接口协商成功后,根据PPP接口的保活周期计算发送该PPP接口的首个保活报文的第一发送时间;
判断模块,用于判断当前所有协商成功的PPP接口中在所述第一发送时间需要发送保活报文的PPP接口的数量是否超过预设值;
时间调整模块,用于在所述第一发送时间需要发送保活报文的PPP接口的数量超过预设值时,将所述首个保活报文的发送时间调整到第二发送时间,所述第二发送时间晚于所述第一发送时间;
保活报文发送模块,用于在所述第二发送时间发送所述首个保活报文。
可选地,所述时间调整模块,具体用于根据当前所有协商成功的PPP接口的数量以及在所述第一发送时间需要发送保活报文的PPP接口的数量,计算离散时间,将所述第一发送时间加上所述离散时间得到所述第二发送时间,将所述第二发送时间作为所述首个保活报文的发送时间。
可选地,所述保活报文发送模块,具体用于:
将所述第二发送时间放入时间数组的保活周期节点中;
在所述第二发送时间为所述时间数组中的最小值时,将所述第二发送时间加入小根堆;
基于所述小根堆,在所述第二发送时间到达后,发送所述任一PPP接口的所述首个保活报文。
可选地,所述保活报文发送模块,还用于根据基于每个PPP接口的保活周期为节点构建的时间数组,将所述第二发送时间按照时间值先小后大顺序加入所述时间数组的所述任一PPP接口的保活周期所在节点中的对应位置。
可选地,所述保活报文发送模块,还用于在所述第二发送时间不是所述时间数组中的最小值时,等到所述第二发送时间成为所述时间数组中的最小值时,将所述第二发送时间加入所述小根堆;基于所述小根堆,在所述第二发送时间到达后,发送所述任一PPP接口的所述首个保活报文。
第三方面,本申请实施例提供一种电子设备,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如上述第一方面提供的所述方法中的步骤。
第四方面,本申请实施例提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时运行如上述第一方面提供的所述方法中的步骤。
本申请实施例提供一种保活报文发送方法、装置、电子设备及可读存储介质,该方法中,在在任一PPP接口协商成功后,根据PPP接口的保活周期计算发送该PPP接口的首个保活报文的第一发送时间,然后判断当前所有协商成功的PPP接口中在所述第一发送时间需要发送保活报文的PPP接口的数量是否超过预设值,如果超过预设值,将所述首个保活报文的发送时间调整到第二发送时间,所述第二发送时间晚于所述第一发送时间,在所述第二发送时间发送所述首个保活报文,由此,通过调整各个PPP接口发送首个保活报文的时间从而使得在同一时间发送首个保活报文的PPP接口的数量不是太多,以避免网络服务器LNS同时处理大量的保活报文的发送而带来的负载过大的问题。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种保活报文发送方法的流程图;
图2为本申请实施例提供的一种小根堆的结构示意图;
图3为本申请实施例提供的一种小根堆应用于本申请实施例的结构示意图;
图4为本申请实施例提供的一种保活报文发送装置的结构框图;
图5为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
现有技术中,LNS和LAC之间建立协商后,LNS会为该LAC分配一个PPP接口,该PPP接口用于LNS和LAC之间保活报文的收发,若LNS与多个LAC之间协商起来后,就会处理保活报文的收发,若LNS此时有上千个会话需要处理,而这些会话的处理需要耗费LNS大量的处理性能,从而可能使得LNS没有更多的处理能力去处理新的LAC的协商,所以很可能就会导致大量的协商报文重复发送,则再一次加重了LNS的处理负担,可能导致L2TP的会话协商反复震荡,从而形成雪崩效应。所以,为了解决上述问题,本申请实施例提供了一种保活报文发送方法。
请参照图1,图1为本申请实施例提供的一种保活报文发送方法的流程图,所述方法包括如下步骤:
步骤S110:在任一PPP接口协商成功后,根据PPP接口的保活周期计算发送该PPP接口的首个保活报文的第一发送时间。
步骤S120:判断当前所有协商成功的PPP接口中在所述第一发送时间需要发送保活报文的PPP接口的数量是否超过预设值。
其中,LNS上会创建大量的PPP接口,用于与LAC建立会话连接,由于LNS对PPP接口的处理是一个一个处理的,比如LAS当前建立了多个PPP接口,LNS对先建立的第一个PPP接口处理发送保活报文,然后再接着处理第二个PPP接口发送保活报文,由于LNS的处理速度很快,所以也可以看成是对所有的PPP接口进行同时处理。其中,每个PPP接口均配置了对应的保活报文发送周期,其多个PPP接口的保活报文发送周期可以一样也可以不一样,实际应用中,可以根据需求自行为每个PPP接口设定对应的保活报文发送周期。
所以,可在任一PPP接口协商成功后,根据该PPP接口配置的保活周围期计算该PPP接口的首个保活报文的第一发送时间。如对于其中某个PPP接口来说,若其配置的保活周期为10s,则在该PPP接口协商成功后,该PPP接口发送首个保活报文的第一发送时间为当前***时间加上保活周期10s。
而为了减少LNS在同一时间需处理多个PPP接口要发送保活报文而带来的处理压力,所以在任一PPP接口发送首个保活报文之前,对该PPP接口发送首个保活报文的发送时间进行调整,从而错开在同一时间有多个PPP接口均会发送保活报文的发送时间。
例如,若LNS上当前创建有500个PPP接口,若确定当前协商成功的PPP接口发送的首个保活报文的第一发送时间后,然后判断当前所有协商成功的PPP接口中在所述第一发送时间需要发送保活报文的PPP接口的数量是否超过预设值,即先计算500个PPP接口中在第一发送时间需要发送保活报文的PPP接口的个数,由于每个PPP接口的保活周期很可能设置得不相同,由于协商成功的时间不同,所以很可能导致在第一发送时间有多个PPP接口会发送保活报文,造成LNS的处理压力。
下面以一个具体的例子进行说明,例如,对于当前协商成功的任一PPP接口,其设置的保活周期为10s,若当前时间为8:30,则当前协商成功的任一个PPP接口发送首个保活报文的时间为8:40,即第一发送时间为8:40,此时,检测其他已经协商成功的PPP接口发送保活报文的时间,例如,查看已经协商成功的第2个PPP接口,其设置的保活周期为5s,根据***记录的则其发送下一个保活报文的时间为8:35,与当前协商成功的任一PPP接口发送首个保活报文的时间不一致,查看已经协商成功的第3个PPP接口设置的保活周期为8s,但第3个PPP接口发送下一个保活报文的时间与当前协商成功的任一PPP接口发送首个保活报文的时间相同,以此逐个遍历并获取已协商成功的所有PPP接口发送下一个保活报文的时间,从而可以统计在第一发送时间需要发送保活报文的PPP接口的数量,然后判断该数量是否超过预设值,比如,若统计到在第一发送时间需发送保活报文的PPP接口的数量为400个,由于LNS当前的处理能力可能只能处理300个PPP接口的保活报文的发送,则可将预设值设置为300,此时,该数量超过了300,则表明LNS处理保活的负载过大,则在所述第一发送时间需发送保活报文的PPP接口的数量超过预设值时,执行步骤S130:将所述首个保活报文的发送时间调整到第二发送时间。
其中,所述第二发送时间晚于所述第一发送时间。为了错开多个PPP接口均在同一时间发送保活报文的时间,所以可以将保活报文的发送时间从所述第一发送时间调整到在所述第一发送时间之后的第二发送时间,例如,对于当前协商成功的任一PPP接口发送首个保活报文的第一发送时间若为8:40,则可将第一发送时间调整至第二发送时间,如8:45,将当前协商成功的任一PPP接口发送首个保活报文的第一发送时间调整至第二发送时间。同样的道理,对于第2个刚协商成功的PPP接口也是同样的处理方式,即若第2个刚协商成功的PPP接口发送首个保活报文的第一发送时间为8:32,则先判断在8:32时整个***中所有协商成功的PPP接口中需发送保活报文的PPP接口的数量,若该数量超过预设值时,则将第2个刚协商成功的PPP接口发送首个保活报文的第一发送时间调整为第二发送时间,如8:34,按照此方式依次处理完其他的多个PPP接口,使得所有的PPP接口中在同一时间发送保活报文的PPP接口的数量不超过预设值。由此,可避免LNS在同一时间要处理多个PPP接口的保活,造成负载过大的问题。
步骤S140:在所述第二发送时间发送所述首个保活报文。
在调整了多个PPP接口的首个保活报文发送时间后,即均调整至第二发送时间,应理解的是,第二发送时间为各个PPP接口各自对应的发送首个保活报文的时间,所以,在第二发送时间到来时,可以通过各个PPP接口发送首个保活报文,如在第1个PPP接口的第二发送时间为8:30到期时,则通过第1个PPP接口发送首个保活报文,在第2个PPP接口的第二发送时间为8:40,则在第2个PPP接口的第二发送时间为8:40到期时,通过第2个PPP接口发送首个保活报文,以此可依次按照各个PPP接口的第二发送时间发送对应的首个保活报文。
由于已经错开当前协商成功的PPP接口发送首个保活报文的时间与已经协商成功的PPP接口发送下一个保活报文的时间,使得在同一时间没有大量的PPP接口需要发送保活报文,以此减轻了LNS同时处理大量保活的压力,所以,在按照调整的时间发送首个保活报文之后的PPP接口,后续的保活报文的发送按照各个PPP接口的保活报文的发送周期进行发送即可,例如,第1个PPP接口在8:30时发送了首个保活报文,该第1个PPP接口若设置的保活周期为10s,则后续该第1个PPP接口发送的保活报文均以10s为周期进行发送,如该第1个PPP接口发送的第2个保活报文的时间为8:40,该第1个PPP接口发送的第3个保活报文的时间为8:50。
所以,在本方案中,通过错开各个PPP接口发送保活报文的时间,从而使得在同一时间发送保活报文的PPP接口的数量不是太多,以避免服务器LNS同时处理大量的保活报文的发送而带来的负载过大的问题。
另外,在上述实施例的基础上,还可以根据当前所有协商成功的PPP接口的数量以及在所述第一发送时间需要发送保活报文的PPP接口的数量,计算离散时间,将所述第一发送时间加上所述离散时间得到所述第二发送时间,将所述第二发送时间作为所述首个保活报文的发送时间。
将PPP接口发送首个保活报文的发送时间调整为第二发送时间,第二发送时间为在第一发送时间经过离散时间之后的时间,即将PPP接口发送首个保活报文的时间进行延长,从而可以错开在同一时间均会发送保活报文的PPP接口的时间,减轻了LNS的处理压力。
其中,所述离散时间的计算公式为:离散时间=ln(当前所有协商成功的PPP接口的数量M+在第一发送时间要发送保活报文的接口个数P),或离散时间=ln(当前所有协商成功的PPP接口的数量M+在第一发送时间要发送保活报文的接口个数P)+第一预设值,或离散时间=ln(当前所有协商成功的PPP接口的数量M+在第一发送时间要发送保活报文的接口个数P)/第二预设值,其中,P小于等于M。其中,第一预设值和第二预设值的具体值可以根据实际情况自行设定,例如1,2,3...等。
当然,上述离散时间的计算公式不仅仅只是上述记载的计算方式,还可以根据预设定义的规则自行进行计算,例如,离散时间=log2(当前所有协商成功的PPP接口的数量M+在第一发送时间要发送保活报文的接口个数P)等。
需要说明的是,一般离散时间的值不会超过该PPP接口对应的可设置的最大保活周期,如若第1个PPP接口最大可设置的保活周期为10s,则离散时间的取值范围为0-10s,当然这只是一般情况按照这种方式获取离散时间,在具体实际应用过程中,也可以根据具体的需求获得对应的离散时间。
作为一种实施方式,为了提高LNS处理保活报文发送的性能,在所述第二发送时间发送所述首个保活报文,包括:将所述第二发送时间放入时间数组的保活周期节点中;在所述第二发送时间为所述时间数组中的最小值时,将所述第二发送时间加入小根堆;基于所述小根堆,在所述第二发送时间到达后,发送所述任一PPP接口的所述首个保活报文。
其中,小根堆是一种经过排序的完全二叉树,其中任一非终端节点的数据值均不大于其左子节点和右子节点的值,即满足性质:
Key[i]<=key[2i+1]&&Key[i]<=key[2i+2]或
Key[i]>=Key[2i+1]&&key>=key[2i+2]。
如图2所示为小根堆的结构示意图,在小根堆中,处于最顶端的节点为根节点,根节点的键值是所有堆节点键值中最小者。在本实施例中,可以将获得当前协商成功的PPP接口发送首个保活报文的第二发送时间,将所述第二发送时间放入构建的时间数组的保活周期节点中。
具体地,可以根据基于每个PPP接口的保活周期为节点构建的时间数组,将所述第二发送时间按照时间值先小后大顺序加入所述时间数组的所述任一PPP接口的保活周期所在节点中的对应位置。
为了描述的简洁,以5个PPP接口为例,则按照上述的方式可以获得这5个PPP接口由于具有相同保活周期所以位于以保活周期为节点构建的时间数组的同一个节点中,按照时间顺序排序为:第1个PPP接口:8:30,第3个PPP接口:8:35,第2个PPP接口:8:36,第4个PPP接口:8:40,第5个PPP接口:8:43,该时间数组中,各个时间值从小到大排序,然后基于该时间数组构建小根堆,如图3所示,图3中示出了小根堆中各个发送周期节点对应的PPP接口发送保活报文的时间,例如,在根节点处,根节点处的第二发送时间为8:30,该值是小根堆里时间最早的值,则在小根堆中,设置有定时器实时检测小根堆最早的时间是否到期,如在当前时间为8:30时,其小根堆中的最早时间也为8:30,则表示8:30时对应的第1个PPP接口需发送保活报文,则在处理完第1个根节点的时间后,将小根堆中的8:30取出,然后通过第1个PPP接口发送保活报文。若第1个PPP接口设置的保活周期为7s,则第1个PPP接口发送第二个保活报文的时间为8:37,则更新小根堆,将8:37重新加入小根堆中,获得如图3右边所示的小根堆,再次检测该小根堆中根节点存储的第二发送时间的到期时间,然后依上述方法继续处理小根堆中的各个PPP接口对应的保活报文的发送时间。
在上述方式中,有多少个PPP接口就需构造多少个节点的小根堆,在处理过程中,小根堆随着时间而移动,即更新各个节点的值,由于小根堆***、删除的性能可以提升到logN,N为小根堆的节点数,所以,LNS可以通过小根堆来处理各个PPP接口发送保活报文的发送时间,其可以提高LNS的处理效率。
另外,为了减少小根堆的节点数,进一步提升小根堆的性能,则可在所述第二发送时间不是所述时间数组中的最小值时,等到所述第二发送时间成为所述时间数组中的最小值时,将所述第二发送时间加入所述小根堆;基于所述小根堆,在所述第二发送时间到达后,发送所述任一PPP接口的所述首个保活报文。
也就是说,所述时间数组中有该任一PPP接口对应的首个保活报文的第二发送时间,该第二发送时间不是时间数组中对应保活周期节点的最小值,按照时间值的大小将该第二发送时间加入到时间数组的其对应的保活周期节点中,在该任一PPP接口的第二发送时间为时间数组中的最小值时,将其加入小根堆中,通过检测到小根堆中该第二发送时间到达时,发送该任一PPP接口的首个保活报文。
当然,若小根堆的节点数有限时,加入小根堆中的第二发送时间的数量也有限,若PPP接口数量为500,每次需建立节点数为500的小根堆,而在小根堆的更新过程中,很可能所有节点的值都需要更新,所以可以建立节点数为预设个数的小根堆,即从500个PPP接口中获取预设个数PPP接口对应的发送保活报文的时间,如预设个数为100个,则这100个PPP接口对应的发送保活报文的时间均早于剩下的400个PPP接口发送保活报文的时间。然后将这100个PPP接口对应的发送保活报文的发送时间按照从早到晚的顺序加入到小根堆的每个节点中,即该小根堆的节点数为100,则小根堆的处理过程跟上述相同,在此不再过多赘述。
请参照图4,图4为本申请实施例提供的一种保活报文发送装置200的结构框图,所述装置包括:
时间计算模块210,用于在任一PPP接口协商成功后,根据PPP接口的保活周期计算发送该PPP接口的首个保活报文的第一发送时间;
判断模块220,用于判断当前所有协商成功的PPP接口中在所述第一发送时间需要发送保活报文的PPP接口的数量是否超过预设值;
时间调整模块230,用于在所述第一发送时间需要发送保活报文的PPP接口的数量超过预设值时,将所述首个保活报文的发送时间调整到第二发送时间,所述第二发送时间晚于所述第一发送时间;
保活报文发送模块240,用于在所述第二发送时间发送所述首个保活报文。
可选地,所述时间调整模块230,具体用于根据当前所有协商成功的PPP接口的数量以及在所述第一发送时间需要发送保活报文的PPP接口的数量,计算离散时间,将所述第一发送时间加上所述离散时间得到所述第二发送时间,将所述第二发送时间作为所述首个保活报文的发送时间。
可选地,所述保活报文发送模块240,具体用于:
将所述第二发送时间放入时间数组的保活周期节点中;
在所述第二发送时间为所述时间数组中的最小值时,将所述第二发送时间加入小根堆;
基于所述小根堆,在所述第二发送时间到达后,发送所述任一PPP接口的所述首个保活报文。
可选地,所述保活报文发送模块240,还用于根据基于每个PPP接口的保活周期为节点构建的时间数组,将所述第二发送时间按照时间值先小后大顺序加入所述时间数组的所述任一PPP接口的保活周期所在节点中的对应位置。
可选地,所述保活报文发送模块240,还用于在所述第二发送时间不是所述时间数组中的最小值时,等到所述第二发送时间成为所述时间数组中的最小值时,将所述第二发送时间加入所述小根堆;基于所述小根堆,在所述第二发送时间到达后,发送所述任一PPP接口的所述首个保活报文。
请参照图5,图5为本申请实施例提供的一种电子设备的结构示意图,所述电子设备可以包括:至少一个处理器110,例如CPU,至少一个通信接口120,至少一个存储器130和至少一个通信总线140。其中,通信总线140用于实现这些组件直接的连接通信。其中,本申请实施例中设备的通信接口120用于与其他节点设备进行信令或数据的通信。存储器130可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器130可选的还可以是至少一个位于远离前述处理器的存储装置。存储器130中存储有计算机可读取指令,当所述计算机可读取指令由所述处理器110执行时,电子设备执行上述图1所示方法过程。
本申请实施例提供一种可读取存储介质,所述计算机程序被处理器执行时,执行如图1所示方法实施例中电子设备所执行的方法过程。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。
综上所述,本申请实施例提供一种保活报文发送方法、装置、电子设备及可读存储介质,该方法中,在任一PPP接口协商成功后,根据PPP接口的保活周期计算发送该PPP接口的首个保活报文的第一发送时间,然后判断当前所有协商成功的PPP接口中在所述第一发送时间需要发送保活报文的PPP接口的数量是否超过预设值,如果超过预设值,将所述首个保活报文的发送时间调整到第二发送时间,所述第二发送时间晚于所述第一发送时间,在所述第二发送时间发送所述首个保活报文,由此,通过调整各个PPP接口发送首个保活报文的时间从而使得在同一时间发送首个保活报文的PPP接口的数量不是太多,以避免网络服务器LNS同时处理大量的保活报文的发送而带来的负载过大的问题。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保活范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保活范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保活范围之内。因此,本申请的保活范围应所述以权利要求的保活范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (12)
1.一种保活报文发送方法,其特征在于,所述方法包括:
在任一PPP接口协商成功后,根据PPP接口的保活周期计算发送该PPP接口的首个保活报文的第一发送时间,其中,PPP接口是指点对点协议接口;
判断当前所有协商成功的PPP接口中在所述第一发送时间需要发送保活报文的PPP接口的数量是否超过预设值;
如果超过预设值,将所述首个保活报文的发送时间调整到第二发送时间,所述第二发送时间晚于所述第一发送时间;
在所述第二发送时间发送所述首个保活报文。
2.根据权利要求1所述的方法,其特征在于,所述将所述首个保活报文的发送时间调整到第二发送时间,包括:
根据当前所有协商成功的PPP接口的数量以及在所述第一发送时间需要发送保活报文的PPP接口的数量,计算离散时间,将所述第一发送时间加上所述离散时间得到所述第二发送时间,将所述第二发送时间作为所述首个保活报文的发送时间。
3.根据权利要求1或2所述的方法,其特征在于,所述在所述第二发送时间发送所述首个保活报文,包括:
将所述第二发送时间放入时间数组的保活周期节点中;
在所述第二发送时间为所述时间数组中的最小值时,将所述第二发送时间加入小根堆;
基于所述小根堆,在所述第二发送时间到达后,发送所述任一PPP接口的所述首个保活报文。
4.根据权利要求3所述的方法,其特征在于,所述将所述第二发送时间放入时间数组的保活周期节点中,包括:
根据基于每个PPP接口的保活周期为节点构建的时间数组,将所述第二发送时间按照时间值先小后大顺序加入所述时间数组的所述任一PPP接口的保活周期所在节点中的对应位置。
5.根据权利要求3所述的方法,其特征在于,所述在所述第二发送时间发送所述首个保活报文,还包括:
在所述第二发送时间不是所述时间数组中的最小值时,等到所述第二发送时间成为所述时间数组中的最小值时,将所述第二发送时间加入所述小根堆;
基于所述小根堆,在所述第二发送时间到达后,发送所述任一PPP接口的所述首个保活报文。
6.一种保活报文发送装置,其特征在于,所述装置包括:
时间计算模块,用于在任一PPP接口协商成功后,根据PPP接口的保活周期计算发送该PPP接口的首个保活报文的第一发送时间,其中,PPP接口是指点对点协议接口;
判断模块,用于判断当前所有协商成功的PPP接口中在所述第一发送时间需要发送保活报文的PPP接口的数量是否超过预设值;
时间调整模块,用于在所述第一发送时间需要发送保活报文的PPP接口的数量超过预设值时,将所述首个保活报文的发送时间调整到第二发送时间,所述第二发送时间晚于所述第一发送时间;
保活报文发送模块,用于在所述第二发送时间发送所述首个保活报文。
7.根据权利要求6所述的装置,其特征在于,所述时间调整模块,具体用于根据当前所有协商成功的PPP接口的数量以及在所述第一发送时间需要发送保活报文的PPP接口的数量,计算离散时间,将所述第一发送时间加上所述离散时间得到所述第二发送时间,将所述第二发送时间作为所述首个保活报文的发送时间。
8.根据权利要求6或7所述的装置,其特征在于,所述保活报文发送模块,具体用于:
将所述第二发送时间放入时间数组的保活周期节点中;
在所述第二发送时间为所述时间数组中的最小值时,将所述第二发送时间加入小根堆;
基于所述小根堆,在所述第二发送时间到达后,发送所述任一PPP接口的所述首个保活报文。
9.根据权利要求8所述的装置,其特征在于,所述保活报文发送模块,还用于根据基于每个PPP接口的保活周期为节点构建的时间数组,将所述第二发送时间按照时间值先小后大顺序加入所述时间数组的所述任一PPP接口的保活周期所在节点中的对应位置。
10.根据权利要求8所述的装置,其特征在于,所述保活报文发送模块,还用于在所述第二发送时间不是所述时间数组中的最小值时,等到所述第二发送时间成为所述时间数组中的最小值时,将所述第二发送时间加入所述小根堆;基于所述小根堆,在所述第二发送时间到达后,发送所述任一PPP接口的所述首个保活报文。
11.一种电子设备,其特征在于,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如权利要求1-5任一所述方法中的步骤。
12.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时运行如权利要求1-5任一所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811587980.4A CN111355764B (zh) | 2018-12-24 | 2018-12-24 | 保活报文发送方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811587980.4A CN111355764B (zh) | 2018-12-24 | 2018-12-24 | 保活报文发送方法、装置、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111355764A CN111355764A (zh) | 2020-06-30 |
CN111355764B true CN111355764B (zh) | 2023-10-24 |
Family
ID=71195582
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811587980.4A Active CN111355764B (zh) | 2018-12-24 | 2018-12-24 | 保活报文发送方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111355764B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113765711B (zh) * | 2021-08-25 | 2023-12-26 | 新华三大数据技术有限公司 | 一种网络设备保活方法及装置 |
CN116886755B (zh) * | 2023-09-08 | 2023-11-17 | 安擎计算机信息股份有限公司 | 一种被测服务器的保活方法及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101094186A (zh) * | 2007-07-30 | 2007-12-26 | 杭州华三通信技术有限公司 | 一种保持邻居关系的方法和接口板 |
WO2010083739A1 (zh) * | 2009-01-21 | 2010-07-29 | 华为技术有限公司 | Ip会话存活监控方法及***、家庭网关和网络设备 |
CN102014054A (zh) * | 2010-11-22 | 2011-04-13 | 中兴通讯股份有限公司 | 保活报文的发送方法和设备 |
CN102104531A (zh) * | 2009-12-17 | 2011-06-22 | 华为技术有限公司 | 一种报文处理装置、方法及*** |
CN102347909A (zh) * | 2011-11-22 | 2012-02-08 | 迈普通信技术股份有限公司 | 实现大量协议报文的发送方法和装置 |
US8156209B1 (en) * | 2001-02-15 | 2012-04-10 | Cisco Technology, Inc. | Aggregation devices processing keep-alive messages of point-to-point sessions |
CN102917408A (zh) * | 2012-10-26 | 2013-02-06 | 迈普通信技术股份有限公司 | 3g网络中lns设备下行流量控制方法及*** |
CN106911696A (zh) * | 2017-02-28 | 2017-06-30 | 新华三技术有限公司 | 一种保活报文传输方法和装置 |
CN107566213A (zh) * | 2017-08-28 | 2018-01-09 | 新华三技术有限公司 | 一种保活检测方法和装置 |
-
2018
- 2018-12-24 CN CN201811587980.4A patent/CN111355764B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8156209B1 (en) * | 2001-02-15 | 2012-04-10 | Cisco Technology, Inc. | Aggregation devices processing keep-alive messages of point-to-point sessions |
CN101094186A (zh) * | 2007-07-30 | 2007-12-26 | 杭州华三通信技术有限公司 | 一种保持邻居关系的方法和接口板 |
WO2010083739A1 (zh) * | 2009-01-21 | 2010-07-29 | 华为技术有限公司 | Ip会话存活监控方法及***、家庭网关和网络设备 |
CN102104531A (zh) * | 2009-12-17 | 2011-06-22 | 华为技术有限公司 | 一种报文处理装置、方法及*** |
CN102014054A (zh) * | 2010-11-22 | 2011-04-13 | 中兴通讯股份有限公司 | 保活报文的发送方法和设备 |
CN102347909A (zh) * | 2011-11-22 | 2012-02-08 | 迈普通信技术股份有限公司 | 实现大量协议报文的发送方法和装置 |
CN102917408A (zh) * | 2012-10-26 | 2013-02-06 | 迈普通信技术股份有限公司 | 3g网络中lns设备下行流量控制方法及*** |
CN106911696A (zh) * | 2017-02-28 | 2017-06-30 | 新华三技术有限公司 | 一种保活报文传输方法和装置 |
CN107566213A (zh) * | 2017-08-28 | 2018-01-09 | 新华三技术有限公司 | 一种保活检测方法和装置 |
Non-Patent Citations (2)
Title |
---|
D. Tsiang ; G. Suwala ; Cisco Systems ; .The Cisco SRP MAC Layer Protocol.IETF rfc2892.2000,全文. * |
VPN隧道技术的研究及其实现;李睿;中国优秀硕士学位论文全文数据库 信息科技辑;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111355764A (zh) | 2020-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107332876B (zh) | 区块链状态的同步方法及装置 | |
CN102685204B (zh) | 数据资源传输的方法和设备 | |
CN107979592B (zh) | 一种发送业务请求消息的方法及装置 | |
CN104811459A (zh) | 用于消息服务的处理方法、装置及***、消息服务*** | |
CN111355764B (zh) | 保活报文发送方法、装置、电子设备及可读存储介质 | |
CN109218126B (zh) | 监测节点存活状态的方法、装置及*** | |
CN110460484B (zh) | 一种基于pbft算法改进的单节点异常主动恢复方法 | |
JP2022034012A (ja) | ユーザ機器のための無線リンクリカバリ | |
CN104683259A (zh) | Tcp拥塞控制方法及装置 | |
CN103167479B (zh) | 实现终端遥毙或遥开的方法、装置和*** | |
CN109194521B (zh) | 一种流量转发方法及设备 | |
CN107707689A (zh) | 一种dhcp报文处理方法、dhcp服务器及网关设备 | |
CN103516766A (zh) | 一种客户端与应用服务器间进行通信的方法和*** | |
WO2017000625A1 (zh) | 动态主机配置协议dhcp服务器管理方法及装置 | |
CN104243473B (zh) | 一种数据传输的方法以及装置 | |
CN103731424B (zh) | 一种网络数据的传输方法、装置及*** | |
US20200336432A1 (en) | Methods for dynamically controlling transmission control protocol push functionality and devices thereof | |
CN104009961A (zh) | 一种PPPoE会话标识分配方法及设备 | |
US20220346186A1 (en) | Timer for emergency text messages | |
CN104754760B (zh) | 一种分组业务重建方法和终端 | |
CN109788520A (zh) | 网络切换方法、amf和ran节点 | |
CN107302803B (zh) | 一种gtp-u隧道错误处理方法及装置 | |
EP3796598A1 (en) | Node switching method, network node, network system, and storage medium | |
CN108924200B (zh) | 一种报文处理方法及装置 | |
CN104284311B (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 |