仕事で毎日使用されている DNS プロトコルを本当に理解していますか? (記事の最後にサプライズがありますのでお見逃しなく)

♥ はじめに

私たちがいくつかの Web サイトに頻繁にアクセスするとき、ブラウザに www.baidu.com のようなアドレスを入力し、次にこのアドレスをブラウザに入力します ---> 百度サーバーはこの百度ページを返します。途中のプロセスは何ですか?

この質問を念頭に置いて、プロセスを一緒に分析しましょう。

1.ドメイン名とIPの関係

まず、「www.baidu.com」や「www.sina.com.cn」などのアドレスを総称してドメイン名と呼びます。では、ドメイン名を使ってアクセスした後、リクエストは対応するサーバーに直接届くのでしょうか?

いいえ!

このプロセスでは、ドメイン名を IP アドレスに変換する必要があり、IP アドレスを検索するだけでサーバーの場所が特定され、サーバーはリクエストを受け取ることができます。

ドメイン名と IP の間でこの変換操作を実行する必要があるのはなぜですか? 2 つの質問に答えてみましょう。

  1. では、なぜ IP アドレスを使用して直接通信しないのでしょうか?

    IP アドレスはユーザーが覚えにくいため、ドメイン名はユーザーが覚えて使用するのに便利です。たとえば、www.baidu.com は Baidu のドメイン名で、www.sina.com.cn は Baidu のドメイン名です。 Sina は非常に理解しやすく覚えやすいです。

  2. では、サーバーを見つけるためにドメイン名を使用しないのはなぜでしょうか?

これは、ドメイン名の長さが固定されていないため、コンピュータが処理するのに不便であり、IP アドレスは固定長であり、IPv4 アドレスの場合は 32 ビット、IPv6 アドレスの場合は固定長であるためです。 、128ビットなので、固定長の方がコンピュータで処理しやすいです。

つまり、IP アドレスはホスト用であり、ドメイン名はユーザー用です。したがって、ドメイン名と IP アドレスを相互に変換する必要があります。

2.ドメイン名をIPアドレスに変換する

ホストファイル

当初、人々はコンピュータの hosts ファイルを使用してドメイン名と IP を変換していました。

以下の図に示すように、コンピューターのパス C:\Windows\System32\drivers\etc にホスト ファイルがあり、ドメイン名と IP の対応関係を保存できます。

写真

自動テストを学びたい場合は、ここで一連のビデオをお勧めします。このビデオは、ステーション B のネットワーク全体における最初のインターフェイス自動テスト チュートリアルと言えます。同時に、オンライン ユーザーの数は増加しています。 1,000 に達しました。収集すべきメモとさまざまな Lu Dashen Technical Exchange があります: 798478386      

 【更新】B局が教えるPythonインターフェースの自動テストの最も詳しい実践チュートリアル集(実戦最新版)_哔哩哔哩_bilibili 【更新】Pythonの自動テストの最も詳細な実践チュートリアル集B局が教えるインターフェース(実戦編) 最新版)には以下の動画が合計200本あります: 1. 【インターフェース自動化】ソフトウェアテストの市場状況とテスターの能力基準。, 2. [インターフェイスの自動化] Requests ライブラリとその基礎となるメソッド呼び出しロジックに精通した、3. [インターフェイスの自動化] インターフェイスの自動化戦闘と正規表現と JsonPath エクストラクターの適用など。さらにエキサイティングなビデオについては、注目してください。 UPアカウント。https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337&vd_source=488d25e59e6c5b111f7a1a1a16ecbe9a

図の枠で囲まれた行は、IP アドレス 120.24.89.47 をドメイン名 www.tricy1.com にマッピングします。構成が完了すると、ドメイン名 www.tricy1.com が実際に登録されたドメイン名でなくても、このコンピュータ上のドメイン名 www.tricy1.com にアクセスして、この IP アドレスに対応する Web サイト (レモン) にアクセスできます。クラステストパイフォーラム)。

hostsファイルは、当初はインターネットインフォメーションセンターで管理されていますが、新しいコンピュータをネットワークに接続する場合や、コンピュータのIPが変更された場合には、インフォメーションセンターにhostsファイルの変更申請が必要になります。他のコンピュータもオンラインにするには定期的なアップデートが必要です。しかし、これは面倒すぎる。操作を容易にするために、DNS プロトコルが登場しました。

DNSプロトコル

DNS プロトコル (ドメイン ネーム システムの正式名) は、UDP または TCP プロトコルに基づくアプリケーション層プロトコルで、デフォルトでポート 53 を使用します。

