1. Client sends "SYN" packet. | |
| 2. Server receives "SYN" packet. |
| 3. Server sends "SYNACK" packet. |
4. Client receives "SYNACK" packet. | |
5. Client sends "REQUEST" packet. | |
| 6. Server receives "REQUEST" packet. |
| 7. Server sends "DATA" packet with first 16 bytes of data and sequence number 0. |
8. Client receives "DATA" packet with sequence number 0. | |
9. Client sends "ACK" packet for data with sequence number 0. | |
| 10. Server receives "ACK" packet for data with sequence number 0. |
| 11. Server sends "DATA" packet with next 16 bytes of data and sequence number 1. |
12. Client receives "DATA" packet with sequence number 1. | |
13. Client sends "ACK" packet for data with sequence number 1. | |
| 14. Server receives "ACK" packet for data with sequence number 1. |
| 15. Server sends "DATA" packet with next 16 bytes of data and sequence number 0. |
16. Client receives "DATA" packet with sequence number 0. | |
17. Client sends "ACK" packet for data with sequence number 0. | |
| 18. Server receives "ACK" packet for data with sequence number 0. |
| 19. Server sends "FIN" packet. |
20. Client receives "FIN" packet. | |
21. Client sends "ACK" packet. | |
| 22. Server receives "ACK" packet. |
| 23. Server closes connection. |
24. Client closes connection. | |
However, your program must be robust enough to handle the loss of