Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

Receiver is A , and sender is B

The receiver sets the window size to 1000, and B sends segments.

Assume that segment 500 to 521 is lost.

Then receiver A would send an ack of 501 to the sender. Once the sender receives the ack of 501 it will then start sending segments 501 to 1000 again.

Does the sender send all 501 upto 1000 without expecting a acknowledgement in the middle?

share|improve this question
2  
This question, as well as your others, sounds just a bit too much like homework for my tastes. –  John Gardeniers Jan 27 '11 at 7:03

2 Answers 2

No, the sender will expect acks in the normal fashion.

The best way to think of this is in most basic primitives for the sender: send, receive ack, mark as received (many sequences run parallel of course). If sent but not ack'd, try entire procedure again.

This also works for packetloss on the acks, not just the data. TCP's (= most implementations) coping with heavy packetloss is best described as "it barely works"

I'm curious as to why you need such detailed knowledge, is it applicable to a practical problem?

share|improve this answer

It seems more like a homework :> If it's not an excercise , it would be better to tell us which TCP you are using (Reno, Vegas, Tahoe , ... ) ?

Just to answer your question .. Sender will wait for a timeout before retransmitting the packet. To limit this delay (in some cases), some implementations support triple ack. If Receiver find a corrupted package instead of doing nothing it sends back a triple-ack. Thus, when sender receives that he start the transmission immediately.

Moreover, it depends if your implementation is using go-back-n, selective repeat etc. Different approaches are followed in every case.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.