This is our old Q&A Site. Please post any new questions and answers at ask.wireshark.org.

evaluating capture packets, client sends packets with seq numbers 1271, 2646, 4021, 5396, 6771, 8146, 9521, 10896, 12271, 13646 Receiver sends acknowledgements with acks= 5396, 8146, 10896, 13646

Why are acknowledgements sent for every other packet and where in the packet can this information be found?

asked 13 Oct '17, 16:02

PaulPi's gravatar image

PaulPi
6112
accept rate: 0%


The ACK frequency (every other packet) is something that was proposed in the TCP RFC, e.g. in https://tools.ietf.org/html/rfc1122 at section "4.2.3.2 When to Send an ACK Segment". Every stack can chose the acknowledgement frequency it wants to use, but usually it's "every other packet". ACKing each packet would send unnecessary amounts of packets in most situations.

permanent link

answered 14 Oct '17, 01:26

Jasper's gravatar image

Jasper ♦♦
23.8k551284
accept rate: 18%

Because the communication path between the sender and the recipient and back may introduce a significant amount of delay, sending a packet only after receiving the acknowledge for the previously sent one could seriously limit the throughput. To mitigate the influence of RTT (Round-Trip Time) to the throughput, TCP has introduced a concept of receive window and a summary ACK which confirms reception of all bytes from the first one up to the ACKed one, rather than reception of individual packets. So there is no need to send ACK for each SEQ.

There is an add-on to this philosophy which allows to inform the sender about ranges of data newer than the ACKed ones which have already been received and which are still missing, it is called Selective Acknowledge - SACK.

permanent link

answered 14 Oct '17, 01:36

sindy's gravatar image

sindy
6.0k4851
accept rate: 24%

edited 14 Oct '17, 01:38

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×752
×139

question asked: 13 Oct '17, 16:02

question was seen: 1,110 times

last updated: 14 Oct '17, 01:38

p​o​w​e​r​e​d by O​S​Q​A