1 Reliable stream service--TCP 1.TCP accepts byte stream, so segmenting 2.It is over IP, so...

29
1 Reliable stream service--TCP 1. TCP accepts byte stream, so segmenting 2. It is over IP, so out-of-sequence is very common --lost or error frame results in out-of-sequence -- It is not “wirelike”, even there is a TCP connection between sender and receiver, but this connection has logical meaning and is not a real physical path, i.e., packets ultimately travel along different routes, so out-of-sequence 3. Because of not “wirelike”, it is possible for old packets from previous connections to arrive at a receiver. The old packets will confuse the new packets with the same SN. TCP solves it by 1. using long (32 bit) SNs and selecting a random initial SN during connection setup; 2. set a timer at end of a connection to clear old packets. So accepting an very old packet is very unlikely. 4. TCP uses Selective Repeat ARQ with a mechanism to advertise receive window size for flow control. Moreover, window size is not based on number of packets, but number of bytes 5. TCP can also be used for congestion control.

Transcript of 1 Reliable stream service--TCP 1.TCP accepts byte stream, so segmenting 2.It is over IP, so...

Page 1: 1 Reliable stream service--TCP 1.TCP accepts byte stream, so segmenting 2.It is over IP, so out-of-sequence is very common --lost or error frame results.

1

Reliable stream service--TCP1. TCP accepts byte stream, so segmenting2. It is over IP, so out-of-sequence is very common

--lost or error frame results in out-of-sequence-- It is not “wirelike”, even there is a TCP connection between sender and receiver,

but this connection has logical meaning and is not a real physical path, i.e., packets ultimately travel along different routes, so out-of-sequence

3. Because of not “wirelike”, it is possible for old packets from previous connections to arrive at a receiver. The old packets will confuse the new packets with the same SN. TCP solves it by

1. using long (32 bit) SNs and selecting a random initial SN during connection setup;

2. set a timer at end of a connection to clear old packets. So accepting an very old packet is very unlikely.

4. TCP uses Selective Repeat ARQ with a mechanism to advertise receive window size for flow control. Moreover, window size is not based on number of packets, but number of bytes

5. TCP can also be used for congestion control.

Page 2: 1 Reliable stream service--TCP 1.TCP accepts byte stream, so segmenting 2.It is over IP, so out-of-sequence is very common --lost or error frame results.

CIS, IUPUI 2

byte stream

Send buffer

Segments

Receive buffer

byte stream

Application Application

ACKs

Transmitter Receiver

Figure 5.32

TCP preview—reliable stream service

Page 3: 1 Reliable stream service--TCP 1.TCP accepts byte stream, so segmenting 2.It is over IP, so out-of-sequence is very common --lost or error frame results.

3

Transmitter

Slast Slast + Ws – 1

...

Send Window

Srecent

octetstransmitted& ACKed

... ...

Slast + Wa-1

Slast oldest unacknowledged byteSrecent highest-numbered transmitted byteSlast+Wa-1 highest-numbered byte that can be transmittedSlast+Ws-1 highest-numbered byte that can be accepted from the application

Receiver

Receive Window

Rnext

RlastRlast + WR – 1

Rlast highest-numbered byte not yet read by the applicationRnext next expected byteRnew highest numbered byte received correctlyRlast+WR-1 highest-numbered byte that can be accommodated in receive buffer

Rnew

Wa=WR-(Rnew-Rlast), Srecent-Slast<=WaAdvertised window:

Page 4: 1 Reliable stream service--TCP 1.TCP accepts byte stream, so segmenting 2.It is over IP, so out-of-sequence is very common --lost or error frame results.

CIS, IUPUI 4

Data link protocols

• Framing: indicate the boundaries of frames• Error control: ensure reliable transmission• Flow control: prevent sender from overrunning

receiver• Addressing information: is required when the

channel carries information for multiple users.• Assumption: data link is “wirelike”.• Two protocols: HDLC and PPP.

Page 5: 1 Reliable stream service--TCP 1.TCP accepts byte stream, so segmenting 2.It is over IP, so out-of-sequence is very common --lost or error frame results.

CIS, IUPUI 5

HDLC data link control

• Was set by ISO• Is connection-oriented: set up connection first,

then transfer frames using one of three ARQs, finally tear down the connection (Note: LAN generally provides unacknowledged connectionless service)

• HLDC configurations and transfer modes• HDLC frame format• Typical frame exchange

