TCP がセッションを確立すると、そのセッション内の会話を追跡できるようになります。 TCP は実際の会話を追跡できるので、ステートフル プロトコルと見なされます。 ステートフル プロトコルは、通信セッションの状態を追跡するプロトコルです。 たとえば、TCP を使用してデータが伝送された場合、送信側はデータを受信したという宛先からの確認応答があることを期待します。 TCP は、どの情報を送信し、どの情報に対して確認応答があったのかを追跡します。 確認応答がない場合、送信側はそのデータが到達しなかったと見なし、それを再送信します。 ステートフル セッションは、セッションの確立で始まり、そのセッションがセッションの終了で閉じられたときに終わります。

:この状態情報を維持するためには、UDP などのステートレス プロトコルには必要のないリソースが必要になります。

TCP は、これらの機能を使用するために余分なオーバーヘッドを発生させます。 図に示すように、TCP の各セグメントには、アプリケーション層のデータをカプセル化するヘッダー内に 20 バイトのオーバーヘッドがあります。 これは、オーバーヘッドが 8 バイトしかない UDP のセグメントよりもかなり大きなものです。 この余分なオーバーヘッドは次のとおりです。

TCP を使用するアプリケーションの例としては、Web ブラウザ、電子メール、およびファイル転送があります。