Defining and engineering the most optimal network path is a critical aspect to network architecture. The value of the network is most evident in the end users perception of application quality. Application quality and the perception of quality will vary from user to user. One user may view a 5-second interrupt to a voice call as acceptable while another user could class this as unacceptable. In order to maintain high-quality perception for all type of users, you must engineer a packet to get to its destination as quickly as possible. This is where the concept of “network stretch” comes into play. Network stretch is modular in the sense that it can affect only certain parts of the network.
Stretch is the difference between the best possible path through the network and the actual path the traffic takes through the network.
For instance, if the shortest actual path available is 2 hops, but the traffic is following a 3 hop path, the stretch is 1. An increase in network stretch always represents sub optimal use of available resources. To fully understand the concept of network stretch, first consider the basics of route path selection and route aggregation.
Route Path Selection
Router 1 has two outbound connections. One connection to Router 2 and another connection to Router 3, each with different routing metrics. Routers 1 to Router 2 has a cost of 10 and Router 1 to Router 3 has a cost of 20. Destination-based routing for the same prefix length always prefers a path with a lower cost, resulting in traffic following the path to Router 2.
Route aggregation serves two purposes on the network 1) Breaking the network in multiple failure domains and 2) Reducing the amount of information the routing protocol must deal with when converging.
Without route aggregation, Router 1 must install all individual routes, including metrics, tags, and other information, and the best path to reach a certain destination must be calculated every time there is a change in the topology. This can cause performance problems especially if you have a high rate of state change and a large number of routes in the network. Every time the network topology changes, the router’s control plane must go through the convergence process steps ( detect, describe, switch, find ) and recalculate the best path to the affected destinations. If the rate of change is faster than the control plane can calculate new best paths, the network will never converge. One method used to overcome this is Route Aggregation. Route aggregation creates separate failure domains and boundaries in the network. Routing nodes on different sides of the boundary will not query each other. Essentially slicing the network.
State versus Stretch
Obviously, this has its benefits but there are also drawbacks in the sense that packets can follow a less optimal path to reach their destination. When you summarize at the edge of the network, the receiving router loses full network visibility, which in some cases, can cause an increase in network stretch.
What happens to traffic entering Router 1 and travelling to destination 192.168.1.1/24?
Loss of visibility and state results in suboptimal traffic flow
Without aggregation on Router 3, this traffic would flow to Router 1 – Router 3 – Router 6. With route aggregation configured on both Router 2 and Router 3, this traffic will take the path with the better cost, Router 1 – Router 2 – Router 3 – Router 6, resulting in an increase of one hop. The path from Router 1 to reach the destination 192.168.1.1/24 has stretched by one hop – or the stretch of the network has increased by 1. Consider the example of Spanning Tree in relation to state/stretch trade-offs. Spanning tree works by selecting one switch as the root of the tree and selects specific links within the tree structure to forward towards the root. This reduces the state to an absolute minimum by forcing all traffic along a single tree and blocking redundant links that don’t belong to that tree. The reduction of state ( blocking of the links ) is at a cost of increasing the stretch through the network to the maximum possible. This has led to the introduction of THRILL and Cisco’s FabricPath. These technologies allow you to have active / active paths, thereby increasing the state of the network, while decreasing the stretch.
You can’t hide state information all the time as it decreases the overall efficiency of the network by increasing the stretch. However, if all of your traffic flows north/south, decreasing the state will not impact stretch as the traffic can only follow one direction. But if you have a combination of traffic patterns ( north/south & east/west ), then reducing the state will cause traffic to take a sub-optimal path through the network – thus increasing the stretch.