Communication inter-processus
La couche de transport est également appelée couche de transport, qui est une couche spéciale. D'une part, il appartient au niveau le plus élevé de la partie communication, et d'autre part, il s'agit du niveau le plus bas des fonctions utilisateur. La couche de transport est utilisée pour la communication entre les processus sur différents hôtes. Pour les routeurs qui transmettent des paquets, elle n'a que les fonctions des trois couches inférieures et n'utilise pas la couche de transport et les couches supérieures.
Processus, c'est-à-dire un programme en cours d'exécution. Sous Linux, lorsqu'un programme s'exécute, le système d'exploitation attribue un numéro de processus au processus. Vous pouvez utiliser la commande ps aux pour afficher tous les processus.
# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 51744 2808 ? Ss Jul31 16:06 /usr/lib/systemd/systemd --switched-root --system --deserialize 22 ……
Port
La couche de transport de TCP/IP utilise un numéro de port de 16 bits pour marquer un port, afin qu'un hôte puisse avoir 65535 ports. Ceux qui ont fait des ouvertures web doivent connaître certains numéros de port couramment utilisés, tels que : 80 du serveur web, 3306 du service mysql, etc. Les processus entre les deux hôtes communiquent via leurs numéros de port respectifs, le processus doit donc également avoir la fonction d'écoute sur le port. Sous Linux, la commande pour afficher le port surveillé est netstat -tlunp
# netstat -tulnp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2449/nginx: worker tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 1010/pure-ftpd (SER tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1819/sshd ……
Le port a également la fonction de multiplexage et de démultiplexage. Le multiplexage signifie que plusieurs processus d'application de l'hôte peuvent utiliser le même numéro de port pour communiquer. , et le fractionnement signifie que les datagrammes obtenus à partir de la couche IP peuvent être transmis à différents processus d'application via des numéros de port.
TCP et UDP
La couche transport n'a que deux protocoles : Transmission Control Protocol TCP et User Datagram Protocol UDP. Ces deux protocoles ont leurs propres caractéristiques et quelques scénarios d'application.
TCP est un protocole orienté connexion. Une connexion doit être établie avant la transmission des données. Si la transmission des données n'est pas requise, la connexion doit être déconnectée. TCP est un protocole relativement complexe avec de nombreux facteurs à prendre en compte. Il peut fournir une transmission fiable de bout en bout, mais ne prend pas en charge les communications un-vers-plusieurs et plusieurs-vers-plusieurs. Les protocoles TCP couramment utilisés incluent le protocole HTTP, le protocole FTP, le protocole Telnet, etc.
UDP est destiné aux paquets. Il est relativement simple et utilise le meilleur effort plutôt qu'une transmission fiable. Il peut effectuer des communications un-à-un, un-à-plusieurs et plusieurs-à-plusieurs. Les protocoles courants qui utilisent le protocole UDP incluent les protocoles DHCP, DNS et RIP.
Il y a un exemple pour illustrer leurs caractéristiques : TCP c'est comme passer un appel téléphonique, une connexion doit être établie avant l'appel. UDP, c'est comme envoyer un message texte. Vous n'avez pas besoin de connaître le statut de l'hôte de l'autre partie avant d'envoyer le message texte. Vous ne savez pas si le message texte a été envoyé ou non.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!