Tsein DNS is a robust and high performance DNS resolver supporting multiple DNS protocols.
Tsein indicates Arrow in Hunanese.
It is currently still under development and SHOULD NOT be used for production use.
The software will implement a connection manager, a DNS cache and other utilities for DNS resolving.
As is explained in RFC7766 and RFC7858, to save the overhead of TLS/TCP handshacking in DNS over TCP and DNS over TLS connections, the TLS/TCP connections between server and clients should be kept as long as possible.
Meanwhile, a single process can only open limited bunch of files, which is also how socket
s access as, in Linux system. When the time comes, some connections have to be droped.
If implemented properly, along with every DNS packet should comes a pipe
, upper layers of the server's transaction routine could be simplified.
It's obvious that even in the world of domain names we can still come up with locality of references. So that a simple LRU cache can empower us with ideal hit rate and memory usage.
And integrating recursive lookup into the DNS cache could reduce redundant code and avoid racing on recursive looking ups.
This work is licensed under Mozilla Public License v2.0, Use it for free.