1. トランスポート層の概要
多重化: 送信側の異なるアプリケーション プロセスが同じトランスポート層プロトコルを使用してデータを送信できます。
分散化: 受信側のトランスポート層は、メッセージ セグメントのヘッダーを削除した後、データを適切なアプリケーション プロセスに配信できます。
ウェルノウン ポート番号は、ウェルノウン ポート番号 0 ~ 1023 です。
クライアントが使用するポート番号は動的に変化し、一意に決まりません。
ポート番号は 16 ビット 65536 です。
ソケットはエンドポイント、つまり特定のホスト上の特定のプロセスを識別できます。
ftp:21 telnet:23 smtp:25 dns:53 http:80
2. UDP ユーザーデータグラム
リンク層には MTU 要件があります
UDP はデータの確実な配信を保証するものではなく、多重化、逆多重化、エラー検出の機能を提供するだけであり、問題が発生した場合はアプリケーション層が自ら解決する必要があります。
udp ヘッダーは 8 バイト (送信元ポート、宛先ポート、UDP の全長、チェックサム)、tcp ヘッダーは 20 バイトです
送信元ポート番号は入力不要(相手からの応答が不要な場合)ですが、宛先ポート番号は入力する必要があります。
分割時に、対応するポート番号がない場合、メッセージは破棄され、ICMP「ポート到達不能」エラー報告メッセージが送信者に返されます。
疑似ヘッダーは、アップロード時や送信時ではなく、チェックサムを計算するときにのみ表示されます。
擬似ヘッダーの udp 長さフィールドは、udp ヘッダー 8B + udp データ部分の長さを指します(擬似ヘッダーの長さを除く)。
テストはしていないと思います:
3. TCPの信頼性の高いデータ送信
各 TCP 接続はポイントツーポイント/1 対 1 のみであり、ブロードキャスト/マルチキャスト通信には使用できません。
TCP は信頼性の高いデータ伝送を提供します。信頼性が高く、秩序正しく、重複や損失がありません。
TCP は全二重通信を提供します。送信バッファリングと受信バッファリングは同時に機能します。
TCP はバイト ストリーム指向のサービスを提供します。アプリケーションによって配信されるデータは、構造化されていないバイトのストリームとして表示されます。
パディング フィールドの役割: TCP セグメントが 4 バイトで整列されていることを確認します。
接続指向: メッセージ セグメントを受信するときは、確認応答で応答する必要があります。応答は、受信する次のシーケンス番号です。同時に、このシーケンス番号より前のすべてのメッセージ セグメントを受信したことを送信者に伝えます。 。
データ部分の開始位置を取得するためにデータ オフセットを使用する必要があるのはなぜですか?
》 20 バイトの固定ヘッダーに加えて、オプション フィールドも追加される場合があるためです。
SYN と SIN は接続の確立と解放に使用されます
緊急ポインタの目的は、緊急データの場所を特定することです。
4. 3 回の握手と 4 回の手を振る。
サービス/クライアントには送信バッファと受信バッファの両方があります
ACK=1、ACK番号は意味がある
2MSL を待つ理由: 最後の ACK=1、seq=u+1、ack=w+1 が失われ、サーバーがそれを受信しない場合、サーバーは常に FIN=1、ACK=1、seq= をサーバーに送信します。 client.w,ack=u+1、最終的な CLOSED 状態に入ることができません
1 バイトはシーケンス番号を占め、シーケンス番号フィールドはメッセージ セグメントの最初のバイトのシーケンス番号を指します。
TCP は累積確認を使用します
3 つの冗長 ACK の後、高速再送信が直接開始されます。
5. TCPフロー制御と輻輳制御
TCPは輻輳制御とフロー制御に重点を置いています
お互いを待ち続ける膠着状態をどう打破するか?
相手からのゼロウィンドウ通知を受信後、継続タイマーを起動し、一定間隔でプローブセグメントを送信します。
フロー制御はポイントツーポイントの問題ですが、輻輳制御はグローバルな問題です
素早い回復: 半分まで低下し、直線的に増加し始める