quiz #3 compare the cross-bar switch and the multistage switch in terms of fault tolerance,...

64
Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points). 1

Upload: gerard-sutton

Post on 03-Jan-2016

214 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

Quiz #3

Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points).

1

Page 2: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

2

ECE 683Computer Network Design & Analysis

Note 5: Peer-to-Peer Protocols

Page 3: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

3

Outline• Peer-to-Peer Protocols and Service Models• Error Control (Detection and Correction)

– Forward Error Control (FEC)– Error detection (3.8)– Automatic Retransmission Request (ARQ)

Page 4: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

4

Note 5: Peer-to-Peer Protocols and Data Link Control

Peer-to-Peer Protocols and Service Models

Page 5: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

5

n – 1 peer process n – 1 peer process

n peer process n peer process

n + 1 peer process n + 1 peer process

Peer-to-Peer Protocols• Peer-to-Peer processes

execute layer-n protocol to provide service to layer-(n+1)

• Layer-(n+1) peer calls layer-n and passes Service Data Units (SDUs) for transfer

• Layer-n peers exchange Protocol Data Units (PDUs) to effect transfer

• Layer-n delivers SDUs to destination layer-(n+1) peer

SDU SDU

PDU

Page 6: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

6

Service Models• The service model specifies the information transfer

service layer-n provides to layer-(n+1)• The most important distinction is whether the service is:

– Connection-oriented– Connectionless

• Other possible features of a service model :– Arbitrary message size or structure– Sequencing and Reliability– Timing, Pacing, and Flow control– Multiplexing– Privacy, integrity, and authentication

Page 7: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

7

• Connection Establishment– Connection must be established between layer-n peers

– Layer-n protocol must: Set initial parameters, e.g. sequence numbers; and Allocate resources, e.g. buffers

• Message transfer phase– Exchange of SDUs

• Disconnect phase• Example: TCP, PPP

Connection-Oriented Transfer Service

n + 1 peer processsend

n + 1 peer processreceive

Layer n connection-oriented serviceSDU SDU

Page 8: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

8

• No Connection setup, simply send SDU• Each message send independently• Must provide all address information per message• Simple & quick• Example: UDP, IP

Connectionless Transfer Service

n + 1 peer processsend

n + 1 peer processreceive

SDU Layer n connectionless service

Page 9: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

9

Message Size and Structure

• What message size and structure will a service model accept?– Different services impose restrictions on size &

structure of data it will transfer– Single bit? Block of bytes? Byte stream?– Ex: Transfer of voice mail = 1 long message– Ex: Transfer of voice call = byte stream

1 voice mail= 1 message = entire sequence of speech samples

(a)

1 call = sequence of 1-byte messages

(b)

Page 10: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

10

1 long message

2 or more blocks

2 or more short messages

1 block

Segmentation & Blocking

• To accommodate arbitrary message size, a layer may have to deal with messages that are too long or too short for its protocol

• Segmentation & Reassembly: a layer breaks long messages into smaller blocks and reassembles these at the destination

• Blocking & Unblocking: a layer combines small messages into bigger blocks prior to transfer

Page 11: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

11

Reliability & Sequencing

• Reliability: Are messages or information stream delivered error-free and without loss or duplication?

• Sequencing: Are messages or information stream delivered in order?

• ARQ protocols combine error detection, retransmission, and sequence numbering to provide reliability & sequencing

• Examples: TCP and HDLC

Page 12: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

12

Pacing and Flow Control • Messages can be lost if receiving system does

not have sufficient buffering to store arriving messages

• Pacing & Flow Control provide backpressure mechanisms that control transfer according to availability of buffers at the destination

• Examples: TCP and HDLC

Page 13: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

13

Timing • Applications involving voice and video generate units of

information that are related temporally• Destination application must reconstruct temporal

relation in voice/video units• Network transfer introduces delay & jitter• Timing Recovery protocols use timestamps & sequence

numbering to control the delay & jitter in delivered information

