Le TCP utilise une connexion en trois-temps1. Ceci permet d'éviter les connexions infructueuses. Le schéma suivant représente l'évolution d'une connexion entre une machine A et une machine B. Pour chacune des machines l'état du port est celui après avoir envoyé ou reçu un paquet vers ou venant de l'autre machine. SEQ représente le numéro de séquence du paquet, ACK suivi d'un chiffre représente le prochain numéro de séquence attendu et CTL représente l'état du bit de contrôle, c'est-à-dire SYN, ACK ou SYN-ACK.
Machine A Réseau Machine B ------------------------------------------------------------------------------ 1.CLOSED LISTEN 2.SYN-SENT --> <SEQ=100><CTL=SYN> --> SYN-RECEIVED 3.ESTABLISHED <-- <SEQ=300><ACK=101><CTL=SYN,ACK> <-- SYN-RECEIVED 4.ESTABLISHED --> <SEQ=101><ACK=301><CTL=ACK> --> ESTABLISHED 5.ESTABLISHED --> <SEQ=101><ACK=301><CTL=ACK><DATA> --> ESTABLISHED
Nous avons vu le déroulement de base d'une connection TCP nous allons pouvoir étudier les diffèrentes méthodes de port scanning.