WO2021188026A1 - Methods, host devices and computer program products for assigning communication ports - Google Patents

Methods, host devices and computer program products for assigning communication ports Download PDF

Info

Publication number
WO2021188026A1
WO2021188026A1 PCT/SE2020/050294 SE2020050294W WO2021188026A1 WO 2021188026 A1 WO2021188026 A1 WO 2021188026A1 SE 2020050294 W SE2020050294 W SE 2020050294W WO 2021188026 A1 WO2021188026 A1 WO 2021188026A1
Authority
WO
WIPO (PCT)
Prior art keywords
host device
assigned
communication
address
request
Prior art date
Application number
PCT/SE2020/050294
Other languages
French (fr)
Inventor
Amardeep MEHTA
Pontus SKÖLDSTRÖM
Vinay YADHAV
Original Assignee
Telefonaktiebolaget Lm Ericsson (Publ)
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 Telefonaktiebolaget Lm Ericsson (Publ) filed Critical Telefonaktiebolaget Lm Ericsson (Publ)
Priority to PCT/SE2020/050294 priority Critical patent/WO2021188026A1/en
Publication of WO2021188026A1 publication Critical patent/WO2021188026A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/663Transport layer addresses, e.g. aspects of transmission control protocol [TCP] or user datagram protocol [UDP] ports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5046Resolving address allocation conflicts; Testing of addresses

