WO2021008709A1 - Device and method for managing connections - Google Patents

Device and method for managing connections Download PDF

Info

Publication number
WO2021008709A1
WO2021008709A1 PCT/EP2019/069356 EP2019069356W WO2021008709A1 WO 2021008709 A1 WO2021008709 A1 WO 2021008709A1 EP 2019069356 W EP2019069356 W EP 2019069356W WO 2021008709 A1 WO2021008709 A1 WO 2021008709A1
Authority
WO
WIPO (PCT)
Prior art keywords
connection
entity
keeper
connections
communication device
Prior art date
Application number
PCT/EP2019/069356
Other languages
French (fr)
Inventor
Alex Margolin
Zhaohui Ding
Original Assignee
Huawei Technologies Co., Ltd.
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 Huawei Technologies Co., Ltd. filed Critical Huawei Technologies Co., Ltd.
Priority to PCT/EP2019/069356 priority Critical patent/WO2021008709A1/en
Priority to CN201980097970.9A priority patent/CN114175589B/en
Publication of WO2021008709A1 publication Critical patent/WO2021008709A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/15Setup of multiple wireless link connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/11Allocation or use of connection identifiers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/20Manipulation of established connections
    • H04W76/25Maintenance of established connections

Definitions

  • the disclosure relates generally to the field of managing connections in network communication(s), and, more particularly, to devices and methods for recycling the established connections.
  • the disclosure presents a device that establishes a connection using a host communication device and it further retains the established connection. Moreover, the device re-uses the retained connection for performing a communication to another device.
  • the duration of network connection establishment is critical for their performance. For instance, some applications are based on short-lived connections (i.e., created and destroyed often). In such cases, the duration may actually be longer than the usage of those connections.
  • parallel applications are another example, where a total of N processes may initiate up to (N 2 -N) concurrent connection requests which makes the connection establishment phase unnecessarily long.
  • a conventional network connection establishment typically includes the following elements:
  • connection establishment may be redundant, for example, when more than one connection is established either from the same source or to the same destination. Furthermore, each element has a cost in time and resources, both of which could sometimes be avoided.
  • Transmission Control Protocol performs a“Three-way handshake”, which lasts about 5 milliseconds on the latest hardware (see FIG. 4, where a“Client” connects to a“Server”),
  • UDP Unreliable Datagram Protocol
  • RDMA Remote Direct Memory Access
  • QP Queue Pair
  • RC Reliable Connection
  • UD Unreliable Datagram
  • this method proposes resuming the past TCP connections between the same two endpoints during the application’s execution. This means the connection may be kept open and later resumed, for example, by retransmitting the last messages sent before an interruption during the connection. This method focuses on wireless radio communication, and the case of multiple routers, where the endpoint moves from one router to another.
  • A“proxy” process a common technique in networking is to create a“proxy” entity, which will serve as the middleman between the source and destination of the connection.
  • Two examples for employing such a proxy is Network Address Translation (NAT) and load-balancers, where the separation serves purposes other than connection establishment performance.
  • NAT Network Address Translation
  • load-balancers where the separation serves purposes other than connection establishment performance.
  • Such a proxy could maintain an open connection to the destination while the source is absent, though we are not aware of existing implementations of proxy designed for this purpose (connection establishment overhead reduction).
  • connection establishment overhead reduction connection establishment overhead reduction.
  • Stateless connections it is likely possible to design a connection which requires minimal effort for connection establishment, i.e., no requests or responses, no operating system resources required, and minimal creation time.
  • connection management For the parallel application use-case, it might be possible to address the connection establishment overhead by forming a single, centralized entity, which will be used to establish the connections with little overhead on each endpoint. A similar approach is used today by the software package “ PM1-X which facilitates the exchange of connection information (saves address resolution time) but still requires regular connection establishment for each connection given that information.
  • Broadcast/Multicast Establishing broadcast or multicast communication typically involves either a central entity (e.g. InfiniBand Subnet Manager ) similar to the aforementioned alternative (c) or a de-centralized method (e.g. IGMP protocol). Both cases may connect a new endpoint to a group containing other endpoints, which may be viewed as joining an existing connection with those other endpoints. This might address some aspects of the invention, such as establishing a connection without specifying the addresses of other endpoints
  • connection establishment (merely the multicast group address), and the multicast group may hold even while it’s empty, but the overhead in such connection establishment is still substantial in this case (and other limitations also apply).
  • conventional devices and methods have the disadvantages of addressing only a fraction of the aspects of connection establishment.
  • the conventional devices and methods focus on specific protocols (mainly TCP) and solve only part of the generalized problem.
  • the techniques discussed under items (a) and (b) disclose only the matter of socket allocation and not the connection establishment over the allocated sockets.
  • the discussed technique item (c) is more relevant, but it also focuses on a narrow use-case, i.e., resuming a past connection between two endpoints, and following an interruption or a change in the route.
  • the other outlined elements of connection establishment such as address resolution, are excluded from the above discussed techniques.
  • conventional devices and methods do not address the majority of connection establishment aspects.
  • the present invention aims to improve the conventional devices and methods.
  • the present invention has thereby the objective to provide a device and a method for managing connections, for example, as an alternative to the traditional connection establishment schemes, where in the traditional schemes, every new connection is established separately, and by the process interested in the communication.
  • the device and method of the present disclosure manage the connections such that, the connections may be created once and may further be re-used (e.g., indefinitely), for example, by different applications than the one creating the connection.
  • the objective of the present invention is achieved by the solution provided in the enclosed independent claims. Advantageous implementations of the present invention are further defined in the dependent claims.
  • a first aspect of the invention provides a device for managing connections, the device comprising an endpoint entity configured to establish one or more connections using a host communication device; a keeper entity configured to retain at least one established connection from the one or more connections, by storing a respective connection object with respect to each of the at least one established connection; and an application entity configured to acquire a determined connection from the keeper entity, and use a respective connection object of the determined connection for performing a communication using the host communication device.
  • the device of the first aspect manages connections.
  • the device may be or may be incorporated in a host communication device such as a client device, a server device, etc.
  • the device may be a client device, i.e., a device comprising the endpoint entity which initiates the connection (in some connection types).
  • the device may be a personal computer, a mobile device, which may be a smartphone, a tablet computer, etc.
  • the device may be a server device, i.e., a device comprising the endpoint entity which accepts the connection from the client (in some connection types).
  • the device may have a circuitry which may comprise hardware and software.
  • the hardware may comprise analog or digital circuitry, or both analog and digital circuitry.
  • the circuitry comprises one or more processors and a non-volatile memory connected to the one or more processors.
  • the non volatile memory may carry executable program code which, when executed by the one or more processors, causes the device to perform the operations or methods described herein.
  • the endpoint entity may be an entity that performs a process on the device, in order to communicate with another device (e.g., a host communication device).
  • the connections may be a connection state when at least one endpoint can send messages to one or more other endpoints, without any action on the destination endpoints. An endpoint needs the destination’s address in order to send messages to it.
  • the connections may be a connection that is between the device and a host communication device (e.g., a server device).
  • a connection establishment may be a series of actions which causes an endpoint entity to reach a connection state with regard to another endpoint entity.
  • the connection object may be the result of a successful connection establishment and is required for performing a communication.
  • the device comprises the keeper entity.
  • the keeper entity may be, for example, a central entity that stores connections and keeps them usable.
  • the application entity e.g., on the same device
  • the device of the first aspect may allow new application entities to choose from a set of pre-existing established connections held by the keeper entity, obtain a determined connection, use it immediately (i.e., without the need for connection establishment), and it may further deposit it back to the keeper entity for storing, future use, etc.
  • the device of the first aspect may have the advantage of reducing connection establishment overhead, provide newly available functionalities. For example, an application entity may acquire a connection (from the keeper entity) without knowing its destinations (i.e., anonymized connections).
  • the device may enable reusing a pre-existing connection as an alternative to the traditional connection establishment.
  • the device may separate the“maintenance” of a connection (keeping it usable) from its use by the application entity.
  • the device may enable an application entity to connect without specifying the destination address (by re-using a pre-existing connection from the keeper entity, based on its identifier (ID), or the last used connection, etc.
  • the application entity is further configured to deposit the respective connection object to the keeper entity, after performing the communication.
  • the keeper entity comprises two interfaces including a first interface facing the endpoint entity and a second interface facing the application entity.
  • the second interface may be the network- facing interface.
  • the second interface is configured to receive a request for the determined connection from the application entity; and provide the respective connection object of the determined connection to the application entity.
  • connection establishment time e.g., from milliseconds to microseconds (depending on the implementation of the keeper entity).
  • the second interface is further configured to receive a connection object from the application entity.
  • the keeper entity is further configured to maintain-open the at least one established connection to the host communication device, based on a respective connection type of the at least one established connection.
  • the device e.g., its keeper entity
  • the device may use several different mechanisms to maintain-open a connection.
  • the used mechanism may be determined based on the connection type.
  • the maintaining-open operation is performed by periodically sending keep-alive message via the endpoint entity, and using the host communication device.
  • the“keep-alive” may be one example of a mechanism employed in some connection types (e.g., TCP) to maintain-open a connection.
  • the role of the keeper entity includes both initiating periodic“keep-alive” messages on that connection and responding to other keep-alive messages initiated by the other (remote) end.
  • the keeper entity is further configured to receive subsequent keep-alive messages from the host communication device via the endpoint entity indicating the host communication device servicing the at least one established connection.
  • the keeper entity is further configured to determine whether a connection is maintained-open or terminated by the host communication device.
  • the keeper entity is further configured to, if a connection is terminated to the host communication device, drop the connection by deleting the respective connection object corresponding to the connection.
  • the keeper entity is further configured to assign an identifier, ID, to each retained connection.
  • the endpoint entity is further configured to receive an acknowledgment message from the host communication device indicating a connection is established.
  • the application entity is further configured to perform one or more of:
  • the application entity may return the connection back to the keeper entity, e.g., once it finishes using the connection for performing communication.
  • the keeper entity may obtain“new” connections from the endpoint entity and/or“used” connections from the application entity (e.g., typically before the application entity terminates).
  • the keeper entity may treat both types of connections, similarly, i.e., the connections may be kept“alive” until another application entity acquires them.
  • the keeper entity is further configured to maintain-open the deposited newly established connection and/or the deposited used connection, until being acquired by an application entity.
  • the predefined criterion is determined based on one or more of:
  • a second aspect of the invention provides a method for managing connections, the method comprising establishing, by an endpoint entity, one or more connections using a host communication device; retaining, by a keeper entity, at least one established connection from the one or more connections, by storing a respective connection object with respect to each of the at least one established connection; and acquiring, by an application entity, a determined connection from the keeper entity, and using a respective connection object of the determined connection for performing a communication using the host communication device.
  • the method further comprises, depositing, by the application entity, the respective connection object to the keeper entity, after performing the communication.
  • the keeper entity comprises two interfaces including a first interface facing the endpoint entity and a second interface facing the application entity.
  • the method further comprises, receiving, by the second interface, a request for the determined connection from the application entity; and providing, by the second interface, the respective connection object of the determined connection to the application entity.
  • the method further comprises, receiving, by the second interface, a connection object from the application entity.
  • the method further comprises, maintaining-open, by the keeper entity, the at least one established connection to the host communication device, based on a respective connection type of the at least one established connection.
  • the maintaining-open operation is performed by periodically sending keep-alive message via the endpoint entity, and using the host communication device.
  • the method further comprises, receiving, by the keeper entity, subsequent keep-alive messages from the host communication device via the endpoint entity indicating the host communication device servicing the at least one established connection. In a further implementation form of the second aspect, the method further comprises, determining, by the keeper entity, whether a connection is maintained-open or terminated by the host communication device. In a further implementation form of the second aspect, the method further comprises, if a connection is terminated to the host communication device, dropping, by the keeper entity, the connection by deleting the respective connection object corresponding to the connection. In a further implementation form of the second aspect, the method further comprises assigning, by the keeper entity, an identifier, ID, to each retained connection.
  • the method further comprises, receiving, by the endpoint entity, an acknowledgment message from the host communication device indicating a connection is established.
  • the method further comprises, performing, by the application entity, one or more of:
  • the method further comprises, maintaining-open, by the keeper entity, the deposited newly established connection and/or the deposited used connection, until being acquired by an application entity.
  • the method further comprises, determining, predefined criterion based on one or more of: • a destination of a communication;
  • a third aspect of the invention provides a computer program product including computer program code, which, when executed by a processor, causes the method according to the second aspect or an implementation form of the second aspect to be performed.
  • a fourth aspect of the invention provides a computer readable storage medium comprising computer program code instructions, being executable by a computer, for performing the method according to the second aspect or an implementation form of the second aspect when the computer program code instructions runs on a computer.
  • FIG. 1 is a schematic view of a device for managing connections, according to an embodiment of the present invention
  • FIG. 2a is a schematic view of a conventional connection establishment procedure performed between two conventional devices
  • FIG. 2b is a schematic view of a recycled connection establishment procedure performed between the device and the host communication device according to the present disclosure
  • FIG. 3 is a schematic view of a method for managing connections, according to an embodiment of the present invention.
  • FIG. 4 schematically illustrates a conventional connection establishment procedure between a client device and a server device
  • FIG. 5 schematically illustrates a conventional PMI-X method.
  • FIG. 4 schematically illustrates a conventional connection establishment procedure between a client device and a server device.
  • the conventional connection establishment procedure 400 is based on the TCP. Initially, the client device 400 sends a connection request to the server device 410. Moreover, the server device 410 sends a connection acknowledged message to the client device 400 and the application data (e.g., on the client device 400) may perform communication to the server device 410.
  • a conventional distributed connection establishment is an instance of the generalized connection establishment, where there are multiple endpoints attempting to connect to the same destination in parallel.
  • each entity establishes a connection to all of the other entities, which makes the number of connections growing exponentially with the number of the entities.
  • PMI Process Management Interface
  • FIG. 5 schematically illustrates a conventional PMI-X technique 500.
  • the conventional PMI-X technique 500 stores the addresses of all of the entities trying to establish connections (and dispensing these addresses efficiently).
  • the conventional PMI-X technique 500 comprises several modes including a“Full- modex” mode 501. a“Direct-modex” mode 502 and an“Instant-on” mode 503 that may establish connections among N parallel processes (for example, scattered across different hosts), and each described as follow:
  • The“Full-modex” mode 501 In this case every process sends its address to a representative of PMIx 504 in the network, and waits for the others to also send the addresses. Moreover, once all of the N addresses have been submitted, it is broadcasted so that each process obtains the addresses of the other N-l processes.
  • the worst case scenario would yield N2-N connections.
  • the PMIx 504 is merely a centralized address-lookup directory (i.e.. the sparing processes that need to resolve address on their own).
  • the conventional PMI-X technique 500 has the disadvantage that it only covers some aspects of connection establishment: PMIx covers only address lookup (by wav of exchange).
  • the connection is“one-to-many”. More specifically, broadcast and multicast are types of communication where a single source communicates with multiple destinations. Such connections typically require additional coordination and effort to establish.
  • the technical teaching of the present disclosure may also be applied to those kinds of connection as well.
  • connection establishment is a key component of network communication
  • connection establishment is a key component of network communication
  • the present disclosure and thus also the relevant prior art, are related to optimizations for the case of multiple connection establishment requests which may be improved compared to simply repeating a single connection establishment flow.
  • an embodiment/example may refer to other embodiments/examples.
  • any description including but not limited to terminology, element, process, explanation and/or technical advantage mentioned in one embodiment/example is applicative to the other embodiments/examples.
  • FIG. 1 is a schematic view of a device 100 for managing connections 111, 112, according to an embodiment of the present invention.
  • the device 100 comprises an endpoint entity 101 configured to establish one or more connections 111, 112 using a host communication device 110.
  • the device 100 may be a personal computer, a smartphone, a tablet computer, etc.
  • two connections of 111 and 112 are established between the device 100 (via its endpoint entity 101) and using the host communication device 110.
  • the device 100 further comprises a keeper entity 102 configured to retain at least one established connection 11 1 from the one or more connections 111, 112, by storing a respective connection object 121 with respect to each of the at least one established connection 111.
  • connection 111 (illustrated with a solid line) is an established connection that is retained by the keeper entity 102 by storing its respective connection object 121 in the keeper entity 102.
  • the established connection 112 (illustrated with a dashed line) is a connection that is not retained by the keeper entity 102, without limiting the present disclosure.
  • the device 100 further comprises an application entity 103 configured to acquire a determined connection 111 from the keeper entity 102, and use a respective connection object 121 of the determined connection 111 for performing a communication using the host communication device 110.
  • the device 100 may comprise a circuitry.
  • the circuitry may comprise hardware and software.
  • the keeper entity and/or the application entity may be or may be incorporated in the hardware and/or the software.
  • the hardware may comprise analog or digital circuitry, or both analog and digital circuitry.
  • the circuitry comprises one or more processors and a non-volatile memory connected to the one or more processors.
  • the non-volatile memory may carry executable program code which, when executed by the one or more processors, causes the device to perform the operations or methods described herein.
  • the device 100 may enable decreasing the duration time (e.g., eliminating the time) that is required in order to establish a new connection. For example, re-using a connection requires no communication and therefore, no new resource allocation. Furthermore, for parallel applications, it may be possible to create all the connections once (e.g., as a part of the application installation), and re-use every connection in every run, and therefore, avoiding the connection establishment overhead.
  • FIG. 2a is a schematic view of a conventional connection establishment procedure 200A performed between two conventional devices 200 and 210 (e.g., a conventional client device 200, and a conventional server device 210).
  • FIG. 2b is a schematic view of a recycled connection establishment procedure 200B performed between the device 100 and the host communication device 110 according to the present disclosure.
  • the endpoint entity 201 establishes a first connection 211. For example, it may send a connection request, obtain a connection response and afterwards transfer the data. Moreover, the endpoint entity 201 may terminate the connection 211.
  • the endpoint entity 201 further establishes a second connection 212.
  • the connections 211, 212 are established is the same procedure (and also the same effort).
  • the second connection establishment 212 is identical to the first established connection 211.
  • the conventional connection establishment procedure 200A has an overhead problem (for example, such an overload problem may be solved by the device 100 and/ the method of the present disclosure).
  • connection establishment In FIG. 2a and FIG. 2b, the different steps of connection establishment are placed on a timeline, in order to compare the two cases (i.e., the conventional procedure 200A and the procedure 200B according to the present disclosure).
  • the recycled connection establishment procedure 200B is performed between the device 100 and the host communication device 110 according to the present disclosure.
  • the endpoint entity 101 of the device 100 establishes a first connection 111 using the host communication device 110. For example, it may send a connection request, obtain a connection response and afterwards transfer the data. Moreover, upon completing the communication, the endpoint entity 101 deposits the connection object 121 of the established connection 111 to the keeper entity 102 (and may no longer use it for the same application entity).
  • the same connection object 121 (of the established connection 111 which is retained by the keeper entity 102) can be recycled, e.g., instead of establishing another connection.
  • the keeper entity 102 retains the connection 111, so it may be re-used, when the second connection is established, thus avoiding that overhead (the connection request and response like the ones used in the TCP) are not required since the connection has already been established.
  • the keeper entity 102 maybe implemented either as, for example, a user-space application, a part of an operating system, a part of some network-related hardware, etc., depending to the type of connection it needs to keep.
  • the TCP and the UDP resources are part of the Linux kernel, and so the kernel is the appropriate framework for a keeper entity for the TCP and the UDP connections.
  • the user-space networking connections such as those of RDMA, would likely mandate a user-space application (possibly a daemon process) for a keeper entity, and the future Network Interface Cards (NICs) may include part of the implementation in hardware or firmware.
  • the keeper entity 102 comprises two interfaces, a first interface facing the endpoint entity 101 and a second interface facing the application entity 103.
  • the second interface facing the application entity may allow an application to query the available (kept) connections and transfer the“ownership” of such connections from the keeper entity 102 to the application and back.
  • the network-facing interface i.e., the first interface
  • the network-facing interface is responsible for keeping the connection usable.
  • the TCP connections entail a periodic “keep-alive” message sent between both ends of the connection, the absence of which renders the connection is closed or is broken after some time (“ connection time-out”).
  • the keeper entity 102 may be responsible for maintaining-open the connection, for example, by sending those“ keep-alive” messages and responding to those sent by the other side.
  • the remote side might not be aware of the keeper’s existence.
  • the application entity 103 may approach the keeper entity 102 as an alternative to traditional connection establishment. If the keeper entity 102 is running on the same host, the application entity 103 may either ask for the list of existing connections, or for a connection which satisfies specific criteria, such as, a determined destination, or by some other identification, etc.
  • an application entity 103 on a host“A” may ask to re-use a connection to some known service on host“B” by one or more of: following procedures: a) Specifying the address of host“B” and the name of the service,
  • connection ID (which was likely created by a past run of the same application)
  • the application entity 103 may further select a connection by itself.
  • the keeper entity 102 may consider aspects of permission and access control, so that not any application entity 103 may discover or access any connection currently kept. It may also manage the resource consumption of the connections it keeps, possibly maintaining quotas per application, per user, or by some other criteria. Furthermore, before the application finishes, it may choose to deposit the connection to the keeper entity 102 or close it permanently.
  • the connections may initially be created by an application entity (such as the application entity 103) and may further be deposited to the keeper entity 102, or possibly created by the keeper entity 102 itself.
  • FIG. 3 shows a method 300 according to an embodiment of the invention for managing connections.
  • the method 300 may be carried out by the device 100, as it described above.
  • the method 300 comprises a step 301 of establishing, by the endpoint entity 101, one or more connections 111, 112 using a host communication device.
  • the method 300 further comprises a step 302 of retaining, by the keeper entity 102, at least one established connection 111 from the one or more connections 111, 112, by storing a respective connection object 121 with respect to each of the at least one established connection 111.
  • the method 300 further comprises a step 303 of acquiring, by the application entity 103, a determined connection 111 from the keeper entity 102, and using a respective connection object 121 of the determined connection 111 for performing a communication using the host communication device 110.
  • a (functional or tangible) block or device may correspond to one or more method step or a feature of a method step.
  • aspects described in the context of a corresponding block or item or feature of a corresponding apparatus may also correspond to individual method steps of a corresponding method.
  • the methods described herein may also be executed by (or using) a hardware apparatus, like a processor, microprocessor, a programmable computer or an electronic circuit.
  • a hardware apparatus like a processor, microprocessor, a programmable computer or an electronic circuit.
  • One or more of the most important method steps may be executed by such an apparatus.
  • a hardware apparatus like a processor, microprocessor, a programmable computer or an electronic circuit.
  • One or more of the most important method steps may be executed by such an apparatus.
  • a hardware apparatus like a processor, microprocessor, a programmable computer or an electronic circuit.
  • One or more of the most important method steps may be executed by such an apparatus.
  • an apparatus has been described herein in terms of functional elements, e.g. a keeper entity, an endpoint entity and an application entity, or the like, it should be further understood that those elements of the apparatus may be fully or partly implemented in hardware elements/circuitry.
  • Individual hardware like a processor or microprocessor, a transmitter
  • the apparatus may comprise memory or storage medium, which may be communicably coupled to one or more hardware elements/circuitry of the apparatus.
  • a digital storage medium for example a DVD, a CD, a ROM, a PROM, an EPROM, an EEPROM or a FLASH memory, having electronically readable control signals or instructions stored thereon, which cooperate (or are capable of cooperating) with a programmable computer system such that the respective method is performed.
  • a data carrier may be provided which has electronically readable control signals or instructions, which are capable of cooperating with a programmable computer system, such that the method described herein is performed.
  • Each endpoint has (at least) one unique address.
  • An endpoint needs the destination’s address in order to send messages to it.
  • Connection establishment A series of actions which causes an endpoint to reach a connection state with regard to another endpoint.
  • Connection object The result of a successful connection establishment, and is required for communication.
  • Client The endpoint which initiates the connection (in some connection types).
  • TCP Transmission Control Protocol (example of a connection type).
  • IGMP Internet Group Management Protocol for a multiple- endpoint connection example.
  • RDMA Remote Direct Memory Access (example of a connection type).

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

A device for managing connections is disclosed. The device comprising an endpoint entity configured to establish one or more connections using a host communication device; a keeper entity configured to retain at least one established connection from the one or more connections, by storing a respective connection object with respect to each of the at least one established connection; and an application entity configured to acquire a determined connection from the keeper entity, and use a respective connection object of the determined connection for performing a communication using the host communication device.

Description

DEVICE AND METHOD FOR MANAGING CONNECTIONS
TECHNICAL FIELD
The disclosure relates generally to the field of managing connections in network communication(s), and, more particularly, to devices and methods for recycling the established connections. To this end, the disclosure presents a device that establishes a connection using a host communication device and it further retains the established connection. Moreover, the device re-uses the retained connection for performing a communication to another device.
BACKGROUND Generally, for some applications, the duration of network connection establishment is critical for their performance. For instance, some applications are based on short-lived connections (i.e., created and destroyed often). In such cases, the duration may actually be longer than the usage of those connections. In addition, parallel applications are another example, where a total of N processes may initiate up to (N2-N) concurrent connection requests which makes the connection establishment phase unnecessarily long.
A conventional network connection establishment typically includes the following elements:
• Resource allocation,
• Destination name or address resolution,
• Routing decisions,
• Access control,
• Protocol coordination.
Some of these elements may be redundant, for example, when more than one connection is established either from the same source or to the same destination. Furthermore, each element has a cost in time and resources, both of which could sometimes be avoided. Some of the common protocols requiring connection establishment are as follow:
• Transmission Control Protocol (TCP): performs a“Three-way handshake”, which lasts about 5 milliseconds on the latest hardware (see FIG. 4, where a“Client” connects to a“Server”),
• Unreliable Datagram Protocol (UDP): no messages are exchanged, but socket allocation lasts roughly 1 millisecond,
• Remote Direct Memory Access (RDMA): depends on the Queue Pair (QP) type:
Reliable Connection (RC) resembles TCP and Unreliable Datagram (UD) resembles UDP.
In the following, three conventional methods are briefly discussed, in which each method addresses the problem differently: a. Active application socket management', this method focuses only on TCP connections within a single application, and addresses only the resource allocation element of connection establishment. This technique describes a pool of resources to be re-used on the application level instead of the traditionally used operating system level. b. Enabling Linux kernel to support Socket reuse : this method proposes modifications to the operating system, namely the Linux kernel, to re-use past resource allocations (in the form of“sockets”, one of the resources allocated towards a new connection). Their mechanism is an alternative to the one from the above discussed technique under item (a), and also helps to improve the performance of connection establishment by targeting resource allocation time. c. Fast resume of TCP sessions: this method proposes resuming the past TCP connections between the same two endpoints during the application’s execution. This means the connection may be kept open and later resumed, for example, by retransmitting the last messages sent before an interruption during the connection. This method focuses on wireless radio communication, and the case of multiple routers, where the endpoint moves from one router to another.
In addition, several alternative conventional methods are also suggested that may reduce the connection establishment overhead, as follow: d. A“proxy” process: a common technique in networking is to create a“proxy” entity, which will serve as the middleman between the source and destination of the connection. Two examples for employing such a proxy is Network Address Translation (NAT) and load-balancers, where the separation serves purposes other than connection establishment performance. Such a proxy could maintain an open connection to the destination while the source is absent, though we are not aware of existing implementations of proxy designed for this purpose (connection establishment overhead reduction). e. Stateless connections: it is likely possible to design a connection which requires minimal effort for connection establishment, i.e., no requests or responses, no operating system resources required, and minimal creation time. Such a connection is not supported in any common implementation, and would likely suffer from numerous limitations, but could potentially achieve the same objective. f Centralized connection management: For the parallel application use-case, it might be possible to address the connection establishment overhead by forming a single, centralized entity, which will be used to establish the connections with little overhead on each endpoint. A similar approach is used today by the software package “ PM1-X which facilitates the exchange of connection information (saves address resolution time) but still requires regular connection establishment for each connection given that information.
In addition, another alternative conventional method is also suggested that may provide the ability to establish connections without specifying the destination, as follow: g. Broadcast/Multicast: Establishing broadcast or multicast communication typically involves either a central entity (e.g. InfiniBand Subnet Manager ) similar to the aforementioned alternative (c) or a de-centralized method (e.g. IGMP protocol). Both cases may connect a new endpoint to a group containing other endpoints, which may be viewed as joining an existing connection with those other endpoints. This might address some aspects of the invention, such as establishing a connection without specifying the addresses of other endpoints
(merely the multicast group address), and the multicast group may hold even while it’s empty, but the overhead in such connection establishment is still substantial in this case (and other limitations also apply). However, conventional devices and methods have the disadvantages of addressing only a fraction of the aspects of connection establishment. For example, the conventional devices and methods focus on specific protocols (mainly TCP) and solve only part of the generalized problem. More specifically, the techniques discussed under items (a) and (b) disclose only the matter of socket allocation and not the connection establishment over the allocated sockets. Furthermore, the discussed technique item (c) is more relevant, but it also focuses on a narrow use-case, i.e., resuming a past connection between two endpoints, and following an interruption or a change in the route. The other outlined elements of connection establishment, such as address resolution, are excluded from the above discussed techniques. Moreover, conventional devices and methods do not address the majority of connection establishment aspects.
SUMMARY
In view of the above-mentioned problems and disadvantages, the present invention aims to improve the conventional devices and methods. The present invention has thereby the objective to provide a device and a method for managing connections, for example, as an alternative to the traditional connection establishment schemes, where in the traditional schemes, every new connection is established separately, and by the process interested in the communication. The device and method of the present disclosure manage the connections such that, the connections may be created once and may further be re-used (e.g., indefinitely), for example, by different applications than the one creating the connection. The objective of the present invention is achieved by the solution provided in the enclosed independent claims. Advantageous implementations of the present invention are further defined in the dependent claims.
A first aspect of the invention provides a device for managing connections, the device comprising an endpoint entity configured to establish one or more connections using a host communication device; a keeper entity configured to retain at least one established connection from the one or more connections, by storing a respective connection object with respect to each of the at least one established connection; and an application entity configured to acquire a determined connection from the keeper entity, and use a respective connection object of the determined connection for performing a communication using the host communication device.
The device of the first aspect manages connections. The device may be or may be incorporated in a host communication device such as a client device, a server device, etc. For example, in some embodiments, the device may be a client device, i.e., a device comprising the endpoint entity which initiates the connection (in some connection types). For instance, the device may be a personal computer, a mobile device, which may be a smartphone, a tablet computer, etc. In some embodiments, the device may be a server device, i.e., a device comprising the endpoint entity which accepts the connection from the client (in some connection types). The device may have a circuitry which may comprise hardware and software. The hardware may comprise analog or digital circuitry, or both analog and digital circuitry. In some embodiments, the circuitry comprises one or more processors and a non-volatile memory connected to the one or more processors. The non volatile memory may carry executable program code which, when executed by the one or more processors, causes the device to perform the operations or methods described herein.
The endpoint entity may be an entity that performs a process on the device, in order to communicate with another device (e.g., a host communication device).
The connections may be a connection state when at least one endpoint can send messages to one or more other endpoints, without any action on the destination endpoints. An endpoint needs the destination’s address in order to send messages to it. The connections may be a connection that is between the device and a host communication device (e.g., a server device).
A connection establishment may be a series of actions which causes an endpoint entity to reach a connection state with regard to another endpoint entity.
The connection object may be the result of a successful connection establishment and is required for performing a communication.
The device comprises the keeper entity. The keeper entity may be, for example, a central entity that stores connections and keeps them usable. Moreover, the application entity (e.g., on the same device) may, for example, query the list of existing connections, acquire a connection (either exclusively or in a shared manner), and it may further deposit the connection back to that keeper entity.
The device of the first aspect may allow new application entities to choose from a set of pre-existing established connections held by the keeper entity, obtain a determined connection, use it immediately (i.e., without the need for connection establishment), and it may further deposit it back to the keeper entity for storing, future use, etc.
The device of the first aspect may have the advantage of reducing connection establishment overhead, provide newly available functionalities. For example, an application entity may acquire a connection (from the keeper entity) without knowing its destinations (i.e., anonymized connections).
In some embodiments, the device may enable reusing a pre-existing connection as an alternative to the traditional connection establishment.
In some embodiments, the device may separate the“maintenance” of a connection (keeping it usable) from its use by the application entity.
In some embodiments, the device may enable an application entity to connect without specifying the destination address (by re-using a pre-existing connection from the keeper entity, based on its identifier (ID), or the last used connection, etc. In an implementation form of the first aspect, the application entity is further configured to deposit the respective connection object to the keeper entity, after performing the communication.
In a further implementation form of the first aspect, the keeper entity comprises two interfaces including a first interface facing the endpoint entity and a second interface facing the application entity.
In particular, the second interface may be the network- facing interface.
In a further implementation form of the first aspect, the second interface is configured to receive a request for the determined connection from the application entity; and provide the respective connection object of the determined connection to the application entity.
This is beneficial, since it may (drastically) reduce the connection establishment time, e.g., from milliseconds to microseconds (depending on the implementation of the keeper entity).
In some embodiments, it may be possible to enable a new software-based connection establishment tool, where dedicated application entities only create connections for the keeper entity. Afterwards, another application entity may merely select an existing connection to one or more targets (i.e., host communication device).
In a further implementation form of the first aspect, the second interface is further configured to receive a connection object from the application entity.
In a further implementation form of the first aspect, the keeper entity is further configured to maintain-open the at least one established connection to the host communication device, based on a respective connection type of the at least one established connection.
In particular, the device (e.g., its keeper entity) may use several different mechanisms to maintain-open a connection. The used mechanism may be determined based on the connection type. In a further implementation form of the first aspect, the maintaining-open operation is performed by periodically sending keep-alive message via the endpoint entity, and using the host communication device.
In particular, the“keep-alive” may be one example of a mechanism employed in some connection types (e.g., TCP) to maintain-open a connection. In this mechanism, the role of the keeper entity includes both initiating periodic“keep-alive” messages on that connection and responding to other keep-alive messages initiated by the other (remote) end.
In a further implementation form of the first aspect, the keeper entity is further configured to receive subsequent keep-alive messages from the host communication device via the endpoint entity indicating the host communication device servicing the at least one established connection.
In a further implementation form of the first aspect, the keeper entity is further configured to determine whether a connection is maintained-open or terminated by the host communication device.
In a further implementation form of the first aspect, the keeper entity is further configured to, if a connection is terminated to the host communication device, drop the connection by deleting the respective connection object corresponding to the connection.
In a further implementation form of the first aspect, the keeper entity is further configured to assign an identifier, ID, to each retained connection.
In a further implementation form of the first aspect, the endpoint entity is further configured to receive an acknowledgment message from the host communication device indicating a connection is established.
In a further implementation form of the first aspect, the application entity is further configured to perform one or more of:
• request a list of connections from the keeper entity;
• request a determined connection satisfying a predefined criterion; • deposit a connection object of a determined connection to the keeper entity, wherein the determined connection is a newly established connection;
• deposit a connection object of a determined connection to the keeper entity, wherein the determined connection is a used connection that is acquired from the keeper entity.
In particular, the application entity may return the connection back to the keeper entity, e.g., once it finishes using the connection for performing communication. In other words, the keeper entity may obtain“new” connections from the endpoint entity and/or“used” connections from the application entity (e.g., typically before the application entity terminates). The keeper entity may treat both types of connections, similarly, i.e., the connections may be kept“alive” until another application entity acquires them.
In a further implementation form of the first aspect, the keeper entity is further configured to maintain-open the deposited newly established connection and/or the deposited used connection, until being acquired by an application entity.
In a further implementation form of the first aspect, the predefined criterion is determined based on one or more of:
• a destination of a communication;
• an address of a host communication device;
• a name of a service on a host communication device;
• a connection ID;
• the Least Recently Used, LRU, connection;
• the Most Recently Used, MRU, connection.
A second aspect of the invention provides a method for managing connections, the method comprising establishing, by an endpoint entity, one or more connections using a host communication device; retaining, by a keeper entity, at least one established connection from the one or more connections, by storing a respective connection object with respect to each of the at least one established connection; and acquiring, by an application entity, a determined connection from the keeper entity, and using a respective connection object of the determined connection for performing a communication using the host communication device.
In an implementation form of the second aspect, the method further comprises, depositing, by the application entity, the respective connection object to the keeper entity, after performing the communication.
In a further implementation form of the second aspect, the keeper entity comprises two interfaces including a first interface facing the endpoint entity and a second interface facing the application entity.
In a further implementation form of the second aspect, the method further comprises, receiving, by the second interface, a request for the determined connection from the application entity; and providing, by the second interface, the respective connection object of the determined connection to the application entity.
In a further implementation form of the second aspect, the method further comprises, receiving, by the second interface, a connection object from the application entity.
In a further implementation form of the second aspect, the method further comprises, maintaining-open, by the keeper entity, the at least one established connection to the host communication device, based on a respective connection type of the at least one established connection.
In a further implementation form of the second aspect, the maintaining-open operation is performed by periodically sending keep-alive message via the endpoint entity, and using the host communication device.
In a further implementation form of the second aspect, the method further comprises, receiving, by the keeper entity, subsequent keep-alive messages from the host communication device via the endpoint entity indicating the host communication device servicing the at least one established connection. In a further implementation form of the second aspect, the method further comprises, determining, by the keeper entity, whether a connection is maintained-open or terminated by the host communication device. In a further implementation form of the second aspect, the method further comprises, if a connection is terminated to the host communication device, dropping, by the keeper entity, the connection by deleting the respective connection object corresponding to the connection. In a further implementation form of the second aspect, the method further comprises assigning, by the keeper entity, an identifier, ID, to each retained connection.
In a further implementation form of the second aspect, the method further comprises, receiving, by the endpoint entity, an acknowledgment message from the host communication device indicating a connection is established.
In a further implementation form of the second aspect, the method further comprises, performing, by the application entity, one or more of:
• requesting a list of connections from the keeper entity;
• requesting a determined connection satisfying a predefined criterion;
• depositing a connection object of a determined connection to the keeper entity, wherein the determined connection is a newly established connection;
• depositing a connection object of a determined connection to the keeper entity, wherein the determined connection is a used connection that is acquired from the keeper entity.
In a further implementation form of the second aspect, the method further comprises, maintaining-open, by the keeper entity, the deposited newly established connection and/or the deposited used connection, until being acquired by an application entity.
In a further implementation form of the second aspect, the method further comprises, determining, predefined criterion based on one or more of: • a destination of a communication;
• an address of a host communication device;
• a name of a service on a host communication device;
• a connection ID;
• the Least Recently Used, LRU, connection;
• the Most Recently Used, MRU, connection.
A third aspect of the invention provides a computer program product including computer program code, which, when executed by a processor, causes the method according to the second aspect or an implementation form of the second aspect to be performed.
A fourth aspect of the invention provides a computer readable storage medium comprising computer program code instructions, being executable by a computer, for performing the method according to the second aspect or an implementation form of the second aspect when the computer program code instructions runs on a computer.
It has to be noted that all devices, elements, units and means described in the present application could be implemented in the software or hardware elements or any kind of combination thereof. All steps which are performed by the various entities described in the present application as well as the functionalities described to be performed by the various entities are intended to mean that the respective entity is adapted to or configured to perform the respective steps and functionalities. Even if, in the following description of specific embodiments, a specific functionality or step to be performed by external entities is not reflected in the description of a specific detailed element of that entity which performs that specific step or functionality, it should be clear for a skilled person that these methods and functionalities can be implemented in respective software or hardware elements, or any kind of combination thereof.
BRIEF DESCRIPTION OF DRAWINGS
The above described aspects and implementation forms of the present invention will be explained in the following description of specific embodiments in relation to the enclosed drawings, in which FIG. 1 is a schematic view of a device for managing connections, according to an embodiment of the present invention;
FIG. 2a is a schematic view of a conventional connection establishment procedure performed between two conventional devices, and FIG. 2b is a schematic view of a recycled connection establishment procedure performed between the device and the host communication device according to the present disclosure;
FIG. 3 is a schematic view of a method for managing connections, according to an embodiment of the present invention;
FIG. 4 schematically illustrates a conventional connection establishment procedure between a client device and a server device; and FIG. 5 schematically illustrates a conventional PMI-X method.
DETAILED DESCRIPTION OF EMBODIMENTS
FIG. 4 schematically illustrates a conventional connection establishment procedure between a client device and a server device.
The conventional connection establishment procedure 400 is based on the TCP. Initially, the client device 400 sends a connection request to the server device 410. Moreover, the server device 410 sends a connection acknowledged message to the client device 400 and the application data (e.g., on the client device 400) may perform communication to the server device 410.
Furthermore, a conventional distributed connection establishment is an instance of the generalized connection establishment, where there are multiple endpoints attempting to connect to the same destination in parallel. In extreme cases, each entity establishes a connection to all of the other entities, which makes the number of connections growing exponentially with the number of the entities. There are some software addressing the issue to some extent, namely Mellanox’s Scalable Subnet Administration, and the open-source project Process Management Interface (PMI) Exascale“PMI-X” (depicted in FIG. 5). FIG. 5 schematically illustrates a conventional PMI-X technique 500. The conventional PMI-X technique 500 stores the addresses of all of the entities trying to establish connections (and dispensing these addresses efficiently).
The conventional PMI-X technique 500 comprises several modes including a“Full- modex” mode 501. a“Direct-modex” mode 502 and an“Instant-on” mode 503 that may establish connections among N parallel processes (for example, scattered across different hosts), and each described as follow:
• The“Full-modex” mode 501: In this case every process sends its address to a representative of PMIx 504 in the network, and waits for the others to also send the addresses. Moreover, once all of the N addresses have been submitted, it is broadcasted so that each process obtains the addresses of the other N-l processes.
• “Direct-modex” mode 502: In this case every process also sends its address to a representative of PMIx 504 in the network. However in this case the process goes on running without waiting for the N-l other addresses. Furthermore, only when it became ready to be sent to some other, then, for example, the process X does this process request X’s address from the central entity, and uses it to establish the connection (from here on it’s using a conventional way to establish the connection, e.g.. TCP’s 3-way handshake as in FIG 4)
• “Instant-on” mode 503: In this case, there is no address exchange per-se. This applies for the cases where the address can be directly derived from the destination description, and the address lookup required for connection establishment is trivial. For example the address is a combination of a fixed prefix and the ID of the target process (available for the purpose of connecting).
In all of the above discussed three modes, the worst case scenario would yield N2-N connections. Moreover, the PMIx 504 is merely a centralized address-lookup directory (i.e.. the sparing processes that need to resolve address on their own). However, the conventional PMI-X technique 500 has the disadvantage that it only covers some aspects of connection establishment: PMIx covers only address lookup (by wav of exchange). In addition to the ordinary“one-to-one” (unicast) connections, there are cases where the connection is“one-to-many”. More specifically, broadcast and multicast are types of communication where a single source communicates with multiple destinations. Such connections typically require additional coordination and effort to establish. The technical teaching of the present disclosure may also be applied to those kinds of connection as well.
Furthermore, since connection establishment is a key component of network communication, there is plenty of material about the technical aspects, most of them apply to a single,“isolated” instance of connection establishment. The present disclosure, and thus also the relevant prior art, are related to optimizations for the case of multiple connection establishment requests which may be improved compared to simply repeating a single connection establishment flow.
Illustrative embodiments of method, apparatus, and program product for managing connections in a communication system are described with reference to the figures. Although this description provides a detailed example of possible implementations, it should be noted that the details are intended to be exemplary and in no way limit the scope of the application.
Moreover, an embodiment/example may refer to other embodiments/examples. For example, any description including but not limited to terminology, element, process, explanation and/or technical advantage mentioned in one embodiment/example is applicative to the other embodiments/examples.
FIG. 1 is a schematic view of a device 100 for managing connections 111, 112, according to an embodiment of the present invention.
The device 100 comprises an endpoint entity 101 configured to establish one or more connections 111, 112 using a host communication device 110.
For example, the device 100 may be a personal computer, a smartphone, a tablet computer, etc. In the embodiment of FIG. 1, as an example, two connections of 111 and 112 are established between the device 100 (via its endpoint entity 101) and using the host communication device 110.
The device 100 further comprises a keeper entity 102 configured to retain at least one established connection 11 1 from the one or more connections 111, 112, by storing a respective connection object 121 with respect to each of the at least one established connection 111.
For example, the connection 111 (illustrated with a solid line) is an established connection that is retained by the keeper entity 102 by storing its respective connection object 121 in the keeper entity 102. Moreover, the established connection 112 (illustrated with a dashed line) is a connection that is not retained by the keeper entity 102, without limiting the present disclosure.
The device 100 further comprises an application entity 103 configured to acquire a determined connection 111 from the keeper entity 102, and use a respective connection object 121 of the determined connection 111 for performing a communication using the host communication device 110.
The device 100 may comprise a circuitry. The circuitry may comprise hardware and software. For example, the keeper entity and/or the application entity may be or may be incorporated in the hardware and/or the software. The hardware may comprise analog or digital circuitry, or both analog and digital circuitry. In some embodiments, the circuitry comprises one or more processors and a non-volatile memory connected to the one or more processors. The non-volatile memory may carry executable program code which, when executed by the one or more processors, causes the device to perform the operations or methods described herein.
The device 100 may enable decreasing the duration time (e.g., eliminating the time) that is required in order to establish a new connection. For example, re-using a connection requires no communication and therefore, no new resource allocation. Furthermore, for parallel applications, it may be possible to create all the connections once (e.g., as a part of the application installation), and re-use every connection in every run, and therefore, avoiding the connection establishment overhead.
Reference is made to FIG. 2a which is a schematic view of a conventional connection establishment procedure 200A performed between two conventional devices 200 and 210 (e.g., a conventional client device 200, and a conventional server device 210). Moreover, FIG. 2b is a schematic view of a recycled connection establishment procedure 200B performed between the device 100 and the host communication device 110 according to the present disclosure.
In the conventional connection establishment procedure 200A, the endpoint entity 201 establishes a first connection 211. For example, it may send a connection request, obtain a connection response and afterwards transfer the data. Moreover, the endpoint entity 201 may terminate the connection 211.
In addition, the endpoint entity 201 further establishes a second connection 212. In the conventional connection establishment procedure 200A, the connections 211, 212 are established is the same procedure (and also the same effort).
In the conventional connection establishment procedure 200A, the second connection establishment 212 is identical to the first established connection 211. The conventional connection establishment procedure 200A has an overhead problem (for example, such an overload problem may be solved by the device 100 and/ the method of the present disclosure).
In FIG. 2a and FIG. 2b, the different steps of connection establishment are placed on a timeline, in order to compare the two cases (i.e., the conventional procedure 200A and the procedure 200B according to the present disclosure).
Moreover, the recycled connection establishment procedure 200B is performed between the device 100 and the host communication device 110 according to the present disclosure.
In the recycled connection establishment procedure 200B, the endpoint entity 101 of the device 100 establishes a first connection 111 using the host communication device 110. For example, it may send a connection request, obtain a connection response and afterwards transfer the data. Moreover, upon completing the communication, the endpoint entity 101 deposits the connection object 121 of the established connection 111 to the keeper entity 102 (and may no longer use it for the same application entity).
Additionally, when next time, a connection to the same destination is required, the same connection object 121 (of the established connection 111 which is retained by the keeper entity 102) can be recycled, e.g., instead of establishing another connection.
Note that, for the first connection establishment (i.e., establishing the connection 111) no recycling can happen because there are no suitable connection objects found by the query to the keeper entity 102.
In the recycled connection establishment procedure 200B, the keeper entity 102 retains the connection 111, so it may be re-used, when the second connection is established, thus avoiding that overhead (the connection request and response like the ones used in the TCP) are not required since the connection has already been established.
The keeper entity 102 maybe implemented either as, for example, a user-space application, a part of an operating system, a part of some network-related hardware, etc., depending to the type of connection it needs to keep. For example, the TCP and the UDP resources are part of the Linux kernel, and so the kernel is the appropriate framework for a keeper entity for the TCP and the UDP connections. In contrast, the user-space networking connections, such as those of RDMA, would likely mandate a user-space application (possibly a daemon process) for a keeper entity, and the future Network Interface Cards (NICs) may include part of the implementation in hardware or firmware.
The keeper entity 102 comprises two interfaces, a first interface facing the endpoint entity 101 and a second interface facing the application entity 103. The second interface facing the application entity may allow an application to query the available (kept) connections and transfer the“ownership” of such connections from the keeper entity 102 to the application and back. The network-facing interface (i.e., the first interface) is responsible for keeping the connection usable. For example, the TCP connections entail a periodic “keep-alive” message sent between both ends of the connection, the absence of which renders the connection is closed or is broken after some time (“ connection time-out”). The keeper entity 102 may be responsible for maintaining-open the connection, for example, by sending those“ keep-alive” messages and responding to those sent by the other side. The remote side might not be aware of the keeper’s existence.
Furthermore, when the application entity 103 requires a new connection, it may approach the keeper entity 102 as an alternative to traditional connection establishment. If the keeper entity 102 is running on the same host, the application entity 103 may either ask for the list of existing connections, or for a connection which satisfies specific criteria, such as, a determined destination, or by some other identification, etc.
For example, an application entity 103 on a host“A” (e.g., device 100) may ask to re-use a connection to some known service on host“B” by one or more of: following procedures: a) Specifying the address of host“B” and the name of the service,
b) specifying some connection ID (which was likely created by a past run of the same application),
c) asking for the list of connections, with some information on each one.
The application entity 103 may further select a connection by itself.
The keeper entity 102 may consider aspects of permission and access control, so that not any application entity 103 may discover or access any connection currently kept. It may also manage the resource consumption of the connections it keeps, possibly maintaining quotas per application, per user, or by some other criteria. Furthermore, before the application finishes, it may choose to deposit the connection to the keeper entity 102 or close it permanently. The connections may initially be created by an application entity (such as the application entity 103) and may further be deposited to the keeper entity 102, or possibly created by the keeper entity 102 itself.
FIG. 3 shows a method 300 according to an embodiment of the invention for managing connections. The method 300 may be carried out by the device 100, as it described above. The method 300 comprises a step 301 of establishing, by the endpoint entity 101, one or more connections 111, 112 using a host communication device.
The method 300 further comprises a step 302 of retaining, by the keeper entity 102, at least one established connection 111 from the one or more connections 111, 112, by storing a respective connection object 121 with respect to each of the at least one established connection 111.
The method 300 further comprises a step 303 of acquiring, by the application entity 103, a determined connection 111 from the keeper entity 102, and using a respective connection object 121 of the determined connection 111 for performing a communication using the host communication device 110.
The present invention has been described in conjunction with various embodiments as examples as well as implementations. However, other variations can be understood and effected by those persons skilled in the art and practicing the claimed invention, from the studies of the drawings, this disclosure and the independent claims. In the claims as well as in the description the word“comprising” does not exclude other elements or steps and the indefinite article“a” or“an” does not exclude a plurality. A single element or other unit may fulfill the functions of several entities or items recited in the claims. The mere fact that certain measures are recited in the mutual different dependent claims does not indicate that a combination of these measures cannot be used in an advantageous implementation.
Although some aspects have been described in the context of a method, it is clear that these aspects also represent a description of the corresponding apparatus suitably adapted to perform such method. In such apparatus a (functional or tangible) block or device may correspond to one or more method step or a feature of a method step. Analogously, aspects described in the context of a corresponding block or item or feature of a corresponding apparatus may also correspond to individual method steps of a corresponding method.
Furthermore, the methods described herein may also be executed by (or using) a hardware apparatus, like a processor, microprocessor, a programmable computer or an electronic circuit. One or more of the most important method steps may be executed by such an apparatus. Where an apparatus has been described herein in terms of functional elements, e.g. a keeper entity, an endpoint entity and an application entity, or the like, it should be further understood that those elements of the apparatus may be fully or partly implemented in hardware elements/circuitry. Individual hardware, like a processor or microprocessor, a transmitter circuitry, receiver circuitry, etc., maybe used to implement the functionality of one or more elements of the apparatus.
In addition, where information or data is to be stored in the process of implementing a method step of functional element of an apparatus in hardware, the apparatus may comprise memory or storage medium, which may be communicably coupled to one or more hardware elements/circuitry of the apparatus.
It is also contemplated implementing the aspects of the invention in hardware or in software or a combination thereof. This may be using a digital storage medium, for example a DVD, a CD, a ROM, a PROM, an EPROM, an EEPROM or a FLASH memory, having electronically readable control signals or instructions stored thereon, which cooperate (or are capable of cooperating) with a programmable computer system such that the respective method is performed. A data carrier may be provided which has electronically readable control signals or instructions, which are capable of cooperating with a programmable computer system, such that the method described herein is performed.
It is also contemplated implementing the aspects of the invention in the form of a computer program product with a program code, the program code being operative for performing the method when the computer program product runs on a computer. The program code may be stored on a machine readable carrier.
The above described is merely illustrative, and it is understood that modifications and variations of the arrangements and the details described herein will be apparent to others skilled in the art. It is the intent, therefore, to be limited only by the scope of the impending claims and not by the specific details presented by way of description and explanation above. Definitions of Acronyms & Glossaries:
Endpoint A process on a host, able to communicate with others.
Address A binary representation of an endpoint’s location. Each endpoint has (at least) one unique address.
Connection A state when at least one endpoint can send messages to one or more other endpoints, without any action on the destination endpoints. An endpoint needs the destination’s address in order to send messages to it.
Connection establishment A series of actions which causes an endpoint to reach a connection state with regard to another endpoint.
Connection object The result of a successful connection establishment, and is required for communication.
Client The endpoint which initiates the connection (in some connection types).
Server The endpoint which accepts the connection from the
Client (in some connection types).
TCP Transmission Control Protocol (example of a connection type).
UDP Unreliable Datagram Protocol (example of a connection type).
IGMP Internet Group Management Protocol (for a multiple- endpoint connection example).
RDMA Remote Direct Memory Access (example of a connection type).

Claims

Claims
1. A device (100) for managing connections, the device (100) comprising:
an endpoint entity (101) configured to establish one or more connections (111, 112) using a host communication device (110);
a keeper entity (102) configured to retain at least one established connection (111) from the one or more connections (111, 112), by storing a respective connection object (121) with respect to each of the at least one established connection (111); and
an application entity (103) configured to acquire a determined connection (111) from the keeper entity (102), and use a respective connection object (121) of the determined connection (111) for performing a communication using the host
communication device (110).
2. The device (100) according to claim 1, wherein:
the application entity (103) is further configured to deposit the respective connection object (121) to the keeper entity (102), after performing the communication.
3. The device (100) according to claim 1 or 2, wherein:
the keeper entity (102) comprises two interfaces including a first interface facing the endpoint entity (101) and a second interface facing the application entity (103).
4. The device (100) according to claim 3, wherein the second interface is configured to:
receive a request for the determined connection (111) from the application entity (103); and
provide the respective connection object (121) of the determined connection (111) to the application entity (103).
5. The device (100) according to claim 3 or 4, wherein:
the second interface is further configured to receive a connection object (121) from the application entity (103).
6. The device (100) according to one of the claims 1 to 5, wherein:
the keeper entity (102) is further configured to maintain-open the at least one established connection (111) to the host communication device (110), based on a respective connection type of the at least one established connection (111).
7. The device (100) according to claim 6, wherein:
the maintaining-open operation is performed by periodically sending keep-alive message via the endpoint entity (101), and using the host communication device (110).
8. The device (100) according to claim 6 or 7, wherein:
the keeper entity (102) is further configured to receive subsequent keep-alive messages from the host communication device (110) via the endpoint entity (101) indicating the host communication device (110) servicing the at least one established connection (111).
9. The device (100) according to one of the claims 1 to 8, wherein:
the keeper entity (102) is further configured to determine whether a connection is maintained-open or terminated by the host communication device (110).
10. The device (100) according to one of the claims 1 to 9, wherein:
the keeper entity (102) is further configured to, if a connection is terminated to the host communication device (110), drop the connection by deleting the respective connection object corresponding to the connection.
11. The device (100) according to one of the claims 1 to 10, wherein:
the keeper entity (102) is further configured to assign an identifier, ID, to each retained connection.
12. The device (100) according to one of the claims 1 to 11, wherein:
the endpoint entity (101) is further configured to receive an acknowledgment message from the host communication device (110) indicating a connection (111, 112) is established.
13. The device (100) according to one of the claims 1 to 12, wherein the application entity (103) is further configured to perform one or more of:
request a list of connections from the keeper entity (102);
request a determined connection satisfying a predefined criterion;
deposit a connection object of a determined connection to the keeper entity (102), wherein the determined connection is a newly established connection;
deposit a connection object of a determined connection to the keeper entity (102), wherein the determined connection is a used connection that is acquired from the keeper entity (102).
14. The device (100) according to claim 13, wherein
the keeper entity (102) is further configured to maintain-open the deposited newly established connection and/or the deposited used connection, until being acquired by an application entity (103).
15. The device (100) according to claim 13 or 14, wherein the predefined criterion is determined based on one or more of:
a destination of a communication;
an address of a host communication device (110);
a name of a service on a host communication device (110);
a connection ID;
the Least Recently Used, LRU, connection;
the Most Recently Used, MRU, connection.
16. A method (300) for managing connections, the method (300) comprising:
establishing (301), by an endpoint entity (101), one or more connections (111,
112) using a host communication device (110);
retaining (302), by a keeper entity (102), at least one established connection (111) from the one or more connections (111, 112), by storing a respective connection object (121) with respect to each of the at least one established connection (111); and
acquiring (303), by an application entity (103), a determined connection (111) from the keeper entity (102), and using a respective connection object (121) of the determined connection (111) for performing a communication using the host communication device (110).
17. A computer program product including computer program code, which, when executed by a processor, causes the method (300) according to claim 16 to be performed.
18. A computer readable storage medium comprising computer program code instructions, being executable by a computer, for performing a method (300) according to claim 16 when the computer program code instructions runs on a computer.
PCT/EP2019/069356 2019-07-18 2019-07-18 Device and method for managing connections WO2021008709A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/EP2019/069356 WO2021008709A1 (en) 2019-07-18 2019-07-18 Device and method for managing connections
CN201980097970.9A CN114175589B (en) 2019-07-18 2019-07-18 Apparatus and method for managing connections

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2019/069356 WO2021008709A1 (en) 2019-07-18 2019-07-18 Device and method for managing connections

