Presentation is loading. Please wait.

Presentation is loading. Please wait.

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.

Similar presentations


Presentation on theme: "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."— Presentation transcript:

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 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.

2 CIS, IUPUI2 byte stream Send buffer Segments Receive buffer byte stream Application ACKs Transmitter Receiver Figure 5.32 TCP preview—reliable stream service

3 3 Transmitter S last S last + W s – 1... Send Window S recent octets transmitted & ACKed... S last + W a -1 S last oldest unacknowledged byte S recent highest-numbered transmitted byte S last +W a -1 highest-numbered byte that can be transmitted S last +W s -1 highest-numbered byte that can be accepted from the application Receiver Receive Window R next R last R last + W R – 1 R last highest-numbered byte not yet read by the application R next next expected byte R new highest numbered byte received correctly R last +W R -1 highest-numbered byte that can be accommodated in receive buffer R new Wa=W R -(R new -R last ), S recent -S last <=Wa Advertised window:

4 CIS, IUPUI4 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.

5 CIS, IUPUI5 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

6 CIS, IUPUI6 Physical Layer Data Link Layer Data Link Layer Network Layer DLSDU Network Layer Physical Layer DLPDU NLPDU “packet” “frame” DLSAP Figure 5.32 Data link layer

7 7 PrimarySecondary Commands Responses Unbalanced Point-to-point link Primary Commands Responses Secondary Unbalanced Multipoint link Primary Secondary Commands Responses Balanced Point-to-point link between Combined Stations Primary Secondary Commands Responses Figure 5.33 HDLC configurations and transfer modes NRM: Normal Response Mode ABM: Asynchronous Balance Mode

8 8 Flag AddressControlInformationFCS 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 address 3. Control: various control fields to indicate different frames 4. 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

9 9 0N(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 SS P/F 1 1 MMM 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: 2 3 –1 = 7 for Stop-and-Wait and Go-back-N, 4 for Selective-Repeat (in extended control field) 2 7 –1 = 127 for the first two ARQs, 64 for the last ARQ

10 10 N(R) P/F Supervisory Frame or S-frame Unnumbered Frame or U-frame 1 0 SS P/F 1 1 MMM M M Figure 5.36 Control field format: S-frame and U-frame Four types of S-frames: SS=00: RR (Receive Ready) frame used when no I-frame for piggyback SS=01: REJ (Reject) frame, i.e., NAK frame SS=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)

11 CIS, IUPUI11 SABM UA DISC Data transfer Figure 5.37 Typical frame exchange—for connection setup and release

12 12 Primary A Secondaries B, C B, RR, 0, P B, I, 0, 0 B, I, 1, 0 B, I, 2, 0,F X B, SREJ, 1 C, RR, 0, P C, RR, 0, F B, SREJ, 1,P B, I, 1, 0 B, I, 3, 0 B, 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

13 CIS, IUPUI13 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, 1 B, 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

14 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.

15 CIS, IUPUI15 Flag flag Address Control Information CRC Protocol 01111110 1111111 00000011 Unnumbered frame Specifies what kind of packet is contained in the payload, e.g., LCP, NCP, IP, OSI CLNP, IPX All stations are to accept the frame Figure 5.40 PPP frame format 1.Framing flag: same as HDLC 2.Address: 1111111, broadcast address, no need for specific host address 3.Control: default for connectionless transfer, not use sequence number 4.Protocol: support multiple network protocols 5.Information: byte-based, not bit-based. So Char-stuffing, see Problem 5-54. 6. CRC: check sum

16 CIS, IUPUI16 A Typical Scenario Home PC to Internet Service Provider 1. 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 1. Carrier Detected 2. LCP Options Negotiated 3. Authentication Completed 4. NCP Configuration 6. Done 7. Carrier Dropped 5. Figure 5.41

17 CIS, IUPUI17 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.

18 CIS, IUPUI18 Odd error detection using parity bit Seven data bit plus 1 parity bit 1011010 0 1010001 1 Then any odd errors can be detected.

