Thursday, January 17, 2019

High-reliability tunneling - any FECing idea?

I have a particular TCP application that is very low-bandwidth but sensitive to jitter and especially packet loss, which needs to run over great geographic distances; this seems like a perfect use case for Forward Error Correction, and I've just spent a few hours going down the rabbit hole of looking at media streaming protocols like SRT, UDT, and algorithms like Reed-Solomon and such...

As far as I can tell, some of the SD-WAN solutions I've looked at might use this for last-mile reliability, though some of them also mentioned a need for two ISPs and double-bandwidth which leads me to think they're doing something a lot more naive than like a RAID 5-style parity system on the data stream (like Reed-Solomon would do).

I found one random library, UDPSpeeder, which does precisely this and can be used with OpenVPN to compensate for large amounts of packet loss with minimal jitter. Pretty cool, but also a pretty niche hobbyist program from the looks of it - same developer also wrote a lightweight VPN with integrated UDPSpeeder, which again, very cool technically, but I'd hardly say 'enterprise ready'. NetMotion's Mobility product also apparently uses a form of FEC in their proprietary VPN implementation, as does Speedify, and I've seen offhand remarks that 'many WAN accelerators use FEC'.

What I'm asking is, have you ever seen this particular use case and found a product that uses an efficient FEC algorithm (turbo codes or LDPC code) for the sake of site-to-site reliable transport, generic enough to use non-media-streaming protocols over it (i.e. TCP)? Is it really just a handful of relatively niche vendors and hobbyists doing this, or do some high-end Cisco products support something like IKE/IPSEC over UDT with FEC enabled or SRTP or something? Most info I can find on the topic is just university research papers of people doing exactly what I'm looking for and having fantastic results, as far back as 2001, and this IETF draft: https://tools.ietf.org/html/draft-ietf-fecframe-framework-15.



No comments:

Post a Comment