• Examples: RTP & associated protocols in Voice over IP

Page 14: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

14

Multiplexing

• Multiplexing enables multiple layer-(n+1) users to share a layer-n service

• A multiplexing tag is required to identify specific users at the destination

• Examples: UDP, IP

Page 15: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

15

Privacy, Integrity, & Authentication

• Privacy: ensuring that information transferred cannot be read by others

• Integrity: ensuring that information is not altered during transfer

• Authentication: verifying that sender and/or receiver are who they claim to be

• Security protocols provide these services and are discussed in Chapter 11

• Examples: IPSec, SSL

Page 16: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

16

End-to-End vs. Hop-by-Hop• A service feature can be provided by implementing a

protocol – end-to-end across the entire network– across every hop in the network

• Example: – Perform error control at every hop in the network or only

between the source and destination?– Perform flow control between every hop in the network or only

between source & destination?

• We next consider the tradeoffs between the two approaches

Page 17: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

17

1

2

Physical layer entity

Data link layer entity

3 Network layer entity

(a)

Data linklayer

Physicallayer

Physicallayer

Data linklayer

A B

Packets Packets

Frames

3 2 11 2

21

3 2 11 2

21

21

Medium

A B

(b)

Error control in Data Link Layer

• Data Link operates over wire-like, directly-connected systems

• Frames can be corrupted or lost, but arrive in order

• Data link performs error-checking & retransmission

• Ensures error-free packet transfer between two systems

Page 18: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

18

Physicallayer

Data linklayer

Physicallayer

Data linklayer

End systemA

Networklayer

Networklayer

Physicallayer

Data linklayer

Networklayer

Physicallayer

Data linklayer

Networklayer

Transportlayer

Transportlayer

Messages Messages

Segments

End systemB

Network

Error Control in Transport Layer• Transport layer protocol (e.g. TCP) sends segments across network

and performs end-to-end error checking & retransmission• Underlying network is assumed to be unreliable

Page 19: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

19

1

13 3 21 2

2

3 2 11 2

21

21

Medium

A B

3 2 11 2

21

C2

1

21

2 14 1 2 3 4

End Systemα End System

β

Network

3 Network layer entity

Transport layer entity4

• Segments can experience long delays, can be lost, or arrive out-of-order because packets can follow different paths across network

• End-to-end error control protocol more difficult

Page 20: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

20

End-to-End Approach Preferred

1 2 5

Data

ACK/NAK

End-to-end

More scalable if complexity at

the edge

Simple inside the network

Hop-by-hop cannot ensure

E2E correctness

1 2 5

Data

ACK/NAK

Hop-by-hop

3

Data

ACK/NAK

4

Data

ACK/NAK

Data

ACK/NAK

3

Data

4

Data Data

Faster recovery

Page 21: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

21

Note 5: Peer-to-Peer Protocols and Data Link Control

Error Control: Detection & Correction

Page 22: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

22

Error Control• Digital transmission systems introduce errors

– Copper wires, BER = 10-6

– Optical fiber, BER= 10-9

– Wireless transmission, BER = 10-3

• Applications require certain reliability level– Data applications require error-free transfer– Voice & video applications tolerate some errors

• Error control is used when transmission system does not meet application requirement

• Error control ensures a data stream is transmitted to a certain level of accuracy despite errors

Page 23: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

23

Error Control Approaches• Error detection & ARQ

– The receiver detects errors and sends an automatic retransmission request (ARQ) when errors are detected

– A return channel is required for retransmissions requests

• Forward error correction (FEC)– The sender adds redundant data to its messages, also known

as an error correction code. This allows the receiver to detect and correct errors (within some bound) without the need to ask the sender for additional data.

– A return channel is not required, or that retransmission of data can often be avoided, at the cost of higher bandwidth requirements on average.

– Applied in situations where retransmissions are relatively costly or impossible: satellite and deep-space communications; audio/video CD recordings