19 CIS, IUPUI19 Two-dimension parity checks 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 0 1 1 1 1.Several information rows 2.Last column: check bits for rows 3.Last row: check bits for columns 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 1 0 0 1 1 1 Can detect one, two, three errors, But not all four errors. 1 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 1 0 1 0 0 1 1 1 1 0 0 0 0 0 1 0 1 1 0 0 1 0 0 1 1 0 1 0 0 1 1 1 1 0 0 0 0 0 1 0 1 1 0 0 1 0 0 0 1 0 1 0 0 1 1 1 1 error 2 errors3 errors4 errors

20 CIS, IUPUI20 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, b 0, b 1, …, b m-1 –Compute x= b 0 + b 1 + …+ b m-1 mod 2 16 -1 –Set checksum b m =-x –Insert x in the checksum field –Verify b 0 + b 1 + …+ b m-1 + b m =0 mod 2 16 -1.

21 CIS, IUPUI21 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  x 4 + x 2 + x 01011  x 3 + x + 1

22 CIS, IUPUI22 Addition: Multiplication: Division: x 3 + x + 1 ) x 6 + x 5 x 3 + x 2 + x x 6 + x 4 + x 3 x 5 + x 4 + x 3 x 5 + x 3 + x 2 x 4 + x 2 x 4 + x 2 + x x = q(x) quotient = r(x) remainder divisor dividend 35 ) 122 3 105 17 Figure 3.55 polynomial arithmetic 11000001 + 01100000 = 10100001 00000011 * 00000111 = 00001001 ) 0110000000001011 1110 1011 1110 1011 1010 1011 10

23 CIS, IUPUI23 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, x r i(x) Perform x r 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) = x r 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.

24 CIS, IUPUI24 Generator polynomial: g(x)= x 3 + x + 1  1011 Information: (1,1,0,0) i(x) = x 3 + x 2 Encoding: x 3 i(x) = x 6 + x 5 1011 ) 1100000 1110 1011 1110 1011 1010 1011 010 x 3 + x + 1 x 6 + x 5 x 3 + x 2 + x x 6 + x 4 + x 3 x 5 + x 4 + x 3 x 5 + x 3 + x 2 x 4 + x 2 x 4 + x 2 + x x Transmitted codeword: b(x) = x 6 + x 5 + x b = (1,1,0,0,0,1,0) Figure 3.57 Example of CRC encoding

25 CIS, IUPUI25 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: ) 11010101011 1111 1011 1100 1011 1111 1011 1000 1011 11 The remainder is not zero, so error occurs.

26 CIS, IUPUI26 Typical standard CRC polynomials CRC-8: x 8 + x 2 + x + 1 ATM header error check CRC-16: x 16 +x 12 +x 5 +1 HDLC, XMODEM, V.41 CRC-32: x 32 +x 26 +x 23 +x 22 + IEEE 802, DoD, V.41, x 16 +x 12 +x 11 +x 10 + AAL5 x 8 +x 7 +x 5 +x 4 +x 2 +x+1

27 CIS, IUPUI27 1. Single errors:e(x) = x i 0  i  n-1 If g(x) has more than one term, it cannot divide e(x) 2. Double errors: e(x) = x i + x j 0  i < j  n-1 = x i (1 + x j-i ) Fact: if p(x) is primitive of degree t, the smallest m for which 1+x m is divisible by p(x) is 2 t -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 2 n-k  1. So, g(x)=(1+x)p(x), p(x) is a primitive poly. e.g. CRC-16=(1+x)(x 15 +x+1), it can detect all double errors as long as the codeword length is less or equal to 2 15 -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 power Received poly: R(x)= b(x) +e(x), where e(x) is error poly.

28 CIS, IUPUI28 4. Error bursts of length L: 0…0110 0001011000 e(x) = x i d(x) where deg(d(x)) = L-1 g(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/2 L-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/2 n-k L ith position error pattern d(x) Figure 3.61

29 CIS, IUPUI29 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.


Download ppt "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."

Similar presentations


Ads by Google