I am tracing wireshark and matching tcp packets in order to calculate the delays occuring, i can match a data packet and it's acknowlegment, but my problem is, when i have an ack packet with window size two for example, i receive this ack at the sender side and comes right after it 2 data packets sent from the sender side, but this ack and it's stream of data at the RECIEVER side are my problem, i have this ack packet as source and i receive the stream of two packets sometime in the future and they might overlap with other packets ..how do i match this ack and 1 and this ack and 2 at the receiver ?? sender receiver
<------------------------
------------------------>
------------------------>
<----------------------- asked 30 Jun '15, 02:14 yas1234 |
One Answer:
Hm, I'm confused about what you are asking here Your 'picture' suggests that the ACKs would be flowing controlled by the window_size - which it is not!
"how do i match this ack and 1 and this ack and 2 at the receiver ??" Than you can see in the packet list which segments are 'ack-ed' - even the frame number answered 30 Jun '15, 07:08 mrEEde |
you do get my question but i do not understand this "your 'picture' suggests that the ACKs would be flowing controlled by the window_size - which it is not! " do u mean that after a stream of packets i get one ACK only for that stream 'collective ack' and thus the number of acks is not equal to the window size ?
Typically a receiver acknowledges 'every other segment', that is
for every 2 received segment you see 1 outgoing ACK acknowledging both segments.
If there is only one segment left to be sent (= the receiver will only see a single segment coming in) you will/should see a 'delayed' ACK aknowledging the only left segment. Window_size is used for TCP Flow Control and is a different topic...