TCP vermijdt dubbele pakketten door gebruik te maken van sequentienummers. Binnen een TCP-verbinding worden alle verzonden pakketten genummerd met een sequentienummer. De ontvanger houdt bij welke sequentienummers hij heeft ontvangen en stuurt een bevestiging (ACK) terug naar de afzender voor elk ontvangen pakket. Als de afzender een ACK ontvangt voor een bepaald sequentienummer, weet hij dat het pakket succesvol is aangekomen en zal hij dat nummer niet nogmaals gebruiken om een ander pakket te versturen.
Als een afzender toch een duplicaat van een pakket verzendt, zal de ontvanger het sequentienummer al eerder hebben ontvangen en zal hij geen nieuwe bevestiging (ACK) sturen. De afzender zal een timeout ontvangen en het pakket opnieuw verzenden. Op deze manier worden dubbele pakketten vermeden.