In [2]:
from IPython.display import Image

Reliable Data Transfer or

Hey, What can go wrong??

  1. Bit Errors
  2. Crashing servers
  3. Lost Data - queuing
  4. Crashing routers

Lets asssume that we can only get a bit error

  1. Need to have some kind of positive and/or negative acknowledgement

In [9]:
Image("Images/rdt_2_0.jpg", width=500)


Out[9]:

But Wait -- this won't work

  1. What if the ACK is corrupted?
  2. What if the NAK is corrupted?

Possible Solutions

  1. send a new message type "what did you say?"
  2. add enough error correction to overcome the problem
  3. Just resend the packet if you don't understand ACK or NAK
    • But now how does the receiver know whether this is a new packet or a copy of an old one you sent because of a corrupted response??

Adding a one bit sequence number


In [12]:
Image("Images/rdt_2_1_sender.jpg",width=600)


Out[12]: