DOC PREVIEW
CMU CS 15441 - More TCP & Congestion Control

This preview shows page 1-2-3 out of 8 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 8 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 8 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 8 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 8 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

115-441 Computer NetworkingLecture 18 – More TCP & Congestion Control10-31-2006Lecture 18: TCP Details 2Good Ideas So Far…• Flow control• Stop & wait• Parallel stop & wait• Sliding window (e.g., advertised windows)• Loss recovery• Timeouts• Acknowledgement-driven recovery (selective repeat or cumulative acknowledgement)• Congestion control• AIMD Æ fairness and efficiency• How does TCP actually implement these?10-31-2006Lecture 18: TCP Details 3Outline• THE SPOOKY PARTS of TCP• If it doesn’t scare you now… it will on the Final!• TCP connection setup/data transfer• The Candy-exchange Protocol (TCP)• TCP reliability • How to recover your DEAD packets• TCP congestion avoidance• Avoiding the death-traps of overloaded routers10-31-2006Lecture 18: TCP Details 4Sequence Number Space• Each byte in byte stream is numbered.• 32 bit value• Wraps around• Initial values selected at start up time• TCP breaks up the byte stream into packets.• Packet size is limited to the Maximum Segment Size• Each packet has a sequence number.• Indicates where it fits in the byte streampacket 8 packet 9 packet 1013450 14950 16050 17550210-31-2006Lecture 18: TCP Details 5Establishing Connection:Three-Way handshake• Each side notifies other of starting sequence number it will use for sending• Why not simply chose 0?• Must avoid overlap with earlier incarnation• Security issues• Each side acknowledges other’s sequence number• SYN-ACK: Acknowledge sequence number + 1• Can combine second SYN with first ACKSYN: SeqCACK: SeqC+1SYN: SeqSACK: SeqS+1Client Server10-31-2006Lecture 18: TCP Details 6TCP Connection Setup Example• Client SYN• SeqC: Seq. #4019802004, window 65535, max. seg. 1260• Server SYN-ACK+SYN• Receive: #4019802005 (= SeqC+1)• SeqS: Seq. #3428951569, window 5840, max. seg. 1460• Client SYN-ACK• Receive: #3428951570 (= SeqS+1)09:23:33.042318 IP 128.2.222.198.3123 > 192.216.219.96.80: S 4019802004:4019802004(0) win 65535 <mss 1260,nop,nop,sackOK> (DF)09:23:33.118329 IP 192.216.219.96.80 > 128.2.222.198.3123: S 3428951569:3428951569(0) ack 4019802005 win 5840 <mss 1460,nop,nop,sackOK> (DF)09:23:33.118405 IP 128.2.222.198.3123 > 192.216.219.96.80: . ack3428951570 win 65535 (DF)10-31-2006Lecture 18: TCP Details 7TCP State Diagram: Connection SetupCLOSEDSYNSENTSYNRCVDESTABLISTENactive OPENcreate TCBSnd SYN create TCBpassive OPENdelete TCBCLOSEdelete TCBCLOSEsnd SYNSENDsnd SYN ACKrcv SYNSend FINCLOSErcv ACK of SYNSnd ACKRcv SYN, ACKrcv SYNsnd ACKClientServer10-31-2006Lecture 18: TCP Details 8Tearing Down Connection• Either side can initiate tear down• Send FIN signal• “I’m not going to send any more data”• Other side can continue sending data• Half open connection• Must continue to acknowledge• Acknowledging FIN• Acknowledge last sequence number + 1ABFIN, SeqAACK, SeqA+1ACKDataACK, SeqB+1FIN, SeqB310-31-2006Lecture 18: TCP Details 9TCP Connection Teardown Example• Session• Echo client on 128.2.222.198, server on 128.2.210.194• Client FIN• SeqC: 1489294581• Server ACK + FIN• Ack: 1489294582 (= SeqC+1)• SeqS: 1909787689• Client ACK• Ack: 1909787690 (= SeqS+1)09:54:17.585396 IP 128.2.222.198.4474 > 128.2.210.194.6616: F 1489294581:1489294581(0) ack 1909787689 win 65434 (DF)09:54:17.585732 IP 128.2.210.194.6616 > 128.2.222.198.4474: F 1909787689:1909787689(0) ack 1489294582 win 5840 (DF)09:54:17.585764 IP 128.2.222.198.4474 > 128.2.210.194.6616: . ack1909787690 win 65434 (DF)10-31-2006Lecture 18: TCP Details 10State Diagram: Connection Tear-downCLOSINGCLOSEWAITFINWAIT-1ESTABTIME WAITsnd FINCLOSEsend FINCLOSErcv ACK of FINLAST-ACKCLOSEDFIN WAIT-2snd ACKrcv FINdelete TCBTimeout=2mslsend FINCLOSEsend ACKrcv FINsnd ACKrcv FINrcv ACK of FINsnd ACKrcv FIN+ACKACKActive ClosePassive Close10-31-2006Lecture 18: TCP Details 11Outline• TCP connection setup/data transfer• TCP reliability10-31-2006Lecture 18: TCP Details 12Reliability Challenges• Congestion related losses• Variable packet delays• What should the timeout be?• Reordering of packets• How to tell the difference between a delayed packet and a lost one?410-31-2006Lecture 18: TCP Details 13TCP = Go-Back-N Variant• Sliding window with cumulative acks• Receiver can only return a single “ack” sequence number to the sender.• Acknowledges all bytes with a lower sequence number• Starting point for retransmission• Duplicate acks sent when out-of-order packet received • But: sender only retransmits a single packet.• Reason???• Only one that it knows is lost• Network is congested Æ shouldn’t overload it• Error control is based on byte sequences, not packets.• Retransmitted packet can be different from the original lost packet –Why?10-31-2006Lecture 18: TCP Details 14Round-trip Time Estimation• Wait at least one RTT before retransmitting• Importance of accurate RTT estimators:• Low RTT estimate• unneeded retransmissions• High RTT estimate• poor throughput• RTT estimator must adapt to change in RTT• But not too fast, or too slow!• Spurious timeouts• “Conservation of packets” principle – never more than a window worth of packets in flight10-31-2006Lecture 18: TCP Details 15Original TCP Round-trip Estimator• Round trip times exponentially averaged:• New RTT = α (old RTT) + (1 - α) (new sample)• Recommended value for α: 0.8 - 0.9• 0.875 for most TCP’s00.511.522.5• Retransmit timer set to (b * RTT), where b = 2• Every time timer expires, RTO exponentially backed-off• Not good at preventing spurious timeouts• Why?10-31-2006Lecture 18: TCP Details 16RTT Sample Ambiguity• Karn’s RTT Estimator• If a segment has been retransmitted:• Don’t count RTT sample on ACKs for this segment• Keep backed off time-out for next packet• Reuse RTT estimate only after one successful transmissionABACKSampleRTTOriginal transmissionretransmissionRTOABOriginal transmissionretransmissionSampleRTTACKRTOX510-31-2006Lecture 18: TCP Details 17Jacobson’s Retransmission Timeout• Key observation:• At high loads round trip variance is high• Solution:• Base RTO on RTT and standard deviation• RTO = RTT + 4 * rttvar• new_rttvar = β * dev + (1- β) old_rttvar• Dev = linear deviation • Inappropriately named – actually smoothed linear deviation10-31-2006Lecture 18: TCP Details 18Timestamp Extension• Used to improve timeout mechanism by more accurate measurement of


