第 5 章 运输层
DESCRIPTION
第 5 章 运输层. 5.1 运输层协议概述. 从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。. 面向信息处理. 应用层. 用户功能. 运输层. 网络层. 面向通信. 网络功能. 数据链路层. 物理层. 运输层为相互通信的应用进程提供了逻辑通信. 应用进程. 应用进程. AP 4. AP 1. AP 2. 5 4 3 2 1. AP 3. 5 4 3 2 1. 端口. 端口. 运输层提供应用进程 间的逻辑 通信. IP 层. 主机 A. - PowerPoint PPT PresentationTRANSCRIPT
-
5
-
5.1
-
54321 A B 1 2AP1LAN2WANAP2AP3AP4IP LAN1AP1AP2AP454321IP TCP UDP AP3
-
IP TCP UDP
-
TCP UDP
-
OSI A BTSAPNSAP
-
TCP UDP
-
5.2 TCP/IP 5.2.1 TCP/IP(1) UDP (User Datagram Protocol)(2) TCP (Transmission Control Protocol)
-
TCP UDP TPDU (Transport Protocol Data Unit)TCP TCP (segment) UDP UDP
-
TCP UDP UDP UDP UDP UDP TCP TCP TCP
-
5.2.2 TSAP
-
TCP UDPTCP IP UDP TCP UDPTCP UDP IP
-
16 bit
-
0~1023
-
(socket) TCP () TCP (socket)IP
-
Berkeley Sockets
-
5.3 UDP 5.3.1 UDP UDP IP UDP UDP UDP UDP 8
-
UDP 51000UDP 69TFTP TFTP UDP
-
5.3.2 UDP UDP IP IP 017IP 44112122222 UDP
-
UDP IP IP 017IP 44112122222 UDP UDP 8 4
-
UDP IP IP 017IP 44112122222 UDP UDP
-
5.4 TCP 5.4.1 TCP TCP TCP
TCP
-
TCP20 FIN32 bitSYNRSTPSHACKURG 0 8 16 24 31 TCP TCP TCP IP IP
-
TCP20 FINSYNRSTPSHACKURG 0 8 16 24 31 2
-
TCP20 FINSYNRSTPSHACKURG 0 8 16 24 31 4 TCP
-
TCP20 FINSYNRSTPSHACKURG 0 8 16 24 31 4
-
TCP20 FINSYNRSTPSHACKURG 0 8 16 24 31 4 bit TCP TCP 32 bit 4
-
TCP20 FINSYNRSTPSHACKURG 0 8 16 24 31 6 bit 0
-
TCP20 FINSYNRSTPSHACKURG 0 8 16 24 31 URG URG 1 ()
-
TCP20 FINSYNRSTPSHACKURG 0 8 16 24 31 ACK ACK 1 ACK 0
-
TCP20 FINSYNRSTPSHACKURG 0 8 16 24 31 PSH (PuSH) TCP 1
-
TCP20 FINSYNRSTPSHACKURG 0 8 16 24 31 RST (ReSeT) RST 1 TCP
-
TCP20 FINSYNRSTPSHACKURG 0 8 16 24 31 SYN SYN 1
-
TCP20 FINSYNRSTPSHACKURG 0 8 16 24 31 FIN (FINal) FIN 1
-
2 TCP TCP20 FINSYNRSTPSHACKURG 0 8 16 24 31
-
TCP20 FINSYNRSTPSHACKURG 0 8 16 24 31 2 TCP 12
-
TCP20 FINSYNRSTPSHACKURG 0 8 16 24 31 16 bit
-
TCP20 FINSYNRSTPSHACKURG 0 8 16 24 31 TCP MSS (Maximum Segment Size)MSS TCP MSS MSS TCP TCP TCP
-
TCP20 FINSYNRSTPSHACKURG 0 8 16 24 31 4
-
5.4.3 TCP TCP TCP TCP TCP 1
-
5.5 5.5.1
-
H1 H2 R1 R2 R3 H1 H2
-
( H1 H2 R1 R2 R3 H1 H2 R1R2R3H1H2
-
5.6 5.6.1 A BAP2AP1
-
1 2
-
:Fig. 3-9
-
5.6.2 A B
-
(1) (2) (3) (4) (5) ( ) (2)
-
(1) (2) (3) (4) (5) (1)
-
ABDATADATADATADATA B B B BABDATA BDATA B
-
A Simplex Stop-and-Wait ProtocolFig. 3-10
-
5.6.3 ABACKACK(a)
-
A(timeout timer) tout B A
-
1 B B B A ACK B A ACK
-
0 1
-
N(S) 0 1
-
5.6.4 nACKn n 1 n ACK1 0 1 ACK0 1 0
-
(1) (2) V(S)0 (3) N(S)V(S)(4) (5) (6) {(7)(8)}(7) ACKnn n = 1 V(s) V(S)[1 V(S)] (3) (6) (8) (4)
-
(1)V(R)0(2) (3) N(S) = V(R)(4) (6)(4) (5) V(R)[1 V(R)](6) nV(R) ACKnn(2)
-
ACKn V(S) N(S) V(R) ACKn V(R) n
-
CRC CRC ARQ (Automatic Repeat reQuest)
-
A Simplex Protocol for a Noisy Channel 101
-
PARPositive Acknowledgement with RetransmissionARQAutomatic Repeat reQuestFig. 3-11
-
5.6.5 tf tf lf (bit) C (bit/s) tf = lf /C = lf /C (s) 3-1 tf B tp B tpr ACK ta
-
ABDATADATAACK tp tpr ta tp tprtftout
-
tout = tp + tpr+ ta + tp + tpr (3-2) tpr ta tp tout = 2tp (3-3)
-
tT = tf + tout = tf + 2tp (3-4) () p tav tav = tT ( 1 + )
-
= {1 P[ 1] + 2 P[ 2] + 3 P[ 3] +} = {1 P[ 1 ] P[ 2 ] + 2 P[ 1, 2 ] P[ 3 ] + 3 P[ 1, 2, 3 ] P[ 4 ] +} = p(1 p) + 2p2(1 p) + 3p3(1 p) + P[X] X
-
tav p = 0, tav = tT
(3-5)
-
max max = 1/tav = (1 p) / tT (3-6) max (1 p) / tT (3-7) tf tf (1 p) / < 1 (3-8) tT tT / tf 1 (3-9) 1 1 p (3-10)
-
Td , Tf, CL Tf = L/C Cr = / = Tf / (Tf + 2Td) = 1/(1+2Td *C/L)L
-
Td = 250ms,C=50kb/s,L=1kbit,Cr=1/(1+2TdC/L)=1/(1+2*0.250*50*103/1*103)=3.8
-
ARQ ARQ ARQ
-
5.7 ARQ 5.7.1 ARQ
-
ARQ ACK1 DATA0ACK2 DATA1DATA2 DATA3 ACK2DATA4 ACK2DATA5 ACK2ACK3 DATA2ACK4 DATA3ABtout??
-
(1) 2 3 2 (2) ACK1 0 DATA0 1 ACK2 1 DATA1 2
-
(3) A 2 2 A 5 2 ARQ Go-back-N ARQ N
-
(4) ARQ N
-
5.7.2 WT
-
01234567012WT 5 (a)
-
ARQ WR = 1
-
01234567012WR 0 (a)
-
1
-
n 1 WT 2n 1 ARQ 3 bit 7 8
-
A One Bit Sliding Window ProtocolN = 101piggybackingFig. 3-13
-
nEnable_Network_LayerDisable_Network_Layer < MaxSeq + 1MaxSeq = 71 0 ~ 72 7 3 8 0 ~ 74 7 nFig. 3-16
-
P5Network_layer_readyFrame_arrival Cksum_err timeout ntimeout
-
5.7.3 ()() 100 % ()
-
5.8 ARQ ARQ ARQ n WR 2n/2 (3-18)
-
selective repeat1Fig. 3-15(b)
-
A Protocol Using Selective RepeatMaxSeq(MaxSeq+1)/2 MaxSeq = 7, = 7 0 ~ 67 ~ 506 7 ~ 5 0 0Fig. 3-19
-
Ack_ExpectedNextFrame_ToSendFrame_ExpectedTooFarNAKFig. 3-18
-
P6Network_layer_readyFrame_arrival NAKNAKCksum_err NAKtimeout Ack_timeout ACK
-
timeoutAckNAKack_timeout
-
Td , Tf, CL,WsCr = / = Ws*Tf / (Tf + 2Td) = Ws*/(1+2Td *C/L)Ws
-
Td = 250ms,C=50kb/s,L=1kbit,100%Ws=2 *Td *C/ L+1 =2*0.25*50*103/103+1=26
-
5.9 5.9.1 (congestion) > (5-1)
-
0
-
(reassembly deadlock)A4A2A1B3C1B1B2C3B4A3C2 P Q R H AB C PQ R H 4 4 R A 4 A3 H A3 P Q Q
-
5.9.2
-
5.9.3 TCP 1. TCP TCP ()
-
900 9 100 500 TCP 1002003004005006007008009001012013014015016017018011
-
400 200 300 10020030040050060070080090010120130140150160170180111002003004005006007008009001012013014015016017018011
-
10020030040050060070080090010120130140150160170180111002003004005006007008009001012013014015016017018011 400 400 400
-
400 A B A 300 201 500A 200 A 200 301 500A 300 A 100 401 500A 500 A 200 501 700A 100 501 700 A 600
-
2. TCP rwnd (receiver window) (advertised window) cwnd (congestion window)
-
rwnd cwnd (1) rwnd TCP (2) cwnd (congestion window)
-
rwnd cwnd Min [rwnd, cwnd] (7-1) rwnd < cwnd cwnd < rwnd
-
cwnd MSS MSS cwnd
-
TCP 1 16 ssthresh = 16246810121416182022004812162024 cwndssthresh = 16 ssthresh = 12
-
cwnd rwnd 246810121416182022004812162024 cwndssthresh = 16 ssthresh = 12
-
cwnd 1 M0 246810121416182022004812162024 cwndssthresh = 16 ssthresh = 12
-
246810121416182022004812162024 cwndssthresh = 16 ssthresh = 12 ACK1 M0 M1 cwnd 1 2 M1 M2
-
ACK2 ACK3 ACK 1 cwnd 2 4 M4 ~ M6 4 246810121416182022004812162024 cwndssthresh = 16 ssthresh = 12
-
ACK 1 cwnd 246810121416182022004812162024 cwndssthresh = 16 ssthresh = 12
-
cwnd ssthresh cwnd = 16 246810121416182022004812162024 cwndssthresh = 16 ssthresh = 12
-
24 246810121416182022004812162024 cwndssthresh = 16 ssthresh = 12
-
ssthresh 12 24 1 246810121416182022004812162024 cwndssthresh = 16 ssthresh = 12
-
cwnd = 12 MSS 246810121416182022004812162024 cwndssthresh = 16 ssthresh = 12
-
(multiplicative decrease) ssthresh 0.5ssthresh
-
(additive increase) cwnd MSS
-
3. ACK
-
A BB M1 M2A M1 M2A ACK3 M3A M3 A M4A M5B ACK3A M6B ACK3B M2( M3
-
(1) ACK ssthresh(2) cwnd 1 ssthresh + 3 MSS (3) ACK n n > 3 cwnd ssthresh + n MSS(4) (5) ACK cwnd ssthresh
-
5.9.4 TCP TCP TCP
-
TCP IP T1T2T3
-
5.9.5 TCP 1.
-
TCP (client)(server)
-
TCP B A
-
TCP A B A A B A B
-
ABTCPSlow Start32K(1K = 1024), MSS1KA->B, B, B, MSSA01., A1ACK10240, A2.ACK = 32768A3.32K40K, ,
-
110, 11232, , (32 + 1 / 32) * 1024 = 328003 1 MSS = 1KB 40 / 2 = 20 KB