Page 6: 1 Reliable stream service--TCP 1.TCP accepts byte stream, so segmenting 2.It is over IP, so out-of-sequence is very common --lost or error frame results.

CIS, IUPUI 6

PhysicalLayer

Data LinkLayer

Data LinkLayer

NetworkLayer

DLSDU DLSDU

NetworkLayer

PhysicalLayer

DLPDU

NLPDU

“packet”

“frame”

DLSAP DLSAP

Figure 5.32

Data link layer

Page 7: 1 Reliable stream service--TCP 1.TCP accepts byte stream, so segmenting 2.It is over IP, so out-of-sequence is very common --lost or error frame results.

7

Primary SecondaryCommands

Responses

Unbalanced Point-to-point link

PrimaryCommands

Responses

Secondary Secondary Secondary

Unbalanced Multipoint link

Primary

Secondary

Commands Responses

Balanced Point-to-point link between Combined Stations

Primary

Secondary

CommandsResponses

Figure 5.33

HDLC configurations and transfer modes

NRM:NormalResponseMode

ABM: Asynchronous Balance Mode

Page 8: 1 Reliable stream service--TCP 1.TCP accepts byte stream, so segmenting 2.It is over IP, so out-of-sequence is very common --lost or error frame results.

8

Flag FlagAddress Control Information FCS

Figure 5.35

HDLC frame format

1. Framing: Flags at both ends define the frame boundaries. Flag value is 01111110

2. Addressing: indicate the destination address3. Control: various control fields to indicate different frames4. Information: user information by bits, generally no length limit.5. FCS: Frame Check Sum, using 16-or 32-bit CRC

Question: flag value 01111110 may appear in frame, what to do? Solution: bit stuffing, a technique to prevent occurrence of flag. sender inserts an extra 0 after each instance of five consecutive 1s. receiver looks for five consecutive 1s, if followed by 0, then this 0 was stuffed and is removed; if followed by 10, then flag found.

Example: 0110111111111100 011011111011111000 where 0 is stuffed 011011111-11111-00 where –: removed stuff 0

Page 9: 1 Reliable stream service--TCP 1.TCP accepts byte stream, so segmenting 2.It is over IP, so out-of-sequence is very common --lost or error frame results.

9

0 N(S) N(R)P/F

1 2-4 5 6-8

Information Frame or I-frame

N(R)P/F

Supervisory Frame or S-frame

Unnumbered Frame or U-frame

1 0 S S

P/F1 1 M M M M M

Control field format: three types of frames

P/F bit: Poll/Final bit. If set, the frame is a poll frame from primary or the last I-frame of all transmitted frames.N(S): sender SN of I-frame, N(R): piggybacked ACK

Window size: 23 –1 = 7 for Stop-and-Wait and Go-back-N, 4 for Selective-Repeat(in extended control field) 27 –1 = 127 for the first two ARQs, 64 for the last ARQ

Page 10: 1 Reliable stream service--TCP 1.TCP accepts byte stream, so segmenting 2.It is over IP, so out-of-sequence is very common --lost or error frame results.

10

N(R)P/F

Supervisory Frame or S-frame

Unnumbered Frame or U-frame

1 0 S S

P/F1 1 M M M M M

Figure 5.36

Control field format: S-frame and U-frameFour types of S-frames:SS=00: RR (Receive Ready) frame used when no I-frame for piggybackSS=01: REJ (Reject) frame, i.e., NAK frameSS=10: RNR (Receive Not Ready) frame, indicate unable to receive any more.SS=11: SREJ (Selective Reject) frame, indicate the retransmission of specified frame

U-frames for setup or release of connection: SABM (Set Asynchronous Balance Mode) SNRM (Set Normal Response Mode)

SABME: SABM Extended SNRME: SNRM Extended DISC (DISConnect) UA (Unnumbered acknowledgment) FRMR (Frame Reject)

Page 11: 1 Reliable stream service--TCP 1.TCP accepts byte stream, so segmenting 2.It is over IP, so out-of-sequence is very common --lost or error frame results.

CIS, IUPUI 11

SABM UAUA DISCDatatransfer

Figure 5.37

Typical frame exchange—for connection setup and release

Page 12: 1 Reliable stream service--TCP 1.TCP accepts byte stream, so segmenting 2.It is over IP, so out-of-sequence is very common --lost or error frame results.

12

