computer networks prof. ashok k agrawala · framing – bit stuffing . link layer . stuffing done...

196
CSMC 417 Computer Networks Prof. Ashok K Agrawala © 2012 Ashok Agrawala Based on J.F Kurose and K.W. Ross Set 5 1 Network Layer

Upload: others

Post on 16-May-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

  • CSMC 417

    Computer Networks Prof. Ashok K Agrawala

    © 2012 Ashok Agrawala

    Based on J.F Kurose and K.W. Ross

    Set 5

    1 Network Layer

  • Link Layer 5-2

    Chapter 5: Link layer our goals: understand principles behind link layer

    services: error detection, correction sharing a broadcast channel: multiple access link layer addressing local area networks: Ethernet, VLANs

    instantiation, implementation of various link layer technologies

  • Link Layer 5-3

    Link layer, LANs: outline

    5.1 introduction, services 5.2 error detection,

    correction 5.3 multiple access

    protocols 5.4 LANs addressing, ARP Ethernet switches VLANS

    5.5 link virtualization: MPLS

    5.6 data center networking

    5.7 a day in the life of a web request

  • Link Layer 5-4

    Link layer: introduction terminology: hosts and routers: nodes communication channels that

    connect adjacent nodes along communication path: links wired links wireless links LANs

    layer-2 packet: frame, encapsulates datagram

    data-link layer has responsibility of

    transferring datagram from one node to physically adjacent node over a link

    global ISP

  • Link Layer 5-5

    Link layer: context

    datagram transferred by different link protocols over different links: e.g., Ethernet on first link,

    frame relay on intermediate links, 802.11 on last link

    each link protocol provides different services e.g., may or may not

    provide rdt over link

    transportation analogy: trip from Princeton to Lausanne

    limo: Princeton to JFK plane: JFK to Geneva train: Geneva to Lausanne

    tourist = datagram transport segment =

    communication link transportation mode = link

    layer protocol travel agent = routing

    algorithm

  • Link Layer 5-6

    Link layer services framing, link access: encapsulate datagram into frame, adding header, trailer channel access if shared medium “MAC” addresses used in frame headers to identify

    source, dest • different from IP address!

    reliable delivery between adjacent nodes we learned how to do this already (chapter 3)! seldom used on low bit-error link (fiber, some twisted

    pair) wireless links: high error rates

    • Q: why both link-level and end-end reliability?

  • Link Layer 5-7

    flow control: pacing between adjacent sending and receiving nodes

    error detection: errors caused by signal attenuation, noise. receiver detects presence of errors:

    • signals sender for retransmission or drops frame

    error correction: receiver identifies and corrects bit error(s) without resorting to

    retransmission

    half-duplex and full-duplex with half duplex, nodes at both ends of link can transmit, but not

    at same time

    Link layer services (more)

  • Link Layer 5-8

    Where is the link layer implemented? in each and every host link layer implemented in

    “adaptor” (aka network interface card NIC) or on a chip Ethernet card, 802.11

    card; Ethernet chipset implements link, physical

    layer attaches into host’s system

    buses combination of hardware,

    software, firmware

    controller

    physical transmission

    cpu memory

    host bus (e.g., PCI)

    network adapter card

    application transport network

    link

    link physical

  • Link Layer 5-9

    Adaptors communicating

    sending side: encapsulates datagram in

    frame adds error checking bits,

    rdt, flow control, etc.

    receiving side looks for errors, rdt,

    flow control, etc extracts datagram, passes

    to upper layer at receiving side

    controller controller

    sending host receiving host

    datagram datagram

    datagram

    frame

  • Link Layer 5-10

    Link layer, LANs: outline

    5.1 introduction, services 5.2 error detection,

    correction 5.3 multiple access

    protocols 5.4 LANs addressing, ARP Ethernet switches VLANS

    5.5 link virtualization: MPLS

    5.6 data center networking

    5.7 a day in the life of a web request

  • Link Layer 5-11

    Error detection EDC= Error Detection and Correction bits (redundancy) D = Data protected by error checking, may include header fields • Error detection not 100% reliable!

    • protocol may miss some errors, but rarely • larger EDC field yields better detection and correction

    otherwise

  • Link Layer 5-12

    Parity checking

    single bit parity: detect single bit

    errors

    two-dimensional bit parity: detect and correct single bit errors

    0 0

  • Link Layer 5-13

    Internet checksum (review)

    sender: treat segment contents

    as sequence of 16-bit integers

    checksum: addition (1’s complement sum) of segment contents

    sender puts checksum value into UDP checksum field

    receiver: compute checksum of

    received segment check if computed

    checksum equals checksum field value: NO - error detected YES - no error detected.

    But maybe errors nonetheless?

    goal: detect “errors” (e.g., flipped bits) in transmitted packet (note: used at transport layer only)

  • Link Layer 5-14

    Cyclic redundancy check more powerful error-detection coding view data bits, D, as a binary number choose r+1 bit pattern (generator), G goal: choose r CRC bits, R, such that

    exactly divisible by G (modulo 2) receiver knows G, divides by G. If non-zero remainder:

    error detected! can detect all burst errors less than r+1 bits

    widely used in practice (Ethernet, 802.11 WiFi, ATM)

  • Link Layer 5-15

    CRC example

    want: D.2r XOR R = nG

    equivalently: D.2r = nG XOR R

    equivalently: if we divide D.2r by

    G, want remainder R to satisfy:

    R = remainder[ ] D.2r G

    1001 101110000 1001

    1

    101

    01000

    000 1010 1001

    010 000

    100 000 1000 0000 1000

    D G

    R

    r = 3

  • Cyclic Redundancy Check Have to maximize the probability of

    detecting the errors using a small number of additional bits.

    Based on powerful mathematical formulations – theory of finite fields

    Consider (n+1) bits as n degree polynomial

    Message M(x) represented as polynomial

    Divisor C(x) of degree k Send P(x) as (n+1) bits +k bits such that

    P(x) is exactly divisible by C(x)

    Link Layer 16

    3 2

    7 4 3 1

    ( ) 1( )

    C x x xM x x x x x

    = + +

    = + + +

  • CRC Basis

    Use modulo 2 arithmetic Any Polynomial B(x) can be divided by a divisor

    polynomial C(x) if B(x) is of higher degree than C(x)

    Any polynomial B(x) can be divided once by a divisor polynomial C(x) if they are of the same degree

    The remainder obtained when B(x) is divided by C(x) is obtained by subtracting C(x) from B(x)

    To subtract C(x) from B(x) we simply perform the exclusive-OR operation on each pair of matching coefficients.

    Link Layer 17

  • Error Detection – CRCs (1) Adds bits so that transmitted frame viewed as a polynomial is evenly

    divisible by a generator polynomial

    Link Layer

    Start by adding 0s to frame and try dividing

    Offset by any reminder to make it evenly divisible

    5-18

  • Cyclic Redundancy Check

    Link Layer 19

    All single bit errors – if xk and x0 terms are nonzero

    All double-bit errors – as long as C(x) has a factor with at least three terms

    Any odd number of errors as long as C(x) has (x+1) as a factor

    Any burst error of length k bits

  • Common CRC Polynomials

    CRC C(x)

    CRC-8 x8 + x2 + X1 + 1

    CRC-10 x10 + x9 + x5 + x4 + x1 + 1

    CRC-12 x12 + x11 + x3 + x2 + 1

    CRC-16 x16 + x15 + x2 + 1

    CRC-CCITT x16 + x12 + x5 + 1

    CRC-32 x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x1 + 1

    Link Layer 20

  • Error Detection – CRCs (2)

    Link Layer

    Based on standard polynomials: Ex: Ethernet 32-bit CRC is defined by:

    Computed with simple shift/XOR circuits

    Stronger detection than checksums: E.g., can detect all double bit errors Not vulnerable to systematic errors

  • Framing Methods

    Link Layer

    Byte count » Flag bytes with byte stuffing » Flag bits with bit stuffing » Physical layer coding violations

    • Use non-data symbol to indicate frame

  • Framing Break sequence of bits into a frame Typically implemented by the network adaptor

    Sentinel-based Delineate frame with special pattern (e.g., 01111110)

    Problem: what if special patterns occurs within frame? Solution: escaping the special characters

    • E.g., sender always inserts a 0 after five 1s • … and receiver always removes a 0 appearing after five 1s • Bit Stuffing

    Similar to escaping special characters in C programs

    01111110 01111110 Frame contents

    23 Link Layer

  • Bit Oriented Protocols

    Frame – a collection of bits No Byte boundary

    SDLC – Synchronous Data Link Control IBM

    HDLC – High-Level Data Link Control ISO Standard

    Link Layer 24

    HDLC Frame Format

  • Framing (Continued)

    Counter-based Include the payload length in the header … instead of putting a sentinel at the end Problem: what if the count field gets corrupted?

    • Causes receiver to think the frame ends at a different place Solution: catch later when doing error detection

    • And wait for the next sentinel for the start of a new frame

    25 Link Layer

    DDCMP Frame Format

  • Framing – Byte count

    Link Layer

    Frame begins with a count of the number of bytes in it Simple, but difficult to resynchronize after an error

    Error case

    Expected case

  • Framing – Bit stuffing

    Link Layer

    Stuffing done at the bit level: Frame flag has six consecutive 1s (not shown) On transmit, after five 1s in the data, a 0 is added On receive, a 0 after five 1s is deleted

    Transmitted bits with stuffing

    Data bits

  • Framing – Byte stuffing

    Link Layer

    Special flag bytes delimit frames; occurrences of flags in the data must be stuffed (escaped) Longer, but easy to resynchronize after error

    Stuffing examples

    Frame format

    Need to escape extra ESCAPE bytes too!

  • Byte-Oriented Protocols

    Frame – a collection of bytes. Examples BISYNC – Binary Synchronous Communication – IBM DDCMP – Digital Data Communication Message

    Protocol PPP – Point-to-Point

    Sentinel Based – Use special character as marker BISYNC

    • SYN and SOH • STX and ETX • DLE as escape character. - Character Stuffing

    Link Layer 29

  • Frame Structure

    Link Layer 30

    PPP Frame Format

    BISYNC Frame Format

  • Clock-Based Framing (SONET)

    Clock-based Make each frame a fixed size No ambiguity about start and end of frame But, may be wasteful

    Synchronous Optical Network (SONET) Slowest speed link STS-1 – 51.84 Mbps ( 810*8*8K) Frame – 9 rows of 90 bytes

    • First 3 bytes of each row are overhead • First two bytes of a frame contain a special bit pattern – to

    mark the start of the frame – check for it every 810 bytes

    Link Layer 31

  • Sonet Frame

    Link Layer 32

  • Elementary Data Link Protocols

    Link Layer

    Link layer environment » Utopian Simplex Protocol » Stop-and-Wait Protocol for Error-free channel » Stop-and-Wait Protocol for Noisy channel »

  • Link layer environment (1)

    Link Layer

    Commonly implemented as NICs and OS drivers; network layer (IP) is often OS software

  • Link layer environment (2) Link layer protocol implementations use library functions

    See code (protocol.h) for more details

    Link Layer

    Group Library Function Description

    Network layer

    from_network_layer(&packet) to_network_layer(&packet) enable_network_layer() disable_network_layer()

    Take a packet from network layer to send Deliver a received packet to network layer Let network cause “ready” events Prevent network “ready” events

    Physical layer

    from_physical_layer(&frame) to_physical_layer(&frame)

    Get an incoming frame from physical layer Pass an outgoing frame to physical layer

    Events & timers

    wait_for_event(&event) start_timer(seq_nr) stop_timer(seq_nr) start_ack_timer() stop_ack_timer()

    Wait for a packet / frame / timer event Start a countdown timer running Stop a countdown timer from running Start the ACK countdown timer Stop the ACK countdown timer

    5-35

  • Protocol Definitions

    Continued

    Some definitions needed in the protocols to follow. These are located in the file protocol.h.

    36 Link Layer

  • Protocol Definitions (ctd.)

    Some definitions needed in the protocols to follow. These are located in the file protocol.h.

    37 Link Layer

  • Utopian Simplex Protocol

    Link Layer

    An optimistic protocol (p1) to get us started Assumes no errors, and receiver as fast as sender Considers one-way data transfer

    That’s it, no error or flow control …

    Sender loops blasting frames Receiver loops eating frames }

    PresenterPresentation NotesThis is essentially what Ethernet does – just blast packets and receive as quickly as possible

  • Utopian Simplex Protocol (1)

    A utopian simplex protocol. . . .

    Link Layer 5-39

  • Utopian Simplex Protocol (2) A utopian simplex protocol.

    Link Layer 5-40

  • Reliable Transmission

    Transfer frames without errors Error Correction Error Detection Discard frames with error

    Acknowledgements and Timeouts Retransmission ARQ – Automatic Repeat Request

    Link Layer 41

  • Stop and Wait with 1-bit Seq No

    Link Layer 42

  • Stop and Wait Protocols

    Simple Low Throughput One Frame per RTT

    Increase throughput by having more frames in

    flight Sliding Window Protocol

    Link Layer 43

  • Stop and Wait

    Link Layer 44

    Duplicate Frames

  • Stop-and-Wait – Error-free channel

    Link Layer

    Protocol (p2) ensures sender can’t outpace receiver: Receiver returns a dummy frame (ack) when ready Only one frame out at a time – called stop-and-wait We added flow control!

    Sender waits to for ack after passing frame to physical

    layer

    Receiver sends ack after passing frame to network layer

    PresenterPresentation NotesThis is an intermediate protocol in which we’ve dealt with one issue (flow control) but not another (error control). It is instructive, but does not represent any real protocol (as it will deadlock if there are errors).

  • Stop-and-Wait – Noisy channel (1)

    Link Layer

    ARQ (Automatic Repeat reQuest) adds error control Receiver acks frames that are correctly delivered Sender sets timer and resends frame if no ack)

    For correctness, frames and acks must be numbered Else receiver can’t tell retransmission (due to lost ack

    or early timer) from new frame For stop-and-wait, 2 numbers (1 bit) are sufficient

    PresenterPresentation NotesARQ is also called PAR (Positive Acknowledgement with Retransmission)

  • Stop-and-Wait – Noisy channel (2)

    Link Layer

    Sender loop (p3):

    Send frame (or retransmission) Set timer for retransmission Wait for ack or timeout

    If a good ack then set up for the next frame to send (else the old frame will be retransmitted)

    {

    PresenterPresentation NotesThis is essentially what 802.11 does – stop-and-wait to handle wireless errors. There are differences in the details: 802.11 uses a larger sequence number (12 bits) and gives up after a limited number of retransmissions (retries).

  • Stop-and-Wait – Noisy channel (3)

    Link Layer

    Receiver loop (p3):

    Wait for a frame

    If it’s new then take it and advance expected frame Ack current frame

  • Sliding Window Protocols

    Link Layer

    Sliding Window concept » One-bit Sliding Window » Go-Back-N » Selective Repeat »

  • Sliding Window concept (1)

    Link Layer

    Sender maintains window of frames it can send Needs to buffer them for possible retransmission Window advances with next acknowledgements

    Receiver maintains window of frames it can receive Needs to keep buffer space for arrivals Window advances with in-order arrivals

  • Sliding Window Protocol

    Sender assigns a sequence number –SeqNum Sender maintains three variables: Send Window Size – SWS Last Ack Received – LAR Last Frame Sent – LFS

    Invariant LFS – LAR < SWS When ACK arrives sender movers LAR to the

    right and thereby allowing the sender to transmit another frame

    Associate a timer with each frame it transmits

    Link Layer 51

  • Sliding Window Protocol

    Receiver maintains three variables: Receiver Window Size – RWS Largest acceptable Frame Number – LAF Last Frame Received – LFR

    Invariant LAF –LFR < RWR When frame with SEQNum arrives If SeqNum < LFR or SeqNum >LAF discard the

    frame If LFR < SeqNum < LAF then accept the frame

    SeqNumtoAck – largest seq no not yet acked. Send this as ack.

    Link Layer 52

  • Sliding Window

    Link Layer 53

    Sliding Window on Sender

    Sliding window on Receiver

    Timeline

  • Sliding Window concept (2)

    Link Layer

    A sliding window advancing at the sender and receiver Ex: window size is 1, with a 3-bit sequence number.

    At the start First frame is

    sent

    First frame is received

    Sender gets first ack

    Sender

    Receiver

  • Sliding Window concept (3)

    Link Layer

    Larger windows enable pipelining for efficient link use Stop-and-wait (w=1) is inefficient for long links Best window (w) depends on bandwidth-delay (BD) Want w ≥ 2BD+1 to ensure high link utilization

    Pipelining leads to different choices for errors/buffering We will consider Go-Back-N and Selective Repeat

    PresenterPresentation NotesPipelining means that there are multiple frames outstanding in the network at any instant.

    For stop-and-wait, imagine a link from Seattle to Amsterdam that has a 500ms round-trip time. It doesn’t matter how fast the link is in bits/sec, stop-and-wait will only let it run at two packets per second.

  • One-Bit Sliding Window (1) Transfers data in both directions with stop-and-wait Piggybacks acks on reverse data frames for efficiency Handles transmission errors, flow control, early timers

    Link Layer . . .

    {

    Each node is sender and receiver (p4):

    Prepare first frame

    Launch it, and set timer

    5-56

    PresenterPresentation NotesShows a basic implementation of a sliding window for w=1 handling error/flow control for us to build on

  • One-Bit Sliding Window (2)

    Link Layer

    . . .

    If a frame with new data then deliver it

    Wait for frame or timeout

    (Otherwise it was a timeout)

    If an ack for last send then prepare for next data frame

    Send next data frame or retransmit old one; ack the last data we received

    5-57

  • Two scenarios show subtle interactions exist in p4: • Simultaneous start [right] causes correct but slow operation compared

    to normal [left] due to duplicate transmissions.

    Time

    (a) Normal case (b) Correct, but poor performance

    One-Bit Sliding Window (3)

    Link Layer

    Notation is (seq, ack, frame number). Asterisk indicates frame accepted by network layer .

    5-58

  • Go-Back-N (1)

    Link Layer

    Receiver only accepts/acks frames that arrive in order: Discards frames that follow a missing/errored frame Sender times out and resends all outstanding frames

  • Go-Back-N (2)

    Link Layer

    Tradeoff made for Go-Back-N: Simple strategy for receiver; needs only 1 frame Wastes link bandwidth for errors with large

    windows; entire window is retransmitted

  • Selective Repeat (1)

    Link Layer

    Receiver accepts frames anywhere in receive window Cumulative ack indicates highest in-order frame NAK (negative ack) causes sender retransmission of a

    missing frame before a timeout resends window

  • Selective Repeat (2)

    Link Layer

    Tradeoff made for Selective Repeat: More complex than Go-Back-N due to buffering at

    receiver and multiple timers at sender More efficient use of link bandwidth as only lost

    frames are resent (with low error rates)

    Implemented as p6 (see code in book)

    PresenterPresentation NotesWhat happens if the NAK is lost, or if multiple data frames are lost per round-trip time? The retransmission timer goes off and transmission restarts from the acknowledgement point. To be more tolerant of these situations more acknowledgement information needs to be returned (more NAKs, a bit vector of the frames received beyond the cumulative ack, etc.)

  • Selective Repeat (3)

    Link Layer

    For correctness, we require: Sequence numbers (s) at least twice the window (w)

    Originals Originals Retransmits Retransmits

    Error case (s=8, w=7) – too few sequence numbers

    Correct (s=8, w=4) – enough sequence numbers

    New receive window overlaps old – retransmits ambiguous

    New and old receive window don’t overlap – no ambiguity

  • Example Data Link Protocols

    Link Layer

    Packet over SONET » PPP (Point-to-Point Protocol) » ADSL (Asymmetric Digital Subscriber Loop) »

  • Packet over SONET

    Link Layer

    Packet over SONET is the method used to carry IP packets over SONET optical fiber links Uses PPP (Point-to-Point Protocol) for framing

    Protocol stacks PPP frames may be split over SONET payloads

  • Packet over SONET (2)

    PPP Features 1. Separate packets, error detection 2. Link Control Protocol 3. Network Control Protocol

    Link Layer 5-66

  • PPP (1)

    Link Layer

    PPP (Point-to-Point Protocol) is a general method for delivering packets across links Framing uses a flag (0x7E) and byte stuffing “Unnumbered mode” (connectionless unacknow-

    ledged service) is used to carry IP packets Errors are detected with a checksum

    IP packet 0x21 for IPv4

  • PPP (2)

    Link Layer

    A link control protocol brings the PPP link up and down

    State machine for link control

  • PPP – Point to Point Protocol (3)

    The LCP frame types.

    69 Link Layer

  • ADSL (1)

    Link Layer

    Widely used for broadband Internet over local loops ADSL runs from modem (customer) to DSLAM (ISP) IP packets are sent over PPP and AAL5/ATM (over)

  • ADSL (2)

    Link Layer

    PPP data is sent in AAL5 frames over ATM cells: ATM is a link layer that uses short, fixed-size cells (53

    bytes); each cell has a virtual circuit identifier AAL5 is a format to send packets over ATM PPP frame is converted to a AAL5 frame (PPPoA)

    AAL5 frame is divided into 48 byte pieces, each of which goes into one ATM cell with 5 header bytes

    PresenterPresentation NotesRe ATM: ATM was a major technology in the 1990s that was hyped to win in the convergence of the Internet and telecommunications, but IP won instead. The short, fixed-size cells give flexibility (can mix voice and data without having the voice wait for a whole data packet). ATM is now used in niches such as ADSL and WAN links.

  • High-Level Data Link Control

    Frame format for bit-oriented protocols.

    72 Link Layer

  • High-Level Data Link Control (2)

    Control field of (a) An information frame. (b) A supervisory frame. (c) An unnumbered frame.

    73 Link Layer

  • The Data Link Layer in the Internet

    A home personal computer acting as an internet host.

    74 Link Layer

  • Link Layer 5-75

    Link layer, LANs: outline

    5.1 introduction, services 5.2 error detection,

    correction 5.3 multiple access

    protocols 5.4 LANs addressing, ARP Ethernet switches VLANS

    5.5 link virtualization: MPLS

    5.6 data center networking

    5.7 a day in the life of a web request

  • The MAC Sublayer

    CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

    Responsible for deciding who sends next on a multi-access link An important part of the link

    layer, especially for LANs Physical Link

    Network Transport Application

    MAC is in here!

  • Link Layer 5-77

    MAC protocols: taxonomy

    three broad classes: channel partitioning

    divide channel into smaller “pieces” (time slots, frequency, code) allocate piece to node for exclusive use

    random access channel not divided, allow collisions “recover” from collisions

    “taking turns” nodes take turns, but nodes with more to send can take longer

    turns

  • Link Layer 5-78

    Channel partitioning MAC protocols: TDMA

    TDMA: time division multiple access access to channel in "rounds" each station gets fixed length slot (length = pkt

    trans time) in each round unused slots go idle example: 6-station LAN, 1,3,4 have pkt, slots

    2,5,6 idle

    1 3 4 1 3 4

    6-slot frame

    6-slot frame

  • Link Layer 5-79

    FDMA: frequency division multiple access channel spectrum divided into frequency bands each station assigned fixed frequency band unused transmission time in frequency bands go idle example: 6-station LAN, 1,3,4 have pkt, frequency bands 2,5,6

    idle

    frequ

    ency

    ban

    ds

    FDM cable

    Channel partitioning MAC protocols: FDMA

  • Link Layer 5-80

    Multiple access protocols single shared broadcast channel two or more simultaneous transmissions by nodes:

    interference collision if node receives two or more signals at the same

    time multiple access protocol distributed algorithm that determines how nodes share

    channel, i.e., determine when node can transmit communication about channel sharing must use channel itself!

    no out-of-band channel for coordination

  • Link Layer 5-81

    An ideal multiple access protocol

    given: broadcast channel of rate R bps desiderata:

    1. when one node wants to transmit, it can send at rate R. 2. when M nodes want to transmit, each can send at average

    rate R/M 3. fully decentralized:

    • no special node to coordinate transmissions • no synchronization of clocks, slots

    4. simple

  • Link Layer 5-82

    Multiple access links, protocols two types of “links”: point-to-point

    PPP for dial-up access point-to-point link between Ethernet switch, host

    broadcast (shared wire or medium) old-fashioned Ethernet upstream HFC 802.11 wireless LAN

    shared wire (e.g., cabled Ethernet)

    shared RF (e.g., 802.11 WiFi)

    shared RF (satellite)

    humans at a cocktail party

    (shared air, acoustical)

  • Link Layer 5-83

    Random access protocols when node has packet to send transmit at full channel data rate R. no a priori coordination among nodes

    two or more transmitting nodes ➜ “collision”, random access MAC protocol specifies: how to detect collisions how to recover from collisions (e.g., via delayed

    retransmissions) examples of random access MAC protocols: slotted ALOHA ALOHA CSMA, CSMA/CD, CSMA/CA

  • ALOHA (1)

    In pure ALOHA, frames are transmitted at completely arbitrary times

    Collision Collision

    Time

    User A B C D E

  • Pure ALOHA (2)

    Vulnerable period for the shaded frame.

    November 12 85 CMSC417 Set 5

  • Link Layer 5-86

    Pure (unslotted) ALOHA unslotted Aloha: simpler, no synchronization when frame first arrives transmit immediately

    collision probability increases: frame sent at t0 collides with other frames sent in [t0-

    1,t0+1]

  • Link Layer 5-87

    Pure ALOHA efficiency P(success by given node) = P(node transmits) . P(no other node transmits in [t0-1,t0] . P(no other node transmits in [t0-1,t0] = p . (1-p)N-1 . (1-p)N-1 = p . (1-p)2(N-1) … choosing optimum p and then letting n

    = 1/(2e) = .18

    even worse than slotted Aloha!

  • Pure ALOHA (3)

    Throughput versus offered traffic for ALOHA systems.

    November 12 88 CMSC417 Set 5

  • Link Layer 5-89

    Slotted ALOHA

    assumptions: all frames same size time divided into equal size

    slots (time to transmit 1 frame)

    nodes start to transmit only slot beginning

    nodes are synchronized if 2 or more nodes transmit

    in slot, all nodes detect collision

    operation: when node obtains fresh

    frame, transmits in next slot if no collision: node can send

    new frame in next slot if collision: node retransmits

    frame in each subsequent slot with prob. p until success

  • Link Layer 5-90

    Pros: single active node can

    continuously transmit at full rate of channel

    highly decentralized: only slots in nodes need to be in sync

    simple

    Cons: collisions, wasting slots idle slots nodes may be able to

    detect collision in less than time to transmit packet

    clock synchronization

    Slotted ALOHA 1 1 1 1

    2

    3

    2 2

    3 3

    node 1

    node 2

    node 3

    C C C S S S E E E

  • Link Layer 5-91

    suppose: N nodes with many frames to send, each transmits in slot with probability p

    prob that given node has success in a slot = p(1-p)N-1

    prob that any node has a success = Np(1-p)N-1

    max efficiency: find p* that maximizes Np(1-p)N-1

    for many nodes, take limit of Np*(1-p*)N-1 as N goes to infinity, gives:

    max efficiency = 1/e = .37

    efficiency: long-run fraction of successful slots (many nodes, all with many frames to send)

    at best: channel used for useful transmissions 37% of time! !

    Slotted ALOHA: efficiency

  • Link Layer 5-92

    CSMA (carrier sense multiple access)

    CSMA: listen before transmit: if channel sensed idle: transmit entire frame if channel sensed busy, defer transmission

    human analogy: don’t interrupt others!

  • CSMA (1)

    CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

    CSMA improves on ALOHA by sensing the channel! User doesn’t send if it senses someone else

    Variations on what to do if the channel is busy: 1-persistent (greedy) sends as soon as idle Nonpersistent waits a random time then tries again p-persistent sends with probability p when idle

    PresenterPresentation Notes802.11 uses a refinement of p-persistent CSMA

  • Persistent and Nonpersistent CSMA

    Comparison of the channel utilization versus load for various random access protocols. November 12

    94 CMSC417 Set 5

  • CSMA Collisions

    Collisions can still occur: propagation delay means two nodes may not hear each other’s transmission

    Collision: entire packet transmission time wasted

    October 08 95 CMSC417 Set 11

  • Link Layer 5-96

    CSMA/CD (collision detection) CSMA/CD: carrier sensing, deferral as in CSMA collisions detected within short time colliding transmissions aborted, reducing channel wastage

    collision detection: easy in wired LANs: measure signal strengths, compare

    transmitted, received signals difficult in wireless LANs: received signal strength

    overwhelmed by local transmission strength human analogy: the polite conversationalist

  • Link Layer 5-97

    Ethernet CSMA/CD algorithm

    1. NIC receives datagram from network layer, creates frame

    2. If NIC senses channel idle, starts frame transmission. If NIC senses channel busy, waits until channel idle, then transmits.

    3. If NIC transmits entire frame without detecting another transmission, NIC is done with frame !

    4. If NIC detects another transmission while transmitting, aborts and sends jam signal

    5. After aborting, NIC enters binary (exponential) backoff: after mth collision, NIC

    chooses K at random from {0,1,2, …, 2m-1}. NIC waits K·512 bit times, returns to Step 2

    longer backoff interval with more collisions

  • Link Layer 5-98

    CSMA/CD efficiency

    Tprop = max prop delay between 2 nodes in LAN ttrans = time to transmit max-size frame

    efficiency goes to 1 as tprop goes to 0 as ttrans goes to infinity

    better performance than ALOHA: and simple, cheap, decentralized!

    transprop /ttefficiency

    511

    +=

  • CSMA/CD Collision Detection

    October 08 99 CMSC417 Set 11

  • CSMA (3) – Collision Detection

    CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

    CSMA/CD improvement is to detect/abort collisions Reduced contention times improve performance

    Collision time is much shorter than frame time

  • Link Layer 5-101

    “Taking turns” MAC protocols

    channel partitioning MAC protocols: share channel efficiently and fairly at high load inefficient at low load: delay in channel access, 1/N

    bandwidth allocated even if only 1 active node! random access MAC protocols efficient at low load: single node can fully utilize

    channel high load: collision overhead

    “taking turns” protocols look for best of both worlds!

  • Link Layer 5-102

    polling: master node “invites”

    slave nodes to transmit in turn

    typically used with “dumb” slave devices

    concerns: polling overhead latency single point of

    failure (master)

    master

    slaves

    poll

    data

    data

    “Taking turns” MAC protocols

  • Link Layer 5-103

    token passing: control token passed

    from one node to next sequentially.

    token message concerns: token overhead latency single point of failure

    (token)

    T

    data

    (nothing to send)

    T

    “Taking turns” MAC protocols

  • Collision-Free Protocols (1) – Bitmap

    CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

    Collision-free protocols avoid collisions entirely Senders must know when it is their turn to send

    The basic bit-map protocol: Sender set a bit in contention slot if they have data Senders send in turn; everyone knows who has data

  • Collision-Free Protocols– Countdown

    CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D.

    Binary countdown improves on the bitmap protocol

    Stations send their address in contention slot (log N bits instead of N bits) Medium ORs bits; stations

    give up when they send a “0” but see a “1” Station that sees its full

    address is next to send

  • Limited-Contention Protocols (1)

    CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

    Idea is to divide stations into groups within which only a very small number are likely to want to send Avoids wastage due to idle periods and collisions

    Already too many contenders for a good chance of one winner

  • Limited Contention Adaptive Tree Walk

    CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

    Tree divides stations into groups (nodes) to poll Depth first search under nodes with poll collisions Start search at lower levels if >1 station expected

    Level 0

    Level 1

    Level 2

  • Wavelength Division Multiple Access Protocols

    Wavelength division multiple access.

    November 12 108 CMSC417 Set 5

  • Ethernet • Ethernet Cabling • Manchester Encoding • The Ethernet MAC Sublayer Protocol • The Binary Exponential Backoff Algorithm • Ethernet Performance • Switched Ethernet • Fast Ethernet • Gigabit Ethernet • IEEE 802.2: Logical Link Control • Retrospective on Ethernet

    November 12 109 CMSC417 Set 5

  • Link Layer 5-110

    Ethernet “dominant” wired LAN technology: cheap $20 for NIC first widely used LAN technology simpler, cheaper than token LANs and ATM kept up with speed race: 10 Mbps – 10 Gbps

    Metcalfe’s Ethernet sketch

  • Classic Ethernet– Physical Layer

    CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

    One shared coaxial cable to which all hosts attached Up to 10 Mbps, with Manchester encoding Hosts ran the classic Ethernet protocol for access

  • Ethernet Transceiver and Adapter

    Medium – 50 ohm cable

    Taps 2.5 m apart Transceiver – can

    send and receive Multiple segments can

    be joined by repeaters – no more than 4

    Max end-to-end distance – 2500 m

    October 08 CMSC417 Set 11 112

  • Ethernet Uses CSMA/CD

    Carrier sense: wait for link to be idle Channel idle: start transmitting

    Channel busy: wait until idle

    Collision detection: listen while transmitting No collision: transmission is complete

    Collision: abort transmission, and send jam signal

    Random access: exponential back-off After collision, wait a random time before trying again

    After mth collision, choose K randomly from {0, …, 2m-1}

    … and wait for K*512 bit times before trying again October 08

    113 CMSC417 Set 11

  • Ethernet Cabling

    The most common kinds of Ethernet cabling.

    November 12 114 CMSC417 Set 5

  • Ethernet Cabling (2)

    Three kinds of Ethernet cabling. (a) 10Base5, (b) 10Base2, (c) 10Base-T.

    November 12 115 CMSC417 Set 5

  • Ethernet Cabling (3)

    Cable topologies. (a) Linear, (b) Spine, (c) Tree, (d) Segmented.

    November 12 116 CMSC417 Set 5

  • Ethernet Signalling

    (a) Binary encoding, (b) Manchester encoding, (c) Differential Manchester encoding. November 12

    117 CMSC417 Set 5

  • Ethernet Frame Format

    Preamble – For synchronizing Alternate 0 and 1

    Address – 48 bit MAC Type – Id for higher

    level protocol Length – up to 1500

    bytes, with minimum of 46 bytes, of data

    802.3 – Length for Type field.

    October 08 CMSC417 Set 11 118

  • Link Layer 5-119

    Ethernet frame structure

    sending adapter encapsulates IP datagram (or other network layer protocol packet) in Ethernet frame

    preamble: 7 bytes with pattern 10101010 followed by one

    byte with pattern 10101011 used to synchronize receiver, sender clock rates

    dest. address

    source address

    data (payload) CRC preamble

    type

  • Link Layer 5-120

    Ethernet frame structure (more) addresses: 6 byte source, destination MAC addresses if adapter receives frame with matching destination

    address, or with broadcast address (e.g. ARP packet), it passes data in frame to network layer protocol

    otherwise, adapter discards frame type: indicates higher layer protocol (mostly IP but

    others possible, e.g., Novell IPX, AppleTalk) CRC: cyclic redundancy check at receiver error detected: frame is dropped

    dest. address

    source address

    data (payload) CRC preamble

    type

  • Link Layer 5-121

    Ethernet: unreliable, connectionless

    connectionless: no handshaking between sending and receiving NICs

    unreliable: receiving NIC doesnt send acks or nacks to sending NIC data in dropped frames recovered only if initial

    sender uses higher layer rdt (e.g., TCP), otherwise dropped data lost

    Ethernet’s MAC protocol: unslotted CSMA/CD wth binary backoff

  • Link Layer 5-122

    802.3 Ethernet standards: link & physical layers

    many different Ethernet standards common MAC protocol and frame format different speeds: 2 Mbps, 10 Mbps, 100 Mbps, 1Gbps,

    10G bps different physical layer media: fiber, cable

    application transport network

    link physical

    MAC protocol and frame format

    100BASE-TX

    100BASE-T4

    100BASE-FX 100BASE-T2

    100BASE-SX 100BASE-BX

    fiber physical layer copper (twister pair) physical layer

  • Classic Ethernet (2) – MAC

    CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

    MAC protocol is 1-persistent CSMA/CD Random delay (backoff) after collision is computed with BEB (Binary Exponential Backoff) Frame format is still used with modern Ethernet.

    Ethernet (DIX)

    IEEE 802.

    3

  • Ethernet Transmitter Algorithm

    P-persistent Transmit with prob p

    when line goes idle Ethernet uses 1-

    persistent algorithm On Collision- 32 bit jamming

    sequence Stops transmitting Runt frame – 64 synch

    + 32 bit jamming sequence

    Min frame size – 64 bytes – 46 + 14 + 4

    For 2500 m line with up to 4 repeaters max round trip delay – 51.2µs

    Exponential Backoff In steps of 51.2µs Wait k* rand (0,.. 2k-1)

    October 08 CMSC417 Set 11 124

  • IEEE 802.2: Logical Link Control

    (a) Position of LLC. (b) Protocol formats. November 12

    125 CMSC417 Set 5

  • Limitations on Ethernet Length

    Latency depends on physical length of link Time to propagate a packet from one end to the other

    Suppose A sends a packet at time t And B sees an idle line at a time just before t+d … so B happily starts transmitting a packet

    B detects a collision, and sends jamming signal But A doesn’t see collision till t+2d

    latency d A B

    October 08 126 CMSC417 Set 11

  • Limitations on Ethernet Length

    A needs to wait for time 2d to detect collision So, A should keep transmitting during this period … and keep an eye out for a possible collision

    Imposes restrictions on Ethernet Maximum length of the wire: 2500 meters Minimum length of the packet: 512 bits (64 bytes)

    latency d A B

    October 08 127 CMSC417 Set 11

  • Ethernet MAC Sublayer Protocol (2)

    Collision detection can take as long as 2 .τNovember 12

    128 CMSC417 Set 5

  • Worst Case Secnario

    October 08 CMSC417 Set 11 129

    A sends a frame at time t

    Frame arrives at B at t+d

    B begins transmitting at t+d and collides with A’s Frame

    B’s 32 bit frame arrives at A at t+2d

  • Ethernet Performance k stations, always ready to transmit Assume constant retransmission probability p Probability, A that some station acquires channel during a given slot 𝐴 = 𝑘𝑘(1 − 𝑘)𝑘−1 Optimal value of p – differentiate w.r.t. p and equate to 0

    • 𝑘 = 1𝑘 then optimal 𝐴 = [𝑘−1

    𝑘]𝑘−1

    • As k → ∞ 𝑘 → 1𝑒

    Probability that Contention Interval is exactly j slots is 𝐴(1 − 𝐴)𝑗−1 So, the mean number of slots per contention

    ∑ 𝑗𝐴(1 − 𝐴)𝑗−1 = 1𝐴

    ∞𝑗=0

    Slot duration = 2𝜏 Mean contention interval 𝑤 = 2𝜏

    𝐴 …. Mean number of cont. slots = e

    If frame transmission time = P

    Channel efficiency = 𝑃𝑃+2𝜏/𝐴

    = 11+2𝐵𝐵𝑒/𝑐𝑐

    Where F=Frame length, B=network Bandwidth, L = cable length

    November 12 CMSC417 Set 5 130

  • Ethernet Performance Efficiency of Ethernet at 10 Mbps with 512-bit slot times.

    November 12 131 CMSC417 Set 5

  • Ethernet Repeaters

    Up to 4 Repeaters Cables 10Base 5

    • 10Mbps • Baseband • 500 Meters

    10Base2 10BaseT

    • Twisted Pair 100 M Category 5 (Cat 5)

    • 10 M and 100 M • Twisted Pair

    October 08 CMSC417 Set 11 132

  • Hubs: Physical-Layer Repeaters

    Hubs are physical-layer repeaters Bits coming from one link go out all other links At the same rate, with no frame buffering No CSMA/CD at hub: adapters detect

    collisions

    twisted pair

    hub

    October 08 133 CMSC417 Set 11

  • Interconnecting with Hubs

    Backbone hub interconnects LAN segments All packets seen everywhere, forming one large

    collision domain Can’t interconnect Ethernets of different speeds

    hub hub hub

    hub

    October 08 134 CMSC417 Set 11

  • Switch

    Link layer device Stores and forwards Ethernet frames Examines frame header and selectively

    forwards frame based on MAC dest address When frame is to be forwarded on segment,

    uses CSMA/CD to access segment Transparent Hosts are unaware of presence of switches

    Plug-and-play, self-learning Switches do not need to be configured

    October 08 135 CMSC417 Set 11

  • Switched/Fast Ethernet (1)

    CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

    Hubs wire all lines into a single CSMA/CD domain Switches isolate each port to a separate domain

    • Much greater throughput for multiple ports • No need for CSMA/CD with full-duplex lines

  • Switched/Fast Ethernet (2)

    CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

    Switches can be wired to computers, hubs and switches Hubs concentrate traffic from computers More on how to switch frames the in 4.8

    Switch

    Twisted pair Switch ports

    Hub

  • Switch: Traffic Isolation Switch breaks subnet into LAN segments Switch filters packets

    Same-LAN-segment frames not usually forwarded onto other LAN segments

    Segments become separate collision domains

    hub hub hub

    switch

    collision domain collision domain

    collision domain

    October 08 138 CMSC417 Set 11

  • Switched/Fast Ethernet (3)

    CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

    Fast Ethernet extended Ethernet from 10 to 100 Mbps Twisted pair (with Cat 5) dominated the market

  • Gigabit Ethernet (1)

    A two-station Ethernet

  • Gigabit / 10 Gigabit Ethernet (1)

    CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

    Switched Gigabit Ethernet is now the garden variety With full-duplex lines between computers/switches

  • Gigabit / 10 Gigabit Ethernet (1)

    CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

    Gigabit Ethernet is commonly run over twisted pair

    10 Gigabit Ethernet is being deployed where needed

    40/100 Gigabit Ethernet is under development

  • Benefits of Ethernet

    Easy to administer and maintain Inexpensive Increasingly higher speed

    Moved from shared media to switches Change everything except the frame format A good general lesson for evolving the Internet

    October 08 143 CMSC417 Set 11

  • cable headend

    CMTS

    ISP

    cable modem termination system

    multiple 40Mbps downstream (broadcast) channels single CMTS transmits into channels

    multiple 30 Mbps upstream channels multiple access: all users contend for certain upstream

    channel time slots (others assigned)

    Cable access network

    cable modem splitter

    Internet frames,TV channels, control transmitted downstream at different frequencies

    upstream Internet frames, TV control, transmitted upstream at different frequencies in time slots

  • Link Layer 5-145

    DOCSIS: data over cable service interface spec FDM over upstream, downstream frequency channels TDM upstream: some slots assigned, some have contention downstream MAP frame: assigns upstream slots request for upstream slots (and data) transmitted

    random access (binary backoff) in selected slots

    MAP frame for Interval [t1, t2]

    Residences with cable modems

    Downstream channel i

    Upstream channel j

    t1 t2

    Assigned minislots containing cable modem upstream data frames

    Minislots containing minislots request frames

    cable headend

    CMTS

    Cable access network

  • Link Layer 5-146

    Summary of MAC protocols

    channel partitioning, by time, frequency or code Time Division, Frequency Division

    random access (dynamic), ALOHA, S-ALOHA, CSMA, CSMA/CD carrier sensing: easy in some technologies (wire), hard

    in others (wireless) CSMA/CD used in Ethernet CSMA/CA used in 802.11

    taking turns polling from central site, token passing bluetooth, FDDI, token ring

  • Link Layer 5-147

    Link layer, LANs: outline

    5.1 introduction, services 5.2 error detection,

    correction 5.3 multiple access

    protocols 5.4 LANs addressing, ARP Ethernet switches VLANS

    5.5 link virtualization: MPLS

    5.6 data center networking

    5.7 a day in the life of a web request

  • Link Layer 5-148

    MAC addresses and ARP

    32-bit IP address: network-layer address for interface used for layer 3 (network layer) forwarding

    MAC (or LAN or physical or Ethernet) address: function: used ‘locally” to get frame from one interface to

    another physically-connected interface (same network, in IP-addressing sense)

    48 bit MAC address (for most LANs) burned in NIC ROM, also sometimes software settable

    e.g.: 1A-2F-BB-76-09-AD

    hexadecimal (base 16) notation (each “number” represents 4 bits)

  • Link Layer 5-149

    LAN addresses and ARP each adapter on LAN has unique LAN address

    adapter

    1A-2F-BB-76-09-AD

    58-23-D7-FA-20-B0

    0C-C4-11-6F-E3-98

    71-65-F7-2B-08-53

    LAN (wired or wireless)

  • Link Layer 5-150

    LAN addresses (more)

    MAC address allocation administered by IEEE manufacturer buys portion of MAC address space

    (to assure uniqueness) analogy: MAC address: like Social Security Number IP address: like postal address

    MAC flat address ➜ portability can move LAN card from one LAN to another

    IP hierarchical address not portable address depends on IP subnet to which node is

    attached

  • Link Layer 5-151

    ARP: address resolution protocol

    ARP table: each IP node (host, router) on LAN has table IP/MAC address

    mappings for some LAN nodes:

    < IP address; MAC address; TTL>

    TTL (Time To Live): time after which address mapping will be forgotten (typically 20 min)

    Question: how to determine interface’s MAC address, knowing its IP address?

    1A-2F-BB-76-09-AD

    58-23-D7-FA-20-B0

    0C-C4-11-6F-E3-98

    71-65-F7-2B-08-53

    LAN

    137.196.7.23

    137.196.7.78

    137.196.7.14

    137.196.7.88

  • Link Layer 5-152

    ARP protocol: same LAN A wants to send datagram

    to B B’s MAC address not in

    A’s ARP table. A broadcasts ARP query

    packet, containing B's IP address dest MAC address = FF-FF-

    FF-FF-FF-FF all nodes on LAN receive

    ARP query B receives ARP packet,

    replies to A with its (B's) MAC address frame sent to A’s MAC

    address (unicast)

    A caches (saves) IP-to-MAC address pair in its ARP table until information becomes old (times out) soft state: information that

    times out (goes away) unless refreshed

    ARP is “plug-and-play”: nodes create their ARP

    tables without intervention from net administrator

  • Link Layer 5-153

    walkthrough: send datagram from A to B via R focus on addressing – at IP (datagram) and MAC layer (frame) assume A knows B’s IP address assume A knows IP address of first hop router, R (how?) assume A knows R’s MAC address (how?)

    Addressing: routing to another LAN

    R

    1A-23-F9-CD-06-9B 222.222.222.220

    111.111.111.110 E6-E9-00-17-BB-4B CC-49-DE-D0-AB-7D

    111.111.111.112

    111.111.111.111 74-29-9C-E8-FF-55

    A

    222.222.222.222 49-BD-D2-C7-56-2A

    222.222.222.221 88-B2-2F-54-1A-0F

    B

  • R

    1A-23-F9-CD-06-9B 222.222.222.220

    111.111.111.110 E6-E9-00-17-BB-4B CC-49-DE-D0-AB-7D

    111.111.111.112

    111.111.111.111 74-29-9C-E8-FF-55

    A

    222.222.222.222 49-BD-D2-C7-56-2A

    222.222.222.221 88-B2-2F-54-1A-0F

    B

    Link Layer 5-154

    Addressing: routing to another LAN

    IP Eth Phy

    IP src: 111.111.111.111 IP dest: 222.222.222.222

    A creates IP datagram with IP source A, destination B A creates link-layer frame with R's MAC address as dest, frame

    contains A-to-B IP datagram

    MAC src: 74-29-9C-E8-FF-55 MAC dest: E6-E9-00-17-BB-4B

  • R

    1A-23-F9-CD-06-9B 222.222.222.220

    111.111.111.110 E6-E9-00-17-BB-4B CC-49-DE-D0-AB-7D

    111.111.111.112

    111.111.111.111 74-29-9C-E8-FF-55

    A

    222.222.222.222 49-BD-D2-C7-56-2A

    222.222.222.221 88-B2-2F-54-1A-0F

    B

    Link Layer 5-155

    Addressing: routing to another LAN

    IP Eth Phy

    frame sent from A to R

    IP Eth Phy

    frame received at R, datagram removed, passed up to IP

    MAC src: 74-29-9C-E8-FF-55 MAC dest: E6-E9-00-17-BB-4B

    IP src: 111.111.111.111 IP dest: 222.222.222.222

    IP src: 111.111.111.111 IP dest: 222.222.222.222

  • R

    1A-23-F9-CD-06-9B 222.222.222.220

    111.111.111.110 E6-E9-00-17-BB-4B CC-49-DE-D0-AB-7D

    111.111.111.112

    111.111.111.111 74-29-9C-E8-FF-55

    A

    222.222.222.222 49-BD-D2-C7-56-2A

    222.222.222.221 88-B2-2F-54-1A-0F

    B

    Link Layer 5-156

    Addressing: routing to another LAN

    IP src: 111.111.111.111 IP dest: 222.222.222.222

    R forwards datagram with IP source A, destination B R creates link-layer frame with B's MAC address as dest, frame

    contains A-to-B IP datagram

    MAC src: 1A-23-F9-CD-06-9B MAC dest: 49-BD-D2-C7-56-2A

    IP Eth Phy

    IP Eth Phy

  • R

    1A-23-F9-CD-06-9B 222.222.222.220

    111.111.111.110 E6-E9-00-17-BB-4B CC-49-DE-D0-AB-7D

    111.111.111.112

    111.111.111.111 74-29-9C-E8-FF-55

    A

    222.222.222.222 49-BD-D2-C7-56-2A

    222.222.222.221 88-B2-2F-54-1A-0F

    B

    Link Layer 5-157

    Addressing: routing to another LAN R forwards datagram with IP source A, destination B R creates link-layer frame with B's MAC address as dest, frame

    contains A-to-B IP datagram

    IP src: 111.111.111.111 IP dest: 222.222.222.222

    MAC src: 1A-23-F9-CD-06-9B MAC dest: 49-BD-D2-C7-56-2A

    IP Eth Phy

    IP Eth Phy

  • R

    1A-23-F9-CD-06-9B 222.222.222.220

    111.111.111.110 E6-E9-00-17-BB-4B CC-49-DE-D0-AB-7D

    111.111.111.112

    111.111.111.111 74-29-9C-E8-FF-55

    A

    222.222.222.222 49-BD-D2-C7-56-2A

    222.222.222.221 88-B2-2F-54-1A-0F

    B

    Link Layer 5-158

    Addressing: routing to another LAN R forwards datagram with IP source A, destination B R creates link-layer frame with B's MAC address as dest, frame

    contains A-to-B IP datagram

    IP src: 111.111.111.111 IP dest: 222.222.222.222

    MAC src: 1A-23-F9-CD-06-9B MAC dest: 49-BD-D2-C7-56-2A

    IP

    Eth Phy

  • Link Layer 5-159

    Link layer, LANs: outline

    5.1 introduction, services 5.2 error detection,

    correction 5.3 multiple access

    protocols 5.4 LANs addressing, ARP Ethernet switches VLANS

    5.5 link virtualization: MPLS

    5.6 data center networking

    5.7 a day in the life of a web request

  • Link Layer 5-160

    Ethernet switch link-layer device: takes an active role store, forward Ethernet frames examine incoming frame’s MAC address,

    selectively forward frame to one-or-more outgoing links when frame is to be forwarded on segment, uses CSMA/CD to access segment

    transparent hosts are unaware of presence of switches

    plug-and-play, self-learning switches do not need to be configured

  • Link Layer 5-161

    Switch: multiple simultaneous transmissions

    hosts have dedicated, direct connection to switch

    switches buffer packets Ethernet protocol used on each

    incoming link, but no collisions; full duplex each link is its own collision

    domain switching: A-to-A’ and B-to-B’

    can transmit simultaneously, without collisions switch with six interfaces

    (1,2,3,4,5,6)

    A

    A’

    B

    B’ C

    C’

    1 2

    3 4 5

    6

  • Link Layer 5-162

    Switch forwarding table

    Q: how does switch know A’ reachable via interface 4, B’ reachable via interface 5?

    switch with six interfaces (1,2,3,4,5,6)

    A

    A’

    B

    B’ C

    C’

    1 2

    3 4 5

    6 A: each switch has a switch table, each entry: (MAC address of host, interface to

    reach host, time stamp) looks like a routing table!

    Q: how are entries created, maintained in switch table? something like a routing protocol?

  • A

    A’

    B

    B’ C

    C’

    1 2

    3 4 5

    6

    Link Layer 5-163

    Switch: self-learning switch learns which hosts

    can be reached through which interfaces when frame received,

    switch “learns” location of sender: incoming LAN segment

    records sender/location pair in switch table

    A A’

    Source: A Dest: A’

    MAC addr interface TTL Switch table

    (initially empty) A 1 60

  • Link Layer 5-164

    Switch: frame filtering/forwarding

    when frame received at switch: 1. record incoming link, MAC address of sending host 2. index switch table using MAC destination address 3. if entry found for destination

    then { if destination on segment from which frame arrived

    then drop frame else forward frame on interface indicated by entry } else flood /* forward on all interfaces except arriving interface */

  • A

    A’

    B

    B’ C

    C’

    1 2

    3 4 5

    6

    Link Layer 5-165

    Self-learning, forwarding: example A A’

    Source: A Dest: A’

    MAC addr interface TTL switch table

    (initially empty) A 1 60

    A A’ A A’ A A’ A A’ A A’

    frame destination, A’, locaton unknown: flood

    A’ A

    destination A location known:

    A’ 4 60

    selectively send on just one link

  • Link Layer 5-166

    Interconnecting switches

    switches can be connected together

    Q: sending from A to G - how does S1 know to forward frame destined to F via S4 and S3? A: self learning! (works exactly the same as in

    single-switch case!)

    A

    B

    S1

    C D

    E

    F S2

    S4

    S3

    H I

    G

  • Link Layer 5-167

    Self-learning multi-switch example Suppose C sends frame to I, I responds to C

    Q: show switch tables and packet forwarding in S1, S2, S3, S4

    A

    B

    S1

    C D

    E

    F S2

    S4

    S3

    H I

    G

  • Link Layer 5-168

    Institutional network

    to external network

    router

    IP subnet

    mail server

    web server

  • Link Layer 5-169

    Switches vs. routers

    both are store-and-forward: routers: network-layer

    devices (examine network-layer headers)

    switches: link-layer devices (examine link-layer headers)

    both have forwarding tables: routers: compute tables

    using routing algorithms, IP addresses

    switches: learn forwarding table using flooding, learning, MAC addresses

    application transport network

    link physical

    network link

    physical

    link physical

    switch

    datagram

    application transport network

    link physical

    frame

    frame

    frame datagram

  • Link Layer 5-170

    VLANs: motivation consider: CS user moves office to

    EE, but wants connect to CS switch?

    single broadcast domain: all layer-2 broadcast

    traffic (ARP, DHCP, unknown location of destination MAC address) must cross entire LAN

    security/privacy, efficiency issues

    Computer Science Electrical

    Engineering

    Computer Engineering

  • Link Layer 5-171

    VLANs port-based VLAN: switch ports

    grouped (by switch management software) so that single physical switch ……

    switch(es) supporting VLAN capabilities can be configured to define multiple virtual LANS over single physical LAN infrastructure.

    Virtual Local Area Network 1 8

    9

    16 10 2

    7

    Electrical Engineering (VLAN ports 1-8)

    Computer Science (VLAN ports 9-15)

    15

    Electrical Engineering (VLAN ports 1-8)

    1

    8 2

    7 9

    16 10

    15

    Computer Science (VLAN ports 9-16)

    … operates as multiple virtual switches

  • Link Layer 5-172

    Port-based VLAN

    1

    8

    9

    16 10 2

    7

    Electrical Engineering (VLAN ports 1-8)

    Computer Science (VLAN ports 9-15)

    15

    traffic isolation: frames to/from ports 1-8 can only reach ports 1-8 can also define VLAN based on

    MAC addresses of endpoints, rather than switch port

    dynamic membership: ports can be dynamically assigned among VLANs

    router

    forwarding between VLANS: done via routing (just as with separate switches) in practice vendors sell combined

    switches plus routers

  • Link Layer 5-173

    VLANS spanning multiple switches

    trunk port: carries frames between VLANS defined over multiple physical switches frames forwarded within VLAN between switches can’t be vanilla

    802.1 frames (must carry VLAN ID info) 802.1q protocol adds/removed additional header fields for frames

    forwarded between trunk ports

    1

    8

    9

    10 2

    7

    Electrical Engineering (VLAN ports 1-8)

    Computer Science (VLAN ports 9-15)

    15

    2

    7 3

    Ports 2,3,5 belong to EE VLAN Ports 4,6,7,8 belong to CS VLAN

    5

    4 6 8 16

    1

  • Link Layer 5-174

    type

    2-byte Tag Protocol Identifier (value: 81-00)

    Tag Control Information (12 bit VLAN ID field, 3 bit priority field like IP TOS)

    Recomputed CRC

    802.1Q VLAN frame format

    802.1 frame

    802.1Q frame

    dest. address

    source address data (payload) CRC preamble

    dest. address

    source address preamble data (payload) CRC

    type

  • Link Layer 5-175

    Link layer, LANs: outline

    5.1 introduction, services 5.2 error detection,

    correction 5.3 multiple access

    protocols 5.4 LANs addressing, ARP Ethernet switches VLANS

    5.5 link virtualization: MPLS

    5.6 data center networking

    5.7 a day in the life of a web request

  • Link Layer 5-176

    Multiprotocol label switching (MPLS)

    initial goal: high-speed IP forwarding using fixed length label (instead of IP address) fast lookup using fixed length identifier (rather than

    shortest prefix matching) borrowing ideas from Virtual Circuit (VC) approach but IP datagram still keeps IP address!

    PPP or Ethernet header IP header remainder of link-layer frame MPLS header

    label Exp S TTL

    20 3 1 5

  • Link Layer 5-177

    MPLS capable routers

    a.k.a. label-switched router forward packets to outgoing interface based only on

    label value (don’t inspect IP address) MPLS forwarding table distinct from IP forwarding tables

    flexibility: MPLS forwarding decisions can differ from those of IP use destination and source addresses to route flows to

    same destination differently (traffic engineering) re-route flows quickly if link fails: pre-computed backup

    paths (useful for VoIP)

  • Link Layer 5-178

    R2

    D R3

    R5

    A

    R6

    MPLS versus IP paths

    IP router IP routing: path to destination determined

    by destination address alone

    R4

  • Link Layer 5-179

    R2

    D R3 R4

    R5

    A

    R6

    MPLS versus IP paths

    IP-only router

    IP routing: path to destination determined by destination address alone

    MPLS and IP router

    MPLS routing: path to destination can be based on source and dest. address fast reroute: precompute backup routes in

    case of link failure

    entry router (R4) can use different MPLS routes to A based, e.g., on source address

  • Link Layer 5-180

    MPLS signaling modify OSPF, IS-IS link-state flooding protocols to

    carry info used by MPLS routing, e.g., link bandwidth, amount of “reserved” link bandwidth

    D R4

    R5

    A

    R6

    entry MPLS router uses RSVP-TE signaling protocol to set up MPLS forwarding at downstream routers

    modified link state flooding

    RSVP-TE

  • Link Layer 5-181

    R1 R2

    D R3 R4

    R5 0

    1 0 0

    A

    R6

    in out out label label dest interface

    6 - A 0

    in out out label label dest interface

    10 6 A 1 12 9 D 0

    in out out label label dest interface

    10 A 0 12 D 0

    1

    in out out label label dest interface

    8 6 A 0

    0

    8 A 1

    MPLS forwarding tables

  • Link Layer 5-182

    Link layer, LANs: outline

    5.1 introduction, services 5.2 error detection,

    correction 5.3 multiple access

    protocols 5.4 LANs addressing, ARP Ethernet switches VLANS

    5.5 link virtualization: MPLS

    5.6 data center networking

    5.7 a day in the life of a web request

  • Link Layer 5-183

    Data center networks

    10’s to 100’s of thousands of hosts, often closely coupled, in close proximity: e-business (e.g. Amazon) content-servers (e.g., YouTube, Akamai, Apple, Microsoft) search engines, data mining (e.g., Google)

    challenges: multiple applications, each

    serving massive numbers of clients

    managing/balancing load, avoiding processing, networking, data bottlenecks

    Inside a 40-ft Microsoft container, Chicago data center

  • Link Layer 5-184

    Server racks

    TOR switches

    Tier-1 switches

    Tier-2 switches

    Load balancer

    Load balancer

    B

    1 2 3 4 5 6 7 8

    A C

    Border router

    Access router

    Internet

    Data center networks load balancer: application-layer routing receives external client requests directs workload within data center returns results to external client (hiding data

    center internals from client)

  • Server racks

    TOR switches

    Tier-1 switches

    Tier-2 switches

    1 2 3 4 5 6 7 8

    Data center networks rich interconnection among switches, racks: increased throughput between racks (multiple routing

    paths possible) increased reliability via redundancy

  • Link Layer 5-186

    Link layer, LANs: outline

    5.1 introduction, services 5.2 error detection,

    correction 5.3 multiple access

    protocols 5.4 LANs addressing, ARP Ethernet switches VLANS

    5.5 link virtualization: MPLS

    5.6 data center networking

    5.7 a day in the life of a web request

  • Link Layer 5-187

    Synthesis: a day in the life of a web request

    journey down protocol stack complete! application, transport, network, link

    putting-it-all-together: synthesis! goal: identify, review, understand protocols (at all

    layers) involved in seemingly simple scenario: requesting www page

    scenario: student attaches laptop to campus network, requests/receives www.google.com

  • Link Layer 5-188

    A day in the life: scenario

    Comcast network 68.80.0.0/13

    Google’s network 64.233.160.0/19 64.233.169.105

    web server

    DNS server

    school network 68.80.2.0/24

    web page

    browser

  • router (runs DHCP)

    Link Layer 5-189

    A day in the life… connecting to the Internet

    connecting laptop needs to get its own IP address, addr of first-hop router, addr of DNS server: use DHCP

    DHCP UDP

    IP Eth Phy

    DHCP

    DHCP

    DHCP

    DHCP

    DHCP

    DHCP UDP

    IP Eth Phy

    DHCP

    DHCP

    DHCP

    DHCP DHCP

    DHCP request encapsulated in UDP, encapsulated in IP, encapsulated in 802.3 Ethernet

    Ethernet frame broadcast

    (dest: FFFFFFFFFFFF) on LAN, received at router running DHCP server

    Ethernet demuxed to IP demuxed, UDP demuxed to DHCP

  • router (runs DHCP)

    Link Layer 5-190

    DHCP server formulates DHCP ACK containing client’s IP address, IP address of first-hop router for client, name & IP address of DNS server

    DHCP UDP

    IP Eth Phy

    DHCP

    DHCP

    DHCP

    DHCP

    DHCP UDP

    IP Eth Phy

    DHCP

    DHCP

    DHCP

    DHCP

    DHCP

    encapsulation at DHCP server, frame forwarded (switch learning) through LAN, demultiplexing at client

    Client now has IP address, knows name & addr of DNS server, IP address of its first-hop router

    DHCP client receives DHCP ACK reply

    A day in the life… connecting to the Internet

  • router (runs DHCP)

    Link Layer 5-191

    A day in the life… ARP (before DNS, before HTTP)

    before sending HTTP request, need IP address of www.google.com: DNS

    DNS UDP

    IP Eth Phy

    DNS

    DNS

    DNS

    DNS query created, encapsulated in UDP, encapsulated in IP, encapsulated in Eth. To send frame to router, need MAC address of router interface: ARP

    ARP query broadcast, received by router, which replies with ARP reply giving MAC address of router interface

    client now knows MAC address of first hop router, so can now send frame containing DNS query

    ARP query

    Eth Phy

    ARP

    ARP

    ARP reply

  • router (runs DHCP)

    Link Layer 5-192

    DNS UDP

    IP Eth Phy

    DNS

    DNS

    DNS

    DNS

    DNS

    IP datagram containing DNS query forwarded via LAN switch from client to 1st hop router

    IP datagram forwarded from campus network into comcast network, routed (tables created by RIP, OSPF, IS-IS and/or BGP routing protocols) to DNS server

    demux’ed to DNS server DNS server replies to client

    with IP address of www.google.com

    Comcast network 68.80.0.0/13

    DNS server

    DNS UDP

    IP Eth Phy

    DNS

    DNS

    DNS

    DNS

    A day in the life… using DNS

  • router (runs DHCP)

    Link Layer 5-193

    A day in the life…TCP connection carrying HTTP

    HTTP TCP IP

    Eth Phy

    HTTP

    to send HTTP request, client first opens TCP socket to web server

    TCP SYN segment (step 1 in 3-way handshake) inter-domain routed to web server

    TCP connection established! 64.233.169.105 web server

    SYN

    SYN

    SYN

    SYN

    TCP IP

    Eth Phy

    SYN

    SYN

    SYN

    SYNACK

    SYNACK

    SYNACK

    SYNACK

    SYNACK

    SYNACK

    SYNACK

    web server responds with TCP SYNACK (step 2 in 3-way handshake)

  • router (runs DHCP)

    Link Layer 5-194

    A day in the life… HTTP request/reply HTTP TCP IP

    Eth Phy

    HTTP

    HTTP request sent into TCP socket

    IP datagram containing HTTP request routed to www.google.com

    IP datagram containing HTTP reply routed back to client

    64.233.169.105 web server

    HTTP TCP IP

    Eth Phy

    web server responds with HTTP reply (containing web page)

    HTTP

    HTTP

    HTTP HTTP

    HTTP

    HTTP

    HTTP

    HTTP

    HTTP

    HTTP

    HTTP

    HTTP

    HTTP

    web page finally (!!!) displayed

  • Link Layer 5-195

    Chapter 5: Summary principles behind data link layer services: error detection, correction sharing a broadcast channel: multiple access link layer addressing

    instantiation and implementation of various link layer technologies Ethernet switched LANS, VLANs virtualized networks as a link layer: MPLS

    synthesis: a day in the life of a web request

  • Link Layer 5-196

    Chapter 5: let’s take a breath

    journey down protocol stack complete (except PHY)

    solid understanding of networking principles, practice

    ….. could stop here …. but lots of interesting topics! wireless multimedia security network management

    CSMC 417Chapter 5: Link layerLink layer, LANs: outlineLink layer: introductionLink layer: contextLink layer servicesLink layer services (more)Where is the link layer implemented?Adaptors communicatingLink layer, LANs: outlineError detectionParity checkingInternet checksum (review)Cyclic redundancy checkCRC exampleCyclic Redundancy CheckCRC BasisError Detection – CRCs (1) Cyclic Redundancy CheckCommon CRC PolynomialsError Detection – CRCs (2)Framing MethodsFramingBit Oriented ProtocolsFraming (Continued)Framing – Byte countFraming – Bit stuffingFraming – Byte stuffingByte-Oriented ProtocolsFrame StructureClock-Based Framing (SONET)Sonet FrameElementary Data Link ProtocolsLink layer environment (1)Link layer environment (2)Protocol DefinitionsProtocol �Definitions�(ctd.)Utopian Simplex ProtocolUtopian Simplex Protocol (1)Utopian Simplex Protocol (2)Reliable TransmissionStop and Wait with 1-bit Seq NoStop and Wait ProtocolsStop and WaitStop-and-Wait – Error-free channelStop-and-Wait – Noisy channel (1)Stop-and-Wait – Noisy channel (2)Stop-and-Wait – Noisy channel (3)Sliding Window ProtocolsSliding Window concept (1)Sliding Window ProtocolSliding Window ProtocolSliding WindowSliding Window concept (2)Sliding Window concept (3)One-Bit Sliding Window (1)One-Bit Sliding Window (2)One-Bit Sliding Window (3)Go-Back-N (1)Go-Back-N (2)Selective Repeat (1)Selective Repeat (2)Selective Repeat (3)Example Data Link ProtocolsPacket over SONETPacket over SONET (2)PPP (1)PPP (2)PPP – Point to Point Protocol (3)ADSL (1)ADSL (2)High-Level Data Link ControlHigh-Level Data Link Control (2)The Data Link Layer in the InternetLink layer, LANs: outlineThe MAC SublayerMAC protocols: taxonomyChannel partitioning MAC protocols: TDMAChannel partitioning MAC protocols: FDMAMultiple access protocolsAn ideal multiple access protocolMultiple access links, protocolsRandom access protocolsALOHA (1)Pure ALOHA (2)Pure (unslotted) ALOHAPure ALOHA efficiencyPure ALOHA (3)Slotted ALOHASlotted ALOHASlotted ALOHA: efficiencyCSMA (carrier sense multiple access)CSMA (1)Persistent and Nonpersistent CSMACSMA CollisionsCSMA/CD (collision detection)Ethernet CSMA/CD algorithmCSMA/CD efficiencyCSMA/CD Collision DetectionCSMA (3) – Collision Detection“Taking turns” MAC protocols“Taking turns” MAC protocols“Taking turns” MAC protocolsCollision-Free Protocols (1) – BitmapCollision-Free Protocols– CountdownLimited-Contention Protocols (1)Limited Contention�Adaptive Tree WalkWavelength Division Multiple Access ProtocolsEthernetEthernetClassic Ethernet– Physical LayerEthernet Transceiver and AdapterEthernet Uses CSMA/CDEthernet CablingEthernet Cabling (2)Ethernet Cabling (3)Ethernet SignallingEthernet Frame FormatEthernet frame structureEthernet frame structure (more)Ethernet: unreliable, connectionless802.3 Ethernet standards: link & physical layersClassic Ethernet (2) – MAC Ethernet Transmitter AlgorithmIEEE 802.2: Logical Link ControlLimitations on Ethernet LengthLimitations on Ethernet LengthEthernet MAC Sublayer Protocol (2)Worst Case SecnarioEthernet PerformanceEthernet PerformanceEthernet RepeatersHubs: Physical-Layer RepeatersInterconnecting with HubsSwitchSwitched/Fast Ethernet (1)Switched/Fast Ethernet (2)Switch: Traffic IsolationSwitched/Fast Ethernet (3)Gigabit Ethernet (1)Gigabit / 10 Gigabit Ethernet (1)Gigabit / 10 Gigabit Ethernet (1)Benefits of EthernetSlide Number 144Slide Number 145 Summary of MAC protocolsLink layer, LANs: outlineMAC addresses and ARPLAN addresses and ARPLAN addresses (more)ARP: address resolution protocolARP protocol: same LANAddressing: routing to another LANAddressing: routing to another LANAddressing: routing to another LANAddressing: routing to another LANAddressing: routing to another LANAddressing: routing to another LANLink layer, LANs: outlineEthernet switchSwitch: multiple simultaneous transmissionsSwitch forwarding tableSwitch: self-learningSwitch: frame filtering/forwardingSelf-learning, forwarding: exampleInterconnecting switchesSelf-learning multi-switch exampleInstitutional networkSwitches vs. routersVLANs: motivationVLANsPort-based VLANVLANS spanning multiple switchesSlide Number 174Link layer, LANs: outlineMultiprotocol label switching (MPLS)MPLS capable routersMPLS versus IP pathsMPLS versus IP pathsMPLS signalingMPLS forwarding tablesLink layer, LANs: outlineData center networks Slide Number 184Slide Number 185Link layer, LANs: outlineSynthesis: a day in the life of a web requestA day in the life: scenarioA day in the life… connecting to the InternetA day in the life… connecting to the InternetA day in the life… ARP (before DNS, before HTTP)A day in the life… using DNSA day in the life…TCP connection carrying HTTPA day in the life… HTTP request/reply Chapter 5: SummaryChapter 5: let’s take a breath