-
2020-07-28
15/593,883
2017-05-12
US 10,728,149 B1
2020-07-28
-
-
John D Blanton
Carlson, Caspers, Vandenburgh & Lindquist, P.A.
2037-05-12
Smart Summary: A method for routing packets allows a device to send data efficiently over multiple network links. When a packet is received, it has a header and data field that indicate where it needs to go. The system creates two new packets that contain the same data but are sent to different devices connected through separate links. Each new packet has its own header that specifies the destination device for that particular link. This approach helps improve communication by utilizing multiple paths to reach the final destination. 🚀 TL;DR
A method of routing a packet from a routing device includes receiving a first packet having a first header and a first data field. The first header has a final destination corresponding to a destination device communicatively coupled to the routing device via at least two parallel network links. A second packet having a second header and a second data field is sent over the first network link. The second data field is identical to the first data field. A destination address in the second header corresponds to a device on a first of the parallel network links. A third packet having a third header and a third data field is sent over the second network link. The third data field is identical to the first data field. a destination address in the third header corresponds to a device on a second of the parallel network links.
Get notified when new applications in this technology area are published.
H04L45/745 » CPC main
Routing or path finding of packets in data switching networks; Address processing for routing Address table lookup; Address filtering
H04L45/24 » CPC further
Routing or path finding of packets in data switching networks Multipath
H04L45/56 » CPC further
Routing or path finding of packets in data switching networks Routing software
H04L49/109 » CPC further
Packet switching elements characterised by the switching fabric construction Integrated on microchip, e.g. switch-on-chip
H04W40/26 IPC
Communication routing or communication path finding; Connectivity information management, e.g. connectivity discovery or connectivity update for hybrid routing by combining proactive and reactive routing
This application claims priority to U.S. patent application Ser. No. 14/613,894, filed on Feb. 4, 2015, entitled “HYBRID AUTONOMOUS NETWORK AND ROUTER FOR COMMUNICATION BETWEEN HETEROGENEOUS SUBNETS”, which claims the benefit of U.S. Provisional Patent Application No. 61/935,661, filed on Feb. 4, 2014, entitled “HYBRID AUTONOMOUS ROUTER FOR TACTICAL COMMUNICATION”, both of which are hereby incorporated herein by reference.
This invention was made with government support under contract FA8750-12-C-0213 awarded by the Air Force Research Laboratory (AFRL) Small Business Innovation Research (SBIR). The government has certain rights in the invention.
The present invention relates to networking systems and components in general and, more particularly to networking systems and components for routing packets.
Various networking systems, protocols and networking equipment and software exist to connect various discrete components together into a communication network.
However, existing networking approaches are incapable of integrating heterogeneous wireless networks. Such existing networks have:
Embodiments disclosed herein provide for a method of routing an Internet Protocol (IP) packet from a routing device. The method includes receiving a first IP packet having a first IP header and a first IP data field. The first IP header has a final destination corresponding to a destination device communicatively coupled to the routing device via at least two parallel network links. The at least two parallel network links include a first network link communicatively coupling the routing device to a first device and a second network link communicatively coupling the routing device to a second device. A second IP packet having a second IP header and a second IP data field is sent over the first network link. The second IP data field is identical to the first IP data field, and a destination address in the second IP header corresponds to the first device. A third IP packet having a third IP header and a third IP data field is sent over the second network link. The third IP data field is identical to the first IP data field, and a destination address in the third IP header corresponds to the second device.
Embodiments disclosed herein also provide for a routing module. The routing module includes a processor readable medium having software stored thereon. The software, when executed by one or more processing devices, is configured to receive a first IP packet having a first IP header and a first IP data field. The first IP header has a final destination corresponding to a destination device communicatively coupled to the routing device via at least two parallel network links. The at least two parallel network links including a first network link communicatively coupling the routing device to a first device and a second network link communicatively coupling the routing device to a second device. The software sends a second IP packet having a second IP header and a second IP data field over the first network link. The second IP data field is identical to the first IP data field, and a destination address in the second IP header corresponds to the first device. The software sends a third IP packet having a third IP header and a third IP data field over the second network link. The third IP data field is identical to the first IP data field, and a destination address in the third IP header corresponds to the second device.
Embodiments disclosed herein also provide for a routing device. The routing device includes a processor readable medium having software stored thereon. The software, when executed by one or more processing devices, is configured to receive a first IP packet having a first IP header and a first IP data field. The first IP header has a final destination corresponding to a destination device communicatively coupled to the routing device via at least two parallel network links. The at least two parallel network links include a first network link communicatively coupling the routing device to a first device and a second network link communicatively coupling the routing device to a second device. The software sends a second IP packet having a second IP header and a second IP data field over the first network link. The second IP data field is identical to the first IP data field, and a destination address in the second IP header corresponds to the first device. The software sends a third IP packet having a third IP header and a third IP data field over the second network link. The third IP data field is identical to the first IP data field, and a destination address in the third IP header corresponds to the second device.
FIG. 1 illustrates an embodiment of an airborne network built from mixed IP devices;
FIG. 2a is a block diagram of hardware of a router constructed in accordance with an embodiment of the present invention;
FIG. 2b is an illustration of the software architecture of a router constructed in accordance with an embodiment of the present invention;
FIG. 3 is a diagram of an airborne network with routers constructed in accordance with an embodiment of the present invention;
FIG. 4 is a block diagram of software architecture of the present invention;
FIG. 5 is a conceptual view of a router constructed in accordance with an embodiment of the present invention containing multiple interfaces;
FIG. 6 illustrates the black side of a notional multi-subnet airborne network;
FIG. 7 is an illustration of routers constructed in accordance with an embodiment of the present invention placed in a multi-subnet airborne network;
FIG. 8 is a more detailed block diagram of the software architecture of a router constructed in accordance with an embodiment of the present invention;
FIG. 9 is an illustration of an initial state of an embodiment of multi-subnet network;
FIG. 10 is an illustration of the multi-subnet network of FIG. 9 as a UAV joins the network;
FIG. 11 is an illustration of the multi-subnet network of FIG. 10 after step 4 of the UAV joining the network;
FIG. 12 is an illustration of the multi-subnet network of FIG. 11 with completed alias-tag tables;
FIG. 13 is an illustration of the multi-subnet network showing an example of a data path route;
FIG. 14 is an illustration of the multi-subnet network showing dynamic failover and rerouting along a different path;
FIG. 15 is a detailed architecture overview of a router constructed in accordance with an embodiment of the present invention;
FIG. 16 illustrates an alias tag table entry;
FIG. 17 is an illustration of a completed alias tag table;
FIG. 18 is an example of the format of a policy table entry;
FIG. 19 is an illustration of the multi-subnet network with a UAV scenario;
FIG. 20 is a block diagram of an AV network configuration illustrating ports available on a router constructed in accordance with an embodiment of the present invention;
FIG. 21 is a block diagram of a router constructed in accordance with an embodiment of the present invention utilized as a ground control station coupled to the internet;
FIG. 22 is a block diagram of an embodiment of the software architecture of a router constructed in accordance with an embodiment of the present invention;
FIG. 23 is an illustration of test bed utilizing routers constructed in accordance with an embodiment of the present invention;
FIG. 24 is a diagram illustrating steps utilizing link quality monitoring and proactive link failover;
FIG. 25a and FIG. 25b illustrate routers constructed in accordance with an embodiment of the present invention installed in a test bed with mini-CDL radios;
FIG. 26a is a diagram illustrating how data is routed in the absence of load balancing;
FIG. 26b is a diagram illustrating data flow balanced across available links;
FIG. 27 is an illustration of one scenario of maximized network performance;
FIG. 28 is an illustration of a second scenario of maximized network performance;
FIG. 29, FIG. 30 and FIG. 31 are diagrams illustrating subnet convergence function with link quality monitoring;
FIG. 32 is a diagram illustrating flow control;
FIG. 33 is a diagram illustrating bandwidth and latency monitoring;
FIG. 34 is a diagram illustrating packet loss detection;
FIG. 35 and FIG. 36 are diagrams illustrating subnet convergence function utilizing flow control;
FIG. 37 and FIG. 38 are diagrams illustrating subnet convergence utilizing traffic redirection;
FIG. 39 and FIG. 40 are diagrams illustrating quality of service aware unicast routing service;
FIG. 41 and FIG. 42 are diagrams illustrating mobility management function;
FIG. 43 and FIG. 44 are diagrams illustrating load balancing function;
FIG. 45 is a diagram illustrating a test in which redundant paths between subnetworks are created and on the paths is impaired;
FIG. 46 is a diagram illustrating a test which recreates redundant links and verifies load balancing enhancing multicast efficiency;
FIG. 47 is a diagram illustrating a test platform for network aware, traffic aware; proactive failover and load balancing;
FIG. 48 is a diagram illustrating a use case of routers constructed in accordance with an embodiment of the present invention showing an initial state and setup before join;
FIG. 49 is a diagram illustrating the use case of FIG. 48 when a node joins the network (step 1);
FIG. 50 is a diagram illustrating the use case of FIG. 48 when a node joins the network (step 2);
FIG. 51 is a diagram illustrating the use case of FIG. 48 when a node joins the network (step 3);
FIG. 52 is a diagram illustrating the use case of FIG. 48 when a node joins the network (step 4);
FIG. 53 is a diagram illustrating the use case of FIG. 48 when a node joins the network (step 5);
FIG. 54 is a diagram illustrating the use case of FIG. 48 when a node joins the network (step 6);
FIG. 55 is a diagram illustrating the use case of FIG. 48 when a node joins the network (step 7);
FIG. 56 is a diagram illustrating the use case of FIG. 48 when a node joins the network (step 8);
FIG. 57 is a diagram illustrating the use case of FIG. 48 when a node joins the network (step 9);
FIG. 58 is a diagram illustrating the use case of FIG. 48 when a node joins the network (step 10);
FIG. 59 is a diagram illustrating the use case of FIG. 48 when a node joins the network showing completed table entries;
FIG. 60 is a diagram illustrating a use case of routing a packet (step 1);
FIG. 61 is a diagram illustrating the use case of FIG. 60 routing a packet (step 2);
FIG. 62 is a diagram illustrating the use case of FIG. 60 routing a packet (step 3);
FIG. 63 is a diagram illustrating a use case of routing a packet;
FIG. 64 is a diagram illustrating a use case of re-routing a packet (step 1);
FIG. 65 is a diagram illustrating the use case of FIG. 64 re-routing a packet (step 2):
FIG. 66 is a diagram illustrating the use case of FIG. 64 re-routing a packet (step 3);
FIG. 67 is a diagram illustrating a use case of routing a packet illustrating a return path:
FIG. 68 is a diagram illustrating a use case of routers constructed in accordance with an embodiment of the present invention showing a node moving from one TTNT subnet to another TTNT subnet;
FIG. 69 is a diagram illustrating a use case of routers constructed in accordance with an embodiment of the present invention showing routing using replication and balancing;
FIG. 70 is a diagram illustrating a use case of routers constructed in accordance with an embodiment of the present invention showing a link fault while routing data;
FIG. 71 is a diagram illustrating a use case of routers constructed in accordance with an embodiment of the present invention showing routing of control messages; and
FIG. 72 is a diagram illustrating a use case of routers constructed in accordance with an embodiment of the present invention showing routing of control messages with link failure.
FIG. 73A is a diagram illustrating a format for an original packet.
FIG. 73B is a diagram illustrating a format for a first option of a HART address switched packet.
FIG. 73C is a diagram illustrating a format for a second option of a HART address switched packet.
FIG. 74A is a diagram illustrating a format for an original packet.
FIG. 74B is a diagram illustrating a format for a HART tunneled packet.
A hybrid router, an autonomous IP based network integration solution that provides end-to-end sensor-to-shooter connectivity across a heterogeneous tactical network is disclosed. This network consists of IP sub-networks of various types such as TTNT (Tactical Targeting Network Technology), mini-CDL (Common Data Link), free space optics communications (FSOC), QNT (Quint Networking Technology), and JCAN (Joint Capability for Airborne Networking). These integrated networks provide improved tactical communications and situational awareness. Network integration is the convergence of many IP devices (wired, wireless, radio, optical) each forming IP subnets into a single IP network. Each of the device subnets may be IP capable on their own, but cannot integrate seamlessly and automatically with others.
The Hybrid Autonomous Router for Tactical Networks (HART) is a self-configuring integration router software module that interconnects heterogeneous subnets of differing IP devices into a single routable network implemented for integration with a mini-CDL radio.
The HART integration router is a software tool that can be added into existing commercial routers on an add-on card, integrated into software routers such as quagga or vyatta, or can be installed in a network appliance where data is sent through the appliance. These HART Integration Routers may be installed on appliances and nodes throughout the black-side of a network.
Many different wireless networking technologies are currently used to build airborne networks today. These wireless networks operate on different frequencies, use different waveforms, and provide limited autonomous switching and routing capability. This is shown in FIG. 1.
Existing approaches for integrating these heterogeneous wireless networks suffer from four major limitations overcome by the HART approach:
HART addresses two major technical challenges that remain unaddressed by the state of the art to achieve the desired capability of an autonomous integration router for tactical edge networks:
FIG. 2a shows a block diagram of the hardware where the integration router (HART) contains multiple interfaces, i.e., a LAN interface connected to a HAIPE-fronted platform LAN and WAN interfaces connected to different wireless terminals, e.g., TTNT, QNT, mini-CDL, FSO). Some of these wireless terminals implement bridged IP subnets (e.g., mini-CDL, FSO) while others implement routed IP subnets using proprietary routing protocols (e.g., TTNT, QNT). The software architecture of the HART integration router, shown in FIG. 2b, consists of a core OSPF routing function with plug-in router extensions for each type of wireless terminal. The terminal-specific router extensions implement the HART innovations listed above to enable performance-optimized routing across the heterogeneous collections of bridged and routed IP subnets.
The HART approach has two major beneficial features:
Underlying the HART approach for network integration and enhanced tactical routing is a set of innovative techniques and mechanisms that will be implemented within software module that can be installed either as an add-on to existing routers, or as a network appliance within existing networks. To address the challenges and capability gaps described above, the HART software may provide these capabilities:
Hybrid Routing
HART employs a hybrid routing approach to establish and maintain end-to-end connectivity between nodes in a mobile tactical network environment. It employs a direct routing approach for connecting nodes within the tactical AS (Autonomous Systems) and uses a mobile IP based overlay routing approach with tactical enhancements for connecting tactical nodes to nodes in the GIG. The enhanced Mobile IP based technique eliminates the packet encapsulation overhead associated with overlay routing when packets traverse the bandwidth-constrained tactical user sub-nets. The HART Hybrid routing addresses both:
Quality-Aware Routing
The proposed approach for enhanced tactical routing is based on dynamic route selection using link quality and using optical and other link types as failover links when primary links failed or degraded. This is now expanded to become more generic to allow more flexibility for Quality aware routing. HART tracks link quality using network monitors, link probes and other techniques. This quality-aware link monitoring will be used to calculate a Link Quality Metric (LQM). The LQM will be stored in HART and updated in the router on the HART machine adding quality-aware routing to existing routers (which do not have a way to monitor and probe the link quality).
Integration with existing Sub-networks
The HART module integrates with existing subnets and gateways (e.g. JCAN: Joint Capability for Airborne Networking and BACN: Battlefield Airborne Communications Node) as a separate AS (Autonomous Systems). It uses the innovative BGP-MX (BGP with Mobility Extensions) service to exchange network reachability information with these other ASes. BGP-MX overcomes static manual configuration of BGP peering arrangements by implementing mechanisms that enable transit routers in a mobile AS environment to (1) dynamically discover BGP peers from a different AS and automatically establish a peering relationship; and (2) converge rapidly to a new route in response to changes in the topology of the backbone networks.
Discussion
The HART approach can be used for network integration and enhanced tactical routing in a heterogeneous tactical networking environment. The HART approach may be used to enhance the following:
Analysis
Use cases of diverse multi-subnet environments and situations have been created such as: nodes joining or leaving a network; or nodes moving from one network (using TTNT) to another network (using Mini-CDL). Other use cases involved requested data flows from the ground to an aerial node, the reverse, and data flows from aerial node to aerial node. Some of these Use Cases are included in Appendix B below.
In various embodiments, HART solves:
These use cases were analyzed to determine what an integration router monitors, and what network dynamics are tracked, and what options are configured in existing hardware (routers and radios).
The HART design is refined by analyzing several real-world use cases of multi-subnet environments with different radio and routing capabilities.
After the design was refined, a subset of functionality was selected to create a prototype to demonstrate the HART approach. The features selected for prototyping were proactive failover across many links and integration with a Mini-CDL radio and interface. With the proactive failover mechanism, the HART router monitors the quality of each radio link to detect when it falls below a specified threshold. Upon detection of unacceptable link degradation, the HART router proactively routes all IP packet flows traversing the degraded link to a backup link of higher quality. If or when the original link recovers its quality, the IP packet flows are switched back to this link. Current systems provide no capability for proactive link failover; failover occurs only after a complete breakdown of a link. Application performance suffers as a consequence. In addition to proactive link selection, the HART prototype implements multi-level policy-based failover (1, 2, 3, 4, 5 or more backup links in a prioritized order), a capability that is not supported within COTS routers. For instance, with conventional routers, if the policy route for an IP flow were to fail it will be routed over the default interface. Unlike HART, secondary and tertiary policy routes cannot be specified with conventional routers.
HART Overview
Network integration is the convergence of many IP devices (wired, wireless, radio, optical) each forming IP subnets into a single IP network. Each of these device subnets may be IP capable on their own, but cannot integrate seamlessly and automatically with others. Appendix A outlines the list of IP device targets, the interface method, and device subnet integration.
HART software provides heterogeneous network integration. HART addresses these problems by integrating the following techniques into Autonomous Integration Routers:
These HART Integration Routers may be installed throughout the black-side network, as shown in FIG. 3.
The HART integration router is a software tool that can be added into existing commercial routers on an add-on card, integrated into software routers such as quagga or vyatta, or can be installed in a network appliance and where data is sent through the appliance.
The HART software module has six components shown in 4. FIG. 4 also shows the data flow between each of these components. The components are:
Core Network Integration Requirements
This section describes what configuration options to route IP packets on tactical networks. Each end node has an IP address and default route/router and the routers track routes to other subnets.
The configurations for each node are:
The configurations for each subnet are:
HART Components
The overall system for HART components:
The topology tracker and routing component integrates with the various monitors to track topology and make routing decisions.
Monitors integrate with the other components to provide network monitoring data:
Node configuration writers provide the machine-to-machine interface for automatic configuration. It integrates with the other components to provide a single interface to write configuration options and settings to local and remote routers and wireless IP devices. These writer components may use SNMP and/or device specific API's;
Dynamic DNS proxy integrates with the other components to track DNS names, changes to DNS entries, and act as a DNS proxy to respond to DNS requests with dynamic responses;
Quality aware proxy monitors the various links and paths connected to HART and across the network, then update the link metrics so that the routers can make smarter decisions:
BGP-MX
HART treats other network integration system as separate ASs. This provides automatic configuration and integration with other networking systems in use
The HART addresses at least two major technical challenges to achieve desired capability of an autonomous integration router for tactical edge networks:
Underlying the HART approach for addressing these challenges is a set of techniques that are listed in Table I below and described later.
| TABLE 1 | ||
| Technical Challenges | HART Innovations | |
| Autonomous Mission | ✓ Hybrid routing with address | |
| Persistent Connectivity | switching | |
| Autonomous Mission | ✓ Autonomous quality aware | |
| Optimized Connectivity | routing | |
FIG. 5 shows a conceptual view of the HART solution where the integration router contains multiple interfaces, i.e., a LAN interface connected to a HAIPE-fronted platform LAN and WAN interfaces connected to different wireless terminals, e.g., TTNT, QNT, mini-CDL, FSO). Some of these wireless terminals implement bridged IP subnets (e.g., mini-CDL, FSO) while others implement routed IP subnets using proprietary routing protocols (e.g., TTNT, QNT). The software architecture of the HART integration router, shown in FIG. 5, consists of a core OSPF routing function with plug-in router extensions for each type of wireless terminal. The terminal-specific router extensions implement the HART innovations listed above to enable performance-optimized routing across the heterogeneous collections of bridged and routed IP subnets.
The HART approach has two major beneficial features:
In an overview, HART software will provide heterogeneous network integration. The HART approach for addressing these problems will integrate the following innovative techniques into Autonomous Integration Routers:
HART Hybrid routing enables OSPF-based dynamic route discovery and maintenance in a mobile ad hoc airborne network with a diverse set of bridge IP subnets (mini-CDL, FSOC) and routed IP subnets (TTNT, QNT). HART uses OSPF [Boe06, Ci05] between HART nodes and then export routes to (and import routes from) existing routers and radio hardware that may implement proprietary routing protocols. This is in contrast to current solutions that use tunneling of data packets across subnets such as TTNT and thereby incurring excessive network overhead. To eliminate the overhead associated with tunneling data packets across routed IP subnets, such as TTNT, HART will use a novel packet forwarding technique called “address switching” for TTNT, QNT and other tactical routed IP subnets.
To support address switching, HART tracks the names and addresses of node as they join and leave the various subnets. This data is used to track aliases (names or labels) of the nodes in the network as they move. This data forms a topology of the network that HART uses to augment the routing within the network. The topology information is similar to a routing table and is stored as “alias-tag” entries which form the Topology and Address Tracking (TAT) Database. HART uses this alias-tag table along with HART policies to determine routes to use and configuration changes to make on the routers. The policies define link augmentations like replicate data across two or more links to provide for redundancy, or failover priority if links fail or degrade.
In addition to topology data, HART tracks link quality using network monitors, link probes and other techniques. This quality-aware link monitoring is used to calculate a Link Quality Metric (LQM). The LQM is stored in HART and updated in the router on the HART machine adding quality-aware routing to existing routers (which do not have a way to monitor and probe the link quality).
In tactical and airborne networks other domains (groups of subnets) form ASes (Autonomous Systems). ASes use a protocol called BGP to route between ASes. BGP does not support mobility and dynamic configuration. BGP-MX is a mobility extension for BGP to provide support for mobility and automatic discovery.
The HART Integration Routers are installed on appliances and nodes throughout the black-side (CT side) of a network. FIG. 6 shows the black-side of a notional, multi-subnet airborne network. FIG. 7 shows where HART routers may be installed in the network of FIG. 6.
HART Routers come in three flavors (shown in FIG. 7):
The HART suite of components is shown in the list below and in FIG. 8. The figure shows the data flow between each of these components. The components are:
Use Case: How HART Routes Packets
To route data through a network of mixed subnets, HART monitors may track the nodes and build tables of the addresses and how to get from subnet to subnet (Topology and Address Tracking). These tables are called alias-tag tables. The alias-tag table is similar to a routing table, and will be used by HART for routing and address switching. The entries in the alias-tag table contain a destination address (or subnet address), a next hop address (the next hop from the local network to get packets to the final destination address), number of hops, the Link Quality Metric (LQM), and the capacity.
When a network is first set up, HART initializes itself. Then as nodes join or leave, HART updates the alias-tag tables throughout the network. Below is a use case of how this is done.
Initial setup process (FIG. 9):
When a Node Joins the network (FIG. 10), HART routers monitor and probe the network to test links and configure the alias-tag tables (FIG. 11) that will be used for address switching later. The process is described below.
Step 1:
Step 2:
Step 3:
Step 4 (FIG. 11):
Step 5:
The completed alias-tag tables are shown in FIG. 12.
Packet Routing and Rerouting
To route data from H2 (Gnd) to H1 (Air):
But then an error causes the M-CDL1 link to fail. The flow (H2 (Gnd) to H1 (Air)) is rerouted:
HART Router Features
The above use case illustrates the HART functionality to provide dynamic network convergence. To do this HART uses three flavors of the Integration router:
The HART-Edge Routers have these features:
The HART-Interior Routers, same as HART-E, plus these features:
The HART-Gateway Routers, same as HART-I, plus these features:
HART Architecture Overview
Each of the three flavors of routers is built from the same core components. These components are shown in FIG. 15. and described in further detail below.
HART Monitors
This is the HART Topology and Address Tracking system. The HART monitors are a collection of monitoring and capture tools that gather data about the network, nodes, links, topology, quality, etc. These tools use various methods to collect and gather this data from many sources: SNMP, Radio APIs, network probes, etc. As this data is collected it is stored in two databases. The first stores the majority of monitored data (topology, link quality metrics, etc.) the second is the address map database that stores the alias-tag tables that are used for routing. The address map is constantly maintained and kept small to enable fast routing lookups.
As nodes are discovered they will be added to the tracking data by using “Node Join” commands.
Dynamic address mapping and topology tracking module integrates with the monitor and database components to follow dynamic mobile nodes and update the mappings of links to the fixed addresses of edge platforms. This allows GIG connected nodes to find and route traffic to dynamic mobile end points with minimal overhead. This service is also used to track and link DNS names of mobile nodes with alternative IP addresses (maintained by HART) to reach those nodes.
Alias Tag Table
Each HART node maintains a table of “alias tags” (address labels or “next hops”) to reach specific end points or subnets. Alias tags are the name of the labels used for the address switching done by HART. These tags are also used as routes to nodes and subnets.
Each minimal entry in the table has a:
An alias-tag entry is shown in FIG. 16.
The LQM is calculated based on some combination of number of hops to get to the destination through that radio subnet (H); and expected latency to get to the destination through that radio subnet (L) calculated over some time period. The H, L and capacity values are the minimal values for link quality selection. Other values that may be used include:
HART-E routers maintain only a limited table of how to connect to the larger network and default routers (or the closest HART-I or HART-G router), the format of this data is shown below in FIG. 17. HART-I and HART-G routers maintain entries that allow cross routing and switching between radio subnets without requiring to route through a GIG node.
The HART autonomous router configuration (ARC) module uses OSPF and the information from the TAT Database to make routing decisions and to auto configure various aspects of the network and resources. This module is able to send data by routing, address switching, bridging or repeating. It is able to replicate and load balance data across multiple links as well. This module also integrates with existing routers through OSPF, RIP or other standards.
HART Routing Priority and Format
FIGS. 73A-73C illustrate a format for an original packet and two options for the format of a HART address switched packet. FIG. 73A is a format of an original packet. FIG. 73B is a format of a first option of an address switched packet. FIG. 73C is a format of a second option of an address switched packet. The term NDst refers to the next hop destination. The term Dest′ refers to the original destination. The term HAS-flag refers to some special HART set of IP options to indicate a HART address switched packet OR a specific DSCP value OR an IP Protocol code (or combination of these indicators). The first option for an address switched packet shown in FIG. 73B adds >=5 bytes of overhead for turning on options, then adding the Dest′ address (4 bytes) (more in IPv6). The second option for an address switched packet shown in FIG. 73C adds 4 bytes of overhead for the length of the Dest′ address (more in IPv6).
NOTE: Where possible HART will learn and save next hops (paths and routes) to be used for a conversation. This will remove the need to include the Dest′ field in every packet, removing the overhead from later packets in the conversation.
FIGS. 74A and 74B illustrate a format for an original packet and a format for a HART tunneled packet. FIG. 74A is a format of an original packet. FIG. 74B is a format of a tunneled packet. The term NDst refers to the address of “next hop” HART router. The term HAS-flag refers to some special HART set of IP options to indicate a HART address switched packet OR a specific DSCP value OR an IP Protocol code (or combination of these indicators). The tunneled packet adds at least 40 bytes of overhead because the full original IP packet is wrapped inside a new IP packet (more in IPv6).
Inter-HART Communication Commands
Inter-HART communication commands define any HART to HART messages to share data.
Leave/Join Update Message
When a node leaves one subnet or joins a new subnet, the HART routers send an update. This update will be sent on the old subnet after a timeout period. Another update will be sent on the new subnet after a join is completed. These updates will serve the purpose of informing the HART-I and HART-G routers of where edge and interior nodes can be found (after moving), and any new or updated paths to get to those nodes or quality metrics along the paths.
Node Join
HART Device Configuration Interfaces
HART device configuration interfaces provide the machine-to-machine interface for automatic configuration. It integrates with the other components to provide a single interface to write configuration options and settings to local and remote routers and wireless IP devices. These writer components may use SNMP and/or device specific APIs.
Device Configuration Commands
Basic IP configuration of devices use (in an embodiment, minimally) the commands described below. HART defines a single, unified API to connect and set these commands for each radio device supported by HART (Mini-CDL radios, SNMP devices, TTNT, etc.).
Set/Get IP Address
HART Policy Editor
The HART Policy Configuration GUI allows the user to setup and maintain the policies used by the HART routers. This tool allows the user to define the default link for traffic and the order of backup or failover links to use. Once the default is setup, the user can specify different traffic types based on matching DSCP (differentiated services code point) and/or protocol ID fields. For each traffic type a primary link can be selected and then the other links can be ordered as to which link(s) will be used to failover that traffic type.
A policy option in the HART prototype is multi-link forwarding. For a specified traffic type (specific DSCP and/or protocol ID) multiple links can be specified to replicate packets on. This option sends the same packet or data frame across multiple links to provide improved reliability. If the primary link fails the data will not be lost or interrupted, the flows will continue across the other specified links without affecting the data flow at all.
Policy Types:
Default Policy: primary and backup links for all non-specified traffic.
Automatic Failover Policy: primary and backup links for all specific traffic. Specific traffic defined by DSCP and protocol ID fields.
Multi-Link Forwarding Policy: specify primary link and replication links to replicate specific traffic on. Specific traffic defined by DSCP and protocol ID fields.
Load Balancing Policy: specify group of links to spread specific data across (not replicate). Each link will be used in a rotating fashion. Different data packets will be sent simultaneously across several links arriving at the same time. This has the effect of increasing throughput. Specific traffic defined by DSCP and protocol ID fields.
Policy Table Entry
BGP-MX Module
HART treats other network integration systems as separate ASes. This provides automatic configuration and integration with other networking systems in use. An extension to BGP is used to add mobility awareness and dynamics.
BGP-MX:
HART Design Details
HART is designed for several real-world use cases of multi-subnet environments with different radio and routing capabilities.
A subset of functionality was selected to create a prototype to demonstrate the HART approach. The features selected for prototyping were proactive failover across many links and integration with a Mini-CDL radio and interface. With the proactive failover mechanism, the HART router monitors the quality of each radio link to detect when it falls below a specified threshold. Upon detection of unacceptable link degradation, the HART router proactively routes all IP packet flows traversing the degraded link to a backup link of higher quality. If or when the original link recovers its quality, the IP packet flows are switched back to this link. Current systems provide no capability for proactive link failover; failover occurs only after a complete breakdown of a link. Application performance suffers as a consequence.
As shown in FIG. 19, the UAV platform has two Mini-CDL radios, an AN/ARC-210(V) radio, an Inmarsat (BGAN) SatCom and a WGS SatCom. The GCS (Ground Control Station) in this case will have the same five endpoint radios. HART in this case exploits the redundant data paths to provide increased reliability of the IP-based connection between the GCS and the UAV. This system does not use HAIPEs to create a red/black network.
In an embodiment, HART consists of two kinds of appliances: the HART-Edge appliance resident on the UAV and the HART-Gateway appliance resident at the GCS.
The HART-Edge Appliance has eight Ethernet ports. Five of these ports are used to connect to the five RF links as shown in FIG. 20. The other three ports are available for use by on-board hosts and sensors on the UAV to connect to the tactical network via the HART-Edge appliance. In this case, each on-board IP device (sensor or CPU) will use the HART router as its “default router”.
Ground Control Station (GCS) Network
There is an Ethernet network (LAN) at the GCS to connect various hosts and servers. This ground network uses a hub or switch to connect all the devices (FIG. 21). The GCS has ground-based transceivers for the various RF/wireless communications devices. Each of these devices has an IP/Ethernet interface.
The HART-Gateway Appliance has eight Ethernet interfaces, one connected to the ground network router and another connected directly to each of the RF/wireless devices (FIG. 21). Optionally, HART could connect to another LAN on the RF side that has the RF/wireless devices connected to a hub or switch.
The GCS may have external networks (i.e. internets) connected to the ground LAN. With proper routing configuration this does not affect HART, and in fact HART will route data to and from the UAV to the external networks as well.
Each RF/wireless radio device used in this scenario is listed above with specifications that are used by HART to make informed policy based routing decisions.
HART Features
An embodiment of the software architecture of HART is shown in FIG. 22.
HART Policy Configuration
HART uses a Policy Configuration file to define the settings used by HART for link failover. This allows the user to define the default link for traffic and the order of backup or failover links to use. Once the default is setup, the user can specify different traffic types based on matching DSCP (differentiated services code point) and/or protocol ID fields. For each traffic type a primary link can be selected and then the other links can be ordered as to which order each will be used to failover that traffic type.
The last policy option in the HART prototype is the multi-link forwarding. For a specified traffic type (specific DSCP and/or protocol ID) multiple links can be specified to replicate packets on. This option will send the same packet or data frame across multiple links to provide improved reliability. If the primary link fails the data will not be lost or interrupted, the flows will continue across the other specified links without affecting the data flow at all.
Three policy types:
If DSCP==18 (AF21) then PrimaryLink=Mini-CDL1 and FailoverLinkOrder=AN/ARC-210(V); Mini-CDL2; WGS; Inmarsat
HART Emulation Testbed
Emulab was used to create a HART testbed (FIG. 23), consisting of:
Radio Link Specifications Details
In a live scenario, the wireless radio devices and specifications used are:
In the emulation environment to make the configuration and setup simpler, ATC used these link specifications:
| Link | Throughput | Latency |
| Radio0 | 5 Mb | 20 ms |
| Radio1 | 1 Mb | 200 ms |
| Radio2 | 1 Mb | 300 ms |
| Radio3 | 1 Mb | 400 ms |
In addition to proactive link selection, HART implements multi-level policy-based failover (1, 2, 3, 4, 5 or more backup links in a prioritized order), a capability that is not supported within COTS routers such as Cisco. For instance, with Cisco routers, if the policy route for an IP flow were to fail it will be routed over the default interface. Unlike HART, secondary and tertiary policy routes cannot be specified with Cisco routers.
FIG. 24 (steps 1-4) shows HART link quality monitoring and proactive link failover. FIG. 24 shows the Emulab experiment: 2 LANs connected by 4 links through HART routers. Each LAN has 3 nodes: an endpoint (ep), a radio emulator node (emul) and a HART router (hart). The radio emulator node runs an application that ATC built to emulate the Mini-CDL radios' link quality API, and allow for manual quality adjustment. Step 1 shows a ping from ep0 to ep1. Step 2 shows the Mini-CDL radio emulator (for RadioLink0) being set from 100% to 60%.
In step 3, HART detects the new quality metric for RadioLink0 is below threshold of 75%, and then triggers the failover to RadioLink1. Step 4 shows the ping times have increased which shows that RadioLink1 may be used instead of RadioLink0. HART may successfully detect link quality degradation by interfacing with the radio and then change the router on “hart0” to use the failover path of RadioLink1.
HART Radio Integration testbed
HART may be used with two real Mini-CDL radios (FIG. 25a and FIG. 25b). HART is integrated with the radios and then successfully shows to monitor the status of the live radios (through the Mini-CDL API), making correct autonomous failover configuration updates to the routers (HART0 and HART1 in FIG. 25b). The demonstration shows a video stream being sent over the radio link. As the link degrades below a preset threshold, routing fails over to a series of backup links.
HART neighbor discovery service automatically discovers IP one-hop neighbor HART edge and transit routers on a radio subnet. HART transmits periodic subnet multicast of Hello messages by each HART router to enable dynamic neighbor discovery. A neighbor table is maintained by each HART router with subnet-specific address and alias addresses of each neighbor.
Subnet Convergence Function
The subnet convergence function provides a common IP subnet layer interface for the routing function. It enables automatic formation of virtual point-to-point link with each neighboring HART router. It performs monitoring of quality metrics for each virtual link. It implements network level flow control.
Virtual Link Formation & Maintenance
Virtual link formation and maintenance provides cut-through routing for implementing a virtual link. It maintains per-flow state for each IP data flow using a virtual link. It performs IP packet header restoration for data packets received over a virtual link.
Link-Quality Monitoring
Link-Quality monitoring functions implement a passive technique for sensing packet loss rate on virtual link. It implements an active, passive, or hybrid technique for virtual link capacity sensing. It implements an active, passive, or hybrid technique for sensing virtual link latency. It provides a link quality query interface and asynchronous notification mechanism.
Network-Level Flow Control
Network-level flow control provides network-level control of the rate at which packets are sent to an attached radio. It implements adaptive per-virtual-link rate control based on dynamic sensing of virtual link. It may augment radio-supported flow control (e.g., RFC 5578).
Traffic Redirection
Traffic redirection implements a mechanism to provide redirection of an IP packet flow to a different next-hop than the current one for load balancing or for traffic-aware routing. Flow redirection is based on source and destination addresses of IP packets.
QoS-Aware Unicast Routing Service
The QoS-aware unicast routing service provides an OSPF-based core routing protocol for unicast routing over inter-router virtual links. It interconnects radio IP subnets into one HART network. It maintains multiple routing metrics per virtual link. It implements multiple routing tables, one per routing metric. It performs link-aware route selection. It performs traffic-aware route selection.
Load Balancing Function
Load balancing function performs distribution of traffic exiting an IP subnet across multiple egress links, if applicable. It performs distribution of traffic entering an IP subnet across multiple ingress links, if applicable.
Dynamic Link Metrics
When a HART router has multiple connections to the HART internetwork, the HART design allows that HART router to dynamically configure the link metrics based on radio link monitoring.
Dynamic Route Selection
When multiple paths are available to route IP traffic through the HART inter-network, the HART design allows the dynamic selection of the path that an IP packet flow will take based on routing metrics.
Radio-Aware Flow Control
The HART design allows for flow control between the HART router and its connected radios.
Mission-Aware Traffic Management
The HART design allows the HART internetwork to be configured with a set of mission-specific parameters that influence dynamic link selection and dynamic route selection for specified traffic classes.
Load Balancing
The HART design allows utilization of multiple communication links when such links exist between elements of the HART internetwork. For example, when multiple links exist between two nodes, as shown in FIG. 26a and FIG. 26b, the HART design allows both links (e.g., link a and link b) to be used in parallel to balance traffic flows transiting between the nodes (e.g., R1 and R2). FIG. 26a shows how the data is routed in the absence of load balancing, while FIG. 26b demonstrates how the data flow is balanced across the available links. By load balancing, more data can ultimately be transferred between the two nodes.
An embodiment in which HART Maximizes Network Performance (Scenario 1) is illustrated in FIG. 27 in which C sends a data file to X, a CSTAR router senses two links from UAV1 to TOC. HART automatically load balances across both links to gain more bandwidth.
Another embodiment in which HART Maximizes Network Performance (Scenario 2) is illustrated in FIG. 28 in which:
A subnet convergence function is illustrated in FIG. 29 in which HART:
A subnet convergence function: virtual link formation & maintenance is illustrated in FIG. 30 and FIG. 31 in which HART:
A subnet convergence function: link-quality monitoring is illustrated in FIG. 32 in which HART:
Bandwidth/latency monitoring is illustrated in FIG. 33 in which HART:
Packet-Loss Sensing
Packet loss detection is illustrated in FIG. 34 in which:
Subnet convergence function: flow control is illustrated in FIG. 35 in which:
Subnet convergence function: flow control is further illustrated in FIG. 36 in which HART:
Subnet convergence function: traffic redirection is illustrated in FIG. 37 in which:
Subnet convergence function: traffic redirection is further illustrated in FIG. 38 in which:
Quality of service (QoS) aware unicast routing service is illustrated in FIG. 39 in which:
And in FIG. 40 in which:
Mobility-management function is illustrated in FIG. 41 in which:
And FIG. 42 in which:
Load-balancing function is illustrated in FIG. 43 in which:
And in FIG. 44 in which:
Quality of Service (QoS) Overview
Quality of Service (QoS) Overview
Red Side QoS Design
Test AE (illustrated in FIG. 45) creates redundant paths between subnetworks within the network. One of the paths is impaired to exercise the router's ability to switch to the “better” redundant link.
Test AF, illustrated in FIG. 46, simplifies test description by eliminating IP addressing specifics, recreates redundant links and verifies load balancing enabling multicast efficiency.
Test AG, illustrated in FIG. 47, is network aware and traffic aware.
Network Aware:
Traffic Aware
Pro-Active Failover
Load Balancing
Primary Integration Technologies:
TTNT: Tactical Targeting Network Technology
Mini-CDL: Miniature CDL Radio
WiMax: Worldwide Interoperability for Microwave Access
FSO: Free Space Optical
JCAN: Joint Capability for Airborne Networking subnets
ORCA: Optical RF Communications Adjunct
BACN: Battlefield Airborne Communications Node
Other Integration Technologies
QNT: Quint Networking Technology
ANW: Airborne Networking Waveform
aADNS: Airborne Automated Digital Network System
ASSDL: Airborne Single Slot Data Link
GBS/TGRS: Global Broadcast Service
MUOS: Mobile User Objective System
SRW: Soldier Radio Waveform
WNW: Wideband Networking Waveform
CMDL: Compact Multi-band Data Link
SNR: Subnet Relay
TSAT: Transformational Satellite Communications System
HNW: Highband Network Waveform
NCW: Network-Centric Waveform
DISN: Defense Information System Network
Use Case 1: Mixed HART Routers (TTNT, SatCom, and Mini-CDL)
Initial Setup
Definitions of some terms in the figures:
Initial setup process (FIG. 48):
Node Joins a Mixed HART network
When a Node Joins (FIG. 49)—Step 1:
Step 2, FIG. 50:
Step 3, FIG. 51:
Step 4, FIG. 52:
Step 5, FIG. 53:
Step 6, FIG. 54:
Step 7, FIG. 55:
Step 8, FIG. 56:
Step 9, FIG. 57:
Step 10, FIG. 58:
Completed Table Entries are illustrated in FIG. 59:
Packet Routing, Rerouting and Return
Routing Step 1 (FIG. 60):
Routing Step 2 (FIG. 61):
Routing Step 3 (FIG. 62):
Error occurs in M-CDL1 link (FIG. 63):
Re-Routing Step 1 (FIG. 64):
Re-Routing Step 2 (FIG. 65):
Re-Routing Step 3 (FIG. 66):
Return Path (FIG. 67):
Use Case 2: Node Moves from One TTNT Subnet to Another TTNT Subnet
Initial Setup (FIG. 68):
Route a Packet from Platform 1 to Platform 3 (FIG. 68):
Route a Packet from Platform 1 to Platform 5 (FIG. 68):
Use Case 3: Routing Data on a HART Network
Using Replication and Load Balancing
Steps 1-3 (FIG. 69):
Link Fault while Routing Data Across the HART Network
In case of link failure, other links should pick up “slack” and connection will continue as is with no interruption (FIG. 70).
Routing Control Messages Across the HART Network
Steps 1-4 (FIG. 71):
Link Fault while Routing Control Messages Across the HART Network
In case of link failure, other links should pick up “slack” and the connection will continue as is, with no interruption (FIG. 72).
AN: Airborne Network
API: Application Programming Interface
ARC: HARTs Autonomous Router Configuration
AS(es): Autonomous System(s)—a collection of connected Internet Protocol (IP) routing devices under one common network controller
AXP: Cisco Application Extension Platform, an add-on card installed in a Cisco router
BACN: Battlefield Airborne Communications Node
BGP: Border Gateway Protocol—Protocol used to route between Autonomous Systems
BGP-MX: Border Gateway Protocol
COTS: Commercial Off-the-Shelf
CT: Ciphertext—Black side of red/black network
DCI: HARTs Device Configuration Interface
DISN: Defense Information System Network
DNS: Domain Name Service
DSCP: DiffServ Code Point
FSOC: Free Space Optics Communications
GCS: Ground Control Station
GIG: Global Information Grid
GUI: Graphical User Interface
HAIPE(s): High Assurance Internet Protocol Encryptor—a Type 1 encryption device that complies with the National Security Agency's HAIPE IS (High Assurance Internet Protocol Interoperability Specification).
HART: Hybrid Autonomous Router for Tactical Networks
HART-E: HART-Edge Router
HART-G: HART-Gateway Router
HART-I: HART-Interior Router
HAS-flag: HART Address Switching flag
INE: Inline Network Encryptor—broad term for HAIPE-like devices
IP: Internet Protocol
JALN: Joint Aerial Layer Network
JCAN: Joint Capability for Airborne Networking subnets
LQM: Link Quality Metric
M-CDL: Mini-CDL
Mini-CDL: Miniature Common Data Link Radio
OSPF: Open Shortest Path First (OSPF) is an adaptive routing protocol for Internet Protocol (IP) networks.
PT: Plaintext—Red side of red/black network
QNT: Quint Networking Technology (QNT) program is a Defense Advanced Research Projects Agency-led (DARPA) technology program to produce a very small and modular digital communications system for a variety of ground and airborne applications.
RIP: Routing Information Protocol (RIP) is a distance-vector routing protocol, which employs the hop count as a routing metric.
SatCom: A Satellite Communication link
SNMP: Simple Network Management Protocol
TCP/IP: Transport Control Protocol for Internet Protocol, a collection of protocols for routing data on an IP network.
TAT: HART Topology and Address Tracking
TTNT: Tactical Targeting Network Technology
TRL: Technology Readiness Level
UAV: Unmanned Aerial Vehicle
UAS: Unmanned Aircraft Systems
WNW: Wideband Networking Waveform
1. A method of routing an Internet Protocol (IP) packet from a routing device comprising:
receiving a first IP packet having a first IP header and a first IP data field, the first IP header having a final destination corresponding to a destination device communicatively coupled to the routing device via at least two parallel network links, the at least two parallel network links including a first network link communicatively coupling the routing device to a first device and a second network link communicatively coupling the routing device to a second device, wherein a destination address field of the first IP header includes an IP address for the destination device;
sending a second IP packet having a second IP header and a second IP data field over the first network link, wherein the second IP data field is identical to the first IP data field, wherein a destination address field in the second IP header includes an IP address for the first device, wherein the destination address field in the second IP header is the corresponding field to the destination address field in the first IP header; and
sending a third IP packet having a third IP header and a third IP data field over the second network link, wherein the third IP data field is identical to the first IP data field, wherein a destination address field in the third IP header includes an IP address for the second device;
wherein the destination address field in the third IP header is the corresponding field to the destination address field in the first IP header.
2. The method of claim 1, comprising:
receiving a fourth IP packet having a fourth IP header and a fourth IP data field, the fourth IP header having a final destination corresponding to the destination device, wherein a destination address field of the fourth IP header includes an IP address for the destination device;
determining whether the fourth IP packet is a type to be replicated;
if the fourth IP packet is a type to be replicated, sending replicated IP packets by:
sending a fifth IP packet having a fifth IP header and a fifth IP data field over the first network link, wherein the fifth IP data field is identical to the fourth IP data field, wherein a destination address field in the fifth IP header includes an IP address for the first device, wherein the destination address field in the fifth IP header is the corresponding field to the destination address field in the fourth IP header; and
sending a sixth IP packet having a sixth IP header and a sixth IP data field over the second network link, wherein the sixth IP data field is identical to the fourth IP data field, wherein a destination address field in the sixth IP header includes an IP address for the second device, wherein the destination address field in the sixth IP header is the corresponding field to the destination address field in the fourth IP header; and
if the fourth IP packet is not a type to be replicated, sending a non-replicated IP packet by sending a seventh IP packet over one of the at least two parallel network links without sending a replicated IP packet over any of the at least two parallel network links.
3. The method of claim 2, wherein determining whether the fourth IP packet is a type to be replicated includes determining whether at least one of the differentiated services code point (DSCP) or protocol ID field of the fourth IP packet matches a DSCP or protocol ID for a replicated IP packet type;
if at least one of the DSCP or protocol ID fields matches a DSCP or protocol ID field for a replicated IP packet type, sending the replicated IP packets; and
if neither the DSCP or protocol ID fields matches a DSCP or protocol ID field for a replicated IP packet type, sending the non-replicated IP packet.
4. The method of claim 1, comprising:
receiving a plurality of subsequent IP packets from a data flow of the first IP packet, wherein the at least two parallel network links include at least three parallel network links;
sending a plurality of outgoing IP packets having IP data fields copied from a respective one of the plurality of subsequent IP packets; and
load balancing the plurality of outgoing IP packets across the at least three parallel network links while also replicating each of the plurality of outgoing IP packets across distinct ones of the at least three parallel network links.
5. The method of claim 4, wherein load balancing the plurality of outgoing IP packets across the at least three parallel network links while also replicating each of the plurality of outgoing IP packets includes:
sending a first subset of the plurality of outgoing IP packets over the first network link and replicating each of the first subset of the plurality of outgoing IP packets over another of the at least three parallel links; and
sending a second subset of the outgoing IP packets over the second network link and replicating each of the second subset of the plurality of outgoing IP packets over another of the at least three parallel links.
6. The method of claim 5, wherein replicating each of the first subset of the plurality of outgoing IP packets includes sending a replica of each of the first subset of the plurality of outgoing IP packets over a third network link of the at least three network links,
wherein replicating each of the second subset of the plurality of outgoing IP packets includes sending a replica of each of the second subset of the plurality of outgoing IP packets over the third network link.
7. The method of claim 5, wherein load balancing the plurality of outgoing IP packets across the at least three parallel network links while also replicating each of the plurality of outgoing IP packets includes:
sending replicated IP packets over a pair of the at least three network links and rotating which of the at least three network links are in the pair.
8. The method of claim 1, comprising:
after receiving the first IP packet, receiving subsequent IP packets from a data flow of the first IP packet;
sending subsequent outgoing IP packets having IP data fields copied from the subsequent IP packets,
wherein the second IP packet and the third IP packet are sent prior to sending any of the subsequent IP packets.
9. A routing module comprising:
a processor readable medium having software stored thereon, the software, when executed by one or more processing devices, configured to:
receive a first IP packet having a first IP header and a first IP data field, the first IP header having a final destination corresponding to a destination device communicatively coupled to the routing device via at least two parallel network links, the at least two parallel network links including a first network link communicatively coupling the routing device to a first device and a second network link communicatively coupling the routing device to a second device, wherein a destination address field of the first IP header includes an IP address for the destination device;
send a second IP packet having a second IP header and a second IP data field over the first network link, wherein the second IP data field is identical to the first IP data field, wherein a destination address field in the second IP header includes an IP address for the first device, wherein the destination address field in the second IP header is the corresponding field to the destination address field in the first IP header; and
send a third IP packet having a third IP header and a third IP data field over the second network link, wherein the third IP data field is identical to the first IP data field, wherein a destination address field in the third IP header includes an IP address for the second device, wherein the destination address field in the third IP header is the corresponding field to the destination address field in the first IP header.
10. The routing module of claim 9, wherein the software is configured to:
receive a fourth IP packet having a fourth IP header and a fourth IP data field, the fourth IP header having a final destination corresponding to the destination device, wherein a destination address field of the fourth IP header includes an IP address for the destination device;
determine whether the fourth IP packet is a type to be replicated;
if the fourth IP packet is a type to be replicated, sending replicated IP packets by:
send a fifth IP packet having a fifth IP header and a fifth IP data field over the first network link, wherein the fifth IP data field is identical to the fourth IP data field, wherein a destination address field in the fifth IP header includes an IP address for the first device, wherein the destination address field in the fifth IP header is the corresponding field to the destination address field in the fourth IP header; and
send a sixth IP packet having a sixth IP header and a sixth IP data field over the second network link, wherein the sixth IP data field is identical to the fourth IP data field, wherein a destination address field in the sixth IP header includes an IP address for the second device, wherein the destination address field in the sixth IP header is the corresponding field to the destination address field in the fourth IP header; and
if the fourth IP packet is not a type to be replicated, send a non-replicated IP packet by sending a seventh IP packet over one of the at least two parallel network links without sending a replicated IP packet over any of the at least two parallel network links.
11. The routing module of claim 10, wherein determine whether the fourth IP packet is a type to be replicated includes determine whether at least one of the differentiated services code point (DSCP) or protocol ID field of the fourth IP packet matches a DSCP or protocol ID for a replicated IP packet type;
wherein the software is configured to:
if at least one of the DSCP or protocol ID fields matches a DSCP or protocol ID field for a replicated IP packet type, send the replicated IP packets; and
if neither the DSCP or protocol ID fields matches a DSCP or protocol ID field for a replicated IP packet type, send the non-replicated IP packet.
12. The routing module of claim 9, wherein the software is configured to:
receive a plurality of subsequent IP packets from a data flow of the first IP packet, wherein the at least two parallel network links include at least three parallel network links;
send a plurality of outgoing IP packets having IP data fields copied from a respective one of the plurality of subsequent IP packets; and
load balance the plurality of outgoing IP packets across the at least three parallel network links while also replicating each of the plurality of outgoing IP packets across distinct ones of the at least three parallel network links.
13. The routing module of claim 12, wherein load balance the plurality of outgoing IP packets across the at least three parallel network links while also replicating each of the plurality of outgoing IP packets includes:
send a first subset of the plurality of outgoing IP packets over the first network link and replicate each of the first subset of the plurality of outgoing IP packets over another of the at least three parallel links; and
send a second subset of the outgoing IP packets over the second network link and replicate each of the second subset of the plurality of outgoing IP packets over another of the at least three parallel links.
14. The routing module of claim 13, wherein replicate each of the first subset of the plurality of outgoing IP packets includes send a replica of each of the first subset of the plurality of outgoing IP packets over a third network link of the at least three network links,
wherein replicate each of the second subset of the plurality of outgoing IP packets includes sending a replica of each of the second subset of the plurality of outgoing IP packets over the third network link.
15. The routing module of claim 13, wherein load balance the plurality of outgoing IP packets across the at least three parallel network links while also replicate each of the plurality of outgoing IP packets includes:
send replicated IP packets over a pair of the at least three network links and rotate which of the at least three network links are in the pair.
16. The routing module of claim 9, wherein the software is configured to:
after receiving the first IP packet, receive subsequent IP packets from a data flow of the first IP packet;
send subsequent outgoing IP packets having IP data fields copied from the subsequent IP packets,
wherein the second IP packet and the third IP packet are sent prior to sending any of the subsequent IP packets.
17. The routing module of claim 9, wherein the routing module is an add-on card for a router.
18. The routing module of claim 9, wherein the routing module is a program product.
19. A routing device comprising:
a processor readable medium having software stored thereon, the software, when executed by one or more processing devices, configured to:
receive a first IP packet having a first IP header and a first IP data field, the first IP header having a final destination corresponding to a destination device communicatively coupled to the routing device via at least two parallel network links, the at least two parallel network links including a first network link communicatively coupling the routing device to a first device and a second network link communicatively coupling the routing device to a second device, wherein a destination address field of the first IP header includes an IP address for the destination device;
send a second IP packet having a second IP header and a second IP data field over the first network link, wherein the second IP data field is identical to the first IP data field, wherein a destination address field in the second IP header includes an IP address for the first device, wherein the destination address field in the second IP header is the corresponding field to the destination address field in the first IP header; and
send a third IP packet having a third IP header and a third IP data field over the second network link, wherein the third IP data field is identical to the first IP data field, wherein a destination address field in the third IP header includes an IP address for the second device, wherein the destination address field in the third IP header is the corresponding field to the destination address field in the first IP header.
20. The routing device of claim 19, wherein the software is configured to:
receive a fourth IP packet having a fourth IP header and a fourth IP data field, the fourth IP header having a final destination corresponding to the destination device, wherein a destination address field of the fourth IP header includes an IP address for the destination device;
determine whether at least one of the differentiated services code point (DSCP) or protocol ID field of the fourth IP packet matches a DSCP or protocol ID for a replicated IP packet type;
if at least one of the DSCP or protocol ID fields matches a DSCP or protocol ID field for a replicated IP packet type, sending replicated IP packets by:
send a fifth IP packet having a fifth IP header and a fifth IP data field over the first network link, wherein the fifth IP data field is identical to the fourth IP data field, wherein a destination address field in the fifth IP header includes an IP address for the first device, wherein the destination address field in the fifth IP header is the corresponding field to the destination address field in the fourth IP header; and
send a sixth IP packet having a sixth IP header and a sixth IP data field over the second network link, wherein the sixth IP data field is identical to the fourth IP data field, wherein a destination address field in the sixth IP header includes an IP address for the second device, wherein the destination address field in the sixth IP header is the corresponding field to the destination address field in the fourth IP header; and
if neither the DSCP or protocol ID fields matches a DSCP or protocol ID field for a replicated IP packet type, send a non-replicated IP packet by sending a seventh IP packet over one of the at least two parallel network links without sending a replicated IP packet over any of the at least two parallel network links.