Taking Advantage Of SMB 3.0 Multi-Channel

There is a great, yet very little known, feature built into latest Windows OS, it is called SMB 3.0 Multi-Channel and it was available since Windows 8. So what is SMB? It stands for Server Message Block, according to Wiki, it is mainly used for file, printer, and even serial ports sharing between nodes in a network. And most usages of it involves computers running Microsoft Windows.

Why and what benefit does it provide? Well, this is why it is a seldom known feature in Window OS and it can provide significant network performance improvement, namely, file transfer/sharing speed. Nowadays, multiple networked computers are common in homes, and of course, offices. It is very common to send some files over across network. to another computer. Particularly for photographers, visual artists who routinely share large files across network, even editing across network. So the speed of file transfer across network become crucial. This feature, SMB 3.0 Multi-Channel can help speed up file transfer greatly, double, triple, quadruple, or even more file transfer speed!

How does SMB 3.0 Multi-Channel do it? Well, this feature has the capability of combining multiple network ports into one virtual, logical port. What does it mean? It means if two computers have multiple network cards and both are connected together in a network, when you transfer a file from one computer to the other, this feature will transfer files using multiple network cards, thus increase the speed.

Take one example, if we want to transfer files across the network between two computers, each with just ONE gigabit network card, going through a gigabit network switch. Then theoretical transfer speed will be limited to ONE gigabit per second, or about 125MB (Mega BYTE) per second, meaning you can not go faster than what the two network cards on each computer can exchange information. However, what happens if both computers have multiple network cards? Say, two network cards on each computer? Without SMB 3.0 Multi-Channel, most likely only one of the network card on each computer will be utilized, leaving the other network card under utilized. With SMB 3.0 Multi-Channel feature, both network cards will be used to transfer files, thus doubling transfer speed.

SMB30_2Ports

This shows file transfer speed at 228MB/s when two gigabit networks on each computer are utilized, essentially double the speed of file transfer

Of course, it is possible to double up file transfer speed by technique of trunking/teaming/bonding multiple network cards on each computer, but SMB 3.0 Multi-Channel feature was built into Windows OS since Windows 8 and it is enabled automatically as soon as the OS detects multiple connections between two computers involved. This feature also does not need specialized network switch to work, just some dumb, unmanaged network switch will do.

The best part is that you can increase file transfer speed even more if you have more than 2 network cards on each computer. If you have three network cards in each computer, then you can triple the file transfer speed. And if you have four network cards in each computer, you can quadruple the speed. And so on and it happens transparently without you realizing it.

What to do if there is only one network card in a computer? This is a fair question and it is true most home computers, or even office computers, just have one network port/card. So do most laptop computers. Well, if the computer has USB port, we can get a USB-to-Network card, like the one below:

USBGigaBits

This device converts a USB 3.0 port into a Gigabit Ethernet port.

Better yet, if you have USB 3.0 port, it can support more than one gigabit Ethernet, so more than one gigabit Ethernet can be converted, so look for such device to increase # of network ports. Essentially, you can utilize these USB ports for faster network sharing by adding network cards.

One tip is that some of the commercial NAS server, such some by QNAP or Synology, now supports SMB 3.0 Multi-Channel, this means, if these servers have multiple network cards, you can take advantage of this feature. I think even FreeNAS has this feature so that computers running Windows can transfer files faster.

There are also gigabit Ethernet network cards with quadruple network ports via PCI-E slot and they are cheap, as low as 20USD, so if you are planning to increase file transfer speed, maybe these cards are very viable options.

One key point is, if all of your network cards are gigabit ones, make sure your network switch is also gigabit switch, otherwise, your network speed will be limited by the switch. Also, since there will be many more cables, a network switch with 16 ports or even 24 or 48 ports might also be a good idea. These switches are not very expensive, they are just a bit bulky.

Update [2019-08-07]

It is not just these gigabit LAN can benefit from SMB Multi-Channel protocol, higher bandwidth NICs can benefit from it, too. Here are two Mellanox ConnectX-3 NICs with dual 10Gbe ports. They (used ones) cost about 100USD including a 5 meter long DAC (direct attach copper) cable.

MellanoxNIC

With one cable connected on both ends, the file transfer speed is about 1.17 GB/s (note it is giga BYTEs). Adding another 20USD will get you an additional 5 meter long DAC cable and plugging it into the other spare port of dual ports will increase file transfer speed to roughly 2.16GB/s peaking at 2.25GB/s. This means the connection speed between the two computers is 20 Gb/s

Mellanox_1

And all of this are automatic on Windows 10 because SMB Multi-Channel is enabled by default and Windows 10 knows how many connections there are between two computers. Though this high speed link is peer to peer connection as I do not have a 10Gbe switch, it should work with an unmanaged 10Gbe switch, just like with a gigabit switch.

Conclusion. This is a great feature that should be taken advantage of on Windows machine capable of SMB 3.0.

2 thoughts on “Taking Advantage Of SMB 3.0 Multi-Channel”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s