32
Link Layer Dr. Mozafar Bag-Mohammadi Ilam University

Link Layer Dr. Mozafar Bag-Mohammadi Ilam University

Embed Size (px)

Citation preview

Page 1: Link Layer Dr. Mozafar Bag-Mohammadi Ilam University

Link Layer

Dr. Mozafar Bag-MohammadiIlam University

Page 2: Link Layer Dr. Mozafar Bag-Mohammadi Ilam University

Contents

1. Overview 2. Encoding 3. Framing 4. Error detection5. Acknowledgements & Timeouts

Page 3: Link Layer Dr. Mozafar Bag-Mohammadi Ilam University

1. Overview: Link Layer

Page 4: Link Layer Dr. Mozafar Bag-Mohammadi Ilam University

Link layer Communication service between two physically connected devices:

host-router, router-router, host-host unit of data: frame implemented in “adapter”

e.g., PCMCIA card, Ethernet card typically includes: RAM, DSP chips, host bus interface, and link interface

applicationtransportnetwork

linkphysical

networklink

physical

M

M

M

M

Ht

HtHn

HtHnHl MHtHnHl

framephys. link

data linkprotocol

adapter card

Page 5: Link Layer Dr. Mozafar Bag-Mohammadi Ilam University

Link Layer Services

Framing, link access: encapsulate datagram into frame, adding header, trailer implement channel access if shared medium, ‘physical addresses’ used in frame headers to identify

source, dest • different from IP address!

Reliable delivery between two physically connected devices: seldom used on low bit error link (fiber, some twisted pair) wireless links: high error rates

Page 6: Link Layer Dr. Mozafar Bag-Mohammadi Ilam University

Link Layer Services (more)

Flow Control: pacing between sender and receivers

Error Detection: errors caused by signal attenuation, noise. receiver detects presence of errors:

• signals sender for retransmission or drops frame

Error Correction: receiver identifies and corrects bit error(s) without

resorting to retransmission

Page 7: Link Layer Dr. Mozafar Bag-Mohammadi Ilam University

2.Encoding Encode binary data onto signals Bits flow is between network adaptors. How to send clock information?

Extract from signals or data. The simplest way is 0 as low signal and 1 as

high signal. This is known as Non-Return to zero (NRZ)

Bits

NRZ

0 0 1 0 1 1 1 1 0 1 0 0 0 0 1 0

Page 8: Link Layer Dr. Mozafar Bag-Mohammadi Ilam University

Problem with NRZ

Consecutive 0’s or 1’s may create problems. Synchronization problem because of

difference in the sender or receiver clocks. The average of signals which is used to

distinguish between low or high may move and make the decoding difficult. This is called baseline wander

Unable to recover clock

Page 9: Link Layer Dr. Mozafar Bag-Mohammadi Ilam University

Alternative Encodings Non-return to Zero Inverted (NRZI)

make a transition from current signal to encode a 1; stay at current signal to encode a zero

solves the problem of consecutive 1s

Manchester encoding transmit XOR of the NRZ encoded data and the clock. 0 is being encoded as a low to high transition and 1 as high to

low. It doubles the rate, then, it is only 50% efficient. The rate signal changing is called baud rate.

Page 10: Link Layer Dr. Mozafar Bag-Mohammadi Ilam University

Encodings (cont)

Bits

NRZ

Clock

Manchester

NRZI

0 0 1 0 1 1 1 1 0 1 0 0 0 0 1 0

Page 11: Link Layer Dr. Mozafar Bag-Mohammadi Ilam University

4B/5B Encoding4B/5B: The idea is insert extra bits to break the consecutive bit patterns.every 4 bits of data encoded in a 5-bit code

Page 12: Link Layer Dr. Mozafar Bag-Mohammadi Ilam University

4B/5B Encoding (cont)

5-bit codes selected to have no more than one leading 0 and no more than two trailing 0s

thus, never get more than three consecutive 0s resulting 5-bit codes are transmitted using NRZI achieves 80% efficiency. Unused code are used for control. I.e. 11111 is

for line is idle or 00000 for the line is dead. FDDI is using this scheme.

Page 13: Link Layer Dr. Mozafar Bag-Mohammadi Ilam University

3.Framing How to distinguish between data and

garbage. Break sequence of bits into a frame Typically implemented by network adaptor

Page 14: Link Layer Dr. Mozafar Bag-Mohammadi Ilam University

Byte-oriented Approaches

Sentinel-based delineate frame with special pattern: 01111110

or STX, ETX, etc characters. e.g., HDLC, SDLC, PPP

Header Body

8 16 16 8

CRCASCII character 1 soh (start of header)

ASCII character 4 eot (end of transmission)

Header Body

8 16 16 8

CRC01111110 01111110

Page 15: Link Layer Dr. Mozafar Bag-Mohammadi Ilam University

Byte-oriented Approaches

problem: special pattern or characters appear in the payload

solution: • bit stuffing

– sender: insert 0 after five consecutive 1s

– receiver: delete 0 that follows five consecutive 1s

Page 16: Link Layer Dr. Mozafar Bag-Mohammadi Ilam University

Byte stuffing

Page 17: Link Layer Dr. Mozafar Bag-Mohammadi Ilam University

Byte-oriented Approaches (cont)

Counter-based include payload length in the header e.g., DDCMP protocol from DEC.

problem: count field corrupted solution: catch when CRC fails

SY

N

Header Body

8 8 4214 168

SY

N

Cla

ss CRCCount

