1 / 45

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).

mariah
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. UDP vs TCP

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

  8. Connectionless Socket (Dest Addr, Dest Port)

  9. UDP Segment Header src port dst port length checksum

  10. UDP Checksum 0110011001100000 0101010101010101

  11. UDP Checksum 1011101110110101 1000111100001100

  12. UDP Checksum 0100101011000010

  13. UDP detects errors (no recovery)

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

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

  16. Finite State Machine Event Action

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

  18. rdt 1.0 underlying channel is reliable

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

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

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

  22. rdt 2.0 channels with bit-errors

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

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

  25. rdt 2.0 receiver wait for call

  26. Stop-and-Wait

  27. What if ACK/NAK is corrupted?

  28. Idea : Retransmit if ACK/NAK is corrupted

  29. rdt 2.1 channels with bit-errors

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

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

  32. rdt 2.1 receiver wait for 0 wait for 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. wait for call 0 wait for 0 wait for ACK/NAK 0 wait for 1 wait for ACK/NAK 1 wait for call 1

  35. rdt 2.2 NAK-free

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

  37. rdt 3.0 lossy channels with bit-errors

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

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

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

  41. Alternating-bit Protocol

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

More Related