CS 457 – Lecture 4 Link Layer & Reliable Delivery Part 1 Fall 2011
Message, Segment, Packet, & Frame • host • host • HTTP message • HTTP • HTTP • TCP segment • TCP • TCP • router • router • IP packet • IP packet • IP packet • IP • IP • IP • IP • Ethernet • Ethernet • SONET • Ethernet • Ethernet • SONET • interface • interface • interface • interface • interface • interface • Ethernet frame • Ethernet frame • SONET frame WE ARE HERE IN THE LAYERS
Point to Point Data Links • One sender, One receiver, One link: – no Media Access Control – no need for explicit MAC addressing – e.g., dialup link, ISDN line • Popular Point-to-Point DLC protocols: – PPP (point-to-point protocol) – HDLC: High level data link control
Encoding Bits On The Wire • Simple idea of “high” for 1 and low for 0 – Say 1 usec per bit. Sender sends 4 bits with 4 usec “high” – Receiver sees 4.6 usec of “high”…. Was that 4 or 5 bits? • Allows clocks in sending and receiving nodes to synchronize to each other – no need for a centralized, global clock among nodes! • Physical-layer stuff for Electrical Engineers!
Variety of Encoding Approaches
Data Frame • Link Layer Protocols Define Data Frames – Header information, error checking, – Data to transmit (Body)
Ethernet Frame Structure • Sending adapter encapsulates packet in frame • Preamble: synchronization – Seven bytes with pattern 10101010, followed by one byte with pattern 10101011 – Used to synchronize receiver, sender clock rates
Ethernet Frame Structure (Cont.) • Addresses: source and destination MAC addresses – Adaptor passes frame to network-level protocol • If destination address matches the adaptor • Or the destination address is the broadcast address – Otherwise, adapter discards frame • Type: indicates the higher layer protocol – Usually IP – But also Novell IPX, AppleTalk, … • CRC: cyclic redundancy check – Checked at receiver – If error is detected, the frame is simply dropped
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
Parity Checking • Two Dimensional Bit Parity : • Single Bit Parity: • Detect and correct single bit errors • Detect single bit errors 0 0
Internet Checksum • Goal: detect “errors” (e.g., flipped bits) in transmitted segment Receiver: Sender: • compute checksum of received segment • treat segment contents as • check if computed checksum sequence of 16-bit integers equals checksum field value: • checksum: addition (1’s – NO - error detected complement sum) of – YES - no error detected. But segment contents maybe errors nonetheless? • sender puts checksum More later …. value into UDP checksum field
Checksumming: Cyclic Redundancy Check • view data bits D as a polynomial • choose r+1 polynomial C • goal: choose r CRC bits, R, such that – <D,R> exactly divisible by C (modulo 2) – receiver knows C, divides <D,R> by C. If non-zero remainder: error detected! – can detect all burst errors less than r+1 bits • widely used in practice (ATM, HDCL)
CRC Example Want: D . 2 r XOR R = nG equivalently: D . 2 r = nG XOR R equivalently: if we divide D . 2 r by G, want remainder R D . 2 r R = remainder[ ] G
Reliable Transfer Fundamental Networking Topic Most important topic thus far in this course • Frames may be lost or corrupted – Encoding failures where clocks get out of sync – Error detection reports packet is corrupted – And a vast number of other reasons…. • Can we build link so it appears reliable? – Build link so errors never occur?? • not feasible – Add error correction to frames? • Requires lots of additional overhead bytes for each frame • Doesn’t help if entire frame lost (e.g. clock sync error)
Stop and Wait (first attempt… has an error) • Sender writes frame onto wire and sets a timeout to wait for an ACK – Sender now “stops” and “waits” for the ACK • Upon receiving a packet, receiver sends an ACK • Sender Will Either 1) receive an ACK and can send next frame 2) times out and receives the “lost” frame
Reasons for Retransmission • Packet • Packet • Packet • Timeout • Timeout • Timeout • ACK • Packet • Packet • Packet • Timeout • Timeout • Timeout • ACK • ACK • ACK • ACK lost • Early timeout • Packet lost • DUPLICATE • DUPLICATE PACKET PACKETS
Stop and Wait (second attempt) • Sender writes frame onto wire with Seq #0 and sets a timeout to wait for an ACK – Sender now “stops” and “waits” for the ACK • Upon receiving a packet with Seq #0 receiver sends an ACK for Seq #0 • Sender Will Either 1) receive an ACK with Seq #0 and send next frame with Seq #1 2) times out and resends the frame with Seq #0
Stop and Wait in Action
Stop and Wait In Action (2)
What’s Next • Read Chapter 1, 2.1 - 2.5 • Next Lecture Topics from Chapter 2.5 – Reliable Transmission • Critical Topic In Networking • Homework – Due Thursday • Project 1 – Due 9/16 by 11:45
Recommend
More recommend