View Full Document

CMU CS 15441 - More TCP & Congestion Control

Documents in this Course
lecture

lecture

34 pages

lecture

lecture

38 pages

lecture

lecture

18 pages

lecture

lecture

28 pages

lecture

lecture

11 pages

Lecture

Lecture

64 pages

lecture

lecture

10 pages

lecture

lecture

19 pages

Lecture 6

Lecture 6

43 pages

Exam

Exam

14 pages

lecture

lecture

38 pages

Debugging

Debugging

23 pages

lecture

lecture

60 pages

review

review

27 pages

lecture

lecture

12 pages

The Web

The Web

28 pages

Lecture

Lecture

40 pages

lecture

lecture

42 pages

lecture

lecture

9 pages

lecture

lecture

10 pages

lecture

lecture

49 pages

lecture

lecture

26 pages

Project

Project

5 pages

lecture

lecture

40 pages

lecture

lecture

9 pages

lecture

lecture

41 pages

lecture

lecture

32 pages

lecture

lecture

36 pages

lecture

lecture

34 pages

lecture

lecture

45 pages

lecture

lecture

26 pages

lecture

lecture

6 pages

lecture

lecture

51 pages

Project

Project

16 pages

lecture

lecture

44 pages

lecture

lecture

13 pages

lecture

lecture

42 pages

lecture

lecture

36 pages

Project

Project

13 pages

Project

Project

33 pages

lecture

lecture

43 pages

lecture

lecture

49 pages

Load more
Download More TCP & Congestion Control
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view More TCP & Congestion Control and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view More TCP & Congestion Control 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?