Definitions

  • the present disclosure relates to a method of a host device of assigning a communication port to at least one of a plurality of applications hosted by the host device, and a host device performing the method.
  • Multiple applications may be grouped together to a microservice in order to avoid latency/communication delay. Some of the applications may like to expose the same ports of the host device as some other applications. This could result into error and could hinder in automatic deployment of these legacy applications.
  • Port mapping solutions are provided where a port of an application is mapped to some other port in order to avoid collision.
  • this solution requires port mapping to be configured manually. This approach will not work in case two or more application processes are deployed and want to bind on the same port of the host device.
  • applications will need to be rewritten so that application processes deployed open mutually exclusive ports which may not be feasible in some cases, e.g. as some processes want to expose well known ports.
  • IP Internet Protocol
  • An object is to solve, or at least mitigate, these problems in the art and thus to provide an improved method of a host device of assigning a communication port to at least one of a plurality of applications hosted by the host device.
  • This object is attained in a first aspect by a method of a host device of assigning a communication port to at least one of a plurality of applications hosted by the host device.
  • the method comprises acquiring a subset of communication addresses being exclusively allocated to the host device, receiving a request from one of the plurality of applications to be assigned a communication port, binding a selected one of the communication addresses of the subset to the communication port indicated in the request, and determining whether or not the bound communication address has been assigned to another one of the plurality of applications along with the requested communication port, wherein in case the bound communication address has already been assigned to another one of the plurality of applications, attempts are made to bind a selected new communication address from the subset to the communication port indicted in the request until a non-assigned address is successfully bound to the communication port wherein the binding of the non- assigned communication address to the communication port indicated in the request is accepted for the application making the request.
  • a host device configured to assign a communication port to at least one of a plurality of applications hosted by the host device.
  • the host device comprises a processing unit and a memory, said memory containing instructions executable by said processing unit, whereby the host device is operative to acquire a subset of communication addresses being exclusively allocated to the host device, receive a request from one of the plurality of applications to be assigned a communication port, bind a selected one of the subset of communication addresses to the communication port indicated in the request, and to determine whether or not the bound communication address has been assigned to another one of the plurality of applications along with the requested communication port, wherein in case the bound communication address has already been assigned to another one of the plurality of applications, attempts are made to bind a selected new communication address from the subset to the communication port indicted in the request until a non-assigned address is successfully bound to the communication port wherein the binding of the non-assigned communication address to the communication port indicated in the request is accepted for the application making
  • This object is attained in a third aspect by a method of a host device of assigning a port to at least one of a plurality of applications hosted by the host device.
  • the method comprises receiving a request from one of the plurality of applications to be assigned a communication port, binding a default communication address of the host device to the communication port indicated in the request, determining whether or not the default communication address has been assigned along with the requested communication port to another one of the plurality applications; and if so acquiring information from other host devices in a network in which the host device is arranged indicating at least one non-assigned communication address, binding the non- assigned communication address to the communication port indicated in the request; and if the non-assigned communication address has not been assigned along with the requested communication port to another one of the plurality of applications, informing a router serving the host device that the non-assigned communication address is bound to the communication port indicated in the request, wherein the binding of the non-assigned communication address to the communication port indicated in the request is accepted for the application making the
  • a host device configured to assign a communication port to at least one of a plurality of applications hosted by the host device.
  • the host device comprises a processing unit and a memory, said memory containing instructions executable by said processing unit, whereby the host device is operative to receive a request from one of the plurality of applications to be assigned a communication port, bind a default communication address of the host device to the communication port indicated in the request, determine whether or not the default communication address has been assigned along with the requested communication port to another one of the plurality applications, and if so acquire information from other host devices in a network in which the host device is arranged indicating at least one non-assigned communication address, bind the non-assigned communication address to the communication port indicated in the request, and if the non-assigned communication address has not been assigned along with the requested communication port to another one of the plurality of applications inform a router serving the host device that the non-assigned communication address is bound to the communication port indicated in the request,
  • an initialization procedure is performed where the host device requests from a router a subset of Internet Protocol (IP) addresses which are exclusively allocated to the host device.
  • IP Internet Protocol
  • An application wishing to be assigned a port and an IP address sends a port assignment request accordingly by calling a bind function of host device handled.
  • the host device binds a socket with the requested port and a selected one of the exclusively allocated IP addresses.
  • the host device checks whether or not the requested port successfully can be assigned along with an IP address. If so, the bind request for the requested port is accepted and the application proceeds with the task the application is set out to do by communicating over the requested port and the assigned IP address.
  • the host device selects a new, non-assigned IP address in the subset to be bound to the requested port, and the bind request is accepted.
  • the host device may freely select from the subset which IP addresses to assign to the applications it is hosting.
  • a port collision is about to occur, a non-assigned IP address is selected from the subset, wherein the port collision is resolved and an application crash is avoided.
  • an application wishing to be assigned a port and an IP address sends a port assignment request accordingly by calling the bind function of the host device.
  • the host device binds a socket with the requested port and a default IP address of the host device.
  • the host device checks whether or not the requested port successfully can be assigned along with the default IP address. If so, the bind request for the requested port is accepted and the application proceeds with the task the application is set out to do by communicating over the requested port and the assigned default IP address.
  • the host device sends a request to the other host devices in the network, for instance in the form of a multicast or broadcast request, regarding information on which IP addresses are being used by applications of the other host devices in order to find a free, non-assigned IP address to be assigned to the first application such that an application crash is avoided.
  • the host device may send a request to the other host devices as to whether or not a particular address is being used.
  • the host device receives from the other host devices information indicating which IP addresses are being used, or whether the particular address is being used or not.
  • the host device utilizes the bind function to bind the new IP address to the requested port whereupon the process proceeds again to determine if the port binding is successful and this can be accepted.
  • the host device informs the router that a new IP address has been assigned to the application such that the router may update its routing table accordingly.
  • IP addresses are not assigned to all applications running on a host device, but only to applications making a port assignment request, which results in a less expansive routing table in the router 120.
  • the host device instead of using the default system bind function, the host device utilizes a modified local bind function which overrides the system bind function to use the exclusively allocated IP addresses obtained from the router or the IP addresses indicated by the other host devices to be currently non-assigned instead of the default IP address of the host device, which would be the IP address selected by the system bind function to perform the binding.
  • a modified local bind function which overrides the system bind function to use the exclusively allocated IP addresses obtained from the router or the IP addresses indicated by the other host devices to be currently non-assigned instead of the default IP address of the host device, which would be the IP address selected by the system bind function to perform the binding.
  • Figure 1 shows a prior art network in which embodiments may be implemented
  • Figure 2 illustrates a flowchart of a prior art communication port assignment approach where port collision occurs
  • Figure 3 shows a flowchart of an embodiment of a method of a host device of assigning a port to an application of the host device
  • Figure 4 shows a flowchart of a method of a host device of assigning a port to an application of the host device according to another embodiment
  • Figure 5 illustrates a host device according to an embodiment.
  • Figure 1 schematically illustrates a network 100 in which embodiments may be implemented.
  • Figure 1 illustrates a host device 101 such as a cloud server executing five applications 102- 106 which may be linked together to form a microservice provided by the device 101.
  • the host device 101 is provided with a communication interface 107 for communicating with other host devices 108, 109 (also hosting applications) in the network 100 over a plurality of communication endpoints referred to as communication ports Pi, P2, PN via a router 120.
  • To each port P an address is assigned for allowing first device 100 to communicate with second device 108 and third device 109.
  • the router 120 hosts a routing table keeping track of the addresses being assigned in order to be able to forward data to the destination specified by the address.
  • Each host device has a default IP address; for instance, it may be envisaged that the host device 100 uses IP address 10.0.0.1 when communicating over the interface 107 with the other host devices 108, 109.
  • IPv4 Internet Protocol version 4
  • the port number is a 16-bit unsigned integer, which allows for a port range from o to 65535.
  • IPv4 uses a 32-bit address space, which limits the number of unique hosts to 4,294,967,296.
  • An application 102-106 wishing to communicate over the network 100 will thus associate its input or output channels with an IP address and a port number.
  • the endpoint of the application is defined by combination of a default IP address and port (e.g. 10.0.0.1:80).
  • a default IP address and port e.g. 10.0.0.1:80
  • Pi in interface 107 is designated by 10.0.0.1:80
  • P2 may be designated by 10.0.0.1:81, and so on.
  • the router 120 uses its routing table to address the host device 101 and its various ports P.
  • port 80 is the port number assigned to commonly used internet communication protocol Hypertext Transfer Protocol (HTTP), and is the port from which a computer sends and receives Web client -based communication and messages from a Web server and is used to send and receive HTML pages or data.
  • HTTP Hypertext Transfer Protocol
  • FIG. 2 illustrates a flowchart of a prior art communication port assignment approach where port collision occurs between the first application 102 and the second application 103.
  • a controller 110 such as a central processing unit (CPU) handles this configuration of the applications.
  • the first application 102 wishes to be assigned port 80.
  • the system bind function is provided by an operating system executing on the host devices and is used by all applications on a host; each host device has its own default bind function which uses the default IP address for the binding.
  • the CPU 110 uses a so-called socket file descriptor in step S102 to bind a socket (not shown) with a port indicated with a port number, and an IP address.
  • a socket is an internal endpoint of host device 101 while the previously described communication port is a corresponding external endpoint of the host device 101.
  • step S103 the first application 102 receives a return value from the system bind function of the CPU no which indicates whether or not port 80 successfully can be assigned along with a default IP address (referred to in the following as IP address 1, which in practice could be embodied by previously exemplified address 10.0.0.1) of the host device 101. If so, the process proceeds to step S104, where the first application 102 accepts the assigned port 80 and proceeds with the task that the application is set out to do by communicating over port 80 and the assigned IP address 1.
  • IP address 1 IP address 1
  • step S105 the CPU no signals to the first application that a so called EADDRINUSE (“Address Already in Use”) error has occurred, in which case a port collision has occurred and the first application crashes in step S106.
  • EADDRINUSE Address already in Use
  • step S107 a system operator will manually have to investigate which application has failed. It is noted that a device may host tens of applications and a system operator may be responsible for many host devices. [0047] Thereafter, as illustrated in step S108, the system operator will manually have to assign a new port and/or IP address to the first application 102.
  • the applications may be rewritten so that two or more applications never make an attempt to bind to the same port.
  • that is an ineffective and tedious procedure which requires substantive manual work by the system operator, and furthermore hinders automatic deployment of legacy applications.
  • the routing table of the router 120 must be manually updated accordingly to reflect the new addresses being assigned to the host device 101.
  • FIG. 3 shows a flowchart of an embodiment of a method of a host device of assigning a port to an application of the host device which overcomes this problem.
  • an initialization procedure is performed where the host device 101 requests from the router 120 a subset of IP addresses which are exclusively allocated to the host device 101 in step S201. For instance, in IPv4 address space the host device 100 maybe assigned 2 s unique IP addresses, while in IP version 6 (IPv6) address space the host device 101 may be assigned 2 28 unique IP addresses.
  • IPv6 IP version 6
  • step S202 the first application 102 wishes to be assigned a port and an IP address and thus sends a port assignment request accordingly by calling the bind function of host device 101 handled by the CPU no. Again, it assumed that the first application 102 wishes to be assigned port 80.
  • the CPU no uses a socket file descriptor in step S204 to bind a socket with port 80 and a selected one of the exclusively allocated IP addresses obtained in step S201.
  • step S203 In practice in step S203, it is envisaged that instead of using the previously described system bind function (cf. step S101 of Figure 2), the CPU no of the host device 101 utilizes a modified local bind function which overrides the system bind function to use the exclusively allocated IP addresses obtained from the router 120 in step S201 for the binding instead of the default IP address of the host device 101, which would be the IP address selected by the system bind function to perform the binding.
  • the first application 102 receives a return value from the local bind function of the CPU 110 which indicates whether or not port 80 successfully can be assigned along with an IP address (IP address 1); that is, whether or not port 80 may be successfully bound to IP address 1 for the first application 102. If so, the process proceeds to step S205, where the bind request for port 80 is accepted by the CPU 110 and the first application 102 proceeds with the task the application is set out to do by communicating over port 80 and the assigned IP address 1.
  • step S206 the CPU 110 uses the local bind function and the subset of IP addresses obtained in step S201 to select a new, non-assigned IP address (referred to in the following as IP address 2) in the subset to be bound to port 80 and thus to be assigned to the first application 102.
  • IP address 2 a new, non-assigned IP address
  • step S204 the first application 102 uses an IP address which is not used by any other application over port 80 and the bind request is accepted in step S205.
  • the host device 101 may freely select from the subset which IP addresses to assign to the applications it is hosting.
  • a port collision is about to occur, a non-assigned IP address is selected from the subset, wherein the port collision is resolved and an application crash is avoided.
  • Figure 4 shows a flowchart of a method of a host device of assigning a port to an application of the host device according to a further embodiment.
  • step S301 the first application 102 wishes to be assigned a port and an IP address and sends a port assignment request accordingly by calling the utilized local bind function of host device 101 handled by the CPU no. Again, it assumed that the first application 102 wishes to be assigned port 80.
  • the CPU no uses a socket file descriptor in step S302 to bind - possibly utilizing the local bind function previously discussed with reference to step S203 of Figure 3 - a socket with port 80 and a default IP address of the host device 101.
  • step S303 the first application 102 receives a return value from the local bind function of the CPU no which indicates whether or not the port binding is successful, i.e. that port 80 successfully can be assigned to the first application 102 along with the default IP address of the host device 101; IP address 1.
  • step S304 the CPU no determines whether or not it is the default IP address of the host device 101 which is being bound. If so, the bind request for port 80 is accepted by the CPU no in step S305 and the first application 102 proceeds with the task the application is set out to do by communicating over port 80 and the assigned IP address 1. Otherwise, the host device 101 informs the router 120 in step S306 that a new IP address has been assigned to the first application 102 such that the router 120 may update its routing table accordingly to enable that the first application 102 can be reached on port 80 over the new IP address, before proceeding to step S305.
  • step S307 the host device 101 sends a request to the other host devices 108, 109 in the network 100, for instance in the form of a multicast or broadcast request, regarding information on which IP addresses are being used by applications of the other host devices 108, 109 in order to find a free, non-assigned IP address to be assigned to the first application 102 such that an application crash is avoided.
  • the host device 101 may send a request to the other host devices as to whether or not a particular address, e.g. IP address 2, is being used.
  • the host device 101 receives from the other host devices 108, 109 (via the router 120) information indicating which IP addresses are being used, or whether the particular address (IP address 2) is being used or not. In this exemplifying embodiment, it is assumed that IP address 2 is not used by any of the other host devices 108, 109. [0066] Thereafter, in step S308, the CPU 110 of the host device 101 utilizes the local bind function to bind IP address 2 to port 80 (as requested by the first application 102 in step S301), whereupon the process proceeds again to step S303 for determining if the port binding is successful. Again, by using the local bind function to override the system bind function, the use of other addresses than the default IP address of the host device 101 is facilitated.
  • the first application 102 uses an IP address (i.e. IP address 2) which is not used by any other application over port 80 and the process proceeds to step S304 where the CPU 110 determines that it is not the default IP address of the host device 101 which is being used and thus that the router 120 must be informed accordingly in step S306 before the bind request is accepted in step S305.
  • IP address 2 i.e. IP address 2
  • the CPU 110 is enabled to bind the requested port to a free IP address - in contrast to the prior art process of Figure 2, where the system bind function again will select the already assigned default IP address.
  • a port collision is about to occur, a non-assigned IP address is requested, wherein the port collision is resolved and an application crash is avoided.
  • a further advantage with the described embodiment is that IP addresses are not assigned to all applications running on a host device, but only to applications making a port assignment request, which results in a less expansive routing table in the router 120.
  • Figure 5 illustrates a host device 101 configured to assigning a communication port to at least one of a plurality of applications hosted by the host device 101.
  • the steps of the method performed by the host device 101 are in practice performed by a processing unit no embodied in the form of one or more microprocessors arranged to execute a computer program 111 downloaded to a suitable storage volatile medium 112 associated with the microprocessor, such as a Random Access Memory (RAM), or a non-volatile storage medium such as a Flash memory or a hard disk drive.
  • the processing unit 110 is arranged to cause the host device 101 to carry out the method according to embodiments when the appropriate computer program 111 comprising computer-executable instructions is downloaded to the storage medium 112 and executed by the processing unit 110.
  • the storage medium 112 may also be a computer program product comprising the computer program 111.
  • the computer program 111 may be transferred to the storage medium 112 by means of a suitable computer program product, such as a Digital Versatile Disc (DVD) or a memory stick.
  • DVD Digital Versatile Disc
  • the computer program 111 may be downloaded to the storage medium 112 over a network.
  • the processing unit 110 may alternatively be embodied in the form of a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field- programmable gate array (FPGA), a complex programmable logic device (CPLD), etc.
  • DSP digital signal processor
  • ASIC application specific integrated circuit
  • FPGA field- programmable gate array
  • CPLD complex programmable logic device

