tcp ip model with different layers
TCP / IPモデルのレイヤーの完全ガイド:
私たちはすべてについて学びました ファイアウォールセキュリティ 前のチュートリアルで。ここでは、このチュートリアルでTCP / IPモデルについて学習します。
TCP / IPモデルは、伝送制御プロトコルとインターネットプロトコルを指します。
現在のインターネットモデルは、通信目的でこのネットワークモデルを使用しています。を読んでください ネットワークに関するトレーニングチュートリアル 概念を明確に理解するため。
これらのプロトコルは、ネットワークを介した各通信を規制するルールの単なる組み合わせです。次に、これらは、送信元と宛先、またはインターネット間の通信のためにたどるパスを決定します。
TCP / IPモデルは、通信プロセス全体を完了する4つの層で構成されています。 このチュートリアルでは、各レイヤーの機能について詳しく見ていきます。
ソフトウェアアプリケーションは最上位層、つまりこのモデルのアプリケーション層で動作するため、ソフトウェアテスターとしてTCP / IPモデルに共感する必要があります。
学習内容:
ネットワークアーキテクチャ
4層アーキテクチャは次のとおりです。
このネットワークモデルで使用されるプロトコルとネットワークを次の図に示します。
次の図を使用して、TCP / IPモデルの各レイヤーのプロトコルと主な用途を要約してみましょう。
TCP / IPモデルの各層の機能
以下に、TCP / IPモデルの各レイヤーのさまざまな機能を示します。
ネットワークアクセス層
ネットワークアクセス層の機能を以下に示します。
int c ++へのchar配列
- これはTCP / IPモデルの最下層であり、OSI参照モデルの物理層とデータリンク層のすべての機能が含まれています。
- したがって、通信に使用されるプロトコル、ハードウェア、およびメディアを特徴づけます。
- インターネット層からのデータパケットは、物理メディアを介して宛先に送信するためにこの層に渡されます。
- この層の主なタスクは、データバイトをフレームに結合し、物理メディアを介してIPデータフレームを送信するためのメカニズムを提供することです。
- ポイントツーポイント(PPP)は、オーバーリース回線をポイントツーポイントリンクするために使用されるプロトコルです。また、モデムを介してエンドユーザーとインターネットサービスプロバイダー間の接続を提供するために展開されます。また、PPPリンクを介したIPアドレスのプロビジョニングもサポートしています。
- ほとんどのエンドユーザーは、イーサネットデータリンクプロトコルでのみ機能するイーサネットリンクを好みます。したがって、カプセル化されたデータフレームをイーサネットフレーム内に送信できるようにするPPP overEthernetが作成されます。
- PPPoEは最初に、ルーターやISPルーターなどのエンドユーザーネットワークデバイス間にトンネルを構築します。次に、トンネルがルータ間のポイントツーポイントリンクとして機能するため、ルータはそのトンネルを介してPPPフレームを送信します。現在、このテクノロジーにより、データはWANネットワーク経由でも送信されます。
- PPPはまた、認証プロセスを使用して、ISPでのデータ使用の説明責任をチェックします。この方法には、パスワード認証プロトコル(PAP)とチャネルハンドシェイク認証プロトコル(CHAP)が含まれます。
インターネット層
- 下から2番目の層はインターネット層です。
- データパケットに対応するヘッダーを追加することにより、データがTCPまたはUDPによってセグメント化されると、データはさらに通信するために下位層に送信されます。
- データパケットの宛先となる宛先ホストは、さまざまなルーターを経由してパスに到達する可能性のある他のネットワークに存在する場合があります。論理アドレスを割り当て、データパケットを宛先ネットワークに効率的にルーティングすることは、インターネット層の義務です。
- インターネット層(IP)は、このタスクを実行するために使用される最も一般的なプロトコルです。
インターネットプロトコル
このプロトコルの目的は、一連のプロトコルに従って、パケットヘッダーの情報に従ってデータパケットを宛先にルーティングすることです。
送信元と宛先のIPアドレスを持つヘッダーを追加することにより、TCPまたはUDPから受信したセグメントはパケットと呼ばれるPDUに変換されます。パケットがルーターに到着すると、ヘッダー内の宛先アドレスを確認し、それに応じてパケットを次のルーターに転送して宛先に到達します。
例でこれを理解しましょう:
次の図では、ホストAがホストBと通信する場合、両方が同じセットのIPアドレスを持つ同じネットワーク範囲内にあるため、ルーティングプロトコルを使用しません。
しかし、ホストAがホストCにパケットを送信したい場合、プロトコルの助けを借りて、宛先ホストが別のネットワークのものであることを検出します。したがって、上記の形式では、ルーティングテーブルを調べて、宛先に到達するためのネクストホップアドレスを見つけます。
この場合、ホストAはルーターA、B、およびCを介してホストCに到達します。ルーターCはスイッチを介して宛先ネットワークに直接接続されているため、パケットはホストCに配信されます。
ルーターは、IPヘッダーフィールドからすべてのルーティング関連情報を取得します。 TCP / IPのネットワーク層(データリンク層)は、データパケットのエンドツーエンドの配信を担当します。
インターネットプロトコルのパケットフロー
IPV4ヘッダー
- バージョン: IPV4のバージョン番号は4です。
- ヘッダーの長さ: ヘッダーのサイズが表示されます。
- DSフィールド: DSフィールドは、Differentiated Servicesフィールドの略で、パケットを構築するために展開されます。
- 全長: ヘッダーのサイズとデータパケットのサイズを足したものです。
- 識別: このフィールドは、データパケットの断片化と各フィールドの割り当てに使用されるため、元のデータパケットの作成に役立ちます。
- フラグ: 断片化手順を示すために使用されます。
- フラグメントオフセット: フラグメント番号と、フラグメント化されたデータを正しい順序で並べ替えるためにそれらを使用するソースホストを示します。
- 行く時間だ: これは、送信元ホスト側で設定されます。
- プロトコル: これは、データの送信に使用しているプロトコルを示します。 TCPのプロトコル番号は6、UDPのプロトコル番号は17です。
- ヘッダーチェックサム: このフィールドは、エラー検出に使用されます。
- 送信元IPアドレス: 送信元エンドホストのIPアドレスを保存します。
- 宛先IPアドレス: 宛先ホストのIPアドレスを保存します。
これについては、今後のチュートリアルで詳しく説明します。
トランスポート層
- これは、データの全体的な転送を担当する下から3番目の層であり、送信元と宛先のホストとネットワーク内のデバイス間のエンドツーエンドの論理接続を確立するのに役立ちます。
- これらのタスクを実行するには、次の2つのプロトコルが使用されます。
- 1つは、接続ベースの信頼性の高いプロトコルである伝送制御プロトコル(TCP)です。
- 2つ目は、コネクションレス型プロトコルであるユーザーデータグラムプロトコル(UDP)です。
- これらの2つのプロトコルを詳しく調べる前に、これらの両方のプロトコルで使用されるポート番号の概念について説明します。
ポート番号:
ネットワークでは、ホストデバイスが複数のソースから同時にトラフィックを送受信する場合があります。
このような状況では、システムはデータがどのアプリケーションに属しているかを認識しません。 TCPおよびUDPプロトコルは、ヘッダーにポート番号を挿入することでこれらの問題を解決します。よく知られているアプリケーション層プロトコルには、1〜1024の範囲のポート番号が割り当てられます。
ソースエンドでは、すべてのTCPまたはUDPセッションにランダムなポート番号が割り当てられます。組み合わせて使用されるIPアドレス、ポート番号、およびプロトコルのタイプは、送信元側と宛先側の両方でソケットを再構築します。すべてのソケットは排他的であるため、複数のホストが同じ時間間隔でトラフィックを送受信できます。
次の表は、トランスポート層プロトコルに対応するいくつかのアプリケーション層プロトコルに割り当てられているポート番号を示しています。
アプリケーションプロトコル | トランスポートプロトコル | ポート番号 |
---|---|---|
DNS | TCP、UDP | 53 |
HTTP | TCP | 80 |
HTTPS | TCP | 443 |
FTP(制御) | TCP | 21 |
FTP(データ) | TCP | 20 |
SSH | TCP | 22 |
Telnet | TCP | 2. 3 |
SMTP | TCP | 25 |
TFTP | UDP | 69 |
ポート番号を使用した複数セッション
TCP
- アプリケーション層が巨大なトラフィックまたはデータのフローを循環させる必要があるときはいつでも、TCPがネットワーク間のすべてのエンドツーエンド通信を実行するトランスポート層にそれを送信します。
- TCPは、最初に送信元と宛先の間に3方向のハンドシェイクプロセスを設定し、次にデータをセグメントと呼ばれる小さなチャンクに分割し、ヘッダーをすべてのセグメントに含めてから、インターネット層に転送します。
次の図は、TCPヘッダーの形式を示しています。
- スリーウェイハンドシェイク: これは、ネットワーク内の送信元ホストと宛先ホストの間の接続を確立するためにTCPによって展開されるプロセスです。信頼性の高いデータ送信を行うために使用されます。 TCPヘッダーのコードビットのSYNフラグとACKフラグを展開して、タスクを実行します。これは、再送信で肯定応答を実行することによって信頼性の高い通信をプロビジョニングし、PARとも呼ばれます。 PARを使用するシステムは、ACKを受信するまでデータセグメントを再送信します。受信者がデータを破棄するときはいつでも、送信者は受信者から正のACKを受信するまでデータを再送信する必要があります。
スリーウェイハンドシェイクには3つのステップがあり、次のとおりです。
- ステップ1: 送信元ホストAは、宛先ホストBとの接続を確立する必要があり、SYNとシーケンス番号を使用してセグメントを送信します。これは、ホストAがホストBとの通信セッションを開始し、どのシーケンス番号で定義されているかを示します。そのセグメントで。
- ステップ2: ホストBは、信号ビットにSYNとACKを設定してホストAの要求に応答します。 ACKは受信したセグメントの応答を示し、SYNはシーケンス番号を示します。
- ステップ3: ホストAはホストBからの応答を確認し、両方がホストB間の安全な接続を確立してから、ホストBを介したデータ送信を開始します。
次の図で説明するように、スリーウェイハンドシェイクプロセスでは、最初に送信元ホストがSYNフラグを設定してTCPヘッダーを宛先ホストに送信します。応答として、SYNと確認応答フラグが設定された状態に戻ります。宛先ホストは、受信したシーケンス番号に1を加えたものを確認応答番号として実行します。
TCP IPは、通信システムのクライアントサーバーモデルをサポートします。
スリーウェイハンドシェイクプロセス
- データセグメンテーション :
- これは、TCPプロトコルの機能の1つです。アプリケーション層は、トランスポート層の宛先に送信するために膨大な数のデータを送信します。ただし、トランスポート層は、一度に送信されるデータのサイズを制限します。これは、データを小さなセグメントに分割することによって行われます。
- データセグメントのシーケンスを認識するために、シーケンス番号がTCPヘッダーで使用され、データセグメント全体のバイト番号を記述します。
- フロー制御:
- ソースホストは、セグメントのクラスターでデータを送信します。ウィンドウビットを持つTCPヘッダーは、一度に送信できるセグメントの数を見つけるために使用されます。これは、宛先側で重要でないトラフィックを回避するために使用されます。
- セッションが開始されると、ウィンドウのサイズは小さくなりますが、トラフィックが時間とともに増加するにつれて、ウィンドウのサイズが大きくなる可能性があります。宛先ホストは、フローの制御に従ってウィンドウを調整できます。したがって、このウィンドウはスライディングウィンドウと呼ばれます。
- ソースは、ウィンドウで許可されている数のセグメントのみを送信できます。より多くのセグメントを送信するために、最初にACKを受信すると受信側からの確認応答を待機し、後で必要に応じてウィンドウのサイズを拡張できます。
- 次の図では、宛先ホストは、ACKを送信元ホストに送り返した後、サイズを500から600に、次に800に拡張しています。
- 信頼性の高い配信とエラー回復 :
- 決定されたウィンドウの最後のセグメントが宛先によって受信された後、送信元側にACKを送信する必要があります。 TCPヘッダーにACKフラグが設定され、推定される後続バイトのシーケンス番号としてACK番号が設定されます。宛先が適切な順序でセグメントを受信しない場合、宛先はACKを送信元に送り返しません。
- これは、送信中にいくつかのセグメントが誤って配置され、すべてのセグメントを再送信するというソースを説明しています。
- 次の図では、ソースがSEQ番号200のセグメントのACKを受信していない場合、データを再送信し、ACKを受信した後、データセグメントの次のシーケンスを送信していることが示されています。ウィンドウサイズに応じて。
- 注文配送 :
- TCPは、宛先へのデータの順次配信を保証します。宛先ホストに配信するために、アプリケーション層からデータを受信した順序でデータを配信します。したがって、順序付けられた配信を維持するために、データセグメントの送信中にシーケンス番号を使用します。
- 接続の終了 :
- 送信元と宛先の間のデータ送信が完了すると、TCPはFINフラグとACKフラグを送信してセッションを終了し、4方向ハンドシェイクを使用してセッションを閉じます。
TCPスライディングウィンドウと信頼性の高い配信
ユーザーデータグラムプロトコル(UDP):
これは、データ転送のための信頼性が低く、コネクションレス型のプロトコルです。このプロトコルでは、TCPとは異なり、ACKフラグを生成しないため、送信元ホストは宛先側からの応答を待たず、遅延なくデータを送信してACKを待ちます。
リアルタイムのシナリオでは、データパケットのドロップがパケットの再送信を待機するよりも選択されるため、UDPが使用されます。したがって、データの確認が問題にならないゲーム、オンラインビデオの視聴、チャットなどで最も広く使用されています。これらのシナリオでは、エラーのチェックと修正はアプリケーション層で行われます。
UDPヘッダー:
- ソースポート: 16ビットサイズの送信元エンドパケット情報を分類します。
- 宛先ポート :サイズも16ビットで、宛先ノードのデータサービスのタイプを分類するために使用します。
- 長さ :UDPデータグラムの全体的なサイズを示します。長さフィールドの最大サイズは、UDPヘッダー自体の全体のサイズにすることができます。
- チェックサム :送信前に送信元側で評価したチェックサム値を保存します。値を保持していない場合は、すべてのビットがゼロに設定されます。
UDPアプリケーション :
- データグラムをプロビジョニングするため、IPトンネリングやネットワークファイルシステムに適しています。
- 使い方は簡単なので、DHCPやトリビアルファイル転送プロトコルで使用されます。
- ステートレスであるため、IPTVなどのストリーミングメディアアプリケーションに効率的です。
- ボイスオーバーIPおよびリアルタイムストリーミングプログラムにも適しています。
- マルチキャストをバックアップするため、Bluetoothやルーティング情報プロトコルなどのブロードキャストサービスに適しています。
アプリケーション層
(i)これはTCP / IPモデルの最上位層です。
(ii)TCP / IPモデルのセッション層、プレゼンテーション層、およびアプリケーション層のすべてのタスクを実行します。
(iii)さまざまなアプリケーションとのインターフェース、データエンコーディング、データ変換の機能を組み合わせ、ユーザーがさまざまなネットワークシステムと通信するためのアクセスを提供します。
最も一般的なアプリケーション層プロトコルを以下に定義します。
#1)TELNET: ターミナルエミュレーションプロトコルの略です。通常、リモートエンドアプリケーションへのアクセスを練習します。ホストとして機能するtelnetサーバーは、telnetサーバーアプリケーションを開始して、telnetクライアントと呼ばれるリモートエンドホストとの接続を確立します。
接続が確立されると、TelnetサーバーのOSに提示されます。サーバー側のユーザーは、キーボードとマウスを使用して、TELNETを介して遠端ホストを操作およびアクセスします。
#2)HTTP: ハイパーテキスト転送プロトコルの略です。これは、ワールドワイドウェブ(WWW)のベースです。このプロトコルは、異なるシステム間でハイパーテキストを交換するために使用されます。これは、要求/応答プロトコルの一種です。
例えば、 Internet ExplorerやMozillaなどのWebブラウザはWebクライアントとして機能し、WebサイトをホストしているPCでストリーミングするアプリケーションはWebサーバーとして機能します。
したがって、クライアントから要求されたHTMLファイルやその他の関数などのリソースをプロビジョニングするサーバーは、メッセージ行に完了ステータスデータと要求されたデータの内容を含む応答メッセージをクライアントに返します。
HTTPリソースは、Uniform Resource Identifier(URI)メソッドHTTPおよびhttpsを展開するUniform Resource Locator(URL)によって認識され、ネットワーク上に配置されます。
#3)FTP: ファイル転送プロトコルの略です。 2つのホスト間でファイルを共有または転送するために使用されます。 FTPアプリケーションを実行するホストはFTPサーバーとして動作し、他のホストはFTPクライアントとして動作します。
ファイル共有を要求するクライアントホストは、データにアクセスするためにサーバーからの認証を必要とします。承認されると、サーバーから任意のタイプのファイルにアクセスし、ファイルを送受信できます。
#4)SMTP: シンプルメールトランスポートプロトコルは、電子メールを送信するための演習です。電子メールを送信するためにホストを構成するときは、SMTPを使用します。
#5)DNS: ネットワーク内の各ホストデバイスには、IPアドレスと呼ばれる一意の論理アドレスがあります。すでに説明したように、IPアドレスは非常に多くの番号のグループであり、覚えるのは簡単ではありません。 Google.comなどのWebブラウザでWebアドレスを入力すると、実際にはIPアドレスを持つホストが要求されます。
ただし、DNS(ドメインネームサーバー)が各論理IPアドレスに対して名前をマップして保存するため、要求しているWebページのIPアドレスを記憶する必要はありません。
Windows 10Wi-Fiデフォルトゲートウェイは利用できません
したがって、ブラウザに任意のWebページを入力すると、DNSクエリがDNSサーバーに送信され、IPアドレスが名前にマッピングされます。アドレスを取得すると、IPアドレスを使用してHTTPセッションが構築されます。
#6)DHCP: ネットワーク内の各ホストデバイスには、ネットワーク内の他のデバイスと通信するためのIPアドレスが必要です。このアドレスは、手動構成または動的ホスト構成プロトコル(DHCP)を使用して取得します。 DHCPを使用している場合、ホストには自動的にIPアドレスが割り当てられます。
ネットワークが10,000台のホストデバイスで構成されているとします。次に、各ホストに手動でIPアドレスを割り当てるのは非常に難しく、時間もかかるため、DHCPプロトコルを使用して、接続されているホストデバイス(サブネットマスクIPやゲートウェイIPなど)にIPアドレスやその他の情報を割り当てます。
ソフトウェアテストプログラムは、エンドユーザーがさまざまなサービスをテストしてそれらのサービスを使用できるようにプロビジョニングするため、TCP / IPモデルのこのレイヤーで機能します。
結論
TCP / IPモデルの各層で、その層に関連するタスクを実行するために使用されるさまざまなプロトコルと、通信システムでのそれらの利点を見てきました。
上記で定義されたすべてのプロトコルには、ソフトウェアツールのテストと適用において、独自の重要性とさまざまな役割があります。
推奨読書
- ネットワークシステムのレイヤ2およびレイヤ3スイッチのすべて
- ファイアウォールの完全ガイド:安全なネットワークシステムを構築する方法
- ルーターのすべて:ルーターの種類、ルーティングテーブル、IPルーティング
- ワイドエリアネットワーク(WAN)とは:ライブWANネットワークの例
- HTTP(ハイパーテキスト転送プロトコル)およびDHCPプロトコルとは何ですか?
- 重要なアプリケーション層プロトコル:DNS、FTP、SMTP、およびMIMEプロトコル
- IPv4とIPv6:正確な違いは何ですか
- 私のIPアドレスと場所は何ですか(ここで実際のIPを確認してください)