Can someone please help me with this. The TCP client just ignores the ACK packet, and kept resending packet 53741 until the connection is time out. Where could be the issue?
asked 10 Jan ‘12, 20:02 Wirewarrior edited 11 Jan ‘12, 00:26 Guy Harris ♦♦ |
One Answer:
First of all, an ACK value of 53741 does not mean "I have received your packet with SEQ=53471", it means "I have received data up to (but not including) SEQ 53471". Then there is SACK, which means Selective Acknowledgements. In frame 67048 the server ACK's up to SEQ 53741, but it also says it has received SEQ-54049 to 58188 (SLE=54049 SRE=58188). So the client needs to resend 53741 to 54048 and can then send data starting from 58188. Now, the client does send that part of data repeatedly, but the server stops sending ACK's to tell the client that it did receive the data. So either the server was suddenly disconnected from the network or maybe something on route was blocking/dropping the traffic. So in this case, the client does not ignore the ACKs, it perfectly heard them and acted on them :-) answered 11 Jan '12, 01:44 SYN-bit ♦♦ edited 11 Jan '12, 02:40 grahamb ♦ |