コンピュータネットワーク-第2章、アプリケーション層

1.アプリケーション層プロトコルの概要

应用层对应用程序的通信提供服务

アプリケーション層プロトコルの定義

アプリケーションプロセス、要求、または応答によって交換されるメッセージのタイプ。

メッセージの各フィールドやその詳細な説明など、さまざまなメッセージタイプの構文。

フィールドのセマンティクス、つまり、フィールドに含まれる情報の意味。

プロセスがメッセージを送信するタイミングと方法、およびメッセージに応答するためのルール。

アプリケーション層の主な機能と対応するプロトコル

ファイル転送、アクセス管理。(FTP)
電子メール(SMTP、POP3)
仮想端末(HTTP)
クエリサービス、リモートログイン(DNS)

クライアントサーバー(C / S)モデル

サーバー:コンピューティングサービスを提供し、サービスを提供し、アドレス/ドメイン名にアクセスするデバイス。

クライアント:コンピューティングサービスを要求しているホスト。ホストと通信し、サーバーが提供するサービスを使用し、断続的にネットワークにアクセスし、動的IPアドレスを使用し、他のクライアントと直接通信しないでください。

P2Pモデル

ここに画像の説明を挿入

P2Pは、ピアツーピアインターネットとして理解できます。P2Pモデルでは、ネットワーク参加者は所有するリソースの一部を共有します。これらのリソースはネットワークを介してサービスとコンテンツを提供し、他のピアノードから直接アクセスできます。ノードはIPアドレスを変更できます。ネットワーク参加者は両方ともサービスプロバイダー(サーバー)です。 。)、リソースアクワイアラー(クライアント)でもあります。

プロセスコミュニケーション

通信は実際にはスレッドです。2つの異なるエンドシステム上のプロセスは、コンピューターネットワークを介してメッセージを交換することによって相互に通信します。送信プロセスはメッセージを生成してネットワークに送信し、受信プロセスはこれらのメッセージを受信し、メッセージを送り返すことで応答する場合があります。

クライアントとサーバーのプロセス

ネットワークアプリケーションは、ネットワークを介して相互にメッセージを送信するプロセスのペアで構成されています。

通信プロセスのペアごとに、通常、これら2つのプロセスの1つをクライアントとして識別し、もう1つのプロセスをサーバーとして識別します。プロセスのペア間の特定の通信セッションシナリオでは、通信を開始する(つまり、セッションの開始時に他のプロセスとの接続を開始する)プロセスがクライアントとして識別され、最初に接続されるのを待機しているプロセスセッションのはサーバーです。

Webの場合、ブラウザーはクライアントプロセスであり、Webサーバーはサーバープロセスです。PPファイル共有の場合、ファイルをダウンロードするピアはクライアントとして識別され、ファイルをアップロードするピアはサーバーとして識別されます。

プロセスとコンピューターネットワークインターフェース

あるプロセスから別のプロセスに送信されるメッセージは、次のネットワークを通過する必要があり、プロセスは、と呼ばれる套接字ソフトウェアインターフェイスを介してネットワークとメッセージを送受信します。

ソケットはネットワークアプリケーションを確立するためのプログラム可能なインターフェイスであるため、ソケットはアプリケーションとネットワーク間のアプリケーションプログラミングインターフェイスとも呼ばれます(Application Programming Interface,API)アプリケーション開発者は、ソケットのアプリケーション層ですべてを制御できますが、ソケットのトランスポート層をほとんど制御できません。トランスポート層に対するアプリケーション開発者の制御は、

①トランスポート層プロトコルを選択する

②最大バッファ、最大セグメント長など、複数のトランスポート層パラメータを設定できる場合があります。

アプリケーション開発者がトランスポート層プロトコルを選択すると、アプリケーションは、プロトコルによって提供されるトランスポート層サービス上に構築されます。

プロセスアドレス指定

あるホストで実行されているプロセスが別のホストで実行されているプロセスにパケットを送信するには、受信プロセスにアドレスが必要です。受信プロセスを識別するには、次の2種類の情報を定義する必要があります。


ホストのアドレス②宛先ホストで受信プロセスの識別子を定義します。

ここに画像の説明を挿入

ドメイン名

ドメインネームサーバー

ここに画像の説明を挿入

ドメイン名解決プロセス

