Hi, I'm very interested in making SSH use UDP for large data chunks. Maybe you know FASP (https://en.wikipedia.org/wiki/Fast_and_Secure_Protocol), but that is proprietary, although the website says it's based upon open source methods. Is it possible to make openssh work with UDP for this purpose? Thanks in advance, Stef Bon
Look into kcptun: https://github.com/xtaci/kcptun On Wed, Jul 11, 2018 at 3:10 PM Stef Bon <stefbon at gmail.com> wrote:> > Hi, > > I'm very interested in making SSH use UDP for large data chunks. Maybe > you know FASP > (https://en.wikipedia.org/wiki/Fast_and_Secure_Protocol), but that is > proprietary, although the website says it's based upon open source > methods. > > Is it possible to make openssh work with UDP for this purpose? > > Thanks in advance, > > Stef Bon > _______________________________________________ > openssh-unix-dev mailing list > openssh-unix-dev at mindrot.org > https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev
Hi Stef, On 11/07/18 21:30, Stef Bon wrote:> I'm very interested in making SSH use UDP for large data chunks.You forgot to add, "large data chunks, that you don't mind going missing, and that aren't all that large", because, you know, UDP has no delivery guarantee, not even best effort.? If you want to guarantee delivery you need the recipient to send an acknowledgement, and you have to take care of splitting large chunks into datagram-sized pieces and reassembling them at the other end. When you've done all of that, you might as well have used TCP in the first place. I remember, when Sun first released NFS they used UDP for transport because "performance", and then, not so very long later, had to implement TCP transport because "reliability". It's really not my place to say whether your request will ever be accepted, but why not try implementing it, create a? patch, and see?? At the very least you'll have something that works for you, even if, (as I predict), it is rejected for the baseline. David
On Wed, Jul 11, 2018 at 6:58 PM, David Newall <openssh at davidnewall.com> wrote:> I remember, when Sun first released NFS they used UDP for transport because > "performance", and then, not so very long later, had to implement TCP > transport because "reliability".network reliability has changed quite a bit since the 80's. see eg QUIC
> I'm very interested in making SSH use UDP for large data chunks. Maybe > you know FASP > (https://en.wikipedia.org/wiki/Fast_and_Secure_Protocol), but that is > proprietary, although the website says it's based upon open source > methods. > > Is it possible to make openssh work with UDP for this purpose?I guess your original problem is SSH/SCP/RSYNC etc. is too slow. The right solution to that depends on the exact use case. a) High speed low latency connection (LAN, 10Gbit) - Tune your TCP stack and choose a _very_ fast encryption algorithm in SSH sysctl for Linux: net.ipv4.tcp_rmem = 65536 131072 6291456 net.ipv4.tcp_wmem = 65536 131072 4194304 b) High speed high latency connection (WAN, 1Gbit) - Above, plus choose a different congestion control. $ sysctl net.ipv4.tcp_congestion_control will give the current set one; which are available depends on the installed kernel modules. ("depmod -n | grep tcp_" might be a first hint) ISTR that there was/is a way to choose the congestion control via iptables or per-program or so, but I don't remember the details offhand.