Segment Routing (SR) is a protocol designed to forward data packets using the source routing model. Segment Routing MPLS (SR-MPLS) is implemented based on the MPLS forwarding plane and is referred to as SR hereinafter. SR divides a network path into several segments and allocates a segment ID (SID) to each segment and forwarding node. The segments and nodes are then sequentially arranged into a segment list to form a forwarding path.
SR encapsulates segment list information that identifies a forwarding path into the packet header for transmission. After receiving a packet, the receive end parses the segment list. If the SID at the top of the segment list identifies the local node, the node removes the SID and executes the follow-up procedure. If the SID at the top does not identify the local node, the node forwards the packet to the next hop in equal cost multiple path (ECMP) mode.
Network services are becoming more diverse and impose different requirements on the network. For example, real-time teleconference and live video broadcast applications typically require paths with low latency and jitter, whereas big data applications typically require high-bandwidth channels with a low packet loss rate. In this situation, it is ineffective to adapt networks to services, as this approach makes network deployment and maintenance more complex and cannot keep up with rapid service development.
SR uses a controller or an IGP to uniformly compute paths and allocate labels, without requiring tunneling protocols such as RSVP-TE and LDP. In addition, it can be directly used in the MPLS architecture, without requiring any changes to the forwarding plane.
On the basis of remote loop-free alternate (RLFA) FRR, SR provides TI-LFA FRR, which offers node and link protection for all topologies and addresses the weaknesses in conventional tunnel protection technologies.
MPLS TE is a connection-oriented technology that requires devices to exchange and process numerous packets in order to maintain connection states, burdening the control plane. In contrast, SR can control any service path by performing label operations for packets on only the ingress. Because SR does not require transit nodes to maintain path information, it frees up the control plane.
Moreover, the SR label quantity on a network is the sum of the node quantity and local adjacency quantity, meaning that it is related only to the network scale, rather than the tunnel quantity or service volume.
Because SR is designed based on the source routing concept, the ingress controls packet forwarding paths. Moreover, SR can work with the centralized path computation module to flexibly and easily control and adjust paths.
Given that SR supports both legacy and SDN networks and is compatible with existing devices, it enables existing networks to evolve smoothly to SDN networks in a non-disruptive manner.