Page 24: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

24

Key Idea of Error Detection• All transmitted data blocks (“codewords”) satisfy a

pattern• If received block doesn’t satisfy pattern, it is in error• Redundancy: additional information required to transmit • Blindspot: when channel transforms a codeword into

another codeword

ChannelEncoderUserinformation

Patternchecking

All inputs to channel satisfy pattern or condition

Channeloutput

Deliver user information orset error alarm

Page 25: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

25

Single Parity Check• Append an overall parity check to k information bits

Info Bits: b1, b2, b3, …, bk

Check Bit: bk+1= b1+ b2+ b3+ …+ bk modulo 2

Codeword: (b1, b2, b3, …, bk,, bk+1)

• All codewords have even # of 1s• Receiver checks to see if # of 1s in a codeword is even

– All error patterns that change an odd # of bits are detectable– All even-numbered patterns are undetectable

• Parity bit used in ASCII code

Page 26: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

26

Example of Single Parity Code• Information (7 bits): (0, 1, 0, 1, 1, 0, 0)• Parity Bit: b8 = 0 + 1 +0 + 1 +1 + 0 = 1 • Codeword (8 bits): (0, 1, 0, 1, 1, 0, 0, 1)

• If single error in bit 3 : (0, 1, 1, 1, 1, 0, 0, 1)– # of 1’s in the codeword = 5, odd; – Error detected

• If errors in bits 3 and 5: (0, 1, 1, 1, 0, 0, 0, 1)– # of 1’s =4, even;– Error not detected

Page 27: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

27

Checkbits & Error Detection

Calculate check bits

Channel

Recalculate check bits

Compare

Information bits Received information bits

Sent checkbits

Information accepted if check bits match

Received check bits

k bits

Page 28: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

28

How good is the single parity check code?

• Redundancy: Single parity check code adds 1 redundant bit per k information bits: overhead = 1/(k + 1)

• Coverage: all error patterns with odd # of errors can be detected– An error patten is a binary (k + 1)-tuple with 1s where errors

occur and 0’s elsewhere– Of 2k+1 binary (k + 1)-tuples, ½ are odd, so 50% of error

patterns can be detected

• Is it possible to detect more errors if we add more check bits?

• Yes, with the right codes

Page 29: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

29

x = codewordso = noncodewords

x

x x

x

x

x

x

o

oo

oo

oo

o

oo

o

o

o

xx x

x

xx

x

oo

oo

ooooo

o

o Poordistance

properties

What is a good code?• If codewords are close to each

other, then detection failures will occur.

• Good codes should maximize separation between codewords to minimize the likelihood of the channel converting one valid codeword into another.

Gooddistance

properties

Page 30: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

30

What if bit errors are random?• Many transmission channels introduce bit errors at random,

independently of each other, and with probability p• Some error patterns are more probable than others:

21( )pp

• In any worthwhile channel p < 0.5, and so p/(1 – p) < 1• It follows that patterns with 1 error are more likely than patterns with 2

errors and so forth• What is the probability that an undetectable error pattern occurs?

P[10000000] = p(1 – p)7 = (1 – p)8 and

P[11000000] = p2(1 – p)6 = (1 – p)8

1( )pp

Page 31: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

31

Single parity check code with random bit errors

• Undetectable error pattern if even # of bit errors:

• Example: Evaluate above for n = 32, p = 10-3

• For this example, roughly 1 in 2000 error patterns is undetectable

P[error detection failure] = P[undetectable error pattern] = P[error patterns with even number of 1s]

= p2(1 – p)n-2 + p4(1 – p)n-4 + …n2

n4

P[undetectable error] = (10-3)2 (1 – 10-3)30 + (10-3)4 (1 – 10-3)28

≈ 496 (10-6) + 35960 (10-12) ≈ 4.96 (10-4)

322

324

Page 32: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

32

Two-Dimensional Parity Check

1 0 0 1 0 0

0 1 0 0 0 1

