<story><title>Robdns – A fast DNS server based on C10M principles</title><url>https://github.com/robertdavidgraham/robdns</url></story><parent_chain><item><author>jvehent</author><text>&amp;quot;The key feature is a built-in custom TCP&amp;#x2F;IP stack capable of handling millions of DNS queries-per-second per CPU core.&amp;quot;&lt;p&gt;DNS uses UDP primarily. I suspect the author meant &amp;quot;UDP&amp;#x2F;TCP&amp;#x2F;IP&amp;quot; by &amp;quot;TCP&amp;#x2F;IP&amp;quot;.&lt;p&gt;Years ago, I wrote a basic TCP stack for a honeypot research project. It is hard and incredibly complex. So this statement raises a number of concerns, and will need to be audited before being used in production.</text></item></parent_chain><comment><author>cperciva</author><text>&lt;i&gt;I wrote a basic TCP stack for a honeypot research project. It is hard and incredibly complex.&lt;/i&gt;&lt;p&gt;Yes and no.  Most of the complication comes from extra functionality (segmentation offload, checksum offload, SACK) or from functionality which is required by the standard but not relevant for a DNS resolver (congestion control, window management, TCP timers).&lt;p&gt;If all you&amp;#x27;re doing is accepting a TCP connection, reading a small request, and writing a small response back, you can remove about 90% of the code from your TCP stack.</text></comment>
<story><title>Robdns – A fast DNS server based on C10M principles</title><url>https://github.com/robertdavidgraham/robdns</url></story><parent_chain><item><author>jvehent</author><text>&amp;quot;The key feature is a built-in custom TCP&amp;#x2F;IP stack capable of handling millions of DNS queries-per-second per CPU core.&amp;quot;&lt;p&gt;DNS uses UDP primarily. I suspect the author meant &amp;quot;UDP&amp;#x2F;TCP&amp;#x2F;IP&amp;quot; by &amp;quot;TCP&amp;#x2F;IP&amp;quot;.&lt;p&gt;Years ago, I wrote a basic TCP stack for a honeypot research project. It is hard and incredibly complex. So this statement raises a number of concerns, and will need to be audited before being used in production.</text></item></parent_chain><comment><author>tptacek</author><text>Could you be a little more specific about what&amp;#x27;s incredibly complex about writing an interoperable TCP stack?&lt;p&gt;That aside: if I had to guess, this would be Robert Graham&amp;#x27;s 10th IP stack. He&amp;#x27;s been doing this (specifically) since the late 1990s.</text></comment>