1 Reliable stream service--TCP 1.TCP accepts byte stream, so segmenting 2.It is over IP, so...
-
Upload
arnold-elliott -
Category
Documents
-
view
218 -
download
0
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.](https://reader035.fdocuments.net/reader035/viewer/2022062804/56649ee45503460f94bf36b1/html5/thumbnails/1.jpg)
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.](https://reader035.fdocuments.net/reader035/viewer/2022062804/56649ee45503460f94bf36b1/html5/thumbnails/2.jpg)
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.](https://reader035.fdocuments.net/reader035/viewer/2022062804/56649ee45503460f94bf36b1/html5/thumbnails/3.jpg)
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.](https://reader035.fdocuments.net/reader035/viewer/2022062804/56649ee45503460f94bf36b1/html5/thumbnails/4.jpg)
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.](https://reader035.fdocuments.net/reader035/viewer/2022062804/56649ee45503460f94bf36b1/html5/thumbnails/5.jpg)
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.](https://reader035.fdocuments.net/reader035/viewer/2022062804/56649ee45503460f94bf36b1/html5/thumbnails/6.jpg)
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.](https://reader035.fdocuments.net/reader035/viewer/2022062804/56649ee45503460f94bf36b1/html5/thumbnails/7.jpg)
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.](https://reader035.fdocuments.net/reader035/viewer/2022062804/56649ee45503460f94bf36b1/html5/thumbnails/8.jpg)
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.](https://reader035.fdocuments.net/reader035/viewer/2022062804/56649ee45503460f94bf36b1/html5/thumbnails/9.jpg)
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.](https://reader035.fdocuments.net/reader035/viewer/2022062804/56649ee45503460f94bf36b1/html5/thumbnails/10.jpg)
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.](https://reader035.fdocuments.net/reader035/viewer/2022062804/56649ee45503460f94bf36b1/html5/thumbnails/11.jpg)
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.](https://reader035.fdocuments.net/reader035/viewer/2022062804/56649ee45503460f94bf36b1/html5/thumbnails/12.jpg)
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.](https://reader035.fdocuments.net/reader035/viewer/2022062804/56649ee45503460f94bf36b1/html5/thumbnails/13.jpg)
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.](https://reader035.fdocuments.net/reader035/viewer/2022062804/56649ee45503460f94bf36b1/html5/thumbnails/14.jpg)
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.](https://reader035.fdocuments.net/reader035/viewer/2022062804/56649ee45503460f94bf36b1/html5/thumbnails/15.jpg)
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.](https://reader035.fdocuments.net/reader035/viewer/2022062804/56649ee45503460f94bf36b1/html5/thumbnails/16.jpg)
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.](https://reader035.fdocuments.net/reader035/viewer/2022062804/56649ee45503460f94bf36b1/html5/thumbnails/17.jpg)
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.](https://reader035.fdocuments.net/reader035/viewer/2022062804/56649ee45503460f94bf36b1/html5/thumbnails/18.jpg)
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.](https://reader035.fdocuments.net/reader035/viewer/2022062804/56649ee45503460f94bf36b1/html5/thumbnails/19.jpg)
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.](https://reader035.fdocuments.net/reader035/viewer/2022062804/56649ee45503460f94bf36b1/html5/thumbnails/20.jpg)
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.](https://reader035.fdocuments.net/reader035/viewer/2022062804/56649ee45503460f94bf36b1/html5/thumbnails/21.jpg)
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.](https://reader035.fdocuments.net/reader035/viewer/2022062804/56649ee45503460f94bf36b1/html5/thumbnails/22.jpg)
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.](https://reader035.fdocuments.net/reader035/viewer/2022062804/56649ee45503460f94bf36b1/html5/thumbnails/23.jpg)
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.](https://reader035.fdocuments.net/reader035/viewer/2022062804/56649ee45503460f94bf36b1/html5/thumbnails/24.jpg)
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.](https://reader035.fdocuments.net/reader035/viewer/2022062804/56649ee45503460f94bf36b1/html5/thumbnails/25.jpg)
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.](https://reader035.fdocuments.net/reader035/viewer/2022062804/56649ee45503460f94bf36b1/html5/thumbnails/26.jpg)
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.](https://reader035.fdocuments.net/reader035/viewer/2022062804/56649ee45503460f94bf36b1/html5/thumbnails/27.jpg)
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.](https://reader035.fdocuments.net/reader035/viewer/2022062804/56649ee45503460f94bf36b1/html5/thumbnails/28.jpg)
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.](https://reader035.fdocuments.net/reader035/viewer/2022062804/56649ee45503460f94bf36b1/html5/thumbnails/29.jpg)
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.