1 0 0 1 0 0

1 1 0 1 1 0

1 0 0 1 1 1

Bottom row consists of check bit for each column

Last column consists of check bits for each row

• More parity bits to improve coverage• Arrange information as columns• Add single parity bit to each column• Add a final “parity” column• Used in early error control systems

Page 33: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

33

1 0 0 1 0 0

0 0 0 1 0 1

1 0 0 1 0 0

1 0 0 0 1 0

1 0 0 1 1 1

1 0 0 1 0 0

0 0 0 0 0 1

1 0 0 1 0 0

1 0 0 1 1 0

1 0 0 1 1 1

1 0 0 1 0 0

0 0 0 1 0 1

1 0 0 1 0 0

1 0 0 1 1 0

1 0 0 1 1 1

1 0 0 1 0 0

0 0 0 0 0 1

1 0 0 1 0 0

1 1 0 1 1 0

1 0 0 1 1 1

Arrows indicate failed check bits

Two errorsOne error

Three errors Four errors

(undetectable)

Error-detecting capability

1, 2, or 3 errors can always be

detected; Not all patterns >4 errors can be detected

Page 34: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

34

Other Error Detection Codes• Many applications require very low error rate• Need codes that detect the vast majority of errors• Single parity check codes do not detect enough errors• Two-dimensional codes require too many check bits• The following error detecting codes used in practice:

– Internet Check Sums– CRC Polynomial Codes

Page 35: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

35

Internet Checksum• Several Internet protocols (e.g. IP, TCP, UDP) use check

bits to detect errors in the IP header (or in the header and data for TCP/UDP)

• A checksum is calculated for header contents and included in a special field.

• Checksum recalculated at every router, so algorithm selected for ease of implementation in software

• Let header consist of L, 16-bit words,

b0, b1, b2, ..., bL-1

• The algorithm appends a 16-bit checksum bL

Page 36: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

36

The checksum bL is calculated as follows:

• Treating each 16-bit word as an integer, find

x = b0 + b1 + b2+ ...+ bL-1 modulo 216-1

• The checksum is then given by:

bL = - x modulo 216-1

Thus, the headers must satisfy the following pattern:

0 = b0 + b1 + b2+ ...+ bL-1 + bL modulo 216-1

• The checksum calculation is carried out in software using one’s complement arithmetic

Checksum Calculation

Page 37: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

37

Internet Checksum Example

Use Modulo Arithmetic• Assume 4-bit words• Use mod 24-1 arithmetic

• b0=1100 = 12

• b1=1010 = 10

• b0+b1=12+10=7 mod15

• b2 = -7 = 8 mod15

• Therefore

• b2=1000

Use Binary Arithmetic• Note 16 =1 mod15• So: 10000 = 0001 mod15• leading bit wraps around

b0 + b1 = 1100+1010 =10110 =10000+0110 =0001+0110 =0111 =7Take 1s complementb2 = -0111 =1000

Page 38: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

38

Polynomial Codes

• Polynomials instead of vectors for codewords• Polynomial arithmetic instead of checksums• Implemented using shift-register circuits• Also called cyclic redundancy check (CRC)

codes• Most data communications standards use

polynomial codes for error detection• Polynomial codes also basis for powerful error-

correction methods

Page 39: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

39

Addition:

Multiplication:

Binary Polynomial Arithmetic• Binary vectors map to polynomials

(ik-1 , ik-2 ,…, i2 , i1 , i0) ik-1xk-1 + ik-2xk-2 + … + i2x2 + i1x + i0

(x7 + x6 + 1) + (x6 + x5) = x7 + x6 + x6 + x5 + 1

= x7 +(1+1)x6 + x5 + 1

= x7 +x5 + 1 since 1+1=0 mod2

(x + 1) (x2 + x + 1) = x(x2 + x + 1) + 1(x2 + x + 1)

= (x3 + x2 + x) + (x2 + x + 1)

= x3 + 1

