240 likes | 397 Views
CSS432 Point-to-Point Links Textbook Ch2.1.2 – 2.5. Professor: Munehiro Fukuda. Basic Knowledge about Links. Full-duplex versus Half-duplex Full Half Local cable types Category 5 twisted pair Coax Multimode fiber LED-based, 2km
E N D
CSS432 Point-to-Point LinksTextbook Ch2.1.2 – 2.5 Professor: Munehiro Fukuda CSS 432
Basic Knowledge about Links • Full-duplex versus Half-duplex • Full • Half • Local cable types • Category 5 twisted pair • Coax • Multimode fiber LED-based, 2km • Single-mode fiber laser-diode-based, 40km • Carrier-supported cables/fibers • DS1 (T1): 1.544Mbps, 24-digital voice circuits of 64 Kbps each • DS3 (T3): 44.736Mbps, 28 DS1 links • STS-1 (OC-1): Synchronous Transport signal, the base link speed= 51.840Mbps • STS-3, 12, 48, 192 (OC-3, OC-12, OC-48, OC-192) at time t at time u CSS 432
Basic Knowledge (Cont’d) Voice line 28.8~56Kbps • Last-Mile Links • POTS: Plain Old Telephone Service • ISDN: Integrated Services Digital Network • ADSL: Asynchronous Digital Subscriber Line • VDSL: Very high data rate Digital Subscriber Line • Wireless Links • AMPS, PCS, GSM: Wide-area analog/digital-based mobile phone services • IEEE 802.11: wireless LAN with up to 54Mbps transfer rate • BlueTooth radio interface: 1Mpbs piconet in 10m CODEC Digital line 64-128Kbps 1.554-8.448Mbps 16-640Kbps 12.96~ 55.2Mbps STS-N CSS 432
Focusing on ADSL Long distance Residence B Residence A To telephone switch 255 frequencies for downstream 31 use for upsreams 2 taken for control • Preparing 286 frequencies and agreeing at the available frequencies between two modems • Fitting to most usages where a user tends to retrieve Internet information. CSS 432
Bits 0 0 1 0 1 1 1 1 0 1 0 0 0 0 1 0 NRZ Encoding • Signals propagate over a physical medium • modulate electromagnetic waves • e.g., vary voltage • Encode binary data onto signals • e.g., 0 as low signal and 1 as high signal • known as Non-Return to zero (NRZ) • Consecutive 1s and 0s • Baseline wander: if the receiver averages signals to decide a threshold • Clock recovery: both sides must be strictly synchronized CSS 432
Alternative Encodings • Non-return to Zero Inverted (NRZI) • Encode 1: make a transition from current signal • Encode 0: stay at current signal to encode a zero • solves the problem of consecutive 1s • Signal flips every 1 is encountered. • Manchester • Transmit XOR of the NRZ encoded data and the clock • Only 50% efficient. • Used by Ethernet/Token Ring 0 1 CSS 432
4B/5B Encoding • Every 4 bits of data encoded in a 5-bit code • 5-bit codes selected to have • no more than one leading 0 • no more than two trailing 0s • See textbook Table 2.4 on page 79 • Thus, never get more than three consecutive 0s • Resulting 5-bit codes are transmitted using NRZI • Achieves 80% efficiency • Because 5th bit is redundant. • Used by FDDI 01??? but not 001?? ??100 but not ?1000 CSS 432
Bits 0 0 1 0 1 1 1 1 0 1 0 0 0 0 1 0 NRZ Clock Manchester NRZI Encoding Example CSS 432
Framing • Break sequence of bits into a frame • Typically implemented by a network adaptor Bits Node A Adaptor Adaptor Node B Frame CSS 432
Frame error 8 16 16 8 Beginning Ending Header Body CRC sequence sequence Frame error Approaches • Sentinel-based • delineate frame with special pattern: 01111110 • e.g., HDLC, SDLC, PPP • problem: ending sequence appears in the payload • solution: bit stuffing • sender: insert 0 after five consecutive 1s • receiver: delete 0 that follows five consecutive 1s • Counter-based • include payload length in header • e.g., DDCMP • problem: count field corrupted (frame error) • solution: • Wait for the next beginning sequence • Catch when CRC fails CSS 432
Approaches (cont) • Clock-based • each frame is 125us long • e.g., SONET: Synchronous Optical Network • STS-n (STS-1 = 51.84 Mbps) Interleaved every byte: keep 51Mbps for each STS-1 CSS 432
Error Detections • Add k bits of redundant data to an n-bit message • want k << n(i.e. k is extremely small as compared to n) • e.g., k = 32 and n = 12,000 (1500 bytes) in CRC-32 • Parity Bit • Internet Checksum Algorithm • Cyclic Redundancy Check CSS 432
1 0 1 1 0 1 0101001 1101001 1011110 0110100 1011111 0001110 0 1111011 Parity Parity bits • Odd parity • Even parity • Two-dimensional parity Data Parity byte CSS 432
Internet Checksum Algorithm • View message as a sequence of 16-bit integers; • Convert each 16-bit integer into a ones-complement arithmetic • Sum up each integer • Increment the result upon a carryout • Example: Ones-complement message 5: 0 00000000 00000101 3: 0 00000000 00000011 -5: 0 11111111 11111010 -3: 0 11111111 11111100 -5 + (-3): 1 11111111 11110110 w/ carry: 0 11111111 11110111 This corresponds to -8 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); } What if 5 and 3 were changed In 6 and 2 ? CSS 432
Cyclic Redundancy Check • 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 receiver sender M(x)2k – M(x) 2k % C(x) = C(x)-divisible message: P(x) If P(x) % C(x) == 0 P(x) was sent successfully CSS 432
10011010000 eor 1101 1001 eor 1101 1000 eor 1101 1011 eor 1101 1100 eor 1101 1000 eor 1101 101 Just appended CRC (cont) • Sender polynomial M(x) • M(x) = 10011010, C(x) = 1101, thus k = 3 • M(x)23 = 10011010000 (<< 3) • M(x)23 % C(x) = 101 • M(x)23– M(x)23 % C(x) = 10011010101 = P(x) • Noise polynomial E(x) • Receiver polynomial P(x) + E(x) • E(x) = 0 implies no errors • (P(x) + E(x)) % C(x) == 0 if: • E(x) was zero (no error), or • E(x) is exactly divisible by C(x) • To retrieve M(x): P(x) + 101 / 23, (truncate the last 3 bits) The last 3 bits of P(x) CSS 432
1 0 0 1 x2 1 1 x2 1 0 0 1 1 0 0 x1 x1 0 0 0 1 0 0 1 0 0 0 1 0 0 x0 x0 0 1 1 0 0 0 1 0 0 1 CRC Calculation Using Shift Register sender receiver C(x) = 1101 M(x) M(x) CRC + M(x) CRC CRC’ If CRC == CRC’, no errors Example: M(x) = 10011010 0 000 010 000 01011001 000 01 000 0101100 000 0 000 010110 101 will be transferred. 000 000 01011 00 000 0101 CSS 432
Acknowledgements & Timeouts Receiver can’t distinguish if the 1st and 2nd frames are identical CSS 432
Stop-and-Wait Sender Receiver • Stop a transmission and wait for ack to return or timeout • Add 1-bit sequence number to detect a duplication of the same frame • Problem: Can’t utilize the link’s capacity • Example • 1.5Mbps link x 45ms RTT = 67.5Kb (8KB) • If the frame size is 1KB and the sender waits for 45ms RTT • 1KB for 45ms RTT • 1/8th link utilization Frame 0 Ack 0 Frame 1 Ack 1 Frame 0 Ack 0 CSS 432
Sender Receiver … ime T … Sliding Window • Allow multiple outstanding (un-ACKed) frames • Upper bound on un-ACKed frames, called window CSS 432
£ SWS … … LAR LFS 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/Back up to SWS frames for future retransmission CSS 432
discard Send a comulativeAck 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 CSS 432
Sequence Number Space • SeqNum field is finite; sequence numbers wrap around • Sequence number space must be larger than # 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 a correct rule • Intuitively, SeqNum “slides” between two halves of sequence number space CSS 432
Reviews • Encoding (NRZ, NRZI, Manchester, and 4B/5B) • Framing (Sentinel and counter-based) • Error Detections (Parity, Internet checksum, and CRC) • Stop-and-wait • Sliding window • Exercises in Chapter 2 • Ex. 2 and 5 (4B/5B, NRZI, and bit stuffing) • Ex. 16 (Internet Checksum) • Ex. 18 (CRC) • Ex. 24 (Sliding Window: Apply Ex. 25’s cases (a) and (b) to Ex. 24) CSS 432