cs 457 – lecture 4 link layer & reliable delivery part...
TRANSCRIPT
CS 457 – Lecture 4 Link Layer &
Reliable Delivery Part 1 Fall 2011
Message, Segment, Packet, & Frame • HTTP
• TCP
• IP
• Ethernet • interface
• HTTP
• TCP
• IP
• Ethernet • interface
• IP • IP
• Ethernet • interface
• Ethernet • interface
• SONET • interface
• SONET • interface
• host • host
• router • router
• HTTP message
• TCP segment
• IP packet • IP packet • IP packet
• 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 • Single Bit Parity: • Detect single bit errors
• Two Dimensional Bit Parity: • Detect and correct single bit errors
0 0
Internet Checksum
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? More later ….
• Goal: detect “errors” (e.g., flipped bits) in transmitted segment
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.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
Reasons for Retransmission
• Packet
• Tim
eout
• Packet
• ACK
• Tim
eout
• Packet
• Tim
eout
• Packet
• ACK
• Tim
eout
• Packet
• ACK
• Tim
eout
• Packet
• ACK
• Tim
eout
• ACK lost • DUPLICATE
PACKET
• Packet lost • Early timeout • 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