ネットワーキング
 Computer >> コンピューター >  >> ネットワーキング >> ネットワーキング

HTTP の基礎:コンピュータ システムにおける通信の包括的なガイド

HTTP の基礎:コンピュータ システムにおける通信の包括的なガイド

投稿者:シェール・ドン

オープン システム相互接続モデルについて理解する

HTTP の基礎:コンピュータ システムにおける通信の包括的なガイド

概要

このシリーズでは、次のような基本に取り組みます。
(パート 1) DNS はどのように機能するのですか?
(パート 2) ネットワーク スタック、OSI モデル [ここにあります!]
(パート 3) HTTP メソッドとフォーマット
(パート 4) クライアントの識別
(その5) ベーシック認証/ダイジェスト認証
(パート 6) HTTPS と SSL/TLS の連携

OSI モデル

オープン システム相互接続 (OSI) モデルは、コンピューター システムにおける通信の標準化されたモデルです。基礎となるテクノロジーではなく、通信に関与するレイヤーを考慮します。 OSI モデル内のさまざまなレイヤーを見てみましょう。

HTTP の基礎:コンピュータ システムにおける通信の包括的なガイド 典型的な 5 層 OSI モデル

1.アプリケーション層

この層により、Web ブラウザ (アプリケーション) からサーバーなどへの接続が確立されると、アプリケーションはネットワーク経由で通信できるようになります。この層のプロトコルの例には、HTTP や TELNET などがあります。

ハイパーテキスト転送プロトコル (HTTP)

インターネット上でファイルを転送するための一連のルール。たとえば、ブラウザに URL を入力すると、ブラウザは Web ページに対する HTTP リクエストを送信します。その後、ホストは、画像、テキスト、ビデオ、スタイリング フォントなど、その中に含まれるすべての要素とともにウェブページを返します。

2.トランスポート層

この層は、ホスト間のメッセージ通信を担当します。この層のプロトコルの例には、TCP や UDP などがあります。

伝送制御プロトコル (TCP)

最も一般的な接続指向のプロトコル。ネットワーク会話を確立および維持する方法を定義します。接続 (ソケットと呼ばれます) の確立を担当します。 ) クライアントとホストの間で 3 ウェイ ハンドシェイクが行われます。

HTTP の基礎:コンピュータ システムにおける通信の包括的なガイド

データをリクエストしているユーザーは、SYN データ パケットをサーバーに送信して同期をリクエストします。 。その後、サーバーはユーザーに SYN-ACK で応答し、確認したことを示します。 データパケットを受信し、同様に接続したいと考えています。したがって、ユーザーが最後の ACK をサーバーに送信すると、接続が確立されます。

TCP はその優雅さから最も一般的であり、次の機能を提供できます。

つながり重視のコミュニケーション
エンドポイント間でハンドシェイク プロトコルを確立し、データが交換される前に接続を確保し、データ ストリーム (データ パケット) として送信します。

信頼性
チェックサムを使用して、送受信されるデータ パケットが同じであることを保証します。欠落または破損したパケットがある場合、送信者に NACK メッセージを送信してデータ パケットの再送信を要求します。

注文
データ パケットには番号が付けられて送信されます。そのため、TCP は、アプリケーションを配信する前に、受信したパケットが確実に並べ替えられるようにします。

フロー制御
データ送信速度は、受信側の処理能力よりも速くデータが送信される、またはその逆のバッファ オーバーラン/アンダーランを防止しながら効率を向上させるために調整されます。
その背後にある仕組みについては、以下の「TCP スロー スタート」セクションで説明します。

多重化
基本的に、同じソケット上で複数の情報ストリームを同時に送信できます。これらはソケットのさまざまなポートを通じて行われます。多重化とパイプライン化の違いについては、記事の後半でさらに説明します。

ユーザー データグラム プロトコル (UDP)

TCP に似ていますが、コネクションレス型のプロトコルです。これは TCP とは正反対であり、信頼性が低く、順序付けられていません。ドロップされたパケットは再送信されないため、データにギャップが生じます。

HTTP の基礎:コンピュータ システムにおける通信の包括的なガイド

