Recently, Apple announced that they will be moving network stack to user space as part of iOS 11. Apple is not alone in this. There is a lot of interest in moving various networking services in user space. For example, Google, with its efforts on QUIC, and Facebook driving some work in IETF that enables user space stacks in the app. On the other hand, OpenFastPath is trying to create an open source fast path TCP/IP stack to run in Linux user space.
At a high level, the Neumob SDK is quite compatible with this change. Existing as well as future Neumob customers don’t need to make any changes to accommodate it.
Having said that, if we observe the evolution of operating systems and their relationship with networking stack, some of our seasoned engineers can recall working on embedded kernels in which file system support and networking were all outside the kernel. Once processors became powerful and RAM became cheaper, Linux started to take over a lot of market share. In traditional Unix and Linux, networking stack has always been part of the kernel. Also, in my previous experience, one of the carrier-grade router companies running a version of Unix on control plane moved the entire TCP stack to user space, since all other components, including IP, were in user space.
Now, if we look at why or what could be causing the shift of networking stack to user space, here are few causes and advantages:
1) Increased Efficiency
– Protocol stack and the app it is serving are now both much closer
– Reduces context-switches, making data transfer more efficient
2) Faster Innovation
– Being able to innovate faster with quick and iterative release of user space components
– Kernel changes, on the other hand, take much longer to deploy and require service disruption during the upgrade process
3) Better Stability
– Kernel interacts with a lot of components, and thus ensures that kernel changes will require a great deal more caution, testing and time
– Moving protocol stack to user space helps containerize the required changes, improving overall system stability.
As a company that accelerates mobile apps and reduces those apps’ error rates, we see this as a trend that benefits overall global app performance.
At Neumob we embed our protocol stack within the SDK, and it is completely in user space. This is why we already have all the flexibility and performance benefits described above. We will continue to innovate in our approach to provide our customers – and their customers – with increasingly better app performance and error reduction.