Multipath routing is the routing technique of using multiple alternative paths through a network, which can yield a variety of benefits such as fault tolerance, increased bandwidth, or improved security. The multiple paths computed might be overlapped, edge-disjointed or node-disjointed with each other. Extensive research has been done on multipath routing techniques, but multipath routing is not yet widely deployed in practice.
To improve performance or fault tolerance:
Concurrent multipath routing (CMR) is often taken to mean simultaneous management and utilization of multiple available paths for the transmission of streams of data. The streams may be emanating from a single application, or multiple applications. A stream is assigned a separate path, as uniquely possible given the number of paths available. (If there are more streams than available paths, some streams will share paths.) This provides better utilization of bandwidth by creating multiple transmission queues. It provides a degree of fault tolerance in that should a path fail, only the traffic assigned to that path is affected. There is also, ideally, an alternative path immediately available upon which to continue or restart the interrupted stream. CMR provides better transmission performance and fault tolerance by providing:
- Simultaneous, parallel transport over multiple carriers.
- Load balancing over available assets.
- Avoidance of path discovery when reassigning an interrupted stream.
Shortcomings of CMR are:
- Some applications may be slower in offering traffic to the transport layer, thus starving paths assigned to them, causing under-utilization.
- Moving to the alternative path will incur a potentially disruptive period during which the connection is re-established.
A more powerful form of CMR (true CMR) goes beyond merely presenting paths to applications to which they can bind. True CMR aggregates all available paths into a single, virtual path.
Applications send their packets to this virtual path, which is de-multiplexed at the Network Layer. The packets are distributed to the physical paths via some algorithm including round-robin or weighted fair queuing. Should a link fail, succeeding packets are not directed to that (/those) path(s). The stream continues uninterrupted, transparently to the application. This method provides significant performance benefits over the application level CMR:
- By continually offering packets to all paths, the paths are more fully utilized.
- No matter how many nodes (and thus paths) fail, so long as at least one path constituting the virtual path is still available, all sessions remain connected. This means that no streams need to be restarted from the beginning and no re-connection penalty is incurred.
True CMR can, by its nature of using differing routes, causes out-of-order delivery (OOOD) of packets. That is severely debilitating for standard TCP. Standard TCP, however, has been exhaustively proven to be inappropriate for use in challenged wireless environments and must, in any case, be augmented by a facility, such as a TCP gateway, that is designed to meet the challenge. One such gateway tool is SCPS-TP, which by using the Selective Negative Acknowledgement (SNACK) capability instead of ACK all datagrams, deals successfully with the OOOD problem.
Another important benefit of true CMR, desperately needed in wireless network communications, is its support for enhanced security. Simply put, for an exchange to be compromised, multiple of the routes it traverses must be compromised. The reader is referred to the references in the “To improve network security” section for discussion on this topic.
In networking and in graph theory, capillary routing, for a given network, is a multi-path solution between a pair of source and destination nodes. Unlike shortest-path routing, or max-flow routing; for any given network topology - only one capillary routing solution exists.
Capillary routing can be constructed by an iterative linear programming (LP) process, transforming a single-path flow into a capillary route.
- First minimize the maximal value of the load on all of the network routing node links
- Do that by minimizing an load upper bound value that is applied to all links.
- The full mass of the flow will be split equally across the possible parallel routes.
- Find the bottleneck links of the first layer (see below), then set their loading amount at the found minimum.
- Additionally, minimize the maximal load of all remaining links, but now without the bottleneck links of the first layer.
- This second iteration further refines the path diversity.
- Next, we determine the bottleneck links of the 2nd network layer.
- Again, minimize the maximal load of all remaining links, but now without the bottlenecks of the 2nd network layer as well.
- Repeat this algorithm until the entire communication footprint is enclosed in the bottlenecks of the constructed layers.
At each functional layer of the network protocol, after minimizing the maximal load of links, the bottlenecks of the layer are discovered in a bottleneck detection process.
- At each iteration of the detection loop, we minimize the sending of traffic over all links having maximal loading, and being suspected as bottlenecks.
- Links unable to maintain their traffic load at the maximum are eventually removed from the candidate path list.
- The bottleneck detection process stops when there are no more links to remove, because this best path is now known.
The animated image shows capillary routing footprint between a pair of nodes in a mobile ad-hoc network.
This article includes a list of references, related reading or external links, but its sources remain unclear because it lacks inline citations. (June 2012) (Learn how and when to remove this template message)
- S.-J. Lee and M. Gerla, “Split Multipath Routing with Maximally Disjoint Paths in Ad Hoc Networks,” Proc. ICC 2001, vol. 10, pp. 3201–3205, June 2001.
- A. Nasipuri, R. Castaneda, and S. R. Das, “Performance of Multipath Routing for On-Demand Protocols in Mobile Ad Hoc Networks,” Mobile Networks and Applications, vol. 6, no. 4, pp. 339–349, Aug. 2001.
- M. K. Marina and S. R. Das “On-Demand Multi Path Distance Vector Routing in Ad Hoc Networks,” Proc. ICNP 2001, pp. 14–23, Nov. 2001.
- A. Tsirigos and Z. J. Haas, “ Multipath Routing in the Presence of Frequent Topological Changes,” IEEE Communications Magazine, vol. 39, no. 11, pp. 132–138, Nov. 2001.
- H. Lim, K. Xu, and M. Gerla, “TCP Performance over Multipath Routing in Mobile Ad Hoc Networks,” Proc. ICC 2003, vol. 2, pp. 1064–1068, May 2003.
- A. Tsirigos and Z. J. Haas, “Analysis of Multipath Routing—Part I: The Effect on the Packet Delivery Ratio,” IEEE Trans. Wireless Communications, vol. 3, no. 1, pp. 138–146, Jan. 2004.
- S. Card, F. Tims, "Concurrent Multipath Routing & Transport in a Mobile Wireless Gateway,"unclassified paper presented in MILCOM 2004 classified session, available upon request from support at www.critical.com.
- N. Kammenhuber, "Traffic-Adaptive Routing", Chapter 6.2 "Related Work", http://mediatum.ub.tum.de/doc/635601/635601.pdf
To improve network security:
- W. Lou and Y. Fang, ""A Multipath Routing Approach for Secure Data Delivery,"" Proc. MILCOM 2001, vol. 2, pp. 1467–1473, Oct. 2001.
- C. K.-L. Lee, X.-H. Lin, and Y.-K. Kwok, “A Multipath Ad Hoc Routing Approach to Combat Wireless Link Insecurity,” Proc. ICC 2003, vol. 1, pp. 448–452, May 2003.
- S. Bouam and J. Ben-Othman, “Data Security in Ad Hoc Networks Using Multipath Routing,” Proc. PIMRC 2003, vol. 2, pp. 1331–1335, Sept. 2003.
- P. Papadimitratos and Z. J. Haas, “Secure Data Transmission in Mobile Ad Hoc Networks,” Proc. ACM WiSe 2003, pp. 41–50, Sept. 2003.
- Zhi Li and Yu-Kwong Kwok, "A New Multipath Routing Approach to Enhancing TCP Security in Ad Hoc Wireless Networks," Proc. ICPP Workshops, pp. 372–379, June 2005.
- Prof. Dijiang Huang's multipath routing bibliography: