Windows 10 and 2xGbit ethernet teaming

Post Reply
brad
Posts: 1055
Joined: Tue Mar 29, 2016 1:22 pm
languages_spoken: english
ODROIDs: C2 N1 N2 H2 (64 bit ftw)
Location: Australia
Has thanked: 27 times
Been thanked: 56 times
Contact:

Windows 10 and 2xGbit ethernet teaming

Unread post by brad » Tue Feb 11, 2020 10:33 pm

I discovered it is quiet easy to team up the 2x realktek NIC's on the N2 in Windows 10 to give a single 2Gbit connection. I've tested the setup with updated realtek drivers from realtek but it might work on the older microsoft supplied ones. I don't really have much here to test out performance but I will try at a later stage to get some results.

Edit: After testing I found you need a smart switch where you can configure link aggregation to be able to obtain bandwidth of both NIC's. Otherwise they will just act as a failover pair in Windows 10.

Windows 10 Pro 1909
Realtek PCIe GbE Family Controller driver version 10.35.510.2019

Open a powershell window in Admin mode (right click powershell icon and run as admin)

Code: Select all

PS C:\WINDOWS\system32> New-NetSwitchTeam -Name "Odroid Team" -TeamMembers "Ethernet","Ethernet 2"
Now you have a single virtual connection and new IP address which should work up to 2Gbs second. (Edit: If you have link aggregation enabled on your switch)

Code: Select all

PS C:\WINDOWS\system32> Get-NetAdapter -Name *

Name                      InterfaceDescription                    ifIndex Status       MacAddress             LinkSpeed
----                      --------------------                    ------- ------       ----------             ---------
Ethernet                  Realtek PCIe GbE Family Controller           15 Up           00-1E-06-45-07-49         1 Gbps
Ethernet 2                Realtek PCIe GbE Family Controller #2         9 Up           00-1E-06-45-07-4A         1 Gbps
Odroid Team               Microsoft Network Adapter Multiplexo...      20 Up           00-1E-06-45-07-4A         2 Gbps
Last edited by brad on Sat Feb 15, 2020 10:14 am, edited 2 times in total.

User avatar
mad_ady
Posts: 7375
Joined: Wed Jul 15, 2015 5:00 pm
languages_spoken: english
ODROIDs: XU4, C1+, C2, N1, H2, N2, Go, Go Advance
Location: Bucharest, Romania
Has thanked: 358 times
Been thanked: 258 times
Contact:

Re: Windows 10 and 2xGbit ethernet teaming

Unread post by mad_ady » Tue Feb 11, 2020 10:59 pm

Don't you have to set up teaming or port channel on the switch side as well?

brad
Posts: 1055
Joined: Tue Mar 29, 2016 1:22 pm
languages_spoken: english
ODROIDs: C2 N1 N2 H2 (64 bit ftw)
Location: Australia
Has thanked: 27 times
Been thanked: 56 times
Contact:

Re: Windows 10 and 2xGbit ethernet teaming

Unread post by brad » Tue Feb 11, 2020 11:24 pm

mad_ady wrote:
Tue Feb 11, 2020 10:59 pm
Don't you have to set up teaming or port channel on the switch side as well?
I don't believe so everything seems to be working as expected. The Realtek NIC drivers support teaming at a hardware level and we are using the microsoft multiplexer driver for load balancing and some fault tolerance. It was introduced in windows 10 relatively recently but there is no gui only a powershell interface.

User avatar
mad_ady
Posts: 7375
Joined: Wed Jul 15, 2015 5:00 pm
languages_spoken: english
ODROIDs: XU4, C1+, C2, N1, H2, N2, Go, Go Advance
Location: Bucharest, Romania
Has thanked: 358 times
Been thanked: 258 times
Contact:

Re: Windows 10 and 2xGbit ethernet teaming

Unread post by mad_ady » Tue Feb 11, 2020 11:42 pm

I was thinking of LACP, but it seems there are different flavours: https://docs.microsoft.com/en-us/window ... g-settings

