compsci356: computer network architectures …•high-level data link control (hdlc) protocol the...

45
CompSci 356: Computer Network Architectures Lecture 4: Link layer: Encoding, Framing, and Error Detection Ref. Chap 2.2, 2.3,2.4 Xiaowei Yang [email protected]

Upload: others

Post on 13-Mar-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

CompSci 356: Computer Network Architectures

Lecture 4: Link layer: Encoding, Framing, and Error Detection

Ref. Chap 2.2, 2.3,2.4

Xiaowei [email protected]

Page 2: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

Overview• Review: link/network performance metrics– Bandwidth– Latency / delay– Bandwidth * delay product– Throughput

• Today– Types of physical links– Link layer functions

• Encoding• Framing• Error detection

Page 3: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

The simplest network is one link plus two nodes

Hi Alice…

?

Page 4: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

Recap: Put bits on the wire

• Each node (e.g. a PC) connects to a network via a network adaptor.

• The adaptor delivers data between a node�s memory and the network.

• A device driver is the program running inside the node that manages the above task.

• At one end, a network adaptor encodes and modulates a bit into signals on a physical link.

• At the other end, a network adaptor reads the signals on a physical link and converts it back to a bit.

Page 5: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

Metrics to describe a link

• Bandwidth–Why are some links slow/fast?

• Latency/delay• Transmission delay– Store and forward

• Delay * bandwidth product• Throughput– How long does it take to send a file?

Page 6: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

Commonly Used Physical Links

• Different links have different transmission ranges– Signal attenuation

• Cables– Connect computers in the same building

• Leased lines– Lease a dedicated line to connect far-away nodes from

telephone companies

• Wireless links– Wifi, WiMax, Bluetooth, ZigBee, 4G, 5G…

Page 7: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

Cables• CAT-5: twisted pair• Coaxial: thick and thin• Fiber

10BASE2 cable, thin-net

200m10Base4, thick-net500m CAT-5

Fiber Cable Ethernet 40GbE

Page 8: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

Leased lines

• Tx series speed: multiple of 64Kpbs– Copper-based transmission• DS-1 (T1): 1,544, 24*64kpbs• DS-2 (T2): 6,312, 96*64kps• DS-3 (T3): 44,736, 672*64kps

• OC-N series speed: multiple of OC-1– Optical fiber based transmission• OC-1: 51.840 Mbps• OC-3: 155.250 Mbps• OC-12: 622.080 Mbps

Page 9: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

Last mile links• Wired links– POTS: 28.8-56Kbps (Plain old telephone service)– ISDN: 64-128Kbps (Integrated Services Digital

Network)– xDSL: 128Kbps-100Mbps (over telephone lines)• Digital Subscriber Line

– CATV: 1-40Mpbs (shared, over TV cables)

• Wireless links–Wifi, WiMax, Bluetooth, ZigBee, 4G, 5G…– Data rates: 4G (20Mbps), 5G (10Gbps)

Page 10: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

Central Office Subscriber premises

Local loopRuns on existing copper 18,000 feet at 1.544Mbps9,000 at 8.448 Mbps

ADSL

1.5-8.4Mpbs

16-640Kpbs

Central office Nbrhood opticalNetwork unit

Subscriberpremises

OC links 13-55Mpbs

1000-4500 feet of copper

VDSL (Very high)Symmetric

xDSL wiring

Must install VDSLtransmission hardware

Page 11: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

Wireless links• Wireless links transmit electromagnetic signals

through space– Used also by cellular networks, TV networks, satellite

networks etc.

• Shared media– Divided by frequency and space

• FCC determines who can use a spectrum in a geographic area, ie, �licensing�– Auction is used to determine the allocation– Expensive to become a cellular carrier

• Unlicensed spectrum– WiFi, Bluetooth, Infrared

Page 12: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

Sample link metricsLink type Typical

BandwidthTypical one-way latency

Round-trip delay

RTT xBandwidth

Dial-up 56 Kbps 10 km 87 us 5 bits

Wireless LAN 54 Mbps 50 m 0.33 us 18 bits

Satellite 45 Mbps 35,000 km 230 ms 10 Mb

