DOC PREVIEW
Stanford CS 144 - Reliable Transport

This preview shows page 1-2-3-24-25-26 out of 26 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 26 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 26 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 26 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 26 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 26 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 26 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 26 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Slide 1AnnouncementsLab 1 OverviewClient-Server File TransferPeer to Peer File TransferSeedingExponential GrowthExponential GrowthExponential GrowthPeak TransferLayering ReviewTCP OverviewTCP SegmentsSequence NumbersThree-Way HandshakeShutdownSlide 17ExamplePractice QuestionsQuestion:Answer:Question:Answer:Question:Answer:Extra Practice:Reliable TransportTCP ReviewCS144 Review Session 1October 2, 2008Roger LiaoSlides Credit: Ben NhamAnnouncements•Labs 1 and 2 are online•Lab 1 due 10/8 @ beginning of class•Come to lecture  free extension to midnight•Contact us before the deadline if you need an additional extension. Tell us:–Where you are–How much more time you needLab 1 Overview•Stop and wait•One connection only•Connect on same machine or different machines (myth)•Specify correct ports (>= 1024)•Quick Lab 1 Demo!Client-Server File Transfer•Suppose Blizzard wants to distribute a patch for WoW–Patch size is 450 MB = 3600 Mbits–Need to distribute patch to 5 million players over 5 hours–How many 100 MBps servers are needed?•3600 Mbits * 5 million / 5 hours = 1*1012 bps•1*1012 bps / 100 Mbps = 10000 serversPeer to Peer File Transfer•Use one 100 Mbps server, and suppose each client has a 1Mbps full-duplex link•Split the patch into 450 chunks, 1MB each•Then:–Seed each chunk to one client each–Wait for every client to get at least one chunk–Wait for every client to acquire the other 449 chunksSeeding•Seed each chunk to one client each•450 * 1 MB / 100 Mbps = 1 min to seedServer100 MbpsExponential Growth•Wait for every client to get at least one chunk•We have 450 seed clients with 1 Mbps links–5 million clients / 450 seeds = 11112 clients/seed–This distribution takes place exponentially:•ceil(log2 11112) = 14 time steps•Each time step is 1 MB / 1 Mbps = 8 s•Total time: 14 * 8 s = 2 minutesA ABExponential Growth•Wait for every client to get at least one chunk•We have 450 seed clients with 1 Mbps links–5 million clients / 450 seeds = 11112 clients/seed–This distribution takes place exponentially:•ceil(log2 11112) = 14 time steps•Each time step is 1 MB / 1 Mbps = 8 s•Total time: 14 * 8 s = 2 minutesA ABCDABExponential Growth•Wait for every client to get at least one chunk•We have 450 seed clients with 1 Mbps links–5 million clients / 450 seeds = 11112 clients/seed–This distribution takes place exponentially:•ceil(log2 11112) = 14 time steps•Each time step is 1 MB / 1 Mbps = 8 s•Total time: 14 * 8 s = 2 minutesA ABCDABGHEFCDABPeak Transfer•Now each client has a single chunk•Everyone can utilize their full 1Mbps connection•For any client, takes 449 * 8s = 1 hour to download the rest of the chunks in the patch•Adding up:–Seeding takes 1 minute–Exponential growth until everyone has a chunk takes 2 min–Finishing transfer takes 1 hour–1 min + 2 min + 1 hour << 5 hours–1 server << 10000 serversLayering ReviewApplication Data↓ ↓Transport DataTCP/UDP Header↓ ↓Network DataTCP/UDP HeaderIP Header↓ ↓Link DataTCP/UDP HeaderIP HeaderEthernet HeaderTCP Overview•Network layer protocol•Properties–Full-duplex connection•Two-way communication between (IP, port)src and (IP, port)dst•Connection setup before any transfer•Connection teardown after transfer finishes•Each connection creates state in sending and receiving hosts–Reliable: resends lost/corrupted segments–In-order: buffers at sender and receiver–Stream of bytes: looks like a file you can R/W toURGACKPSHRSTSYNFINTCP Segments•Provide illusion of a stream of bytes, but we actually are going over a datagram network using packets (IP)•Data is carried in TCP segments and placed into an IP packetSrc port Dst portSequence #Ack Sequence #HLEN4RSVD6Window SizeChecksum Urg Pointer(TCP Options)TCP DataIP HdrIP DataTCPHdrTCP Data150 31Credit: CS244A Handout 8Sequence NumbersHost AHost BTCP DataTCP DataTCP HdrTCP HdrISN (initial sequence number)Seq number = First byte of segmentAck seq number = next expected byteCredit: CS244A Handout 8Three-Way Handshake•Exchange initial sequence numbers at connection startup–Client’s ISN = x–Server’s ISN = y•Send a special segment with SYN bit set (“synchronize”)•SYN takes up one “byte”SYNSEQ = xSYN/ACKSEQ = y, ACK = x+1ACK = y+1Client ServerShutdown•Either side can initiate shutdown•Can shutdown only one side of connection, if desired•TIME_WAIT state to handle case of whether last ACK was lostFINSEQ = vACKACK = v+1ACK = w+1FINSEQ = wExampleStartServer ListeningClient connectClient waits for ACK of connection requestServer waits for client ACK of connection requestClient and Server communicate. Ex: (GET req)Server closes connection after GET requestClient ACKs server FIN. It then sends FINClient receives ACK of its own FINServer receives client ACKServer receives client FIN and ACKs itServer receives client FIN and ACKs. It waits for ACK of its own FINPractice Questions•Review questions at end of each chapter•Midterm/final are conceptual•Practice problems at sectionQuestion:•Consider a new peer Alice that joins BitTorrent without possessing any chunks. Without any chunks, she cannot become a top-four uploader for any of the other peers, since she has nothing to upload. How then will Alice get her first chunk?Answer:•Every 30 seconds, BitTorrent peers randomly unchoke their peers and send data. •Eventually, Alice will be unchoked by a peer and will receive her first chunk, enabling her to trade with others.Question:•In BitTorrent, suppose Alice provides chunks to Bob throughout a 30-second interval. Will Bob necessarily return the favor and provide chunks to Alice in this same interval? Why or why not?Answer:•Not necessarily. •Bob only supplies data to his top four peers and a random fifth peer.•Suppose Alice does not supply data at a high enough rate to beat Bob’s top four peers. Then, Bob will not be satisfied with the trading and will not send data in return.Question:•Suppose Host A sends two TCP segments back to back to Host B over a TCP connection. The first segment has sequence number 90; the second has sequence number 110.•a. How much data is in the first segment?•b. Suppose that the first segment is lost but the second segment arrives at B. In the acknowledgement that Host B sends to Host A, what will be the acknowledgement number?Answer:•a. 20 bytes. Bytes 90-109 are in the first segment.•b. 90. TCP uses cumulative


View Full Document

Stanford CS 144 - Reliable Transport

Documents in this Course
IP Review

IP Review

22 pages

Load more
Download Reliable Transport
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 Reliable Transport 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 Reliable Transport 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?