Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Outline  The Transport Layer  The TCP Protocol (RFC 793, 1122, 1323,...)  TCP Characteristics  TCP Connection setup  TCP Segments  TCP Sequence.

Similar presentations


Presentation on theme: "1 Outline  The Transport Layer  The TCP Protocol (RFC 793, 1122, 1323,...)  TCP Characteristics  TCP Connection setup  TCP Segments  TCP Sequence."— Presentation transcript:

1 1 Outline  The Transport Layer  The TCP Protocol (RFC 793, 1122, 1323,...)  TCP Characteristics  TCP Connection setup  TCP Segments  TCP Sequence Numbers  TCP Sliding Window  Timeouts and Retransmission  (Congestion Control and Avoidance)  The UDP Protocol (RFC 768)

2 2 Well known port numbers 0-1023 is managed by IANA, e.g.:

3 3 Review of the transport layer NickDave Leland.Stanford.edu Athena.MIT.edu Network Layer Link Layer Application Layer Transport Layer O.S. HeaderDataHeaderData HD HD HD HDHD HD

4 4 Layering: The OSI Model Session Network Link Physical Application Presentation Transport Network Link Network Transport Session Presentation Application Network Link Physical Peer-layer communication layer-to-layer communication Router 1 2 3 4 5 6 7 1 2 3 4 5 6 7

5 5 Layering: Our FTP Example Network Link Transport Application Presentation Session Transport Network Link Physical The 7-layer OSI Model The 4-layer Internet model Application FTP ASCII/Binary IP TCP Ethernet or HDLC +V.35

6 6 UDP, TCP, SCTP

7 7 TCP Characteristics  TCP is connection-oriented.  3-way handshake used for connection setup/teardown.  TCP provides a stream-of-bytes service.  TCP is reliable:  Acknowledgements indicate delivery of data.  Checksums are used to detect corrupted data.  Sequence numbers detect missing, or mis-sequenced data.  Corrupted data is retransmitted after a timeout.  Mis-sequenced data is re-sequenced.  (Window-based) Flow control prevents over-run of receiver.  TCP uses congestion control to share network capacity among users.

8 8 TCP is connection-oriented Connection Setup 3-way handshake (Active) Client (Passive) Server Syn Syn + Ack Ack Connection Close/Teardown 2 x 2-way handshake (Active) Client (Passive) Server Fin (Data +) Ack Fin Ack (Data)

9 9 TCP supports a “stream of bytes” service Byte 0Byte 1 Byte 2Byte 3 Byte 0Byte 1Byte 2Byte 3 Host A Host B Byte 80

10 10 …which is emulated using TCP “segments” Byte 0Byte 1 Byte 2Byte 3 Byte 0Byte 1Byte 2Byte 3 Host A Host B Byte 80 TCP Data Byte 80 Segment sent when: 1.Segment full (MSS bytes), 2.Not full, but times out, or 3.“Pushed” by application.

11 11 TCP segment format

12 12 Pseudo header used in checksum  IP header

13 13 The TCP Segment Format IP Hdr IP Data TCP HdrTCP Data Src portDst port Sequence # Ack Sequence # HLEN 4 RSVD 6 URGACK PSH RSTSYNFIN Flags Window Size ChecksumUrg Pointer (TCP Options) 01531 TCP Data TCP Header and Data + IP Addresses Src/dst port numbers and IP addresses uniquely identify socket

14 14 TCP segment structure source port # dest. port # 32 bits application data (variable length) sequence number acknowledgement number rcvr window size ptr urgent data checksum F SR PAU head len not used Options (variable length) URG: urgent data (generally not used) ACK: ACK # valid PSH: push data now (generally not used) RST, SYN, FIN: connection established (setup, tear down commands) # bytes rcvr willing to accept counting by bytes of data (not segments!) Internet checksum (as in UDP) typically: maximum TCP payload (default is 536bytes); window scale, selective repeat

15 15 Sequence Numbers Host A Host B TCP Data TCP HDR TCP HDR ISN (initial sequence number) Sequence number = 1 st byte Ack sequence number = next expected byte

16 16 Initial Sequence Numbers Connection Setup 3-way handshake (Active) Client (Passive) Server Syn +ISN A Syn + Ack +ISN B Ack

17 17 Host AHost B SYN, Seq_no = x SYN, Seq_no = y, ACK, Ack_no = x+1 Seq_no = x+1, ACK, Ack_no = y+1 3-way Handshake for connection establishment