ここに画像の説明を挿入

2、HTTPプロトコル

概要概要

Webのアプリケーション層プロトコルはハイパーテキスト転送プロトコル(HTTP)です。HTTPは、WebクライアントがWebサーバーからWebページを要求する方法、およびサーバーがWebページをクライアントに送信する方法を定義します。

Webページはオブジェクトで構成され、オブジェクトはファイルです。Webサーバーは、Webオブジェクトを格納するために使用されるHTTPサーバーを実装し、各オブジェクトはURLでアドレス指定されます。

HTTPは、サポートする伝送プロトコルとしてTCPを使用します。HTTPクライアントは、最初にサーバーとのTCP接続を開始します。接続が確立されると、ブラウザとサーバーのプロセスはソケットインターフェイスを介してTCPにアクセスできます。

:サーバーは、クライアントに関するステータス情報を保存せずに、要求されたファイルをクライアントに送信します。したがって、HTTPは1つ无状态协议です。(通信当事者は、HTTPメッセージを交換するときにHTTP接続を確立する必要はありません)Webサーバーは常に開いており、固定IPアドレスを持っています。

ここに画像の説明を挿入

永続的および非永続的な接続

多くのインターネットアプリケーションでは、クライアントとサーバーはかなり長い期間にわたって通信します。クライアントは一連の要求を発行し、サーバーは各要求に応答します。この一連のリクエストは、定期的または定期的に断続的に次々に送信できます。この種のクライアント/サーバー相互作用がTCPを介して実行される場合。次に、各要求/応答ペアが個別のTCP接続を介して送信されるか、すべての要求と応答が同じTCP接続を介して送信されます。

前者の方法は非持続的接続と呼ばれ、後者の方法は持続的接続と呼ばれます。

非持続的接続のデメリット:要求されたオブジェクトごとに、まったく新しい接続を確立して維持する必要があります。このような接続ごとに、クライアントとサーバーはTCPバッファーを割り当て、TCP変数を維持する必要があります。これは、Webサーバーに深刻な負担をもたらします。

ここに画像の説明を挿入

メッセージ構造

HTTPメッセージはテキスト指向であるため、各フィールドはASCIIコードの文字列です。

ここに画像の説明を挿入

一般的なリクエストメッセージは次のとおりです
。GET/ somedir / page.htmlHTTP / 1.1
ホスト:www.someschool.edu
接続:close
ユーザーエージェント:Mozilla / 5.0 Accept-language:fr

最初の行は要求行と呼ばれ、残りはヘッダー行と呼ばれます。ホストはオブジェクトが配置されているホストを示します。connection:closeはサーバーに接続を継続しないように指示し、ページが転送された後に閉じます。User-agentは、ユーザーエージェントを示します。

响应报文
HTTP / 1.1 200 OKの
接続:近い
日:火、2011年8月9日15:44:04GMT
サーバー:Apacheの/ 2.2.3(CentOSの)
のLast-Modified:火、2011年8月9日夜03時11分〇三秒GMT
たContent長さ:6821
コンテンツタイプ:text / html

初期状態行、6つのヘッダー行、そしてエンティティ本体。
サーバーは、Connection:closeヘッダー行を使用して、メッセージの送信後にTCP接続が閉じられることをクライアントに通知します。
日付:ヘッダー行は、サーバーが応答メッセージを生成して送信した日時を示します。
サーバー:ヘッダー行は、メッセージがApacheWebサーバーによって生成されることを示します。リクエストメッセージのユーザーエージェントに似ています。
最終変更:最初の行は、オブジェクトが作成された、または最後に変更された日時を示します。
Content-Length:ヘッダー行は、送信されるオブジェクトのバイト数を示します。
Content-Type:ヘッダー行は、エンティティ本体のオブジェクトがHTMLテキストであることを示します。

クッキー

クッキー技術には4つの要素があります

  • HTT応答メッセージのCookieヘッダー行
  • HTTPリクエストメッセージのCookieヘッダー行
  • Cookieファイルはクライアントシステムに保持され、ユーザーのブラウザによって管理されます
  • Webサイトにあるバックエンドデータベース。