Abstract

The present disclosure relates to a method of a host device (101) of assigning a communication port to at least one of a plurality of applications (102-106) hosted by the host device (101), and a host device (101) performing the method. In an aspect, a method of a host device (101) of assigning a communication port to at least one of a plurality of applications (102, 103) hosted by the host device (101) is provided. The method comprises acquiring (S201) a subset of communication addresses being exclusively allocated to the host device (101); receiving (S202) a request from one of the plurality of applications (102) to be assigned a communication port; binding (S203) a selected one of the communication addresses of the subset to the communication port indicated in the request; and determining (S204) whether or not the bound communication address has been assigned to another one (103) of the plurality of applications along with the requested communication port, wherein in case the bound communication address has already been assigned to another one of the plurality of applications, attempts are made to bind a selected (S206) new communication address from the subset to the communication port indicted in the request until a non-assigned address is successfully bound to the communication port wherein the binding of the non- assigned communication address to the communication port indicated in the request is accepted (S205) for the application (102) making the request.

Description

Methods, host devices and computer program products for assigning communication ports
TECHNICAL FIELD
[0001] The present disclosure relates to a method of a host device of assigning a communication port to at least one of a plurality of applications hosted by the host device, and a host device performing the method.
BACKGROUND
[0002] Porting legacy software applications in host devices is challenging.
Multiple applications may be grouped together to a microservice in order to avoid latency/communication delay. Some of the applications may like to expose the same ports of the host device as some other applications. This could result into error and could hinder in automatic deployment of these legacy applications.
[0003] Port mapping solutions are provided where a port of an application is mapped to some other port in order to avoid collision. However, this solution requires port mapping to be configured manually. This approach will not work in case two or more application processes are deployed and want to bind on the same port of the host device. To overcome this challenge, applications will need to be rewritten so that application processes deployed open mutually exclusive ports which may not be feasible in some cases, e.g. as some processes want to expose well known ports.
[0004] Another way to solve this problem is by assigning Internet Protocol (IP) addresses per application. However, that will typically lead to a great number of entries in a routing table of a router serving the host device.
SUMMARY
[0005] An object is to solve, or at least mitigate, these problems in the art and thus to provide an improved method of a host device of assigning a communication port to at least one of a plurality of applications hosted by the host device.
[0006] This object is attained in a first aspect by a method of a host device of assigning a communication port to at least one of a plurality of applications hosted by the host device. The method comprises acquiring a subset of communication addresses being exclusively allocated to the host device, receiving a request from one of the plurality of applications to be assigned a communication port, binding a selected one of the communication addresses of the subset to the communication port indicated in the request, and determining whether or not the bound communication address has been assigned to another one of the plurality of applications along with the requested communication port, wherein in case the bound communication address has already been assigned to another one of the plurality of applications, attempts are made to bind a selected new communication address from the subset to the communication port indicted in the request until a non-assigned address is successfully bound to the communication port wherein the binding of the non- assigned communication address to the communication port indicated in the request is accepted for the application making the request.
[0007] This object is attained in a second aspect by a host device configured to assign a communication port to at least one of a plurality of applications hosted by the host device. The host device comprises a processing unit and a memory, said memory containing instructions executable by said processing unit, whereby the host device is operative to acquire a subset of communication addresses being exclusively allocated to the host device, receive a request from one of the plurality of applications to be assigned a communication port, bind a selected one of the subset of communication addresses to the communication port indicated in the request, and to determine whether or not the bound communication address has been assigned to another one of the plurality of applications along with the requested communication port, wherein in case the bound communication address has already been assigned to another one of the plurality of applications, attempts are made to bind a selected new communication address from the subset to the communication port indicted in the request until a non-assigned address is successfully bound to the communication port wherein the binding of the non-assigned communication address to the communication port indicated in the request is accepted for the application making the request.
[0008] This object is attained in a third aspect by a method of a host device of assigning a port to at least one of a plurality of applications hosted by the host device. The method comprises receiving a request from one of the plurality of applications to be assigned a communication port, binding a default communication address of the host device to the communication port indicated in the request, determining whether or not the default communication address has been assigned along with the requested communication port to another one of the plurality applications; and if so acquiring information from other host devices in a network in which the host device is arranged indicating at least one non-assigned communication address, binding the non- assigned communication address to the communication port indicated in the request; and if the non-assigned communication address has not been assigned along with the requested communication port to another one of the plurality of applications, informing a router serving the host device that the non-assigned communication address is bound to the communication port indicated in the request, wherein the binding of the non-assigned communication address to the communication port indicated in the request is accepted for the application making the request.
[0009] This object is attained in a fourth aspect by a host device configured to assign a communication port to at least one of a plurality of applications hosted by the host device. The host device comprises a processing unit and a memory, said memory containing instructions executable by said processing unit, whereby the host device is operative to receive a request from one of the plurality of applications to be assigned a communication port, bind a default communication address of the host device to the communication port indicated in the request, determine whether or not the default communication address has been assigned along with the requested communication port to another one of the plurality applications, and if so acquire information from other host devices in a network in which the host device is arranged indicating at least one non-assigned communication address, bind the non-assigned communication address to the communication port indicated in the request, and if the non-assigned communication address has not been assigned along with the requested communication port to another one of the plurality of applications inform a router serving the host device that the non-assigned communication address is bound to the communication port indicated in the request, wherein the binding of the non-assigned communication address to the communication port indicated in the request is accepted for the application making the request.
[0010] Hence, in one aspect, before any port assignment is performed, an initialization procedure is performed where the host device requests from a router a subset of Internet Protocol (IP) addresses which are exclusively allocated to the host device. [0011] An application wishing to be assigned a port and an IP address sends a port assignment request accordingly by calling a bind function of host device handled. The host device binds a socket with the requested port and a selected one of the exclusively allocated IP addresses.
[0012] The host device checks whether or not the requested port successfully can be assigned along with an IP address. If so, the bind request for the requested port is accepted and the application proceeds with the task the application is set out to do by communicating over the requested port and the assigned IP address.
[0013] If not, for instance if another application already has been assigned the requested port and the bound IP address, typically resulting in a so-called EADDRINUSE (“Address Already in Use”) error occurring, the host device selects a new, non-assigned IP address in the subset to be bound to the requested port, and the bind request is accepted.
[0014] Advantageously, by locally using a subset of exclusive IP addresses at the host device, the binding of which the host device is capable of controlling - in contrast to the prior art, where the system bind function will use a host device default IP address in the binding - the host device may freely select from the subset which IP addresses to assign to the applications it is hosting. Thus, if a port collision is about to occur, a non-assigned IP address is selected from the subset, wherein the port collision is resolved and an application crash is avoided.
[0015] In another aspect, an application wishing to be assigned a port and an IP address sends a port assignment request accordingly by calling the bind function of the host device. The host device binds a socket with the requested port and a default IP address of the host device.
[0016] The host device checks whether or not the requested port successfully can be assigned along with the default IP address. If so, the bind request for the requested port is accepted and the application proceeds with the task the application is set out to do by communicating over the requested port and the assigned default IP address.
[0017] If not, for instance if another application already has been assigned the requested port and the default IP address, the host device sends a request to the other host devices in the network, for instance in the form of a multicast or broadcast request, regarding information on which IP addresses are being used by applications of the other host devices in order to find a free, non-assigned IP address to be assigned to the first application such that an application crash is avoided. Alternatively, the host device may send a request to the other host devices as to whether or not a particular address is being used.
[0018] In response to the request, the host device receives from the other host devices information indicating which IP addresses are being used, or whether the particular address is being used or not.
[0019] Thereafter, the host device utilizes the bind function to bind the new IP address to the requested port whereupon the process proceeds again to determine if the port binding is successful and this can be accepted.
[0020] The host device informs the router that a new IP address has been assigned to the application such that the router may update its routing table accordingly.
[0021] Advantageously, by finding a free, non-assigned IP address to be assigned to an application of the host device in case a port collision is about to occur, a non- assigned IP address is requested, wherein the port collision is resolved and an application crash is avoided.
[0022] A further advantage with the described embodiment is that IP addresses are not assigned to all applications running on a host device, but only to applications making a port assignment request, which results in a less expansive routing table in the router 120.
[0023] In an embodiment, instead of using the default system bind function, the host device utilizes a modified local bind function which overrides the system bind function to use the exclusively allocated IP addresses obtained from the router or the IP addresses indicated by the other host devices to be currently non-assigned instead of the default IP address of the host device, which would be the IP address selected by the system bind function to perform the binding.
[0024] Further embodiments will be described in the detailed description.
[0025] Generally, all terms used in the claims are to be interpreted according to their ordinary meaning in the technical field, unless explicitly defined otherwise herein. All references to "a/an/the element, apparatus, component, means, step, etc." are to be interpreted openly as referring to at least one instance of the element, apparatus, component, means, step, etc., unless explicitly stated otherwise. The steps of any method disclosed herein do not have to be performed in the exact order disclosed, unless explicitly stated.
BRIEF DESCRIPTION OF THE DRAWINGS
[0026] Aspects and embodiments are now described, by way of example, with reference to the accompanying drawings, in which:
[0027] Figure 1 shows a prior art network in which embodiments may be implemented;
[0028] Figure 2 illustrates a flowchart of a prior art communication port assignment approach where port collision occurs;
[0029] Figure 3 shows a flowchart of an embodiment of a method of a host device of assigning a port to an application of the host device;
[0030] Figure 4 shows a flowchart of a method of a host device of assigning a port to an application of the host device according to another embodiment; and
[0031] Figure 5 illustrates a host device according to an embodiment.
DETAILED DESCRIPTION
[0032] The aspects of the present disclosure will now be described more fully hereinafter with reference to the accompanying drawings, in which certain embodiments of the invention are shown.
[0033] These aspects may, however, be embodied in many different forms and should not be construed as limiting; rather, these embodiments are provided by way of example so that this disclosure will be thorough and complete, and to fully convey the scope of all aspects of invention to those skilled in the art. Like numbers refer to like elements throughout the description.
[0034] Figure 1 schematically illustrates a network 100 in which embodiments may be implemented.
[0035] As previously mentioned, porting legacy applications is challenging. Figure 1 illustrates a host device 101 such as a cloud server executing five applications 102- 106 which may be linked together to form a microservice provided by the device 101. [0036] The host device 101 is provided with a communication interface 107 for communicating with other host devices 108, 109 (also hosting applications) in the network 100 over a plurality of communication endpoints referred to as communication ports Pi, P2, PN via a router 120. To each port P, an address is assigned for allowing first device 100 to communicate with second device 108 and third device 109. The router 120 hosts a routing table keeping track of the addresses being assigned in order to be able to forward data to the destination specified by the address.
[0037] Each host device has a default IP address; for instance, it may be envisaged that the host device 100 uses IP address 10.0.0.1 when communicating over the interface 107 with the other host devices 108, 109.
[0038] As an example, in Internet Protocol version 4 (IPv4), the port number is a 16-bit unsigned integer, which allows for a port range from o to 65535. IPv4 uses a 32-bit address space, which limits the number of unique hosts to 4,294,967,296.
[0039] An application 102-106 wishing to communicate over the network 100 will thus associate its input or output channels with an IP address and a port number.
This is known as binding, and enables the process to send to and receive data from the network 100 via the router 120. Once an application is deployed on the host device 101 with a given port (e.g. port 80), the endpoint of the application is defined by combination of a default IP address and port (e.g. 10.0.0.1:80). In this case, Pi in interface 107 is designated by 10.0.0.1:80, while P2 may be designated by 10.0.0.1:81, and so on. The router 120 uses its routing table to address the host device 101 and its various ports P.
[0040] However, two or more of the applications 102-106 may want to bind to the same port of the host device 101. For instance, port 80 is the port number assigned to commonly used internet communication protocol Hypertext Transfer Protocol (HTTP), and is the port from which a computer sends and receives Web client -based communication and messages from a Web server and is used to send and receive HTML pages or data.
[0041] If e.g. first application 102 and second application 103 both make an attempt to bind to the same port (such as port 80) using the same IP address, a port collision will occur which must be resolved manually. [0042] Figure 2 illustrates a flowchart of a prior art communication port assignment approach where port collision occurs between the first application 102 and the second application 103. In a first step S101, the first application 102 wishes to be assigned a port and an IP address and thus calls a system bind function of host device 101 accordingly. In practice, a controller 110 such as a central processing unit (CPU) handles this configuration of the applications. In this example, it assumed that the first application 102 wishes to be assigned port 80. The system bind function is provided by an operating system executing on the host devices and is used by all applications on a host; each host device has its own default bind function which uses the default IP address for the binding.
[0043] The CPU 110 uses a so-called socket file descriptor in step S102 to bind a socket (not shown) with a port indicated with a port number, and an IP address. A socket is an internal endpoint of host device 101 while the previously described communication port is a corresponding external endpoint of the host device 101.
[0044] In step S103, the first application 102 receives a return value from the system bind function of the CPU no which indicates whether or not port 80 successfully can be assigned along with a default IP address (referred to in the following as IP address 1, which in practice could be embodied by previously exemplified address 10.0.0.1) of the host device 101. If so, the process proceeds to step S104, where the first application 102 accepts the assigned port 80 and proceeds with the task that the application is set out to do by communicating over port 80 and the assigned IP address 1.
[0045] If not - for instance if the second application 103 already has been assigned port 80 and the default IP address 1 - the process proceeds to step S105 where the CPU no signals to the first application that a so called EADDRINUSE (“Address Already in Use”) error has occurred, in which case a port collision has occurred and the first application crashes in step S106.
[0046] As a consequence, a system operator will manually have to investigate which application has failed, as illustrated in step S107. It is noted that a device may host tens of applications and a system operator may be responsible for many host devices. [0047] Thereafter, as illustrated in step S108, the system operator will manually have to assign a new port and/or IP address to the first application 102.
[0048] To avoid port collisions, the applications may be rewritten so that two or more applications never make an attempt to bind to the same port. However, that is an ineffective and tedious procedure which requires substantive manual work by the system operator, and furthermore hinders automatic deployment of legacy applications. Moreover, if one or more new IP addresses are to be assigned, the routing table of the router 120 must be manually updated accordingly to reflect the new addresses being assigned to the host device 101.
[0049] Figure 3 shows a flowchart of an embodiment of a method of a host device of assigning a port to an application of the host device which overcomes this problem. In this embodiment, before any port assignment is performed, an initialization procedure is performed where the host device 101 requests from the router 120 a subset of IP addresses which are exclusively allocated to the host device 101 in step S201. For instance, in IPv4 address space the host device 100 maybe assigned 2s unique IP addresses, while in IP version 6 (IPv6) address space the host device 101 may be assigned 228 unique IP addresses.
[0050]
[0051] Thereafter, in step S202, the first application 102 wishes to be assigned a port and an IP address and thus sends a port assignment request accordingly by calling the bind function of host device 101 handled by the CPU no. Again, it assumed that the first application 102 wishes to be assigned port 80.
[0052] The CPU no uses a socket file descriptor in step S204 to bind a socket with port 80 and a selected one of the exclusively allocated IP addresses obtained in step S201.
[0053] In practice in step S203, it is envisaged that instead of using the previously described system bind function (cf. step S101 of Figure 2), the CPU no of the host device 101 utilizes a modified local bind function which overrides the system bind function to use the exclusively allocated IP addresses obtained from the router 120 in step S201 for the binding instead of the default IP address of the host device 101, which would be the IP address selected by the system bind function to perform the binding. [0054] In step S204, the first application 102 receives a return value from the local bind function of the CPU 110 which indicates whether or not port 80 successfully can be assigned along with an IP address (IP address 1); that is, whether or not port 80 may be successfully bound to IP address 1 for the first application 102. If so, the process proceeds to step S205, where the bind request for port 80 is accepted by the CPU 110 and the first application 102 proceeds with the task the application is set out to do by communicating over port 80 and the assigned IP address 1.
[0055] If not - for instance if the second application 103 already has been assigned port 80 and IP address 1 and the CPU 110 may signal to the first application that an EADDRINUSE (“Address Already in Use”) error has occurred - the process proceeds to step S206 where the CPU 110 uses the local bind function and the subset of IP addresses obtained in step S201 to select a new, non-assigned IP address (referred to in the following as IP address 2) in the subset to be bound to port 80 and thus to be assigned to the first application 102.
[0056] Thereafter, the process proceeds again to step S204. In this case the first application 102 uses an IP address which is not used by any other application over port 80 and the bind request is accepted in step S205.
[0057] Advantageously, by locally using a subset of exclusive IP addresses at the host device 101, the binding of which the CPU no is capable of controlling - in contrast to the prior art process of Figure 2, where the system bind function will use the default IP address in the binding - the host device 101 may freely select from the subset which IP addresses to assign to the applications it is hosting. Thus, if a port collision is about to occur, a non-assigned IP address is selected from the subset, wherein the port collision is resolved and an application crash is avoided.
[0058] Hence, with the embodiment of Figure 3, any port collision is resolved and no manual investigation is required by the system operator.
[0059] Figure 4 shows a flowchart of a method of a host device of assigning a port to an application of the host device according to a further embodiment.
[0060] In step S301, the first application 102 wishes to be assigned a port and an IP address and sends a port assignment request accordingly by calling the utilized local bind function of host device 101 handled by the CPU no. Again, it assumed that the first application 102 wishes to be assigned port 80.
[0061] The CPU no uses a socket file descriptor in step S302 to bind - possibly utilizing the local bind function previously discussed with reference to step S203 of Figure 3 - a socket with port 80 and a default IP address of the host device 101.
[0062] In step S303, the first application 102 receives a return value from the local bind function of the CPU no which indicates whether or not the port binding is successful, i.e. that port 80 successfully can be assigned to the first application 102 along with the default IP address of the host device 101; IP address 1.
[0063] If so, the process proceeds to step S304, where the CPU no determines whether or not it is the default IP address of the host device 101 which is being bound. If so, the bind request for port 80 is accepted by the CPU no in step S305 and the first application 102 proceeds with the task the application is set out to do by communicating over port 80 and the assigned IP address 1. Otherwise, the host device 101 informs the router 120 in step S306 that a new IP address has been assigned to the first application 102 such that the router 120 may update its routing table accordingly to enable that the first application 102 can be reached on port 80 over the new IP address, before proceeding to step S305.
[0064] If not - for instance if the second application 103 already has been assigned port 80 and default IP address 1 - the process proceeds from step S303 to step S307 where the host device 101 sends a request to the other host devices 108, 109 in the network 100, for instance in the form of a multicast or broadcast request, regarding information on which IP addresses are being used by applications of the other host devices 108, 109 in order to find a free, non-assigned IP address to be assigned to the first application 102 such that an application crash is avoided. Alternatively, the host device 101 may send a request to the other host devices as to whether or not a particular address, e.g. IP address 2, is being used.
[0065] In response to the request, the host device 101 receives from the other host devices 108, 109 (via the router 120) information indicating which IP addresses are being used, or whether the particular address (IP address 2) is being used or not. In this exemplifying embodiment, it is assumed that IP address 2 is not used by any of the other host devices 108, 109. [0066] Thereafter, in step S308, the CPU 110 of the host device 101 utilizes the local bind function to bind IP address 2 to port 80 (as requested by the first application 102 in step S301), whereupon the process proceeds again to step S303 for determining if the port binding is successful. Again, by using the local bind function to override the system bind function, the use of other addresses than the default IP address of the host device 101 is facilitated.
[0067] In this case the first application 102 uses an IP address (i.e. IP address 2) which is not used by any other application over port 80 and the process proceeds to step S304 where the CPU 110 determines that it is not the default IP address of the host device 101 which is being used and thus that the router 120 must be informed accordingly in step S306 before the bind request is accepted in step S305.
[0068] Advantageously, by finding a free, non-assigned IP address to be assigned to an application of the host device 101, the CPU 110 is enabled to bind the requested port to a free IP address - in contrast to the prior art process of Figure 2, where the system bind function again will select the already assigned default IP address. Thus, with this embodiment if a port collision is about to occur, a non-assigned IP address is requested, wherein the port collision is resolved and an application crash is avoided.
[0069] Hence, with the embodiment of Figure 4, any port collision is automatically resolved and no manual investigation is required by the system operator.
[0070] A further advantage with the described embodiment is that IP addresses are not assigned to all applications running on a host device, but only to applications making a port assignment request, which results in a less expansive routing table in the router 120.
[0071] Figure 5 illustrates a host device 101 configured to assigning a communication port to at least one of a plurality of applications hosted by the host device 101. The steps of the method performed by the host device 101 are in practice performed by a processing unit no embodied in the form of one or more microprocessors arranged to execute a computer program 111 downloaded to a suitable storage volatile medium 112 associated with the microprocessor, such as a Random Access Memory (RAM), or a non-volatile storage medium such as a Flash memory or a hard disk drive. The processing unit 110 is arranged to cause the host device 101 to carry out the method according to embodiments when the appropriate computer program 111 comprising computer-executable instructions is downloaded to the storage medium 112 and executed by the processing unit 110. The storage medium 112 may also be a computer program product comprising the computer program 111. Alternatively, the computer program 111 may be transferred to the storage medium 112 by means of a suitable computer program product, such as a Digital Versatile Disc (DVD) or a memory stick. As a further alternative, the computer program 111 may be downloaded to the storage medium 112 over a network. The processing unit 110 may alternatively be embodied in the form of a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field- programmable gate array (FPGA), a complex programmable logic device (CPLD), etc.
[0072] The aspects of the present disclosure have mainly been described above with reference to a few embodiments and examples thereof. However, as is readily appreciated by a person skilled in the art, other embodiments than the ones disclosed above are equally possible within the scope of the invention, as defined by the appended patent claims.
[0073] Thus, while various aspects and embodiments have been disclosed herein, other aspects and embodiments will be apparent to those skilled in the art. The various aspects and embodiments disclosed herein are for purposes of illustration and are not intended to be limiting, with the true scope and spirit being indicated by the following claims.

