1 / 44

Application

Application. Transport. you are here. Network. Link. Physical. Application. Transport (process-to-process). Network (unreliable, host-to-host). Transport (process-to-process). Network (unreliable, host-to-host). Transport (process-to-process). Network (unreliable, host-to-host).

Download Presentation

Application

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. Application Transport you are here Network Link Physical

  2. Application Transport (process-to-process) Network (unreliable, host-to-host)

  3. Transport (process-to-process) Network (unreliable, host-to-host)

  4. Transport (process-to-process) Network (unreliable, host-to-host)

  5. src port dst port :

  6. Connection-Oriented Socket (Src Port, Src Addr, Dest Port, Dest Addr)

  7. Connectionless Socket (Dest Addr, Dest Port)

  8. UDP Segment Header src port dst port length checksum

  9. UDP Checksum 0110011001100000 0101010101010101

  10. UDP Checksum 1011101110110101 1000111100001100

  11. UDP Checksum 0100101011000010

  12. UDP detects errors (no recovery)

  13. Reliable Data Transfer rdt1.0, rdt2.0, rdt3.0

  14. Application Application Transport Transport rdt_send() deliver_data() Network Network udt_send() rdt_recv()

  15. Finite State Machine Event Action

  16. hungry get up & eat sleep awake stomach full go back to bed

  17. rdt 1.0 underlying channel is reliable

  18. rdt 1.0 sender rdt_send(data) wait for call pkt = make_pkt(data) udt_send(pkt)

  19. rdt 1.0 receiver rdt_recv(pkt) wait for call extract(pkt, data) deliver_data(data)

  20. send data recv pkt send pkt deliver wait for call wait for call

  21. rdt 2.0 channels with bit-errors

  22. ARQ: AutomaticRepeat reQuest Error detection Receiver feedback (ACK NAK) Retransmission

  23. rdt 2.0 sender wait for call wait for ACK/NAK

  24. rdt 2.0 receiver wait for call

  25. Stop-and-Wait

  26. What if ACK/NAK is corrupted?

  27. Idea : Retransmit if ACK/NAK is corrupted

  28. rdt 2.1 channels with bit-errors

  29. rdt 2.1 sender wait for call 0 wait for ACK/NAK 0

  30. wait for call 0 wait for ACK/NAK 0 wait for ACK/NAK 1 wait for call 1

  31. rdt 2.1 receiver wait for 0 wait for 1

  32. wait for call 0 wait for 0 wait for ACK/NAK 0 wait for 1 wait for ACK/NAK 1 wait for call 1

  33. wait for call 0 wait for 0 wait for ACK/NAK 0 wait for 1 wait for ACK/NAK 1 wait for call 1

  34. rdt 2.2 NAK-free

  35. No NAK Send ACK of last correctly received packet instead

  36. rdt 3.0 lossy channels with bit-errors

  37. How to tell if a packet is loss? (can’t know for sure)

  38. Use Timeout (may lead to dup. packets)

  39. rdt 3.0 sender wait for call 0 wait for ACK 0

  40. Alternating-bit Protocol

  41. R = 6000 kbpsL = 1500 bytesRTT = 300 ms

More Related