Click here to load reader
Upload
kevyn-cobb
View
53
Download
3
Embed Size (px)
DESCRIPTION
计算机网络(第 5 版). 第 5 章 运输层. 第 5 章 运输层. 5.1 运输层协议概述 5.1.1 进程之间的通信 5.1.2 运输层的两个主要协议 5.1.3 运输层的端口 5.2 用户数据报协议 UDP 5.2.1 UDP 概述 5.2.2 UDP 的首部格式. 第 5 章 运输层(续). 5.3 传输控制协议 TCP 概述 5.3.1 TCP 最主要的特点 5.3.2 TCP 的连接 5.4 可靠传输的工作原理 5.4.1 停止等待协议 - PowerPoint PPT Presentation
Citation preview
5 5
5 5.1 5.1.1 5.1.2 5.1.3 5.2 UDP 5.2.1 UDP 5.2.2 UDP
5 5.3 TCP 5.3.1 TCP 5.3.2 TCP 5.4 5.4.1 5.4.2 ARQ 5.5 TCP
5 5.6 TCP 5.6.1 5.6.2 5.6.3 SACK5.7 TCP 5.7.1 5.7.1
5 5.8 TCP 5.8.1 5.8.2 5.8.3 RED5.9 TCP 5.9.1 TCP 5.9.2 TCP 5.9.3 TCP
5.1 5.1.1
54321 A B 1 2AP1LAN2WANAP2AP3AP4IP LAN1AP1AP2AP454321IP TCP UDP AP3
IP TCP UDP
TCP UDP
TCP UDP
TCP/IP (1) UDP (User Datagram Protocol)(2) TCP (Transmission Control Protocol)5.1.2
TPDU (Transport Protocol Data Unit)TCP TCP (segment) UDP UDP TCP UDP
TCP/IP TCPUDPIP
TCP UDP UDP UDP UDP UDP TCP TCP TCP
UDP IPIP UDP TCP TCP
5.1.3 TCP/IP
(protocol port number)(port)(protocol port number)(port) TCP
TCP 16
0~10231024~49151 IANA 49152~65535
5.2 UDP 5.2.1 UDP UDP IP UDP UDP
UDP UDP UDP UDP UDP UDP UDP 8
UDP UDP IP UDP UDP UDP UDP IP UDP
UDP IP IP IP UDP UDP
5.2.2 UDP UDP IP IP 017IP 44112122222 UDP
UDP
UDP IP IP 017IP 44112122222 UDP UDP 8 4
UDP IP IP 017IP 44112122222 UDP UDP
UDP 10011001 00010011 153.1900001000 01101000 8.10410101011 00000011 171.300001110 00001011 14.1100000000 00010001 0 1700000000 00001111 1500000100 00111111 108700000000 00001101 1300000000 00001111 1500000000 00000000 001010100 01000101 01010011 01010100 01001001 01001110 01000111 00000000 0
10010110 11101101 01101001 00010010 153.19.8.104171.3.14.1112 8 UDP 7 0 17 15 1087 13 15 0 0
5.3 TCP 5.3.1 TCP TCP TCP (endpoint) TCP TCP TCP
TCP TCP
1817161514H TCP TCP TCPTCPH TCP x x TCP
TCP TCP TCP TCP UDP TCP TCP
5.3.2 TCP TCP TCP TCP IP TCP (socket)(contatenated with) IP
(socket) socket = (IP: ) (5-1) TCP TCP ::= {socket1, socket2} = {(IP1: port1), (IP2: port2)} (5-2)
socket API socket API, socketsocket API socket socket socket socket socket socket Berkeley socket
5.4 5.4.1 (a) A M1 M1B M2 M3 M2 M3A M1B M1 M2 M1(b) tttt
A M1B M1 M2 M1 M1(a) M1A M1B M1 M2 M1M1(b) M1tttt
ARQ (Automatic Repeat reQuest)ARQ
TDRTTATD + RTT + TABtt
U (5-3)1200kmRTT=20ms1200bit1Mb/sTA
BttAACK
5.4.2 ARQ 123456789101112(a) 5
Go-back-N N 5 3 Go-back-N N N ARQ
P2205-095-145-18
TCP20 FIN32 SYNRSTPSHACKURG 0 8 16 24 31 TCP TCP TCP IP IP 5.5 TCP
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 TCP TCP 32 4
TCP20 FINSYNRSTPSHACKURG 0 8 16 24 31 6 0
TCP20 FINSYNRSTPSHACKURG 0 8 16 24 31 URG URG 1 ()
TCP20 FINSYNRSTPSHACKURG 0 8 16 24 31 ACK ACK 1 ACK 0 TCPACK=1
TCP20 FINSYNRSTPSHACKURG 0 8 16 24 31 PSH (PuSH) TCP PSH = 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 (FINis) FIN 1
TCP20 FINSYNRSTPSHACKURG 0 8 16 24 31 2
TCP20 FINSYNRSTPSHACKURG 0 8 16 24 31 2 TCP 12
TCP20 FINSYNRSTPSHACKURG 0 8 16 24 31 16
TCP20 FINSYNRSTPSHACKURG 0 8 16 24 31 TCP MSSMSS TCP MSS MSS (Maximum Segment Size) TCP TCP TCP
3 STCP (16 + S) S 10 4 4 5.6.3
TCP20 FINSYNRSTPSHACKURG 0 8 16 24 31 4
5.6 TCP 5.6.1 A = 2026272829303132333435363738394041424344454647484950515253545556B B 2031A TCP
A 26272829303132333435363738394041424344454647484950515253545556P1P2P3B 26272829303132333435363738394041424344454647484950515253545556A 11 P3 P1 = A P2 P1 = P3 P2 =
A 26272829303132333435363738394041424344454647484950515253545556P1P2P3B 26272829303132333435363738394041424344454647484950515253545556A
A 26272829303132333435363738394041424344454647484950515253545556P1P2P3A
TCP
TCP
TCP TCP
A B TCP TCP
5.6.2 TCP TCP
TCP RTT RTTS RTT RTTS RTT RTT RTTS RTTS (1 ) ( RTTS) ( RTT ) (5-4)0 1 RTT 1 RTT RFC 2988 1/8 0.125
RTO (RetransmissionTime-Out) RTO RTTSRFC 2988 RTO RTO RTTS + 4 RTTD (5-5)RTTD RTT RFC 2988 RTTDRTTD RTT RTTD RTTD = (1 ) (RTTD) + RTTS RTT (5-6) 1 1/4 0.25
RTT? TCP 1 2 ACK 1 2 TCP TCP ACK12 RTT?
Karn RTT RTTS RTO
RTO RTO ( RTO) 2 RTT RTO Karn
P2215-235-29
5.6.3 SACK(Selective ACK)
1 1000 1501 3000 3501 4500 = 1001L1 = 1501L2 = 3501R1 = 3001R1 = 4501 L1 = 1501 R1 = 3001 1 L2 = 3501 R2 = 4501
RFC 2018 TCP TCP SACK TCP SACK 40 4 4
5.7 TCP 5.7.1 (flow control) TCP
seq = 1, DATAseq = 201, DATAseq = 401, DATAseq = 301, DATAseq = 101, DATAseq = 201, DATAseq = 501, DATAACK = 1, ack = 201, rwnd = 300ACK = 1, ack = 601, rwnd = 0ACK = 1, ack = 501, rwnd = 100AB A 201 500 300 A 101 200 200 A 301 400 100 A 1 100 300 A 401 500A A 501 600 100 A 501 600 A 600 A B B A rwnd = 400
(persistence timer)TCP TCP 1
5.7.2 TCP : TCP MSS MSS TCP TCP (push) MSS
5.8 TCP5.8.1 (congestion) > (5-7)
0
5.8.2 1. cwnd (congestion window)
cwnd = 1 MSS 1 MSS cwnd
M1 M1 M2~M3 M2~M3 M4~M7 M4~M7 cwnd = 1 cwnd = 2 cwnd = 4 M8~M15cwnd = 8 tt cwnd 1 1 2 3
(transmission round) cwnd RTT cwnd cwnd = 4 RTT 4 4
ssthresh ssthresh cwnd < ssthresh cwnd > ssthresh cwnd = ssthresh cwnd RTT cwnd 1 cwnd
ssthresh 2 cwnd 1
2216 TCP 1 16 ssthresh = 1624681012141618200048122024 cwnd ssthresh ssthresh
cwnd rwnd 221624681012141618200048122024 cwnd ssthresh ssthresh
cwnd 1 M0 221624681012141618200048122024 cwnd ssthresh ssthresh
cwnd 1 M1 M2 221624681012141618200048122024 cwnd ssthresh ssthresh
cwnd 1 cwnd 2 4 4 221624681012141618200048122024 cwnd ssthresh ssthresh
1 cwnd 221624681012141618200048122024 cwnd ssthresh ssthresh
cwnd ssthresh cwnd = 16 221624681012141618200048122024 cwnd ssthresh ssthresh
221624681012141618200048122024 cwnd ssthresh ssthresh 24
221624681012141618200048122024 cwnd ssthresh ssthresh ssthresh 12 24 1
221624681012141618200048122024 cwnd ssthresh ssthresh cwnd = 12 MSS
(multiplicative decrease) ssthresh 0.5ssthresh
(additive increase) cwnd MSS
2.
M1 M1t M2 M2 M3 M4 M5 M6 M2 M2 M2 t M7
(1) ssthresh (2) cwnd 1 ssthresh
24 2468101214161820220048121620 cwnd 3 TCP RenoTCP Tahoe (ssthresh ssthresh
rwnd cwnd Min [rwnd, cwnd] (5-8) rwnd < cwnd cwnd < rwnd
5.8.3 RED (Random Early Detection) THmin THmaxRED LAV THmin THmax THmin THmax p
RED THmin THmin Lav p
p THmin Thmax THmin THmax Lav p1.00pmax LAV Thmin p = 0 LAV Thmax p = 1 THmin LAV THmax 0 p 1 0 pmax
REDTHminTCP
5-9 TCP 1.
TCP (client)(server)
TCP CLOSEDCLOSEDAB5.9.1 TCP A TCP B SYN = 1 seq = x x
TCP CLOSEDCLOSEDAB5.9.1 TCP B TCP B SYN = 1 ACK = 1 ack = x 1 seq = y
CLOSEDCLOSEDAB A B ACK = 1 ack = y 1 A TCP
CLOSEDCLOSEDAB B TCP A TCP
TCP CLOSEDCLOSEDAB5.9.1 TCP
CLOSEDESTAB-LISHEDESTAB-LISHEDABCLOSED5.9.2 TCP A TCP TCP A FIN = 1 seq = u B
ESTAB-LISHEDESTAB-LISHEDAB5.9.2 TCP B ack = u 1 seq = v TCP A B TCP B A
ESTAB-LISHEDESTAB-LISHEDAB5.9.2 TCP B A TCP
ESTAB-LISHEDESTAB-LISHEDAB5.9.2 TCP A
ESTAB-LISHEDESTAB-LISHEDAB5.9.2 TCP ACK = 1 ack w 1 seq = u + 1 ACK = 1, seq = u + 1, ack = w 1
ACK = 1, seq = u + 1, ack = w 1FIN = 1, ACK = 1, seq = w, ack= u 1FIN-WAIT-1CLOSE-WAITFIN-WAIT-2LAST-ACKESTAB-LISHEDESTAB-LISHEDABCLOSED5.9.2 TCP TCP 2MSL
A 2MSL A ACK B A ACK 2MSL
TCP
27510
P2225-395-41
5.9.3 TCP TCP TCP TCP TCP
TCP CLOSEDESTABLISHEDLISTENCLOSE_WAITFIN_WAIT_1SYN_RCVDFIN_WAIT_2CLOSINGTIME_WAITSYN_SENTLAST_ACK SYN SYN SYN, ACK ACK FIN FIN FIN RST SYN SYN, ACK ACK SYN, ACK ACK ACK ACK FIN ACK FIN, ACK ACK FIN ACK FIN ACK SYN
***************************************************************************************************************