クライアントはデフォルトで UDP プロトコルで通信しますが、広域ネットワークは大きな UDP パケットの送信には適していないため、パケット長が 512 バイトを超える場合は、TCP プロトコルを使用してデータ送信するように変換することが規定されています。したがって、DNS プロトコルは、基礎となるプロトコルとして UDP プロトコルと TCP プロトコルの両方を使用できる珍しいアプリケーション層プロトコルです。

このプロトコルの機能は、人間が読めるドメイン名 (www.qq.com など) を機械が読める IP アドレス (119.147.15.13 など) に変換することです。

写真

ドメイン名の階層:

上の図に示すように、ドメイン名の中央はドットで区切られています。それぞれの点は何を表しているのでしょうか?

ドメイン名は階層構造であり、ドメイン ネーム サーバーも、ルート ドメイン名、トップレベル ドメイン ネーム システム、セカンド レベル ドメイン ネーム システム、およびドメイン ネーム システムという対応する階層構造であることを理解する必要があります。次の図に示すように、第 3 レベルのドメイン ネーム システム。

写真

 世界にはルートサーバーが 13 台あり、その 13 台のルートドメインネームサーバーの中国語名は「A」から「M」で、このうち 10 台は米国、残りの 3 台は英国にそれぞれ設定されています。 、スウェーデン、そして日本。1 つのプライマリ ルート サーバーが米国に配置され、残りの 12 台はセカンダリ ルート サーバーです。

たとえば、ドメイン名www.baidu.comの階層構造は次のとおりです。

com: トップレベルのドメイン名。これが企業ドメイン名であることを示します。

baidu: 第 2 レベルのドメイン名。会社名を指します。

www: インターネット プロトコル (World Wide Web)

通常、ドメイン名は 5 レベルを超えることはできず、ドメインのレベルは左から右に向かって高くなり、上位レベルのドメインには下位レベルのドメインが含まれます。ドメイン名はインターネット全体で一意であり、上位サブドメインが同じ場合、下位サブドメインを重複させることはできません。

ドメイン名の構造では、ドメイン名を解決するものが必要です。それがドメイン ネーム サーバーです。

ドメイン名は、世界中のドメイン ネーム サーバーによって解決される必要があります。ドメイン ネーム サーバーは、実際にはドメイン ネーム システムがインストールされたホストです。

DNS解決プロセス

写真

 上に示したように、DNS 解決のプロセスを分析してみましょう。

ユーザーはクライアント ブラウザを通じて Baidu サーバーにアクセスしたいと考えています。ドメイン名は www.baidu.com です。

  1. ユーザーがブラウザに www.baidu.com ドメイン名を入力すると、デフォルトの優先順位はブラウザのキャッシュを検索して、そのドメイン名に対応する IP アドレスがキャッシュに含まれているかどうかを確認することです。

  2. ブラウザで見つからない場合は、システム内の Hosts ファイルに対応する IP アドレスがあるかどうかを確認します。

  3. ホスト内にこのドメイン名のマッピングがない場合は、ローカル DNS サーバーを探します。

  4. そうでない場合は、DNS サーバーを通じてルート ドメイン ネーム サーバーを検索します。ルート ドメイン ネーム サービスは、クエリに使用できるトップレベル ドメイン ネーム サーバーの IP アドレスを返します。

  5. トップレベルのドメイン ネーム サーバーは DNS 応答メッセージを返します。

  6. ホストが応答メッセージを受信すると、通常どおりサーバーにアクセスでき、次回使用するために結果を保存します。


DNSプロトコルの問い合わせ方式は以下の2種類に分かれます。


再帰クエリ: マシンはクエリ要求をローカル ドメイン ネーム サーバーに送信し、最終結果を待ちます。ローカル ドメイン ネーム サーバーが解決できない場合は、最終的な IP アドレスを取得してこのマシンに通知するまで、DNS クライアントとして他のドメイン ネーム サーバーにクエリを実行します。

写真

反復クエリ: ローカル ドメイン ネーム サーバーはルート ドメイン ネーム サーバーにクエリを実行し、ルート ドメイン ネーム サーバーは次にどこにクエリを実行するかを指示し、クライアントとして各サーバーにクエリを実行するたびに再度チェックします。

写真

再帰とは、平たく言えば、一つのことを他の人に引き渡すことです。それが完了していない場合は、たとえそれが何度も行われたとしても、結果を教えてください。私が欲しいのは中間結果ではなく、最終的な結果です。 ; そうでない場合は、終了したら、他の人を見つけて終了してください。

反復は私があなたに与えることの 1 つです。あなたがどれだけできるかを教えてください。そうすれば残りは私がやります。

おすすめ

転載: blog.csdn.net/caixiangting/article/details/132212661