Page 18: Link Layer Dr. Mozafar Bag-Mohammadi Ilam University

4.Error Detection To send extra information to find error in the frame. The simplest form is sending two copies,

inefficient.

Sending the sum of values (?) in the frame, checksum. In Internet, consider 16 bits sequences and then use one-

complement to find the result.

Sending parity, odd or even parity. Odd parity of is

Page 19: Link Layer Dr. Mozafar Bag-Mohammadi Ilam University

Internet Checksum Algorithm View message as a sequence of 16-bit integers; sum

using 16-bit ones-complement arithmetic; take ones-complement of the result.

u_shortcksum(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++; } } return ~(sum & 0xFFFF);}

Page 20: Link Layer Dr. Mozafar Bag-Mohammadi Ilam University

Error Detection

Two dimensional parity, adding one extra bit, parity bit, to code and also find the parity for each bit position for total data

Page 21: Link Layer Dr. Mozafar Bag-Mohammadi Ilam University

Cyclic Redundancy Code (CRC)

Add k bits of redundant data to an n-bit message

Where k << ne.g., k = 32 and n = 12,000 (1500 bytes)

Page 22: Link Layer Dr. Mozafar Bag-Mohammadi Ilam University

CRC(cont) Represent n-bit message as n-1 degree

polynomial e.g., MSG=10011010 as M(x) = x7 + x4 + x3 + x1

Let k be the degree of some divisor polynomial e.g., C(x) = x3 + x2 + 1

Transmit polynomial T(x) that is evenly divisible by C(x) shift left k bits, i.e., M(x)xk

subtract remainder of M(x)xk / C(x) from M(x)xk

Page 23: Link Layer Dr. Mozafar Bag-Mohammadi Ilam University

CRC (cont)

Receiver polynomial T(x) + E(x) E(x) = 0 implies no errors

Divide (T(x) + E(x)) by C(x); remainder zero if: E(x) was zero (no error), or E(x) is exactly divisible by C(x)

All operation is done in modulo 2 in which there is no carry. Then, the operation can be done by XOR only.

Page 24: Link Layer Dr. Mozafar Bag-Mohammadi Ilam University

CRC(cont)

Example: M(x)= 110101, C(x) = 1001

1 0 0 1 1 1 0 1 0 1 0 0 01 0 0 1 1 0 0 0 1 0 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 0 0 1

1 0 1 01 0 0 1 0 1 1

R

The final transmitted message is:

T(x) = 1 1 0 1 0 1 0 1 1

Page 25: Link Layer Dr. Mozafar Bag-Mohammadi Ilam University

Example

Page 26: Link Layer Dr. Mozafar Bag-Mohammadi Ilam University

5.Acknowledgements & Timeouts

Sender Receiver

Frame

ACK

Tim

eout

Tim

e

Sender Receiver

Frame

ACK

Tim

eout

Frame

ACKTim

eout

Sender Receiver

Frame

ACKTim

eout

Frame

ACKTim

eout

Sender Receiver

Frame

Tim

eout

Frame

ACKTim

eout

(a) (c)

(b) (d)

Page 27: Link Layer Dr. Mozafar Bag-Mohammadi Ilam University

Stop-and-Wait

Problem: keeping the pipe full Example

1.5Mbps link x 45ms RTT = 67.5Kb (8KB) 1KB frames imples 1/8th link utilization

Sender Receiver

Page 28: Link Layer Dr. Mozafar Bag-Mohammadi Ilam University

Sliding Window Allow multiple outstanding (un-ACKed)

frames Upper bound on un-ACKed frames,

called windowSender Receiver

Tim

e

……

Page 29: Link Layer Dr. Mozafar Bag-Mohammadi Ilam University

SW: Sender Assign sequence number to each frame (SeqNum) Maintain three state variables:

send window size (SWS) last acknowledgment received (LAR) last frame sent (LFS)

Maintain invariant: LFS - LAR <= SWS

Advance LAR when ACK arrives Buffer up to SWS frames

SWS

LAR LFS

… …

Page 30: Link Layer Dr. Mozafar Bag-Mohammadi Ilam University

SW: Receiver Maintain three state variables

receive window size (RWS) largest frame acceptable (LFA) last frame received (LFR)

Maintain invariant: LFA - LFR <= RWS

Frame SeqNum arrives: if LFR =< SeqNum < = LFA accept if SeqNum < LFR or SeqNum > LFA discarded

Send cumulative ACKs

RWS

LFR LFA

… …

Page 31: Link Layer Dr. Mozafar Bag-Mohammadi Ilam University

Sequence Number Space SeqNum field is finite; sequence numbers wrap around Sequence number space must be larger then number

of outstanding frames SWS <= MaxSeqNum-1 is not sufficient

suppose 3-bit SeqNum field (0..7) SWS=RWS=7 sender transmit frames 0..6 arrive successfully, but ACKs lost sender retransmits 0..6 receiver expecting 7, 0..5, but receives second incarnation

of 0..5 SWS < (MaxSeqNum+1)/2 is correct rule Intuitively, SeqNum “slides” between two halves of

sequence number space

Page 32: Link Layer Dr. Mozafar Bag-Mohammadi Ilam University

Concurrent Logical Channels

Multiplex 8 logical channels over a single link Run stop-and-wait on each logical channel Header: 3-bit channel num, 1-bit sequence num

4-bits total same as sliding window protocol

Maintain three state bits per channel channel busy current sequence number out next sequence number in

Separates reliability from order