1

I have a situation where one of three different NFS clients will break after a period of time (some number of days). I find that the broken host and server are continually sending 'ack' packets (to the tune of 100+mb/s). Each side is sending the same packet, and neither side ever retransmits any actual data. 1 Eventually the server will reset the connections and NFS will function correctly for a short time (2-4 minutes). A server restart will fix everything until it breaks some days later.

The environment is a duplicate of other environment, and other NFS clients never have this problem (same OS and app versions).

While troubleshooting, I see wireshark reporting a packet as 'TCP ACKed unseen segment' but I don't understand why. Packet #28517 has Ack=2194563093 and packet #28513 has Seq=2194563093... that's the packet being acknowledged, right? I did another clean capture that looks the same so I don't understand why it's showing up like that. 2

I'm primarily looking for hints debugging the NFS issue (SLES on the client side, EMC VNX on the server side) and confirmation that the wireshark output is wrong (or else that is an actual clue I should dig into).

EDIT: Server and client are on the same switch, same subnet.

Josh
  • 121
  • 4
  • Ack is not the number that was received. It is the number that is expected next. ack=20 means I'm next expecting a packet with seq=20 – avmohan Oct 31 '16 at 18:51
  • That doesn't sound correct. ack=20 means I am acknowledging that I saw data up to seq=20 (ie previous packet seq# + data = 20). The receiver can't know how much data is (going to be) transmitted, so how could it acknowledge it? I compared this against a clean capture as well and the ack is previous seq # plus data in packet. P.S. Thanks Michael for your helpful input. – Josh Oct 31 '16 at 19:09
  • @Josh Well, now your understanding has been improved. See RFC 793 section 2.6. "Segments also carry an acknowledgment number which is the sequence number of the next expected data octet of transmissions in the reverse direction." – Michael Hampton Oct 31 '16 at 19:12
  • Josh: you're just off by one. ack=20 means I saw up to packet 19. Prev seq + data is 19. – avmohan Oct 31 '16 at 21:14

0 Answers0