WO2020048622A1 - A method, apparatus & computer program - Google Patents
A method, apparatus & computer program Download PDFInfo
- Publication number
- WO2020048622A1 WO2020048622A1 PCT/EP2018/074225 EP2018074225W WO2020048622A1 WO 2020048622 A1 WO2020048622 A1 WO 2020048622A1 EP 2018074225 W EP2018074225 W EP 2018074225W WO 2020048622 A1 WO2020048622 A1 WO 2020048622A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- routing path
- alternative
- data flow
- network layer
- entity
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
Definitions
- the present application relates to a method, apparatus, system and computer program and in particular but not exclusively to a method and apparatus for use in a network layer of a communication network.
- a device may have access to two or more communication networks based on different technologies for accessing application services.
- the communication technologies are characterized by a coupling between for example a radio access stratum and a network core.
- a method comprising causing a first data flow to be transmitted from a first network layer entity to a second network layer entity, wherein the first data flow is configured to be transmitted using at least a first routing path and an alternative routing path, wherein when at least a part of the first data flow is transmitted via the alternative routing path, the at least part of the first data flow comprises an indication of the first routing path.
- the first routing path may comprise a first source address and a first destination address and the alternative routing path comprises an alternative source address and an alternative destination address.
- the indication of the first routing path may comprise an indication of at least one of the first source address and the first destination address.
- the at least part of the first data flow may comprise at least one data packet, the at least one data packet comprising a source address field, a destination address field, an alternative source address field, and an alternative destination address field.
- the alternative source address field may comprise an indication of the first source address.
- the alternative destination address field may comprise an indication of the first destination address.
- the alternative routing path may be determined based on one or more routing policies.
- the one or more routing policies may comprise a load balancing policy.
- the first routing path may utilise a first radio access technology and the alternative routing path may utilise a second radio access technology.
- the method may comprise causing at least one first message to be transmitted from the first network layer entity to the second network layer entity, the at least one first message comprising a plurality of network layer addresses of the first network layer entity, wherein at least two of the plurality of network layer addresses are associated with different routing paths.
- a respective first message may be transmitted from each of the at least one network layer addresses of the first network layer entity.
- the at least one message may comprise a first key.
- the method may comprise receiving, from said second network entity, at least one second message.
- the at least one second message may comprise address information of the second network entity.
- the at least one second message may comprise a second key.
- the method may comprise determining whether said second key matches said first key; and in response to determining said second key matches said first key, storing in association the address information of said second network entity.
- a method comprising receiving at a second network entity from a first network entity a first data flow, wherein the first data flow is configured to be received using at least a first routing path and an alternative routing path, wherein when at least a part of the first data flow is received via the alternative routing path, the at least a part of the alternative routing path comprises an indication of the first routing path; and causing the at least a part of the first data flow to be delivered to at least one upper layer in dependence on the indication of the first routing path.
- the at least a part of the first data flow may be delivered in response to determining the first routing path and the alternative routing path are associated.
- the at least a part of the first data flow may comprise at least one data packet.
- the at least one data packet may comprise a source address field, a destination address field, an alternative source address field, and an alternative destination address field.
- the alternative source address field may comprise an indication of the first source address.
- the alternative destination address field may comprise an indication of the first destination address.
- Causing the at least a part of the first data flow to be delivered to in dependence on the indication of the first routing path may comprise determining that the indication of the first routing path is valid.
- Determining validity may comprise determining that the alternative source address and the first source address are associated.
- the method may comprise receiving at least one first message from the first network layer entity at the second network layer entity, the at least one first message comprising a plurality of network layer addresses of the first network layer entity.
- the at least one message may comprise a first key.
- the method may comprise associating the received plurality of addresses of the first network layer entity.
- the method may comprise storing the association of network layer addresses of the first network layer entity.
- the method may comprise transmitting, to the first network layer entity, at least one second message.
- Each of said at least one second message may be addressed to a respective one of said plurality of network layer addresses of the first network layer entity.
- the at least one second message may comprise address information of the second network entity.
- the at least one second message may comprise a second key.
- the second key may match said first key.
- the addresses may comprise internet protocol addresses.
- an apparatus comprising means for causing a first data flow to be transmitted from a first network layer entity to a second network layer entity, wherein the first data flow is configured to be transmitted using at least a first routing path and an alternative routing path, wherein when at least a part of the first data flow is transmitted via the alternative routing path, the at least part of the first data flow comprises an indication of the first routing path.
- the first routing path may comprise a first source address and a first destination address and the alternative routing path comprises an alternative source address and an alternative destination address.
- the indication of the first routing path may comprise an indication of at least one of the first source address and the first destination address.
- the at least part of the first data flow may comprise at least one data packet, the at least one data packet comprising a source address field, a destination address field, an alternative source address field, and an alternative destination address field.
- the alternative source address field may comprise an indication of the first source address.
- the alternative destination address field may comprise an indication of the first destination address.
- the alternative routing path may be determined based on one or more routing policies.
- the one or more routing policies may comprise a load balancing policy.
- the first routing path may utilise a first radio access technology and the alternative routing path may utilise a second radio access technology.
- the apparatus may comprise means for causing at least one first message to be transmitted from the first network layer entity to the second network layer entity, the at least one first message comprising a plurality of network layer addresses of the first network layer entity, wherein at least two of the plurality of network layer addresses are associated with different routing paths.
- a respective first message may be transmitted from each of the at least one network layer addresses of the first network layer entity.
- the at least one message may comprise a first key.
- the apparatus may comprise means for receiving, from said second network entity, at least one second message.
- the at least one second message may comprise address information of the second network entity.
- the at least one second message may comprise a second key.
- the apparatus may comprise means for determining whether said second key matches said first key; and in response to determining said second key matches said first key, storing in association the address information of said second network entity.
- an apparatus comprising means for receiving at a second network entity from a first network entity a first data flow, wherein the first data flow is configured to be received using at least a first routing path and an alternative routing path, wherein when at least a part of the first data flow is received via the alternative routing path, the at least a part of the alternative routing path comprises an indication of the first routing path; and causing the at least a part of the first data flow to be delivered to at least one upper layer in dependence on the indication of the first routing path.
- the at least a part of the first data flow may be delivered in response to determining the first routing path and the alternative routing path are associated.
- the at least a part of the first data flow may comprise at least one data packet.
- the at least one data packet may comprise a source address field, a destination address field, an alternative source address field, and an alternative destination address field.
- the alternative source address field may comprise an indication of the first source address.
- the alternative destination address field may comprise an indication of the first destination address.
- the means for causing the at least a part of the first data flow to be delivered to in dependence on the indication of the first routing path may comprise means for determining that the indication of the first routing path is valid.
- the means for determining validity may comprise means for determining that the alternative source address and the first source address are associated.
- the apparatus may comprise means for receiving at least one first message from the first network layer entity at the second network layer entity, the at least one first message comprising a plurality of network layer addresses of the first network layer entity.
- the at least one message may comprise a first key.
- the apparatus may comprise means for associating the received plurality of addresses of the first network layer entity.
- the apparatus may comprise means for storing the association of network layer addresses of the first network layer entity.
- the apparatus may comprise means for transmitting, to the first network layer entity, at least one second message.
- Each of said at least one second message may be addressed to a respective one of said plurality of network layer addresses of the first network layer entity.
- the at least one second message may comprise address information of the second network entity.
- the at least one second message may comprise a second key.
- the second key may match said first key.
- the addresses may comprise internet protocol addresses.
- an apparatus comprising at least one processor and at least one memory, the at least one memory comprising computer executable instructions, which when run by the at least one processor, cause the at least one processor to transmit, from a first network layer entity to a second network layer entity, wherein the first data flow is configured to be transmitted using at least a first routing path and an alternative routing path, wherein when at least a part of the first data flow is transmitted via the alternative routing path, the at least part of the first data flow comprises an indication of the first routing path.
- the first routing path may comprise a first source address and a first destination address and the alternative routing path comprises an alternative source address and an alternative destination address.
- the indication of the first routing path may comprise an indication of at least one of the first source address and the first destination address.
- the at least part of the first data flow may comprise at least one data packet, the at least one data packet comprising a source address field, a destination address field, an alternative source address field, and an alternative destination address field.
- the alternative source address field may comprise an indication of the first source address.
- the alternative destination address field may comprise an indication of the first destination address.
- the alternative routing path may be determined based on one or more routing policies.
- the one or more routing policies may comprise a load balancing policy.
- the first routing path may utilise a first radio access technology and the alternative routing path may utilise a second radio access technology.
- the at least one processor may cause the apparatus to cause at least one first message to be transmitted from the first network layer entity to the second network layer entity, the at least one first message comprising a plurality of network layer addresses of the first network layer entity, wherein at least two of the plurality of network layer addresses are associated with different routing paths.
- a respective first message may be transmitted from each of the at least one network layer addresses of the first network layer entity.
- the at least one message may comprise a first key.
- the at least one processor may cause the apparatus to receive, from said second network entity, at least one second message.
- the at least one second message may comprise address information of the second network entity.
- the at least one second message may comprise a second key.
- the at least one processor may cause the apparatus to determine whether said second key matches said first key; and in response to determining said second key matches said first key, store in association the address information of said second network entity.
- an apparatus comprising at least one processor and at least one memory, the at least one memory comprising computer executable instructions, which when run by the at least one processor, cause the at least one processor to: receive, at a second network entity from a first network entity a first data flow, wherein the first data flow is configured to be received using at least a first routing path and an alternative routing path, wherein when at least a part of the first data flow is received via the alternative routing path, the at least a part of the alternative routing path comprises an indication of the first routing path; and deliver the at least a part of the first data flow in dependence on the indication of the first routing path.
- the at least a part of the first data flow may be delivered in response to determining the first routing path and the alternative routing path are associated.
- the at least a part of the first data flow may comprise at least one data packet.
- the at least one data packet may comprise a source address field, a destination address field, an alternative source address field, and an alternative destination address field.
- the alternative source address field may comprise an indication of the first source address.
- the alternative destination address field may comprise an indication of the first destination address.
- the at least one processor may be configured to cause the apparatus to cause the at least a part of the first data flow to be delivered to in dependence on the indication of the first routing path may comprise determining that the indication of the first routing path is valid.
- Determining validity may comprise determining that the alternative source address and the first source address are associated.
- the at least one processor may be configured to cause the apparatus to receive at least one first message from the first network layer entity at the second network layer entity, the at least one first message comprising a plurality of network layer addresses of the first network layer entity.
- the at least one message may comprise a first key.
- the at least one processor may cause the apparatus to associate the received plurality of addresses of the first network layer entity.
- the at least one processor may cause the apparatus to store in association the network layer addresses of the first network layer entity.
- the at least one processor may cause the apparatus to transmit, to the first network layer entity, at least one second message.
- Each of said at least one second message may be addressed to a respective one of said plurality of network layer addresses of the first network layer entity.
- the at least one second message may comprise address information of the second network entity.
- the at least one second message may comprise a second key.
- the second key may match said first key.
- the addresses may comprise internet protocol addresses.
- a computer readable medium for causing an apparatus to perform causing a first data flow to be transmitted from a first network layer entity to a second network layer entity, wherein the first data flow is configured to be transmitted using at least a first routing path and an alternative routing path, wherein when at least a part of the first data flow is transmitted via the alternative routing path, the at least part of the first data flow comprises an indication of the first routing path.
- the first routing path may comprise a first source address and a first destination address and the alternative routing path comprises an alternative source address and an alternative destination address.
- the indication of the first routing path may comprise an indication of at least one of the first source address and the first destination address.
- the at least part of the first data flow may comprise at least one data packet, the at least one data packet comprising a source address field, a destination address field, an alternative source address field, and an alternative destination address field.
- the alternative source address field may comprise an indication of the first source address.
- the alternative destination address field may comprise an indication of the first destination address.
- the alternative routing path may be determined based on one or more routing policies.
- the one or more routing policies may comprise a load balancing policy.
- the first routing path may utilise a first radio access technology and the alternative routing path may utilise a second radio access technology.
- the computer readable medium may cause the apparatus to cause at least one first message to be transmitted from the first network layer entity to the second network layer entity, the at least one first message comprising a plurality of network layer addresses of the first network layer entity, wherein at least two of the plurality of network layer addresses are associated with different routing paths.
- a respective first message may be transmitted from each of the at least one network layer addresses of the first network layer entity.
- the at least one message may comprise a first key.
- the computer readable medium may cause the apparatus to receive, from said second network entity, at least one second message.
- the at least one second message may comprise address information of the second network entity.
- the at least one second message may comprise a second key.
- the computer readable medium may cause the apparatus to determine whether said second key matches said first key; and in response to determining said second key matches said first key, storing in association the address information of said second network entity.
- a computer readable medium for causing the apparatus to perform receiving at a second network entity from a first network entity a first data flow, wherein the first data flow is configured to be received using at least a first routing path and an alternative routing path, wherein when at least a part of the first data flow is received via the alternative routing path, the at least a part of the alternative routing path comprises an indication of the first routing path; and causing the at least a part of the first data flow to be delivered to at least one upper layer in dependence on the indication of the first routing path.
- the at least a part of the first data flow may be delivered in response to determining the first routing path and the alternative routing path are associated.
- the at least a part of the first data flow may comprise at least one data packet.
- the at least one data packet may comprise a source address field, a destination address field, an alternative source address field, and an alternative destination address field.
- the alternative source address field may comprise an indication of the first source address.
- the alternative destination address field may comprise an indication of the first destination address.
- Causing the at least a part of the first data flow to be delivered to in dependence on the indication of the first routing path may comprise determining that the indication of the first routing path is valid.
- Determining validity may comprise determining that the alternative source address and the first source address are associated.
- the computer readable medium may cause the apparatus to receive at least one first message from the first network layer entity at the second network layer entity, the at least one first message comprising a plurality of network layer addresses of the first network layer entity.
- the at least one message may comprise a first key.
- the method may comprise associating the received plurality of addresses of the first network layer entity.
- the method may comprise storing the association of network layer addresses of the first network layer entity.
- the method may comprise transmitting, to the first network layer entity, at least one second message.
- Each of said at least one second message may be addressed to a respective one of said plurality of network layer addresses of the first network layer entity.
- the at least one second message may comprise address information of the second network entity.
- the at least one second message may comprise a second key.
- the second key may match said first key.
- the addresses may comprise internet protocol addresses.
- a non-transitory computer readable storage medium for causing an apparatus to perform a method according to any of the aspects mentioned above.
- Figure 1 shows a schematic diagram of an example communication system comprising a plurality of base stations and a plurality of communication devices
- Figure 2 shows a schematic diagram of an example mobile communication device
- Figure 3 shows a schematic diagram of a protocol stack
- Figure 4 illustrates a method according to some embodiments
- Figure 5 shows a schematic diagram of a data packet according to some embodiments
- Figure 6 shows a first ICMP signalling exchange according to some embodiments
- Figure 7 shows a second ICMP signalling exchange according to some embodiments
- Figure 8 shows an example scenario of multi-connected and single connected network layer routing entities
- Figure 9 shows an example data redirection in the example scenario of Figure 8.
- Figure 10 shows an example scenario of multi-connected network layer routing entities
- Figure 1 1 shows an example data redirection in the example scenario of Figure 10
- Figure 12 shows an apparatus in a control entity.
- a wireless communication system 100 such as that shown in figure 1 , mobile communication devices or user equipment (UE) 102, 104, 105 are provided wireless access via at least one access node.
- the access node by be a base station or similar wireless transmitting and/or receiving node or point.
- a base station is referred to as an eNodeB (eNB) in LTE.
- eNB eNodeB
- Base stations are typically controlled by at least one appropriate controller apparatus, so as to enable operation thereof and management of mobile communication devices in communication with the base stations.
- the controller apparatus may be located in a radio access network (e.g. wireless communication system 100) or in a core network (CN) (not shown) and may be implemented as one central apparatus or its functionality may be distributed over several apparatus.
- the controller apparatus may be part of the base station and/or provided by a separate entity such as a Radio Network Controller.
- control apparatus 108 and 109 are shown to control the respective macro level base stations 106 and 107.
- base stations 106 and 107 are shown as connected to a wider communications network 1 13 via gateway 112.
- a further gateway function may be provided to connect to another network.
- Smaller level base stations 1 16, 1 18 and 120 may also be connected to the network 1 13, for example by a separate gateway function and/or via the controllers of the macro level stations.
- the base stations 1 16, 118 and 120 may be pico or femto level base stations or the like.
- stations 116 and 1 18 are connected via a gateway 1 11 whilst station 120 connects via the controller apparatus 108.
- the smaller stations may not be provided.
- Such a communication device may be a user equipment (UE) or terminal.
- An appropriate communication device may be provided by any device capable of sending and receiving radio signals.
- Non-limiting examples comprise a mobile station (MS) or mobile device such as a mobile phone or what is known as a’smart phone’, a computer provided with a wireless interface card or other wireless interface facility (e.g., USB dongle), personal data assistant (PDA) or a tablet provided with wireless communication capabilities, a machine type communications device or any combinations of these or the like.
- a communication device may provide, for example, communication of data.
- the data may be for carrying data or communications such as voice, electronic mail (email), text message, multimedia, and so on.
- the device 200 may receive signals over an air or radio interface 207 via appropriate apparatus for receiving and may transmit signals via appropriate apparatus for transmitting radio signals.
- transceiver apparatus is designated schematically by block 206.
- the transceiver apparatus 206 may be provided for example by means of a radio part and associated antenna arrangement.
- the antenna arrangement may be arranged internally or externally to the mobile device.
- the device is typically provided with at least one data processing entity 201 , at least one memory 202 and other possible components 203 for use in software and hardware aided execution of tasks it is designed to perform, including control of access to and communications with access systems and other communication devices.
- the data processing, storage and other relevant control apparatus can be provided on an appropriate circuit board and/or in chipsets. This feature is denoted by reference 204.
- a user may control the operation of the device by means of a suitable user interface such as key pad 205, voice commands, touch sensitive screen or pad, combinations thereof or the like.
- a suitable user interface such as key pad 205, voice commands, touch sensitive screen or pad, combinations thereof or the like. This user interface may be optional.
- a display 208, a speaker and a microphone can be also provided. One or more of these may be optional.
- the communication devices 102, 104, 105 may access a plurality of different communication system based on various different respective access techniques.
- the device may be configured to communicate via multiple radio access technologies, such as, but not limited to, long-term evolution (LTE), Wi-Fi, 5G New Radio (NR), digital subscriber line (DSL) and wireless gigabit (Wigig).
- LTE long-term evolution
- Wi-Fi Wireless Fidelity
- 5G New Radio NR
- DSL digital subscriber line
- Wigig wireless gigabit
- the choice of a particular communication network in a multi-connectivity setting may determine the application performance because different technologies may exhibit benefits and limitations in different scenarios. For example, Wi-Fi networks may offer high capacity at low costs but may degrades under congestion. On the other hand, a network such as the 4G LTE network may offer more limited capacity at higher costs but maintain predictable services even in multi-user scenarios.
- the stack may comprise five layers L1 -5.
- the application layer (L5) may provide user interfaces and support for applications and services such as email.
- the application layer may be considered to be the layer where data is created.
- the transport layer (L4) may provide end-to-end communication to transport messages originating in the application layer between application end points. These end points may be on either the same host device, or on different devices.
- the network layer (L3) may provide routing of data from a source location or source device on the network to a target location or target device on the network.
- the link layer (L2) may provide support to move a data packet from one node in a network to the next node in the network along a given routing path.
- the physical layer (L1 ) may provide the physical means or hardware for moving providing communication.
- one or more layers may be implemented by one or more of hardware, circuitry, and software.
- one or more layers may be implemented by an apparatus comprising at least one processor, at least one memory and computer executable code which runs on said at least one processor.
- Routing data through a network from a source application or device to a target application or device may be carried out by splitting the data into multiple data flows which may be sent via multiple alternative paths through the network.
- Data flow splitting may in some embodiments provide one or more benefits such as increased bandwidth, increased security, and increased fault tolerance.
- L5 application layer
- MPTCP multi-path transmission control protocol
- TCP-based applications UDP-(user datagram protocol) based applications may not benefit from this approach.
- Network layer (L3) solutions may use loose IP source routing options, which may be used for data re-direction. However this may not be practical for use, for example, in local area networks with firewalls due to the possibility of unauthorized access and firewall breaches by malicious agents using specific data routes as well as network denial-of-service attack by means of packet“bouncing”.
- Lower-level multi-path splits may be possible but may be technology specific as they build up on medium access (MAC) properties (e.g., LTE packet data convergence protocol (PDCP) for LTE-wireless local area network (WLAN) aggregation (LWA) or LTW-WLAN radio level integration with internet protocol security (IPsec) tunnel (LWIP) solutions).
- MAC medium access
- PDCP packet data convergence protocol
- WLAN wireless local area network
- IPsec internet protocol security tunnel
- Some embodiments may perform well in a wide range of possible scenarios.
- Some embodiments may provide a framework that may allow for flexibly selecting a good, for example the best, combination of radio access and core network paths for application data packet delivery.
- some embodiments may use both Wi-Fi uplink and downlink in uncongested scenarios, whereas in congested scenarios, scheduled LTE uplink access combined with WiFi downlink may be used to avoid capacity degradation and delay increase due to Wi-Fi uplink- downlink contention.
- a network layer (L3) routing entity may split an application data flow (for example, WebEx or Skype or any other suitable application flow) into two or more data sub flows.
- Each data sub flow may comprise at least one data packet.
- Each data sub flow may be delivered via a different radio access technology.
- the communications device may be equipped with the capability of using a plurality of radio access technologies.
- a first network layer (L3) routing entity may perform valid internet protocol (IP) address determination. That is to say, a network layer routing entity may identify valid IP information for multi-path communications. This may be using traffic monitoring and/or data exchange. For example, this may be by using passive extraction of valid IP addresses from legacy MCTCP signalling, and/or may be by active exchange of IP address information based on ICMP signalling.
- IP internet protocol
- the first network layer (L3) routing entity may perform data flow splitting and/or redirection.
- the network layer routing entity may re-direct a data flow, or part of a data flow (a data sub flow), from a first path (or paths) to an alternative path (or paths). This may be based on a given routing policy.
- the network layer routing entity may indicate IP information of the original path (or paths).
- the routing policy may, for example, be related to load balancing objectives.
- a second network layer (L3) routing entity may perform data flow reassembly. This network layer routing entity may revert any redirected traffic back to the original path (or paths) if it is indicated that IP information on a current or previous path is valid. This may ensure secure networking without the vulnerabilities similar to loose and strict IP source routing.
- Some embodiments may provide multi-path (that is two or more paths) communications for implementing load balancing between multiple (that is two or more) data delivery paths and/or core networks.
- downlink traffic may be sent only over 5G New Radio (NR) whenever there is a good 5G NR coverage to supplement 4G capacity, but the uplink traffic such as TCP acknowledgements (ACKs) may always be re-directed to the 4G LTE radio access if it has better and more consistent uplink coverage than the high-frequency 5G NR.
- NR 5G New Radio
- ACKs TCP acknowledgements
- downlink data may be routed over wide-band Wi-Fi but the uplink data may be offloaded to 4G LTE to prevent the uplink/downlink contention in the Wi-Fi medium access layer.
- Wi-Fi capacity may be increased by up to 400% in some situations.
- FIG. 12 shows an example of an apparatus 1200 in a network layer routing entity.
- the apparatus 1200 comprises at least one memory 1201 , at least one data processing unit 1202, 1203 and an input/output interface 1204.
- the apparatus 1200 can be configured to execute an appropriate software code to provide functions.
- the apparatus 1200 may be included in a chipset apparatus. In some embodiments, there may be valid IP address determination.
- the identifying of valid IP addresses for multi-path communications may comprise using relevant IP information. In some embodiments, this may comprise using the IP addresses of one or both of the communication path end-points.
- a network layer routing entity may use one or more of the following three methods to determine the relevant IP information:
- Peer-to-peer communications - valid IP addresses may be exchanged directly between network layer routing entities.
- Standard internet control message protocol (ICMP) signalling may be used, as will be described in more detail later;
- Third-part notification - valid IP addresses may be signalled explicitly to network layer routing entities by relevant network nodes.
- these network nodes may comprise one or more of dynamic host configuration protocol (DHCP) servers, network address translators (NATs), port address translators (PATs), and load balancers;
- DHCP dynamic host configuration protocol
- NATs network address translators
- PATs port address translators
- load balancers load balancers
- Data flow inspection - a network layer routing entity may extract valid IP addresses from packet headers of multi-path traffic. For example, this may comprise parsing of multi- path TCP (MPTCP) messages.
- the messages may be handshake messages. This may be in one or more of a‘MPTCP-CAPABLE’ and a‘MPTCP-JOIN’ phase.
- peer-to-peer communication of valid IP addresses may utilise ICMP signalling.
- a network layer routing entity may employ a client-server model for exchanging the vectors of their valid IP addresses. To traverse middle-boxes such as N(P) AT seamlessly, I ICMP ECHO REQUEST and ICMP ECHO REPLY packets with a payload specific to the needs of IP address exchange may be used.
- an ICMP data packet 500 may comprise one or more of an identifier field 502, a key field 504, a type field 506, and a message field 508. Some embodiments are provided with all of these fields.
- the identifier field 502 may be used to distinguish ICMP ECHO packets designated for IP address exchange from other ICMP ECHO packets.
- the key field 504 may carry authentication keys. These keys may be generated in any suitable manner. For example, the keys may be generated randomly or in a secure manner. The generation may be carried out in any suitable way such as but not limited to, a Diffie-Hellman algorithm.
- the type field 506 may indicate the message type.
- the type field 506 may comprise one of the following:
- Advertise (ADV) - an indication of an initial message of an IP exchange process; Accept (ACCEPT) - a response to an initiation message;
- Add address (ADD ADR) - an addition of an IP address (or addresses);
- Remove address (REM ADR) - a removal of an IP address (or addresses).
- the message field 508 may carry variable length IP address information.
- the length of the message field 508 may be specified.
- the length may be specified by the first n bytes of the message field 508.
- n may be any suitable value.
- n may be 2.
- n may be larger or smaller than 2. It should be appreciated that the length may be provided in any suitable location in in the message field, other than at the beginning of the message field.
- Figure 6 shows a first ICMP signalling exchange according to some embodiments.
- the client 602 may comprise a first network layer routing entity, and the server 604 may comprise a second network layer routing entity.
- the client 602 may already know the IP address or addresses of the server 604. For example, this address may be known from domain name server (DNS) resolution.
- DNS domain name server
- the client 602 may send an ICMP ECHO REQUEST message from each valid IP address of the client 602 to the server 604.
- Figure 7 shows a second ICMP signalling exchange according to some embodiments.
- the client 702 may comprise a network layer routing entity, and the server 704 may comprise another network layer routing entity.
- the client 702 may have no prior knowledge of the IP address or addresses of the server 704. This may be the case, for example, in data centres and computing clusters.
- the client 702 may send an ICMP ECHO REQUEST message from each valid IP address of the client 702 to the server 704.
- the client 702 may send an ICMP ECHO REQUEST message to the server 704.
- the message field 508 may list each valid IP address of the client 702.
- the server 704 may send an ICMP ECHO ACCEPT message to the client 702.
- the server may store the received valid IP addresses of the client in memory, in for example an address list.
- the server may subsequently send an ICMP ECHO ADD ADR message to each IP address of the client specified in the address list using the same key in the key field 504 as initially used by the client 702. This may be performed for each active IP address of the server.
- an ICMP ECHO ACCEPT message may be sent to the client 702 from a single IP address of the server 704.
- the message field of the ICMP ECHO ACCEPT message may contain a list of all valid IP addresses of the server 704.
- the client 702 may associate the source IP of the given message with the first known IP address of the server 704.
- the client 702 may then acknowledge the association of the source IP and the first known IP by transmitting an ICMP ECHO ADV message to the server 704 using the same key in the key field 504 as was used in the given ADD ADR message.
- a method comprising causing at least one first message to be transmitted from a first network layer entity to a second network layer entity.
- the at least one first message may comprise a plurality of network layer addresses of the first network layer entity. At least two of the network layer addresses may be associated with a different routing path.
- a method comprising receiving at least one first message from the first network layer entity at the second network layer entity.
- the at least one first message may comprise a plurality of network layer addresses of the first network layer entity.
- the method may comprise associating the received plurality of addresses of the first network layer entity. In some embodiments, the association may be stored.
- the at least one first message may be transmitted from each network layer address of the first network layer entity.
- the at least one first message may comprise a key.
- the first network layer routing entity may signal to the second network layer routing entity all valid IP addresses of the first network layer routing entity. In some embodiments, this may be achieved by sending a message from each valid IP address of the first network layer routing entity to the second network layer routing entity. In some embodiments, this may be achieved by sending a single message from a single IP address of the first network layer routing entity to the second network layer routing entity, where the single message comprises a list of all valid IP addresses of the first network layer routing entity.
- a method comprising transmitting, by the second network layer entity to the first network layer entity, at least one second message.
- a method comprising receiving, from a second network layer entity at a first network layer entity, at least one second message.
- the received at least one second message may comprise address information of the second network layer entity.
- the at least one second message may comprise a second key.
- the method may comprise determining that the second key matches the first key.
- the first network layer entity in response to receiving the at least one second message, may determine whether the second key matches the first key. In response to determining that the second key matches the first key, the first network layer entity may store in association the address information of the second network layer entity.
- the second network layer routing entity may make the first network layer routing entity aware of ail valid IP addresses of the second network layer routing entity by sending a list of each valid IP address of the second network layer routing entity to each valid IP address of the first network layer routing entity.
- a source address of the REQUEST message indicated in the IP header of the message may be implicitly considered as an advertised address, and the server may associate the source address with any subsequently advertised addresses having the same key.
- the client 602, 702 may use a similar signalling method as described above and using an ADR REM flag in the Type field 506) in order to remove an address.
- the server 604, 704 and/or client 602, 702 may associate and/or add or remove IP addresses of the NAT from the IP header. This may be on the assumption that the NAT does not interfere with the payload of the ICMP packet, in some embodiments.
- failure of the IP address exchange signalling described above with relation to Figure 6 and Figure 7 may be detected.
- one of the client and the server not supporting the protocol for the exchange of valid IP addresses, or a particular version of the protocol used may be detected from invalid payload in a handshake response.
- only one of the client or the server associates valid IP addresses with its peer may be detected by determining data packets being sent in only one direction.
- both the client and the server may be any suitable network layer routing entity.
- some embodiments may be data flow splitting and re-direction.
- some embodiments may extend the IP protocol in accordance with internet engineering task force (IETF) multiple access management services (MAMS) and Multi-X standards and provide two additional IP header options - alternative source and alternative destination.
- IETF internet engineering task force
- MAMS multiple access management services
- Multi-X Multi-X
- the original source/destination IP address may be appended to a proposed alternative source/destination option of the data packet IP header respectively.
- a source network layer routing entity may determine that a data flow is to be routed via an alternative routing path. In some embodiments, the source network layer routing entity may also determine that the data flow is to be split, and that different sub flows are to be sent via different routing paths.
- the alternative source option may indicate a change in source IP address due to the source network layer routing entity determining to reroute the data flow (or sub flow). This may cause the original source IP address to be appended to the alternative source option of a data packet IP header, while the source IP address associated with the new routing path may be used in the source IP address field of the data packet.
- a source network layer routing entity may change the destination IP address when rerouting a data flow (or sub flow).
- the original destination IP address may be appended to the alternative destination option of the data packet IP header, while the destination IP address associated with the new routing path may be used in the destination IP address field of the data packet.
- the data flow, or part of the data flow may be delivered to at least one upper layer.
- the data flow may be delivered to an application layer. Delivering the data flow or part of the data flow may be dependent on address information contained within the data flow. That is to say, delivering the at least part of the data flow to at least one upper layer may be performed in dependence on an indication of the first routing path.
- FIG. 8 A first example case is shown in Figure 8 and Figure 9.
- a first network layer routing entity 802 is connected over two subnetworks 804, 806 having IP address ranges 10.x and 11.x to a gateway device 808.
- the gateway device 808 relays data to a second network layer routing entity 810 over a subnetwork 812 with IP address ranges 9.x.
- the first network layer routing entity 802 may be a client device such as a mobile phone.
- the second network layer routing entity 810 may be a traffic aggregation proxy or application server.
- the gateway device 808 may be a NAT router.
- Figure 9 shows a data flow redirection of the example case shown in Figure 8.
- the client device network socket may bind to the wireless local area network (WLAN) 1 interface in the link layer.
- WLAN wireless local area network
- Link selection logic may determine a better routing path for data packets, which may be over the WLAN0 interface.
- the WLAN0 interface is associated with a different IP source address, more specifically 10.2.
- the alternative source (alt src) option of each data packet is set to the original source IP address (11.2) before each data packet is transmitted in order to inform the gateway about the change in source IP address.
- the gateway may correctly revert the source IP address from 10.2 to the original source IP address of 11.2 before forwarding the data packet on to the server. In this case, there is no modification to the alternative destination option, and it remains unused.
- a second example is shown in Figure 10, where a first network layer routing entity 1002 and a second network layer routing entity 1004 are connected over two subnetworks 1006, 1008 having IP address ranges 10.x and 11.x.
- Figure 11 shows a data flow redirection of the example case shown in Figure 10.
- the client device network socket may initially be bound to the WLAN1 interface in the link layer and may initially have a source IP address of 11.2.
- the server network socket may initially be bound to WLAN1 and may have an initial destination IP address of 1 1.8.
- link selection logic may determine a better routing path for data packets, which may be over the WLAN0 interface.
- the WLANO interface is associated with a different IP source address, more specifically 10.2, and a different destination IP address, more specifically 10.8.
- the alternative source (alt src) and alternative destination (alt dst) option of each data packet are set to the original source and destination IP addresses respectively before each data packet is transmitted from the client in order to allow the client and the server to deliver outgoing/incoming packets into the correct network socket when routing the data packet over the WLANO interface. If both the alt src and alt dst are not correctly set, then the packet may be discarded.
- a method comprising causing a first data flow to be transmitted from a first network layer entity to a second network layer entity.
- the first data flow is configured to be transmitted using a first routing path and an alternative routing path.
- the at least a part of the first data flow comprises an indication of the first routing path.
- the first routing path may comprise a first source address and a first destination address.
- the alternative routing path may comprise an alternative source address and an alternative destination address.
- the indication of the first routing path may comprise an indication of at least one of the first source address and the first destination address.
- the at least a part of the first data flow may comprise at least one data packet.
- the at least one data packet may comprise a source address field, a destination address field, and alternative source address field, and an alternative destination address field.
- the alternative source address field comprises an indication of the first source address.
- the alternative destination field comprises an indication of the first destination address.
- the alternative routing address may be determined based on one or more routing policies.
- An example policy may be a load balancing policy.
- the first routing path may utilise a first radio access technology.
- the alternative routing path may utilise a second radio access technology.
- a method comprising receiving, at a second network layer entity from a first network layer entity, a first data flow.
- the first data flow is configured to be received using at least a first routing path and an alternative routing path.
- the at least a part of the first data flow comprises an indication of the first routing path.
- the method may comprise causing the at least a part of the first data flow to be delivered to at least one upper layer in dependence on the indication of the first routing path.
- the network layer routing entity that receives the data packet may determine if the alternative source/destination options contain only valid IP addresses of the sender/receiver during data flow reassembly. If the receiving entity cannot validate both the original and alternative source and/or destination IP addresses, the received data packet may be discarded. In some embodiments, the data packet may not be discarded, and may instead be forwarded under certain conditions. Embodiments may therefore ensure secure networking.
- source IP addresses indicated in the packet IP header may be associated with the same host as the IP addresses listed in the alternative source option.
- An example pseudo-algorithm for the validation of source IP addresses at a receiver (or middle box, such as the gateway referred to in Figure 8) is shown below:
- AssociatedSourceAddresses returns the list of IP addresses that the receiver associates with the host owning the specified source IP address
- the receiver may validate whether the IP address specified in the alternative destination is one of the receiver’s active IP addresses. If the alternative destination matches an active IP address, then in some embodiments the packet may be delivered to the alternative destination IP address. If not, in some embodiments the packet may be discarded, or forwarded without altering the source IP address if packet forwarding is enabled.
- An example pseudo-algorithm for the validation of destination IP addresses at a receiver (or middle box, such as the gateway referred to in Figure 8) is shown below:
- HostAddressesQ returns the list of IP addresses of the host
- Some embodiments may enable multi-path communications between two mutually validated hosts (network layer routing entities), or between two hosts inter-connected by a gateway.
- any alternative source and/or destination IP addresses may be recognized by the recipient (or the gateway) as an IP address belonging to the same host as specified by the original source and/or destination IP address in the packet header.
- effectively only the sender may decide the network for packet delivery, and both the source and destination IP addresses may be flexibly adapted.
- at least a part of the data flow may be delivered in response to determining that the first routing path and the alternative routing path are associated.
- the at least a part of the data flow may comprise at least one data packet.
- the at least one data packet may comprise a source address field, a destination address field, and alternative source address field, and an alternative destination address field.
- the alternative source address field comprises an indication of the first source address.
- the alternative destination field comprises an indication of the first destination address.
- causing the at least a part of the data flow to be delivered to at least one upper layer in dependence on the indication of the first routing path may comprise determining that the indication of the first routing path is valid. In some embodiments, determining the validity may comprise determining that the alternative source address and the first source address are associated.
- network layer routing entities include, but are not limited to: user equipment, mobile devices, servers, gateways, firewalls, proxies, and packet inspectors. It should be understood that any suitable apparatus may implement the method performed by embodiments. That is to say, embodiments may also provide an apparatus comprising the means for performing any of the method steps described previously.
- IP internet protocol
- an apparatus comprising means for performing any of the abovementioned method.
- an apparatus comprising means for causing a first data flow to be transmitted from a first network layer entity to a second network layer entity, wherein the first data flow is configured to be transmitted using at least a first routing path and an alternative routing path, wherein when at least a part of the first data flow is transmitted via the alternative routing path, the at least part of the first data flow comprises an indication of the first routing path.
- the first routing path may comprise a first source address and a first destination address and the alternative routing path may comprise an alternative source address and an alternative destination address.
- the indication of the first routing path may comprise an indication of at least one of the first source address and the first destination address.
- the at least part of the first data flow may comprise at least one data packet, the at least one data packet comprising a source address field, a destination address field, an alternative source address field, and an alternative destination address field.
- the alternative source address field may comprise an indication of the first source address
- the alternative destination address field may comprise an indication of the first destination address.
- the alternative routing path may be determined based on one or more routing policies.
- the one or more routing policies may comprise a load balancing policy.
- the first routing path may utilise a first radio access technology and the alternative routing path may utilise a second radio access technology.
- the apparatus may comprise means for causing at least one first message to be transmitted from the first network layer entity to the second network layer entity, the at least one first message comprising a plurality of network layer addresses of the first network layer entity, wherein at least two of the plurality of network layer addresses are associated with different routing paths.
- a respective first message may be transmitted from each of the at least one network layer addresses of the first network layer entity.
- the at least one message may comprise a first key.
- the apparatus may comprise means for receiving, from said second network entity, at least one second message.
- the at least one second message may comprise address information of the second network entity.
- the at least one second message may comprise a second key.
- the apparatus may comprise means for determining whether said second key matches said first key; and in response to determining said second key matches said first key, storing in association the address information of said second network entity.
- an apparatus comprising means for receiving at a second network entity from a first network entity a first data flow, wherein the first data flow is configured to be received using at least a first routing path and an alternative routing path, wherein when at least a part of the first data flow is received via the alternative routing path, the at least a part of the alternative routing path comprises an indication of the first routing path; and causing the at least a part of the first data flow to be delivered to at least one upper layer in dependence on the indication of the first routing path.
- the at least a part of the first data flow may be delivered in response to determining the first routing path and the alternative routing path are associated.
- the at least a part of the first data flow may comprise at least one data packet.
- the at least one data packet may comprise a source address field, a destination address field, an alternative source address field, and an alternative destination address field.
- the alternative source address field may comprise an indication of the first source address
- the alternative destination address field may comprise an indication of the first destination address.
- the means for causing the at least a part of the first data flow to be delivered to in dependence on the indication of the first routing path may comprise means for determining that the indication of the first routing path is valid.
- the means for determining validity may comprise means for determining that the alternative source address and the first source address are associated.
- the apparatus may comprise means for receiving at least one first message from the first network layer entity at the second network layer entity, the at least one first message comprising a plurality of network layer addresses of the first network layer entity.
- the at least one message may comprise a first key.
- the apparatus may comprise means for associating the received plurality of addresses of the first network layer entity.
- the apparatus may comprise means for storing the association of network layer addresses of the first network layer entity.
- the apparatus may comprise means for transmitting, to the first network layer entity, at least one second message.
- each of said at least one second message may be addressed to a respective one of said plurality of network layer addresses of the first network layer entity.
- the at least one second message may comprise address information of the second network entity.
- the at least one second message may comprise a second key.
- the second key may match said first key.
- the addresses may comprise internet protocol addresses.
- the various embodiments may be implemented in hardware or special purpose circuits, software, logic or any combination thereof. Some embodiments may be implemented in hardware, while other aspects may be implemented in firmware or software which may be executed by a controller, microprocessor or other computing device, although the embodiments are not limited thereto. While various aspects may be illustrated and described as block diagrams, flow charts, or using some other pictorial representation, it is well understood that these blocks, apparatus, systems, techniques or methods described herein may be implemented in, as non-limiting examples, hardware, software, firmware, special purpose circuits or logic, general purpose hardware or controller or other computing devices, or some combination thereof.
- Some embodiments may be implemented by computer software executable by a data processor of a device, such as in the processor entity, or by hardware, or by a combination of software and hardware.
- Computer software or program also called program product, including software routines, applets and/or macros, may be stored in any apparatus-readable data storage medium and they comprise program instructions to perform particular tasks.
- a computer program product may comprise one or more computer-executable components which, when the program is run, are configured to carry out embodiments.
- the one or more computer-executable components may be at least one software code or portions of it.
- an apparatus comprising at least one processor and at least one memory, the at least one memory comprising computer executable instructions, which when run by the at least one processor, cause the at least one processor to transmit, from a first network layer entity to a second network layer entity, wherein the first data flow is configured to be transmitted using at least a first routing path and an alternative routing path, wherein when at least a part of the first data flow is transmitted via the alternative routing path, the at least part of the first data flow comprises an indication of the first routing path.
- the first routing path may comprise a first source address and a first destination address and the alternative routing path comprises an alternative source address and an alternative destination address.
- the indication of the first routing path may comprise an indication of at least one of the first source address and the first destination address.
- the at least part of the first data flow may comprise at least one data packet, the at least one data packet comprising a source address field, a destination address field, an alternative source address field, and an alternative destination address field.
- the alternative source address field may comprise an indication of the first source address
- the alternative destination address field may comprise an indication of the first destination address.
- the alternative routing path may be determined based on one or more routing policies.
- the one or more routing policies may comprise a load balancing policy.
- the first routing path may utilise a first radio access technology and the alternative routing path may utilise a second radio access technology.
- the at least one processor may cause the apparatus to cause at least one first message to be transmitted from the first network layer entity to the second network layer entity, the at least one first message comprising a plurality of network layer addresses of the first network layer entity, wherein at least two of the plurality of network layer addresses are associated with different routing paths.
- a respective first message may be transmitted from each of the at least one network layer addresses of the first network layer entity.
- the at least one message may comprise a first key.
- the at least one processor may cause the apparatus to receive, from said second network entity, at least one second message.
- the at least one second message may comprise address information of the second network entity.
- the at least one second message may comprise a second key.
- the at least one processor may cause the apparatus to determine whether said second key matches said first key; and in response to determining said second key matches said first key, store in association the address information of said second network entity.
- an apparatus comprising at least one processor and at least one memory, the at least one memory comprising computer executable instructions, which when run by the at least one processor, cause the at least one processor to: receive, at a second network entity from a first network entity a first data flow, wherein the first data flow is configured to be received using at least a first routing path and an alternative routing path, wherein when at least a part of the first data flow is received via the alternative routing path, the at least a part of the alternative routing path comprises an indication of the first routing path; and deliver the at least a part of the first data flow in dependence on the indication of the first routing path.
- the at least a part of the first data flow may be delivered in response to determining the first routing path and the alternative routing path are associated.
- the at least a part of the first data flow may comprise at least one data packet.
- the at least one data packet may comprise a source address field, a destination address field, an alternative source address field, and an alternative destination address field.
- the alternative source address field may comprise an indication of the first source address.
- the alternative destination address field may comprise an indication of the first destination address.
- the at least one processor may be configured to cause the apparatus to cause the at least a part of the first data flow to be delivered to in dependence on the indication of the first routing path may comprise determining that the indication of the first routing path is valid.
- determining validity may comprise determining that the alternative source address and the first source address are associated.
- the at least one processor may be configured to cause the apparatus to receive at least one first message from the first network layer entity at the second network layer entity, the at least one first message comprising a plurality of network layer addresses of the first network layer entity.
- the at least one message may comprise a first key.
- the at least one processor may cause the apparatus to associate the received plurality of addresses of the first network layer entity.
- the at least one processor may cause the apparatus to store in association the network layer addresses of the first network layer entity.
- the at least one processor may cause the apparatus to transmit, to the first network layer entity, at least one second message.
- each of said at least one second message may be addressed to a respective one of said plurality of network layer addresses of the first network layer entity.
- the at least one second message may comprise address information of the second network entity. In some embodiments the at least one second message may comprise a second key.
- the second key may match said first key.
- the addresses may comprise internet protocol addresses.
- any blocks of the logic flow as in the Figures may represent program steps, or interconnected logic circuits, blocks and functions, or a combination of program steps and logic circuits, blocks and functions.
- the software may be stored on such physical media as memory chips, or memory blocks implemented within the processor, magnetic media such as hard disk or floppy disks, and optical media such as for example DVD and the data variants thereof, CD.
- the physical media is a non-transitory media.
- the memory may be of any type suitable to the local technical environment and may be implemented using any suitable data storage technology, such as semiconductor based memory devices, magnetic memory devices and systems, optical memory devices and systems, fixed memory and removable memory.
- the data processors may be of any type suitable to the local technical environment, and may comprise one or more of general purpose computers, special purpose computers, microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASIC), FPGA, gate level circuits and processors based on multi core processor architecture, as non-limiting examples.
- Some embodiments may be practiced in various components such as integrated circuit modules.
- the design of integrated circuits is by and large a highly automated process. Complex and powerful software tools are available for converting a logic level design into a semiconductor circuit design ready to be etched and formed on a semiconductor substrate.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
There is provided a method comprising causing a first data flow to be transmitted from a first network layer entity to a second network layer entity, wherein the first data flow is configured to be transmitted using at least a first routing path and an alternative routing path, wherein when at least a part of the first data flow is transmitted via the alternative routing path, the at least a part of the first data flow comprises an indication of the first routing path.
Description
A METHOD, APPARATUS & COMPUTER PROGRAM
TECHNICAL FIELD
The present application relates to a method, apparatus, system and computer program and in particular but not exclusively to a method and apparatus for use in a network layer of a communication network.
BACKGROUND
A device may have access to two or more communication networks based on different technologies for accessing application services. The communication technologies are characterized by a coupling between for example a radio access stratum and a network core.
SUMMARY
According to an aspect, there is provided a method comprising causing a first data flow to be transmitted from a first network layer entity to a second network layer entity, wherein the first data flow is configured to be transmitted using at least a first routing path and an alternative routing path, wherein when at least a part of the first data flow is transmitted via the alternative routing path, the at least part of the first data flow comprises an indication of the first routing path.
The first routing path may comprise a first source address and a first destination address and the alternative routing path comprises an alternative source address and an alternative destination address.
The indication of the first routing path may comprise an indication of at least one of the first source address and the first destination address.
The at least part of the first data flow may comprise at least one data packet, the at least one data packet comprising a source address field, a destination address field, an alternative source address field, and an alternative destination address field.
When said data packet is routed by the alternative routing path, the alternative source address field may comprise an indication of the first source address.
When said data packet is routed by the alternative routing path, the alternative destination address field may comprise an indication of the first destination address.
The alternative routing path may be determined based on one or more routing policies.
The one or more routing policies may comprise a load balancing policy.
The first routing path may utilise a first radio access technology and the alternative routing path may utilise a second radio access technology.
The method may comprise causing at least one first message to be transmitted from the first network layer entity to the second network layer entity, the at least one first message comprising a plurality of network layer addresses of the first network layer entity, wherein at least two of the plurality of network layer addresses are associated with different routing paths.
A respective first message may be transmitted from each of the at least one network layer addresses of the first network layer entity.
The at least one message may comprise a first key.
The method may comprise receiving, from said second network entity, at least one second message.
The at least one second message may comprise address information of the second network entity.
The at least one second message may comprise a second key.
The method may comprise determining whether said second key matches said first key; and in response to determining said second key matches said first key, storing in association the address information of said second network entity.
According to an aspect, there is provided a method comprising receiving at a second network entity from a first network entity a first data flow, wherein the first data flow is configured to be received using at least a first routing path and an alternative routing path, wherein when at least a part of the first data flow is received via the alternative routing path, the at least a part of the alternative routing path comprises an indication of the first routing path; and causing the at least a part of the first data flow to be delivered to at least one upper layer in dependence on the indication of the first routing path.
The at least a part of the first data flow may be delivered in response to determining the first routing path and the alternative routing path are associated.
The at least a part of the first data flow may comprise at least one data packet. The at least one data packet may comprise a source address field, a destination address field, an alternative source address field, and an alternative destination address field.
When the data packet is routed by the alternative routing path, the alternative source address field may comprise an indication of the first source address.
When said data packet is routed by the alternative routing path, the alternative destination address field may comprise an indication of the first destination address.
Causing the at least a part of the first data flow to be delivered to in dependence on the indication of the first routing path may comprise determining that the indication of the first routing path is valid.
Determining validity may comprise determining that the alternative source address and the first source address are associated.
The method may comprise receiving at least one first message from the first network layer entity at the second network layer entity, the at least one first message comprising a plurality of network layer addresses of the first network layer entity.
The at least one message may comprise a first key.
The method may comprise associating the received plurality of addresses of the first network layer entity.
The method may comprise storing the association of network layer addresses of the first network layer entity.
The method may comprise transmitting, to the first network layer entity, at least one second message.
Each of said at least one second message may be addressed to a respective one of said plurality of network layer addresses of the first network layer entity.
The at least one second message may comprise address information of the second network entity.
The at least one second message may comprise a second key.
The second key may match said first key.
The addresses may comprise internet protocol addresses.
According to an aspect, there is provided an apparatus comprising means for causing a first data flow to be transmitted from a first network layer entity to a second network layer entity, wherein the first data flow is configured to be transmitted using at least a first routing path and an alternative routing path, wherein when at least a part of the first data flow is transmitted via the alternative routing path, the at least part of the first data flow comprises an indication of the first routing path.
The first routing path may comprise a first source address and a first destination address and the alternative routing path comprises an alternative source address and an alternative destination address.
The indication of the first routing path may comprise an indication of at least one of the first source address and the first destination address.
The at least part of the first data flow may comprise at least one data packet, the at least one data packet comprising a source address field, a destination address field, an alternative source address field, and an alternative destination address field.
When said data packet is routed by the alternative routing path, the alternative source address field may comprise an indication of the first source address.
When said data packet is routed by the alternative routing path, the alternative destination address field may comprise an indication of the first destination address.
The alternative routing path may be determined based on one or more routing policies. The one or more routing policies may comprise a load balancing policy.
The first routing path may utilise a first radio access technology and the alternative routing path may utilise a second radio access technology.
The apparatus may comprise means for causing at least one first message to be transmitted from the first network layer entity to the second network layer entity, the at least one first message comprising a plurality of network layer addresses of the first network layer entity, wherein at least two of the plurality of network layer addresses are associated with different routing paths.
A respective first message may be transmitted from each of the at least one network layer addresses of the first network layer entity.
The at least one message may comprise a first key.
The apparatus may comprise means for receiving, from said second network entity, at least one second message.
The at least one second message may comprise address information of the second network entity.
The at least one second message may comprise a second key.
The apparatus may comprise means for determining whether said second key matches said first key; and in response to determining said second key matches said first key, storing in association the address information of said second network entity.
According to an aspect, there is provided an apparatus comprising means for receiving at a second network entity from a first network entity a first data flow, wherein the first data flow is configured to be received using at least a first routing path and an alternative routing path, wherein when at least a part of the first data flow is received via the alternative routing path, the at least a part of the alternative routing path comprises an indication of the first routing path; and causing the at least a part of the first data flow to be delivered to at least one upper layer in dependence on the indication of the first routing path.
The at least a part of the first data flow may be delivered in response to determining the first routing path and the alternative routing path are associated.
The at least a part of the first data flow may comprise at least one data packet. The at least one data packet may comprise a source address field, a destination address field, an alternative source address field, and an alternative destination address field.
When the data packet is routed by the alternative routing path, the alternative source address field may comprise an indication of the first source address.
When said data packet is routed by the alternative routing path, the alternative destination address field may comprise an indication of the first destination address.
The means for causing the at least a part of the first data flow to be delivered to in dependence on the indication of the first routing path may comprise means for determining that the indication of the first routing path is valid.
The means for determining validity may comprise means for determining that the alternative source address and the first source address are associated.
The apparatus may comprise means for receiving at least one first message from the first network layer entity at the second network layer entity, the at least one first message comprising a plurality of network layer addresses of the first network layer entity.
The at least one message may comprise a first key.
The apparatus may comprise means for associating the received plurality of addresses of the first network layer entity.
The apparatus may comprise means for storing the association of network layer addresses of the first network layer entity.
The apparatus may comprise means for transmitting, to the first network layer entity, at least one second message.
Each of said at least one second message may be addressed to a respective one of said plurality of network layer addresses of the first network layer entity.
The at least one second message may comprise address information of the second network entity.
The at least one second message may comprise a second key.
The second key may match said first key.
The addresses may comprise internet protocol addresses.
According to an aspect, there is provided an apparatus comprising at least one processor and at least one memory, the at least one memory comprising computer executable instructions, which when run by the at least one processor, cause the at least one processor to transmit, from a first network layer entity to a second network layer entity, wherein the first data flow is configured to be transmitted using at least a first routing path and an alternative routing path, wherein when at least a part of the first data flow is transmitted via the alternative routing path, the at least part of the first data flow comprises an indication of the first routing path.
The first routing path may comprise a first source address and a first destination address and the alternative routing path comprises an alternative source address and an alternative destination address.
The indication of the first routing path may comprise an indication of at least one of the first source address and the first destination address.
The at least part of the first data flow may comprise at least one data packet, the at least one data packet comprising a source address field, a destination address field, an alternative source address field, and an alternative destination address field.
When said data packet is routed by the alternative routing path, the alternative source address field may comprise an indication of the first source address.
When said data packet is routed by the alternative routing path, the alternative destination address field may comprise an indication of the first destination address.
The alternative routing path may be determined based on one or more routing policies.
The one or more routing policies may comprise a load balancing policy.
The first routing path may utilise a first radio access technology and the alternative routing path may utilise a second radio access technology.
The at least one processor may cause the apparatus to cause at least one first message to be transmitted from the first network layer entity to the second network layer entity, the at least one first message comprising a plurality of network layer addresses of the first network layer entity, wherein at least two of the plurality of network layer addresses are associated with different routing paths.
A respective first message may be transmitted from each of the at least one network layer addresses of the first network layer entity.
The at least one message may comprise a first key.
The at least one processor may cause the apparatus to receive, from said second network entity, at least one second message.
The at least one second message may comprise address information of the second network entity.
The at least one second message may comprise a second key.
The at least one processor may cause the apparatus to determine whether said second key matches said first key; and in response to determining said second key matches said first key, store in association the address information of said second network entity.
According to an aspect, there is provided an apparatus comprising at least one processor and at least one memory, the at least one memory comprising computer executable instructions, which when run by the at least one processor, cause the at least one processor to: receive, at a second network entity from a first network entity a first data flow, wherein the first data flow is configured to be received using at least a first routing path and an alternative routing path,
wherein when at least a part of the first data flow is received via the alternative routing path, the at least a part of the alternative routing path comprises an indication of the first routing path; and deliver the at least a part of the first data flow in dependence on the indication of the first routing path.
The at least a part of the first data flow may be delivered in response to determining the first routing path and the alternative routing path are associated.
The at least a part of the first data flow may comprise at least one data packet. The at least one data packet may comprise a source address field, a destination address field, an alternative source address field, and an alternative destination address field.
When the data packet is routed by the alternative routing path, the alternative source address field may comprise an indication of the first source address.
When said data packet is routed by the alternative routing path, the alternative destination address field may comprise an indication of the first destination address.
The at least one processor may be configured to cause the apparatus to cause the at least a part of the first data flow to be delivered to in dependence on the indication of the first routing path may comprise determining that the indication of the first routing path is valid.
Determining validity may comprise determining that the alternative source address and the first source address are associated.
The at least one processor may be configured to cause the apparatus to receive at least one first message from the first network layer entity at the second network layer entity, the at least one first message comprising a plurality of network layer addresses of the first network layer entity.
The at least one message may comprise a first key.
The at least one processor may cause the apparatus to associate the received plurality of addresses of the first network layer entity.
The at least one processor may cause the apparatus to store in association the network layer addresses of the first network layer entity.
The at least one processor may cause the apparatus to transmit, to the first network layer entity, at least one second message.
Each of said at least one second message may be addressed to a respective one of said plurality of network layer addresses of the first network layer entity.
The at least one second message may comprise address information of the second network entity.
The at least one second message may comprise a second key.
The second key may match said first key.
The addresses may comprise internet protocol addresses.
According to an aspect there is provided a computer readable medium for causing an apparatus to perform causing a first data flow to be transmitted from a first network layer entity to a second network layer entity, wherein the first data flow is configured to be transmitted using at least a first routing path and an alternative routing path, wherein when at least a part of the first data flow is transmitted via the alternative routing path, the at least part of the first data flow comprises an indication of the first routing path.
The first routing path may comprise a first source address and a first destination address and the alternative routing path comprises an alternative source address and an alternative destination address.
The indication of the first routing path may comprise an indication of at least one of the first source address and the first destination address.
The at least part of the first data flow may comprise at least one data packet, the at least one data packet comprising a source address field, a destination address field, an alternative source address field, and an alternative destination address field.
When said data packet is routed by the alternative routing path, the alternative source address field may comprise an indication of the first source address.
When said data packet is routed by the alternative routing path, the alternative destination address field may comprise an indication of the first destination address.
The alternative routing path may be determined based on one or more routing policies. The one or more routing policies may comprise a load balancing policy.
The first routing path may utilise a first radio access technology and the alternative routing path may utilise a second radio access technology.
The computer readable medium may cause the apparatus to cause at least one first message to be transmitted from the first network layer entity to the second network layer entity, the at least one first message comprising a plurality of network layer addresses of the first network layer entity, wherein at least two of the plurality of network layer addresses are associated with different routing paths.
A respective first message may be transmitted from each of the at least one network layer addresses of the first network layer entity.
The at least one message may comprise a first key.
The computer readable medium may cause the apparatus to receive, from said second network entity, at least one second message.
The at least one second message may comprise address information of the second network entity.
The at least one second message may comprise a second key.
The computer readable medium may cause the apparatus to determine whether said second key matches said first key; and in response to determining said second key matches said first key, storing in association the address information of said second network entity.
According to an aspect, there is provided a computer readable medium for causing the apparatus to perform receiving at a second network entity from a first network entity a first data flow, wherein the first data flow is configured to be received using at least a first routing path and an alternative routing path, wherein when at least a part of the first data flow is received via the alternative routing path, the at least a part of the alternative routing path comprises an indication of the first routing path; and causing the at least a part of the first data flow to be delivered to at least one upper layer in dependence on the indication of the first routing path.
The at least a part of the first data flow may be delivered in response to determining the first routing path and the alternative routing path are associated.
The at least a part of the first data flow may comprise at least one data packet. The at least one data packet may comprise a source address field, a destination address field, an alternative source address field, and an alternative destination address field.
When the data packet is routed by the alternative routing path, the alternative source address field may comprise an indication of the first source address.
When said data packet is routed by the alternative routing path, the alternative destination address field may comprise an indication of the first destination address.
Causing the at least a part of the first data flow to be delivered to in dependence on the indication of the first routing path may comprise determining that the indication of the first routing path is valid.
Determining validity may comprise determining that the alternative source address and the first source address are associated.
The computer readable medium may cause the apparatus to receive at least one first message from the first network layer entity at the second network layer entity, the at least one first message comprising a plurality of network layer addresses of the first network layer entity.
The at least one message may comprise a first key.
The method may comprise associating the received plurality of addresses of the first network layer entity.
The method may comprise storing the association of network layer addresses of the first network layer entity.
The method may comprise transmitting, to the first network layer entity, at least one second message.
Each of said at least one second message may be addressed to a respective one of said plurality of network layer addresses of the first network layer entity.
The at least one second message may comprise address information of the second network entity.
The at least one second message may comprise a second key.
The second key may match said first key.
The addresses may comprise internet protocol addresses.
According to an aspect there is provided a non-transitory computer readable storage medium for causing an apparatus to perform a method according to any of the aspects mentioned above.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 shows a schematic diagram of an example communication system comprising a plurality of base stations and a plurality of communication devices;
Figure 2 shows a schematic diagram of an example mobile communication device;
Figure 3 shows a schematic diagram of a protocol stack;
Figure 4 illustrates a method according to some embodiments;
Figure 5 shows a schematic diagram of a data packet according to some embodiments;
Figure 6 shows a first ICMP signalling exchange according to some embodiments;
Figure 7 shows a second ICMP signalling exchange according to some embodiments;
Figure 8 shows an example scenario of multi-connected and single connected network layer routing entities;
Figure 9 shows an example data redirection in the example scenario of Figure 8;
Figure 10 shows an example scenario of multi-connected network layer routing entities; Figure 1 1 shows an example data redirection in the example scenario of Figure 10; and
Figure 12 shows an apparatus in a control entity.
DETAILED DESCRIPTION
Before explaining in detail the examples, certain general principles of a wireless communication system and mobile communication devices are briefly explained with reference to Figures 1 to 2 to assist in understanding the technology underlying the described examples.
In a wireless communication system 100, such as that shown in figure 1 , mobile communication devices or user equipment (UE) 102, 104, 105 are provided wireless access via at least one access node. The access node by be a base station or similar wireless transmitting and/or receiving node or point. A base station is referred to as an eNodeB (eNB) in LTE.
Base stations are typically controlled by at least one appropriate controller apparatus, so as to enable operation thereof and management of mobile communication devices in communication with the base stations. The controller apparatus may be located in a radio access network (e.g. wireless communication system 100) or in a core network (CN) (not shown) and may be implemented as one central apparatus or its functionality may be distributed over several apparatus. The controller apparatus may be part of the base station and/or provided by a separate entity such as a Radio Network Controller. In Figure 1 control apparatus 108 and 109 are shown to control the respective macro level base stations 106 and 107.
In Figure 1 base stations 106 and 107 are shown as connected to a wider communications network 1 13 via gateway 112. A further gateway function may be provided to connect to another network.
Smaller level base stations 1 16, 1 18 and 120 may also be connected to the network 1 13, for example by a separate gateway function and/or via the controllers of the macro level stations. The base stations 1 16, 118 and 120 may be pico or femto level base stations or the like. In the example, stations 116 and 1 18 are connected via a gateway 1 11 whilst station 120 connects via the controller apparatus 108. In some embodiments, the smaller stations may not be provided.
A possible communication device will now be described in more detail with reference to Figure 2 showing a schematic, partially sectioned view of a communication device 200. Such a communication device may be a user equipment (UE) or terminal. An appropriate
communication device may be provided by any device capable of sending and receiving radio signals. Non-limiting examples comprise a mobile station (MS) or mobile device such as a mobile phone or what is known as a’smart phone’, a computer provided with a wireless interface card or other wireless interface facility (e.g., USB dongle), personal data assistant (PDA) or a tablet provided with wireless communication capabilities, a machine type communications device or any combinations of these or the like. A communication device may provide, for example, communication of data. The data may be for carrying data or communications such as voice, electronic mail (email), text message, multimedia, and so on.
The device 200 may receive signals over an air or radio interface 207 via appropriate apparatus for receiving and may transmit signals via appropriate apparatus for transmitting radio signals. In Figure 2 transceiver apparatus is designated schematically by block 206. The transceiver apparatus 206 may be provided for example by means of a radio part and associated antenna arrangement. The antenna arrangement may be arranged internally or externally to the mobile device.
The device is typically provided with at least one data processing entity 201 , at least one memory 202 and other possible components 203 for use in software and hardware aided execution of tasks it is designed to perform, including control of access to and communications with access systems and other communication devices. The data processing, storage and other relevant control apparatus can be provided on an appropriate circuit board and/or in chipsets. This feature is denoted by reference 204.
A user may control the operation of the device by means of a suitable user interface such as key pad 205, voice commands, touch sensitive screen or pad, combinations thereof or the like. This user interface may be optional.
A display 208, a speaker and a microphone can be also provided. One or more of these may be optional.
The communication devices 102, 104, 105 may access a plurality of different communication system based on various different respective access techniques.
The device may be configured to communicate via multiple radio access technologies, such as, but not limited to, long-term evolution (LTE), Wi-Fi, 5G New Radio (NR), digital subscriber line (DSL) and wireless gigabit (Wigig).
The choice of a particular communication network in a multi-connectivity setting may determine the application performance because different technologies may exhibit benefits and limitations in different scenarios. For example, Wi-Fi networks may offer high capacity at low costs but may degrades under congestion. On the other hand, a network such as the 4G LTE network may offer more limited capacity at higher costs but maintain predictable services even in multi-user scenarios.
Reference is now made to Figure 3, which provides an illustration of a protocol stack according to some embodiments. The stack may comprise five layers L1 -5. The application layer (L5) may provide user interfaces and support for applications and services such as email. The application layer may be considered to be the layer where data is created. The transport layer (L4) may provide end-to-end communication to transport messages originating in the application layer between application end points. These end points may be on either the same host device, or on different devices. The network layer (L3) may provide routing of data from a source location or source device on the network to a target location or target device on the network. The link layer (L2) may provide support to move a data packet from one node in a network to the next node in the network along a given routing path. The physical layer (L1 ) may provide the physical means or hardware for moving providing communication.
It should be appreciated that one or more layers may be implemented by one or more of hardware, circuitry, and software. For example one or more layers may be implemented by an apparatus comprising at least one processor, at least one memory and computer executable code which runs on said at least one processor.
Routing data through a network from a source application or device to a target application or device may be carried out by splitting the data into multiple data flows which may be sent via multiple alternative paths through the network.
Data flow splitting may in some embodiments provide one or more benefits such as increased bandwidth, increased security, and increased fault tolerance.
Current proposals for data flow splitting among multiple network paths may suffer from drawbacks which may limit the performance of the network. For example, application layer (L5) approaches to multi-path communications may require modifications of the user equipment such as deployment and activation of a software package based on a virtual private network framework. On the transport layer (L4), multi-path transmission control protocol
(MPTCP) may be used to enable multi-path communications. However, MPTCP may supports only TCP-based applications. UDP-(user datagram protocol) based applications may not benefit from this approach.
Network layer (L3) solutions may use loose IP source routing options, which may be used for data re-direction. However this may not be practical for use, for example, in local area networks with firewalls due to the possibility of unauthorized access and firewall breaches by malicious agents using specific data routes as well as network denial-of-service attack by means of packet“bouncing”.
Lower-level multi-path splits may be possible but may be technology specific as they build up on medium access (MAC) properties (e.g., LTE packet data convergence protocol (PDCP) for LTE-wireless local area network (WLAN) aggregation (LWA) or LTW-WLAN radio level integration with internet protocol security (IPsec) tunnel (LWIP) solutions).
Some embodiments may perform well in a wide range of possible scenarios.
Some embodiments may provide a framework that may allow for flexibly selecting a good, for example the best, combination of radio access and core network paths for application data packet delivery.
For example, some embodiments may use both Wi-Fi uplink and downlink in uncongested scenarios, whereas in congested scenarios, scheduled LTE uplink access combined with WiFi downlink may be used to avoid capacity degradation and delay increase due to Wi-Fi uplink- downlink contention.
Reference is now made to Figure 4, which shows a method according to some embodiments. A network layer (L3) routing entity may split an application data flow (for example, WebEx or Skype or any other suitable application flow) into two or more data sub flows. Each data sub flow may comprise at least one data packet. Each data sub flow may be delivered via a different radio access technology. The communications device may be equipped with the capability of using a plurality of radio access technologies.
In step 400, a first network layer (L3) routing entity may perform valid internet protocol (IP) address determination. That is to say, a network layer routing entity may identify valid IP information for multi-path communications. This may be using traffic monitoring and/or data exchange. For example, this may be by using passive extraction of valid IP addresses from
legacy MCTCP signalling, and/or may be by active exchange of IP address information based on ICMP signalling.
In step 402, the first network layer (L3) routing entity may perform data flow splitting and/or redirection. The network layer routing entity may re-direct a data flow, or part of a data flow (a data sub flow), from a first path (or paths) to an alternative path (or paths). This may be based on a given routing policy. The network layer routing entity may indicate IP information of the original path (or paths). The routing policy may, for example, be related to load balancing objectives.
In step 404, a second network layer (L3) routing entity may perform data flow reassembly. This network layer routing entity may revert any redirected traffic back to the original path (or paths) if it is indicated that IP information on a current or previous path is valid. This may ensure secure networking without the vulnerabilities similar to loose and strict IP source routing.
Some embodiments may provide multi-path (that is two or more paths) communications for implementing load balancing between multiple (that is two or more) data delivery paths and/or core networks.
By controlling the data delivery direction (so-called asymmetric routing), advanced traffic optimization objectives may be implemented.
For example, downlink traffic may be sent only over 5G New Radio (NR) whenever there is a good 5G NR coverage to supplement 4G capacity, but the uplink traffic such as TCP acknowledgements (ACKs) may always be re-directed to the 4G LTE radio access if it has better and more consistent uplink coverage than the high-frequency 5G NR.
In another example, downlink data may be routed over wide-band Wi-Fi but the uplink data may be offloaded to 4G LTE to prevent the uplink/downlink contention in the Wi-Fi medium access layer. By avoiding the contention issue, Wi-Fi capacity may be increased by up to 400% in some situations.
An example apparatus is shown in Figure 12. Figure 12 shows an example of an apparatus 1200 in a network layer routing entity. The apparatus 1200 comprises at least one memory 1201 , at least one data processing unit 1202, 1203 and an input/output interface 1204. For example the apparatus 1200 can be configured to execute an appropriate software code to provide functions. The apparatus 1200 may be included in a chipset apparatus.
In some embodiments, there may be valid IP address determination.
Referring to method step 400, the identifying of valid IP addresses for multi-path communications may comprise using relevant IP information. In some embodiments, this may comprise using the IP addresses of one or both of the communication path end-points.
In some embodiments, a network layer routing entity may use one or more of the following three methods to determine the relevant IP information:
Peer-to-peer communications - valid IP addresses may be exchanged directly between network layer routing entities. Standard internet control message protocol (ICMP) signalling may be used, as will be described in more detail later;
Third-part notification - valid IP addresses may be signalled explicitly to network layer routing entities by relevant network nodes. For example, these network nodes may comprise one or more of dynamic host configuration protocol (DHCP) servers, network address translators (NATs), port address translators (PATs), and load balancers;
Data flow inspection - a network layer routing entity may extract valid IP addresses from packet headers of multi-path traffic. For example, this may comprise parsing of multi- path TCP (MPTCP) messages. The messages may be handshake messages. This may be in one or more of a‘MPTCP-CAPABLE’ and a‘MPTCP-JOIN’ phase.
In some embodiments, peer-to-peer communication of valid IP addresses may utilise ICMP signalling. In some embodiments, a network layer routing entity may employ a client-server model for exchanging the vectors of their valid IP addresses. To traverse middle-boxes such as N(P) AT seamlessly, I ICMP ECHO REQUEST and ICMP ECHO REPLY packets with a payload specific to the needs of IP address exchange may be used.
One example of a payload structure is summarized in Figure 5.
As shown in Figure 5, an ICMP data packet 500 may comprise one or more of an identifier field 502, a key field 504, a type field 506, and a message field 508. Some embodiments are provided with all of these fields.
The identifier field 502 may be used to distinguish ICMP ECHO packets designated for IP address exchange from other ICMP ECHO packets.
The key field 504 may carry authentication keys. These keys may be generated in any suitable manner. For example, the keys may be generated randomly or in a secure manner. The
generation may be carried out in any suitable way such as but not limited to, a Diffie-Hellman algorithm.
The type field 506 may indicate the message type. For example, the type field 506 may comprise one of the following:
Advertise (ADV) - an indication of an initial message of an IP exchange process; Accept (ACCEPT) - a response to an initiation message;
Add address (ADD ADR) - an addition of an IP address (or addresses);
Remove address (REM ADR) - a removal of an IP address (or addresses).
The message field 508 may carry variable length IP address information. In some embodiments, the length of the message field 508 may be specified. For example, the length may be specified by the first n bytes of the message field 508. n may be any suitable value. By way of example only, n may be 2. In other embodiments, n may be larger or smaller than 2. It should be appreciated that the length may be provided in any suitable location in in the message field, other than at the beginning of the message field.
Reference is made to Figure 6, which shows a first ICMP signalling exchange according to some embodiments.
In the signalling exchange of Figure 6, the client 602 may comprise a first network layer routing entity, and the server 604 may comprise a second network layer routing entity. The client 602 may already know the IP address or addresses of the server 604. For example, this address may be known from domain name server (DNS) resolution.
In some embodiments the client 602 may send an ICMP ECHO REQUEST message from each valid IP address of the client 602 to the server 604. Each REQUEST message sent by the client may contain the same key in the key field 504, and the type field 506 may comprise an ADV flag. That is to say, the ICMP ECHO REQUEST message may comprise an ICMP ECHO ADV message having key = k. In some embodiments, the client 602 may send an ICMP ECHO REQUEST message to the server 604. The message may list each valid IP address of the client 602.On receiving the ICMP ECHO REQUEST message or messages, the server 604 may associate all source IP addresses of REQUEST messages having the same key = k. That is to say, the server 604 determines that all IP addresses from which a REQUEST message having key = k originated belong to the same client. In some embodiments, all valid IP addresses of the client 602 contained within a REQUEST message may be associated. A list of all determined IP addresses may be stored in memory.
The server 604 may then send at least one ICMP ECHO ACCEPT message back to the client 602. The ACCEPT message may have the same key in the key field 504 as was used in the REQUEST or ADV message.
Reference is made to Figure 7, which shows a second ICMP signalling exchange according to some embodiments.
In the signalling exchange of Figure 7, the client 702 may comprise a network layer routing entity, and the server 704 may comprise another network layer routing entity. However, unlike the exchange provided with reference to Figure 6, in the signalling exchange depicted in Figure 7, the client 702 may have no prior knowledge of the IP address or addresses of the server 704. This may be the case, for example, in data centres and computing clusters.
In some embodiments the client 702 may send an ICMP ECHO REQUEST message from each valid IP address of the client 702 to the server 704. In some embodiments, the client 702 may send an ICMP ECHO REQUEST message to the server 704. The message field 508 may list each valid IP address of the client 702. The message sent by the client may contain the same key in the key field 504, and the type field 506 may comprise an ADV flag. That is to say, the ICMP ECHO REQUEST message may comprise an ICMP ECHO ADV message having key = k..
In response to receiving the REQUEST message or messages, the server 704 may send an ICMP ECHO ACCEPT message to the client 702. The server may store the received valid IP addresses of the client in memory, in for example an address list. The server may subsequently send an ICMP ECHO ADD ADR message to each IP address of the client specified in the address list using the same key in the key field 504 as initially used by the client 702. This may be performed for each active IP address of the server. In some embodiments, an ICMP ECHO ACCEPT message may be sent to the client 702 from a single IP address of the server 704. The message field of the ICMP ECHO ACCEPT message may contain a list of all valid IP addresses of the server 704.
When the client 702 receives a given ICMP ECHO ADD ADR message from the server 704, the client may associate the source IP of the given message with the first known IP address of the server 704. The client 702 may then acknowledge the association of the source IP and the first known IP by transmitting an ICMP ECHO ADV message to the server 704 using the same key in the key field 504 as was used in the given ADD ADR message.
Thus, in some embodiments, there is provided a method comprising causing at least one first message to be transmitted from a first network layer entity to a second network layer entity. The at least one first message may comprise a plurality of network layer addresses of the first network layer entity. At least two of the network layer addresses may be associated with a different routing path.
In some embodiments, there is provided a method comprising receiving at least one first message from the first network layer entity at the second network layer entity. The at least one first message may comprise a plurality of network layer addresses of the first network layer entity.
In some embodiments, the method may comprise associating the received plurality of addresses of the first network layer entity. In some embodiments, the association may be stored.
In some embodiments, the at least one first message may be transmitted from each network layer address of the first network layer entity.
In some embodiments, the at least one first message may comprise a key.
Thus, in some embodiments, the first network layer routing entity may signal to the second network layer routing entity all valid IP addresses of the first network layer routing entity. In some embodiments, this may be achieved by sending a message from each valid IP address of the first network layer routing entity to the second network layer routing entity. In some embodiments, this may be achieved by sending a single message from a single IP address of the first network layer routing entity to the second network layer routing entity, where the single message comprises a list of all valid IP addresses of the first network layer routing entity.
In some embodiments, there is provided a method comprising transmitting, by the second network layer entity to the first network layer entity, at least one second message.
In some embodiments, there is provided a method comprising receiving, from a second network layer entity at a first network layer entity, at least one second message. The received at least one second message may comprise address information of the second network layer entity. The at least one second message may comprise a second key.
In some embodiments, the method may comprise determining that the second key matches the first key.
In some embodiments, in response to receiving the at least one second message, the first network layer entity may determine whether the second key matches the first key. In response to determining that the second key matches the first key, the first network layer entity may store in association the address information of the second network layer entity.
Thus, in some embodiments, the second network layer routing entity may make the first network layer routing entity aware of ail valid IP addresses of the second network layer routing entity by sending a list of each valid IP address of the second network layer routing entity to each valid IP address of the first network layer routing entity.
In some embodiments, if no IP addresses are specified in the REQUEST message payload, then a source address of the REQUEST message indicated in the IP header of the message may be implicitly considered as an advertised address, and the server may associate the source address with any subsequently advertised addresses having the same key.
In some embodiments, the client 602, 702 may use a similar signalling method as described above and using an ADR REM flag in the Type field 506) in order to remove an address.
In some embodiments, if there is a NAT device between the client 602, 702 and the server 604, 704, then the server 604, 704 and/or client 602, 702 may associate and/or add or remove IP addresses of the NAT from the IP header. This may be on the assumption that the NAT does not interfere with the payload of the ICMP packet, in some embodiments.
In some embodiments, failure of the IP address exchange signalling described above with relation to Figure 6 and Figure 7 may be detected. For example, in scenarios where one of the client and the server not supporting the protocol for the exchange of valid IP addresses, or a particular version of the protocol used, may be detected from invalid payload in a handshake response. In another example, in scenarios where only one of the client or the server associates valid IP addresses with its peer may be detected by determining data packets being sent in only one direction.
While the abovementioned embodiments have been described with reference to a client and a server, it should be understood that both the client and the server may be any suitable network layer routing entity.
In some embodiments, there may be data flow splitting and re-direction.
In order to perform dynamic path selection, some embodiments may extend the IP protocol in accordance with internet engineering task force (IETF) multiple access management services (MAMS) and Multi-X standards and provide two additional IP header options - alternative source and alternative destination.
In some embodiments, when a network layer routing entity forwards a part of a data flow, or at least one data packet, from a given data flow over a new path (i.e. an alternative path that is different to the original source/destination IP address in the IP header of the packet), the original source/destination IP address may be appended to a proposed alternative source/destination option of the data packet IP header respectively.
A source network layer routing entity may determine that a data flow is to be routed via an alternative routing path. In some embodiments, the source network layer routing entity may also determine that the data flow is to be split, and that different sub flows are to be sent via different routing paths.
The alternative source option may indicate a change in source IP address due to the source network layer routing entity determining to reroute the data flow (or sub flow). This may cause the original source IP address to be appended to the alternative source option of a data packet IP header, while the source IP address associated with the new routing path may be used in the source IP address field of the data packet.
Similarly, a source network layer routing entity may change the destination IP address when rerouting a data flow (or sub flow). The original destination IP address may be appended to the alternative destination option of the data packet IP header, while the destination IP address associated with the new routing path may be used in the destination IP address field of the data packet.
The data flow, or part of the data flow, may be delivered to at least one upper layer. For example, the data flow may be delivered to an application layer. Delivering the data flow or part of the data flow may be dependent on address information contained within the data flow. That is to say, delivering the at least part of the data flow to at least one upper layer may be performed in dependence on an indication of the first routing path.
Two example cases are now described in more detail with reference to Figures 8 to 1 1 to illustrate the use of the alternative source/destination options. It should be understood that
these cases are for the purposes of illustration only, and should in no way be considered limiting.
A first example case is shown in Figure 8 and Figure 9. In Figure 8, a first network layer routing entity 802 is connected over two subnetworks 804, 806 having IP address ranges 10.x and 11.x to a gateway device 808. The gateway device 808 relays data to a second network layer routing entity 810 over a subnetwork 812 with IP address ranges 9.x. The first network layer routing entity 802 may be a client device such as a mobile phone. The second network layer routing entity 810 may be a traffic aggregation proxy or application server. The gateway device 808 may be a NAT router.
Figure 9 shows a data flow redirection of the example case shown in Figure 8. Initially the client device network socket may bind to the wireless local area network (WLAN) 1 interface in the link layer. Initially all client data packets would have 11.2 as their source IP address.
Link selection logic may determine a better routing path for data packets, which may be over the WLAN0 interface. The WLAN0 interface is associated with a different IP source address, more specifically 10.2.
The alternative source (alt src) option of each data packet is set to the original source IP address (11.2) before each data packet is transmitted in order to inform the gateway about the change in source IP address. Upon receiving the data packet with the alt src address, the gateway may correctly revert the source IP address from 10.2 to the original source IP address of 11.2 before forwarding the data packet on to the server. In this case, there is no modification to the alternative destination option, and it remains unused.
A second example is shown in Figure 10, where a first network layer routing entity 1002 and a second network layer routing entity 1004 are connected over two subnetworks 1006, 1008 having IP address ranges 10.x and 11.x.
Figure 11 shows a data flow redirection of the example case shown in Figure 10. Similar to the previous example, the client device network socket may initially be bound to the WLAN1 interface in the link layer and may initially have a source IP address of 11.2. Similarly, the server network socket may initially be bound to WLAN1 and may have an initial destination IP address of 1 1.8.
As with the first example, link selection logic may determine a better routing path for data packets, which may be over the WLAN0 interface. The WLANO interface is associated with a different IP source address, more specifically 10.2, and a different destination IP address, more specifically 10.8.
The alternative source (alt src) and alternative destination (alt dst) option of each data packet are set to the original source and destination IP addresses respectively before each data packet is transmitted from the client in order to allow the client and the server to deliver outgoing/incoming packets into the correct network socket when routing the data packet over the WLANO interface. If both the alt src and alt dst are not correctly set, then the packet may be discarded.
Thus, in some embodiments, there is provided a method comprising causing a first data flow to be transmitted from a first network layer entity to a second network layer entity. The first data flow is configured to be transmitted using a first routing path and an alternative routing path. When at least a part of the first data flow is transmitted via the alternative routing path, the at least a part of the first data flow comprises an indication of the first routing path.
In some embodiments, the first routing path may comprise a first source address and a first destination address. The alternative routing path may comprise an alternative source address and an alternative destination address.
In some embodiments, the indication of the first routing path may comprise an indication of at least one of the first source address and the first destination address.
In some embodiments, the at least a part of the first data flow may comprise at least one data packet. The at least one data packet may comprise a source address field, a destination address field, and alternative source address field, and an alternative destination address field.
In some embodiments, when the data packet is routed by the alternative routing path, the alternative source address field comprises an indication of the first source address. In some embodiments, when the data packet is routed by the alternative routing path, the alternative destination field comprises an indication of the first destination address.
In some embodiments, the alternative routing address may be determined based on one or more routing policies. An example policy may be a load balancing policy.
In some embodiments, the first routing path may utilise a first radio access technology. The alternative routing path may utilise a second radio access technology.
In some embodiments, there is provided a method comprising receiving, at a second network layer entity from a first network layer entity, a first data flow. The first data flow is configured to be received using at least a first routing path and an alternative routing path. When at least a part of the first data flow is received via the alternative routing path, the at least a part of the first data flow comprises an indication of the first routing path.
In some embodiments, the method may comprise causing the at least a part of the first data flow to be delivered to at least one upper layer in dependence on the indication of the first routing path.
In some embodiments, there may be data flow reassembly.
The network layer routing entity that receives the data packet may determine if the alternative source/destination options contain only valid IP addresses of the sender/receiver during data flow reassembly. If the receiving entity cannot validate both the original and alternative source and/or destination IP addresses, the received data packet may be discarded. In some embodiments, the data packet may not be discarded, and may instead be forwarded under certain conditions. Embodiments may therefore ensure secure networking.
In some embodiments, source IP addresses indicated in the packet IP header may be associated with the same host as the IP addresses listed in the alternative source option. An example pseudo-algorithm for the validation of source IP addresses at a receiver (or middle box, such as the gateway referred to in Figure 8) is shown below:
AssociatedSourceAddresses(source: IP) returns the list of IP addresses that the receiver associates with the host owning the specified source IP address
OnPacketReceive (p: Packet)
if HasAlternativeSourceAddress (p) # IP option procession
IPs «— AssociatedSourceAddresses(p.source)
if p.options.altSourceAddress in IPs # source IP address validity check
p. source <— p.options.altSourceAddress # packet re-direction reverted
ProcessPacket (p) # packet processed else
DiscardPacket(p) # packet discarded
In some embodiments, the receiver may validate whether the IP address specified in the alternative destination is one of the receiver’s active IP addresses. If the alternative destination matches an active IP address, then in some embodiments the packet may be delivered to the alternative destination IP address. If not, in some embodiments the packet may be discarded, or forwarded without altering the source IP address if packet forwarding is enabled. An example pseudo-algorithm for the validation of destination IP addresses at a receiver (or middle box, such as the gateway referred to in Figure 8) is shown below:
HostAddressesQ returns the list of IP addresses of the host
OnPacketReceive (p: Packet)
if HasAlternativeDestinationAddress (p) # IP option procession
IPs <— MachineAddresses()
if p.options.altDestinationAddress in IPs # destination IP address validity check p.destination<— p.options.altDestinationAddress # packet destination updated ProcessPacket(p) # packet processed else
if packetForwardingEnabled
ForwardPacket(p) # packet forwarding else
DiscardPacket(p) # packet discarded
Some embodiments may enable multi-path communications between two mutually validated hosts (network layer routing entities), or between two hosts inter-connected by a gateway. In some embodiments, any alternative source and/or destination IP addresses may be recognized by the recipient (or the gateway) as an IP address belonging to the same host as specified by the original source and/or destination IP address in the packet header.
In some embodiments, effectively only the sender may decide the network for packet delivery, and both the source and destination IP addresses may be flexibly adapted.
Thus, in some embodiments, at least a part of the data flow may be delivered in response to determining that the first routing path and the alternative routing path are associated.
In some embodiments, the at least a part of the data flow may comprise at least one data packet. The at least one data packet may comprise a source address field, a destination address field, and alternative source address field, and an alternative destination address field.
In some embodiments, when the data packet is routed by the alternative routing path, the alternative source address field comprises an indication of the first source address. In some embodiments, when the data packet is routed by the alternative routing path, the alternative destination field comprises an indication of the first destination address.
In some embodiments, causing the at least a part of the data flow to be delivered to at least one upper layer in dependence on the indication of the first routing path may comprise determining that the indication of the first routing path is valid. In some embodiments, determining the validity may comprise determining that the alternative source address and the first source address are associated.
Some embodiments have been described with respect to network layer routing entities. Examples of network layer routing entities include, but are not limited to: user equipment, mobile devices, servers, gateways, firewalls, proxies, and packet inspectors. It should be understood that any suitable apparatus may implement the method performed by embodiments. That is to say, embodiments may also provide an apparatus comprising the means for performing any of the method steps described previously.
Some embodiments have been described with respect to internet protocol (IP) addresses. It should be understood that any suitable network address may be used, and that embodiments are not limited to internet protocol addresses.
Some embodiments above have been described with reference to a method. In some embodiments, there may be provided an apparatus comprising means for performing any of the abovementioned method.
That is to say, in some embodiments, there may be provided an apparatus comprising means for causing a first data flow to be transmitted from a first network layer entity to a second network layer entity, wherein the first data flow is configured to be transmitted using at least
a first routing path and an alternative routing path, wherein when at least a part of the first data flow is transmitted via the alternative routing path, the at least part of the first data flow comprises an indication of the first routing path.
In some embodiments the first routing path may comprise a first source address and a first destination address and the alternative routing path may comprise an alternative source address and an alternative destination address. in some embodiments the indication of the first routing path may comprise an indication of at least one of the first source address and the first destination address.
In some embodiments the at least part of the first data flow may comprise at least one data packet, the at least one data packet comprising a source address field, a destination address field, an alternative source address field, and an alternative destination address field.
In some embodiments, when said data packet is routed by the alternative routing path, the alternative source address field may comprise an indication of the first source address.
In some embodiments, when said data packet is routed by the alternative routing path, the alternative destination address field may comprise an indication of the first destination address.
In some embodiments the alternative routing path may be determined based on one or more routing policies.
In some embodiments the one or more routing policies may comprise a load balancing policy.
In some embodiments the first routing path may utilise a first radio access technology and the alternative routing path may utilise a second radio access technology.
In some embodiments the apparatus may comprise means for causing at least one first message to be transmitted from the first network layer entity to the second network layer entity, the at least one first message comprising a plurality of network layer addresses of the first
network layer entity, wherein at least two of the plurality of network layer addresses are associated with different routing paths.
In some embodiments a respective first message may be transmitted from each of the at least one network layer addresses of the first network layer entity.
In some embodiments the at least one message may comprise a first key.
In some embodiments the apparatus may comprise means for receiving, from said second network entity, at least one second message.
In some embodiments the at least one second message may comprise address information of the second network entity.
In some embodiments the at least one second message may comprise a second key.
In some embodiments the apparatus may comprise means for determining whether said second key matches said first key; and in response to determining said second key matches said first key, storing in association the address information of said second network entity.
In some embodiments there is provided an apparatus comprising means for receiving at a second network entity from a first network entity a first data flow, wherein the first data flow is configured to be received using at least a first routing path and an alternative routing path, wherein when at least a part of the first data flow is received via the alternative routing path, the at least a part of the alternative routing path comprises an indication of the first routing path; and causing the at least a part of the first data flow to be delivered to at least one upper layer in dependence on the indication of the first routing path.
In some embodiments the at least a part of the first data flow may be delivered in response to determining the first routing path and the alternative routing path are associated.
In some embodiments the at least a part of the first data flow may comprise at least one data packet. The at least one data packet may comprise a source address field, a destination address field, an alternative source address field, and an alternative destination address field.
in some embodiments, when the data packet is routed by the alternative routing path, the alternative source address field may comprise an indication of the first source address.
In some embodiments, when said data packet is routed by the alternative routing path, the alternative destination address field may comprise an indication of the first destination address.
In some embodiments the means for causing the at least a part of the first data flow to be delivered to in dependence on the indication of the first routing path may comprise means for determining that the indication of the first routing path is valid.
In some embodiments the means for determining validity may comprise means for determining that the alternative source address and the first source address are associated.
In some embodiments the apparatus may comprise means for receiving at least one first message from the first network layer entity at the second network layer entity, the at least one first message comprising a plurality of network layer addresses of the first network layer entity.
In some embodiments the at least one message may comprise a first key.
In some embodiments the apparatus may comprise means for associating the received plurality of addresses of the first network layer entity.
In some embodiments the apparatus may comprise means for storing the association of network layer addresses of the first network layer entity.
In some embodiments the apparatus may comprise means for transmitting, to the first network layer entity, at least one second message.
In some embodiments each of said at least one second message may be addressed to a respective one of said plurality of network layer addresses of the first network layer entity.
In some embodiments the at least one second message may comprise address information of the second network entity.
In some embodiments the at least one second message may comprise a second key.
In some embodiments the second key may match said first key.
In some embodiments the addresses may comprise internet protocol addresses.
In general, the various embodiments may be implemented in hardware or special purpose circuits, software, logic or any combination thereof. Some embodiments may be implemented in hardware, while other aspects may be implemented in firmware or software which may be executed by a controller, microprocessor or other computing device, although the embodiments are not limited thereto. While various aspects may be illustrated and described as block diagrams, flow charts, or using some other pictorial representation, it is well understood that these blocks, apparatus, systems, techniques or methods described herein may be implemented in, as non-limiting examples, hardware, software, firmware, special purpose circuits or logic, general purpose hardware or controller or other computing devices, or some combination thereof.
Some embodiments may be implemented by computer software executable by a data processor of a device, such as in the processor entity, or by hardware, or by a combination of software and hardware. Computer software or program, also called program product, including software routines, applets and/or macros, may be stored in any apparatus-readable data storage medium and they comprise program instructions to perform particular tasks. A computer program product may comprise one or more computer-executable components which, when the program is run, are configured to carry out embodiments. The one or more computer-executable components may be at least one software code or portions of it.
That is to say, in some embodiments, there is provided an apparatus comprising at least one processor and at least one memory, the at least one memory comprising computer executable instructions, which when run by the at least one processor, cause the at least one processor to transmit, from a first network layer entity to a second network layer entity, wherein the first
data flow is configured to be transmitted using at least a first routing path and an alternative routing path, wherein when at least a part of the first data flow is transmitted via the alternative routing path, the at least part of the first data flow comprises an indication of the first routing path.
In some embodiments the first routing path may comprise a first source address and a first destination address and the alternative routing path comprises an alternative source address and an alternative destination address.
In some embodiments the indication of the first routing path may comprise an indication of at least one of the first source address and the first destination address.
In some embodiments the at least part of the first data flow may comprise at least one data packet, the at least one data packet comprising a source address field, a destination address field, an alternative source address field, and an alternative destination address field.
In some embodiments, when said data packet is routed by the alternative routing path, the alternative source address field may comprise an indication of the first source address.
In some embodiments, when said data packet is routed by the alternative routing path, the alternative destination address field may comprise an indication of the first destination address.
In some embodiments the alternative routing path may be determined based on one or more routing policies.
In some embodiments the one or more routing policies may comprise a load balancing policy.
In some embodiments the first routing path may utilise a first radio access technology and the alternative routing path may utilise a second radio access technology.
In some embodiments the at least one processor may cause the apparatus to cause at least one first message to be transmitted from the first network layer entity to the second network layer entity, the at least one first message comprising a plurality of network layer addresses of the first network layer entity, wherein at least two of the plurality of network layer addresses are associated with different routing paths.
In some embodiments a respective first message may be transmitted from each of the at least one network layer addresses of the first network layer entity.
In some embodiments the at least one message may comprise a first key.
In some embodiments the at least one processor may cause the apparatus to receive, from said second network entity, at least one second message.
In some embodiments the at least one second message may comprise address information of the second network entity.
In some embodiments the at least one second message may comprise a second key.
In some embodiments the at least one processor may cause the apparatus to determine whether said second key matches said first key; and in response to determining said second key matches said first key, store in association the address information of said second network entity.
In some embodiments, there is provided an apparatus comprising at least one processor and at least one memory, the at least one memory comprising computer executable instructions, which when run by the at least one processor, cause the at least one processor to: receive, at a second network entity from a first network entity a first data flow, wherein the first data flow is configured to be received using at least a first routing path and an alternative routing path, wherein when at least a part of the first data flow is received via the alternative routing path, the at least a part of the alternative routing path comprises an indication of the first routing path; and deliver the at least a part of the first data flow in dependence on the indication of the first routing path.
In some embodiments the at least a part of the first data flow may be delivered in response to determining the first routing path and the alternative routing path are associated.
In some embodiments the at least a part of the first data flow may comprise at least one data packet. The at least one data packet may comprise a source address field, a destination address field, an alternative source address field, and an alternative destination address field.
In some embodiments, when the data packet is routed by the alternative routing path, the alternative source address field may comprise an indication of the first source address.
In some embodiments, when said data packet is routed by the alternative routing path, the alternative destination address field may comprise an indication of the first destination address.
In some embodiments the at least one processor may be configured to cause the apparatus to cause the at least a part of the first data flow to be delivered to in dependence on the indication of the first routing path may comprise determining that the indication of the first routing path is valid.
In some embodiments determining validity may comprise determining that the alternative source address and the first source address are associated.
In some embodiments the at least one processor may be configured to cause the apparatus to receive at least one first message from the first network layer entity at the second network layer entity, the at least one first message comprising a plurality of network layer addresses of the first network layer entity. in some embodiments the at least one message may comprise a first key.
In some embodiments the at least one processor may cause the apparatus to associate the received plurality of addresses of the first network layer entity.
In some embodiments the at least one processor may cause the apparatus to store in association the network layer addresses of the first network layer entity.
In some embodiments the at least one processor may cause the apparatus to transmit, to the first network layer entity, at least one second message.
In some embodiments each of said at least one second message may be addressed to a respective one of said plurality of network layer addresses of the first network layer entity.
In some embodiments the at least one second message may comprise address information of the second network entity.
In some embodiments the at least one second message may comprise a second key.
In some embodiments the second key may match said first key.
In some embodiments the addresses may comprise internet protocol addresses.
Further in this regard it should be noted that any blocks of the logic flow as in the Figures may represent program steps, or interconnected logic circuits, blocks and functions, or a combination of program steps and logic circuits, blocks and functions. The software may be stored on such physical media as memory chips, or memory blocks implemented within the processor, magnetic media such as hard disk or floppy disks, and optical media such as for example DVD and the data variants thereof, CD. The physical media is a non-transitory media.
The memory may be of any type suitable to the local technical environment and may be implemented using any suitable data storage technology, such as semiconductor based memory devices, magnetic memory devices and systems, optical memory devices and systems, fixed memory and removable memory. The data processors may be of any type suitable to the local technical environment, and may comprise one or more of general purpose computers, special purpose computers, microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASIC), FPGA, gate level circuits and processors based on multi core processor architecture, as non-limiting examples.
Some embodiments may be practiced in various components such as integrated circuit modules. The design of integrated circuits is by and large a highly automated process. Complex and powerful software tools are available for converting a logic level design into a semiconductor circuit design ready to be etched and formed on a semiconductor substrate.
The foregoing description has provided by way of non-limiting examples a full and informative description of the exemplary embodiments. However, various modifications and adaptations may become apparent to those skilled in the relevant arts in view of the foregoing description, when read in conjunction with the accompanying drawings and the appended claims. However, all such and similar modifications of the teachings of this invention will still fall within the scope of this invention as defined in the appended claims. Indeed there is a further embodiment comprising a combination of one or more embodiments with any of the other embodiments previously discussed.
Claims
1. A method comprising:
causing a first data flow to be transmitted from a first network layer entity to a second network layer entity, wherein the first data flow is configured to be transmitted using at least a first routing path and an alternative routing path, wherein when at least a part of the first data flow is transmitted via the alternative routing path, the at least a part of the first data flow comprises an indication of the first routing path.
2. A method as claimed in claim 1 , wherein the first routing path comprises a first source address and a first destination address and the alternative routing path comprises an alternative source address and an alternative destination address.
3. A method as claimed in claim 2, wherein the indication of the first routing path comprises an indication of at least one of the first source address and the first destination address.
4. A method as claimed in claim 3, wherein the at least part of the first data flow comprises at least one data packet, the at least one data packet comprising a source address field, a destination address field, an alternative source address field, and an alternative destination address field.
5. A method as claimed in claim 4, wherein when said data packet is routed by the alternative routing path, the alternative source address field comprises an indication of the first source address and/or the alternative destination address field comprises an indication of the first destination address.
6. A method as claimed in any of claims 1 to 5, wherein the alternative routing path is determined based on one or more routing policies.
7. A method as claimed in claim 6, wherein said one or more routing policies comprise a load balancing policy.
8. A method as claimed in any of claims 1 to 7, wherein the first routing path utilises a first radio access technology and the alternative routing path utilises a second radio access technology.
9. A method as claimed in any of claims 1 to 8 comprising:
causing at least one first message to be transmitted from the first network layer entity to the second network layer entity, the at least one first message comprising a plurality of network layer addresses of the first network layer entity, wherein at least two of the plurality of network layer addresses are associated with different routing paths.
10. A method as claimed in claim 9, wherein a respective first message is transmitted from each of the at least one network layer addresses of the first network layer entity.
1 1. A method as claimed in any of claims 9 to 10, wherein said at least one message comprises a first key.
12. A method as claimed in any of claims 9 to 1 1 , comprising receiving, from said second network entity, at least one second message, wherein said at least one second message comprises address information of the second network entity and/or a second key.
13. A method as claimed in claim 12, comprising:
determining whether said second key matches said first key; and in response to determining said second key matches said first key, storing in association the address information of said second network entity.
14. A method comprising:
receiving at a second network entity from a first network entity a first data flow, wherein the first data flow is configured to be received using at least a first routing path and an alternative routing path, wherein when at least a part of the first data flow is received via the alternative routing path, the at least a part of the alternative routing path comprises an indication of the first routing path; and
causing the at least a part of the first data flow to be delivered to at least one upper layer in dependence on the indication of the first routing path.
15. A method as claimed in claim 14, wherein the at least a part of the first data flow is delivered to at least one upper layer in response to determining the first routing path and the alternative routing path are associated.
16. A method as claimed in claim 14 or claim 15, wherein the at least a part of the first data flow comprises at least one data packet, the at least one data packet comprising a source address field, a destination address field, an alternative source address field, and an alternative destination address field.
17. A method as claimed in claim 16, wherein when said data packet is routed by the alternative routing path, the alternative source address field comprises an indication of the first source address and/or the alternative destination address field comprises an indication of the first destination address.
18. A method according to any of claims 14 to 17, wherein causing the at least a part of the first data flow to be delivered to at least one upper layer in dependence on the indication of the first routing path comprises determining that the indication of the first routing path is valid.
19. A method as claimed in claim 18, wherein determining validity comprises determining that the alternative source address and the first source address are associated.
20. A method as claimed in any of claims 14 to 19, comprising:
receiving at least one first message from the first network layer entity at the second network layer entity, the at least one first message comprising a plurality of network layer addresses of the first network layer entity.
21. A method as claimed in any of claim 20, wherein said at least one message comprises a first key.
22. A method as claimed in any of claims 20 to 21 , comprising associating the received plurality of addresses of the first network layer entity.
23. A method as claimed in claim 22, comprising storing the association of network layer addresses of the first network layer entity.
24. A method as claimed in any of claims 14 to 23, comprising transmitting, to the first network layer entity, at least one second message, wherein said at least one second message is addressed to a respective one of said plurality of network layer addresses of the first network layer entity.
25. A method as claimed in claim 24, wherein said at least one second message comprises address information of the second network entity and/or a second key.
26. A method as claimed in claim 25, wherein said second key matches said first key.
27. A method as claimed in any of claims 20 to 26, wherein the addresses comprise internet protocol addresses.
28. An apparatus comprising means for:
causing a first data flow to be transmitted from a first network layer entity to a second network layer entity, wherein the first data flow is configured to be transmitted using at least a first routing path and an alternative routing path, wherein when at least a part of the first data flow is transmitted via the alternative routing path, the at least part of the first data flow comprises an indication of the first routing path.
29. An apparatus as claimed in claim 28, comprising means for performing the method according to any of claims 2 to 13.
30. An apparatus comprising means for:
receiving at a second network entity from a first network entity a first data flow, wherein the first data flow is configured to be received using at least a first routing path and an alternative routing path, wherein when at least a part of the first data flow is received via the alternative routing path, the at least a part of the alternative routing path comprises an indication of the first routing path; and
causing the at least a part of the first data flow to be delivered to at least one upper layer in dependence on the indication of the first routing path.
31. An apparatus as claimed in claim 30, comprising means for performing the method according to any of claims 15 to 27.
32. An apparatus comprising at least one processor and at least one memory, the at least one memory comprising computer executable instructions, which when run by the at least one processor, cause the at least one processor to:
transmit, from a first network layer entity to a second network layer entity, wherein the first data flow is configured to be transmitted using at least a first routing path and an alternative routing path, wherein when at least a part of the first data flow is transmitted via the alternative routing path, the at least part of the first data flow comprises an indication of the first routing path.
33. An apparatus as claimed in claim 32, wherein the at least one processor is configured to perform the method according to any of claims 2 to 13.
34. An apparatus comprising at least one processor and at least one memory, the at least one memory comprising computer executable instructions, which when run by the at least one processor, cause the at least one processor to:
receive, at a second network entity from a first network entity a first data flow, wherein the first data flow is configured to be received using at least a first routing path and an alternative routing path, wherein when at least a part of the first data flow is received via the alternative routing path, the at least a part of the alternative routing path comprises an indication of the first routing path; and
deliver the at least a part of the first data flow to at least one upper layer in dependence on the indication of the first routing path.
35. An apparatus as claimed in claim 34, wherein the at least one processor is configured to perform the method according to any of claims 15 to 27.
36. A computer readable medium for causing an apparatus to perform:
causing a first data flow to be transmitted from a first network layer entity to a second network layer entity, wherein the first data flow is configured to be transmitted using at least a first routing path and an alternative routing path, wherein when at least a part of the first data flow is transmitted via the alternative routing path, the at least a part of the first data flow comprises an indication of the first routing path.
37. A computer readable medium as claimed in claim 36, wherein the computer readable medium causes the apparatus to perform the method according to any of claims 2 to 13.
38. A computer readable medium for causing an apparatus to perform:
receiving at a second network entity from a first network entity a first data flow, wherein the first data flow is configured to be received using at least a first routing path and an alternative routing path, wherein when at least a part of the first data flow is received via the alternative routing path, the at least a part of the alternative routing path comprises an indication of the first routing path; and
causing the at least a part of the first data flow to be delivered to at least one upper layer in dependence on the indication of the first routing path.
39. A computer readable medium as claimed in claim 38, wherein the computer readable medium causes the apparatus to perform the method according to any of claims 15 to 27.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2018/074225 WO2020048622A1 (en) | 2018-09-07 | 2018-09-07 | A method, apparatus & computer program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2018/074225 WO2020048622A1 (en) | 2018-09-07 | 2018-09-07 | A method, apparatus & computer program |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020048622A1 true WO2020048622A1 (en) | 2020-03-12 |
Family
ID=63592704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/EP2018/074225 WO2020048622A1 (en) | 2018-09-07 | 2018-09-07 | A method, apparatus & computer program |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2020048622A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114765591A (en) * | 2020-12-31 | 2022-07-19 | 大唐移动通信设备有限公司 | Data transmission method, device and storage medium |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040032856A1 (en) * | 2002-02-11 | 2004-02-19 | Sandstrom Mark Henrik | Transparent, look-up-free packet forwarding method for optimizing global network throughput based on real-time route status |
EP3269109A1 (en) * | 2015-03-12 | 2018-01-17 | Telefonaktiebolaget LM Ericsson (publ) | Methods and arrangements for multipath traffic aggregation |
-
2018
- 2018-09-07 WO PCT/EP2018/074225 patent/WO2020048622A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040032856A1 (en) * | 2002-02-11 | 2004-02-19 | Sandstrom Mark Henrik | Transparent, look-up-free packet forwarding method for optimizing global network throughput based on real-time route status |
EP3269109A1 (en) * | 2015-03-12 | 2018-01-17 | Telefonaktiebolaget LM Ericsson (publ) | Methods and arrangements for multipath traffic aggregation |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114765591A (en) * | 2020-12-31 | 2022-07-19 | 大唐移动通信设备有限公司 | Data transmission method, device and storage medium |
CN114765591B (en) * | 2020-12-31 | 2023-07-18 | 大唐移动通信设备有限公司 | Data transmission method, device and storage medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10694005B2 (en) | Hardware-based packet forwarding for the transport layer | |
US10079803B2 (en) | Peer-to-peer connection establishment using TURN | |
US10462229B2 (en) | Method and apparatus for initiating and maintaining sessions between endpoints | |
US11122116B2 (en) | Load balancing system, method, and apparatus | |
Bonaventure et al. | Use cases and operational experience with multipath TCP | |
US10841406B2 (en) | Method for multi-path UDP communication method between two terminals | |
US10182131B2 (en) | Method for selecting network connection concentrators | |
US10333831B2 (en) | Method of optimizing the load of a network connection concentrator | |
US10356013B2 (en) | Method of emulating a multipath connection | |
EP2082329B1 (en) | System and method for redirecting requests | |
US20210084126A1 (en) | Packet fragmentation control | |
US10911484B2 (en) | Method for providing a connection between a communications service provider and an internet protocol, IP, server, providing a service, as well as a perimeter network, comprising the IP server, and an IP server providing the service | |
WO2020048622A1 (en) | A method, apparatus & computer program | |
EP3364624A1 (en) | A method of distributing a sub-flow associated with a session and a network apparatus | |
Bonaventure et al. | RFC 8041: Use cases and operational experience with multipath TCP | |
EP4391457A1 (en) | Communication method and apparatus | |
JP2024072265A (en) | Apparatuses, methods and non-transitory computer-readable storage media for network access to residential gateways | |
Binet et al. | Multipath TCP (MPTCP): motivations, status, and opportunities for the future internet |
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: 18769966 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: 18769966 Country of ref document: EP Kind code of ref document: A1 |