190 likes | 456 Views
The Data Link Layer. Chapter 3. Design Issues. Controls communication between 2 machines directly connected by “wire”-like link Services Provided to the Network Layer Framing: frame as an unit for physical layer to send in one go Error Control
E N D
The Data Link Layer Chapter 3
Design Issues Controls communication between 2 machines directly connected by “wire”-like link • Services Provided to the Network Layer • Framing: frame as an unit for physical layer to send in one go • Error Control • Flow Control, not sending faster than can be received
Services Provided to Network Layer Unacknowledged connectionless service. • no recovering of lost or corrupted frame • when the error rate is very low • real-time traffic, like speech or video Acknowledged connectionless service. • returns information a frame has safely arrived. • time-out, resend, frames received twice • unreliable channels, such as wireless systems. Acknowledged connection-oriented service. • established connection before any data is sent. • provides the network layer with a reliable bit stream.
Framing, character count • Time gaps between frames are not suitable • times are variable in networks • received gaps can be smaller or larger • Need to be combined with other methods
Framing, flag bytes (a) A frame delimited by flag bytes. (b) Four examples of byte sequences before and after stuffing.
Framing, bit stuffing Flag is 6 “1” bits After 5 “1”’s a “0” is added
Error-Detecting Codes, CRC Cyclic redundancy Checks related to polynomial theories usually implemented in hardware using 16 of 32 bit generators -detect burst errors fewer than r+1 bits -any odd number of bit errors -up to an certain even number of errors
Error-Correcting Codes Use of a Hamming code, adding extra bits, to correct errors. Error-correcting codes used in the early days, noisy lines Later lines and electronics got better: error-detection and resend Now used for wireless communication and high speed ethernet
Protocols • ACK (acknowledgements) for correct frames • possible NACK for lost or corrupted frames (piggybacked) • Pipelining • error correction by resend of lost or corrupted frames • Flow control
Stop and Wait Protocols A Simplex Protocol for a Noisy Channel • sender waits for an ack for each send frame • frames may be damaged or lost, same for acks • no nacks for lost or error frames • might be used to increase the data rate • sender uses a timer and re-sends frame • a 1-bit frame number (0 and 1) is needed for data and ack frames, to separate a re-send frame from the original one • also called: alternating bit protocol
Pipelining sender receiver last bit transmitted, t = L / R first packet bit arrives RTT ACK arrives, send next packet, t = RTT + L / R • Sender needs to buffer a send frame until its ack has arrived • the buffer is a sliding window on all frames in the stream last packet bit arrives, send ACK
Go Back N • receiver has no buffer • it can only accept (and send to its higher layer) a correct frame with the next expected sequence number • sends an ack for that sequence number, this implies that all previous frames have arrived • otherwise it discards the frame and • either sends nothing back or • an ack for the last accepted frame • or a nack for the next frame • receiver timer to send ack (or nack) in separate frame • do not wait too long for return frame to piggyback the ack or nack
Go Back N, sender • buffer for a number of already send but not yet acked frames • a timer for the oldest frame in the buffer • resend in case of time-out, an ack for an already acked frame or a nack • in case of a resend: • all next already send frames must be resend • more than 1 bit for sequence numbers are needed: • Nr_Buf <= Max_Seq+1
Selective Repeat • also receiver buffers frames: • can store out-of-order correct frames • only 1 frame has to be resend in case of error or lost • nacks are usually used for error or lost frames • just makes it faster • Nr_Buf <= (Max_Seq+1)/2 (0…Max_Seq) • sender needs timer of each send frame • receiver timer to send ack (or nack) in separate frame • do not wait too long for return frame to piggyback the ack or nack
Protocol Verification Modeling needed • Finite State Machine Models • Petri Net Models Formal verification • Uppaal • PVS