{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}

L20 - MIT 6.02 DRAFT Lecture Notes Fall 2010(Last update...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon
MIT 6.02 DRAFT Lecture Notes Fall 2010 (Last update: November 22, 2010) Comments, questions or bug reports? Please contact [email protected] C HAPTER 20 Reliable Data Transport Protocols Packets in a best-effort network lead a rough life. They can be lost for any number of rea- sons, including queue overflows at switches because of congestion, repeated collisions over shared media, routing failures, etc. In addition, packets can arrive out-of-order at the destination because different packets sent in sequence take different paths or because some switch en route reorders packets for some reason. They usually experience variable delays, especially whenever they encounter a queue. In some cases, the underlying network may even duplicate packets. Many applications, such as Web page downloads, file transfers, and interactive termi- nal sessions would like a reliable, in-order stream of data, receiving exactly one copy of each byte in the same order in which it was sent. A reliable transport protocol does the job of hiding the vagaries of a best-effort network—packet losses, reordered packets, and du- plicate packets—from the application, and provides it the abstraction of a reliable packet stream. We will develop protocols that also provide in-order delivery. A large number of protocols have been developed that various applications use, and there are several ways to provide a reliable, in-order abstraction. This lecture will not survey them all, but will instead discuss two protocols in some detail. The first protocol, called stop-and-wait , will solve the problem in perhaps the simplest possible way that works, but do so somewhat inefficiently. The second protocol will augment the first one with a sliding window to significantly improve performance. All reliable transport protocols use the same powerful ideas: redundancy to cope with losses and receiver buffering to cope with reordering , and most use adaptive timers . The tricky part is figuring out exactly how to apply redundancy in the form of packet retransmis- sions, in working out exactly when retransmissions should be done, and in achieving good performance. This chapter will study these issues, and discuss ways in which a reliable transport protocol can achieve high throughput. 20.1 The Problem The problem we’re going to solve is relatively easy to state. A sender application wants to send a stream of packets to a receiver application over a best-effort network, which 1
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
2 CHAPTER 20. RELIABLE DATA TRANSPORT PROTOCOLS can drop packets arbitrarily, reorder them arbitrarily, delay them arbitrarily, and possibly even duplicate packets. The receiver wants the packets in exactly the same order in which the sender sent them, and wants exactly one copy of each packet. 1 Our goal is to devise mechanisms at the sending and receiving nodes to achieve what the receiver wants. These mechanisms involve rules between the sender and receiver, which constitute the proto- col. In addition to correctness, we will be interested in calculating the throughput of our protocols, and in coming up with ways to maximize it.
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}