Maison  >  Article  >  Opération et maintenance  >  Présentation de la couche transport : la relation entre les ports et les processus

Présentation de la couche transport : la relation entre les ports et les processus

齐天大圣
齐天大圣original
2020-12-18 20:00:333168parcourir

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn