l12 end to end layer n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
L12: end to end layer PowerPoint Presentation
Download Presentation
L12: end to end layer

Loading in 2 Seconds...

play fullscreen
1 / 25
gerek

L12: end to end layer - PowerPoint PPT Presentation

166 Views
Download Presentation
L12: end to end layer
An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. L12: end to end layer Dina Katabi 6.033 Spring 2007 http://web.mit.edu/6.033 Some slides are from lectures by Nick Mckeown, Ion Stoica, Frans Kaashoek, Hari Balakrishnan, Sam Madden, and Robert Morris

  2. presentation Layer End-to-end layer RPC RPC Network Layer Link Layer D D D D D D H H H H H H Data Data Header Header End-to-end layer client server stub stub

  3. Network layer providesbest effort service • Packets may be: • Lossed • Delayed (jitter) • Duplicated • Reordered • … • Problem: Inconvenient service for applications • Solution: Design protocols for E2E modules • Many protocols/modules possible, depending on requirements

  4. This lecture: some E2E properties • At most once • At least once • Exactly once? • Sliding window • Case study: TCP • Tomorrow: Network File System (NFS)

  5. At Least Once client server client server • Sender persistently sends until it receives an ack • Challenges: • Duplicate ACKs • What value for timer Data Data ACK X an RTT Timeout and Retransmission Data

  6. Duplicate ACK problem • Problem: Request 2 is not delivered • violates at-least once delivery Client Server Req 1 timeout ACK Req 1 Req 2 ACK Req 3

  7. Solution: nonce • Label request and ack with unique identifier that is never re-used Client Server Req N1 N1 timeout ACK N1 Req N1 N2 Req N2 ACK N1 Req N2

  8. Engineering a nonce • Use sequence numbers • Challenges: • Wrap around? • Failures? Client Server 1 Req 1 timeout ACK 1 Req 1 2 Req 2 ACK 1 Req 2

  9. Timer value • Fixed is bad. RTT changes depending on congestion • Pick a value that’s too big, wait too long to retransmit a packet • Pick a value too small, generates a duplicate (retransmitted packet). • Adapt the estimate of RTT  adaptive timeout

  10. RTT Measurements(collected by Caida)

  11. Adaptive Timeout: Exponential weighted moving averages • Samples S1, S2, S3, .. • Algorithm • EstimatedRTT = T0 • EstimatedRTT = α S + (1- α) EstimatedRTT • where 0 ≤ α≤ 1 • What values should one pick for α and T0? • Adaptive timeout is also hard

  12. At Most Once Challenges client server • Server shouldn’t process req 1 • Server should send result preferably 1 Req 1 Process request 1 Ok ACK 1 req 1 Process request 1 2 ACK 1

  13. Idea: remember sequence number client server • Server remembers also last few responses 1 Req 1 Process request 1 Ok ACK 1 1 Ok ACK 1 req 1 2 Resend ACK 1 Ok ACK 1

  14. Problem: failures client server 1 Req 1 0 • Performed request 1 twice! • How to maintain the last nonce per sender (tombstone)? • Write to non-volatile storage? • Move the problem? (e.g., different port number) • Make probability of mistake small? • How about exactly once? (Need transactions) Ok ACK 1 Ok ACK 1 1 req 1 0 2 Ok ACK 1 Ok ACK 1 1

  15. How fast should the sender sends? Host A Host B • Waiting for acks is too slow • Throughput is one packet/RTT • Say packet is 500 bytes • RTT 100ms •  Throughput = 40Kb/s, Awful! • Overlap pkt transmission Data 1 ACK Data 2

  16. Send a window of packets Host A Host B • Assume the receiver is the bottleneck • Maybe because the receiver is a slow machine • Receiver needs to tell the sender when and how much it can send • The window advances once all previous packets are acked  too slow Send? OK, 3 pkts 2-4 Idle 5-7

  17. Sliding Window Host A Host B • Senders advances the window whenever it receives an ack  sliding window • But what is the right value for the window? Send? OK, 3 pkts 2-4 Idle 3-5

  18. The Right Window Size • Assume server is bottleneck • Goal: make idle time on server zero • Assume: server rate is B bytes/s • Window size = B x RTT • Danger: sequence number wrap around • What if network is bottleneck? • Many senders? • Sharing? • Next lecture

  19. “Negative” ACK Host A Host B • Minimize reliance on timer • Add sequence numbers to packets • Send a Nack when the receiver finds a hole in the sequence numbers • Difficulties • Reordering • Cannot eliminate acks, because we need to ack the last packet D1 D2 D1 X D3 D4 D3 Nack-2 D2

  20. E2E layer in Internet HTTP, RTP, Sun RPC, … Application End-to-End Layer Transport TCP or UDP Network IP Link Ethernet, WiFI, ... The 4-layer Internet model

  21. UDP

  22. Transmission Control Protocol (TCP) • Connection-oriented • Delivers bytes at-most-once • Bidirectional • ACKs are piggybacked Host A Host B x,? y, x+1 Syn x ack x+1, syn y x+1, y+1 Data x+1, ack y+1

  23. TCP header

  24. Closing a TCP connection Host A Host B x,y y, x fin x ack x+1 fin y timed wait ack y+1 closed timeout closed