TOBB ETÜ ELE46/ELE563 Communications Networks Lecture 01 May 6, 2014 Fall 2011 Tuesday 10:30 – 12:20 (310) Thursday 15:30 – 17:20 (372) İsrafil Bahçeci Office: 168
Data Link Layer
Functions of DLL Frame transmission Reliable: Error free Efficient: Transmission Rate vs. Channel condition What to do? Error correction/detection Channel impairements
DLL Design Issues Service interface to network layer Dealing with transmission errors Flow control Frame management: Network packets encapsulated
Data Path 1.Unacknowledged connectionless service -> Reliable channel ->Ethernet 2.Acknowledged connectionless service -> Unreliable channel -> Wi-Fi 3.Acknowledged connection-oriented service
ACK/NACK issue DLL ACK/NACK is an optimization, not requirements Higher layers may take care of errors PHY medium determines this optimization Fiber, ethernet Wireless Connection-oriented service: reliable streaming Appropriate for unreliable, long channels (satellite, long- distance telephone circuit, etc..) Establish a connection before data exchange Numbered frames Each frames received exactly once, all in order 3 phases Connection establishment, initialize counters Frame transmission Connection release
Framing Bit stream from PHY layer may contain errors DLL splits bit streams in to discrete frames Checksum: CRC = cyclic redundancy check bits Receiver calculates the checksum bits and compares it with the one contained in the frame Bad frames detection
Frame generation Must alleviate the frame reception (e.g., sync) at the receiver side Byte-count Number of bytes in the header Errors in this info is catastrpohic Flag bytes with byte stuffing Frame start at certain slots indicate by a known flag byte (start and end with FLAGs) If FLAG exists in paylod, insert ESC charcater; ESC is removed before forwarding to network layer PPP: point-to-point protocol Flag bits with bit stuffing Physical layer coding violation
Byte FLAGing
Bit FLAGing Bit level flagging Bit stuffing Ex. HDLC – high level data link control Frame begins with 0x7E : Bit sutffing: a consecutive 5 1s stuffed with 0
Frame Length Data based frame length ~12.5% with bit stuffing Ethernet Preamble: all frames start with a known bit pattern 72-bits for
Error Control ACK/NACK ACK: correct reception NACK: error!, retransmit Complete ACK/frame loss Timers: Time to wait for ACK/NACK Timer cancellation if ACK arrives before Multiple transmission of frames: Frame numbering Overall goal: Each frame is only passed only once to the network layer
Flow Control How to control frame rate so that receiver can accept transmissions Sender: fast processors, receiver: slow processor HD Video to a smartphone with small computing power! Feedback-based flow control Rx to Tx: send more/less data Rate-based flow control Tx-built in flow control without feedback Usually feed-back based in DLL: Rx side determines the transmission of additional data until it processes the previously received ones
Error Detection/Correction Fiber, cable: small error Wireless links: larger errors Add redundancy for correction FER: forward error correction Enough redundancy for detection Depends on channel reliability Fiber: error detection Wireless: error correction + detection Error types Single-bit errors, few-bit errors Burst errors Erasure channel: easier to correct than flip-errors FEC/ED can be used in PHY,DLL and network layers as well
FEC: error correction codes Hamming Binary convolutional Reed-Solomon Low-density parity check codes
FEC Frame length: m bits Redundancy: r bits Linear block code: r bits from m information bits via linear combination (e.g., in mod-2 for binary codes) of information block Systematic code: m bits are sent directly Code rate = m/(m+r)
Hamming distance Distance between two sequences Binary: seq_d = seq1 XOR seq2 Number of 1s in seq_d Hamming distance of d -> d single bit errors
Hamming Code Linear block code Error syndrome
Convolutional Code
Decoding Soft-decision Hard-decision
Cyclic codes A subset of linear block codes Non-binary cyclic codes BCH codes Reed-Solomon codes
Error Detection Codes Linear systematic block codes Parity Checksums Cyclic redundancy checks (CRCs)