18 18 Host A (Client) Host B (Server) SYN, Seq_no = x SYN, Seq_no = y, ACK, Ack_no = x+1 Seq_no = x+1, ACK, Ack_no = y+1 socket bind listen accept (blocks) socket connect (blocks) connect returns accept returns read (blocks) write read (blocks) read returns write read (blocks) read returns request message reply message TCP application example

19 19 Host AHost B Seq_no = 2000, Ack_no = 1, Win = 1024, Data = 2000-3023 Seq_no = 1, Ack_no = 4048, Win = 512, Data = 1-128 Seq_no = 3024, Ack_no = 1, Win = 1024, Data = 3024-4047 Seq_no = 4048, Ack_no = 129, Win = 1024, Data = 4048-4559 t1t1 t2t2 t3t3 t4t4 Seq_no = 1, Ack_no = 2000, Win = 2048, No Data t0t0 TCP Window control

20 20 FIN, seq = 5086 ACK = 5087 Data, seq. = 303, ACK = 5087 Deliver 150 bytes FIN, seq. =453, ACK = 5087 ACK = 454 Host A Host B ACK = 453 Connection Termination

21 21 TCP states

22 22 TCP finite state machine

23 23 Flow control problems

24 24 TCP window management

25 25 TCP flow control Window based Sender cannot send more data than a window without acknowledgements. Window is a minimum of receiver’s buffer and ‘congestion window’. After a window of data is transmitted, in steady state, acks control sending rate.

26 26 TCP Flow control Congestion window is increased gradually At the beginning, set cwnd = 1 (TCP segm) At the beginning, set treshold = 64K For each ack, double the cwnd until a threshold (slow start) Increase by 1 for a window of acks after that (additive increase)

27 27 Slow Start

28 28 Additive Increase

29 29 Basic Control Model Reduce speed when congestion is perceived –How is congestion signaled? Either mark or drop packets –How much to reduce? Increase speed otherwise –Probe for available bandwidth – how?

30 30 Phase Plots Simple way to visualize behavior of competing connections over time User 1’s Allocation x 1 User 2’s Allocation x 2

31 31 Phase Plots What are desirable properties? What if flows are not equal? Efficiency Line Fairness Line User 1’s Allocation x 1 User 2’s Allocation x 2 Optimal point Overload Underutilization

32 32 Additive Increase/Decrease T0T0 T1T1 Efficiency Line Fairness Line User 1’s Allocation x 1 User 2’s Allocation x 2 Both X 1 and X 2 increase/ decrease by the same amount over time –Additive increase improves fairness and additive decrease reduces fairness

33 33 Muliplicative Increase/Decrease Both X 1 and X 2 increase by the same factor over time –Extension from origin – constant fairness T0T0 T1T1 Efficiency Line Fairness Line User 1’s Allocation x 1 User 2’s Allocation x 2

34 34 What is the Right Choice? Constraints limit us to AIMD –Can have multiplicative term in increase –AIMD moves towards optimal point x0x0 x1x1 x2x2 Efficiency Line Fairness Line User 1’s Allocation x 1 User 2’s Allocation x 2

35 35 TCP Congestion Avoidance /* slowstart is over */ /* Congwin > threshold */ Until (loss event) { every w segments ACKed: Congwin++ } threshold = Congwin/2 Congwin = 1 perform slowstart Congestion avoidance 1

36 36 TCP Congestion Control When TCP sender sees loss in the network, TCP window is reduced (sending rate slowed) In fact, TCP cuts the window size in half whenever a loss occurs and then slowly builds it back up

37 37 TCP Window Dynamics

38 38 TCP Sliding Window Window Size Outstanding Un-ack’d data Data OK to send Data not OK to send yet Data ACK’d  Retransmission policy is “Go Back N”.  Current window size is “advertised” by receiver (usually 4k – 8k Bytes when connection set-up).

39 39 TCP Sliding Window Host A Host B ACK Window Size Round-trip time (1) RTT > Window size ACK Window Size Round-trip time (2) RTT = Window size ACK Window Size ???

40 40 TCP: Retransmission and Timeouts Host A Host B ACK Round-trip time (RTT) ACK Retransmission TimeOut (RTO) Estimated RTT Data1Data2 Guard Band TCP uses an adaptive retransmission timeout value: Congestion Changes in Routing RTT changes frequently

41 41 RTT probability density small network large network

