An online (free) book on current networking technologies, from TCP to HTTP 2.0 and WebSockets.
MPTCP is an extension to TCP that decouples it from the underlying IP. This is specially important in wireless networks and mobile devices, where multihoming is becoming the norm instead of the exception.
splice() is a Linux system call that can be used for copying data from a socket to another socket or a file. The big advantage of using splice is that it performs the data transfer with the so-called zero-copy: data remains in kernel space and is never copied to user space, and that makes a big difference.
This code shows how to use splice from Python. From the description:
Using the ‘splice’ syscall from Python, in this demonstration to transfer the output of some process to a client through a socket, using zero-copy transfers.
An article by Kathleen Nichols and Van Jacobson. They expose a new algorithm, CoDel (Controlled Delay Management), for “partially” solving the bufferbloat problem, where network buffers remain persistently full:
Although essential to the operation of packet networks, buffers tend to fill up and remain full at congested links, contributing to excessive traffic delay and losing the ability to perform their intended function of absorbing bursts.
Some ideas from Google’s engineers on making TCP connections faster. Of course, they are focused on making short, HTTP connections fast, not all the TCP traffic, so it makes sense to increase the initial congestion window to 10 or reduce the initial timeout to 1 second. I’m not so sure you could use those modifications on all kind of TCP traffic, but it is good to see such an influential company doing some research on this kind of stuff…