280 likes | 429 Views
Error Correction and Flow Control. Martin Weiss. Objectives of this Meeting. Describe different flow control techniques Describe the major error detection techniques. Review of the Last Meeting. Physical interfaces Topologies Asynchronous communications. Data Link Layer Issues. Type
E N D
Error Correction and Flow Control Martin Weiss
Objectives of this Meeting • Describe different flow control techniques • Describe the major error detection techniques
Review of the Last Meeting • Physical interfaces • Topologies • Asynchronous communications
Data Link Layer Issues • Type • Error detection and control • Flow control
Types of DLC Protocols • Byte-oriented protocols • Bit-oriented protocols
Protocol Environments • End-to-End • Local
Structure of Byte-Oriented Protocols Sample Structure SYN SYN SYN SOH Header STX Message EOT SYN = Synchronization SOH = Start of Header STX = Start of Text EOT = End of Text
Structure of Bit-Oriented Protocols Sample Frame Structure Preamble Flag Header Message Trailer Flag Preamble: Used for Bit Synchronization Flag: Identifies Start and End of Message Trailer: Error Checking
Bit Stuffing • Example Transmission Direction Original Bit Stream 0100101111010101101110000010111110010101111110 Locations for Stuff Bits Transmitted Bit Stream 010010111101010110111000001011111000101011111010
Design of Transmitter and Receiver Application Application Control Control Network Software Network Software Bit Stuffing Flag Insertion Flag Detection Bit Destuffing Transmitter Receiver
Vertical and Longitudinal Redundancy Checks Bit 1 Bit 2 Bit n Parity Character 1 b11 b21 bn1 R1 Character 2 b12 b22 bn2 R2 Character m b1m b2m bnm Rm Parity C1 C2 Cn Cn+1 LRC VRC
Cyclical Redundancy Check (CRC) • Based on polynomial division • Use standard divisor polynomials
Standard CRC Polynomials • P is the bit pattern, or Generator Polynomial • In the previous example, P = X5 + X4 + X2 + 1 • Standard CRC generator polynomials • CRC-12 = X12 + X11 + X3 + X2 + X + 1 • CRC-16 = X16 + X15 + X2 + 1 • CRC-CCITT = X16 + X12 + X5 + 1
Error Correction • Automatic Response Request (ARQ) • Forward error correction
Types of ARQ • Stop-and-Wait (Idle RQ) • Sliding Window (Continuous RQ)
Data 0 ACK 0 Data 1 NACK 1 Data 1 ACK 1 Data 0 Stop and Wait 1 2 3 4 5 6 7
Data D 0 0 A ACK 0 0 D Data 1 1 A ACK 1 1 Stop and Wait (Long Channel) 1 2 3 4 Increasing bit rate 1 2 3 4
Sliding Window • Transmitter may transmit several messages before awaiting response • The number of unacknowledged messages permitted is the Window Size
Sliding Window • If an error occurs • Transmitter resends everything since the error (Go-Back-N) • Only the errored packet (Selective Retransmission)
Data 0 Data 1 Data 2 ACK 2 0 Sliding Window (n>3) 0 1 2 3
Data 4 Data 5 Data 6 NACK 6 1 Data 4 Data 5 Data 6 Sliding Window (Go-Back-N) 4 5 6 7 8 9 10
Performance Issues • Stop and Wait • Error free • With errors
Performance Issues • Sliding window (Go-Back-N)
Performance Issues U 1.0 0.8 Sliding Window (N=7) Stop and Wait 0.6 P=10-3 0.4 0.2 a 0 0.1 1 10 100 1000
Forward Error Correction • Encode data so that errors can be corrected • Requires redundancy in message
Examples of Protocols • Byte oriented protocol • Kermit • Bisync • Bit oriented protocol: HDLC
Kermit Frame Structure SOH LEN SEQ TYPE data BCC CR