Cross-country fiber

10 Gbps 4,000 km 40 ms 400 Mb

Page 13: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

Overview• Review: link/network performance metrics– Bandwidth / throughput– Latency / delay– Bandwidth * delay product

• Today– Types of physical links– Link layer functions

• Encoding• Framing• Error detection

Page 14: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

Link-layer functions

• Most functions are completed by adapters– Encoding– Framing– Error detection– Reliable transmission (if have time)

Page 15: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

Encoding

• Implemented in hardware• High and low signals, ignore modulation• Simplest one: 1 to high, 0 to low

Page 16: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

Non-return to zero• 1 to high, 0 to low

• Not good for decoding– Baseline wander– Clock recovery

Page 17: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

Solution 1: Nonreturn to zero inverted (NRZI) • A transition from current signal encodes 1• No transition encodes 0• Does it solve all problems?– Not for consecutive 0s

NRZI

Page 18: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

Solution 2: Manchester encoding• Clock XOR NRZ– 1: high à low; 0: low à high

– Drawback: doubles the rate at which signals are sent• Baud rate: signal change rate• Bit rate = half of baud rate. 50% efficient

Page 19: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

Final solution: 4B/5B

• Key idea: insert extra bits to break up long sequences of 0s or 1s

• 4-bit of data are encoded in a 5-bit code word– 16 data symbols, 32 code words– At most one leading 0, two trailing 0s– For every pair of codes, no more than three consecutive 0s

• 5-bit codes are sent using NRZI

Page 20: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

• Exercise:– 00101101

• What�s the high/low signal sequence?

• Efficiency?

4-bit data symbol

5-bit code

0000 111100001 010010010 101000011 101010100 010100101 010110110 011100111 011111000 100101001 10011

4-bit data symbol

5-bit code

1010 101101011 101111100 110101101 110111110 111001111 11101

Page 21: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

Overview

• Link layer functions– Encoding– Framing– Error detection

Page 22: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

Framing

• Now we’ve seen how to encode bitstreams• But nodes send blocks of data (frames)

– A�s memory à adaptor à adaptor à B�s memory

• An adaptor must determine the boundary of frames

Block of data

Page 23: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

Variety of Framing Protocols• Framing– Why is it an important task of an adaptor?

• Frames may belong to different apps• Need to decide when to deliver them to apps

• Design choices– Byte-oriented protocols

• Sentinel approach• Byte-counting approach• BISYNC, PPP, DDCMP

– Bit-oriented protocols– Clock-based framing

Page 24: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

Byte-oriented protocols: the sentinel approach

• Frame: a collection of bytes (characters)• SYN, ETX – What if special characters appear in a data stream?

• Escape character: DLE• Character stuffing

•Transmitted from the leftmost bit•Binary Synchronous Communication (BISYNC) by IBM in late 60s

Page 25: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

Point-to-Point Protocol (PPP)

• Internet dialup access– RFC 1661, 1994

• Flag: 01111110; • Address & Control: default• Protocol: de-multiplexing– IP, Link Control Protocol, …,

• Checksum: two or four bytes• Link Control Protocol– Set up and terminate the link– Negotiate other parameters• maximum receive unit

Page 26: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

Byte-oriented protocols: the byte counting approach

• A byte count field• The corruption of the count field– The sentinel approach: Corrupted ETX

•DDCMP by DECNET (Digital Data Communication Message Protocol)

Page 27: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

Bit-oriented protocols

• Frame: a collection of bits• Beginning/ending sequence: 01111110• Idle sequence: – 01111110 or idle flags 11111111

• Bit-stuffing for data• Frames are of variable length

•High-level data link control (HDLC) protocol

Page 28: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

The bit-stuffing algorithm

• Bit-stuffing for data–Sender: inserts a 0 after every five consecutive 1�s–Receiver: after five consecutive 1�s,• If the next bit is 0, removes it• If the next bit is 1–If the next bit is 0 (i.e. the last 8 bits are

01111110), then frame ends–Else error; discard frame, wait for next

01111110 to receive

Page 29: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

An exercise

• Suppose a receiver receives the following bit sequence– 011010111110101001111111011001111110

