Le TCP (Transmission Control Protocol) est un protocole de communication réseau fondamental dans le modèle OSI, opérant au niveau de la couche transport. Il assure une transmission fiable et ordonnée des données entre deux applications sur des appareils connectés à un réseau, généralement Internet.
TCP fonctionne en établissant une connexion entre l'émetteur et le récepteur avant l'échange de données. Cette connexion, appelée handshake, permet de synchroniser les deux parties et de garantir que les paquets de données arrivent dans le bon ordre et sans perte. Si un paquet est perdu ou corrompu durant la transmission, TCP le détecte et demande sa retransmission.
Le protocole utilise des numéros de séquence pour identifier chaque paquet et des accusés de réception (ACK) pour confirmer leur bonne réception. Il gère également le contrôle de flux pour éviter la surcharge du récepteur et la congestion du réseau.
Dans le domaine de la programmation, TCP est largement utilisé pour développer des applications nécessitant une transmission de données fiable, comme les navigateurs web, les clients de messagerie ou les applications de transfert de fichiers. Les développeurs utilisent souvent des bibliothèques ou des API qui implémentent TCP pour créer des applications réseau robustes.
TCP est souvent comparé à UDP (User Datagram Protocol), un autre protocole de la couche transport. Contrairement à TCP, UDP est non fiable mais plus rapide, ce qui le rend adapté à des applications comme le streaming vidéo ou les jeux en ligne où la vitesse prime sur la fiabilité absolue.