Primary A Secondaries B, C

B, RR, 0, P

B, I, 0, 0B, I, 1, 0B, I, 2, 0,F

X

B, SREJ, 1

C, RR, 0, P

C, RR, 0, F

B, SREJ, 1,P

B, I, 1, 0B, I, 3, 0B, I, 4, 0, F

B, I, 0, 5

Figure 5.38

Typical frame exchange— using normal response mode

(Des.-IP, frame-type, N(S) (for I-frame), N(R), P/F)

What ARQ?Selective repeat

Page 13: 1 Reliable stream service--TCP 1.TCP accepts byte stream, so segmenting 2.It is over IP, so out-of-sequence is very common --lost or error frame results.

CIS, IUPUI 13

Combined Station A Combined Station B

B, I, 0, 0 A, I, 0, 0

B, I, 1, 0

B, I, 2, 1

A, I, 1, 1

A, I, 2, 1

X

B, REJ, 1B, I, 3, 2

B, I, 4, 3

B, I, 1, 3

B, I, 2, 4

B, I, 3, 4

A, I, 3, 1

B, RR, 2

B, RR, 3

Figure 5.39

Typical frame exchange— using asynchronous balanced mode

What ARQ? Go-back-N

Page 14: 1 Reliable stream service--TCP 1.TCP accepts byte stream, so segmenting 2.It is over IP, so out-of-sequence is very common --lost or error frame results.

14

Point-to-Point protocol• Used to connect:

– Router to router, or home PC to ISP.• HDLC-like frame format• Information by bytes, so char-stuffing in case a flag byte appears

in information• Support multiple network protocols simultaneously, e.g, IP,

IPX( Novell NetWare) etc.• LCP (Link Control Protocol): set up, configure, test, maintain,

and terminate a link connection• NCP (Network Control Protocol): configure each network

protocol, specifically, NCP for IP performs dynamical IP address assignment

• PAP (Password Authentication Protocol): login ID and password• CHAP (Challenge-Handshake Authentication Protocol): no plain

password goes between two peers.

Page 15: 1 Reliable stream service--TCP 1.TCP accepts byte stream, so segmenting 2.It is over IP, so out-of-sequence is very common --lost or error frame results.

CIS, IUPUI 15

Flag flagAddress Control Information CRCProtocol01111110 011111101111111 00000011

Unnumbered frame

Specifies what kind of packet is contained in the payload, e.g., LCP, NCP, IP, OSI CLNP, IPX

All stations are toaccept the frame

Figure 5.40

PPP frame format

1. Framing flag: same as HDLC2. Address: 1111111, broadcast address, no need for specific host address

3. Control: default for connectionless transfer, not use sequence number4. Protocol: support multiple network protocols5. Information: byte-based, not bit-based. So Char-stuffing, see Problem 5-54.6. CRC: check sum

Page 16: 1 Reliable stream service--TCP 1.TCP accepts byte stream, so segmenting 2.It is over IP, so out-of-sequence is very common --lost or error frame results.

CIS, IUPUI 16

A Typical ScenarioHome PC to Internet Service

Provider1. PC calls router via modem.2. PC and router exchange LCP packets

to negotiate PPP parameters.3. Check on identities.4. NCP packets exchanged to configure

the network layer, e.g., TCP/IP ( requires IP address assignment).

5. Data transport, e.g. send/receive IP packets.

6. NCP used to tear down the network layer connection (free up IP address); LCP used to shut down data link layer connection.

7. Modem hangs up.

Dead

Establish

Authenticate

Network

Terminate

Open

failed

failed

1. CarrierDetected

2. LCP OptionsNegotiated

3. AuthenticationCompleted4. NCP

Configuration

6. Done

7. CarrierDropped

5.

Figure 5.41

Page 17: 1 Reliable stream service--TCP 1.TCP accepts byte stream, so segmenting 2.It is over IP, so out-of-sequence is very common --lost or error frame results.

CIS, IUPUI 17

Error Detection and Correction(Chapter 3)

• Error detection and retransmission– When return channel is available– Used in Internet– Waste bandwidth

• Forward error correction (FEC)– When the return channel is not available– When retransmission incurs more cost– Used in satellite and deep-space communication, as

well as audio CD recoding.– Require redundancy and processing time.

Page 18: 1 Reliable stream service--TCP 1.TCP accepts byte stream, so segmenting 2.It is over IP, so out-of-sequence is very common --lost or error frame results.