Cookieは、ユーザーを識別するために使用できます。ユーザーが初めてサイトにアクセスするとき、ユーザーIDを提供する必要がある場合があります。後続のセッションでは、ブラウザーはCookieヘッダーをサーバーに渡し、それによってユーザーをサーバーに識別します。したがって、CookieはステートレスHTTPの上にユーザーセッション層を確立できます。

Webキャッシュ

Webキャッシュサーバーはプロキシサーバーであり、最初のWebサーバーに代わってHTTP要求を満たすことができるネットワークエンティティです。

ブラウザがオブジェクトを要求している場合、次のことが起こります。

  • ブラウザはWebキャッシュへのTCP接続を確立し、Webキャッシュ内のオブジェクトにHTTP要求を送信します。
  • Webキャッシュは、オブジェクトのコピーがローカルに保存されているかどうかを確認します。その場合、WebキャッシュはHTTP応答メッセージとともにオブジェクトをクライアントブラウザに返します。
  • オブジェクトがWebキャッシュにない場合は、オブジェクトの元のサーバーとのTCP接続を開きます。Webキャッシュは、キャッシュからサーバーへのTCP接続上のオブジェクトにHTTP要求を送信します。リクエストを受け取った後。最初のサーバーは、オブジェクトを含むHTTP応答をWebキャッシュに送信します。
  • Webキャッシュはオブジェクトを受信すると、コピーをローカルストレージスペースに保存し、そのコピーをHTTP応答メッセージとともにクライアントのブラウザに送信します(クライアントブラウザとWebキャッシュ間の既存のTCP接続を介して)。

3、ファイル転送プロトコルFTP

FTPセッションでは、ユーザーはホスト(ローカルホスト)上のリモートホストからファイルを転送(または受信)します。ユーザーがリモートアカウントにアクセスするには、ユーザーはユーザーIDとパスワードを入力する必要があります。この認証情報を提供した後、ユーザーはローカルファイルシステムからリモートホストファイルシステムにファイルを転送できます。

HTTPとFTPはどちらもファイル転送プロトコルであり、多くの共通機能があります。たとえば、どちらもTCPで実行されます。ただし、これら2つのアプリケーション層プロトコルにもいくつかの重要な違いがあります。最も注目すべき点の1つは、FTPが2つの並列TCP接続を使用してファイルを転送することです。1つは制御接続で、もう1つはデータ接続です。

制御接続は、ユーザーID、パスワード、リモートディレクトリを変更するコマンド、ファイルを「配置」および「取得」するコマンドなど、2つのホスト間で制御情報を転送するために使用されます。データ接続は、実際にファイルを送信するために使用されます。

ここに画像の説明を挿入

FTPサーバーは、セッション全体を通じてユーザーの状態を保持する必要があり、サーバーは特定のユーザーアカウントを制御接続に関連付ける必要があります。

インターネット上のFTPサーバーの大部分は、「匿名」FTPサーバーと呼ばれます。このタイプのサーバーの目的は、ファイルコピーサービスを一般に提供することであり、ユーザーが事前にサーバーに登録する必要はなく、FTPサーバーの認証を取得する必要もありません。

匿名ファイル転送)を使用すると、ユーザーはリモートホストとの接続を確立し、リモートホストの登録ユーザーでなくても、匿名IDを使用してリモートホストからファイルをコピーできます。ユーザーは、特別なユーザー名「anonymous」でFTPサービスにログインすると、リモートホスト上のパブリックファイルにアクセスできます。

4.電子メールシステム

電子メールシステムは主に、ユーザーエージェント、メールサーバー、および簡易メール転送プロトコルの3つのコンポーネントで構成されています。

構成構造

ここに画像の説明を挿入

一般的な送信プロセスは次のとおりです。

  • 送信者のユーザーエージェントから開始して、送信者のメールサーバーに送信され、次に受信者のメールサーバーに送信され、ここで受信者のメールボックスに配布されます。
  • 受信者が自分のメールボックス内のメッセージを読みたい場合、自分のメールボックスを含むメールサーバー(ユーザー名とパスワードを使用)が受信者を認証します。
  • 送信者のサーバーが受信者のサーバーにメールを配信できる場合、送信サーバーはメッセージをメッセージキューに保持し、後で試行します。数日後に失敗した場合、サーバーはメッセージを削除して受信者のサーバーに送信します。電子メールによる送信者。

SMTPプロトコル

