ネットワークアプリケーションとサービス
ネットワークアプリケーションとサービスは、ネットワークのエッジで実行され、ウェブや電子メールからドメインネームシステムやコンテンツ配信ネットワークに至るまで、その下のトランスポートサービスに基づいて構築され、ユーザーに価値を提供するプログラムとプロトコルです。
Definition
アプリケーション層は、最も上位のプロトコル層であり、ネットワーク化されたアプリケーションプロセスがアプリケーション固有のプロトコルに従ってメッセージを交換します。ネットワークサービスは、それらのアプリケーションが依存する、名前解決やコンテンツ配信などのサポートインフラストラクチャです。
Scope
この分野は、アプリケーション層とそれをサポートするインフラストラクチャサービスを対象としています。具体的には、アプリケーションアーキテクチャ(クライアントサーバーとピアツーピア)、HTTP、SMTP、FTPなどのコアアプリケーションプロトコル、人間が読める名前をアドレスにマッピングするドメインネームシステム、ユーザーの近くにコンテンツを複製するコンテンツ配信ネットワーク、および通信システムに適用されるネットワークセキュリティの概要が含まれます。この分野では、それが依存するトランスポート層のメカニズムは除外し、アプリケーションが公開するサービスとそれらが使用するプロトコルに焦点を当てています。
Sub-topics
Core questions
- ネットワークアプリケーションはどのように構築されているのか — クライアントサーバーとピアツーピア — そしてそのトレードオフは何か?
- HTTPやSMTPなどのコアアプリケーションプロトコルは、メッセージ形式と相互作用をどのように定義しているのか?
- ドメインネームシステムは、スケーラブルで分散された方法で名前をアドレスにどのように変換するのか?
- コンテンツ配信ネットワークは、ユーザーの近くにコンテンツを複製することで、遅延と負荷をどのように軽減するのか?
- ネットワークアプリケーションは、どのようなセキュリティ特性(機密性、完全性、認証)を提供する必要があり、どのように提供するのか?
Key concepts
- クライアントサーバーアーキテクチャ
- ピアツーピアアーキテクチャ
- HTTPとウェブ
- 電子メールプロトコル(SMTP、IMAP)
- ドメインネームシステム(DNS)
- DNSキャッシュと階層
- コンテンツ配信ネットワーク(CDN)
- ソケットとアプリケーションAPI
- 機密性、完全性、認証
- トランスポート層セキュリティ(TLS)
Key theories
- クライアントサーバーアーキテクチャとピアツーピアアーキテクチャ
- アプリケーションは、クライアントが接続する常時稼働のサーバーを中心に構成されるか、参加ホストが要求と提供の両方を行うピアツーピアシステムとして構成されます。前者は管理を一元化しますが負荷を集中させ、後者はユーザー数に応じてスケーリングしますが、管理とセキュリティを複雑にします。
- 階層的で分散された名前解決(DNS)
- ドメインネームシステムは、委任された権威サーバーの階層と積極的なキャッシングを通じて名前をアドレスに解決し、単一の組織がエンドツーエンドで制御することなく、スケーラブルで回復力のあるルックアップサービスを提供します。
- コンテンツの複製と配信
- コンテンツ配信ネットワークは、ユーザーの近くのサーバーにコンテンツのコピーを配置し、各リクエストを適切なレプリカに誘導することで、遅延、オリジンサーバーの負荷、およびバックボーンのトラフィックを削減します。これは、大規模なウェブおよびストリーミングサービスが良好なパフォーマンスを発揮する主要な理由の一つです。
Clinical relevance
アプリケーション層は、ユーザーが実際に体験するものです。ウェブ、ストリーミングメディア、メッセージング、クラウドサービスはすべてここに存在します。DNSは、ほとんどすべてのオンラインインタラクションにとって不可欠な依存関係であり、その障害は広範囲に波及します。コンテンツ配信ネットワークは、インターネットトラフィックの大部分を運び、ビデオやソフトウェアを大規模に配信する上で中心的です。一方、TLSを介したアプリケーション層セキュリティは、日常の通信の機密性と完全性を保護します。
History
初期のインターネットアプリケーションは電子メールとファイル転送でした。ティム・バーナーズ=リーが1990年頃にHTTPとHTMLを用いて発明したワールドワイドウェブは、インターネットをマスメディアへと変革しました。ドメインネームシステム(モカペトリス、1980年代半ば)は、フラットなホスト名ファイルをスケーラブルな分散ディレクトリに置き換えました。コンテンツ配信ネットワークは、ウェブの成長に対応するために1990年代後半に出現し、アプリケーション層の暗号化は、通信を保護するためにSSLからTLSへと成熟しました。
Debates
- 集中型クライアントサーバークラウドサービスと分散型ピアツーピアシステム
- 集中型クラウドアーキテクチャは、管理性と一貫したパフォーマンスを提供しますが、制御を集中させ、単一障害点を作り出します。一方、ピアツーピアおよび分散型設計は、複雑さを犠牲にして負荷と制御を分散させます。このバランスは、ファイル共有、コンテンツ配信、および新たな分散型ウェブの取り組みにおいて繰り返し議論されています。
Key figures
- Tim Berners-Lee
- Paul Mockapetris
- Roy Fielding
- Jon Postel
Related topics
Seminal works
- kurose2021
- rfc9110
- rfc1035
Frequently asked questions
- ドメインネームシステムは何をしますか?
- DNSは、example.comのような人間が読みやすい名前を、ネットワーク層がパケットをルーティングするために必要なIPアドレスに変換します。これは、キャッシングを備えた分散型階層データベースであるため、ルックアップは高速であり、単一のサーバーがすべての名前を保持することなく、システムはインターネット全体にスケーリングします。
- コンテンツ配信ネットワークはどのようにウェブを高速化しますか?
- CDNは、世界中に分散された多数のサーバーにコンテンツのコピーを保存し、各ユーザーのリクエストを近くのコピーに誘導します。これにより、ネットワークパスが短縮され、遅延とパケット損失が減少します。また、オリジンサーバーの負荷を軽減し、長距離トラフィックを削減することで、全体的な速度と信頼性が向上します。