Page 40: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

40

Binary Polynomial Division• Division with Decimal Numbers

32

35 ) 12223

10517 2

4

140divisor

quotient

remainder

dividend1222 = 34 x 35 + 32

dividend = quotient x divisor +remainder

• Polynomial Divisionx3 + x + 1 ) x6 + x5

x6 + x4 + x3

x5 + x4 + x3

x5 + x3 + x2

x4 + x2

x4 + x2 + x

x

= q(x) quotient

= r(x) remainder

divisordividend

+ x+ x2x3

Note: Degree of r(x) is less than degree of divisor

Page 41: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

41

Polynomial Coding• Code has binary generating polynomial of degree n–k

• k information bits define polynomial of degree k – 1

• Find remainder polynomial of at most degree n – k – 1

g(x) ) xn-k i(x)

q(x)

r(x)xn-ki(x) = q(x)g(x) + r(x)

• Define the codeword polynomial of degree n – 1

b(x) = xn-ki(x) + r(x)

n bits k bits n-k bits

g(x) = xn-k + gn-k-1xn-k-1 + … + g2x2 + g1x + 1

i(x) = ik-1xk-1 + ik-2xk-2 + … + i2x2 + i1x + i0

Page 42: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

42

Transmitted codeword: b(x) = xn-ki(x) + r(x)b(x) =x3 (x3 + x2)+ x= x6 + x5 + xb = (1,1,0,0,0,1,0)

1011 ) 1100000

1110

1011

1110

1011

10101011

010

x3 + x + 1 ) x6 + x5

x3 + x2 + x

x6 + x4 + x3

x5 + x4 + x3

x5 + x3 + x2

x4 + x2

x4 + x2 + x

x

Polynomial example: k = 4, n=7, n–k = 3Generator polynomial: g(x)= x3 + x + 1

Information: (1,1,0,0) i(x) = x3 + x2

Encoding: x3i(x) = x6 + x5

Page 43: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

43

The Pattern in Polynomial Coding

• All codewords satisfy the following pattern:

• All codewords are a multiple of g(x)!• Receiver should divide received n-tuple by g(x) and check if

remainder is zero• If remainder is nonzero, then received n-tuple is not a

codeword

b(x) = xn-ki(x) + r(x) = q(x)g(x) + r(x) + r(x) = q(x)g(x)

Page 44: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

44

Undetectable error patterns

• e(x) has 1s in error locations & 0s elsewhere• Receiver divides the received polynomial R(x) by g(x)• Blindspot: If e(x) is a multiple of g(x), that is, e(x) is a

nonzero codeword, then R(x) = b(x) + e(x) = q(x)g(x) + q’(x)g(x)• Choose the generator polynomial so that selected error

patterns can be detected.

b(x)

e(x)

R(x)=b(x)+e(x)+

(Receiver)(Transmitter)

Error polynomial(Channel)

Page 45: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

45

Designing good polynomial codes

• Select generator polynomial so that likely error patterns are not multiples of g(x)

• Detecting Single Errors– e(x) = xi for error in location i + 1– If g(x) has more than 1 term, it cannot divide xi

• Detecting Double Errors– e(x) = xi + xj = xi(xj-i+1) where 0 <= i< j <= n-1 – If g(x) has more than 1 term, it cannot divide xi

– If g(x) is a primitive polynomial, it cannot divide xm+1 for all

m<2n-k-1 (Need to keep codeword length not larger than 2n-k-1) – Primitive polynomials can be found by consulting coding theory

books

Page 46: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

46

Designing good polynomial codes

• Detecting Odd Numbers of Errors– Suppose all codeword polynomials have an even # of

1s, then all odd numbers of errors can be detected– As well, b(x) evaluated at x = 1 is zero because b(x)

has an even number of 1s– This implies x + 1 must be a factor of all b(x)– Pick g(x) = (x + 1) p(x) where p(x) is primitive

Page 47: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

47