Publications (1)

Publication Number Publication Date
WO2021008709A1 true WO2021008709A1 (en) 2021-01-21

Family

ID=67396932

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2019/069356 WO2021008709A1 (en) 2019-07-18 2019-07-18 Device and method for managing connections

Country Status (2)

Country Link
CN (1) CN114175589B (en)
WO (1) WO2021008709A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040221031A1 (en) * 2003-04-29 2004-11-04 Oracle International Corporation Method and apparatus using connection pools in communication networks
US20190059119A1 (en) * 2015-11-05 2019-02-21 Ntt Docomo, Inc. User equipment, base station, connection establishment method, and context information retrieval method

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9774631B2 (en) * 2014-10-29 2017-09-26 International Business Machines Corporation TLS connection abandoning
CN106095341A (en) * 2016-06-14 2016-11-09 乐视控股(北京)有限公司 Method for managing object and Object Management System

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040221031A1 (en) * 2003-04-29 2004-11-04 Oracle International Corporation Method and apparatus using connection pools in communication networks
US20190059119A1 (en) * 2015-11-05 2019-02-21 Ntt Docomo, Inc. User equipment, base station, connection establishment method, and context information retrieval method

Also Published As

Publication number Publication date
CN114175589A (en) 2022-03-11
CN114175589B (en) 2023-07-18