brad
Posts: 1055
Joined: Tue Mar 29, 2016 1:22 pm
languages_spoken: english
ODROIDs: C2 N1 N2 H2 (64 bit ftw)
Location: Australia
Has thanked: 27 times
Been thanked: 56 times
Contact:

Re: Windows 10 and 2xGbit ethernet teaming

Unread post by brad » Wed Feb 12, 2020 2:40 pm

We should be able to do the same with Linux although I have not tested, eg: some details for Ubuntu

https://www.tecmint.com/configure-netwo ... in-ubuntu/

and the kernel driver documentation ....

https://www.kernel.org/doc/Documentatio ... onding.txt

User avatar
rooted
Posts: 7277
Joined: Fri Dec 19, 2014 9:12 am
languages_spoken: english
Location: Gulf of Mexico, US
Has thanked: 465 times
Been thanked: 128 times
Contact:

Re: Windows 10 and 2xGbit ethernet teaming

Unread post by rooted » Wed Feb 12, 2020 4:09 pm

Surely there must be some impact if doing this in software?

My modem, switch, and router all support bonding but since my WAN is *only* gigabit there is little point in trying it that I can think of. Although I do have around 30 connected devices at any given time in my house so maybe there would be some slight improvement in latency?

I have wanted to try bonding my modem to my switch to see if I get a throughput increase, generally I only see about 800 Mbps but I think it's more due to my ISP than my hardware.

User avatar
mad_ady
Posts: 7375
Joined: Wed Jul 15, 2015 5:00 pm
languages_spoken: english
ODROIDs: XU4, C1+, C2, N1, H2, N2, Go, Go Advance
Location: Bucharest, Romania
Has thanked: 358 times
Been thanked: 258 times
Contact:

Re: Windows 10 and 2xGbit ethernet teaming

Unread post by mad_ady » Wed Feb 12, 2020 5:30 pm

The advantage of bonding is increased bandwidth and fault tolerance in certain conditions. For increased bandwidth you need to balance multiple TCP/UDP connections over the two links. One connection (one regular HTTP download or SAMBA transfer or even NFS) will only use one link because of the hashing algorithm used to choose which link is used (could be a hash based on src-dst IP or src-dst port). But you could saturate a bond with multiple connections/streams.
So bonding makes sense at a server/NAS that aggregates multiple simultaneous clients, but each client gets a 1Gbps max throughput.

brad
Posts: 1055
Joined: Tue Mar 29, 2016 1:22 pm
languages_spoken: english
ODROIDs: C2 N1 N2 H2 (64 bit ftw)
Location: Australia
Has thanked: 27 times
Been thanked: 56 times
Contact:

Re: Windows 10 and 2xGbit ethernet teaming

Unread post by brad » Wed Feb 12, 2020 5:40 pm

rooted wrote:
Wed Feb 12, 2020 4:09 pm
Surely there must be some impact if doing this in software?
For windows 10 there are no details provided by MS, there is only documentation for Windows Server versions. I'm really not sure how Windows 10 sets its bonding configuration and even the Powershell api is a little lax in details. The way I understand it the support is mostly in the hardware with the Realtek RTL8111G PHY's making the decisions about what traffic goes where. Also it appears most network equipment managers (ie the switches) of today support bonding

All I could find from Reltek was a readme inside the driver named As_One_Teaming_NIC.htm which appears to have been written for Windows Vista.
As One Teaming NIC for fail-over

You could use Realtek teaming utilize to create one teaming NIC.

Teaming NIC that has fail-over mechanism could keep connection when one NIC lost its connection.

Teaming NIC that has double bandwidth actually is a little help for normal user and sometimes bandwidth double need specific switch/hub.