ただし、これは、インターネット上の音声通話 (VoIP) など、時間に敏感なアプリケーションに最適です。送信前の3ウェイハンドシェイクが不要で高速なためです。さらに、人間の耳はパケットのドロップによく見られる短いギャップを処理するのに非常に優れているため、VoIP ではデータ パケットのドロップは問題になりません。

3.ネットワーク層

この層は、ネットワーク接続にデータ ルーティング パスを提供する役割を果たします。基本的に、最も論理的なパスを使用してネットワーク上でデータ パケットを移動します。

インターネット プロトコル (IP)

データ パケットの構造を定義し、送信元と宛先の情報をラベル付けします。

送信元と宛先の情報は IP アドレスの形式であり、104.16.121.127 の形式にすることができます。 (IPv4)、または 2001:db8:0:1234:0:567:8:1 (IPv6)。

4.リンク/物理層

この層は OSI モデルのルートであり、情報はリンク層のローカル エリア ネットワーク (LAN) で送信され、物理層ではコード ワードまたはシンボルの形式で電気的、機械的媒体などの物理信号が送信されます。

ルートの視覚化

tracert google.com を使用する 、ルートはクライアント側 (コンピュータ) からホスト (google.com) まで追跡できます。

HTTP の基礎:コンピュータ システムにおける通信の包括的なガイド

上から、私のデバイス 192.168.1.254 から始まるルートがわかります。 ルーター 10.243.128.1 へ 、ポルトガルにあるインターネット サービス プロバイダー (ISP) を通過する前など。

相補的なレイヤー

TCP/IP モデル

HTTP の基礎:コンピュータ システムにおける通信の包括的なガイド TCP はドロップされたデータ パケットの再送信を要求し、パケットの順序を変更します

IP はデータ パケットの構造のみを担当します。そのため、データ パケットが破損したりドロップしたりしても、補償は行われません。ここで TCP が登場し、クライアントに送信する前にデータ パケットに番号を付けます。クライアント側では、TCP が失われた/破損したパケットの再送信を要求し、データのパケットを再配置します。

HTTP/TCP モデル

前述したように、HTTP は TCP ハンドシェイクによって確立された接続を介してリクエストを行うことができるようになりました。しかし、それらはどのように相互補完するのでしょうか?

HTTP 永続接続
これにより、リクエスト/レスポンスごとに新しい接続を開くのではなく、単一の TCP 接続で複数の HTTP リクエスト/レスポンスが可能になります。

HTTP の基礎:コンピュータ システムにおける通信の包括的なガイド 永続的な接続のサンプル応答

これは、HTTP ヘッダー (Connection: Keep-Alive) を通じて行われます。 。デフォルトでは、接続は Connection: Close の別の応答があった場合にのみ終了します。 30 秒間のアイドル状態の後に送信されます。

TCP スロースタート
前述したように、TCP はフロー制御をサポートしています。これは、ネットワークの輻輳を防止する手段である TCP スロー スタートを通じて行われます。

HTTP の基礎:コンピュータ システムにおける通信の包括的なガイド

送信者には輻輳ウィンドウ (CWND) があり、受信者には受信者ウィンドウ (RWND) があります。データが輻輳/受信ウィンドウより大きい場合、それぞれバッファ アンダー/オーバーランが発生します。

これを防ぐために、送信者は最初に小さな輻輳ウィンドウ (CWND =1) でデータ パケットを送信し、受信者の受信ウィンドウをゆっくりと調査します。

受信者は確認応答で応答し、送信者は確認応答が受信されなくなるまで毎回データ パケットを 2 倍にするよう求められます。この時点で、データ パケットの最適な数が判明し、他の輻輳制御アルゴリズムがこの速度で接続を維持できるようになります。

協力する
したがって、TCP スロー スタートは、接続が閉じられる前に送信する最適なデータ パケット数を把握できます。これにより、バッファ オーバーラン(データは受信できる速度よりも速く送信される)のリスクなしに、ホストからクライアントに送信されるデータの量を最適化できます。

その他の HTTP 機能

HTTP パイプライン

HTTP の基礎:コンピュータ システムにおける通信の包括的なガイド

バージョン HTTP/1.1 のこの機能により、応答を待たずに、複数のリクエストを同じソケット上で一度に送信できます。ただし、新しいバージョンの HTTP/2 では、TCP Multiplexing に置き換えられました。

