2010-12-10 9 views
2

LinuxまたはWindowsで複数の並列非同期DNS解決要求(プログラム的に)を出しても、OSは要求をシリアル化して、それらをすべて並列に送信しませんか?私はのgethostbynameまたはDnsResolve APIは最下層で連載されている場所で読んでクライアントOSのDNSクエリはシリアル化されていますか?

、でも誰かがdramaticcally DNS解決

http://www.catonmat.net/blog/asynchronous-dns-resolution

のでありえないがいずれかを

をスピードアップするために、この非同期DNSのPythonライブラリを書いています。 NET APIまたは一般的に私のプログラムによって与えられた要求の数に応じて並行して動作することができますか?

ウェブクロールのシナリオでは、毎秒多くのdnsクエリが必要になることを想像してください。いくつかの初期のWebクロールの出版物では、dnsがボトルネックになると言われています。

+0

私は窒息しています。それは実際にそれが連載して登場しました.... – BarsMonster

+0

はい。私はCのための並列ライブラリが必要です# –

答えて

1

Linuxでは、回答があるまで実際に呼び出し元に戻ることはないため、gethostbyname()は効果的にシリアル化されます。しかし、それはライブラリの実装になっています。これを行うのはO/Sではありません。

gethostbynameを置き換える完全な非同期解決を実行するライブラリが多数あり、複数のクエリを一度に処理できるようになっています。このようなライブラリは特にlibunboundであり、これは再帰的DNSサーバー配布のUnboundの一部です。

+0

Windows上の.NETに適した非同期ライブラリはありますか? –

関連する問題