1

Recently, I conducted an experiment involving uploading a file to a server. I noticed that the acknowledgment numbers I received did not align with the sequence numbers. Please refer to the attached screenshot.

Specifically,

Sequence numbers I sent: 1-2897-5793 ...

Acknowledgment numbers I received: 1-2897-4345-5793 ...

I'm wondering why I see 4345 in the acknowledgments. I initially suspected it might be due to the Quick Acknowledgment scheme, but I remain unsure. Additionally, since the Maximum Segment Size (MSS) is 1460 Bytes, why do we observe larger segments (e.g., sequence number 2897)?

screenshot

1 Answer 1

0

The MSS=1460 and Len=2896 details reveal that large send offloading (LSO) seems to be used on the NIC.

Wireshark captures on the API level, with offloading hiding certain details. The actual segments/packets on the wire may be other than you see here. Disable offloading if you want to avoid that.

2
  • Hence sequence numbers and acknowledgment numbers do not add up with the same reason. Right?
    – nsrdn
    Commented Apr 22 at 14:05
  • They do add up eventually, but you may see 'intermediate' ACKs where there was no apparent segment boundary, just as you described.
    – Zac67
    Commented Apr 22 at 16:12

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