CPS 356: Introduction to Computer Networks Lecture 7: Switching technologies Ch 2.8.2, 3.1, 3.4 Xiaowei Yang
Review: link layer functions Encoding – NRZ, NRZI, Manchester, 4B/5B Framing: bit, byte, time-synchronization Error detection – Parity bits, Internet checksum, CRC Reliable transmission – Stop-and-wait – Sliding window – Concurrent logical channels Media Access Control – Ethernet, Token Ring, Wifi (today)
Ethernet: Physical properties Sensing the line; if idle, sends signals 10Base5 CSMA/CD: Carrier Sense Multiple access with Collision Detection
Collision Domain Any host hears any other host – A single segment – Multiple segments connected by repeaters – Multiple segments connected by a hub
Transmitter Algorithm Begin: Wait until the line is idle and has data to send, the adaptor sends it, and listens to collision – If no, go back to Begin – else exponentially backoff randomly selects a k between [0,2 n -1], waits for k x 51.2 μs to try Begin again Gives up after n reaches 16
Collision detection An adaptor senses the signals on the line and compares it with its own – If same, no collision; otherwise, collision – Sends 32-bit jamming sequence after collision In the worst case, a sender needs to send 512 bits ( = 64B) to detection collision – Why?
One way delay is d A needs to send for 2d duration to detect collision 2d = 512 μs. On a 10Mps Ethernet, corresponds to 512 bits
The IEEE Baseband – Five physical segments between any two nodes – Four repeaters between the nodes. – Three of these physical segments can have connected node Each segment < 500m Total < 2500m
Propagation delay for this maximum-extent Ethernet network is 25.6us 2*d = 512us (tolerating errors) Minimum Ethernet packet size is 512 bits (64B) – Header 14B, payload 46B, CRC 4B
Today Types of switching – Datagram – Virtual circuit – Source routing Switching hardware design
Packet switching Problem: single link networks have limited scale Ethernet < 1024 hosts, 2500 meters Wireless limited by radio ranges Point-to-point links connect only two nodes Packet switches enable packets to travel from one host to another without being directly connected A packet switch is a device with several inputs and outputs leading to and from the nodes that the switch interconnects
A star topology A switch has a limited number of inputs and outputs ports Switches can be connected to each other to build larger networks Adding a new host may not reduce the performance for other hosts – Not true for shared media networks – Why?
Switching A switch connects links Each link can be of different types A switch runs an appropriate link layer protocol Switching (or forwarding): receive incoming packets and send to different outgoing links
Switching technologies Problem: how does a switch decide on which output port to place each packet? Solution: look at the packet header and makes a decision – Connectionless: datagram – Connection oriented: virtual circuit – Source routing
Challenges Contention – Input rate exceeds output rate Multiple input ports may send to the same output port – Switches queue packets until contention disappears Congestion – When a switch runs out of buffer, it discards packets. – Too frequent packet loss is said to be congested
Datagram Every packet contains the destination address – A global unique identifier – Ethernet has 48-bit addresses A switch maintains a forwarding table that maps a packet to an output port
Switch 2’s forwarding table A3 B0 C3 D E F G H Q: how does a switch compute the table?
Features of datagram switching Connectionless: hosts can send anytime. No need to wait for connection to set up Unknown network state: not sure whether a packet can reach the destination Independent forwarding: packets may take different paths Robust to failures: a failure of a switch may not disrupt communications – Switches can re-compute forwarding tables
Virtual circuit switching Connection oriented – Set up a virtual circuit – Data transfer Connection setup phase – Set up connection state – A virtual circuit identifier, an incoming interface, an outgoing interface, and an outgoing virtual circuit identifier
Virtual circuit table (switch1) Incoming interface Incoming VCI Outgoing interface Outgoing VCI
Virtual circuit switching Algorithm: – If a packet arrives on the matching incoming port with the matching incoming VCI, it will be sent to the corresponding outgoing port with the corresponding VCI VCIs are link-local
How to setup connection state Administrator configured – Permanent virtual circuit (PVC) – Admin manually sets up VC tables – Does not suit large networks Signaling – A host sends messages to dynamically setup or tear down a VC
VC setup A host A sends a setup message to first hop switch, including the final destination address – Similar to a datagram packet The switch picks an unused VCI to identify the incoming connection, and fills part of the VC table – Why not let the host pick it? Every switch repeats the process until the packet reaches the destination B The destination B sends an ack to inform its upstream switch the VCI for the connection
Setup B IF VCI OFVCI 251 Setup B IF VCI OFVCI 3112 Setup B IF VCI OFVCI 071 Setup B IF VCI OFVCI 071 4
IF VCI OFVCI 251 IF VCI OFVCI 3112 IF VCI OFVCI ACK, 4 4 ACK,
Characteristics of VC switching Connection setup wait Data packets contain a small VCI, rather than the full destination addresses One switch failure tears down the entire connection Connection sets up require routing algorithms – Setup packet is forwarded using a datagram algorithm
VC allows resource reservation Buffers can be allocated during the setup phase to avoid congestion An example (X.25) – Buffers allocated during connection setup – Sliding window is run between pairs of nodes (hop-by-hop flow control) – Circuit is rejected if no more buffer
Quality of service (QoS) Connectionless network is difficult to allocate resources – Switches send packets independently – How to associate one packet with other packets? Virtual circuit can be used to provide different QoS – Allocate a fraction of link bandwidth to each circuit
Switching technologies Connectionless: datagram Connection oriented: virtual circuit Source routing
Source host provides all the information for packets to travel across the network – Packets carry output port numbers – Packets carry switch addresses – Variable header length
Handling source routing headers Rotation Stripping – No return path! Pointer
Loose or strict source routing Strict – Must visit every node on the path Loose – Waypoints rather than the complete route
Overview Types of switching – Datagram – Virtual circuit – Source routing Switching hardware design – How to build switches?
Software switch Packets cross the bus twice – Half of the memory bus speed 133Mhz, 64-bit wide I/O bus 4Gpbs Short packets reduce throughput – 1Mpps, 64 bytes packet – Throughput = 512 Mbps – Shared by 10 ports: 51.2Mbps
Hardware switches Ports communicate with the outside world – Eg, maintains VC tables Switching fabric is simple and fast
Performance bottlenecks Input port – Line speed: 2.48 Gbps 2.48x10 9 /(64x8) = 4.83 Mpps Buffering – Head of line blocking – May limit throughput to only 59% – Use output buffers or sophisticated buffer management algorithms to improve performance
Fabrics Shared bus – The workstation switch Shared memory – Input ports read packets to shared memory – Output ports read them out to links
Fabrics Cross bar – Each output ports need to accept from all input ports
Fabrics Self routing – a self-routing header added by the input port – Most scalable – Often built from 2x2 switching units
An example of self-routing 3-bit numbers are self-routing headers Multiple 2x2 switching elements – 0: upper output; 1: lower output
Summary Types of switching – Datagram Forwarding table Simple, difficult to have QoS – Virtual circuit Datagram for connection setup Smaller VC identifiers – Source routing Packets carry forwarding information Variable header length Switching hardware design – Shared bus, shared memory, cross-bar, self-routing Next lecture – How is forwarding table computed? – ATM network