1 / 25

L12: end to end layer

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. presentation Layer. End-to-end layer. RPC. RPC. Network Layer. Link Layer. D. D. D.

gerek
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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

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

More Related