Assigning addresses in a communications network
09843646 · 2017-12-12
Assignee
Inventors
- Dinand Roeland (Sollentuna, SE)
- Michael Eriksson (Sollentuna, SE)
- Rashmi Purushothama (Sundbyberg, SE)
Cpc classification
H04L67/566
ELECTRICITY
H04L69/16
ELECTRICITY
International classification
Abstract
A method and apparatus for addressing a message sent from a proxy node to a peer node in a communications network. The proxy node receives from a host node a plurality of multipath messages. Each message of the plurality of multipath messages has an address. The proxy node then applies a rule to assign an address for a single flow message towards the peer node. The single flow message comprises each message of the plurality of multipath messages. The single flow message is then sent towards the peer node.
Claims
1. A method of addressing a message sent from a proxy node to a peer node, the method comprising, at the proxy node: receiving from a host node a plurality of multipath messages, each message of the plurality of multipath messages having an address; applying a rule to assign an address for a single flow message towards the peer node, the single flow message comprising the plurality of multipath messages, wherein the applying the rule comprises: determining addresses for each message of the plurality of multipath messages; selecting from the determined addresses the address for assigning to the single flow message towards the peer node, wherein the selecting is performed based on any of a type of network to which each address belongs, an expected life of each address, and a historical life of each address; and sending to an address assigning node an instruction not to release or re-use the address for the single flow message; and sending the single flow message towards the peer node.
2. The method according to claim 1, wherein the plurality of multipath messages comprises Multipath Transmission Control Protocol messages and the single flow message comprises a Transmission Control Protocol.
3. The method according to claim 1, further comprising, at the proxy node: determining an address for a first message of the plurality of multipath messages; assigning the determined address to the single flow message towards the peer node; and sending to an address assigning node an instruction not to release or re-use the address for the single flow message.
4. The method according to claim 1, wherein the determined addresses include at least one address expected to be assigned to the host.
5. The method according to claim 1, further comprising sending to an address assigning node an instruction not to release or re-use the selected address.
6. The method according to claim 1, further comprising: assigning a new address for the single flow message towards the peer node, the assigned address not being used for any of the plurality of multipath messages.
7. The method according to claim 6, wherein the assigned address is unique to a single host.
8. The method according to claim 1, further comprising, at the proxy node: performing network address translation on each message of the plurality of multipath messages.
9. A proxy node for use in a mobile communications network, the proxy node comprising: a first receiver for receiving from a host node a plurality of multipath messages, each message of the plurality of multipath messages having an address; a processor for applying a rule to assign an address for the host node for a single flow message towards a peer node, the single flow message comprising the plurality of multipath messages, wherein the applying the rule comprises determining addresses for each message of the plurality of multipath messages and selectins from the determined addresses an address to assign to the single flow message towards the Deer node, and wherein the selecting is performed based on any of the type of network to which each address belongs, the expected life of each address, and the historical life of each address; and a first transmitter for sending the single flow message towards the peer node.
10. The proxy node according to claim 9, wherein the plurality of multipath messages comprises Multipath Transmission Control Protocol messages and the single flow message comprises a Transmission Control Protocol.
11. The proxy node according to claim 9, wherein the processor is arranged to determine an address for a first message of the plurality of multipath messages and assign the determined address to the single flow message towards the peer node, the proxy node further comprising: a second transmitter for sending to an address assigning node an instruction not to release or re-use the address for the single flow message.
12. The proxy node according to claim 9, further comprising a second transmitter for sending to an address assigning node an instruction not to release or re-use the selected address.
13. The proxy node according to claim 9, wherein the processor is arranged to assign an address to the single flow message towards the peer node, the assigned address not being used for any of the plurality of multipath messages.
14. The proxy node according to claim 13, wherein processor is arranged to assign an address that is unique to a single host.
15. The proxy node according to claim 9, further comprising a network address translation function for performing network address translation on each message of the plurality of multipath messages.
16. A non-transitory computer-readable medium containing computer readable code means which, when run in a processor in a proxy node, causes the proxy node to perform a method of addressing a message sent from the proxy node to a peer node, the method comprising: receiving from a host node a plurality of multipath messages, each message of the plurality of multipath messages having an address; applying a rule to assign an address for a single flow message towards the peer node, the single flow message comprising the plurality of multipath messages, wherein the applying the rule comprises: determining addresses for each message of the plurality of multipath messages, selecting from the determined addresses the address for assigning to the single flow message towards the peer node, wherein the selecting is performed based on any of a type of network to which each address belongs, an expected life of each address, and a historical life of each address; and sending to an address assigning node an instruction not to release or re-use the address for the single flow message; and sending the single flow message towards the peer node.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
DETAILED DESCRIPTION
(13) The description below provides various ways in which a proxy node in a communications network (such as an MPTCP proxy node 3) can address a single flow (such as a TCP flow) towards the peer 4. Note that the description uses the term “address”, which may in one embodiment be interpreted as an IPv4 address. The ideas apply just as well to IPv6, in which case the term “IP prefix” is of the address. For the purposes of this description, the term address is equivalent to IP prefix or any other addressing mechanism in a communications network. Furthermore, the address may be any other type of address used to communicate between two nodes where the communication between the host and the proxy includes multipath subflows and the communication between the proxy and the peer is a single path flow. For example, the address may be a combination of an IP address and a TCP port.
(14) Furthermore, the procedures and apparatus described below use the example of the host being a 3GPP UE and the MPTCP proxy node 3 being provided by a 3GPP operator. However, it will be appreciated that the procedures and apparatus could apply to other types of network that use multipath communication flows between a host 1 and a proxy node 3, and a single path communication flow between the proxy node 3 and a peer 4. MPTCP is an exemplary embodiment of these types of communication flow.
(15) It will be appreciated that while the discussion below refers to addressing flows and subflows, the address is applied to packets within the flow. Furthermore, a flow may refer to any kind of passing of data between nodes, including the sending of a single message.
(16) One way to address the problem described above is for the MPTCP proxy node 3 to use the address 6 of the first MPTCP subflow of the TCP session for the single TCP session between the MPTCP proxy node 3 and the peer 4. This approach may, however, have a number of disadvantages.
(17) A first disadvantage is that the host 1 may use another path (in other words, another address) for the first MPTCP subflow of a second TCP session with the same peer 4. The result is that the peer 4 sees different addresses from the host 1 for different TCP flows.
(18) A second disadvantage is that, for the active TCP session, the MPTCP proxy node 3 can only continue to use the address 9 for the single TCP flow towards the peer 4 as long as it is assigned to the host 1. If the address 6 is released from the host 1, the host 1 needs to inform the MPTCP proxy node 3 to release the address, and so the entire TCP session is broken.
(19) According to a first embodiment, as illustrated in
(20) The address can only be used as long as it is assigned to the host 4. When the address is released from the host 4, the MPTCP proxy node 3 also no longer uses it. In order to inform the MPTCP proxy node 3 that the address can no longer be used, an interface is provided between the MPTCP proxy node 3 and the address assignment unit 5 of the host 1. The MPTCP proxy node may indicate to the address assignment unit 5 that the address cannot be released, or at least not be re-used, as long as the MPTCP proxy node 3 is still using that address.
(21) In the following example, host 1 is a 3GPP UE. The UE 1 acquires its addresses by setting up Packet Data Network (PDN) connections. According to the 3GPP specification, a PDN Gateway (PGW) 5 assigns the address. The UE 1 sets up two PDN connections; one via a Long Term Evolution (LTE) network, the other via a WLAN network. The UE 1 starts a number of TCP sessions. Each TCP session has two subflows, one over each PDN connection.
(22) Suppose the first MPTCP subflow of the first TCP session is setup via WLAN. The MPTCP proxy node 3 chooses a WLAN address for the TCP flow towards the peer 4. Now the UE 1 moves and loses WLAN coverage during the ongoing TCP sessions. This results in the loss of the WLAN subflows. After a certain period of time, another WLAN cell comes in reach and the UE 1 re-attaches to WLAN. The network does not implement any address preservation mechanism, so the UE 1 may receive a new address on WLAN. The UE 1 may add new WLAN subflows.
(23) The WLAN address of the UE 1 has now changed during ongoing TCP sessions. However, in this embodiment, the peer 4 does not see this address change because the MPTCP proxy node 3 continues to use the address of the initial subflow.
(24) If both PDN connections are routed via the same PGW, and the MPTCP proxy node 3 is co-located in that PGW product, then the PGW function interacts with the MPTCP proxy node 3 before assigning an address to a UE 1. The PGW will never assign an address to a second UE 1 that the MPTCP proxy node 3 is still using for the first UE 1.
(25) In this solution, the peer 4 will only see a single host address for the TCP flows. However, the peer 4 may still see a different host address for those TCP sessions where the host decided not to use MPTCP. The peer may also see a different host address for non-TCP traffic from the peer (e.g. UDP traffic).
(26) The procedures above are summarized in
(27) In a second exemplary embodiment, the MPTCP proxy node 3 chooses an address 9 to use based on prior knowledge.
(28) The method described above in the first embodiment requires an interface between the MPTCP proxy node 3 and the address assignment unit(s) 5 of the host 1. This interface is exploited further in the second embodiment. The MPTCP proxy node 3 queries addresses of the host 1 before or when the host 1 establishes the first MPTCP subflow for the first TCP session with a peer 4. The MPTCP proxy node 3 uses this knowledge to select a proper address for the first and subsequent TCP flows to the peer 4.
(29) Considering the example shown in
(30) If both PDN connections are routed via the same PGW, and the MPTCP proxy node 3 is co-located in that PGW product, then the PGW knows which addresses are available to the UE 1 on which access. The MPTCP proxy node 3 uses the UE's LTE address. Even if the UE 1 has no LTE address assigned (yet), for example because the UE 1 is not attached via LTE, the PGW may pre-allocate an LTE address for this UE 1.
(31) The procedures described above for the second embodiment are summarized in
(32) Note that the second embodiment is compatible with the first embodiment, in so far as the MPTCP proxy node 3 has an interface with the address assignment unit 5 and can request that the address assignment unit 5 does not release or re-use the address used between the MPTCP proxy node 3 and the peer 4.
(33) According to a third embodiment, as illustrated in
(34) Furthermore, even in the case where the MPTCP proxy node 3 is on the routing path between the host 1 and the peer 4, it may not be desired to let the MPTCP proxy node 3 use one of the host's 1 addresses. One reason for this could be that the MPTCP proxy node 3 is not able to prevent the release of an address of the host 1. For example, it may be difficult or impossible for the MPTCP proxy node 3 to interface to the host's 1 address assignment unit(s) 5, such as the case where the MPTCP proxy node 3 is not co-located in a PGW as assumed in the previous use cases.
(35) In this embodiment, the MPTCP proxy node 3 uses an address 9 towards the peer 4 that is different from all addresses used by the host 1. This address 9 may be used for multiple hosts simultaneously. Alternatively, this address 9 may be unique for a particular host, which allows the peer 4 to distinguish between different hosts.
(36) Consider the case where the MPTCP proxy node 3 is co-located in a Radio Access Network (RAN) node. In this example, a UE 1 sets up two PDN connections, one via LTE and one via WLAN. Each PDN connection is routed via a different PGW. Assume that the MPTCP proxy node 3 is co-located in a node in the RAN, such as a base station or Radio Network Controller (RNC). The UE 1 sets up a TCP session with two subflows, one via each PDN connection. The MPTCP proxy node 3 decides to use the LTE address. If the LTE PDN connection is released, then the MPTCP proxy node 3 will still need to use that address. Assume that the proxy has an interface to PGW1 of the LTE PDN connection, and instructs PGW1 not to re-assign the address to another UE. As the LTE PDN connection is released, traffic from the MPTCP proxy node 3 to the peer 4 will need to be routed via the WLAN PDN connection and PGW2. The source address of that traffic will still be the address of the released LTE PDN connection. The problem here is that, in the downlink, the peer 4 will use the address of the LTE PDN connection. That address topologically belongs to PGW1; but that PGW has already released the LTE PDN connection. It will not be able to route downlink traffic to the correct UE 1.
(37) Using a different address as described above solves this issue. The MPTCP proxy node 3 may acquire such an address by setting up a special PDN connection between MPTCP proxy node 3 and PGW.
(38) Note that the MPTCP proxy node 3 does not know beforehand if a peer 4 is MPTCP-capable or not. Suppose the peer 4 is MPTCP-capable, then it may be preferred not to use a MPTCP proxy node 3 at all but to allow end-to-end MPTCP between the host 1 and the peer 4. If such a scenario is preferred, then the MPTCP proxy node 3 does not strip the MPTCP options in the initial setup of the TCP session (i.e. the initial TCP SYN exchange). Instead, the MPTCP proxy node 3 allows the initial TCP SYN from host 1 to peer 4 pass unchanged. In the TCP SYN ACK from peer 4 to host 1, the MPTCP proxy node 3 concludes from the TCP options whether or not the peer 4 is MPTCP capable. Letting the MPTCP proxy node 3 pass the TCP SYN from host 1 to peer 4 unchanged would no longer be possible in the methods described above, as the MPTCP proxy node 3 may change the source address. If the peer 4 indicates MPTCP capability in the TCP SYN ACK, the MPTCP proxy node 3 knows it should not have changed the address. To overcome this problem, the MPTCP proxy node 3 refrains from sending the TCP SYN ACK to the host 1. Instead, it sends a TCP reset to the peer 4 and re-sends the original TCP SYN to the peer 4, but this time without changing the source address. The subsequent TCP SYN ACK will be sent back to the host 1.
(39) This is illustrated in the signalling diagram of
(40) A variant of this process is illustrated in
(41) Note that either or both of the techniques described in
(42) Note that for the embodiments described above, the peer 4 may see a different address for non-TCP traffic from a host 1 compared to the address used for TCP traffic from that same host 1. This may confuse the peer 4. One solution to this may be to let the MPTCP proxy node 3 do Network Address Translation (NAT) for non-TCP traffic as well (e.g. User Datagram Protocol, UDP, traffic).
(43) For example, assume the MPTCP proxy node 3 is co-located in a PGW as described in the second embodiment. Many PGWs already today implement a NAT function. If the MPTCP proxy node 3 is co-located in the PGW, that NAT function may be extended to do a n:1 network address translation in combination with the MPTCP proxy function.
(44) All of a UE's 1 PDN connections would be translated to a single address. This way, not only handover without address preservation is concealed to the peer 4, the peer 4 will also be unaware that different traffic types (e.g. UDP and TCP) originate from different interfaces of the UE 1.
(45) The embodiments described above are summarized in
(46)
(47) In any of the embodiments described above, the MPTCP proxy node 3 may be provided with a second transmitter 13 arranged to send an instruction message to the address assignment unit 5. The instruction message instructs the address assignment unit 5 not to release or re-use the address that is being used for the TCP single flow sent towards the peer 4. This transmitter 13 may be subsequently used to allow the address assignment unit 5 to release or re-use the address once the TCP session with the peer 4 has ended.
(48) A non-transitory computer readable medium in the form of a memory 15 may also be provided. This can be used to store rules 16 used by the processor 11 to assign an address to the TCP single flow.
(49) The MPTCP proxy node 3 may also be provided with a NAT function 14 as described above for performing NAT on the flows sent between the host 1 and the peer 4.
(50) The memory 15 may also be used for storing a computer program 17 which, when executed by the processor 11, causes the MPTCP proxy node 3 to behave as described above. Note that the program may be obtained from a remote source 18, such as a data carrier. Note also that the rules 16 and the program 17 are shown as being stored in a memory 15 located at the MPTCP proxy node 3, but it will be appreciated that they may be obtained from remote sources, or may be stored in different physical memories.
(51) The embodiments described above illustrate different variants of the address used by the MPTCP proxy node 3 towards a peer 4. These variants can be used to optimize the address assignment, in particular if the MPTCP proxy node 3 is used in a telecom operator's network where a peer is not MPTCP-capable, can only send and receive single flow TCP signalling. The embodiments described above allow an address to be assigned to single flow TCP signalling where a host is MPTCP-capable and the peer is not.
(52) The skilled person will appreciate that various modifications may be made to the above described embodiments. For example, many different examples are provided above. It will be appreciated that in some circumstances, combinations of those examples may be used.
(53) The following abbreviations have been used in this specification:
(54) 3GPP 3rd Generation Partnership Project
(55) E-UTRAN Evolved Universal Terrestrial Radio Access Network
(56) GERAN GSM EDGE Radio Access Network
(57) IETF Internet Engineering Task Force
(58) IP Internet Protocol
(59) LAN Local Area Network
(60) LTE Long-term Evolution
(61) MPTCP Multi-path TCP
(62) NAT Network Address Translator
(63) PDN Packet Data Network
(64) PGW PDN Gateway
(65) RAN Radio Access Network
(66) RNC Radio Network Controller
(67) TCP Transmission Control Protocol
(68) UDP User Datagram Protocol
(69) UE User Equipment
(70) UTRAN Universal Terrestrial Radio Access Network
(71) WLAN Wireless LAN