ackets from the same flow on the same link to avoid getting the packets out of order. Higher layer protocols like TCP will drop packets if they are received out of order causing retransmission and poor customer experience. Building the Network of the Future 16004 16005 16001 16006 (Prefix-Segment) 16002 16003 16006 16006 FIGURE 13.17 Segment routing with "shortest path first." 16004 16005 24056 (Adjacency-Segment) 16001 16006 (Prefix-Segment) 16002 16003 16005 24056 24056 16006 16006 FIGURE 13.18 Explicit routing using segment routing. 13.2.3.2 Explicit Routing One of the main attractions of segment routing is the ability to explicitly route packets. Figure 13.18 shows how a packet from R1 to R6 can be forced to take a higher cost path-such a case may be to avoid congestion in shortest path. At the source router, one somehow determines (e.g., via an SDN controller) the desired path (R1-R4-R5-R6) and then pushes the appropriate labels on the stack to get to the destination. To force traffic on a specific link (such as R5-R6) even when its cost is high, segment routing defines an "adjacency segment" that can be used for this purpose. In the above example, R5 assigns label 24056 for adjacency segment between R5 and R6.* The adjacency segment is local in nature, the label value is not globally unique (i.e., it can be used by other routers for its adjacency segments). In the above example, R1-R4-R5-R6 path can be reached by first sending the packet to R5 (shortest The adjacency segments were also distributed via the routing protocols for each node. Network Core 16004 16005 24056 (Adjacency-Segment) 16004 16005 24056 16001 16006 16001 16006 16002 16003 16002 16003 16006 24056 16006 16006 16006 FIGURE 13.19 Fast restoration immediately after failure and after convergence. path from R1 to R5 is R1-R4-R5) and then use the R5-R6 link to reach the destination. This can be represented as label stack {16005, 24056, 16006} and R1 router pushes this on the data packet and forward it to R4. When packet reaches R4, it will forwar