主な違いは、両方とも同じソケット上で一度に複数のリクエストを許可しますが、パイプラインでは応答を順番に送信する必要があることです。これは、リクエストされたアイテムが順序 (A、B、C) にある場合、アイテム B が適切に配送されなかった場合、クライアントはアイテム C を受け取らないことを意味します。

多重化では順序は関係ありません。これにより、納期が短縮されます。

これらのメソッドは、冪等メソッドに使用するのが最適です。冪等メソッドは、リクエストの回数とは関係なく応答するメソッドです。たとえば、Web ページを複数回リクエストすると、同じ Web ページに応答します。

並列接続

Web ページを開いて、Web ページの複数のコンポーネント (ビデオ バー、サムネイル、ボタン) が同時に読み込まれるのを見たことがありますか?

HTTP の基礎:コンピュータ システムにおける通信の包括的なガイド _複数のコンポーネントの同時読み込み |写真提供:[Cloudflare Mobile SDK](https://www.cloudflare.com/products/mobile-sdk/" rel="noopener" target="blank" title=")

これは、複数の TCP 接続が同時に確立される並列接続によって可能になり、これらのコンポーネントを順番にロードするのではなく、同時にロードできるようになります。

ただし、読み込みが速くなったように見えても、クライアントの帯域幅が限られているため、読み込みが遅くなる可能性があります。すべての並列接続が制限された帯域幅をめぐって競合している場合、各コンポーネントの読み込みは比例して遅くなり、合計の読み込み速度における利点はゼロになります。

結論

OSI モデルを使用すると、ネットワークの全体像と、ハードウェアからソフトウェアに至るまでネットワークがどのように相互作用するかを簡単に理解できます。

一般に、これは優れた教育ツールであるだけでなく、トラブルシューティングの参考にもなります。このモデルは、各層の機能を調査するため、設計にも役立ち、層ごとに設計を検討する必要があります。

これまで私が経験してきたのは OSI 5 層モデルですが、識別、認証、データ暗号化も扱う OSI 7 層モデルもあります。

これは、HTTP 入門シリーズのパート 2 です。 DNS サーバーの重要性に関する最初の記事はパート 1 で読むことができます。次のパート 3 では HTTP リクエストの構造を見てみましょう!

こんにちは!私は Cher Don です。現在、データ サイエンスの専攻を目指しています。私は Paralegal Bot の CTO です。私の Web サイトは以下にあります。読んでいただきありがとうございます!

興奮した;
_高品質なコンテンツ 理解しにくい概念に最適なコンテンツを提供します。私たちもそこに行ったことがあり、あなたと同じように感じました…_www.piqued.co

無料でコーディングを学びましょう。 freeCodeCamp のオープンソース カリキュラムは、40,000 人以上の人々が開発者としての職に就くのに役立ちました。始めましょう


  1. テストのために遅いインターネット接続をシミュレートする方法

    私のウェブサイトは自宅のコンピュータに非常に高速に読み込まれますが、これはおそらく、100/100インターネットプランのVerizonFIOSを使用しているためです。携帯電話を使おうとしても、4G LTE速度のバーが4〜5バーあるため、サイトの読み込みは非常に高速です。 残念ながら、Googleアナリティクスでサイトの読み込み時間を確認すると、ページの読み込みにかかる時間は1秒または2秒ではなく、5秒、7秒、10秒などのかなり長い値です。明らかに、超高速ブロードバンド接続で私のサイトを閲覧している人はおそらくごくわずかです。 サイトの実際の読み込み時間が明確に把握できていなかったため、

  2. 消費者のために「スペクトルケーブルボックスが機能しない」を修正するにはどうすればよいですか?

    スペクトラムは、ケーブルテレビ、インターネット、電話、およびワイヤレスサービスの販売に使用される「チャーターコミュニケーションズ」の商号です。同社は米国のスタンフォードに本社を置き、米国中の多くの地域でサービスを提供しています。ただし、ごく最近、ユーザーがケーブルサービスを利用できず、ケーブルボックスが機能しないという報告が多数寄せられています。 この記事では、問題の原因となる可能性のあるいくつかの理由について説明し、問題を完全に修正するための実行可能な解決策も提供します。それ以上のエスカレーションを避けるために、手順を注意深く正確に実行することが重要です。 ケーブルボックスが機能しない理