dns and software, was Re: Reliable Cloud host ?

Michael Thomas mike at mtcc.com
Thu Mar 1 12:32:44 CST 2012


On 03/01/2012 08:58 AM, William Herrin wrote:
> On Thu, Mar 1, 2012 at 10:01 AM, Michael Thomas<mike at mtcc.com>  wrote:
>> On 03/01/2012 06:26 AM, William Herrin wrote:
>>> The even simpler approach: create an AF_NAME with a sockaddr struct
>>> that contains a hostname instead of an IPvX address. Then let
>>> connect() figure out the details of caching, TTLs, protocol and
>>> address selection, etc.  Such a connect() could even support a revised
>>> TCP stack which is able to retry with the other addresses at the first
>>> subsecond timeout rather than camping on each address in sequence for
>>> the typical system default of two minutes.
>>
>> The effect of what you're recommending is to move all of this
>> into the kernel, and in the process greatly expand its scope.
> Hi Michael,
>
> libc != kernel. I want to move the action into the standard libraries
> where it can be done once and done well. A little kernel action on top
> to parallelize connection attempts where there are multiple candidate
> addresses would be gravy, but not required.

connect(2) is a kernel level call just like open(2), etc. It may
have a thin wrapper, but that's OS dependent, IIRC.

man connect 2:

"The  connect()  system  call connects the socket referred to by the file descriptor..."

Mike



More information about the NANOG mailing list