Detecting error bursts

Page 48: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

48

Standard Generator Polynomials

• CRC-8:

• CRC-16:

• CCITT-16:

• CCITT-32:

CRC = cyclic redundancy check

HDLC, XMODEM, V.41

IEEE 802, DoD, V.42

Bisync

ATM

= x8 + x2 + x + 1

= x16 + x15 + x2 + 1= (x + 1)(x15 + x + 1)

= x16 + x12 + x5 + 1

= x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1

Page 49: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

49

FEC based on Erasure Codes• Basic idea

– All packets in error are considered lost or erased– Given a message of M blocks, generate N blocks for

N>M, such that the original message can be recovered from any M’ of those encoded blocks

– M’/N – the rate– M’=M – optimal erasure codes, often costly in terms

of memory usage, CPU time or both when N is large– M’= (1+r)M – nearly optimal erasure codes; r can be

reduced at the cost of CPU time– Rateless erasure codes (fountain codes): N can be

potentially limitless, i.e., the percentage of packets that must be received to decode the message can be arbitrarily small

Page 50: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

Erasure Codes Illustration

Page 51: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

51

• Purpose: – ensure a sequence of information packets is delivered in order

and without errors or duplications despite transmission errors & losses

• We will look at:– Stop-and-Wait ARQ– Go-Back N ARQ– Selective Repeat ARQ

• Basic elements of ARQ:– Error-detecting code with high error coverage– Information frames (I-frame)– Control frames (C-frame)– Time-out methanisms

Automatic Repeat Request (ARQ)

Page 52: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

52

CRCInformation

packet

Header

Information frame Control frame: ACKs or NAKs

CRCHeader

PacketError-free

packet

Information frame

Control frame

Transmitter(Process A)

Receiver(Process B)

Basic Elements of ARQ

Timer set after each frame

transmission

Transmit a frame, wait for ACK

Page 53: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

53

Stop-and-Wait ARQ

• The transmitter A and receiver B works on delivering one frame at a time– A sends an I-frame to B and then stops and waits for

an ACK from B– If no ACK is received within some time-out period, A

resends the frame and once gain stops and waits

Page 54: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

54

– In cases (a) & (b) the transmitting station A acts the same way

– But in case (b) the receiving station B accepts frame 1 twice

– Question: How is the receiver to know the second frame is also frame 1?

– Answer: Add frame sequence number in header

– Slast is sequence number of most recent transmitted frame

Need for Sequence Numbers(a) Frame 0 OK but 1 lost

A

B

Frame 0

Frame1

ACK

Frame1

ACK

TimeTime-out

Frame2

(b) Frame 1’s ACK lost

A

B

Frame 0

Frame1

ACK

Frame1

ACK

TimeTime-out

Frame2

ACK

Page 55: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

55

Sequence Numbers

– The transmitting station A misinterprets duplicate ACKs– Incorrectly assumes second ACK acknowledges Frame 1– Question: How is the receiver to know second ACK is for frame 0?– Answer: Add frame sequence number in ACK header

– Rnext is sequence number of next frame expected by the receiver– Implicitly acknowledges receipt of all prior frames

(c) Premature Time-out

A

B

Frame 0 Frame

0ACKFrame

1ACK

TimeTime-out

Frame2

Page 56: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

56

(0,0) (0,1)

(1,0) (1,1)

Global State:(Slast, Rnext)

Error-free frame 0arrives at receiver

ACK forframe 0arrives attransmitter

ACK forframe 1arrives attransmitter Error-free frame 1

arrives at receiver

Transmitter A

Receiver B

SlastRnext

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

Timer

Rnext

Slast

1-Bit Sequence Numbering Suffices

Page 57: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

57

Stop-and-Wait ARQTransmitterReady state• Await request from higher layer

for packet transfer• When request arrives, transmit

frame with updated Slast and CRC• Go to Wait StateWait state• Wait for ACK or timer to expire;

block requests from higher layer• If timeout expires

