CDN - 原理分析

1. ブラウザのネットワークリクエスト

CDN を理解するには、まずブラウザがリクエストを送信するプロセスを理解する必要がありますが、全体的なプロセスは次の図に示されています。

  1.  ユーザーはブラウザにアクセスするURLのドメイン名を入力します。
  2. ブラウザはローカル DNS サーバーにドメイン名の解決を要求します。
  3. ローカル DNS サーバーがドメイン名の解決結果を持っている場合、ユーザーの要求に直接応答して、ドメイン名に対応する IP アドレスを返します。
  4. ローカル DNS サーバーがドメイン名の解決結果を持っていない場合、DNS システムに再帰的に解決を要求し、結果をユーザーに返します。
  5. ブラウザがドメイン名解決結果を取得すると、それは実際にはドメイン名に対応する IP アドレスになります。
  6. 次に、ブラウザはサーバーにコンテンツを要求します。
  7. サーバーはユーザーが要求したコンテンツをブラウザーに返します。

このような複雑な手順を経て、ユーザーはページの内容を確認することができます。しかし、実際には、6番目と7番目のステップの間には、非常に複雑なプロセスも経ています。これをより明確に表現するために、次の図に示すように、このプロセスを 3 つの主要なノードに分割できます。

 Web サイトのサーバーは、公衆ネットワークを通って出て、次に長距離バックボーン ネットワークを通過し、最終的にユーザーのブロードバンド ブロードバンド モデムを介してユーザーのローカル エリア ネットワークに到達し、最終的にユーザーのコンピュータのブラウザに到達します。

このうち、長距離バックボーンネットワークの伝送には最も時間がかかり、Webサイトサーバーのあるコンピュータルーム、バックボーンネットワーク、ユーザーの所在地の首都圏ネットワーク、ネットワークを経由する必要があります。ユーザーがいるネットワークにアクセスし、物理的な伝送距離が非常に長い。 

この場合、大量のデータが送信され、特にアクセスするユーザーの数が多い場合、長い遅延が発生し、ユーザーエクスペリエンスに影響を与えます。同時に、データのリクエストごとに長いデータ送信が必要となり、長距離バックボーン ネットワークにとって負担となります。

先ほど挙げたシーンの非常に鮮明な例は、春祭りのチケットをつかむシーンです。春節のチケットを入手するとき、12306 の Web サイトにログインします。Web サイトには画像リソースがたくさんあるはずです。このとき、同時に 1 億人が同じ写真を要求する可能性があります。

このとき、私たち全員が上記のプロセスに従って画像データを 1 回要求すると、1 億件のネットワーク データ送信が発生し、これは国全体のインターネット インフラストラクチャにとって大惨事になります。

しかし実際には、12306 は電話を切っていないようです。

では、彼らはこの問題をどのように解決するのでしょうか? 答えは「CDN」です!

2. CDN とは何ですか?

実はCDNとはコンテンツ配信ネットワークのことで、英語の正式名称はContent Delivery Networkです。

簡単に言えば、CDN は、長距離バックボーン ネットワークを介した長距離移動を回避するために、ユーザーに最も近いデータ ノードにデータを事前に保存し、最終的にバックボーン ネットワークの負担を軽減し、アクセスを向上させるという目的を達成します。スピード。 

上記のシナリオによれば、CDN がない場合、各リクエストは Web サイト サーバーからパブリック ネットワークの出口、長距離バックボーン ネットワーク、ユーザーの LAN へのアクセスを経て、最終的にブラウザに到達する必要があります。ただし、CDN がある場合は次のようになります。

 

ブラウザーが画像データを要求すると、まず CDN キャッシュ サーバーにアクセスして画像データを取得します。データが取得された場合は、直接戻ります。それ以外の場合は、長距離のバックボーン ネットワークを経由して、最終的に Web サイトのサーバーに到達して画像データを取得します。そのため、事前に CDN キャッシュ サーバーに写真をアップロードしておけば、ネットワーク トラフィックとネットワーク遅延を大幅に削減できます。

上の図から、これは長距離バックボーン ネットワークとユーザーの LAN の間にサーバーを追加するだけではないかと思われるかもしれません。しかし実際にはそうではなく、CDN は実際にデータを要求する距離を短縮します。

ユーザーの所在地は全国各地にある可能性があるため、ネットワーク伝送の遅延をできる限り軽減するために、CDN キャッシュ サーバーは一般的にユーザーの近くに設置されます。中国の半分を行き来することなく、対応する CDN サーバーに直接リクエストできるため、効率が大幅に向上します。

したがって、コンテンツ配信ネットワークについて話すときは、次の図を念頭に置く必要があります。国中の CDN キャッシュ サーバーがコンテンツ配信ネットワークを形成しているということです。各ユーザーリクエストは最寄りの CDN サーバーに送信されてデータをリクエストするため、アクセス速度が大幅に向上します。

3. CDNの動作原理

この時点では、誰もが CDN が何であるかを理解していると思います。しかし実際には、CDN を DNS と組み合わせる方法はまだ少し複雑です。CDN に参加すると、ブラウザのネットワーク リクエストは次の図のようになります。

  1. ブラウザーは画像 URL 要求を開始し、ローカル DNS 解決の後、ドメイン名解決権がドメイン名 CNAME が指す CDN 専用 DNS サーバーに引き渡されます。

  2. CDN の DNS サーバーは、CDN のグローバル ロード バランシング デバイスの IP アドレスをブラウザに返します。

  3. ブラウザは、CDN グローバル ロード バランシング デバイスへの URL リクエストを開始します。

  4. CDN グローバル負荷分散デバイスは、ユーザーの IP アドレスとユーザーが要求した URL に基づいて、ユーザーが属する地域内の地域負荷分散デバイスを選択し、そのデバイスに対する要求を開始します。

  5. 地域負荷分散デバイスは、ユーザーに最適な CDN キャッシュ サーバーを選択し (考慮の基礎にはサーバー負荷、ユーザーからの距離などが含まれます)、それをグローバル負荷分散デバイスに返します。

  6. グローバル負荷分散デバイスは、選択された CDN キャッシュ サーバーの IP アドレスをユーザーに返します。

  7. ユーザーは CDN キャッシュ サーバーへのリクエストを開始し、キャッシュ サーバーはユーザーのリクエストに応答し、最終的にユーザーが必要とするコンテンツをブラウザーに返します。

CDN サービスを使用する Web サイトは、ドメイン名解決権限を CDN サービス プロバイダーに引き渡し、配布するコンテンツを CDN にアップロードするだけで、コンテンツの高速化を実現できます。

4. まとめ

このように見てみると、実際、CDN コンテンツ配信ネットワークは本質的に世界中の多数のキャッシュ サーバーで構成されています。DNSと連携し、ユーザーに最も近いCDNキャッシュサーバーを探し出し、ユーザーに迅速にデータを配信します。

CDN テクノロジーを通じて、バックボーン ネットワーク全体のトラフィック負荷を軽減するだけでなく、ユーザー エクスペリエンスも向上します。

おすすめ

転載: blog.csdn.net/qq_34272760/article/details/126294546