Claims

1. A method of a host device (101) of assigning a communication port to at least one of a plurality of applications (102, 103) hosted by the host device (101), comprising: acquiring (S201) a subset of communication addresses being exclusively allocated to the host device (101); receiving (S202) a request from one of the plurality of applications (102) to be assigned a communication port; binding (S203) a selected one of the communication addresses (IP address 1) of the subset to the communication port indicated in the request; determining (S204) whether or not the bound communication address has been assigned to another one (103) of the plurality of applications along with the requested communication port, wherein in case the bound communication address has already been assigned to another one of the plurality of applications, attempts are made to bind a selected (S206) new communication address from the subset to the communication port indicted in the request until a non-assigned address is successfully bound to the communication port wherein the binding of the non- assigned communication address to the communication port indicated in the request is accepted (S205) for the application (102) making the request.
2. The method of claim 1, wherein the acquiring (S201) of a subset of communication addresses being exclusively allocated to the host device comprises: requesting the subset of communication addresses from a router (120) serving the host device (101).
3. A method of a host device (101) of assigning a port to at least one of a plurality of applications (102, 103) hosted by the host device (101), comprising: receiving (S301) a request from one of the plurality of applications (102) to be assigned a communication port; binding (S302) a default communication address of the host device (101) to the communication port indicated in the request; determining (S303) whether or not the default communication address has been assigned along with the requested communication port to another one of the plurality applications; and if so acquiring (S307) information from other host devices (108, 109) in a network
(100) in which the host device (101) is arranged indicating at least one non-assigned communication address; binding (S308) the non-assigned communication address to the communication port indicated in the request; and if the non-assigned communication address has not been assigned along with the requested communication port to another one of the plurality of applications; informing (S306) a router (120) serving the host device (101) that the non- assigned communication address is bound to the communication port indicated in the request, wherein the binding of the non-assigned communication address to the communication port indicated in the request is accepted (S305) for the application (102) making the request.
4. The method of claim 3, wherein the acquiring (S307) of information from other host devices (108, 109) in a network (100) in which the host device (101) is arranged indicating at least one non-assigned communication address comprises: sending a request to the other host devices (108, 109) to receive information indicating which communication addresses are being assigned to the other host devices (108, 109).
5. The method of claim 3, wherein the acquiring (S307) of information from other host devices (108, 109) in a network (100) in which the host device (101) is arranged indicating at least one non-assigned communication address comprises: sending a request to the other host devices (108, 109) to receive information indicating if a particular communication address is being assigned to any one of the other host devices (108, 109).
6. The method according to any one of the preceding claims, wherein the binding (S203, S302, S308) of a communication address to a requested port comprises: initializing a local bind function to override a system bind function such that communication addresses other than a default address of the host device (101) can be utilized in the binding.
7. A host device (101) configured to assign a communication port to at least one of a plurality of applications (102, 103) hosted by the host device (101), the host device
(101) comprising a processing unit (110) and a memory (112), said memory containing instructions (111) executable by said processing unit (110), whereby the host device (101) is operative to: acquire a subset of communication addresses being exclusively allocated to the host device (101); receive a request from one of the plurality of applications (102) to be assigned a communication port; bind a selected one of the subset of communication addresses to the communication port indicated in the request; determine whether or not the bound communication address has been assigned to another one (103) of the plurality of applications along with the requested communication port, wherein in case the bound communication address has already been assigned to another one of the plurality of applications, attempts are made to bind a selected new communication address from the subset to the communication port indicted in the request until a non-assigned address is successfully bound to the communication port wherein the binding of the non-assigned communication address to the communication port indicated in the request is accepted for the application (102) making the request.
8. The host device (101) of claim 7, further begin operative to, when acquiring a subset of communication addresses being exclusively allocated to the host device: request the subset of communication addresses from a router (120) serving the host device (101).
9. A host device (101) configured to assign a communication port to at least one of a plurality of applications (102, 103) hosted by the host device (101), the host device (101) comprising a processing unit (no) and a memory (112), said memory containing instructions (111) executable by said processing unit (no), whereby the host device (101) is operative to: receive a request from one of the plurality of applications (102) to be assigned a communication port; bind a default communication address of the host device (101) to the communication port indicated in the request; determine whether or not the default communication address has been assigned along with the requested communication port to another one of the plurality applications; and if so acquire information from other host devices (108, 109) in a network (100) in which the host device (101) is arranged indicating at least one non-assigned communication address; bind the non-assigned communication address to the communication port indicated in the request; and if the non-assigned communication address has not been assigned along with the requested communication port to another one of the plurality of applications; inform a router (120) serving the host device (101) that the non-assigned communication address is bound to the communication port indicated in the request, wherein the binding of the non-assigned communication address to the communication port indicated in the request is accepted for the application (102) making the request.
10. The host device (101) of claim 9, further being operative to, when acquiring information from other host devices (108, 109) in a network (100) in which the host device (101) is arranged indicating at least one non-assigned communication address: send a request to the other host devices (108, 109) to receive information indicating which communication addresses are being assigned to the other host devices (108, 109).
11. The host device (101) of claim 9, further being operative to, when acquiring information from other host devices (108, 109) in a network (100) in which the host device (101) is arranged indicating at least one non-assigned communication address: send a request to the other host devices (108, 109) to receive information indicating if a particular communication address is being assigned to any one of the other host devices (108, 109).
12. The host device (101) of any one of claims 7-11, further being operative to, when binding a communication address to a requested port: initialize a local bind function to override a system bind function such that communication addresses other than a default address of the host device (101) can be utilized in the binding.
13. A computer program (111) comprising computer-executable instructions for causing a host device (101) to perform steps recited in any one of claims 1-6 when the computer-executable instructions are executed on a processing unit (110) included in the host device (101).
14. A computer program product comprising a computer readable medium (112), the computer readable medium having the computer program (111) according to claim 13 embodied thereon.
PCT/SE2020/050294 2020-03-20 2020-03-20 Methods, host devices and computer program products for assigning communication ports WO2021188026A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/SE2020/050294 WO2021188026A1 (en) 2020-03-20 2020-03-20 Methods, host devices and computer program products for assigning communication ports

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/SE2020/050294 WO2021188026A1 (en) 2020-03-20 2020-03-20 Methods, host devices and computer program products for assigning communication ports

