Future Internet Chapter 3: (Virtual) circuit switching or: a tale from the past Holger Karl Computer Networks Group Universität Paderborn
Overview • (Virtual) circuit vs. packet switching • The old: ATM • The current: MPLS SS 19, v 1.3 FI - Ch 3: (Virtual) circuit switching 2
The thorns of IP • What made IP forwarding hard? • Packets of different lengths • Complex destination address -> outgoing port lookup in forwarding plane • Very hard to impossible to provide any kind of guarantees • No central view on network • Historically, we did not always build networks like that • … nor do we do that today • A look at the past: Asynchronous Transfer Mode (ATM) • Started in the 1960s, had its big day in the 1990s • .. and at the present: Multi-protocol label switching (MPLS) SS 19, v 1.3 FI - Ch 3: (Virtual) circuit switching 3
ATM – Basic concepts • Virtual circuits (VC) • Switches know how to handle data arriving in a VC • VCs have to be setup before data can travel along it • VCs have explicit names – Virtual Circuit Identifiers (VCI) • Packets contain this VCI in header, not a destination address • Can be much smaller than a full destination address • Forwarding deterministic based on VCIs, all data on one VC follows same route • Results in separated control and data handling • Operating at different time scales; eases HW/SW separation • VCs can be setup per call/connection or permanently SS 19, v 1.3 FI - Ch 3: (Virtual) circuit switching 4
ATM – Basic concepts • Fixed-size packets – or cells • Makes buffer management, switching fabric, line scheduling MUCH easier • But causes segmentation/reassembly overhead • Small cells • Necessitates small addressing for acceptable overhead • Historical decisions; was meant for voice traffic (follow-up to PSTN STM network) • Size: industry conflict between • Small cells ! low delay ! no echo cancellation needed vs. • Big country ! needs echo cancellation anyway ! wants small overhead • Ended up as compromise: 48 bytes payload, 5 bytes header SS 19, v 1.3 FI - Ch 3: (Virtual) circuit switching 5
ATM – Basic concepts • Statistical multiplexing • Deal with outgoing link data rate < sum of incoming data rates • Multiplexing gain = sum of incoming / outgoing rate • Integrated services • Provide support for different service types (voice, data, …) explicitly SS 19, v 1.3 FI - Ch 3: (Virtual) circuit switching 6
Uniqueness of VCIs • Simple approach: all VCs sharing at least a single link must have different VCIs • Scaling problems • Better: VCI swapping • Switches can rewrite VCI identifiers in incoming cells, based on incoming port: (Incoming port, Incoming VCI) ! (Outgoing port, Outgoing VCI) • These rules are collected in a switch’s translation table • Entails per-VC state in each switch! • Switching becomes a simple lookup operation in translation table! SS 19, v 1.3 FI - Ch 3: (Virtual) circuit switching 7
Setting up VCs • Option 1: Let each switch locally do routing on the call setup cells • Handle translation tables locally as well • Option 2: “Global” view ? SS 19, v 1.3 FI - Ch 3: (Virtual) circuit switching 8
ATM state of affairs • Currently, no longer a relevant system for research or new deployment • … but still sits in some backdoor closets somewhere • Largely replaced by its successor, MPLS • See IETF RFC 3031 plus follow-up RFCs SS 19, v 1.3 FI - Ch 3: (Virtual) circuit switching 9
From ATM to MPLS • ATM turned out to be inflexible, evolved towards MPLS • Main similarities • MPLS is a label-switched protocol, just like ATM uses the virtual circuit identifiers (a terminology difference only) • MPLS has a similar translation table for its labels • Forwarding still stays a simple table lookup • Main differences • MPLS can support varying payload size • MPLS can carry (“tunnel”) arbitrary network layer protocols; MPLS prepends a so-called shim header • Shim: Label, QoS, stack bit, time to live • VC setup works differently SS 19, v 1.3 FI - Ch 3: (Virtual) circuit switching 10
MPLS control vs. data • Like ATM, MPLS maintains a clear and strict separation of data and control plane • Data plane: Only forwarding, based only on labels, very simple • Much simpler than IP: no longest prefix matching, no routing algorithms at all in the switch • Control plane: • Protocols to determine reachability information (aka routing) or to import it from other networks (e.g., talk to IP BGP routers to understand which network prefixes are attached where) • Protocols to distribute labels (Label distribution protocols, LDP) • For discovered network prefixes, distribute labels to relevant routers • Proactively or on-demand • Various options, e.g., RSVP, MP-BGP, … • Traffic engineering functionality SS 19, v 1.3 FI - Ch 3: (Virtual) circuit switching 11
MPLS translation table – power over ATM • Translation tables under MPLS much more powerful • ATM: only action was to replace a VCI by another and forward • MPLS: Actions by a label-switched router (LSR) • Replace label by another and forward • Insert another shim header! (Push a label onto a label stack) • Remove a shim header and look at the resulting packet • Label stack allows nesting of virtual circuits inside each other • Great tool for traffic engineering • Once last shim header is removed, pass contained packet to whatever network protocol, e.g., IP SS 19, v 1.3 FI - Ch 3: (Virtual) circuit switching 12
An MPLS label https://en.wikipedia.org/wiki/Multiprotocol_Label_Switching SS 19, v 1.3 FI - Ch 3: (Virtual) circuit switching 13
Switching table in an MPLS LSR • What’s hence needed in an MPLS LSR switching table? • What are differences to an Ethernet switch? • Ethernet switching table columns: • Destination MAC address • Outgoing port • MPLS switching table columns - Next Hop Label Forwarding Entry (NHLFE) • Incoming label Why? • Incoming port • Outgoing label • Outgoing port • Optional: Operations on label stack (push, pop) SS 19, v 1.3 FI - Ch 3: (Virtual) circuit switching 14
Where do MPLS labels come from? • Typical setup: an MPLS network interconnects various other networks • E.g., IP networks interconnected by MPLS • At some point, non-MPLS packet arrives at the first MPLS router • So called label edge router (LER) • LER can analyse packet and decide its forwarding equivalence class (FEC) • FEC: Set of packets to be forwarded in the same fashion (same path) • Decision based on destination IP, source IP, QoS, time of day, load situation of network, non-local information, … • Information that is not necessarily available to an IP router inside a network! • For each FEC, there is a label-switched path (LSP) with according label • LER inserts shim header with this label and starts switching the packet • Typically, multiple FECs on same LSP SS 19, v 1.3 FI - Ch 3: (Virtual) circuit switching 15
Example: Traffic engineering with MPLS SS 19, v 1.3 FI - Ch 3: (Virtual) circuit switching 16
MPLS’ hidden jewel (?): Path Computation Element • Determining routes when setting up a label: so far, distributed process similar to a packet router assumed • Actually, MPLS reuses IP routing (not forwarding!) protocols like OSPF to distribute topology information (or better, OSPF-TE with traffic engineering extensions) • Typically: Label Edge Router decides on path • Alternative proposal: Decide on paths in a centralized way! • Introduce a central instance where routing decisions are taken, entries for translation tables are then redistributed • So-called Path Computation Element (PCE) • Presentation here based on RFC 4655 • Note: This makes a lot more sense in a “virtual circuit” model rather than a packet forwarding model • Unlike packets, decisions on path setup only happens rarely – can be done centrally, simplifies network management a lot SS 19, v 1.3 FI - Ch 3: (Virtual) circuit switching 17
Why centralized path computations? • More complex algorithms could be used • E.g., shared backup paths for paths that do not interact with each other • Bundles of requests can be considered and optimized jointly • E.g.: Setup a VLAN between multiple sites; only relevant if all of paths obtain certain quality • Limited visibility in distributed solutions • E.g., multi-domain, multi-carrier, multi-layer • Dealing with legacy equipment without control functionality • In particular, optical nodes • Management simplified in general; one place to put control functions SS 19, v 1.3 FI - Ch 3: (Virtual) circuit switching 18
Path Computation Element • To quote RFC 4655: • A Path Computation Element (PCE) is an entity that is capable of computing a network path or route based on a network graph, and of applying computational constraints during the computation. • The PCE entity is an application that can be located within a network node or component, on an out-of-network server, etc. • For example, a PCE would be able to compute the path of a TE LSP by operating on the TED and considering bandwidth and other constraints applicable to the TE LSP service request. SS 19, v 1.3 FI - Ch 3: (Virtual) circuit switching 19
Recommend
More recommend