• What�s the resulting frame after removing stuffed bits? Indicate any error.

Page 30: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

Clock-based Framing

• Synchronous Optical Network (SONET)• Each frame is 125 us long, 810 bytes = 125 us

* 51.84Mbps• Clock synchronization–special pattern repeated enough times

•STS-1/OC-1 frame

•51.840Mbps

•The slowest SONET link

Page 31: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

Synchronized timeslots as placeholder

• Real frame data may float inside

Page 32: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

Overview

• Link layer functions– Encoding– Framing– Error detection

Page 33: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

Error detection

• Error detection code adds redundancy– Analogy: sending two copies– Parity– Checksum– CRC

• Error correcting code

Page 34: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

Two-dimensional parity

• Even parity bit– Make an even number of 1s in each row and column

• Detect all 1,2,3-bit errors, and most 4-bit errors

A sample frame of six bytes

Page 35: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

Internet checksum algorithm

• Basic idea (for efficiency)– Add all the words transmitted and then send the sum. – Receiver does the same computation and compares the

sums

• IP checksum– Adding 16-bit short integers using 1�s complement

arithmetic– Take 1�s complement of the result

• Used by lab 2 to detect errors

Page 36: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

1�s complement arithmetic

• -x is each bit of x inverted• If there is a carry bit, add 1 to the sum• [-2^(n-1)-1, 2^(n-1)-1]• Example: 4-bit integer– -5 + -2– +5: 0101; -5: 1010;– +2: 0010; -2: 1101;– -5 + -2 = 1010+1101 = 0111 + one carrier bit;–à1000 = -7

Page 37: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

Calculating the Internet checksum• u_short cksum (u_short *buf, int count) {

register u_long sum = 0;

while (count--) {sum += *buf++;if (sum & 0xFFFF0000) {

/* carry occurred. So wrap around */sum &= 0xFFFF;sum++;

}} // one’s complement sum

return ~(sum & 0xFFFF); // one’s complement of the sum

}

Page 38: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

Verifying the checksum

• Adds all 16-bit words together, including the checksum

• 0: correct• 1: errors

Page 39: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

Remarks

• Can detect 1 bit error• Not all two-bits• Efficient for software implementation

Page 40: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

Cyclic Redundancy Check

• Cyclic error-correcting codes • High-level idea:– Represent an n+1-bit message with an n degree polynomial

M(x)– Divide the polynomial by a degree-k divisor polynomial

C(x)– k-bit CRC: remainder– Send Message + CRC that is dividable by C(x)

Page 41: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

Polynomial arithmetic modulo 2

– B(x) can be divided by C(x) if B(x) has higher degree

– B(x) can be divided once by C(x) if of same degree• x^3 + 1 can be divided by x^3 + x^2 + 1• The remainder would be 0*x^3 + 1*x^2 + 0*x^1 +

0*x^0 (obtained by XORing the coefficients of each term)

– Remainder of B(x)/C(x) = B(x) – C(x)– Substraction is done by XOR each pair of

matching coefficients

Page 42: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

CRC algorithm

1. Multiply M(x) by x^k. Add k zeros to Message. Call it T(x)

2. Divide T(x) by C(x) and find the remainder3. Send P(x) = T(x) – remainder• Append remainder to T(x)

• P(x) dividable by C(x)

Page 43: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

An example

• 8-bit msg– 10011010

• Divisor (3bit CRC)– 1101

Msg sent: 11111001101

Page 44: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

How to choose a divisor

• Arithmetic of a finite field• Intuition: unlikely to be divided evenly by an

error• Corrupted msg is P(x) + E(x)• If E(x) is single bit, then E(x) = xi

• If C(x) has the first and last term nonzero, then detects all single bit errors

• Find C(x) by looking it up in a book

Page 45: CompSci356: Computer Network Architectures …•High-level data link control (HDLC) protocol The bit-stuffing algorithm • Bit-stuffing for data –Sender: inserts a 0 after every

Summary

• Link layer functions– Encoding• NRZ, NRZI, Manchester, 4B/5B

– Framing• Byte-oriented, bit-oriented, time-based• Bit stuffing

– Error detection• Parity, checkshum, CRC