CIS, IUPUI 18

Odd error detection using parity bit

• Seven data bit plus 1 parity bit

• 1011010 0

• 1010001 1

• Then any odd errors can be detected.

Page 19: 1 Reliable stream service--TCP 1.TCP accepts byte stream, so segmenting 2.It is over IP, so out-of-sequence is very common --lost or error frame results.

CIS, IUPUI 19

Two-dimension parity checks1 0 0 1 0 00 1 0 0 0 11 0 0 1 0 01 1 0 1 1 01 0 0 1 1 1

1. Several information rows2. Last column: check bits for rows 3. Last row: check bits for columns

1 0 0 1 0 00 0 0 0 0 11 0 0 1 0 01 1 0 1 1 01 0 0 1 1 1

Can detect one, two, three errors,But not all four errors.

1 0 0 1 0 00 0 0 0 0 11 0 0 1 0 01 0 0 1 1 01 0 0 1 1 1

1 0 0 1 0 00 0 0 1 0 11 0 0 1 0 01 0 0 1 1 01 0 0 1 1 1

1 0 0 1 0 00 0 0 1 0 11 0 0 1 0 01 0 0 0 1 01 0 0 1 1 1

1 error 2 errors 3 errors 4 errors

Page 20: 1 Reliable stream service--TCP 1.TCP accepts byte stream, so segmenting 2.It is over IP, so out-of-sequence is very common --lost or error frame results.

CIS, IUPUI 20

Internet Checksum

• IP packet, a checksum is calculated for the headers and put in a field in the header.

• Goal is easy/efficient to implement, make routers simple and efficient.

• Suppose m 16-bit words, b0, b1, …, bm-1

– Compute x= b0+ b1+ …+ bm-1 mod 216 -1

– Set checksum bm=-x

– Insert x in the checksum field

– Verify b0+ b1+ …+ bm-1 + bm=0 mod 216 -1.

Page 21: 1 Reliable stream service--TCP 1.TCP accepts byte stream, so segmenting 2.It is over IP, so out-of-sequence is very common --lost or error frame results.

CIS, IUPUI 21

CRC (Cyclic Redundancy Check) (chapter 3.9.4)

• Based on polynomial codes and easily implemented using shift-register circuit

• Information bits, codewords, error vector are represented as polynomials with binary coefficients. On the contrary, the coefficients of a polynomial will be a binary string.

• Polynomial arithmetic is done modulo 2 with addition and subtraction being Exclusive-OR, so addition and subtraction is the same.

• Examples: 10110 x4 + x2 + x 01011 x3 + x + 1

Page 22: 1 Reliable stream service--TCP 1.TCP accepts byte stream, so segmenting 2.It is over IP, so out-of-sequence is very common --lost or error frame results.

CIS, IUPUI 22

(x7 x6 1) (x6 x5 ) x7 (1 1)x6 x 5 1

x7 x5 1

(x 1)(x2 x 1) x3 x 2 x x2 x 1 x3 1

Addition:

Multiplication:

Division: x3 + x + 1 ) x6 + x5

x3 + x2 + x

x6 + x4 + x3

x5 + x4 + x3

x5 + x3 + x2

x4 + x2

x4 + x2 + x

x

= q(x) quotient

= r(x) remainder

divisordividend

35 ) 1223

10517

Figure 3.55

polynomial arithmetic

11000001 + 01100000 = 10100001

00000011 * 00000111 = 00001001

) 01100000000010111110

10111110

1011 1010

101110

Page 23: 1 Reliable stream service--TCP 1.TCP accepts byte stream, so segmenting 2.It is over IP, so out-of-sequence is very common --lost or error frame results.

CIS, IUPUI 23

How to compute CRC• There is a generator polynomial, g(x) of degree r, which the

sender and receiver agree upon in advance.• Suppose the information transmitted has m bits, i.e. i(x), then

sender appends r zero at the end of information, i.e, xr i(x) • Perform xr i(x) / g(x) to get remainder r(x) (and quotient q(x))• Append the r bit string of r(x) to the end of m bit information to

get m+r bit string, i.e., b(x), for transmission.– b(x) = xr i(x) + r(x) ( =g(x)q(x)+r(x)+r(x)=g(x)q(x) )

• When receiver receives the bit string, i.e., b’(x), it will divide b’(x) by g(x) , if the remainder is not zero, then error occurs.

