TCP Dup ACK flooding connection - macOS Big Sur <> Synology NAS
I would very much appreciate any help with this issue. I'm struggling to understand why my MacBookPro running macOS Big Sur is seeing such a slow connection to my Synology DS1815+ NAS. I have connected the MBP directly to the NAS over Ethernet (no switch, no router). I can access the NAS and mount a shared folder. WireShark outputs an apparently large number of TCP Dup ACK errors while I do that: WS01.pcapng
I can access the mounted folder, and running LAN_SpeedTest shows ~600Mbps/~700Mbps rates, which seems pretty good. The issue is when I try to run a TimeMachine, CarbonCopyCloner, or Chronosync backup. All those processes just crawl - at best I'm seeing ~10Mbps rates. And WireShark continues to stream large numbers of TCP Dup ACK errors. I'm at the limit of my troubleshooting ability at this point - internet searches haven't helped.
Any advice would be very much appreciated. Thanks in advance.
Have you tested using a switch instead of the direct connection?
How you looked at the interface statistics on the Mac for errors?
The Dup ACKs are happening faster than the RTT (~.5 msec) RTT time.
Maybe the network interface is signaling the operating system to resend the packets?
Thank you for your reply, @Chuckc.
My usual setup has had the MacBookPro connected through a Cisco switch to the NAS. I've been fighting this slow transfer rate issue for quite a while - that's why I tried the direct connection, hoping to eliminate any other choke points.
I apologize for my limited knowledge, but how would I look at the "interface statistics on the Mac for errors"?
On macOS lot's of network stats are available via the CLI command: netstat -sn. But if you run this command as a normal user you will only get zero values for the tcp stats part of the report. To see the tcp stats you have to run the command as root (sudo).
Here's a one-liner command I use to grab these stats and save them to a text file with the current date and time as the first part of the filename:
Since you said this is a MPB, what are you using for the NIC interface? A docking station? A USB NIC? A Thunderbolt NIC? I have first hand experience helping some coworkers with MBPs who experienced horrible network performance when using the Gigabit Ethernet interfaces built into their docking stations.
@Jim-Young, thank you for your reply.
I'm using a Uni UNICE01 USB-C to Ethernet Adapter (Realtek Semiconductor Corp).
Using LAN_SpeedTest (when nothing else is hitting the NAS), I am seeing well over 500Mbps speeds both directions between the MBP and the NAS. It's only when CarbonCopyCloner or TimeMachine or Chronosync is transferring data that I see the slowdowns (note that those apps are the only regular users of the NAS).
Are all these TCP Dup Acks bad? Unusual? Unimportant?
At this moment, TimeMachine seems to be either stuck or crawling, and CCC is crawling, and LAN_SpeedTest is showing much slower than usual speeds - in the 100Mbps up/down range.
When I try to run the netstat command you give, I get an error:
netstat: sysctl: net.inet.ip.input_perf_data: No such file or directory
Again, thank you for your help - it is much appreciated.
Finally someone with the exact same problem! I am experiencing the same behaviour. My NAS (DS918+) is up to date, the Macs accessing it run macOS Big Sur, but the problem dates back to Catalina or maybe even Mojave.
Running Wireshark on my MBP gives me a lot of traffic not even meant for the MBP (i.e. a TM backup between the iMac and the NAS) which shows many TCP Dup ACKs.
The Synology NAS is connected via Ethernet to the switch, all other devices too. On the NAS I did not install any additional services and only enabled SMB sharing with 2 shares: 1 for the backup of my Mac mini server (using Carbon Copy Cloner) and 1 for the client machines’ Time Machine backups.
I even replaced the Cisco switch to no avail before I found out that the Synology NAS is the culprit. My current DrayTek ...(more)