Page 1 of 1

Traffic Scheduler for Multithread

Posted: Thu Jan 26, 2017 3:04 pm
by highthroughputvpn
Building from:

Multithread (http://www.vpnusers.com/viewtopic.php?f=7&t=5163)

and

Maximum Throughput Site to Site VPN Solution (http://www.vpnusers.com/viewtopic.php?f=7&t=7270)

Is there an internal scheduler to SoftEther that could balance traffic across multiple internal instances to make use of all available cores (multithread)?

Peplink has this feature calling is "SpeedFusion" where sessions are spread across multiple tunnels. For Peplink the tunnels are per hardware link technology, but how about SoftEther doing a similar thing via spawning multiple "tunnels" between points A and B and then scheduling sessions across the tunnels to maximize throughput?

The point here is to limit it to sessions so as to avoid packet re-ordering.

More and more hardware have increasing cpu core count but SoftEther appears to be limited by cpu core speed. The proposed method here of SoftEther spawning one tunnel connection per core (as a user defined setting) and scheduling across them all (even a crude round robin approach) should, in theory, increase the overall SoftEther throughput.

Is this reasonably possible with the current SoftEther software architecture, please?

Thank you!

Re: Traffic Scheduler for Multithread

Posted: Thu Jan 26, 2017 3:06 pm
by highthroughputvpn
Peplink Image depicting multiple sessions spread across multiple paths concept.

Re: Traffic Scheduler for Multithread

Posted: Thu Jan 26, 2017 3:30 pm
by highthroughputvpn
Might this help?

https://linux.die.net/man/8/ifenslave

ifenslave(8) - Linux man page

Name

ifenslave - Attach and detach slave network devices to a bonding device.

Synopsis

ifenslave [-acdfhuvV] [--all-interfaces] [--change-active] [--detach] [--force] [--help] [--usage] [--verbose] [--version] master slave ...

Description

ifenslave is a tool to attach and detach slave network devices to a bonding device. A bonding device will act like a normal Ethernet network device to the kernel, but will send out the packets via the slave devices using a simple round-robin scheduler. This allows for simple load-balancing, identical to "channel bonding" or "trunking" techniques used in switches.

The kernel must have support for bonding devices for ifenslave to be useful.

Re: Traffic Scheduler for Multithread

Posted: Thu Jan 26, 2017 3:32 pm
by highthroughputvpn
An article describing a similar concept.

https://www.simonmott.co.uk/2012/03/vpn-bonding/

Re: Traffic Scheduler for Multithread

Posted: Thu Jan 26, 2017 3:59 pm
by highthroughputvpn
Another similar approach using vtrunkd.

http://www.vrayo.com/how-to-set-up-a-bo ... -in-linux/

Re: Traffic Scheduler for Multithread

Posted: Wed Feb 15, 2017 6:56 am
by thisjun
SoftEther doesn't balance among TCP connections.
Packets are filled into writable TCP connection with smaller ID.

Re: Traffic Scheduler for Multithread

Posted: Thu Feb 16, 2017 1:09 am
by highthroughputvpn
thisjun wrote:
> SoftEther doesn't balance among TCP connections.
> Packets are filled into writable TCP connection with smaller ID.

Understood, thank you. I was hoping SoftEther might "bond" over multiple tunnels.