Chapter 3 The Data Link Layer 2010 1 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 2010 2 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. 2010 3 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 2010 4 Framing, flag bytes (a) A frame delimited by flag bytes. (b) Four examples of byte sequences before and after stuffing. 2010 5 Framing, bit stuffing Flag is 6 “1” bits After 5 “1”’s a “0” is added 2010 6 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 2010 7 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 2010 8 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 2010 9 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 2010 10 Pipelining sender receiver last bit transmitted, t = L / R first packet bit arrives RTT last packet bit arrives, send ACK 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 2010 11 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 2010 12 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 2010 13 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 2010 14 Selective Repeat buffers 2010 15 Go Back N vs Selective Repeat 2010 16 Protocol Verification Modeling needed • Finite State Machine Models • Petri Net Models Formal verification • Uppaal • PVS 2010 17