Dans la programmation réseau, la construction des en-têtes de message TCP / IP est une étape clé dans la mise en œuvre du protocole de communication sous-jacent. En tant que langage de script flexible, bien qu'il soit généralement utilisé pour le développement de pages Web, avec son puissant pack de fonctions de traitement des données binaires () , nous pouvons également l'utiliser pour construire des en-têtes de message TCP / IP et même implémenter la conception de protocoles personnalisés.
Cet article présentera en détail comment utiliser la fonction PHP Pack () pour construire des en-têtes de paquets TCP / IP et utiliser des exemples pour montrer comment concevoir un protocole personnalisé simple.
L'en-tête de message TCP se compose de plusieurs champs, les plus communs incluent:
Port source: 2 octets
Port de destination: 2 octets
Numéro de séquence: 4 octets
Numéro de reconnaissance: 4 octets
Compense de données et bits réservés: 1 octet
Drapeaux: 1 octet
Taille de la fenêtre: 2 octets
Vérification: 2 octets
Pointeur urgent: 2 octets
L'en-tête IP est composé de plusieurs champs.
Pour construire ces en-têtes de message dans PHP, le noyau consiste à emballer chaque champ dans une chaîne binaire au format spécifié, et Pack () est cet outil clé.
La fonction Pack () emballe les paramètres en chaînes binaires. Il contrôle les règles d'emballage via des caractères de format:
N - entier court non signé (2 octets, Network Endianness)
N - Long non signé (4 octets, Network Endianness)
C - caractères non signés (1 octet)
A - NUL REMPLER STRING
L'ordre des octets du réseau est l'ordre des octets Big-Endan, qui est conforme aux dispositions du protocole TCP / IP.