on sender: until ACK received:
on receiver: continuously:
reconstructed message:
The meeting is at 12pm.
reconstructed message:
The meetingThe meeting is at 12pm.
| 1. | message (instead of acknowledgment) is lost |
| 2. | first message from machine A is delayed a long time by network |
| 3. | acknowledgment of second message lost instead of first |
long message delays not possible with direct link
but are possible with:
reconstructed message:
The meeting is at 12pm.
reconstructed message:
The meeting is at 12pm.
A thinks: part 0 + part 1 acknowleged!
call the ‘part’ label sequence number
| A. send ACK 0 | B. send ACK 1 | C. send nothing |
| A. send ACK 0 | B. send ACK 1 | C. send nothing |
| A. send ACK 0 | B. send ACK 1 | C. send nothing |
| A. send 0: X again | B. send 1: Y again |
| C. send 0: Z | D. something else |
| A. send 0: X again | B. send 1: Y again |
| C. send 0: Z | D. something else |
on sender: until ACK received:
on receiver: continuously:
reconstructed message:
The meeting is at 12pm.
reconstructed message:
The meetingThe meeting is at 12pm.
| 1. | message (instead of acknowledgment) is lost |
| 2. | first message from machine A is delayed a long time by network |
| 3. | acknowledgment of second message lost instead of first |
long message delays not possible with direct link
but are possible with:
reconstructed message:
The meeting is at 12pm.
reconstructed message:
The meeting is at 12pm.
A thinks: part 0 + part 1 acknowleged!
call the ‘part’ label sequence number
| A. send ACK 0 | B. send ACK 1 | C. send nothing |
| A. send ACK 0 | B. send ACK 1 | C. send nothing |
| A. send ACK 0 | B. send ACK 1 | C. send nothing |
| A. send 0: X again | B. send 1: Y again |
| C. send 0: Z | D. something else |
| A. send 0: X again | B. send 1: Y again |
| C. send 0: Z | D. something else |