What is flow routing?
Flow routing is a network routing technology that takes variations in the flow of data into account to increase routing efficiency. This increased efficiency helps avoid excessive latency and jitter for streaming data, such as voice over IP or video.
Flow routing uses adaptive routing algorithms that base their decisions on the traffic conditions between a computer and all the other computers it is connected to on the subnetwork. Based on the traffic within this subnetwork, flow routing makes the decision about which computer to send a packet to.
A flow router evaluates traffic flows in real time -- based on an ID, route, time of receipt and rate of flow -- to keep streaming traffic moving as quickly as possible. Rather than routing individual packets, it observes and evaluates flows of multiple packets to gather statistics, including source, destination, amount of traffic "in flight" and stream duration.
This evaluation permits the router to prioritize traffic, meet quality of service (QoS) requirements and keep flows from consuming more than some pre-allotted portion of network resources.
Some industry analysts say that high-end conventional routers can achieve many of the same advantages as flow routing using ancillary queuing, deep packet inspection, rate shaping and policing, and selective packet discard methods. Nevertheless, flow routing's unique ability to accommodate streaming data types makes it potentially valuable, especially for networks where such data consumes an appreciable portion of overall bandwidth and resources.
Moreover, flow routing can be incorporated into existing IP routers without modifying IP. It also provides all known QoS features and increases utilization without increasing costs.
Flow routing vs. conventional routing
By evaluating traffic in real time, a flow router ensures that streaming traffic continues to move quickly with minimal latency or jitter. Thus, it is different from conventional (Layer 3) IP routing that does not differentiate between packets.
Conventional routing uses a best-effort technique to ensure that incoming traffic is delivered to the proper destination on a packet-by-packet basis. Unlike flow routing, it is not sensitive to timing and data rate requirements for streaming data, such as voice, video, multimedia or IPTV.
Flow and flow routing table
In flow routing, flow refers to a single, meaningful, end-to-end activity over the network. Another way to define flow is as a stream of IP packets that move from a particular source IP address and port to a destination IP address and port. All the packets use the same protocol as they move between the source and destination.
Voice calls, streaming video, file transfers and web access requests are all examples of individual flows. In the IPv4 packet header, five fields identify a flow:
- source address
- destination address
- source port
- destination port
When a hash of these field values is created, it yields a flow ID that is stored in the flow routing table. This table stores flow information for each flow, which enables the router to eliminate lookups and thus make faster decisions to route packets between the source and destination. If a router can manage these flows at input, it eliminates an output queue, which then reduces traffic delays and data losses on the network.
The flow-based router stores state information and, accordingly, performs bandwidth reservation or admission control. So, when a new flow arrives, an entry is created in the state table, which is removed after a period of time.
Benefits of flow routing
Flow routing offers several benefits in modern network environments.
Flow routing is useful when certain traffic types must be protected from other traffic types -- for example, voice from video or web access from peer-to-peer communications. It makes such protection possible by using alternative congestion control schemes for the following:
- High-rate vs. low-rate flows
- Responsive vs. unresponsive flows
- Long-lived vs. short-lived flows
Flow routing offers call admission control (CAC) for TCP flows to help optimize network output and user response time. CAC for flows (with guarantees) ensures tight (low/constant) jitter even at high utilization and guaranteed QoS for real-time applications. Flow routing also supports network simplification and cost reduction by ensuring increased node intelligence, dynamic resource management and granular statistics collection.