Mac to PC gigabit networking

drdwridav

Reputable
Mar 30, 2015
13
0
4,510
My setup is an Intel nuc with a gigabit thunderbolt adapter wired to router. Router is connected by Ethernet to another router to act as a switch. Attached to this is an iMac.
Transferring files from Mac to PC is fine (113 MB/s) so I'm getting gigabit speeds that way.
Transferring the other way I get just 18 MB/s
Any ideas what I could try? The only success I've just had is to change the Mac's network setting from automatic (1000 full duplex with flow control) to manual (just 1000 full duplex). This has actually improved the speed to 62 MB/s but not sure why!?!
Should i be disabling flow control? Will this cause any other issues? Is there anything else I could try on either computer??
 
Solution


You are not happy that it works, you want to know why? :D

Throwing something at you but it's just a guess: The other adapter(s) on the chain doesn't support flow control, so a receiver waits (pauses) for acknowledgement (the basis for flow control) but never arrives, so at some point it times out, and instead of error-ing out, it just continues with the next block of data.

drdwridav

Reputable
Mar 30, 2015
13
0
4,510
Hi
The Mac doesn't have an SSD, it's a regular one. I also have two regular external hard drives connected to the Mac by thunderbolt (again not SSD). Whether it's to the internal or external, the speeds are the same
The NUC does have an SSD though...
 


Well there you are!

Your NUC as a fast bucket to store the received data and keep up, your Mac doesn't.
 

drdwridav

Reputable
Mar 30, 2015
13
0
4,510
Thanks, I understand that -- but can you shed any light on the flow control and why turning it off on the Mac's connection allows files to come in three times faster?
 


You are not happy that it works, you want to know why? :D

Throwing something at you but it's just a guess: The other adapter(s) on the chain doesn't support flow control, so a receiver waits (pauses) for acknowledgement (the basis for flow control) but never arrives, so at some point it times out, and instead of error-ing out, it just continues with the next block of data.
 
Solution