記事ディレクトリ
導入
コンピュータ ネットワークは私たちの日常生活に切り離せないものであり、私たちが相互に通信し、データを迅速に転送し、さまざまな分野で大きな成果を達成することを可能にします。この効率的な通信を実現するには、ネットワーク プロトコルが重要になります。ネットワーク プロトコルは、ネットワーク内でのデータのスムーズな送信を保証する、コンピュータ間の通信の規則と規則です。ネットワークプロトコルの中でも、ネットワーク通信プロセス全体を5層に分割したアーキテクチャである5層ネットワークプロトコルが広く用いられている。各層は異なるタスクを担当し、相互に連携し、最終的に効率的なデータ伝送を実現します。この記事では、5 層ネットワーク プロトコルの概念、機能、役割を詳しく紹介し、ネットワーク プロトコルの謎を探っていきます。
1. OSI 7 層モデル
OSI
( Open Systems Interconnection
) モデルは、ネットワーク通信プロトコルの理論的な参照モデルであり、コンピュータ システムのさまざまなレベルでの通信機能を記述および計画するために使用されます。これは 1984 年に国際標準化機構 (ISO) によってリリースされた、標準のネットワーク通信アーキテクチャです。
OSI モデルは、ネットワーク通信を 7 つの異なる層に分割し、各層が特定の機能とタスクを担当し、インターフェイスを介して上位層と下位層と通信します。以下に各レベルの詳細を説明します。
-
物理層(
Physical Layer
): 物理層はビット ストリームの送信、つまり物理メディアを介して電圧、電流、または光信号を送信する役割を果たします。ケーブルの種類、インターフェース仕様、伝送距離などを定義します。 -
データ リンク層(
Data Link Layer
): データ リンク層は、物理層によって提供されるビット ストリームをデータ フレームに分割する役割を果たし、エラーの検出と訂正を処理します。フレーム形式やMAC
アドレスなどを定義します。 -
ネットワーク層(
Network Layer
): ネットワーク層は、データのルーティングと転送、およびアドレス解決と論理アドレス指定を担当します。IP
アドレス、ルーティング プロトコルなどを定義します。 -
トランスポート層(
Transport Layer
): トランスポート層は、エンドツーエンドの信頼性の高い送信機能とデータ セグメンテーション機能を提供します。トランスポートプロトコル(例TCP
)やポート番号などを定義します。 -
セッション層(
Session Layer
): セッション層は、2 つのアプリケーション間のセッション接続の確立、管理、終了を担当します。セッション制御メカニズムと同期ルールを定義します。 -
プレゼンテーション層(
Presentation Layer
): プレゼンテーション層は、データの形式変換、暗号化、復号化を処理して、異なるシステム間のデータ互換性を確保します。これは、特にデータ圧縮、暗号化、形式変換を定義します。 -
アプリケーション層(
Application Layer
): アプリケーション層は、ユーザーの特定のニーズを満たすために、ネットワーク サービスとアプリケーション間のインターフェイスを提供します。HTTP、FTP
などの多くのアプリケーション層プロトコルを定義しますSMTP
。
+------------------------+
7 | Application Layer |
+------------------------+
+------------------------+
6 | Presentation Layer |
+------------------------+
+------------------------+
5 | Session Layer |
+------------------------+
+------------------------+
4 | Transport Layer |
+------------------------+
+------------------------+
3 | Network Layer |
+------------------------+
+------------------------+
2 | Data Link Layer |
+------------------------+
+------------------------+
1 | Physical Layer |
+------------------------+
各層は独立して動作し、他の層の特定の実装の詳細に関与することなく、隣接する層とのみ情報を交換します。この階層化された設計により、ネットワーク プロトコルの開発、保守、アップグレードがより簡素化され、信頼性が高まります。さらに、各層の機能と責任が明確であるため、さまざまなベンダーが特定の層を独自に開発および実装でき、ネットワーク テクノロジの迅速な開発と相互運用性が促進されます。
2. TCP/IP参照モデル
TCP/IP参照モデルとは、TCP/IP
プロトコルスタックをいくつかのレベルに分割し、ネットワーク通信における各レベルの機能や機能を説明・記述するために使用されるモデルです。これはインターネット通信プロトコル ファミリの基礎であり、広く使用されているネットワーク プロトコルでもあります。
TCP/IP 参照モデルは通常、上からアプリケーション層、トランスポート層、ネットワーク層、データリンク層、物理層の5 つの層に分かれています。各層には異なる機能とタスクがあり、それらが連携して送信者から受信者へのデータの信頼性の高い送信を実現します。
-
アプリケーション層: アプリケーション層はユーザーに最も近い層であり、ネットワーク アプリケーション間の通信の処理を担当します。
HTTP、FTP
などの一連の通信標準とプロトコルを定義しますSMTP
。アプリケーション層のデータはパケットと呼ばれます。 -
トランスポート層: トランスポート層は、エンドツーエンドのデータ伝送を処理し、信頼性の高いデータ伝送サービスを提供する責任があります。トランスポート層プロトコル ( や など
TCP
)を使用してUDP
、データを適切なサイズに分割し、送信者と受信者の間で送信します。 -
ネットワーク層: ネットワーク層はネットワーク間のデータ通信を担当し、IP プロトコルを介してアドレス指定およびルーティング機能を提供します。データをパケットにパックして、ネットワーク経由で宛先に送信します。
-
データリンク層: データリンク層は、物理媒体上でデータパケットを送信し、データパケットをビットストリームに変換し、エラー検出および訂正機能を提供する責任を負います。
-
物理層: 物理層は、ケーブル、光ファイバー、無線信号などの物理媒体上でデータ ビットのストリームがどのように送信されるかを定義します。
次の図は、アプリケーション層から物理層へのデータの送信プロセスを示しています。
------------------------------------
| 应用层 |
------------------------------------
| 发送数据 |
------------------------------------
|
------------------------------------
| 传输层 |
------------------------------------
| TCP/UDP协议 |
| 分割数据 |
| 添加头部 |
| 端口号 |
| 检查差错 |
------------------------------------
|
------------------------------------
| 网络层 |
------------------------------------
| IP协议 |
| 寻址 |
| 路由 |
| 打包成数据包 |
------------------------------------
|
------------------------------------
| 数据链路层 |
------------------------------------
| 数据链路协议 |
| 转换为比特流 |
| 添加帧头和帧尾(开始和结束标记) |
| 物理层传输 |
------------------------------------
3. ネットワークプロトコルの概念と機能
网络协议
これは、コンピュータ ネットワーク内の通信デバイスとコンピュータ間のデータ通信中に従う規範と規則の集合を指します。コンピュータネットワーク内のさまざまなデバイスやアプリケーション間の効果的な通信を確保するために、データ送信の形式、送信手順、制御情報などを定義します。
ネットワークプロトコル主効果持っている:
-
データ送信仕様: ネットワーク プロトコルは、ネットワーク内のデータ送信の形式と構造を定義し、さまざまなデバイスがデータを正しく解析して処理できるようにします。
-
ネットワーク接続管理: ネットワーク プロトコルは、ハンドシェイク プロセス、データ送信のフロー制御、エラー処理などのネットワーク接続を確立、維持、切断する方法を定義します。
-
データのセキュリティと検証: ネットワーク プロトコルは、データの暗号化、認証、検証メカニズムを提供して、データのセキュリティと整合性を確保できます。
-
ネットワーク リソース管理: ネットワーク プロトコルは、IP アドレスの割り当て、ルートの選択、帯域幅の制御など、ネットワーク リソースの割り当てとスケジューリングを定義および管理できます。
-
サービス品質の保証: ネットワーク プロトコルは、さまざまなアプリケーションやサービスの優先順位、帯域幅割り当て、輻輳制御を定義および管理して、より良いサービス品質を提供できます。
つまり、ネットワーク プロトコルはコンピュータ ネットワーク通信の基礎であり、通信デバイスとコンピュータ間の効果的で信頼性の高い通信に必要な仕様とルールを提供します。ネットワーク プロトコルの適切な実装と適用により、ネットワーク通信の正常な動作と安全なデータ送信が保証されます。
TCP/IP モデルの各層に対応するプロトコルは次のとおりです。
レベル | プロトコル |
---|---|
アプリケーション層 | HTTP、FTP、SMTP、Telnet、DNS |
トランスポート層 | TCP、UDP |
ネットワーク層 | IP、ICMP、ARP |
リンク層 | イーサネット、PPP |
この表には、各層に対応するいくつかの一般的なプロトコルがリストされているだけであり、実際には、各層にはさらに多くのプロトコルが含まれていることに注意してください。
4. TCP/IP参照モデルの各層の詳細な紹介
1. 物理層
TCP/IP モデルの物理層は、ネットワーク アーキテクチャの最下層であり、実際のデータ伝送を担当し、ネットワーク媒体上でビット ストリーム (つまり、0 と 1 の電気信号) を伝送します。ビット ストリームを送信可能な信号に変換する物理インターフェイスを提供します。
物理層の主な役割は次のとおりです。
-
データのエンコードとデコード: 物理層はデジタル信号をアナログ信号に変換し、受信側で送信されたアナログ信号をデジタル信号にデコードして、正しいデータ送信を保証します。
-
データ送信方法: 物理層は、物理媒体上でデータを送信するために使用される方法を定義します。シリアル送信またはパラレル送信が可能です。また、信号の伝送速度、帯域幅、電圧などのパラメータも定義します。
-
物理接続の確立と切断: 物理層は、効率的なデータ伝送を確保するために、送信デバイスと受信デバイス間の物理接続の確立と切断を担当します。
-
物理メディアのインターフェイス標準: 物理層は、異なるデバイス間の相互運用性を確保するために、デバイスを接続する物理メディア (ネットワーク ケーブル、光ファイバーなど) のインターフェイス標準を定義します。
-
基本伝送装置: 物理層には、信号を増幅および送信し、ネットワークのカバレッジを拡張するために使用される、リピーター、ハブなどのさまざまな伝送装置が含まれます。
一般に、物理層の主なタスクは、ビット ストリームの信頼性の高い伝送のためのメカニズムを提供し、より高いレベルのプロトコルに信頼性の高い物理接続と伝送メディアを提供することです。
実際のケースの説明との類似:
物理層の機能は郵便システムにたとえることができます。郵便システムは、手紙や荷物を差出人から受取人に届け、輸送中に手紙が破損したり紛失したりしないようにする責任があります。この例えでは、手紙や荷物がデータであり、差出人と受取人の間の郵便システムが物理層です。。物理層は、手紙や荷物を梱包し、適切な梱包材と送信方法 (郵送方法、宅配便方法など) を選択し、送信プロセス中にアイテムが効率的かつ確実に受信者に届けられるようにする責任を負います。追跡と確認サービスは正確性を保証します。
2. データリンク層
1. 基本的な考え方
データリンク層は、TCP/IP モデルの 2 番目の層であり、主にネットワーク層によって送信された IP データグラムを物理リンク上で送信できるビット ストリームに変換し、チャネル送信とチャネルの信頼性を確保する役割を果たします。データの完全性、性別。
データリンク層内核となるアイデア含む:
-
メディア アクセス コントロール(
Media Access Control,MAC
): 共有メディア上の複数のデバイス間のデータ送信の方法とルール、およびデバイスのアドレス識別方法を定義します。一般的なMAC
プロトコルは、イーサネットCSMA/CD
(キャリア センス マルチポイント アクセス/衝突検出) と無線 LANCSMA/CA
(キャリア センス マルチポイント アクセス/衝突回避) です。 -
論理リンク制御(
Logical Link Control,LLC
): 上位ネットワーク層がさまざまな物理メディアに透過的にアクセスできるようにする、通信サービス指向のインターフェイスを提供します。 -
フレームのカプセル化: データリンク層は、ネットワーク層から受信したデータグラムをフレームにカプセル化し、同期ビット、フレームの開始文字と終了文字、チェックサムなどの制御情報を各フレームの先頭と末尾に追加します。受信側はデータを正しく識別し、解析します。
実際のケースに例えると、データリンク層は郵便局の仕分けや梱包作業に例えることができます。メールを配信するために、ポスト オフィスはデータ リンク層の役割でメール (ネットワーク層データグラム) をパックし、正しいアドレス (MAC アドレス) と番号 (フレーム シーケンス番号) を貼り付けて、それをカプセル化します。パッケージ (frame )。開始タグと終了タグおよびその他の制御情報が含まれます。受信者の郵便局はパッケージを解析し、アドレスが正しいことを確認して、メールを正しい受信者 (上位ネットワーク層) に配信します。。
データ リンク層の主な目的は、データが物理リンク上で正確に送信されることを保証し、データ送信中に発生する可能性のあるエラーや再送信に対処するメカニズムを提供して、信頼性の高いデータ送信を保証することです。
2.MACアドレス
MAC
アドレス ( Media Access Control address
) は、物理アドレスまたはハードウェア アドレスとも呼ばれ、コンピュータ ネットワーク デバイスを識別するために使用される一意の識別子です。各ネットワーク デバイス (コンピューター、ルーター、スイッチ、ネットワーク プリンターなど) には、MAC
製造時に固有のアドレスが割り当てられます。
MAC
アドレスは 48 個の 2 進数で構成され、通常は 16 進数で表現されます。6 つのグループに分かれており、各グループには 8 個または 16 個の 2 進数が含まれます。例: 00-1A-2B-3C-4D-5E。
MAC
アドレスは、グローバル一意識別子 ( OUI
) とデバイス一意識別子 ( NIC
) の 2 つの部分で構成されます。OUI
は、IEEE
( ) によってInstitute of Electrical and Electronics Engineers
各メーカーに割り当てられた 3 バイトの識別子で、メーカーの識別を示すために使用されます。NIC
これはメーカー自身によって割り当てられた 3 バイトの識別子であり、メーカーのデバイスの一意の値を識別するために使用されます。
MAC
アドレスはコンピュータ ネットワークにおいて重要な役割を果たします。データリンク層では、ネットワークデバイスがデータパケットを受信すると、宛先MAC
アドレスを使用してデータが自分自身に送信されるか他のデバイスに送信されるかを判断し、それに応じて処理します。したがって、MAC
アドレスは主にデータ パケットのアドレス指定と送信制御に使用されます。
MAC
アドレスは世界中で一意であるため、異なるメーカーのデバイスはMAC
異なるアドレスで工場から出荷されます。また、MAC
物理デバイスの位置や接続がネットワーク環境で変化した場合でも、アドレスはデバイスのライフサイクル全体を通じて固定されます。
MAC
アドレスは一意ですが、 LAN
LAN ( ) の範囲内でのみ有効です。IP
異なるネットワークをまたぐ場合は、アドレスなどの上位アドレスを使用する必要があります。。
MAC
アドレスは変更可能であり、特定のケースでは必要になる場合がありますが、一般的には、MAC
ネットワーク通信の問題を避けるためにアドレスの変更は避けるべきであることに注意してください。
3.ARPプロトコル
ARP
( Address Resolution Protocol
) は、アドレスを物理アドレスにマッピングするためのプロトコルですIP
MAC
。MAC
コンピュータ ネットワークでは、ホストが別のホストにデータを送信する必要がある場合、宛先ホストのアドレスを知っている必要があります。ただし、ホストはIP
アドレスによってのみアドレス指定でき、直接アドレス指定することはできませんMAC
。
ARP プロトコルの役割は、IP アドレスと MAC アドレス間のマッピング関係を解決することです。ホストがターゲット ホストにデータを送信したい場合、まずローカルARP
キャッシュ テーブル ( ARP Cache
) をチェックします。このテーブルには、既知のIP
アドレスと対応するMAC
アドレスが記録されています。
ターゲットアドレスがキャッシュ テーブル内で対応するアドレスを見つけられIP
ない場合、送信ホストはブロードキャスト要求パケット ( ) を送信して、LAN 内の他のホストにブロードキャストします。この要求パケットには、送信元ホストのアドレスと宛先ホストのアドレスが含まれます。ARP
MAC
ARP
ARP Request
ARP
IP
MAC
IP
ターゲット ホストはARP
リクエスト パケットを受信すると、IP
自身のアドレスがIP
ターゲット アドレスと一致するかどうかを確認します。一致するものがあれば、宛先ホストは、自身のアドレスとアドレスを含むユニキャストARP
応答パケット ( ) を送信元ホストに送信します。ARP Reply
IP
MAC
ソース ホストがARP
応答パケットを受信すると、今後の通信のためにターゲット ホストのIP
アドレスとアドレスをキャッシュ テーブルにMAC
追加します。ARP
要約すると、このプロトコルはARP
、ブロードキャストおよび対応する要求および応答パケットを通じてARP
ターゲット ホストのアドレスを決定し、アドレスとアドレス間のマッピング関係MAC
を確立して、データ パケットの正しい配信を実現します。IP
MAC
3. ネットワーク層
1. 基本的な考え方
ネットワーク層はTCP/IP モデルの 3 番目の層であり、異なるネットワーク間でのデータ パケットのルーティングと転送を担当します。その主な機能には、IP アドレスの割り当て、データ パケットのルーティングおよび転送が含まれます。
実際のケースに例えると、ネットワーク層は郵便局システムに似ていると想像できます。別の都市にいる友人に手紙を送る必要がある場合、まず友人の住所 (IP アドレス) を書き留めてから、地元の郵便局に手紙を届けます。郵便局システムの仕事は、これらの手紙をさまざまな都市に配布し、目的地まで正しいルートをたどることを確認することです。。
この例では、ネットワーク層はポスト オフィス システムとして機能します。その具体的なタスクには以下が含まれます。
-
IP アドレスの割り当て: ネットワーク層は、各デバイスに一意の IP アドレスを割り当てる役割を果たします。郵便局システムが全員に一意のアドレスを割り当てるのと同じように、ネットワーク層はネットワークに接続されているデバイスに一意の IP アドレスを割り当て、デバイスが相互に認識して通信できるようにします。
-
ルーティング: ネットワーク層は、ルーティング プロトコルを使用して、異なるネットワーク間のデータ パケットの送信パスを決定します。郵便局システムが郵便番号システムに基づいて手紙の最適なルートを選択するのと同じように、ネットワーク層はルーティング プロトコルを使用して、データのパケットが異なるネットワーク間を移動するための最適なパスを決定します。
-
データのパケット化と転送: ネットワーク層は、上位トランスポート層によって提供されたデータを小さなデータ パケット (データ パケットとも呼ばれます) に分割し、ネットワーク層ヘッダーのデータ パケット ヘッダーに追加します。これらのデータ パケットは、ネットワーク層のルーティング テーブルに従って適切なネットワーク ノードを通じて転送され、データ パケットが正しいパスで宛先に到達することが保証されます。
上記のプロセスを通じて、ネットワーク層は異なるネットワークを接続する役割を果たし、理論的にはネットワーク全体がシームレスに通信できるようになります。ネットワーク層の作業は、データの配布、転送、ルーティングを実現し、データの正確な送信とターゲット ネットワーク サービスへの到達を保証するのに役立ちます。
2. IPプロトコル
IP プロトコルは、コンピュータ ネットワークで最も重要なプロトコルの 1 つであるインターネット伝送プロトコル( )を指します。このプロトコルは、パケット交換データの方法を使用してネットワーク通信を実現し、ネットワーク内でのデータ送信の形式、ルール、メカニズムを定義します。Internet Protocol
IP
IP プロトコルは主に、アドレス指定とルーティングという2 つの重要な機能を担当します。IP
アドレッシングとは、アドレスを通じてネットワーク内のデバイスまたはホストを一意に識別することを指し、これを通じてIP
データをターゲット デバイスに送信できます。IP
ルーティングとは、宛先アドレスに応じて適切な経路を選択し、データ パケットを宛先デバイスに送信するプロセスを指します。
IP
このプロトコルはコネクションレス通信方式を使用します。これは、送信中に各データ パケットが独立しており、長期間の接続が確立されないことを意味します。データ パケットは送信中に複数のネットワーク ノードを通過する可能性があり、これらのノードはルーティング テーブルに従って送信パスを選択します。IP
このプロトコルは、送信元アドレスから宛先アドレスにデータ パケットを送信する責任を負いますが、データ パケットが順序どおりに到着し、失われず、繰り返されないことを保証するものではありません。これらの問題は、上位層のプロトコル (たとえば、 TCP)。
IP
このプロトコルは、ドット付き10進表記 ( 192.168.0.1など) と128 ビットのアドレス空間( など) を使用して、デバイスまたはホストを識別するために32ビットのアドレスを使用します。プロトコルは、アドレスに加えて、バージョン、ヘッダー長、サービス タイプ、全長、識別子、フラグ、スライス オフセット、生存時間、プロトコル、ヘッダー チェックサム、送信元 IP アドレス、宛先 IP アドレスなどの他のフィールドも定義します。待って。IP
IPv4
IPv6
2001:db8:0:1234:0:567:8:1
IP
IP
IPバージョン | IPアドレスの形式 |
---|---|
IPv4 | 192.168.0.1 のように、ドットで区切られた 0 ~ 255 の範囲の 4 つの 10 進数 |
IPv6 | コロンで区切られた 4 桁の 16 進数の 8 つのグループ (例: 2001:0db8:85a3:0000:0000:8a2e:0370:7334) |
IPv4 アドレスは 32 ビットの 2 進数で構成され、通常はドット付き 10 進数表記で表されます。10 進数の各桁は 8 ビットの 2 進数の値を表します。IPv4 アドレスはネットワーク部分とホスト部分に分かれており、ネットワーク部分はネットワークの ID を表し、ホスト部分は特定のホストの ID を表します。
IPv6 アドレスは 128 ビットの 2 進数で構成されます。冗長性を減らすために、IPv6 では、先頭の 0 の削除、連続する 0 の結合、0 のグループを表すための 2 つのコロンの使用などの省略規則が使用されます。IPv6 アドレスの増加は、IPv4 アドレスの不足を解決するために行われます。
IP
プロトコルは、インターネット通信を可能にするコンピュータ ネットワークの中核となるプロトコルです。このプロトコルを通じてIP
、さまざまな種類のデバイスやホストが相互にデータや情報を交換し、グローバルなインターネット伝送を実現します。
3. サブネットマスク
サブネットマスクは、ネットワークアドレスを分割するために使用される方法です。32 ビットの 2 進数で表され、IP アドレスと同じ構造を持ちます。サブネット マスクは、IP アドレスのどのビットがネットワークの識別に使用され、どのビットがホストの識別に使用されるかを示すことによってネットワークを分割します。
コンピュータ ネットワークでは、IP アドレスはネットワーク アドレスとホスト アドレスの 2 つの部分で構成されます。サブネット マスクは、IP アドレスをネットワーク識別子とホスト識別子の 2 つの部分に分割します。ネットワーク識別子は、IP アドレスが配置されているネットワークを示すために使用され、ホスト識別子はネットワーク内の特定のホストを識別するために使用されます。サブネット マスクの 1 ビットはネットワーク ID を表し、0 ビットはホスト ID を表します。
2 つの IP アドレスが同じローカル エリア ネットワーク内にあるかどうかは、2 つの IP アドレスのネットワーク識別部分が同じかどうかを比較することで判断できます。具体的な手順は次のとおりです。
- 2 つの IP アドレスのサブネット マスクを取得します。
- 2 つの IP アドレスとサブネット マスクに対して論理 AND 演算を実行します。
- 結果を比較すると、2 つの IP アドレスとサブネット マスクの論理積演算結果が同じであれば、それらは同じ LAN 内にあることを意味し、そうでない場合は同じ LAN 内にありません。
たとえば、2 つの IP アドレス、192.168.1.100 と 192.168.1.200 があり、サブネット マスクは 255.255.255.0 であるとします。2 つの IP アドレスとサブネット マスクに対して論理 AND 演算を実行すると、結果は次のようになります。
192.168.1.100 と 255.255.255.0 の論理 AND 演算の結果は 192.168.1.0
192.168.1.200 と 255.255.255.0 の論理 AND 演算の結果は 192.168.1.0
2 つの IP アドレスとサブネット マスクの間の論理 AND 演算の結果は同じであるため、これらは同じ LAN 内にあることがわかります。
2 つの IP アドレスのサブネットマスクが異なる場合、ネットワーク識別部分が同じであっても、それらが同じ LAN 内にあるとは限らないことに注意してください。したがって、2 つの IP アドレスが同じ LAN 内にあるかどうかを判断する場合は、ネットワーク識別部分の比較に加えて、サブネット マスクが同じかどうかも考慮する必要があります。
4. トランスポート層
1. 基本的な考え方
コンピュータ ネットワークのトランスポート層は、データの送信と接続を管理するネットワーク階層内の層です。トランスポート層の主な機能は、送信元ホストと宛先ホストの間にエンドツーエンドの通信サービスを提供することです。
トランスポート層の主なタスクは次のとおりです。
-
セグメンテーションと再組み立て: トランスポート層は、アプリケーション層のデータをセグメントと呼ばれる小さなデータの塊に分割し、宛先ホスト上でこれらのセグメントを再組み立てして元のデータを復元します。このセグメント化と再構成のプロセスにより、ネットワーク伝送におけるサイズ制限と信頼性の低さの問題を解決できます。
-
ポート識別: トランスポート層は、通信中のアプリケーションを識別するためにポート番号を使用します。各アプリケーションは一意のポート番号を使用できるため、トランスポート層は受信したデータをターゲット アプリケーションに正確に配信できます。
-
伝送制御: トランスポート層は、エラーの検出と修正、フロー制御、輻輳制御などのメカニズムを実装することにより、信頼性の高いデータ伝送を保証します。これらのメカニズムにより、データの整合性、順序どおりの配信、および信頼性が保証されます。
-
多重化と逆多重化: トランスポート層は、複数のアプリケーションのデータを 1 つのトランスポート層接続にパッケージ化して送信し、そのデータを個々のアプリケーションに分解することで、複数のアプリケーション間でネットワーク接続を共有できます。
このアナロジーを実際に応用した例としては、郵送サービスがあります。トランスポート層は、メールの送信プロセスの管理と制御を担当する郵便局にたとえることができます。具体的には、郵便局は郵便物をより小さな封筒に分割する(断片化と再組み立て)ことで、郵便物のサイズ制限に対処しています。各エンベロープには一意のアドレス (ポート ID) があり、メールが意図した受信者に正確に配信されることを保証します。さらに、郵便局は、郵便の完全性と信頼性を確保するために、エラーの検出と修復のメカニズムを提供します。複数の人が同時に郵便局を利用する場合、郵便局は多重化と逆多重化を通じて異なる人の郵便物を処理し、全員が自分の郵便物を確実に受け取ることができるようにします。。
要約すると、トランスポート層は、データのセグメント化、トランスポート制御、および接続管理を実行する主要なサービス層のようなものです。さまざまなメカニズムを通じてネットワーク伝送の信頼性と信頼性を保証します。
2. 同意
コンピュータ ネットワークのトランスポート層には、次のネットワーク プロトコルが含まれます。
プロトコル | 説明する |
---|---|
TCP | 伝送制御プロトコル (伝送制御プロトコル) は、信頼性の高いデータ伝送を提供する接続指向のプロトコルです。シーケンス番号、確認、再送機構によりデータの信頼性を確保し、スライディングウィンドウ機構によりフロー制御と輻輳制御を実現します。TCP は、トランスポート層で最も一般的に使用されるプロトコルです。 |
UDP | ユーザー データグラム プロトコル (ユーザー データグラム プロトコル) は、信頼性の保証を提供しないコネクションレス型プロトコルです。基本的なデータ伝送機能のみを提供しており、伝送効率が高いです。UDP は、ビデオ ストリーミングやオーディオ ストリーミングなど、リアルタイム要件が高いアプリケーションに適しています。 |
SCTP | ストリーム コントロール トランスミッション プロトコル (ストリーム コントロール トランスミッション プロトコル) は、信頼性とメッセージの整合性が保証されたメッセージ指向のプロトコルです。SCTP は、マルチストリーム転送、マルチホーム接続、およびオプションの順序付き転送をサポートします。SCTP は、信頼性が高く順序付けられたデータ送信を必要とするアプリケーションに適しています。 |
これらのプロトコルは、コンピューター ネットワークのトランスポート層でさまざまな役割と機能を果たし、さまざまなデータ送信方法と信頼性の保証を提供します。実際のアプリケーションでは、アプリケーション プログラムの要件とさまざまなネットワーク環境に応じて、データ送信に適切なトランスポート層プロトコルが選択されます。
上記のプロトコルに加えて、Datagram Congestion Control Protocol (DCCP) や Transport Layer Security (TLS) などの他のトランスポート層プロトコルもあります。これらのプロトコルは、コンピュータ ネットワーク内でさまざまな役割を果たし、さまざまなアプリケーションのニーズを満たします。
3. TCP (3 方向ハンドシェイクおよび 4 方向ウェーブ)
TCP (Transmission Control Protocol) は、コネクション指向で信頼性の高い、バイト ストリーム ベースのトランスポート層プロトコルです。これは、ネットワーク内でデータを送信するために使用されるインターネット プロトコル スタックの一部です。
TCPプロトコル主効果信頼性の高いデータ伝送を提供するためです。次の方法でデータの信頼性を確保します。
- データが正しい順序で送信されることを保証するために、接続ごとに仮想チャネルが確立されます。
- データの信頼性は、確認および再送信メカニズムによって保証されます。毎回データを送信した後、受信者は送信者に確認メッセージを送信しますが、送信者が確認メッセージを受信しない場合は、データを再送信します。
- 送信者の送信が速すぎて受信者が処理できなくなることを防ぐために、フロー制御メカニズムを提供します。
TCP
合意作業過程次のように:
- 接続の確立: データを送信する前に、送信者と受信者は接続を確立する必要があります。接続を確立するプロセスは、3 ウェイ ハンドシェイクと呼ばれます。送信者は接続を要求するメッセージを送信し、受信者は受信後に確認メッセージを返信し、送信者は最終確認メッセージを返信します。
- データ転送: 接続が確立された後、送信者は受信者へのデータの送信を開始できます。パケットは指定された順序で送信され、受信者は送信者に確認応答を送信します。
- 接続を閉じる: データ転送が完了したら、送信者と受信者は接続を閉じることができます。接続を閉じるプロセスは 4 ウェーブと呼ばれます。送信者は接続の終了を要求するメッセージを送信し、受信者は確認メッセージで応答し、次に受信者は接続の終了を要求するメッセージを送信し、送信者は最終確認メッセージで応答します。
接続を確立するための 3 ウェイ ハンドシェイクのプロセスは次のとおりです。
- クライアントは
SYN
、クライアントが接続の確立を要求していることを示す (同期) メッセージをサーバーに送信します。 SYN
メッセージを受信したサーバーは、SYN + ACK
接続が確立できることを示す (同期 + 確認) メッセージを応答として送信します。- クライアントは
SYN + ACK
サーバーからメッセージを受信した後、ACK
接続を確立できることをクライアントが確認したことを示す (確認) メッセージを送信します。
接続が確立されると、双方がデータ送信を実行できるようになります。
客户端 服务器
| |
| SYN报文发送 |
|---------------------> |
| |
| SYN + ACK报文发送 |
| <---------------------|
| |
| ACK报文发送 |
|---------------------> |
| 连接建立 |
| |
4 回手を振って接続を閉じるプロセスは次のとおりです。
- クライアントは
FIN
、接続を閉じたいことを示す (終了) メッセージを送信します。 FIN
メッセージを受信したサーバーは、ACK
接続終了要求を確認するメッセージを応答として送信します。- サーバーは、
FIN
サーバーも接続を閉じたいことを示すメッセージを送信します。 - サーバーから
FIN
メッセージを受信した後、クライアントはACK
接続が閉じられたことを確認するメッセージを応答として送信します。
客户端 服务器
| |
| FIN报文发送 |
|------------------------------> |
| |
| ACK报文发送 |
| <------------------------------- |
| |
| FIN报文发送 |
|------------------------------> |
| |
| ACK报文发送 |
| <------------------------------- |
| 连接关闭 |
| |
接続は 3 ウェイ ハンドシェイクと接続を閉じるための 4 ウェイ ハンドシェイクによって確立され、TCP
データ送信の信頼性と接続の正しい確立と終了が保証されます。
+--------+ +-----------+
| 客户端 | | 服务器 |
+--------+ +-----------+
| |
| SYN=1,seq=x |
|------------------------------>|
| |
| SYN=1,ACK=1,seq=y, ack=x+1 |
|<------------------------------|
| |
| ACK=1,seq=x+1, ack=y+1 |
|------------------------------>|
| |
| 请求连接建立 |
| |
| |
| FIN=1,seq=x |
|------------------------------>|
| |
| ACK=1,seq=y, ack=x+1 |
|<------------------------------|
| |
| 通知结束连接 |
| |
| FIN=1,ACK=1,seq=y+1, ack=x |
|<------------------------------|
| |
| ACK=1,seq=x, ack=y+1 |
|------------------------------>|
| |
要約すると、TCP
このプロトコルは、接続、確認および再送信メカニズム、およびフロー制御を確立することによってデータの信頼性を保証する、信頼性の高い送信プロトコルです。これは、インターネットで最も一般的に使用されるトランスポート プロトコルの 1 つです。
4.UDP
UDP(User Datagram Protocol)
ネットワーク上でデータグラムを送信するための、コネクションレスで信頼性の低いトランスポート プロトコルです。とは異なりTCP
、UDP
データを送信する前に接続を確立する必要はなく、信頼性の保証やデータの検証はありません。
UDP
プロトコルは次のように機能します。
- アプリケーションはデータをパケット (
Datagram
) にカプセル化し、宛先 IP アドレスとポート番号を指定します。 - データのパケットはネットワーク上を移動しますが、パケットの順序、整合性、または宛先に到達するかどうかは保証されません。
- 受信側アプリケーションはネットワーク経由でパケットを受信します。
- 受信側アプリケーションは、送信元 IP アドレスとポート番号に基づいてパケットを処理します。
- アプリケーション プログラムはデータ パケット内のデータを抽出し、対応する操作を実行します。
UDP
この契約の特徴は次のとおりです。
- 接続なし: 送信者は事前に受信者との接続を確立する必要がなく、データ パケットを直接送信できます。
- 信頼性の低さ: 送信者はデータ パケットが宛先に到着したかどうかを知ることができず、データ パケットの順序も保証できないため、データ送信の高い信頼性が必要なシナリオには適していません。
- 高速性: 接続を確立して信頼性を確保する必要がないため、
UDP
データ伝送速度は比較的高速です。 - シンプルさ:
TCP
と比較して、UDP
のプロトコル ヘッダーは小さくてシンプルであるため、リアルタイム ビデオ送信、音声通信など、ネットワーク オーバーヘッドの影響を受けやすい一部のアプリケーションにUDP
適しています。
UDP
一般的に次のような状況で使用されます。
- リアルタイム アプリケーション: オーディオおよびビデオの送信、リアルタイム通信などは、
UDP
その速度とシンプルさにより、遅延を低く抑えることができます。 - ブロードキャストおよびマルチキャスト アプリケーション:
UDP
データ パケットは複数の受信機に同時に送信できます。 DNS
解決策:UDP
リクエストの送信にはドメイン名解決が使用されます。
UDP
プロトコルの信頼性が低いため、場合によっては一部のデータ パケットが失われる可能性があることに注意してください。そのため、重要なデータ送信または高いデータ整合性要件の場合には、このプロトコルを使用することをお勧めしますTCP
。
5. アプリケーション層
1. 基本的な紹介
アプリケーション層はコンピュータ ネットワークの最上位層であり、ネットワーク アプリケーション プログラムとネットワーク トランスポート層の間のインターフェイスを提供します。アプリケーション層は主にユーザー アプリケーションの通信サービスの処理を担当し、異なるネットワーク内のアプリケーションが相互に通信してデータを交換できるようにします。
アプリケーション層の主な作業には、次の側面が含まれます。
-
アプリケーションプロトコルの定義: アプリケーション層は、HTTP、SMTP、FTP、その他のプロトコルなど、アプリケーション間でデータを交換するための形式とルールを定義し、データの構造、エンコーディング、送信方法、および通信のさまざまな詳細を記述します。 。
-
データのエンコードと形式変換: アプリケーション層は、アプリケーションによって生成されたデータをネットワーク経由での送信に適した形式に変換し、受信側でアプリケーションが認識できる形式に変換する責任を負います。たとえば、データを ASCII コードや Unicode コードに変換したり、音声やビデオなどのデータを送信に適した形式に変換したりします。
-
データのセグメント化と再構成: データの量が多すぎる場合、アプリケーション層はデータをセグメント化し、受信側でセグメント化されたデータを完全なデータに再編成する責任を負います。セグメンテーションにより、データの整合性を確保しながら転送効率が向上します。
-
データ伝送制御: アプリケーション層は、伝送速度、セキュリティ、信頼性などを含むデータ伝送の制御を担当します。たとえば、複数の並列接続を確立して送信速度を向上させ、暗号化技術を使用してデータのセキュリティを確保し、確認および再送信メカニズムを使用して信頼性の高いデータ送信を保証します。
-
ユーザー認証と認可: アプリケーション層はユーザー認証と認可サービスを提供し、正当なユーザーのみがネットワーク リソースにアクセスし、ユーザーの操作権限を制御できるようにします。この種のサービスは通常、ユーザー名やパスワードなどの認証方法を介して実装されます。
つまり、アプリケーション層は、ユーザーのアプリケーションプログラムとネットワークトランスポート層間の通信を実現するコンピュータネットワークの重要なリンクであり、アプリケーションプログラムの通信ルールやフォーマットを定義し、データ送信制御などの機能を提供します。 、データの変換と処理。
2.URI和URL
URI (Uniform Resource Identifier)
および は、URL (Uniform Resource Locator)
どちらもネットワーク リソースを識別してアクセスする方法です。それらの間には特定の関係があり、URI は URL の特殊な形式です。次の表に、それらの説明と説明を示します。
語彙 | 説明する | 説明する |
---|---|---|
URI | 統一リソース識別子 (Uniform Resource Identifier) | これは、Web ページやファイルなど、ネットワーク上のアクセス可能なリソースである一意のリソースを識別して見つけるために使用されます。 |
URL | ユニフォーム リソース ロケーター (ユニフォーム リソース ロケーター) | これは、特定のリソースを指す完全なアドレスを含む特定の形式の URI であり、ブラウザーで直接開くことができます。 |
フォーマット | URI には、URL、URN など、さまざまな形式を含めることができます。 | URL は、リソースを見つけてアクセスする方法を指定するために使用される最も一般的な URI 形式です。 |
使用 | ネットワーク上のリソースを識別してアクセスするために使用されます | URI または URL を使用すると、Web ページ、写真、ビデオなどのネットワーク上のリソースを正確に見つけることができます。 |
封じ込め関係 | URL は URI の具体的な実装であり、URI のサブセットです。 | URL は、リソースの位置情報を含む特定の形式の URI です。したがって、すべての URL は URI ですが、すべての URI が URL であるわけではありません。 |
例 | http://www.example.com/index.html | これは一般的な URL で、HTTP プロトコルでの Web サイト ページへのリンクを示します。 |
ファイル:///パス/to/file.txt | これはローカル ファイルのパスを表す URL でもあります。 | |
骨壷:isbn:0-486-27557-4 | これは、国際標準書籍番号 (ISBN) を一意に識別する URN です。これは URI ではありますが、リソースにアクセスするための特定の方法 (ネットワーク プロトコルなど) を指定していないため、URL ではありません。 |
URI と URL の概念は異なりますが、実際の使用では同じ意味で使用されることが多く、URL という用語はリソースの一意の識別子を指すためによく使用されることに注意してください。
URL (Uniform Resource Locator) は次の部分で構成されます。
-
プロトコル(プロトコル): URL の最初の部分はプロトコルで、クライアントとサーバー間の通信プロトコルを指定するために使用されます。一般的なプロトコルは、HTTP (Web ページ アクセス用)、HTTPS (暗号化された Web ページ アクセス)、FTP (ファイル転送プロトコル) などです。例: http://
-
ドメイン名(ドメイン名): URL の 2 番目の部分はドメイン名で、アクセスするリソースが存在するサーバーを指定するために使用されます。ドメイン名はドット (.) で区切られた複数の部分で構成され、右から左の順に上位のドメイン名レベルが示されます。例: www.example.com
-
ポート番号(ポート): URL の 3 番目の部分はポート番号で、サーバーでリッスンしているポートを指定するために使用されます。明示的に指定しない場合は、デフォルトのポート番号が使用されます。HTTP のデフォルト ポートは 80、HTTPS のデフォルト ポートは 443 です。例: :8080
-
パス(Path): URL の 4 番目の部分はパスで、アクセスするリソースが存在するパスまたはディレクトリを指定するために使用されます。パスは絶対パス (/ で始まる) または相対パスにすることができます。例: /path/to/resource
-
クエリ パラメータ(クエリ パラメータ): URL の 5 番目の部分はクエリ パラメータで、追加情報やリクエスト パラメータをサーバーに渡すために使用されます。パラメータは ? で始まり、複数のパラメータは & で区切られます。各パラメータはキーと値のペアで構成され、キーと値は = で接続されます。例: ?param1=値1¶m2=値2
-
アンカー: URL の最後の部分はアンカーで、ページ内の特定の場所を指定するために使用されます。アンカー ポイントは # で始まり、その後に特定の識別子が続きます。例: #section1
URL が の Web サイト上のブログ投稿にアクセスするとしますhttps://www.example.com/blog/article?id=123#comments
。
成分 | 例 | 説明する |
---|---|---|
プラン | https:// | ネットワーク通信にHTTPSプロトコルを使用する |
ドメイン名 | www.example.com | 訪問した Web サイトのドメイン名は www.example.com です |
ポート番号 | 443 | デフォルトでは、デフォルトのポート番号 443 が HTTPS に使用されます。 |
パス | /ブログ/記事 | アクセスされるリソース パスは /blog/article です |
クエリパラメータ | ?id=123 | URI で渡されるパラメータ ID の値は 123 です。 |
フラグメント識別子 | #コメント | リソース内で特にコメントとして識別されている部分に移動します |
3.httpプロトコル
1. 基本的な紹介
HTTP(Hypertext Transfer Protocol)
Web通信の基礎となるハイパーテキストを送信するためのアプリケーション層プロトコルです。HTTP プロトコルの主な役割は、クライアントとサーバーの間で情報を送信し、クライアントがサーバー上の Web リソースを要求および受信できるようにすることです。
HTTP プロトコルの動作方法は、要求応答モデルに基づいています。クライアントはHTTP
リクエストを含むメッセージをサーバーに送信し、サーバーはHTTP
応答を含むメッセージをクライアントに送信します。リクエストメッセージにはリクエストメソッド、リクエストURI(Uniform Resource Identifier
)、プロトコルバージョン、リクエストヘッダー、リクエストデータなどが含まれ、レスポンスメッセージにはプロトコルバージョン、ステータスコード、レスポンスヘッダー、レスポンスデータなどが含まれます。
HTTP プロトコルには次の特徴があります。
-
コネクションレス: 各要求と応答の対話は独立しており、サーバーはクライアントに関する状態情報を保持しません。これは、サーバーが複数のクライアント要求を処理するのに有益ですが、要求ごとに新しい接続が確立されるため、一定量のオーバーヘッドが増加します。
-
ステートレス: サーバーは以前のリクエストからの情報を保存せず、各リクエストは独立しています。クライアントの状態を維持する必要がある場合は、
Cookie
などのメカニズムを使用してそれを実現できます。
HTTP プロトコルの主なタスクには次のものがあります。
-
接続を確立する: クライアントがサーバーへのリクエストを開始するとき、
TCP
最初に接続を確立する必要があります。3 ウェイ ハンドシェイク プロセスを通じて、クライアントとサーバーの間に信頼性の高い通信リンクが確立されます。 -
リクエストの送信: クライアントは、リクエストされたメソッド (
GET、POST
など)、リクエストされたURI
プロトコルのバージョンなどを含む HTTP リクエストをサーバーに送信します。リクエストには追加のヘッダー情報やリクエスト データ (リクエストパラメータCookie
など)が含まれる場合があります。 -
リクエストの処理: リクエストを受信した後、サーバーは
URI
リクエストとメソッド情報に従って、データベースへのクエリ、ファイルの読み取りなどの対応する処理を実行します。サーバーはリクエストの正当性を検証し、応答データを生成する場合があります。 -
応答の送信: サーバーは、プロトコル バージョン、ステータス コード、応答ヘッダー、応答データを含む応答メッセージを生成します。次に、応答をクライアントに送信します。
-
応答の受信: サーバーから送信された応答メッセージを受信した後、クライアントはプロトコルのバージョンとステータス コードに従ってそれを分析します。クライアントは応答データを取得し、HTML の解析やページのレンダリングなどの対応する処理を実行できます。
HTTP プロトコルは Web 通信において重要な役割を果たし、クライアントがサーバーと対話して必要な Web リソースを取得できるようにします。通信のルールと形式を定義し、柔軟な拡張メカニズムを提供して、Web アプリケーションがデータを迅速かつ確実に送信できるようにします。
2.リクエストメッセージ
HTTP リクエスト メッセージは、リクエスト行、リクエスト ヘッダー、リクエスト本文の 3 つの部分で構成されます。
-
リクエスト行: リクエスト行には、リクエストメソッド、リクエストされた URL、および HTTP プロトコルのバージョンが含まれます。一般的なリクエスト メソッドには、GET、POST、PUT、DELETE などが含まれます。例えば:
GET /index.html HTTP/1.1
-
リクエスト ヘッダー: リクエスト ヘッダーには、キーと値のペアの形式で提示される、リクエストに関する追加情報が含まれています。一般的なリクエスト ヘッダーには、Host、User-Agent、Accept、Content-Type などが含まれます。
リクエストヘッダーフィールド | 説明する | 例 |
---|---|---|
ホスト | 要求されたサーバーのドメイン名とポート番号を指定します | ホスト: www.example.com |
ユーザーエージェント | リクエストを送信するユーザーエージェントを識別します | ユーザーエージェント: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML、Gecko など) Chrome/88.0.4324.190 Safari/537.36 |
受け入れる | どのような応答コンテンツ タイプが受け入れられるかをサーバーに通知します | 受け入れる: text/html、application/xhtml+xml、application/xml;q=0.9、image/webp、/ ;q=0.8 |
Accept-Language | 告诉服务器可接受的响应内容语言 | Accept-Language: en-US,en;q=0.9 |
Accept-Encoding | 告诉服务器可接受的响应内容的压缩方法 | Accept-Encoding: gzip, deflate, br |
Connection | 维持持久连接,或关闭连接 | Connection: keep-alive |
Referer | 告诉服务器发送请求的前一页URL | Referer: http://www.example.com/page1.html |
Cookie | 包含之前由服务器设置的cookie | Cookie: name=value; name2=value2 |
Authorization | 用于身份验证的凭证信息 | Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== |
Content-Type | 请求体的媒体类型 | Content-Type: application/json |
Content-Length | 请求体的字节数 | Content-Length: 348 |
If-None-Match | 如果资源的ETag与请求头中指定的一致,则返回304 Not Modified | If-None-Match: “686897696a7c876b7e” |
If-Match | 如果资源的ETag与请求头中指定的一致,则进行请求处理 | If-Match: “686897696a7c876b7e” |
例如:
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Content-Type: application/json
- 请求主体:请求主体可选,用于传输请求的数据,例如表单数据或JSON数据。在POST请求中常见的请求主体就是要发送的数据。例如:
{ "username": "example_user", "password": "123456" }
综合示例:
POST /login HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Content-Type: application/json
{
"username": "example_user",
"password": "123456"
}
以上示例是一个使用POST方法向www.example.com
的/login
路径发送JSON数据的HTTP请求报文。
3. 响应报文
HTTP的响应报文是服务器向客户端返回的数据格式,它由三部分组成:响应行、响应头和响应体。下面对每个部分进行详细的介绍,并举例说明。
- 响应行:
响应行包含了响应的状态码和状态码的文本描述,格式为“HTTP版本 状态码 状态码文本描述”。例如:HTTP/1.1 200 OK
- HTTP版本指明服务器所使用的HTTP协议的版本。
- 状态码代表了请求的处理结果的状态。常见的状态码有:
- 200:请求成功
- 404:资源未找到
- 500:服务器内部错误
以下是常见的HTTP响应状态码表格说明:
状态码 | 状态码描述 | 说明 |
---|---|---|
200 | OK | 请求成功 |
201 | Created | 请求已成功处理,并且已创建了一个新的资源 |
204 | No Content | 请求已成功处理,但响应报文中无返回内容 |
301 | Moved Permanently | 资源的URL被永久移动到了另一个位置 |
302 | Found | 资源的URL被临时移动到了另一个位置 |
304 | Not Modified | 资源自从上次请求后未发生过修改,可使用客户端缓存的版本 |
400 | Bad Request | 客户端请求的语法错误或无法被服务器理解 |
401 | Unauthorized | 请求缺乏有效的身份验证凭证 |
403 | Forbidden | 服务器理解请求,但拒绝执行操作,权限不足或者对资源的访问被禁止 |
404 | Not Found | 请求的资源在服务器上不存在 |
500 | Internal Server Error | 服务器在执行请求时遇到了无法处理的错误 |
503 | Service Unavailable | 服务器暂时无法处理请求,一般为过载或维护 |
- 响应头:
响应头包含了关于响应的一些补充信息,格式为“名称: 值”。常见的消息报头有:
- Content-Type:指明了响应正文的MIME类型。例如:Content-Type: text/html
- Content-Length:指明了响应正文的字节长度。例如:Content-Length: 1024
- Server:指明了服务器的软件信息。例如:Server: Apache/2.4.29 (Unix)
- 响应体:
响应体是服务器返回给客户端的实际数据,它可以是文本、HTML、XML、JSON等格式。请求成功时,响应正文会包含所请求资源的内容;而出现错误时,响应正文可能包含出错信息或者空白。
下面是一个简单的例子:
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1024
Server: Apache/2.4.29 (Unix)
<!DOCTYPE html>
<html>
<head>
<title>Example Page</title>
</head>
<body>
<h1>Hello, World!</h1>
<p>This is an example page.</p>
</body>
</html>
在这个例子中,状态行指明了响应的状态是200 OK,消息报头指明了响应正文的MIME类型为text/html,响应正文是一个简单的HTML页面。
4.DNS服务器
1. 基本概念
DNS服务器是一个专门用于域名系统(DNS)的服务器。它的主要功能是将域名解析成相应的IP地址,并将网络请求路由到正确的服务器上。DNS服务器保存着域名和IP地址的对应关系,当用户在浏览器中输入一个域名时,DNS服务器会根据域名查询DNS解析记录,并返回相应的IP地址给用户的计算机,从而使用户能够访问目标网站。DNS服务器也可以进行其他功能,如缓存DNS解析结果以提高解析速度、执行反向DNS解析等。
2. 域名
域名是指用于在互联网上标识和定位网站的字符串。它由多个部分组成,包括顶级域名(TLD)、二级域名(SLD)和子域名(Subdomain)等。
以下是域名的组成及其说明:
组成 | 说明 | 示例 |
---|---|---|
协议 | 域名所使用的网络协议或协议组合 | http://或https:// |
子域 | 可选的域名部分 | blog. |
主域 | 域名的主要部分 | example |
顶级域 | 域名的最高级部分 | .com |
例如,对于URL “http://blog.example.com
”,其域名的组成如下:
- 协议:
http://://
- 子域:
blog.
- 主域:
example
- 顶级域:
.com
通过域名,用户可以更容易地记住和访问网站,而不需要记住复杂的IP地址。
以下是一些常见的顶级域名:
顶级域名 | 说明 |
---|---|
.com | 商业领域,普遍用于商业网站 |
.org | 非营利组织,常用于非盈利性质的组织或个人 |
.net | 网络,常用于网络相关的网站 |
.edu | 教育,主要用于教育机构或学术机构 |
.gov | 政府,用于政府或政府机构 |
.mil | 军事,用于军事组织或军方机构 |
.int | 国际组织,用于国际性组织 |
.info | 信息,常用于提供信息的网站 |
.biz | 商务,用于商务相关的网站 |
.name | 个人名称,用于个人网站 |
.pro | 专业人士,常用于专业人士的网站 |
.coop | 合作社,常用于合作社或合作组织 |
.museum | 博物馆,用于博物馆相关的网站 |
.aero | 航空运输业,用于航空运输业 |
.int | 网际,常用于国际性的互联网机构 |
.travel | 旅游,用于旅游业相关的网站 |
.jobs | 就业机会,用于提供就业机会 |
.mobi | 移动互联网,用于移动互联网相关的网站 |
.asia | 亚洲,用于亚洲地区的网站 |
.cat | 加泰罗尼亚语,用于加泰罗尼亚语言的网站 |
.eu | 欧洲联盟,用于欧洲联盟成员国 |
.tel | 电话号码,用于电话号码相关的网站 |
.xxx | 含有成人内容的网站 |
.cn | 中国,用于中国地区的网站 |
3. DNS解析域名的过程
域名系统(DNS)通过将域名解析为相应的IP地址来帮助计算机在互联网上定位其他计算机。以下是DNS通过域名查找IP地址的过程:
- 用户在浏览器中输入一个域名(例如www.example.com)。
- 本地计算机首先检查它的本地DNS缓存,看看是否已经解析过这个域名。如果有,它将返回对应的IP地址,并跳到第6步。
- 如果本地缓存没有相应的解析记录,计算机将发送一个DNS查询到本地网络的DNS服务器。
- 本地DNS服务器检查它的缓存,如果没有相应的解析记录,它将发起一个迭代查询,开始解析这个域名。
- 本地DNS服务器首先询问根域名服务器,根域名服务器知道所有的顶级域名服务器的IP地址。根域名服务器告诉本地DNS服务器.com顶级域名服务器的IP地址。
- 本地DNS服务器接着向.com顶级域名服务器发送一个查询请求。
- .com顶级域名服务器根据请求返回相应的权威域名服务器的IP地址。权威域名服务器是负责保存特定域名解析记录的服务器。
- 本地DNS服务器在知道权威域名服务器的IP地址后,发送一个查询请求给权威域名服务器。
- 权威域名服务器检查自己的数据库,找到对应的域名解析记录,并将IP地址返回给本地DNS服务器。
- 本地DNS服务器将IP地址存储在缓存中,并将IP地址返回给用户的计算机。
- 用户的计算机通过获取到的IP地址与目标计算机建立连接,并开始进行通信。
5. DHCP
Dynamic Host Configuration Protocol (DHCP)是一种网络协议,用于自动分配IP地址、子网掩码、默认网关和DNS服务器的配置给连接到网络上的设备。
DHCP服务是在网络中提供自动IP地址分配和其他网络配置设置的服务。当设备连接到网络时,它会向DHCP服务器发送请求,DHCP服务器会为设备分配一个可用的IP地址,并提供其他网络配置信息。这样,设备就可以自动获得所需的网络配置,而不需要手动配置。DHCP服务可以大大简化网络管理员的工作,同时提供更方便和高效的网络管理。
DHCP服务的工作原理如下:
- 设备加入网络时,向网络中的DHCP服务器发送一个DHCP请求。
- DHCP服务器收到请求后,在可用的IP地址池中分配一个可用的IP地址,并将其回复给设备。
- 设备收到DHCP服务器分配的IP地址,并使用该地址进行网络通信。
- DHCP服务器还可以提供其他网络配置信息,如子网掩码、默认网关和DNS服务器的IP地址等。
- 设备接受到其他网络配置信息后,可以根据配置信息进行网络设置,以正常使用网络服务。
通过使用DHCP服务,网络管理员可以更方便地管理整个网络,而不需要手动为每个设备分配IP地址和其他网络配置。同时,DHCP还支持IP地址的动态分配和租用,可以在设备不再需要时将分配给它的IP地址回收,以供其他设备使用。这使得网络中的IP地址使用更加高效。
总而言之,DHCP服务是一种自动分配IP地址和其他网络配置的服务,它提供了简化和高效的网络管理方式,使设备能够更方便地连接到网络并使用网络服务。
6. 在浏览器地址栏里输入一个URL,到这个页面呈现出来,中间会发生
以下是从输入URL到页面呈现的基本流程:
- 用户在浏览器地址栏中输入
URL
(统一资源定位符)。 - 浏览器通过
URL
解析出主机名(例如www.example.com
)。 - 浏览器使用
DNS
(域名系统)解析器将主机名转换为IP
地址,该IP
地址对应于服务器,以便能够建立与服务器的连接。 - 浏览器使用
HTTP
(超文本传输协议)建立与服务器的TCP
(传输控制协议)连接。 - 建立连接后,浏览器发送一个
HTTP
请求到服务器,该请求包含请求的资源(例如网页、图像等)的详细信息。 - 服务器接收到请求后,根据请求的资源,生成相应的
HTTP
响应。 - 服务器将
HTTP
响应发送回浏览器。 - 浏览器接收到
HTTP
响应后,解析响应并获取所请求资源的数据。 - 浏览器将获取到的数据渲染为用户可见的页面。
- 页面呈现完成后,浏览器会继续解析页面上的其他资源(例如脚本、样式表等)并进行相应的处理。
整个过程涉及到多个步骤和技术,包括URL
解析、DNS
解析、建立连接、发送请求、接收响应、解析和渲染等。这些步骤之间的具体实现可能因浏览器的不同而有所变化,但基本流程是大致相同的。
总结
通过本篇文章的介绍,我们对计算机网络中的五层网络协议有了更深入的了解。首先,我们了解了网络协议的概念以及为什么需要将网络协议分为不同的层次。接着,我们详细介绍了每一层网络协议的功能和作用,从物理层到应用层,每一层都扮演着重要的角色。我们了解了数据在每一层传输的方式以及相应的协议。同时,我们也了解了网络协议的分层模型,如OSI模型和TCP/IP模型,并了解了它们之间的关系。最后,我们讨论了网络协议在实际应用中的作用,如网络安全和网络性能优化。通过学习五层网络协议,我们对计算机网络的运行机制和原理有了更加深入的了解,这对我们在网络相关的工作和学习中都非常有帮助。