Peer revival detection
09736244 · 2017-08-15
Assignee
Inventors
Cpc classification
H04L67/142
ELECTRICITY
H04L67/145
ELECTRICITY
H04L12/4641
ELECTRICITY
H04L69/40
ELECTRICITY
International classification
G06F15/16
PHYSICS
G06F15/173
PHYSICS
Abstract
It is provided a method, comprising detecting a request for establishing a session between a peer and a network, wherein the request is received from the peer and comprises an identifier of a user of the network; checking, if the request is detected, whether a first session is established, wherein the first session is a session of the user which is established between the peer and the network; determining, if it is checked that the first session is established, whether the first session is dead or alive; flushing the first session if it is determined that the first session is dead; triggering an establishment of the requested session if it is determined that the first session is dead.
Claims
1. An apparatus, comprising: at least one processor; and at least one memory including computer program code, wherein the at least one memory and the computer program code are configured to, with the at least one processor, cause the apparatus at least to: detect a request for establishing a session between a peer and a network, wherein the request is received from the peer and comprises an identifier of a user of the network; check whether the request is detected, wherein when the request is detected, the at least one memory and the computer program code are configured to, with the at least one processor, cause the apparatus at least to check whether a first session is established, wherein the first session is a session of the user which is established between the peer and the network; and determine whether it is checked that the first session is established, wherein when it is checked that the first session is established, the at least one memory and the computer program code are configured to, with the at least one processor, cause the apparatus at least to determine whether the first session is dead or alive, and wherein when it is determined that the first session is dead, the at least one memory and the computer program code are configured to, with the at least one processor, cause the apparatus at least to flush the first session; and trigger an establishment of the requested session.
2. The apparatus according to claim 1, wherein the at least one memory and the computer program code are further configured to, with the at least one processor, cause the apparatus at least to: count a number of established sessions of the user to the network; and inhibit the determination of whether the first session is dead or alive if the number of the established sessions of the user is less than a maximum number.
3. The apparatus according to claim 2, wherein the maximum number is 1.
4. The apparatus according to claim 2, wherein the maximum number is larger than 1, and wherein the at least one memory and the computer program code are further configured to, with the at least one processor, cause the apparatus at least to determine for at least one of all the established sessions of the user to the network, whether the respective session is dead or alive; and flush at least one session of the user which is determined being dead.
5. The apparatus according to claim 4, wherein the at least one memory and the computer program code are further configured to, with the at least one processor, cause the apparatus at least to determine for all of the established sessions of the user to the network, whether the respective session is dead or alive.
6. The apparatus according to claim 4, wherein the at least one memory and the computer program code are further configured to, with the at least one processor, cause the apparatus at least to flush each session of the user which is determined being dead.
7. The apparatus according to claim 4, wherein the at least one memory and the computer program code are further configured to, with the at least one processor, cause the apparatus at least to: determine for at least two of all the established sessions of the user to the network whether the respective session is dead or alive; and prohibit, after determining that one of all the established sessions is dead, determining whether any of all the established sessions of the user is dead or alive for which it has not been determined before it was determined for the one of all the established sessions.
8. The apparatus according to claim 1, wherein the at least one memory and the computer program code are further configured to, with the at least one processor, cause the apparatus at least to: perform a normal session liveliness detection if a transmission from the peer in the first session is not received in order to determine whether the first session is dead or alive; and determine whether the first session is dead or alive by a boosted session liveliness detection faster than the normal session liveliness detection.
9. The apparatus according to claim 1, wherein the network is a virtual private network.
10. A method, comprising detecting a request for establishing a session between a peer and a network, wherein the request is received from the peer and comprises an identifier of a user of the network; checking, upon detection of the request, whether a first session is established, wherein the first session is a session of the user which is established between the peer and the network; determining, upon checking that the first session is established, whether the first session is dead or alive; wherein if it is determined that the first session is dead, the method further comprises: flushing the first session; and triggering an establishment of the requested session.
11. The method according to claim 10, further comprising counting a number of established sessions of the user to the network; inhibiting the determining whether the first session is dead or alive if the number of the established sessions of the user is less than a maximum number.
12. The method according to claim 11, wherein the maximum number is 1.
13. The method according to claim 11, wherein the maximum number is larger than 1, and wherein the determining is adapted to determine for at least one of all the established sessions of the user to the network whether the respective session is dead or alive; the flushing is adapted to flush at least one session of the user which is determined being dead.
14. The method according to claim 13, wherein the determining is adapted to determine for all of the established sessions of the user to the network whether the respective session is dead or alive.
15. The method according to claim 14, wherein the flushing is adapted to flush each session of the user which is determined being dead.
16. The method according to claim 14, wherein the determining is adapted to determine for at least two of all the established sessions of the user to the network whether the respective session is dead or alive; and the method further comprises prohibiting, after it is determined that one of all the established sessions is dead, the determining whether any of all the established sessions of the user is dead or alive for which it has not been determined before it was determined for the one of all the established sessions.
17. The method according to claim 10, further comprising performing a normal session liveliness detection if a transmission from the peer in the first session is not received in order to determine whether the first session is dead or alive; wherein the determining is adapted to determine whether the first session is dead or alive by a boosted session liveliness detection faster than the normal session liveliness detection.
18. The method according to claim 10, wherein the network is a virtual private network.
19. A computer program product embodied on a non-transitory computer-readable medium, said product comprising a set of instructions which, when executed on an apparatus, is configured to cause the apparatus to carry out the method according to claim 10.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) Further details, features, objects, and advantages are apparent from the following detailed description of the preferred embodiments of the present invention which is to be taken in conjunction with the appended drawings, wherein
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
DETAILED DESCRIPTION OF CERTAIN EMBODIMENTS
(16) Herein below, certain embodiments of the present invention are described in detail with reference to the accompanying drawings, wherein the features of the embodiments can be freely combined with each other unless otherwise described. However, it is to be expressly understood that the description of certain embodiments is given for by way of example only, and that it is by no way intended to be understood as limiting the invention to the disclosed details.
(17) Moreover, it is to be understood that the apparatus is configured to perform the corresponding method, although in some cases only the apparatus or only the method are described.
(18) Embodiments of the invention may be applied to any system which deploys a virtual private network such as IPsec/IKE solutions with dead peer detection extensions (see
(19) Embodiments of the invention address the “forced outage” problem by implementing a revival detection mechanism. Given an already established session with specific IDi, whenever a new session is requested by an initiator which reuses the same IDi, the end-point (e.g. VPN server) checks whether the initiator is a revived node or a different node attempting a new connection. Thus it is possible for the end-point to differentiate between new peers and dead peers whose “death” has not yet been detected and that might have been revived (e.g. revival after experiencing a short outage).
(20) A revival detection mechanism is absent from the prior art.
(21) By detecting peer revival, embodiments of the invention speed-up the session recovery mechanism of revived peers, which reduces the “forced outage” period experienced by users. This would in turn further reduce the signaling load to the system since the period where users manually reattempt to connect but are blocked, is eliminated or reduced.
(22)
(23)
(24) The revival detector operates as follows: A new packet scheduled for the IKE module which includes a new VPN session request is first checked against the SAD component for already established sessions from the same IDi. If the IKE module detects that this new request contains the same IDi as one or more already established sessions, then it forwards the information to the Revival Detector. The Revival Detector then detects whether this is a revived peer or not.
(25) According to some embodiments of the invention, the Revival Detector is implemented as follows: The Revival Detector triggers the DPD module using preconfigured values for the DPD parameters in order to quickly determine whether the already established sessions are “dead” or not (boosted DPD procedure). Preconfigured values can be chosen by the Revival Detector to ensure a fast DPD procedure (ensuring a minimal total DPD time d.sub.DPD.sub._.sub.TOTAL) which would minimize the “forced outage” period and associated signaling loads as described in the previous sections.
(26) Note that standard DPD procedures are in fact “dead session detection” or rather “session liveliness detection” because they are related to a specific session of the peer. For example, in the DPD procedure of RFC 3706, the session related SPI is included in the “Are you there?” notification.
(27) The following paragraphs provide example flow diagrams which further illustrate the differences between embodiments of the invention and the prior art, for both cases of single session per IDi and multiple sessions per IDi.
(28) Case: Single Session Per IDi
(29)
(30) The last outcome in
(31)
(32) In these embodiments, during Peer Revival Detection, a boosted DPD procedure for the session associated with the specific IDi may be initiated where the DPD parameters are chosen such that the DPD completes much faster than the normal DPD procedure. For example, in the boosted DPD procedure, parameters c, b, n (see section 2) may be chosen such that d.sub.DPD.sub._.sub.TOTAL(DPDboost) is significantly lower than the normal d.sub.DPD.sub._.sub.TOTAL interval.
(33) While Peer Revival Detection introduces a delay of d.sub.DPD.sub._.sub.TOTAL(DPDboost) in the session establishment procedure, this delay will not significantly affect the session establishment procedure since, according to [RFC5996: Section 2.4], the session establishment procedure can be delayed by a period of several minutes depending on the application scenario.
(34) Once the boosted DPD procedure is completed, it is concluded whether the previous session with associated IDi is dead. If yes, then this session request is probably from a peer who has experienced an outage and has revived, and thus the previous dead session is flushed and the new session is established. If the previous session with associated IDi is alive, then the new request is from a second peer or a request for a second session from the same peer, and thus the new session request is rejected.
(35) As can be seen from
(36) Case: Multiple Sessions Per IDi
(37)
(38) Once again, the last outcome in
(39)
(40) During the Peer Revival Detection, all M sessions may be checked for liveliness (loop with iterator j in
(41) Potentially, the total delay for the Peer Revival Detection in the multiple sessions case might be higher than the delay of Peer Revival Detection in the single session case depending on the specific design of the loop. Nevertheless, this delay may not significantly affect the session establishment procedure since, according to [RFC5996: Section 2.4], the session establishment procedure can be delayed by a period of several minutes depending on the application scenario.
(42) Once a session has been found to be dead by the boosted DPD procedure, then the peer is assumed to be a revived peer; in that case the dead session is flushed from the database and the new session request proceeds.
(43) It should be noted that
(44) In addition, depending on the application scenario, the loop in
(45) The checking of the sessions may be performed sequentially or (at least partly) in parallel. Even if according to some embodiments of the invention several checks are made in parallel, ongoing checks may be ceased if a dead session is found.
(46) As another example, the loop for boosted DPD checks may be non serial such that multiple DPD mechanisms may be operated in parallel. Thus, the procedure according to any application scenario may be optimized and/or the total delay of Peer Revival Detection may be minimized.
(47)
(48) The apparatus comprises detecting means 10, checking means 20, determining means 30, flushing means 40, and triggering means 50.
(49) The detecting means 10 detects a request for establishing a session between a peer and a network, wherein the request is received from the peer (S10). The request comprises an identifier of a user of the network.
(50) The checking means 20 checks, if the request is detected, whether a first session is established (S20). The first session is a session of the user to which the identifier of the received request belongs. Furthermore, the first session is established between the peer and the network, as would be the requested session.
(51) The determining means 30 determines whether the first session is dead or alive (S30). This determination takes place if it is positively checked that the first session is established.
(52) If it is determined that the first session is dead, the flushing means 40 flushes the first session (S40) and the triggering means 50 triggers an establishment of the requested session (S50), i.e. the session requested in step S10. The sequence of these steps may be interchanged or these steps may be performed in parallel.
(53) In general, embodiments of the invention apply to both of hub and spoke VPN topologies, wherein e.g. a VPN server acts as a hub and numerous peers/users act as spokes which are connected to the hub.
(54) Embodiments of the invention may also be deployed to any network which deploys procedures to monitor the “liveliness” of nodes, such as SIP systems (e.g. [Lee07] and references therein), routing protocols, applications using TCP which require “liveliness” monitoring (see e.g. [RFC1122: Section 4.2.3.6]) or services such as Social Networking Service (SNS) ([Hyeon12] and references therein). Furthermore, embodiments of the invention may be applied straightforwardly to any control system which aims to optimize the memory and CPU load of network elements (such as the techniques for web server optimization described in [Diao02] and references therein).
(55) Moreover, embodiments of the invention may be straightforwardly extended applied to systems where multiple VPN servers are used which implement high availability features (e.g. master/slave configurations) or load balancing configurations and to systems where the mobile terminals have multiple wireless or wired connections to the access network where the terminals either do not or do implement paging functions to any or all of the connections.
(56) Moreover, embodiments of the invention may also apply to UMTS, LTE, GSM and HSxPA and systems and evolved PDG (ePDG) elements.
(57) Embodiments of the invention apply to any negotiation messages such as IKE negotiations and protocols as well as any secure session establishment methods. In some embodiments, instead of the term “session” the term “login” or other corresponding terms may be used.
(58) A terminal may comprise any kind of terminal that may be peered to the other node such as a user equipment, mobile phone, PDA, laptop, smartphone, personal computer etc.
(59) If not otherwise stated or otherwise made clear from the context, the statement that two entities are different means that they are differently addressed in the core network. It does not necessarily mean that they are based on different hardware. That is, each of the entities described in the present description may be based on a different hardware, or some or all of the entities may be based on the same hardware.
(60) According to the above description, it should thus be apparent that exemplary embodiments of the present invention provide, for example a network node such as a hub or a VPN server, or a component thereof, an apparatus embodying the same, a method for controlling and/or operating the same, and computer program(s) controlling and/or operating the same as well as mediums carrying such computer program(s) and forming computer program product(s).
(61) Implementations of any of the above described blocks, apparatuses, systems, techniques or methods include, as non limiting examples, implementations as hardware, software, firmware, special purpose circuits or logic, general purpose hardware or controller or other computing devices, or some combination thereof.
(62) It is to be understood that what is described above is what is presently considered the preferred embodiments of the present invention. However, it should be noted that the description of the preferred embodiments is given by way of example only and that various modifications may be made without departing from the scope of the invention as defined by the appended claims.