Consider setting TCP_NOTSENT_LOWAT to 1 byte on our TCP connections
This TCP option would provide us and important performance benefit at the relay side.
In an effort to work on a new tor design to reduce kernel queuing delays, see it as an improvement to KIST and tor architecture, Rob and I submitted this paper to NetDev 0x14 conference in hope of sitting down with the Linux kernel developers and network experts about this idea.
Ultimately we want a new poll TCP option in the kernel which our experimentation shows how it improves performance drastically.
But turns out that starting with setting
TCP_NOTSENT_LOWAT to 1 byte would significantly improve performance close to what we wanted. See
Figure 1. (page 3) in the paper for the performance improvements.
TCP_NOTSENT_LOWAT is minimal change to tor and thus we should do it.