- トランスポート層は、TCP と UDP の 2 つのプロトコルで表されます。
- ネットワーク層の IP プロトコルは、送信元ホストから宛先ホストにデータグラムを配信します。
- 現在、オペレーティング システムはマルチユーザーおよびマルチプロセッシング環境をサポートしており、実行するプログラムはプロセスと呼ばれます。ホストが他のホストにメッセージを送信するということは、ソース プロセスがプロセスを宛先プロセスに送信していることを意味します。トランスポート層プロトコルは、プロトコル ポートと呼ばれる個々のポートへのいくつかの接続を定義します。
- IP プロトコルは、送信元ホストから宛先ホストにパケットを配信するために使用されるホスト間プロトコルであり、トランスポート層プロトコルは、IP プロトコルの最上位で動作して送信元ホストからパケットを配信するポート間プロトコルです。ポートから IP サービスへ、および IP サービスから宛先ポートへ。
- 各ポートは正の整数アドレスによって定義され、16 ビットです。
UDP
- UDPはの略です ユーザーデータグラムプロトコル 。
- UDP は単純なプロトコルであり、順序付けされていないトランスポート機能を提供します。
- UDP はコネクションレス型プロトコルです。
- このタイプのプロトコルは、速度やサイズよりも信頼性とセキュリティが重要でない場合に使用されます。
- UDP は、トランスポート レベルのアドレス、チェックサム エラー制御、および長さ情報を上位層からのデータに追加する、エンドツーエンドのトランスポート レベル プロトコルです。
- UDP プロトコルによって生成されるパケットは、ユーザー データグラムとして知られています。
ユーザーデータグラムの形式
ユーザー データグラムには、以下に示す 16 バイトのヘッダーがあります。
どこ、
送信元ポートアドレス: | メッセージを配信したアプリケーション プロセスのアドレスを定義します。送信元ポートアドレスは 16 ビットアドレスです。
宛先ポートアドレス: | メッセージを受信するアプリケーション プロセスのアドレスを定義します。宛先ポートアドレスは 16 ビットアドレスです。
全長: | ユーザー データグラムの合計長をバイト単位で定義します。 16 ビットのフィールドです。
チェックサム: | チェックサムは、エラー検出に使用される 16 ビットのフィールドです。
UDPプロトコルの欠点
- UDP は、送信のエンドツーエンド配信に必要な基本機能を提供します。
- シーケンス機能や並べ替え機能は提供されず、エラーを報告するときに破損したパケットを指定しません。
- UDP はエラーが発生したことを検出できますが、特定のデータ セグメントの ID やシーケンス番号が含まれていないため、どのパケットが失われたかは特定できません。
TCP
- TCPは伝送制御プロトコルの略です。
- アプリケーションに完全なトランスポート層サービスを提供します。
- これは接続指向のプロトコルであり、送信の両端間で確立される接続を意味します。接続を作成するために、TCP は送信中に送信者と受信者の間に仮想回線を生成します。
TCPプロトコルの特徴
ストリームデータ転送: | TCP プロトコルは、連続したバイト ストリームの形式でデータを転送します。 TCP はバイトを TCP セグメントの形式でグループ化し、宛先への送信のために IP 層に渡します。 TCP 自体がデータをセグメント化し、IP に転送します。
信頼性: | TCP は、送信される各バイトにシーケンス番号を割り当て、受信側の TCP からの肯定応答を期待します。タイムアウト間隔内に ACK が受信されない場合、データは宛先に再送信されます。
受信側の TCP はシーケンス番号を使用して、セグメントが間違った順序で到着した場合にセグメントを再構成したり、重複したセグメントを削除したりします。
フロー制御: | 受信時に、TCP は内部バッファをオーバーフローさせることなく受信できるバイト数を示す確認応答を送信者に送り返します。バイト数は、問題なく受信できる最大のシーケンス番号の形式で ACK で送信されます。この機構はウィンドウ機構とも呼ばれます。
多重化: | 多重化とは、さまざまなアプリケーションからデータを受け取り、さまざまなコンピュータ上のさまざまなアプリケーションに転送するプロセスです。受信側では、データが正しいアプリケーションに転送されます。このプロセスは逆多重化として知られています。 TCP は、ポートと呼ばれる論理チャネルを使用して、パケットを正しいアプリケーションに送信します。
論理接続: | ソケット、シーケンス番号、ウィンドウ サイズの組み合わせは、論理接続と呼ばれます。各接続は、送信プロセスと受信プロセスで使用されるソケットのペアによって識別されます。
全二重: | TCP は全二重サービス、つまり同時に両方向のデータ フローを提供します。全二重サービスを実現するには、セグメントが両方向に流れることができるように、各 TCP に送信バッファと受信バッファが必要です。 TCP は接続指向のプロトコルです。プロセス A がプロセス B とデータを送受信したいとします。次の手順が発生します。 - 2 つの TCP 間の接続を確立します。
- データは双方向で交換されます。
- 接続が終了します。
TCPセグメント形式
どこ、
部分文字列文字列java
送信元ポートアドレス: | これは、ソース コンピュータ内のアプリケーション プログラムのアドレスを定義するために使用されます。 16 ビットのフィールドです。
宛先ポートアドレス: | これは、宛先コンピュータ内のアプリケーション プログラムのアドレスを定義するために使用されます。 16 ビットのフィールドです。
シーケンス番号: | データのストリームは 2 つ以上の TCP セグメントに分割されます。 32 ビットのシーケンス番号フィールドは、元のデータ ストリーム内のデータの位置を表します。
確認番号: | 32 フィールドの確認応答番号は、他の通信デバイスからのデータを確認します。 ACK フィールドが 1 に設定されている場合、受信側が受信を予期しているシーケンス番号を指定します。
ヘッダー長 (HLEN): | TCP ヘッダーのサイズを 32 ビット ワードで指定します。ヘッダーの最小サイズは 5 ワード、最大サイズは 15 ワードです。したがって、TCP ヘッダーの最大サイズは 60 バイト、最小サイズは 20 バイトです。
予約済み: | これは、将来の使用のために予約されている 6 ビットのフィールドです。
制御ビット: | 制御フィールドの各ビットは、個別かつ独立して機能します。制御ビットは、セグメントの使用を定義するか、他のフィールドの有効性チェックとして機能します。
制御フィールドには合計 6 種類のフラグがあります。
URG: | URG フィールドは、セグメント内のデータが緊急であることを示します。
応答: | ACK フィールドが設定されると、確認応答番号が検証されます。
PSH: | PSH フィールドは、より高いスループットが必要であることを送信者に通知するために使用されるため、可能であれば、より高いスループットでデータをプッシュする必要があります。
RST: | リセット ビットは、シーケンス番号に混乱が生じた場合に TCP 接続をリセットするために使用されます。
SYN: | SYN フィールドは、接続要求、接続確認 (ACK ビットが設定された状態)、および確認応答の 3 つのタイプのセグメントのシーケンス番号を同期するために使用されます。
終わり: | FIN フィールドは、送信者がデータの送信を終了したことを受信側の TCP モジュールに通知するために使用されます。コネクションの終了には、終了要求、終了確認、終了確認応答の 3 種類のセグメントで使用されます。 ウィンドウのサイズ: | ウィンドウは、ウィンドウのサイズを定義する 16 ビットのフィールドです。
チェックサム: | チェックサムは、エラー検出に使用される 16 ビットのフィールドです。
緊急の指示: | URG フラグが 1 に設定されている場合、この 16 ビット フィールドは、最後の緊急データ バイトであることを示すシーケンス番号からのオフセットです。
オプションとパディング: | 追加情報を受信者に伝えるオプションのフィールドを定義します。
TCP と UDP の違い
比較の根拠 | TCP | UDP |
意味 | TCP は、データを送信する前に仮想回線を確立します。 | UDP は、受信側が受信準備ができているかどうかを確認せずに、データを宛先コンピューターに直接送信します。 |
接続タイプ | 接続指向のプロトコルです | コネクションレス型プロトコルです |
スピード | 遅い | 高い |
信頼性 | 信頼性の高いプロトコルです。 | これは信頼性の低いプロトコルです。 |
ヘッダーのサイズ | 20バイト | 8バイト |
了承 | データの確認応答を待ち、失われたパケットを再送信する機能があります。 | 確認応答を受け取ることも、破損したフレームを再送信することもありません。 |