15-441 computer networking lecture 16 – transport protocols copyright ©, 2007-10 carnegie mellon...
TRANSCRIPT
![Page 1: 15-441 Computer Networking Lecture 16 – Transport Protocols Copyright ©, 2007-10 Carnegie Mellon University](https://reader035.vdocuments.net/reader035/viewer/2022062805/5697bfc51a28abf838ca654b/html5/thumbnails/1.jpg)
15-441 Computer Networking
Lecture 16 – Transport Protocols
Copyright ©, 2007-10 Carnegie Mellon University
![Page 2: 15-441 Computer Networking Lecture 16 – Transport Protocols Copyright ©, 2007-10 Carnegie Mellon University](https://reader035.vdocuments.net/reader035/viewer/2022062805/5697bfc51a28abf838ca654b/html5/thumbnails/2.jpg)
2
Announcements
• Mid-semester grades• Based on (ckpt 1 & ckpt2) + midterm + HW1 + HW2
• NOTE: GRADES DO NOT REFLECT LATE PENALTIES!• 25.4% of class
• If you got a D+,D, or F must meet with Roger or me
• Worry but don’t panic• 74.6% of class grade remains!• Grading is likely a bit harsher than end-of-semester
• Project 1 grades – coming soon – lots of handin issues
![Page 3: 15-441 Computer Networking Lecture 16 – Transport Protocols Copyright ©, 2007-10 Carnegie Mellon University](https://reader035.vdocuments.net/reader035/viewer/2022062805/5697bfc51a28abf838ca654b/html5/thumbnails/3.jpg)
3
Midterm
• Avg: 62• Med: 67• STD: 13.5• Max: 79• Min: 28
![Page 4: 15-441 Computer Networking Lecture 16 – Transport Protocols Copyright ©, 2007-10 Carnegie Mellon University](https://reader035.vdocuments.net/reader035/viewer/2022062805/5697bfc51a28abf838ca654b/html5/thumbnails/4.jpg)
4
What was hard…
A B C D E
Perfect 15 24 9 14 17
Average 12.8 18.4 6.3 11 12.5
Crypto Bridging & Routing
![Page 5: 15-441 Computer Networking Lecture 16 – Transport Protocols Copyright ©, 2007-10 Carnegie Mellon University](https://reader035.vdocuments.net/reader035/viewer/2022062805/5697bfc51a28abf838ca654b/html5/thumbnails/5.jpg)
5
Feedback (positive)
Likes• 12 project• 8 recitations• 7 HW• 6 TA• 2 IRC• Slides • Jokes!
More• 2 lab/tool assignments• 2 examples
![Page 6: 15-441 Computer Networking Lecture 16 – Transport Protocols Copyright ©, 2007-10 Carnegie Mellon University](https://reader035.vdocuments.net/reader035/viewer/2022062805/5697bfc51a28abf838ca654b/html5/thumbnails/6.jpg)
6
Feedback (negative)
Project/HW• 10 release all at
start/clarity/changes• 2 Due date conflicts• Smaller HWs• HW clarity• Project open-ended• Recitations run over time
Lectures• 4 Integration with project/HW• 3 not enough detail/too much
material • Need less repetition• First HW date vs. lectures
Other• 2 Study guide for
exam/practice• 2 3-free points• more office hours• Use bboard more
![Page 7: 15-441 Computer Networking Lecture 16 – Transport Protocols Copyright ©, 2007-10 Carnegie Mellon University](https://reader035.vdocuments.net/reader035/viewer/2022062805/5697bfc51a28abf838ca654b/html5/thumbnails/7.jpg)
7
Outline
• Transport introduction
• Error recovery & flow control
![Page 8: 15-441 Computer Networking Lecture 16 – Transport Protocols Copyright ©, 2007-10 Carnegie Mellon University](https://reader035.vdocuments.net/reader035/viewer/2022062805/5697bfc51a28abf838ca654b/html5/thumbnails/8.jpg)
8
Transport Protocols
• Lowest level end-to-end protocol.• Header generated by
sender is interpreted only by the destination
• Routers view transport header as part of the payload
7
6
5
7
6
5
Transport
IP
Datalink
Physical
Transport
IP
Datalink
Physical
IP
router
2 2
1 1
![Page 9: 15-441 Computer Networking Lecture 16 – Transport Protocols Copyright ©, 2007-10 Carnegie Mellon University](https://reader035.vdocuments.net/reader035/viewer/2022062805/5697bfc51a28abf838ca654b/html5/thumbnails/9.jpg)
9
Functionality Split
• Network provides best-effort delivery• End-systems implement many functions
• Reliability• In-order delivery• Demultiplexing• Message boundaries• Connection abstraction• Congestion control• …
![Page 10: 15-441 Computer Networking Lecture 16 – Transport Protocols Copyright ©, 2007-10 Carnegie Mellon University](https://reader035.vdocuments.net/reader035/viewer/2022062805/5697bfc51a28abf838ca654b/html5/thumbnails/10.jpg)
10
Transport Protocols
• UDP provides just integrity and demux• TCP adds…
• Connection-oriented• Reliable• Ordered• Point-to-point• Byte-stream• Full duplex• Flow and congestion controlled
![Page 11: 15-441 Computer Networking Lecture 16 – Transport Protocols Copyright ©, 2007-10 Carnegie Mellon University](https://reader035.vdocuments.net/reader035/viewer/2022062805/5697bfc51a28abf838ca654b/html5/thumbnails/11.jpg)
11
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 header• No congestion control: UDP
can blast away as fast as desired
![Page 12: 15-441 Computer Networking Lecture 16 – Transport Protocols Copyright ©, 2007-10 Carnegie Mellon University](https://reader035.vdocuments.net/reader035/viewer/2022062805/5697bfc51a28abf838ca654b/html5/thumbnails/12.jpg)
12
UDP, cont.
• Often used for streaming multimedia apps• Loss tolerant• Rate sensitive
• Other UDP uses (why?):• DNS, SNMP
• Reliable transfer over UDP• Must be at
application layer• Application-specific
error recovery
Source port # Dest port #
32 bits
Applicationdata
(message)
UDP segment format
Length ChecksumLength, in
bytes of UDPsegment,includingheader
![Page 13: 15-441 Computer Networking Lecture 16 – Transport Protocols Copyright ©, 2007-10 Carnegie Mellon University](https://reader035.vdocuments.net/reader035/viewer/2022062805/5697bfc51a28abf838ca654b/html5/thumbnails/13.jpg)
13
UDP Checksum
Sender:• Treat segment contents as
sequence of 16-bit integers• Checksum: addition (1’s
complement sum) of segment contents (and parts of IP header)
• Sender puts checksum value into UDP checksum field
Receiver:• Compute checksum of
received segment• Check if computed checksum
equals checksum field value:• NO - error detected• YES - no error detected
But maybe errors nonethless?
Goal: detect “errors” (e.g., flipped bits) in transmitted segment – optional use!
![Page 14: 15-441 Computer Networking Lecture 16 – Transport Protocols Copyright ©, 2007-10 Carnegie Mellon University](https://reader035.vdocuments.net/reader035/viewer/2022062805/5697bfc51a28abf838ca654b/html5/thumbnails/14.jpg)
14
High-Level TCP Characteristics
• Protocol implemented entirely at the ends• Fate sharing
• Protocol has evolved over time and will continue to do so• Nearly impossible to change the header• Use options to add information to the header
• These do change sometimes
• Change processing at endpoints• Backward compatibility is what makes it TCP
![Page 15: 15-441 Computer Networking Lecture 16 – Transport Protocols Copyright ©, 2007-10 Carnegie Mellon University](https://reader035.vdocuments.net/reader035/viewer/2022062805/5697bfc51a28abf838ca654b/html5/thumbnails/15.jpg)
15
TCP Header
Source port Destination port
Sequence number
Acknowledgement
Advertised windowHdrLen Flags0
Checksum Urgent pointer
Options (variable)
Data
Flags: SYNFINRESETPUSHURGACK
![Page 16: 15-441 Computer Networking Lecture 16 – Transport Protocols Copyright ©, 2007-10 Carnegie Mellon University](https://reader035.vdocuments.net/reader035/viewer/2022062805/5697bfc51a28abf838ca654b/html5/thumbnails/16.jpg)
16
Evolution of TCP
1975 1980 1985 1990
1982TCP & IP
RFC 793 & 791
1974TCP described by
Vint Cerf and Bob KahnIn IEEE Trans Comm
1983BSD Unix 4.2
supports TCP/IP
1984Nagel’s algorithmto reduce overhead
of small packets;predicts congestion
collapse
1987Karn’s algorithmto better estimate
round-trip time
1986Congestion
collapseobserved
1988Van Jacobson’s
algorithmscongestion avoidance and congestion control(most implemented in
4.3BSD Tahoe)
19904.3BSD Renofast retransmitdelayed ACK’s
1975Three-way handshake
Raymond TomlinsonIn SIGCOMM 75
![Page 17: 15-441 Computer Networking Lecture 16 – Transport Protocols Copyright ©, 2007-10 Carnegie Mellon University](https://reader035.vdocuments.net/reader035/viewer/2022062805/5697bfc51a28abf838ca654b/html5/thumbnails/17.jpg)
17
TCP Through the 1990s
1993 1994 1996
1994ECN
(Floyd)Explicit
CongestionNotification
1993TCP Vegas
(Brakmo et al)delay-based
congestion avoidance
1994T/TCP
(Braden)Transaction
TCP
1996SACK TCP(Floyd et al)
Selective Acknowledgement
1996Hoe
NewReno startup and loss recovery
1996FACK TCP
(Mathis et al)extension to SACK
![Page 18: 15-441 Computer Networking Lecture 16 – Transport Protocols Copyright ©, 2007-10 Carnegie Mellon University](https://reader035.vdocuments.net/reader035/viewer/2022062805/5697bfc51a28abf838ca654b/html5/thumbnails/18.jpg)
18
Outline
• Transport introduction
• Error recovery & flow control
![Page 19: 15-441 Computer Networking Lecture 16 – Transport Protocols Copyright ©, 2007-10 Carnegie Mellon University](https://reader035.vdocuments.net/reader035/viewer/2022062805/5697bfc51a28abf838ca654b/html5/thumbnails/19.jpg)
19
Stop and Wait
Time
Packet
ACKTim
eo
ut
• ARQ• Receiver sends
acknowledgement (ACK) when it receives packet
• Sender waits for ACK and timeouts if it does not arrive within some time period
• Simplest ARQ protocol• Send a packet, stop and
wait until ACK arrives
Sender Receiver
![Page 20: 15-441 Computer Networking Lecture 16 – Transport Protocols Copyright ©, 2007-10 Carnegie Mellon University](https://reader035.vdocuments.net/reader035/viewer/2022062805/5697bfc51a28abf838ca654b/html5/thumbnails/20.jpg)
20
Recovering from Error
Packet
ACK
Tim
eo
ut
Packet
ACK
Tim
eo
ut
Packet
Tim
eo
ut
Packet
ACKT
ime
ou
t
Time
Packet
ACK
Tim
eo
ut
Packet
ACK
Tim
eo
ut
ACK lost Packet lost Early timeoutDUPLICATEPACKETS!!!
![Page 21: 15-441 Computer Networking Lecture 16 – Transport Protocols Copyright ©, 2007-10 Carnegie Mellon University](https://reader035.vdocuments.net/reader035/viewer/2022062805/5697bfc51a28abf838ca654b/html5/thumbnails/21.jpg)
21
• How to recognize a duplicate• Performance
• Can only send one packet per round trip
Problems with Stop and Wait
![Page 22: 15-441 Computer Networking Lecture 16 – Transport Protocols Copyright ©, 2007-10 Carnegie Mellon University](https://reader035.vdocuments.net/reader035/viewer/2022062805/5697bfc51a28abf838ca654b/html5/thumbnails/22.jpg)
22
How to Recognize Resends?
• Use sequence numbers• both packets and acks
• Sequence # in packet is finite How big should it be? • For stop and wait?
• One bit – won’t send seq #1 until received ACK for seq #0
Pkt 0
ACK 0
Pkt 0
ACK 1
Pkt 1ACK 0
![Page 23: 15-441 Computer Networking Lecture 16 – Transport Protocols Copyright ©, 2007-10 Carnegie Mellon University](https://reader035.vdocuments.net/reader035/viewer/2022062805/5697bfc51a28abf838ca654b/html5/thumbnails/23.jpg)
23
How to Keep the Pipe Full?
• Send multiple packets without waiting for first to be acked• Number of pkts in flight = window
• Reliable, unordered delivery• Several parallel stop & waits• Send new packet after each ack• Sender keeps list of unack’ed
packets; resends after timeout• Receiver same as stop & wait
• How large a window is needed?• Suppose 10Mbps link, 4ms delay,
500byte pkts• 1? 10? 20?
• Round trip delay * bandwidth = capacity of pipe
![Page 24: 15-441 Computer Networking Lecture 16 – Transport Protocols Copyright ©, 2007-10 Carnegie Mellon University](https://reader035.vdocuments.net/reader035/viewer/2022062805/5697bfc51a28abf838ca654b/html5/thumbnails/24.jpg)
24
Sliding Window
• Reliable, ordered delivery• Receiver has to hold onto a packet until all prior
packets have arrived• Why might this be difficult for just parallel stop & wait?• Sender must prevent buffer overflow at receiver
• Circular buffer at sender and receiver• Packets in transit buffer size • Advance when sender and receiver agree packets at
beginning have been received
![Page 25: 15-441 Computer Networking Lecture 16 – Transport Protocols Copyright ©, 2007-10 Carnegie Mellon University](https://reader035.vdocuments.net/reader035/viewer/2022062805/5697bfc51a28abf838ca654b/html5/thumbnails/25.jpg)
25
ReceiverSender
Sender/Receiver State
… …
Sent & Acked Sent Not Acked
OK to Send Not Usable
… …
Max acceptable
Receiver window
Max ACK received Next seqnum
Received & Acked Acceptable Packet
Not Usable
Sender window
Next expected
![Page 26: 15-441 Computer Networking Lecture 16 – Transport Protocols Copyright ©, 2007-10 Carnegie Mellon University](https://reader035.vdocuments.net/reader035/viewer/2022062805/5697bfc51a28abf838ca654b/html5/thumbnails/26.jpg)
26
Sequence Numbers
• How large do sequence numbers need to be?• Must be able to detect wrap-around• Depends on sender/receiver window size
• E.g.• Max seq = 7, send win=recv win=7• If pkts 0..6 are sent succesfully and all acks lost
• Receiver expects 7,0..5, sender retransmits old 0..6!!!
• Max sequence must be send window + recv window
![Page 27: 15-441 Computer Networking Lecture 16 – Transport Protocols Copyright ©, 2007-10 Carnegie Mellon University](https://reader035.vdocuments.net/reader035/viewer/2022062805/5697bfc51a28abf838ca654b/html5/thumbnails/27.jpg)
27
Window Sliding – Common Case
• On reception of new ACK (i.e. ACK for something that was not acked earlier)• Increase sequence of max ACK received• Send next packet
• On reception of new in-order data packet (next expected)• Hand packet to application• Send cumulative ACK – acknowledges reception of all packets up
to sequence number• Increase sequence of max acceptable packet
![Page 28: 15-441 Computer Networking Lecture 16 – Transport Protocols Copyright ©, 2007-10 Carnegie Mellon University](https://reader035.vdocuments.net/reader035/viewer/2022062805/5697bfc51a28abf838ca654b/html5/thumbnails/28.jpg)
28
Loss Recovery
• On reception of out-of-order packet• Send nothing (wait for source to timeout)• Cumulative ACK (helps source identify loss)
• Timeout (Go-Back-N recovery)• Set timer upon transmission of packet• Retransmit all unacknowledged packets
• Performance during loss recovery• No longer have an entire window in transit• Can have much more clever loss recovery
![Page 29: 15-441 Computer Networking Lecture 16 – Transport Protocols Copyright ©, 2007-10 Carnegie Mellon University](https://reader035.vdocuments.net/reader035/viewer/2022062805/5697bfc51a28abf838ca654b/html5/thumbnails/29.jpg)
29
Go-Back-N in Action
![Page 30: 15-441 Computer Networking Lecture 16 – Transport Protocols Copyright ©, 2007-10 Carnegie Mellon University](https://reader035.vdocuments.net/reader035/viewer/2022062805/5697bfc51a28abf838ca654b/html5/thumbnails/30.jpg)
30
Selective Repeat
• Receiver individually acknowledges all correctly received pkts• Buffers packets, as needed, for eventual in-order delivery
to upper layer
• Sender only resends packets for which ACK not received• Sender timer for each unACKed packet
• Sender window• N consecutive seq #’s• Again limits seq #s of sent, unACKed packets
![Page 31: 15-441 Computer Networking Lecture 16 – Transport Protocols Copyright ©, 2007-10 Carnegie Mellon University](https://reader035.vdocuments.net/reader035/viewer/2022062805/5697bfc51a28abf838ca654b/html5/thumbnails/31.jpg)
31
Selective Repeat: Sender, Receiver Windows
![Page 32: 15-441 Computer Networking Lecture 16 – Transport Protocols Copyright ©, 2007-10 Carnegie Mellon University](https://reader035.vdocuments.net/reader035/viewer/2022062805/5697bfc51a28abf838ca654b/html5/thumbnails/32.jpg)
32
Important Lessons
• Transport service• UDP mostly just IP service• TCP congestion controlled, reliable, byte stream
• Types of ARQ protocols• Stop-and-wait slow, simple• Go-back-n can keep link utilized (except w/ losses)• Selective repeat efficient loss recovery
• Sliding window flow control• Addresses buffering issues and keeps link utilized
![Page 33: 15-441 Computer Networking Lecture 16 – Transport Protocols Copyright ©, 2007-10 Carnegie Mellon University](https://reader035.vdocuments.net/reader035/viewer/2022062805/5697bfc51a28abf838ca654b/html5/thumbnails/33.jpg)
33
Next Lecture
• Congestion control
• TCP Reliability