TCP と UDP の主な違いは信頼性です。 TCP 通信の信頼性は、コネクション型セッションを使用することで実現されます。 TCP を使用するホストが別のホストにデータを送信しようとすると、TCP が宛先との接続を作成するプロセスを開始します。 このステートフル接続によって、セッション(ホスト間の通信ストリーム)の追跡が可能になります。 このプロセスによって、各ホストが通信ストリームを認識したり、通信ストリームに備えたりします。 TCP での会話には、アニメーションからわかるように、ホスト間での両方向のセッションの確立が必要です。

セッションが確立され、データ転送が開始されると、宛先は受信したセグメントについて送信元に確認応答を送信します。 これらの確認応答により、TCP セッション内の信頼性の基礎が形成されます。 送信元は確認応答を受け取ると、データが正常に配信されたので、そのデータの追跡を終えてよいと判断します。 送信元があらかじめ定められた時間内に確認応答を受信しなかった場合、送信元は宛先にデータを再送信します。

TCP を使用することで増えるオーバーヘッドの一部は、確認応答と再送信によって生成されるネットワーク トラフィックです。 セッションの確立も、交換されるセグメントの増加という形でオーバーヘッドを生み出します。 また、どのセグメントについて確認応答を待っているのかを把握する必要性や再送信プロセスによって生じる各ホストでの追加的なオーバーヘッドもあります。