Publications (1)

Publication Number Publication Date
WO2021188026A1 true WO2021188026A1 (en) 2021-09-23

Family

ID=77771468

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/SE2020/050294 WO2021188026A1 (en) 2020-03-20 2020-03-20 Methods, host devices and computer program products for assigning communication ports

Country Status (1)

Country Link
WO (1) WO2021188026A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115037721A (en) * 2022-06-15 2022-09-09 南华机电(太仓)有限公司 Slave machine address allocation method and device and communication address acquisition method and device

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020178265A1 (en) * 2001-05-22 2002-11-28 Aiken John Andrew Methods systems and computer program products for source address selection
US20030002496A1 (en) * 2001-06-27 2003-01-02 Niels Beier Method enabling network address translation of incoming session initiation protocol connections based on dynamic host configuration protocol address assignments
EP1794991A1 (en) * 2004-09-27 2007-06-13 Citrix Systems, Inc. Systems and method for virtual host name roaming and managing virtual ip addresses
US20130315146A1 (en) * 2005-06-01 2013-11-28 Qualcomm Incorporated System and method to support data applications in a multi-homing, multi-mode communication device
US20140156855A1 (en) * 2012-12-03 2014-06-05 International Business Machines Corporation Binding multiple addresses to a socket in a network system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020178265A1 (en) * 2001-05-22 2002-11-28 Aiken John Andrew Methods systems and computer program products for source address selection
US20030002496A1 (en) * 2001-06-27 2003-01-02 Niels Beier Method enabling network address translation of incoming session initiation protocol connections based on dynamic host configuration protocol address assignments
EP1794991A1 (en) * 2004-09-27 2007-06-13 Citrix Systems, Inc. Systems and method for virtual host name roaming and managing virtual ip addresses
US20130315146A1 (en) * 2005-06-01 2013-11-28 Qualcomm Incorporated System and method to support data applications in a multi-homing, multi-mode communication device
US20140156855A1 (en) * 2012-12-03 2014-06-05 International Business Machines Corporation Binding multiple addresses to a socket in a network system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115037721A (en) * 2022-06-15 2022-09-09 南华机电(太仓)有限公司 Slave machine address allocation method and device and communication address acquisition method and device

