Presentation is loading. Please wait.

Presentation is loading. Please wait.

Link Layer Dr. Mozafar Bag-Mohammadi Ilam University.

Similar presentations


Presentation on theme: "Link Layer Dr. Mozafar Bag-Mohammadi Ilam University."— Presentation transcript:

1 Link Layer Dr. Mozafar Bag-Mohammadi Ilam University

2 Contents 1. Overview 2. Encoding 3. Framing 4. Error detection 5. Acknowledgements & Timeouts

3 1. Overview: Link Layer

4 Link layer r Communication service between two physically connected devices: m host-router, router-router, host-host r unit of data: frame  implemented in “ adapter ” m e.g., PCMCIA card, Ethernet card m typically includes: RAM, DSP chips, host bus interface, and link interface application transport network link physical network link physical M M M M H t H t H n H t H n H l M H t H n H l frame phys. link data link protocol adapter card

5 Link Layer Services r Framing, link access: m encapsulate datagram into frame, adding header, trailer m implement channel access if shared medium,  ‘ physical addresses ’ used in frame headers to identify source, dest different from IP address! r Reliable delivery between two physically connected devices: m seldom used on low bit error link (fiber, some twisted pair) m wireless links: high error rates

6 Link Layer Services (more) r Flow Control: m pacing between sender and receivers r Error Detection: m errors caused by signal attenuation, noise. m receiver detects presence of errors: signals sender for retransmission or drops frame r Error Correction: m receiver identifies and corrects bit error(s) without resorting to retransmission

7 2.Encoding r Encode binary data onto signals r Bits flow is between network adaptors. r How to send clock information? m Extract from signals or data. r The simplest way is 0 as low signal and 1 as high signal. This is known as Non-Return to zero (NRZ) Bits NRZ 0010111101000010

8 Problem with NRZ r Consecutive 0’s or 1’s may create problems. m Synchronization problem because of difference in the sender or receiver clocks. m 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 m Unable to recover clock

9 Alternative Encodings r Non-return to Zero Inverted (NRZI) m make a transition from current signal to encode a 1; stay at current signal to encode a zero m solves the problem of consecutive 1s r Manchester encoding m transmit XOR of the NRZ encoded data and the clock. m 0 is being encoded as a low to high transition and 1 as high to low. m It doubles the rate, then, it is only 50% efficient. m The rate signal changing is called baud rate.

10 Encodings (cont) Bits NRZ Clock Manchester NRZI 0010111101000010

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

12 4B/5B Encoding (cont) r 5-bit codes selected to have no more than one leading 0 and no more than two trailing 0s r thus, never get more than three consecutive 0s r resulting 5-bit codes are transmitted using NRZI r achieves 80% efficiency. r Unused code are used for control. I.e. 11111 is for line is idle or 00000 for the line is dead. r FDDI is using this scheme.

13 3.Framing r How to distinguish between data and garbage. r Break sequence of bits into a frame r Typically implemented by network adaptor

14 Byte-oriented Approaches r Sentinel-based m delineate frame with special pattern: 01111110 or STX, ETX, etc characters. m e.g., HDLC, SDLC, PPP HeaderBody 816 8 CRC ASCII character 1 soh (start of header) ASCII character 4 eot (end of transmission) HeaderBody 816 8 CRC 01111110

15 Byte-oriented Approaches m problem: special pattern or characters appear in the payload m solution: bit stuffing –sender: insert 0 after five consecutive 1s –receiver: delete 0 that follows five consecutive 1s

16 Byte stuffing

17 Byte-oriented Approaches (cont) r Counter-based m include payload length in the header m e.g., DDCMP protocol from DEC. m problem: count field corrupted m solution: catch when CRC fails

18 4.Error Detection r To send extra information to find error in the frame. r The simplest form is sending two copies, m inefficient. r Sending the sum of values (?) in the frame, checksum. m In Internet, consider 16 bits sequences and then use one- complement to find the result. r Sending parity, odd or even parity. m Odd parity of is

19 Internet Checksum Algorithm r View message as a sequence of 16-bit integers; sum using 16- bit ones-complement arithmetic; take ones-complement of the result. 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++; } return ~(sum & 0xFFFF); }

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

21 Cyclic Redundancy Code (CRC) Add k bits of redundant data to an n-bit message Where k << n e.g., k = 32 and n = 12,000 (1500 bytes)

22 CRC(cont) r Represent n-bit message as n-1 degree polynomial m e.g., MSG=10011010 as M(x) = x 7 + x 4 + x 3 + x 1 r Let k be the degree of some divisor polynomial m e.g., C(x) = x 3 + x 2 + 1 r Transmit polynomial T(x) that is evenly divisible by C(x) m shift left k bits, i.e., M(x)x k m subtract remainder of M(x)x k / C(x) from M(x)x k

23 CRC (cont) r Receiver polynomial T(x) + E(x) m E(x) = 0 implies no errors r Divide (T(x) + E(x)) by C(x); remainder zero if: m E(x) was zero (no error), or m E(x) is exactly divisible by C(x) r All operation is done in modulo 2 in which there is no carry. Then, the operation can be done by XOR only.

24 CRC(cont) Example: M(x)= 110101, C(x) = 1001 1 0 0 11 1 0 1 0 1 0 0 0 1 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 0 0 1 0 1 1 R The final transmitted message is: T(x) = 1 1 0 1 0 1 0 1 1

25 Example

26 5.Acknowledgements & Timeouts

27 Stop-and-Wait r Problem: keeping the pipe full r Example  1.5Mbps link x 45ms RTT = 67.5Kb (8KB) m 1KB frames imples 1/8th link utilization SenderReceiver

28 Sliding Window r Allow multiple outstanding (un-ACKed) frames r Upper bound on un-ACKed frames, called window SenderReceiver T ime … …

29 SW: Sender  Assign sequence number to each frame ( SeqNum ) r 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 LARLFS ……

30 SW: Receiver r 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 LFA  discarded r Send cumulative ACKs  RWS LFRLFA ……

31 Sequence Number Space  SeqNum field is finite; sequence numbers wrap around r Sequence number space must be larger then number of outstanding frames  SWS <= MaxSeqNum-1 is not sufficient  suppose 3-bit SeqNum field (0..7) m SWS=RWS=7 m sender transmit frames 0..6 m arrive successfully, but ACKs lost m sender retransmits 0..6 m 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

32 Concurrent Logical Channels r Multiplex 8 logical channels over a single link r Run stop-and-wait on each logical channel r Header: 3-bit channel num, 1-bit sequence num m 4-bits total m same as sliding window protocol r Maintain three state bits per channel m channel busy m current sequence number out m next sequence number in r Separates reliability from order


Download ppt "Link Layer Dr. Mozafar Bag-Mohammadi Ilam University."

Similar presentations


Ads by Google