Similar Documents

Publication Publication Date Title
US20210263686A1 (en) Fabric driven non-volatile memory express subsystem zoning
US10819538B2 (en) Method and apparatus for establishing link between virtualized network functions
US9667674B2 (en) Method, device, and system for connecting to a communication device
US10075412B2 (en) Client aware DHCP lease managment
RU2613040C2 (en) Smb2-scaling
US8495190B2 (en) Providing access by a client application program over an internet protocol (IP) network to a server application program instance
US20160301758A1 (en) Generic cloud enabling of stateful applications
US20070150602A1 (en) Distributed and Replicated Sessions on Computing Grids
WO2012027638A1 (en) System method and program for telecom infrastructure virtualization and management
US11178230B1 (en) Dynamically managing keepalive status for client-server connections
US9043492B2 (en) Method to publish remote management services over link local network for zero-touch discovery, provisioning and management
EP3358785B1 (en) Method and device for acquiring resource
EP2528305A1 (en) Server connection method, information providing method for device, device adopting the same, cloud computing network, and operation method thereof
CN107707689B (en) DHCP message processing method, DHCP server and gateway equipment
EP3035648A1 (en) Determining dynamic user attributes using dynamic host configuration protocol
US7870266B2 (en) Finding a management server
CN117042115A (en) Network node, terminal device and method therein for edge application
WO2021008709A1 (en) Device and method for managing connections
US20230146880A1 (en) Management system and management method
Raghuvanshi et al. DHCPv6 active leasequery
Kinnear et al. Active DHCPv4 Lease Query
AU2022252873A1 (en) Network nodes and methods therein for facilitating application context relocation
Leasequery DHC Working Group D. Raghuvanshi Internet-Draft K. Kinnear Updates: 5460 (if approved) D. Kukrety Intended status: Standards Track Cisco Systems, Inc. Expires: September 3, 2015 March 2, 2015
CN103560960A (en) Access control list dynamic updating method and Ethernet switch
JP5617628B2 (en) Server location tracking apparatus, method, and program

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19742563

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19742563

Country of ref document: EP

Kind code of ref document: A1