CS 457 – Lecture 4 Link Layer & Reliable Delivery Part 1 Fall 2011
Message, Segment, Packet, & Frame • host
• host
• HTTP message
• HTTP
• TCP segment
• TCP • router • IP
• Ethernet • interface
• HTTP
• IP packet
• IP
• Ethernet • interface
• Ethernet frame
• TCP
• router • IP packet
• SONET • interface
• SONET • interface
• IP packet
• IP
• Ethernet • interface
• SONET frame WE ARE HERE IN THE LAYERS
• IP
• Ethernet • interface
• Ethernet frame
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 • Single Bit Parity: • Detect single bit errors
• Two Dimensional Bit Parity: • Detect and correct single bit errors
0
0
Internet Checksum • Goal: detect “errors” (e.g., flipped bits) in transmitted segment Receiver:
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
• •
compute checksum of received segment check if computed checksum equals checksum field value: – NO - error detected – YES - no error detected. But maybe errors nonetheless? More later ….
Checksumming: Cyclic Redundancy Check • view data bits D as a polynomial • choose r+1 polynomial C • goal: choose r CRC bits, R, such that – exactly divisible by C (modulo 2) – receiver knows C, divides 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.2r XOR R = nG equivalently: D.2r = nG XOR R equivalently: if we divide D.2r by G, want remainder R
R = remainder[
D.2r 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
• Pack
et
• ACK
• Packet lost
et
• ACK
• Pack
et
• ACK
• Timeout
• Pack
• Pack
et
• Pack
et
• Timeout
et
• Timeout
• Pack
• Timeout
• Timeout
• Timeout
Reasons for Retransmission
• ACK
• ACK lost
• Early timeout
• DUPLICATE PACKET
• DUPLICATE 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