To first point: But why can't Bob send Alice 10 packets, each annotated with their own seq or 'id' and then send a terminal packet saying " I just sent you 10 packets, ids from 60-70" and then Alice will confirm if they received them all or not. Doesn't it do this already? Edit: I guess it just doesn't send that last terminal confirmation packet since the way they're doing it is more efficient since you don't have to wait for the terminal packet for Alice to wait for.
To second point: Why does the server care if the client is ready to receive packets? Just send them and retransmit if client doesn't send the acknowledgement packet. If no ack comes in some timeout value then assume destination is offline/can't receive.
Ecoste OP t1_j12n6qp wrote
Reply to comment by icedrift in Why do we need a 3-way TCP handshake? Why not just 2-way? by Ecoste
To first point: But why can't Bob send Alice 10 packets, each annotated with their own seq or 'id' and then send a terminal packet saying " I just sent you 10 packets, ids from 60-70" and then Alice will confirm if they received them all or not. Doesn't it do this already? Edit: I guess it just doesn't send that last terminal confirmation packet since the way they're doing it is more efficient since you don't have to wait for the terminal packet for Alice to wait for.
To second point: Why does the server care if the client is ready to receive packets? Just send them and retransmit if client doesn't send the acknowledgement packet. If no ack comes in some timeout value then assume destination is offline/can't receive.