– retransmit frame and reset timer• If ACK received:

– If sequence number is incorrect or if errors detected: ignore ACK

– If sequence number is correct (Rnext = Slast +1): accept frame, go to Ready state

ReceiverAlways in Ready State• Wait for arrival of new frame• When frame arrives, check for errors• If no errors detected and sequence

number is correct (Slast=Rnext), then– accept frame, – update Rnext,– send ACK frame with Rnext,– deliver packet to higher layer

• If no errors detected but wrong sequence number

– discard frame – send ACK frame with Rnext

• If errors detected– discard frame

Page 58: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

58

Applications of Stop-and-Wait ARQ

• IBM Binary Synchronous Communications protocol (Bisync): character-oriented data link control

• Xmodem: modem file transfer protocol• Trivial File Transfer Protocol (RFC 1350):

simple protocol for file transfer over UDP

Page 59: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

59

Stop-and-Wait Efficiency

• 10000 bit frame @ 1 Mbps takes 10 ms to transmit• If wait for ACK = 1 ms, then efficiency = 10/11= 91%• If wait for ACK = 20 ms, then efficiency =10/30 = 33%

A

B

First frame bit enters channel

Last frame bit enters channel

Channel idle while transmitter waits for ACK

Last frame bit arrives at receiver

Receiver processes frame

and prepares ACK

ACK arrives

First frame bit arrives at receiver

t

t

Page 60: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

60

frametf time

A

B

tproptack tproc

tprop

tproc

t0 = total time to transmit 1 frame

Stop-and-Wait Model

R

n

R

ntt

ttttt

afprocprop

ackfprocprop

22

220bits/info frame

channel transmission rate

bits/ACK frame

Page 61: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

61

S&W Efficiency on Error-free channel

.)(2

1

10

0

f

procprop

f

a

f

oof

eff

n

Rtt

nn

nn

R

t

nn

R

R

bits for header & CRC

,bitsn informatio edeliver th torequired timetotal

ndestinatio todelivered bitsn informatio ofnumber

0

0

t

nnR ofeff

Effect offrame overhead

Effect ofACK frame

Effect ofDelay-Bandwidth Product

Effective transmission rate:

Transmission efficiency:

Page 62: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

62

Example: Impact of Delay-Bandwidth Product

nf=1250 bytes = 10000 bits, na=no=25 bytes = 200 bits

2xDelayxBW Efficiency

1 ms

200 km

10 ms

2000 km

100 ms

20000 km

1 sec

200000 km

1 Mbps 103

88%

104

49%

105

9%

106

1%

1 Gbps 106

1%

107

0.1%

108

0.01%

109

0.001%

Stop-and-Wait does not work well for very high speeds or long propagation delays.

The higher the speed, the lower the transmission efficiency.

The longer the propagation delay, the lower the efficiency.

Page 63: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

63

S&W Efficiency in Channel with Errors

• Let 1 – Pf = probability frame arrives w/o errors• Avg. # of transmissions to first correct arrival is then 1/ (1–Pf )• “If 1-in-10 get through without error, then avg. 10 tries to succeed”• Avg. Total Time per frame is then t0/(1 – Pf)

)1()(2

1

11

0

f

f

procprop

f

a

f

o

f

of

effSW P

n

Rtt

nn

nn

R

Pt

nn

R

R

Effect of frame loss

Page 64: Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points)

64

Example: Impact Bit Error Rate

nf=1250 bytes = 10000 bits, na=no=25 bytes = 200 bits, R= 1Mbps,

2(tprop+tproc) =1 msFind efficiency for random bit errors with p=0, 10-6, 10-5, ad 10-4

1 Mbps

& 1 ms

0 10-6 10-5 10-4

1 – Pf

Efficiency

1

88%

0.99

86.6%

0.905

79.2%

0.368

32.2%

pnepP fpnn

fff small and largefor )1(1

Bit errors impact performance as nfp approaches 1.