Page 1 of 1

Transfer efficiency issues with the Android SMB protocol

Posted: 2024-10-25, 03:08 UTC
by DOSforever
Same wireless network, same mobile device, same Windows SMB service, Total Commander 3.50d, LAN plugin for Total commander 3.50 .
Based on the transmission rate measured by iperf at a certain time,

When the transfer rate is around 26MB/s, the file manager pre-installed on the phone is also used to copy files from Windows through the SMB protocol, a single large file is about 15MB/s, while the transfer rate of copying the same file from Windows to the phone through the LAN plugin is only about 8MB/s. And the other way around, copying files from your phone to Windows is only a little over 1MB/s.

Using another phone to do the test, when iperf measured the transfer rate of about 50MB/s, the LAN plugin only copied files from Windows at about 15MB/s.

Transferring files between Windows and Windows hosts, which also use the SMB protocol, can almost always achieve the maximum transfer rate measured by iperf.

The transfer rate measured by other apps that support the SMB protocol is not large, and it is basically the same as the LAN plugin for Total Commander, so does it mean that Android's SMB protocol is very inefficient?


Translated with DeepL.com (free version)

Re: Transfer efficiency issues with the Android SMB protocol

Posted: 2024-10-25, 09:58 UTC
by ghisler(Author)
I'm using the SMBj library, which implements SMB in Java. This is of course slower than native code, but I could not find any native C/C++ SMB libraries working on Android.

Re: Transfer efficiency issues with the Android SMB protocol

Posted: 2024-10-25, 10:38 UTC
by DOSforever
ghisler(Author) wrote: 2024-10-25, 09:58 UTC I'm using the SMBj library, which implements SMB in Java. This is of course slower than native code, but I could not find any native C/C++ SMB libraries working on Android.
感谢解惑
Thanks for the solution 8) :)

Re: Transfer efficiency issues with the Android SMB protocol

Posted: 2024-11-15, 22:12 UTC
by DOSforever
ghisler(Author) wrote: 2024-10-25, 09:58 UTC I'm using the SMBj library, which implements SMB in Java. This is of course slower than native code, but I could not find any native C/C++ SMB libraries working on Android.
By chance, I saw another library, jCIFS NG, which is licensed under the LGPL and is used by the CIFS Documents Provider, but I wonder if it can be used for Total Commander? Is efficiency better than SMBj?

Re: Transfer efficiency issues with the Android SMB protocol

Posted: 2024-11-17, 07:37 UTC
by ghisler(Author)
You can try yourself, I'm using jCIFS for SMB 1.0. At the time when I added SMBj, jCIFS didn't support SMB2 and SMB3.
To make it comparable, you need to test SMBj without encryption.