* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download lecture - CUNY.edu
Survey
Document related concepts
Transcript
outline TCP segment structure reliable data transfer flow control congestion control Transport Layer 3-1 TCP Flow Control receive side of TCP connection has a receive buffer: (currently) TCP data application IP unused buffer (in buffer) process datagrams space flow control sender won’t overflow receiver’s buffer by transmitting too much, too fast speed-matching service: matching send rate to receiving application’s drain rate app process may be slow at reading from buffer Transport Layer 3-2 TCP Flow control: how it works (currently) TCP data application IP unused buffer (in buffer) process datagrams space rwnd RcvBuffer (suppose TCP receiver discards out-of-order segments) unused buffer space: receiver: advertises unused buffer space by including rwnd value in segment header sender: limits # of unACKed bytes to rwnd guarantees receiver’s buffer doesn’t overflow = rwnd = RcvBuffer-[LastByteRcvd LastByteRead] Transport Layer 3-3 Next: Principles of Congestion Control Transport Layer 3-4 Principles of Congestion Control Congestion: informally: “too many sources sending too much data too fast for network to handle” different from flow control! manifestations: lost packets (buffer overflow at routers) long delays (queuing in router buffers) Transport Layer 3-5 Causes/costs of congestion Q: what happens as number of senders increase? four senders multihop paths Loss/timeout/retransmit Host A lin : original data lout l'in : original data, plus retransmitted data finite shared output link buffers Host B Transport Layer 3-6 TCP congestion control: cwnd goal: TCP sender should transmit as fast as possible, but without congesting network Q: how to find rate just below congestion level each TCP sender sets its own rate, called congestion window (cwnd) based on implicit feedback: ACK: segment received (a good thing!), network not congested so increase sending rate lost segment: assume loss due to congested network, so decrease sending rate Transport Layer 3-7 TCP Slow Start Host B RTT Host A time Transport Layer 3-8 TCP: congestion avoidance Increasing sending rate: How far would the doubling of cwnd go? Till, it reaches a threshold After that it increases linearly What if a loss happens? Decrease sending rate Set the threshold value to half of current cwnd loss: decrease cwnd to 1 and start the slowstart again Transport Layer 3-9 cwnd window size (in segments) Popular “flavors” of TCP TCP Reno ssthresh ssthresh TCP Tahoe Transmission round Transport Layer 3-10 Summary: TCP Congestion Control when cwnd < ssthresh, sender in slow-start phase, window grows exponentially. when cwnd >= ssthresh, sender is in congestion- avoidance phase, window grows linearly. when loss/timeout occurs, ssthresh set to cwnd/2, cwnd set to 1 Transport Layer 3-11 UDP multimedia apps often do not use TCP do not want rate throttled by congestion control instead use UDP: pump audio/video at constant rate, tolerate packet loss Transport Layer 3-12 UDP: User Datagram Protocol [RFC 768] “no frills,” “bare bones” Internet transport protocol “best effort” service, UDP segments may be: lost delivered out of order to app connectionless: no handshaking between UDP sender, receiver each UDP segment handled independently of others Why is there a UDP? no connection establishment (which can add delay) simple: no connection state at sender, receiver small segment header no congestion control: UDP can blast away as fast as desired Transport Layer 3-13 UDP: more often used for streaming multimedia apps loss tolerant rate sensitive Length, in bytes of UDP segment, including header other UDP uses DNS SNMP reliable transfer over UDP: add reliability at application layer application-specific error recovery! 32 bits source port # dest port # length checksum Application data (message) UDP segment format Transport Layer 3-14