Rappels TCP

Afin d’aborder aisément les définitions des divers scans, je vous propose de revoir quelques bases du TCP.

Structure d’un segment TCP

TCP

 

Signification des champs TCP

  • Port source : Numéro du port source
  • Port destination : Numéro du port destination
  • Numéro de séquence : Numéro de séquence du premier octet de ce segment
  • Numéro d’acquittement : Numéro de séquence du prochain octet attendu
  • Taille de l’en-tête : Longueur de l’en-tête en mots de 32 bits (les options font partie de l’en-tête)
  • Réservé : Réservé pour un usage futur
  • ECN : signale la présence de congestion, voir RFC 3168
  • Drapeaux
    • URG : Signale la présence de données URGentes
    • ACK : Signale que le paquet est un accusé de réception (ACKnowledgement)
    • PSH : Données à envoyer tout de suite (PuSH)
    • RST : Rupture anormale de la connexion (ReSeT)
    • SYN : Demande de SYNchronisation ou établissement de connexion
    • FIN : Demande la fin de la connexion
  • Fenêtre : Taille de fenêtre demandée, c’est-à-dire le nombre d’octets que le récepteur souhaite recevoir sans accusé de réception
  • Checksum : Somme de contrôle calculé sur l’ensemble de l’en-tête TCP et des données, mais aussi sur un pseudo en-tête (extrait de l’en-tête IP)
  • Pointeur de données urgentes : Position relative des dernières données urgentes
  • Options : Facultatives
  • Remplissage : Zéros ajoutés pour aligner les champs suivants du paquet sur 32 bits, si nécessaire
  • Données : Séquences d’octets transmis par l’application (par exemple: +OK POP3 server ready, …)

Ouverture de connexion TCP

 TCP

Le client effectue une ouverture active en 3 temps (poignée de mains en trois temps) :

  • Le client envoie un segment SYN au serveur ;
  • Le serveur lui répond par un segment SYN/ACK ;
  • Le client confirme par un segment ACK.