I recently bought an ethernet cable for home networking expecting it to significantly boost file transfer speed between my computer and a network hard drive made available via samba. It's a little bit faster, but it still seems pretty slow. iStat Menus is telling me I'm averaging a bit over 3 MB/s (3 MegaBytes/second, so about 24 Mb/s).
Here's the setup and the theoretical speeds:
Harddrive (6 Gb/s) -> Enclosure with USB 2.0 (480 Mb/s) -> Hfs+ mounted to Raspberry Pi 3 through usb2.0 (480 Mb/s?) -> Samba network drive via RetroPie (480 Mb/s?) -> 10/100 Ethernet (100 Mb/s?) -> Netgear wndr3400 (100 Mb/s? out of 300 Mb/s?) -> Cat 7 Ethernet Cable (100 Mb/s? out of 10,000 Mb/s?) -> Ethernet Usb C dongle (100 Mb/s? out of 1,000 Mb/s?) -> Usb C drive on 2016 macbook pro (100 Mb/s? out of 40,000 Mb/s?)
Theoretically, I should be getting speeds of about 12 Megabytes/s (100 Mb/s), but I'm only getting a quarter of that. My weakest links are pretty obviously the rapsberry pi and the router, but I'd really like to test the speed at each connection point as an exercise.
I expected to find some sort of wikipedia for speed tests, but I haven't been able to find one. Are there any guides out there for how to test each link in a networking chain? I realize there's a ton of variability in what sits on any particular persons network, but there are a discrete number of links, so I was hoping there would be a place were I could find out how to test each particular link. All of the search results I'm getting about "testing network speeds" are about testing the end to end results, not diagnosing bottlenecks.
iperf
to test plain network speed. Use ftp transfer of big continuous file to test network speed + writing to NAS drive. Small files will slow down transfers. If you got acceptable speed over ftp then tweak samba settings to improve throughput. Cables very rarely improving speed, it is either working or not. Upgrade to gigabit network, it will benefit throughput even with devices that can talk only on 100Mbit