Click here to load reader

计算机网络(第 5 版)

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

    ***************************************************************************************************************