GB2493710A - A method for the sender of a packet to select the path the packet takes through a network. - Google Patents

A method for the sender of a packet to select the path the packet takes through a network. Download PDF

Info

Publication number
GB2493710A
GB2493710A GB1113931.8A GB201113931A GB2493710A GB 2493710 A GB2493710 A GB 2493710A GB 201113931 A GB201113931 A GB 201113931A GB 2493710 A GB2493710 A GB 2493710A
Authority
GB
United Kingdom
Prior art keywords
text
packet
router
path selector
sender
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
GB1113931.8A
Other versions
GB201113931D0 (en
Inventor
Gregory Detal
Olivier Bonaventure
Simon Van Der Linden
Gildas Avoine
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Universite Catholique de Louvain UCL
Katholieke Universiteit Leuven
Original Assignee
Universite Catholique de Louvain UCL
Katholieke Universiteit Leuven
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Universite Catholique de Louvain UCL, Katholieke Universiteit Leuven filed Critical Universite Catholique de Louvain UCL
Priority to GB1113931.8A priority Critical patent/GB2493710A/en
Publication of GB201113931D0 publication Critical patent/GB201113931D0/en
Priority to PCT/EP2012/065601 priority patent/WO2013023989A1/en
Publication of GB2493710A publication Critical patent/GB2493710A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/34Source routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

A method for sending a packet with a header from a sender to a receiver in a data communication network comprising one or more routers having two or more available next hops. An invertible function F encoding a sequence of X bits into another sequence of X bits is selected. The sender performs the steps of selecting a preferred next hop for each of the routers; grouping each of the preferred next hops in a path selector, of length X bits; applying the inverse of the function F to the path selector and storing the result in a first subset of the header; and sending the packet across the network. A router performs the steps of: applying the function F to the first subset of the header to obtain the original path selector; extracting from the path selector the preferred next hop for the router; and sending the packet through the preferred next hop.

Description

METHOD AND DEVICE FOR SELECTING NEXT HOP IN A DATA NETWORK
TECHNICAL FIELD
[0001] The present invention relates generally to the field of data communications network More particularly, the invention relates to a method for sending a packet from a sender to a receiver in a data communication network comprising one or more routers, a least one router having two or more available next hops and to devices for sending and routing packets in said data communication network.
DESCRIPTION OF RELATED ART
[0002] Load balancing plays a key role in enterprise, datacenter and ISP networks. It allows to improve the performance and the scalability of the Internet by distributing the load evenly across network links, servers, or other resources. Load balancing allows to maximize the throughput, achieve redundant connectivity or reduce congestion. Different forms of load balancing are deployed at various layers of the protocol stack. At the datalink layer, frames can be distributed over parallel links between two devices. At the application layer, requests can be spread on a pool of servers. At the network layer, the most common technique, Equal-Cost Multi-Path (ECMP) allows routers to forward packets over multiple equally-good paths. ECMP may both increase the network capacity and improve the reaction of the control plane to failures. Current ECMP-enabled routers proportionally balance flows across a set of equal next hops on the path to the destination.
[0003] Various methods to select a next hop are known. The most deployed next-hop selection method is solely based upon a hash computed over several fields of the regular packet headers. Using a hash function ensures a somewhat fair distribution of the next-hop selection (See e.g. 7.
Cao, 7. Wang, and E. Zegura "Performance of Hashing-Based Schemes for Internet Load Balancing" In Proc. IEEE INF000M, 2000). Most implementations include as input to the hash computation the transport-level port numbers allowing to improve the load spreading while still maintaining the same path for a given transport level flow.
[00041 However, using the transport header to perform the network layer forwarding breaks the layered architecture, enabling the transport layer to influence the path being followed by packets. Although some topology discovery applications exploit this piinciple, it remains difficult for end hosts to accurately control forwarding decisions or even be aware of the path diversity that is available in the network. Multipath-aware transport protocols such as SCTP-CMT or MultiPath TCP would clearly benefit from being able to select network paths that are as independent as possible to avoid congestion Unfortunately, this is not possible with the existing hash-based load-balancing techniques. Source routing techniques could enable end hosts to choose the paths their packets follow. Unfortunately, standard IP source routing does not scale well and has well-known security problems. Better alternatives that let end hosts leverage on the path diversity have been proposed. However, these solutions rely on specific shim headers that follow the IP header. Experience shows that it is very difficult to incrementally deploy such a new header in a network.
[0005] For performing load balancing at the network layer it is known to use Equal-Cost Multi-Path (ECMP). ECMP is discussed in C. Hopps "Analysis of an Equal-Cost Multi-Path Algorithm" RFC 2992, IETF, November 2000.
ECMP is a packet forwarding strategy that uses paths that tie for the best path selection. When such strategies are being used, routers need to balance packets over multiple next hops. Various next-hop selection methods exist to balance packets over load-balanced paths. They should meet the following requirements: -Minimal disruption: Packets from the same TCP flow should always follow the same path in order to avoid packet reordering.
-Transparency: Load balancing operates on normal network packets. It does not require any additional fields in packet header.
-Operate at Line Rate: The additional computation required to balance the packets should be marginal.
Load balancing should also fairly share the load over the next hops. Since flows vary widely in terms of number of packets and volume, this is not that easy. Most load-balancing methods that meet these requirements are based on a hash function. They compute a hash over the fields that identify the flow in the packet headers. These fields are usually the source and destination IF addresses, the protocol number and the source and destination ports. In the present description, we call these fields the 5-tuple. The computed hash can then be used in various ways to select a next hop. The simplest and most deployed method is called Modulo-N. If there are N available next hops, the remainder of dividing the hash by N is used as an identifier of the next hop to use. Because of the roughly uniform distribution of the hashes, this method results in a uniform distribution in terms of number of packets.
PRIOR ART DISCUSSION
[0006] An example of a hashing-based network load balancing method is disclosed by document US 6,888,797 wherein a router 2 determines an output link 12, 13, 14,15 or 16 based on a hash value computed from header data comprising source address, destination address, source port, destination port, and protocol id, and from network load directions. This method allows the router to distribute the stream of packets to the output links according to a desired load distribution. However, this method does not allow the sender to predetermine the link to be selected for specific packets.
[0007] Another example of a hashing-base network load balancing method is disclosed in US 7,233,575. This document addresses the situation where at least routers in the network have the same number of valid next hops. In such a situation, the known hashing methods will assign all packet of a given flow, i.e. having same source and destination address to the same output next-hop in successive routers of the network. Load balancing of packets at different routers is highly correlated. This phenomenon is called polarization. This leads to systematic unbalanced load distribution. This problem is solved by assigning different hashing parameters to each of the routers, in such a way that the next-hop selections for each router are uncorrelated. However, this document also does not address the selection of specific paths.
[0008] The following references all either do not allow the control of the specific path, or require additional data in the header, and thereby do not meet the transparency requirement: 1. P. B. Godfrey, I. Ganichev, S. Shenker, and I. Stoica. "Fathlet Routing".
In Proc. ACM SIGCOMM, August 2009.
2. H T. Kaur et al. BANANAS: "An Evolutionary Framework for Explicit and Multipath Routing in the Internet" In Proc. ACM SIGCOMM FDNA Workshop, 2003.
3. M. Motiwala, M. Elmore, N. Feamster, andS. Vempala. "Path Splicing" In Proc. ACM SIGCOMM, October 2008.
4. X. Yang and D. Wetherall. "Source Selectable Path Diversity via Routing Deflections" In Proc. ACM SIGCOMM, August 2006.
[0009] The present invention aims at providing a method and device that overcomes the above-discussed drawbacks of the prior art.
[0010] In particular, it is an object of the present invention to provide a method for sending a packet from a sender to a receiver in a data communication network, wherein the sender can select the actual next hop out of a router in the network for specific packets, in the case where a router has more than one available next hops. Preferably, when the sender does not wish to select the actual next hop, the router having more than one available next hop should select the next hop in a load-balanced way, i.e. using each of the next hops evenly.
[0011] Another object of the present invention is to provide a sender and a router adapted for performing this method. Such a method and devices may be used for example for testing the operation of specific links and for monitoring the network. This feature may also be used for improving performance of the network
SUMMARY OF THE INVENTION
[0012] According to a first aspect, the present invention relates to a method for sending a packet, said packet comprising a header, from a sender to a receiver in a data communication network comprising one or more routers, one or more routers having two or more available next hops leading to said receiver. In the method, a function F encoding a sequence of X bits into another sequence of X bits is selected, said function being invertible. The sender performs the steps of selecting a preferred next hop for each of said one or more routers; grouping each of said preferred next hops in a path selector, said path selector having a length X in bits; applying the inverse of said function F to said path selector and storing the result in a first subset of said header; sending said packet across said data communication network. At least one of the routers performs the steps of applying said function F to said first subset of said header for obtaining the original path selector; extracting from said path selector the preferred next hop selected by the sender for said one router; sending said packet through said preferred next hop. Thereby, the sender can specify the path for the packet across the network, or "steer" the packets. The first subset of the header is the controllable fields" discussed in
the examples.
[0013] Said function F is advantageously selected among the functions where at least 40% or preferably 50% of the output bits change wherever a single bit in the input is changed. As a result of this choice, packets that have not been processed by a sender for being steered along a specific path are processed by a router of the network in a load-balanced way.
[0014] In a preferred embodiment of the invention, when the sender initiates a counter TTL and stores said counter in a second subset of said packet header and each successive router in the network receiving a packet decrements said counter TTL, a router having two or more available next hops uses said counter for extracting from said path selector the preferred next hop selected by the sender for said one router.
[0015] In a preferred embodiment, the grouping of each next hops in a path selector is performed by a lossless compression method. Thereby, an optimal use of the available space in the packet header is made for coding a maximum number of paths.
[0016] The function may advantageously be a block cipher selected from a group comprising Skip32 and ROb.
[0017] The first subset of header, where the path selector is stored, may comprise the source port and/or the destination port. It may also comprise the source address or a subset thereof, the destination address or a subset thereof, a flow label and an MPLS label.
[0018] In a preferred embodiment, the sender further computes a hash function based on a third subset of said header and adds said hash function to each of said preferred next hops grouped in said path selector, and the router further computes the same hash function based on said third subset of said header and adds said hash function to each of said preferred next hops extracted from said path selector. Thereby, the phenomenon of polarization discussed above is avoided. The third subset of the header is the
"uncontrollable fields" discussed in the examples.
[0019] According to a second aspect, the invention relates to a sender for sending a packet to a receiver in a data communication network comprising means for performing the steps performed by the sender in the method of the invention.
[0020] According to a third aspect, the invention relates to a router for routing a packet to a receiver in a data communication network comprising means for performing the steps performed by the router in the method of the invention.
[0021] According to a fourth aspect, the invention relates network comprising one or more senders according to the invention and one or more routers according to the invention.
[0022] According to a fifth aspect, the invention relates to a software comprising means for performing the steps performed by the sender in the invention and/or for performing the steps performed by the router in the invention.
BRIEF DESCRIPTION OF THE DRAWING
[0023] Fig.1 a schematic view of an example network wherein the invention may be deployed.
[0024] Fig.2 illustrates schematically the steps of the method of the invention performed in a sender.
[0025] Fig.3 illustrates schematically the steps of the method of the invention performed in a router.
DETAILED DESCRIPTION OF THE INVENTION
[0026] A schematic representation of all possible paths between a sender S and a destination D in an exemplary network is shown in Fig. 1. A set of routers Ri, R2, . . . R8 may transport data packets along possible hops from a router to a next one shown as arrows. Routers Ri and R3 have two available next hops, and therefore these routers may select two possible next hops for an incoming data packet. Similarly, router R4 has three available next hops. In this example there exist five different load-balanced paths between nodes S and D. [0027] In an example embodiment, the method of the invention is decomposed in four separate operations. First, the desired path is specified as a sequence of next-hop selections by the sender, that we call a path selector.
This path selector is then encoded inside selected header fields of the packets. We call these header fields controllable fields. Third, each router recovers from these fields the encoded path selector and, finally, the load-balanced next-hop selection it needs to apply on this packet. These four operations allow senders according to the invention to steer their packets inside the network. In this example, we focus on IPv4 and use the source and destination ports as controllable fields, i.e., they are used to encode the path selector. We also define uncontrollable fields that are used to add randomness in the forwarding process of packets from senders not according to the invention. With IPv4, these uncontrollable fields may include the source and destination IP addresses and the protocol number. The example embodiment starts from two assumptions. First, the same encoding function is used on all devices (senders or routers) inside the network. Second, the network topology is available to the sender, either directly or through a network information such as ALTO. From this network topology, it is possible to compute all the load-balanced paths for a given sender-destination pair. In the following, we first describe how the method represents a path as a path selector and how a router retrieves from a path selector the next-hop selection it needs to apply. Second, we discuss how to encode the path selector inside the packet header. Then, we discuss the load-balancing distribution of packets passing through routers and how the invention avoids polarization. Finally, we summarize the complete operations of the invention.
[0028] The path selector is encoded in the controllable field of the header. Designating the length in bits of this controllable field by X, a simple embodiment of the invention divides these X bits in a number L of subfields of equal length. However, in order to maximize the number of next hops selections that can be encoded inside a path selector having a limited length X in bits, a preferred embodiment of the invention encodes the path selector using a lossless compression. An example of an applicable lossless compression is as follows: [0029] The following definitions are used in the description of this preferred embodiment: B The radix of the path selector, i.e., the numeral base to encode the path selector.
n1 The next-hop selection of the ith router.
L The length of the path selector, i.e., number of next-hop selections that can be encoded in it.
Nr The number of next hops available for a router r that needs to forward a packet.
N1(d) The number of load-balanced next hops Nr on router r for the destination prefix d.
F(x) An invertible function applied on x.
H(x) A Hash function applied on x.
The uncontrollable fields used.
E1(n1) A function applied on a next-hop selection. It allows to add randomness using u to the next-hop selection.
D1(p) A function that performs the inverse of E1, i.e., x = D1(E1(x)) Vx E [0,B[.
AIIB The concatenation of A and B. [0030] A load-balanced path in a network can be described as a set of successive routers and their next-hop selections. For instance, the load balanced path highlighted in bold in Fig. 1 can be expressed as the following sequence: {R1 -R2,R4 -. R7}, where Ri -Rj means that Ri forwards the packet to Rj. There is no need to represent the next-hop selection of router R7 towards D as Ri only has one possible next hop. By knowing the number Nr of available next hops towards a destination for each router r in the network, next-hop selections can be mapped to a number n E [O,Nr[, where n indicates the index of the next hop which should be selected. By using this representation, the highlighted path in Fig. 1 can therefore be expressed as the following sequence of next-hop selections: {1 0, 3 2}, where i -.
specifies that the ith router on the path selects the th next hop. We define this sequence of next-hop selections to be a path selector.
Path Selector Representation.
[0031] To force a packet to follow a specific load-balanced path, the sender encodes the path selector inside the source and destination ports of the packet headers. The sender may store a path selector as a positional base-B unsigned integer, where B is known as the radix and shared by all the nodes in the network. This allows maximizing the number of next-hop selections that can be encoded inside the path selector, while minimizing the number of bits used. For a specific load-balanced path in the network, the path selector p can be generalized as: L-ii x (1) where n is an unsigned integer in base B that represents the next-hop selections of the ith router on the path. For the moment, we assume that each router is able to determine its position in the path selector. Only routers having multiple load-balanced next hops to forward a packet must retrieve the path selector. In this case, the router first extracts the path selector p from the packet's header fields and then retrieves the next-hop selection.
A path selector p can be inverted on the ith router on the path to find the next-hop selection n it needs to 4 apply on a packet by applying Eq. 2:
P I
= jj mod 13 (2) wherein the Land J represent the integer division. The integer division by B1 removes all load-balanced next-hop selections of upstream routers while the modulo operation removes all load-balanced next-hop selections of downstream routers.
Path Selector Length.
[0032] The fixed size of the packet header fields used to encode the path selector limits the number of encodable next hop selections to: L [j0g1(QX)J (3) where X is the size in bits of the header fields used to encode the path selector. With lPv4, X = 32 since the ports are used to convey the path selector. Increasing B decreases L, thus the number of load balanced next-hop selections that can be encoded inside the path selector. As the potential value of n1 is limited by the radix B, one should choose a B value so that it is the maximum degree in every possible network (for each possible destination prefix). It can be expressed as: B = V r. d (4) It is possible to represent for any router r in the network a next-hop selection n with a value which is lower than the maximum number of available next hops at any router in the network. In practice, most routers have a hardcoded upper bound on the number of next hops they can use for a destination, most of them use a maximum of 16 next hops Using a radix which is equal to the maximum number of next hops Nr for all routers might end up in an inefficient usage of the available bits in the packet header. Relaxing the problem by allowing routers to use more that one position inside the path selector wouid give more fiexibiiity on the load-balanced next-hop selection values that can be encoded at the source. For instance, if a router uses 3 positions of the path selector, then a sender can use n C [0, 3 x B[ to represent the next-hop selection of this router.
Position Inside the Path Selector.
[0033] Up to now, we assumed that each router knows its position inside the path selector. However, in a real world scenario it is impossible for a router to identify the sequence of upstream routers thus making impossible to know its position inside the path selector. To still enable a sender to construct a path selector and for routers to extract corresponding next-hop selections, the method may use the Time-to-Live (TIL) of the packet to identify each router's position inside the path selector. As the TTL is decremented by each router and as the path selector is bounded by L, we can define the position of each routerto be ttl1 mod L, where ttl1 is the TTL value of the packet received at the ith router. The sender can, by knowing the initial TTL of the packets, encode the next-hop selection of each router on the path at the corresponding position inside the path selector. As previously mentioned, to allow a router to use more than one position inside the path selector, the router must decrement the TTL of the packets it forwards more than one time.
One Load-Balanced Path -Multiple Path Selectors.
[0034] When multiple connections between the same pair of hosts want their packets to follow the same load balanced path, using the same path selector generates a collision as each connection will use the same port numbers. To overcome this issue, the method may allow to generate multiple path selectors to describe the same load balanced path using two solutions that can be combined. First, the unused positions inside the path selector can be filled with random values. Second, by changing the initial TIL, the position of each router in the path selector changes and thus the pair of ports used to force a specific load-balanced path. This ensures that the 5-tuple used by the hosts varies from one connection to another.
Example.
[0035] Let us now illustrate how the method works in the simple network shown in Fig. 1. First, based on Eq. 3, we can deduce that the radix B must be 3. Using this radix, from Eq. 3, we can encode 20 load-balanced next-hop selections inside a path selector. Let us assume that the sender uses an initial TTL of 64 and wants this packet to follow the highlighted path in Fig. 1.
The positions of the next-hop selections of routers Ri and R4 inside the path selector are respectively 4 (64 mod 20) and 2 (62 mod 20). The path selector computed by the sender based on Eq. 1 can therefore be expressed as: p = {4 -. 0, 2 2} = 0 x 34 + 2 32 = 18 Note that this implies encoding a next-hop selection of 0 for all other positions inside the path selector. This value is then encoded inside the packet header.
Ri retrieves from the packet header the same path selector and the TTL value to compute its position inside the path selector, i.e., 4. It then computes the next-hop selection it needs to apply on the packet based on Eq. 2:
H
= mod: = U Ri decrements the TTL of the packet and forwards it to the next hop labeled 0, i.e., R2. R2 does not have load-balanced next hops. It forwards the packet to R4 and decrements the TTL. R4 applies the same operation as Ri. R4 computes: = [Tj 1110(13 = 2 The packet is therefore forwarded to R7 and then to D as R7 only has one possible next hop to forward the packet.
Invertible Function [0036] According to the method of the invention, the path selector is encoded inside the packet header using an invertible function F. This invertible function should meet two properties: -Bijection: F should be bijective such that there is a one-to-one correspondence between its domain and image which must be a sequence of bits of length X, {0 1}X, where X is the length in bits of the controllable fields. F must also be invertible, i.e., F1 that is the inverse of F such that: F(F(x)) = x Vx {0, i2 1}X -Avalanche effect: F must exhibit the avalanche effect. Indeed, a simple bijective function might end up in a poor distribution of the traffic. For instance, if only the port numbers are used as controllable fields, we do not want that all web traffic goes through the same next hop. Therefore, we require that the invertible function exhibits the avalanche effect, that is for a small variation of the input (different source-ports) a large variation of the output is observed. A large number of output bits (40% or even 50%) should change for a single input bit change.
Based on these two requirements, block ciphers such as Skip32 or RC5 are good candidates to implement this invertible function when 32 bits are controllable. Skip32 is a 32 bit block cipher based on SKIPJACK and available from http://www.qualcomm.com.au/PublicationsDocs/skip32.c. RC5 is another block cipher described in R. L. Rivest "The RC5 Encryption Algorithm" Proc. FSE, volume 1008, pages 86-96, 1994. Using such functions to encode the path selector enables a router to apply the inverse of this function on the controllable fields of the packet header to retrieve the path selector.
[0037] Fig.2 illustrates schematically the steps of the method of the invention performed in the sender. The identities of the different paths to be selected are grouped in the path selector p. Optionally, a hash function H is applied to the "uncontrollable fields, which are, in the example shown, the IP source, the IP destination, the protocol and the TTL (Time-to-live counter) The inverse of the function F is applied to the result and stored in the "controllable fields" of the header (the source port and destination port fields in the example shown) [0038] Fig.3 illustrates schematically the steps of the method of the invention performed in a router. The function F is applied to the "controllable fields" (source port and destination port in the example shown) and provides the path selector p. The TTL may be used as an index in the path selector for retrieving the applicable next hop. Optionally, the same hash function H is applied to the same "uncontrollable fields" (in the example shown, the IP source, the IP destination, the protocol and the TTL). Te result thereof is added to the applicable element of the path selector for obtaining the applicable next hop.
[0039] The pseudocode showing the operations performed by a router that has multiple paths available to forward a packet is as follows: Network-wide constant: X = The number of bits of the controllable fields in the packet header.
Input: pckt = The packet to forward.
Output: The next-hop selection to apply on pckt.
H is a hash function 1: L -LI0gB(2X)
2: Cf -ExtractControllableFields(pckt)
3: ut -ExtractUncontrollableFields(pckt)
4: ttl -ExtractTTL(pckt) 5: p F1(cb) 6: n1 L J/ B' mod L) j -H(u1 II ttl) mod L 7: if n1 < Ni then 8: return n1 9: else 10: return H(uf Cf ttl) mod N1 11: end if [0040] The Pseudocode showing the path selector Construction: Input: path = A set (ttl1,n1), where ttl is the TTL of the packet when received by router i on the path and ni the next-hop selection that should be undertaken by router i.
Input: ut = The uncontrollable fields the source needs to use to send a packet.
Output: The path selector to use to force a packet to follow the path using
the uncontrollable fields u
H is a hash function 1:L LlogB(2X) 2:p-0 3: for (ttl,n) e path do 4: p -p + (n1 +H(uf JJ 1111) mod B) x mod L) 5: end for 6: return p [0041] The terms and descriptions used herein are set forth by way of illustration only and are not meant as limitations. Those skilled in the art will recognize that many variations are possible within the spirit and scope of the invention as defined in the following claims, and their equivalents, in which all terms are to be understood in their broadest possible sense unless otherwise indicated. More specifically, the examples above are given in the context of an lPv4, but the invention applies as well to lFv6 networks, MALS networks, and TRILL networks. As a consequence, all modifications and alterations will occur to others upon reading and understanding the previous description of the invention. In particular, dimensions, materials, and other parameters, given in the above description may vary depending on the needs of the application.

Claims (1)

  1. <claim-text>CLAIMS1. A method for sending a packet, said packet comprising a header, from a sender to a receiver in a data communication network comprising one or more routers, one or more routers having two or more available next hops leading to said receiver, characterized in that -a function F encoding a sequence of X bits into another sequence of X bits is selected, said function being invertible; -the sender performs the steps of -selecting a preferred next hop for each of said one or more routers; -grouping each of said preferred next hops in a path selector, said path selector having a length X in bits -applying the inverse of said function F to said path selector and storing the result in a first subset of said header; -sending said packet across said data communication network; -one router of the one or more routers performs the steps of -applying said function F to said first subset of said header for obtaining the original path selector; -extracting from said path selector the preferred next hop selected by the sender for said one router; -sending said packet through said preferred next hop.</claim-text> <claim-text>2. The method of claim 1 characterized in that said function F is selected among the functions where at least 40% of the output bits change wherever a single bit in the input is changed.</claim-text> <claim-text>3. The method according to any of preceding claims characterized in that said function F is selected among the functions where at least 50% of the output bits change wherever a single bit in the input is changed.</claim-text> <claim-text>4. The method according to any of preceding claims wherein -the sender initiates a counter TTL and stores said counter in a second subset of said packet header; -each successive router in the network receiving a packet decrements said counter TTL; characterized in that a router having two or more available next hops uses said counter for extracting from said path selector the preferred next hop selected by the sender for said one router.</claim-text> <claim-text>5. The method according to any of preceding claims characterized in that said grouping of each of said preferred next hops in a path selector is performed by a lossless compression method.</claim-text> <claim-text>6. The method according to any of preceding claims characterized in that said function is a block cipher selected from a group comprising Skip32 and RCS.</claim-text> <claim-text>7. The method according to any of preceding claims characterized in that said first subset of said header is selected among the group comprising the source port and the destination port.</claim-text> <claim-text>8. The method according claim 7 characterized in that the group further comprises the source address or a subset thereof, the destination address or a subset thereof, a flow label and an MPLS label.</claim-text> <claim-text>9. The method according to any of preceding claims characterized in that the sender further computes a hash function based on a third subset of said header and adds said hash function to each of said preferred next hops grouped in said path selector; -the router further computes the same hash function based on said third subset of said header and adds said hash function to each of said preferred next hops extracted from said path selector.</claim-text> <claim-text>1O.A sender for sending a packet to a receiver in a data communication network characterized in that it comprises means for performing the steps performed by the sender in the method of any of claims 1 to 9.</claim-text> <claim-text>11.A router for routing a packet to a receiver in a data communication network characterized in that it comprises means for performing the steps performed by the router in the method of any of claims 1 to 9.</claim-text> <claim-text>12.A network comprising one or more senders according to claim 10 and one or more routers according to claim 11.</claim-text> <claim-text>13.A software comprising means for performing the steps performed by the sender in the method of any of claims 1 to 9 and/or for performing the steps performed by the router in the method of any of claims 1 to 9.</claim-text>
GB1113931.8A 2011-08-12 2011-08-12 A method for the sender of a packet to select the path the packet takes through a network. Withdrawn GB2493710A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
GB1113931.8A GB2493710A (en) 2011-08-12 2011-08-12 A method for the sender of a packet to select the path the packet takes through a network.
PCT/EP2012/065601 WO2013023989A1 (en) 2011-08-12 2012-08-09 Method and device for selecting next hop in a data network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB1113931.8A GB2493710A (en) 2011-08-12 2011-08-12 A method for the sender of a packet to select the path the packet takes through a network.

Publications (2)

Publication Number Publication Date
GB201113931D0 GB201113931D0 (en) 2011-09-28
GB2493710A true GB2493710A (en) 2013-02-20

Family

ID=44764427

Family Applications (1)

Application Number Title Priority Date Filing Date
GB1113931.8A Withdrawn GB2493710A (en) 2011-08-12 2011-08-12 A method for the sender of a packet to select the path the packet takes through a network.

Country Status (2)

Country Link
GB (1) GB2493710A (en)
WO (1) WO2013023989A1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10771389B2 (en) 2016-04-12 2020-09-08 Nicira, Inc. Virtual tunnel endpoints for congestion-aware load balancing
US10924352B2 (en) 2018-01-17 2021-02-16 Nicira, Inc. Data center network topology discovery
US11323340B2 (en) 2019-01-07 2022-05-03 Vmware, Inc. Packet flow monitoring in software-defined networking (SDN) environments
US11777853B2 (en) 2016-04-12 2023-10-03 Nicira, Inc. Congestion-aware load balancing in data center networks
US11889346B2 (en) 2022-03-21 2024-01-30 Vmware, Inc. Quality-aware user data forwarding in mobile communications systems
US11902264B2 (en) 2020-06-22 2024-02-13 Vmware, Inc. Path selection for data packets encrypted based on an IPSEC protocol

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103975547A (en) 2011-11-10 2014-08-06 适应性频谱和信号校正股份有限公司 Method, apparatus, and system for optimizing performance of a communication unit by a remote server
WO2013085486A1 (en) 2011-12-05 2013-06-13 Adaptive Spectrum And Signal Alignment, Inc. Systems and methods for traffic load balancing on multiple wan backhauls and multiple distinct lan networks
BR112014013647A8 (en) 2011-12-05 2017-06-13 Adaptive Spectrum & Signal Alignment Inc systems and methods for aggregating traffic on multiple return wan transport channels and multiple separate lan networks

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5353283A (en) * 1993-05-28 1994-10-04 Bell Communications Research, Inc. General internet method for routing packets in a communications network
US5721820A (en) * 1995-09-11 1998-02-24 International Business Machines Corporation System for adaptively routing data in switching network wherein source node generates routing message identifying one or more routes form switch selects

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6888797B1 (en) 1999-05-05 2005-05-03 Lucent Technologies Inc. Hashing-based network load balancing
US6980521B1 (en) 2000-11-29 2005-12-27 Cisco Technology, Inc. Method and apparatus for per session load balancing with improved load sharing in a packet switched network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5353283A (en) * 1993-05-28 1994-10-04 Bell Communications Research, Inc. General internet method for routing packets in a communications network
US5721820A (en) * 1995-09-11 1998-02-24 International Business Machines Corporation System for adaptively routing data in switching network wherein source node generates routing message identifying one or more routes form switch selects

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10771389B2 (en) 2016-04-12 2020-09-08 Nicira, Inc. Virtual tunnel endpoints for congestion-aware load balancing
EP3437264B1 (en) * 2016-04-12 2021-10-20 Nicira, Inc. Virtual tunnel endpoints for congestion-aware load balancing
US11777853B2 (en) 2016-04-12 2023-10-03 Nicira, Inc. Congestion-aware load balancing in data center networks
US10924352B2 (en) 2018-01-17 2021-02-16 Nicira, Inc. Data center network topology discovery
US11323340B2 (en) 2019-01-07 2022-05-03 Vmware, Inc. Packet flow monitoring in software-defined networking (SDN) environments
US11902264B2 (en) 2020-06-22 2024-02-13 Vmware, Inc. Path selection for data packets encrypted based on an IPSEC protocol
US11889346B2 (en) 2022-03-21 2024-01-30 Vmware, Inc. Quality-aware user data forwarding in mobile communications systems

Also Published As

Publication number Publication date
GB201113931D0 (en) 2011-09-28
WO2013023989A1 (en) 2013-02-21

Similar Documents

Publication Publication Date Title
GB2493710A (en) A method for the sender of a packet to select the path the packet takes through a network.
US9876719B2 (en) Method and apparatus for load balancing in network switches
US9455967B2 (en) Load balancing hash computation for network switches
Singh et al. A survey on internet multipath routing and provisioning
Guo et al. JumpFlow: Reducing flow table usage in software-defined networks
US8665879B2 (en) Flow based path selection randomization using parallel hash functions
EP2276207B1 (en) Node based path selection randomization
US20120082163A1 (en) Packet Routing In A Network
Detal et al. Revisiting flow-based load balancing: Stateless path selection in data center networks
US10243857B1 (en) Method and apparatus for multipath group updates
US9906592B1 (en) Resilient hash computation for load balancing in network switches
CN111711565A (en) Multi-path routing method oriented to high-speed interconnected dragonfly + network
CN107135152B (en) Security reinforcing method for transmitting key information in packet transport network
Nishimuta et al. Adaptive server and path switching for content delivery networks
Van der Linden et al. Revisiting next-hop selection in multipath networks
Alouneh et al. MPLS security: an approach for unicast and multicast environments
Tam et al. Leveraging performance of multiroot data center networks by reactive reroute
Han et al. A variable forwarding equivalence class for MPLS networks
Jia et al. A scalable source multipath routing architecture for datacenter networks
Jokela Forwarding with in-packet bloom filters
Nakamura et al. Layer-3 multipathing in commodity-based data center networks
Kim et al. Multiple path selection algorithm using prime number
Xia et al. MTDS: A Multicast Tree Dynamic Switching Approach Based on Rate
Felix et al. Unaware Routing in Highly Variable Network Traffic Using Joint Security and Routing Analysis

Legal Events

Date Code Title Description
WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)