It is recommended that normal user only uses fail-over for generic purpose.
rooted wrote:
Wed Feb 12, 2020 4:09 pm
My modem, switch, and router all support bonding but since my WAN is *only* gigabit there is little point in trying it that I can think of. Although I do have around 30 connected devices at any given time in my house so maybe there would be some slight improvement in latency?
I'm in the same boat my outbound connection is around 500Mps and I only have 1G devices on my LAN to connect. With > gigabit becoming popular it may be nice for users who want to connect to this or to connect to multiple devices at once, eg file server. Many 1G switches have a 10G backbone so can probably do this with the simple gigabit switch.

I'm not sure about latency either as no real testing as yet, I was reading on the Microsoft implementation that it will try to push connections down a single port if possible to reduce out of order receiving if each port has a different latency.
rooted wrote:
Wed Feb 12, 2020 4:09 pm
I have wanted to try bonding my modem to my switch to see if I get a throughput increase, generally I only see about 800 Mbps but I think it's more due to my ISP than my hardware.
You could directly connect your H2 as a test setup to you modem with a bonding connection and see if it will go faster.

User avatar
rooted
Posts: 7277
Joined: Fri Dec 19, 2014 9:12 am
languages_spoken: english
Location: Gulf of Mexico, US
Has thanked: 465 times
Been thanked: 128 times
Contact:

Re: Windows 10 and 2xGbit ethernet teaming

Unread post by rooted » Wed Feb 12, 2020 6:17 pm

mad_ady wrote:The advantage of bonding is increased bandwidth and fault tolerance in certain conditions. For increased bandwidth you need to balance multiple TCP/UDP connections over the two links. One connection (one regular HTTP download or SAMBA transfer or even NFS) will only use one link because of the hashing algorithm used to choose which link is used (could be a hash based on src-dst IP or src-dst port). But you could saturate a bond with multiple connections/streams.
So bonding makes sense at a server/NAS that aggregates multiple simultaneous clients, but each client gets a 1Gbps max throughput.
I was thinking more for multi-threaded downloading, especially something like a torrent. Really it would just be for tinkering in my case, not that useful.

PigLover
Posts: 29
Joined: Wed Nov 15, 2017 3:55 am
languages_spoken: english
ODROIDs: C2, XU4, HC1, MC1
Has thanked: 1 time
Been thanked: 1 time
Contact:

Re: Windows 10 and 2xGbit ethernet teaming

Unread post by PigLover » Wed Feb 12, 2020 11:29 pm

Teaming can still be useful on the LAN even if your outside connection is of limited speed. One use case is traffic to/from a file server.

However, you do need to understand a bit about how teaming actually works. Normally any given connection should always use the same physical link, so each connection will only get 1Gbe of throughput. The advantage is on multiple connections where the IP flows can go on different links. The details of what is a “flow” depend on the options you set on the teamed links and, sometimes, on the capabilities of your switch. It is a long topic...

brad
Posts: 1055
Joined: Tue Mar 29, 2016 1:22 pm
languages_spoken: english
ODROIDs: C2 N1 N2 H2 (64 bit ftw)
Location: Australia
Has thanked: 27 times
Been thanked: 56 times
Contact:

Re: Windows 10 and 2xGbit ethernet teaming

Unread post by brad » Sat Feb 15, 2020 10:01 am

mad_ady wrote:
Tue Feb 11, 2020 10:59 pm
Don't you have to set up teaming or port channel on the switch side as well?
I did a little more experimenting on this

- with a dumb switch and teaming enabled in Windows 10 it will only act as failover. I cannot push the team link harder than about 870Mbps with multiple connections.

- with a smart switch with link aggregation enabled and configuring load balancing in "Src/Dest IP and TCP/UDP Port fields" mode i was able to push up to 1.4Gbps over the link copying samba files from network and doing a speedtest against my internet. Other hardware / internet connection maxed out.
Screenshot (12).png
Screenshot (12).png (274.86 KiB) Viewed 208 times
You can see where the speedtest ran and samba was copying before it filled ram file cache (samba was copying at 100Mb/s before disk io went through the roof)

Post Reply

Return to “Other OS”

Who is online

Users browsing this forum: No registered users and 1 guest