TCPでは、データ転送はどのように開始されますか?

TCPでは、データ転送はどのように開始されますか?

概念的には、TCP接続には2つの側面があると思います。

  1. 「接続」 - つまり、2つのホストが互いに通信することに「同意する」配列です。電話で誰かに電話をかけるのとほぼ同じです。相手が応答すると、「接続」が設定されています。
  2. データ転送

TCP接続の側面はネットワーク文書で詳しく説明されており、ホストは3方向ハンドシェイクなどを介して接続をネゴシエートしますが、この時点ではアイドル接続のみです。また、誰かが相手から電話をかけて「死んだ空気」

私の質問は、接続が確立されるとデータ(ファイル転送など)がどのように始まりますか?送信者が送信する内容を簡単に説明しているようです。たとえば、「送信します...Xバイトのファイルがある場合、または予告編を受信すると、転送が完了したことがわかります。」 TCPデータ/ファイル転送はどのように開始されますか?

答え1

伝送制御プロトコルストリーム指向の転送プロトコルです。あるホストから別のホストに正しい順序でバイトをインポートすることにのみ興味があり、そのバイトの内容やそれらが形成できるメッセージには興味がありません。接続が確立されると、接続の両端がもう一方の端にバイトを送信できます。

メッセージに意味を与えるには、TCPに加えてプロトコルに同意する必要があります。どのメッセージを送信するのか、受信したメッセージを解釈する方法を決定するのがこのプロトコルです。これには、メッセージが完了するタイミングを決定することも含まれます。たとえば、HTTPに「Content-Length」ヘッダーがある場合、受信者はそれを使用してすべてのデータが受信されたかどうかを確認できます。そうでない場合は、別の方法を使用してください。RFC詳細)サーバーが接続を閉じるのを待つまで(費用がかかりますが、メッセージの長さを決定するためにある程度TCPを使用します)。

メッセージ指向の転送プロトコルを使用して個々のメッセージを送信するには、次のものを使用できます。UDPプロトコルまたはSCTPTCPの代わりに。

関連情報