--suppose no error occurs, then b’(x) = b(x), so b’(x)/g(x)

=b(x)/g(x)=g(x)q(x)/g(x)=q(x), remainder is 0.

Page 24: 1 Reliable stream service--TCP 1.TCP accepts byte stream, so segmenting 2.It is over IP, so out-of-sequence is very common --lost or error frame results.

CIS, IUPUI 24

Generator polynomial: g(x)= x3 + x + 1 1011Information: (1,1,0,0) i(x) = x3 + x2

Encoding: x3i(x) = x6 + x5

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

Transmitted codeword:b(x) = x6 + x5 + x

b = (1,1,0,0,0,1,0)

Figure 3.57

Example of CRC encoding

Page 25: 1 Reliable stream service--TCP 1.TCP accepts byte stream, so segmenting 2.It is over IP, so out-of-sequence is very common --lost or error frame results.

CIS, IUPUI 25

Example of CRC encoding (cont.)

If 1100010 is received, then 1100010 is divided by 1011,The remainder will be zero (please verify yourself), so no error.

Suppose 1101010 is received, then let us do the division as follows:

) 110101010111111

101111001011

1111101110001011

11 The remainder is not zero, soerror occurs.

Page 26: 1 Reliable stream service--TCP 1.TCP accepts byte stream, so segmenting 2.It is over IP, so out-of-sequence is very common --lost or error frame results.

CIS, IUPUI 26

Typical standard CRC polynomials

• CRC-8: x8 + x2 + x + 1 ATM header error check• CRC-16: x16+x12+x5+1 HDLC, XMODEM, V.41• CRC-32: x32+x26+x23+x22+ IEEE 802, DoD, V.41,

x16+x12+x11+x10+ AAL5

x8+x7+x5+x4+x2+x+1

Page 27: 1 Reliable stream service--TCP 1.TCP accepts byte stream, so segmenting 2.It is over IP, so out-of-sequence is very common --lost or error frame results.

CIS, IUPUI 27

1. Single errors:e(x) = xi 0 i n-1If g(x) has more than one term, it cannot divide e(x)

2. Double errors: e(x) = xi + xj 0 i < j n-1 = xi (1 + xj-i )

Fact: if p(x) is primitive of degree t, the smallest m for which 1+xm is divisible by p(x) is 2t-1.

Thus, if p(x) is selected to be a primitive poly of degree t=n-k, p(x) will detect all double errors as long as the codeword length does not exceed 2n-k1.

So, g(x)=(1+x)p(x), p(x) is a primitive poly.e.g. CRC-16=(1+x)(x15+x+1), it can detect all double errors as long as the

codeword length is less or equal to 215-1=32767.

3. Odd number of errors: e(1) =1.If g(x) has (x+1) as a factor, then g(1) = 0 and all codewords have an even

number of 1s.

Figure 3.60

Analysis of error detection powerReceived poly: R(x)= b(x) +e(x), where e(x) is error poly.

Page 28: 1 Reliable stream service--TCP 1.TCP accepts byte stream, so segmenting 2.It is over IP, so out-of-sequence is very common --lost or error frame results.

CIS, IUPUI 28

4. Error bursts of length L: 0…0110 • • • •0001011000

e(x) = xi d(x) where deg(d(x)) = L-1g(x) has degree n-k; g(x) cannot divide d(x) if deg(g(x))> deg(d(x))

• L = (n-k) or less: all will be detected• L = (n-k+1): deg(d(x)) = deg(g(x)) i.e. d(x) = g(x) is the only undetectable error pattern, fraction of bursts which are undetectable = 1/2L-2

(the first and last bit in L range must be one, the left L-2 bits must match with the coefficients in g(x).

• L > (n-k+1): fraction of bursts which are undetectable = 1/2n-

k

L

ithposition

error pattern d(x)

Figure 3.61

Page 29: 1 Reliable stream service--TCP 1.TCP accepts byte stream, so segmenting 2.It is over IP, so out-of-sequence is very common --lost or error frame results.

CIS, IUPUI 29

The error detection capabilities of CRCs• As long as the g(x) is selected appropriately

– All single errors– All double errors– All odd number of errors– Burst error of length L, the probability that this burst

error is undetectable = 1/2(L-2)

• CRC can be easily implemented in hardware• One word about error correction: more powerful,

but need more extra check bits, more slow, so not use as much as error detection.