Similar Documents

Publication Publication Date Title
US10848346B2 (en) Private alias endpoints for isolated virtual networks
CN108111470B (en) Container deployment method, communication method between services and related device
CN108449282B (en) Load balancing method and device
CN111460460B (en) Task access method, device, proxy server and machine-readable storage medium
US8266263B2 (en) Distributed preboot execution environment (PXE) server booting
EP2692095B1 (en) Method, apparatus and computer program product for updating load balancer configuration data
US20220159104A1 (en) IPv4/IPv6 BRIDGE
US10826723B1 (en) Virtual network address space auto-migration
US8495190B2 (en) Providing access by a client application program over an internet protocol (IP) network to a server application program instance
CN109194525B (en) Network node configuration method and management node
JP2011507426A (en) Method, system, and program for failover in a host that simultaneously supports multiple virtual IP addresses across multiple adapters
CN112235175B (en) Access method and access device of network bridge equipment and network bridge equipment
EP3267633B1 (en) Information processing system, proxy server, address duplication prevention method, and computer-readable recording medium
WO2021188026A1 (en) Methods, host devices and computer program products for assigning communication ports
CN104079682A (en) Address translation method and device based on domain name system (DNS)
CN104717312A (en) Method and device for determining network resource access interfaces
CN114157633B (en) Message forwarding method and device
WO2022089147A1 (en) Method for acquiring address, apparatus and system
CN111614790B (en) Virtual machine address configuration system, method and device
US20030061462A1 (en) Memory expansion and enhanced system interaction using network-distributed memory mapping
CN111988153B (en) Network exception handling method and device and household electrical appliance
CN111262786B (en) Gateway control method, gateway device, electronic device and storage medium
CN113419810A (en) Data interaction method and device, electronic equipment and computer storage medium
CN113890867A (en) Communication address allocation method and device, electronic equipment and storage medium
CN117527763A (en) Network proxy method and related equipment

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: 20925247

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: 20925247

Country of ref document: EP

Kind code of ref document: A1