Download presentation
Presentation is loading. Please wait.
Published byErin Hines Modified over 9 years ago
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
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.