SMTPは、インターネット電子メールアプリケーションの中核です。

SMTPは、相互に通信する2つのSMTPプロセス間で情報を交換する方法を指定します。メールの送信を担当するSMTPプロセスはSMTPクライアントであり、メールの受信を担当するプロセスはSMTPサーバーです。

SMTPは、14個のコマンド(数文字)と21個の応答メッセージ(3桁のコード+簡単なテキストの説明)を提供します。

SMTPは7ビットASCIIコードに制限されています。英語以外の言語や画像などのバイナリファイルが表示される場合は、7ビットASCIIコードに再エンコードする必要があります。同時に、すべてのオブジェクトを1つのメッセージにまとめます。ただし、HTTPは各オブジェクトをHTTP応答メッセージにカプセル化します。

TCP接続ポート番号25C / S

SMTP通信の3つの段階:连接建立,邮件传送,释放连接

ここに画像の説明を挿入

MIME

SMTPのデメリット:SMTPは実行可能ファイルやその他のバイナリオブジェクトを送信できません(エンコードが必要です)。SMTP機器は、7ビットASCIIコードの送信に制限されており、他の英語以外の言語を送信することはできません。SMTPサーバーは、特定の長さを超える電子メールを拒否します。

したがって、MIMEはユニバーサルインターネットメール拡張機能です

ここに画像の説明を挿入

POP3

POP3は、RFC1939で定義されている非常に単純なメールアクセスプロトコルです。プロトコルは非常に単純であるため、その機能はかなり制限されています。ユーザーエージェント(クライアント)がメールサーバー(サーバー)ポート110へのTCP接続を開くと、POP3が機能し始めます。TCP接続が確立されると、POP3は3つの段階で機能します。

特许( authorization)、事务处理以及更新。

最初の段階である承認段階では、ユーザーエージェントはユーザーを認証するためにユーザー名とパスワードを(クリアテキストで)送信します。

第2段階であるトランザクション処理段階では、ユーザーエージェントはリターンメッセージを取得します。同時に、ユーザーエージェントはこの段階で次の操作を実行し、メッセージに削除のマークを付け、メッセージの削除マークをキャンセルして、取得することもできます。メッセージの統計情報。

3番目のフェーズである更新フェーズでは、クライアントがPOP3セッションを終了するためにquitコマンドを発行した後に表示されます。このとき、メールサーバーは削除済みとしてマークされたメッセージを削除します。

POP3トランザクション処理中に、ユーザーエージェントはいくつかのコマンドを発行し、サーバーは各コマンドに応答します。2つの答えがあります。+ OK(サーバーからクライアントへのデータが続く場合があります)。これは、前のコマンドが正常であることを示すためにサーバーによって使用されます。-ERR。前のコマンドでエラーが発生したことを示すためにサーバーによって使用されます。

ユーザーエージェントとメールサーバー間のPOP3セッション中、POP3サーバーはいくつかの状態情報を保持します。特に、どのユーザーメッセージが削除済みとしてマークされているかを記録します。ただし、POP3サーバーは、POP3セッション中にステータス情報を伝送しません。

IMAP

IMAPプロトコルは、POPプロトコルよりも複雑です。ユーザーのPC上のIMAPクライアントプログラムがIMAPサーバーのメールボックスを開くと、ユーザーはメールボックスのヘッダーを見ることができます。ユーザーが電子メールを開く必要がある場合、電子メールはユーザーのコンピューターにアップロードされます。

IMAPサーバーは、各メッセージをフォルダーに関連付けます。メッセージが初めてサーバーに到着すると、受信者のINBOXフォルダーに関連付けられます。受信者は、メッセージをユーザーが作成した新しいフォルダーに移動したり、メッセージを読んだり、メッセージを削除したりできます。IMAPプロトコルは、フォルダを作成し、あるフォルダから別のフォルダにメールを移動するコマンドをユーザーに提供します。IMAPは、リモートフォルダ内のメールをクエリするコマンドもユーザーに提供します。

IMAPを使用すると、ユーザーはさまざまな場所にあるさまざまなコンピューターを使用して、いつでも電子メールを読んだり処理したりできます。また、電子メールの特定の部分のみを読み取ることもできます。

おすすめ

転載: blog.csdn.net/weixin_45605341/article/details/108628845