Asynchronous 客户端操作系统上的DNS查询是否已序列化?

Asynchronous 客户端操作系统上的DNS查询是否已序列化?,asynchronous,dns,web-crawler,Asynchronous,Dns,Web Crawler,即使您在Linux或windows上发出多个并行异步DNS解析请求(以编程方式),操作系统是否会序列化这些请求,而不是并行发送它们 正如我在一些地方读到的,gethostbyname或DnsResolve API是在最底层序列化的,甚至有人编写了这个异步dns python库来戏剧性地加快dns解析 因此,是否有任何.NETAPI或一般情况下,它可以根据我的程序给出的请求数并行工作 想象一个webcrawl场景,我每秒需要大量dns查询,在一些早期的web爬网出版物中,提到dns成为瓶颈。在L

即使您在Linux或windows上发出多个并行异步DNS解析请求(以编程方式),操作系统是否会序列化这些请求,而不是并行发送它们

正如我在一些地方读到的,gethostbyname或DnsResolve API是在最底层序列化的,甚至有人编写了这个异步dns python库来戏剧性地加快dns解析

因此,是否有任何.NETAPI或一般情况下,它可以根据我的程序给出的请求数并行工作


想象一个webcrawl场景,我每秒需要大量dns查询,在一些早期的web爬网出版物中,提到dns成为瓶颈。

在Linux下,
gethostbyname()
将有效地序列化,这不仅仅是因为它在得到答案之前不会返回调用方。然而,这仅仅取决于库的实现,并不是O/s实现了这一点


还有很多其他库可以替代
gethostbyname
,它们执行完全异步的解析,允许同时进行多个查询。一个特别好的这样的库是
libunbound
,它是递归DNS服务器发行版的一部分。

我被阻塞了。看起来它确实是连载的……是的。我需要一个c#的并行库。在Windows上有适合.NET的异步库吗?