42 42 TCP Timeout Q: how to set TCP timeout value? too short: premature timeout –unnecessary retransmissions too long: slow reaction to segment loss even worse: RTT fluctuates Q: how to estimate RTT? SampleRTT : measured time from segment transmission until ACK receipt –ignore retransmissions, cumulatively ACKed segments SampleRTT will vary, want a “smoother” estimated RTT –use several recent measurements, not just current SampleRTT Using the average of SampleRTT will generate many timeouts due to network variations –consider variance as well RTT freq.

43 43 TCP: Retransmission and Timeouts Picking the RTO is important:  Pick a values that’s too big and it will wait too long to retransmit a packet,  Pick a value too small, and it will unnecessarily retransmit packets. The original algorithm for picking RTO: 1. EstimatedRTT =  EstimatedRTT + (1 -  ) SampleRTT 2. RTO = 2 * EstimatedRTT Characteristics of the original algorithm:  Variance is assumed to be fixed.  But in practice, variance increases as congestion increases.

44 44 TCP: Retransmission and Timeouts Newer Algorithm includes estimate of variance in RTT:  Difference = SampleRTT - EstimatedRTT  EstimatedRTT = EstimatedRTT + (  *Difference)  Deviation = Deviation +  *( |Difference| - Deviation )  RTO =  * EstimatedRTT +  * Deviation   1   4

45 45 TCP Timeout: Initial Timeout EstimatedRTT = (1-x)*EstimatedRTT + x*SampleRTT exponential weighted moving average influence of given sample decreases exponentially fast typical value of x: 0.125 Estimate the variance of RTT Timeout = EstimatedRTT + 4*Deviation Deviation = (1-x)*Deviation + x*|SampleRTT-EstimatedRTT| Estimate the average of RTT Set initial timeout value

46 46 An Example of Initial Timeout timeout value per packet round-trip time

47 47 TCP: Retransmission and Timeouts Karn’s Algorithm Retransmission Wrong RTT Sample Host AHost B Retransmission Wrong RTT Sample Host AHost B Problem: How can we estimate RTT when packets are retransmitted? Solution: On retransmission, don’t update estimated RTT (and double RTO).

48 48 TL: TCP flow control enhancements Solutions to silly window syndrome –Problem: sender sends in large blocks, but receiving application reads data 1 byte at the time Clark (1982) –receiver avoidance –prevent receiver from advertising small windows –increase advertised receiver window by min(MSS, RecvBuffer/2)

49 49 TL: TCP flow control enhancements Nagle’s algorithm (1984) –sender avoidance –prevent sender from unnecessarily sending small packets –http://www.rfc-editor.org/rfc/rfc896.txthttp://www.rfc-editor.org/rfc/rfc896.txt “Inhibit the sending of new TCP segments when new outgoing data arrives from the user if any previously transmitted data on the connection remains unacknowledged” Allow only one outstanding small (not full sized) segment that has not yet been acknowledged Works for idle connections (no deadlock) Works for telnet (send one-byte packets immediately) Works for bulk data transfer (delay sending)

50 50 TCP MSS Earlier –576 bytes for non-local destinations (other network) –1460 bytes for local destinations (same network) Now –1460 butes and DF bit in IP header set –ICMP message “fragmentation required, but not permitted” triggers reduction of MSS Workaround now –Restet DF bit to “0”

51 51 User Datagram Protocol (UDP) Characteristics  UDP is a connectionless datagram service.  There is no connection establishment: packets may show up at any time.  UDP packets are self-contained.  UDP is unreliable:  No acknowledgements to indicate delivery of data.  Checksums cover the header, and only optionally cover the data.  Contains no mechanism to detect missing or mis-sequenced packets.  No mechanism for automatic retransmission.  No mechanism for flow control, and so can over-run the receiver.

52 52 User-Datagram Protocol (UDP) App A1A1 A2A2 B1B1 B2B2 UDP OS IP Like TCP, UDP uses port number to demultiplex packets

53 53 UDP header  UDP Checksum is optional (all-0 permitted)

54 54 User-Datagram Protocol (UDP)  Why do we have UDP?  It is used by applications that don’t need reliable delivery, or  Applications that have their own special needs, such as streaming of real-time audio/video  Connection-less: no time needed to set up connection, each packet (datagram) is independent

55 55 Stream Control Transmission Protocol SCTP

56 56 SCTP open and close

57 57 Multiple interfaces

58 58 Stream v.s. Message based


Download ppt "1 Outline  The Transport Layer  The TCP Protocol (RFC 793, 1122, 1323,...)  TCP Characteristics  TCP Connection setup  TCP Segments  TCP Sequence."

Similar presentations


Ads by Google