こんにちは、かじです。
今回は、URLをブラウザに入力してから、実際にウェブサーバーのIPアドレスを探すまでの一連のプロセスについて解説します。
1. gethostbynameでアプリケーションがリゾルバを呼び出す
最初に、アプリケーションは特定のURLのIPアドレスを取得するために、リゾルバ(Resolver)を呼び出します。リゾルバは、socketライブラリにある部品化されたプログラムであり、OSのプロトコルスタックを呼び出して実行を依頼します。
2. プロトコルスタックとリゾルバの役割
プロトコルスタックは、OSに組み込まれているネットワーク制御用のソフトウェアです。一方、リゾルバはsocketライブラリに含まれ、アプリケーションがネットワーク機能を利用する際に使用されます。
3. 最寄りのDNSサーバーのキャッシュを確認
アプリケーションからの要求により、最初にローカルなDNSサーバーのキャッシュをチェックします。もしキャッシュに情報があれば、そこでIPアドレスが見つかる可能性があります。
4. DNSルートサーバーへの問い合わせ
ローカルなDNSサーバーのキャッシュに情報がない場合、次に最上位のDNSルートサーバーに問い合わせます。この際、例えば「com」や「jp」の最上位ドメインのDNSサーバーのIPアドレスを取得します。
5. DNSサーバーの検索
DNSサーバーは、世界に13ヶ所あるDNSルートサーバーのIPを記憶しており、最上位のドメインから下位のドメインのIPを検索します。
6. 該当のドメインが見つかるまで繰り返す
このプロセスは、該当のドメインが見つかるまで繰り返されます。検索された情報は階層的に探索され、要求されたドメインに関するIPアドレスが見つかるまで、上位から下位へと繰り返し問い合わせが行われます。
DNSのこのような動作は、インターネット上で正確な情報を提供し、ユーザーが正しいウェブサイトにアクセスできるようにしています。
以上が、URLをブラウザに入力してからWEBサーバーのIPアドレスを探すまでのプロセスです。DNSの仕組みは、ユーザーがウェブサイトにアクセスする際に非常に重要な役割を果たしています。
このようなプロセスを詳しく解説しました。DNSがドメインを見つけるための階層的な検索システムが、インターネット上で正確な情報を提供する上で欠かせない要素です。
– 参考書籍 –
ネットワークはなぜつながるのか 第2版 知っておきたいTCP/IP、LAN、光ファイバの基礎知識
– 画像出典元 –