Approaches to ensure Quality of Experience when SDWAN uses lossy transports
SD-WAN is the sought-after technology these days when designing WAN circuits. SD-WAN allows the mixing of different transport technologies [MPLS, Internet, Cellular] and uses advanced features like Application-Aware Routing to choose the best path/transport for a given application. In this article, we will not discuss these SD-WAN features as there is enough content on the internet. I am going to cover the design approach for transporting application Data in a lossy connection.
Any kind of transport either SLA-based MPLS or Public internet will have some level of packet loss. Let’s talk about the case when there is a single transport that is experiencing some degree of packet loss or all transports having a lossy network. Trust me it happens more often than you think, Imagine the scenarios where SD-WAN connects the moving ships with LEO/GEO connection or LTE/4G-based backhaul. In such cases, what options do you have to make the end-user experience better? Let’s look at some options that Cisco SD-WAN provides [Other vendors may have similar feature sets but under different names]
These will be very familiar terms for you if you have worked in the network design domain for some time. But when combined with SD-WAN these become very powerful. Let us understand with some example use cases.
Use-case 1: You have a lossy network and you have a critical Audio/Video application that needs to work perfectly. In this case, we can enable Selective or Always On FEC to solve this issue. Selective FEC applies the FEC mechanism only when a certain threshold of packet loss is met while always on will use FEC for all packets. Did you notice, I mentioned “Packets” not frames? The traditional approach of FEC is applied to Layer 2 frames but SD-WAN applies at layer 3. So lets under how it works :
This process involves handling packets in groups of four, known as an FEC block:
Recommended by LinkedIn
Use-case2: Now let us consider a second use-case, like Credit Card Transactions which are very small but critical in nature. Here the approach of FEC is not suitable rather simply sending multiple copies of the same packet is a more feasible solution. These transactions are usually small, but if a message gets lost and needs to be sent again, it can make things much slower for the person using it.
Whenever a packet is sent through one tunnel, an identical copy of that packet is sent through a separate tunnel, connecting the same pair of WAN Edge routers. The choice of which tunnel to use for the duplicate packet is based on the tunnel with the least packet loss rate among all the tunnels connecting the same WAN Edge routers, except for the tunnel used for the original packet. Network administrators often believe it's a good idea to send each packet twice, even though it increases data transmission costs. This is done to prevent delays caused by having to resend a packet if it gets lost.
In summary, the approach should be based on the application’s criticality and expected end-user experience. Application Aware Routing should be considered where one of the transports is guaranteed to meet the SLA required for application experience. In case, any of the transport cannot guarantee a 100% lossless network - Choose selective FEC with the right threshold for continuous flows like voice/video, any smaller flow packet duplication works better. In the end, as I always say - Design for the customer needs and what kind of experience they want for their consumers