web-dev-qa-db-fra.com

Quelle est la différence et la relation entre un identifiant de processus et un numéro de port?

Process est un programme en cours d'exécution. Par exemple. Firefox. Je ne comprends pas la relation et les différences entre les termes "processus" et "ports".

Lorsque j'exécute netstat -no -p -TCP sur cmd, je peux voir que plusieurs numéros de port sont associés à chaque processus, comme indiqué ci-dessous. Cependant, la relation entre les ports et les processus n’est pas claire pour moi.

screenshot: cmd output of "netstat -no -p -TCP"

4
user570593

Pour répondre directement à la question: il n'y a pas de connexion entre l'ID de processus et le numéro de port. Ils énumèrent des choses complètement différentes.

Le PID identifie un processus (par exemple une session Firefox: chaque onglet peut s'exécuter en tant que processus différent) et le numéro de port identifie le port utilisé par ce processus pour communiquer. Les numéros de port spécifiques ont des utilisations habituelles: 80 est généralement utilisé pour HTTP et 443 pour HTTPS. Mais un processus peut obtenir n'importe quel numéro PID, en fonction du moment où il est démarré.

Comme vous pouvez le constater, vos numéros de port locaux sont utilisés de manière séquentielle et ne sont associés ni au numéro de port de destination ni au PID du processus qui les utilise.

32
Andrew Leach

Le PID n'est affiché que pour vous permettre d'identifier le processus spécifique effectuant la communication et n'est pas lié au numéro de port.

Si plusieurs copies d’un programme étaient en cours d’exécution et que toutes communiquaient via le réseau, le nom du programme ne suffirait pas pour identifier de manière unique le port appartenant à quelle copie du programme.

Si vous souhaitez supprimer une connexion particulière mais pas toutes les copies du programme, vous devez connaître le PID plutôt que le nom du programme.

12
Mokubai

Processus

Qu'est-ce qu'un processus?

Comment sont assignés les processus?

A quoi servent les processus?

Une autre commande que vous pouvez trouver utile est netstat. Je vois que vous utilisez netstat. Essayez d'ajouter le paramètre "-b". (Cette option est plutôt spécifique à Microsoft Windows, que je suppose que vous utilisez en fonction du C:\Utilisateurs\Utilisateur> de votre invite.) Netstat essaiera d'utiliser le PID pour déterminer le nom du fichier exécutable, et l'imprimer sur la ligne suivante.

Tout cela n'a aucun rapport avec le numéro de port.

Numéros de port

Qu'est-ce qu'un numéro de port

Un numéro de port est utilisé dans le cadre d'une connexion réseau. Toutes les communications réseau n'utilisent pas les numéros de port. Par exemple, ICMP, utilisé par TraceRoute (nommé "TRACERT" sous Microsoft Windows) et la commande "ping" de Microsoft Windows, n'utilise pas les numéros de port. Les protocoles les plus courants sont UDP et TCP. (Peut-être que SCTP est le plus commun des plus courants?) De nombreux protocoles, y compris HTTP (S) et SMTP (pour le courrier électronique) utilisent TCP, donc les numéros de port sont utilisés.

À quoi servent les numéros de port?

(Remarque: les crochets sont juste une notation que j'ai composée pour rendre ce paragraphe un peu plus facile à lire. Dans la sortie de Netstat, les numéros de port sont indiqués après les deux points. Je ne préfère généralement pas utiliser le terme "étranger". décrire les numéros de port, mais je l’ai fait dans ce cas car c’était le terme utilisé par netstat.)

Comment sont attribués les numéros de port?

Résumé

Les processus et les numéros de port sont des choses très différentes. Je suis d'accord avec la plupart ou la totalité des informations contenues dans les autres réponses ici. (Cependant, j'ai ajouté ma propre réponse ici parce que je pensais qu'un peu plus de détails, comme par exemple où les numéros sont attribués, pourraient aider à rendre la distinction un peu plus claire.)

9
TOOGAM

Un peu simplifié:

Le PID est le numéro utilisé en interne sur votre ordinateur pour désigner un processus spécifique. Un processeur ne peut faire qu'une chose à la fois, mais il a plusieurs tâches à effectuer. Il alterne donc entre différents processus et le PID est l'étiquette utilisée par le processeur pour identifier chaque processus.

Le numéro de port est une étiquette donnée à toutes les communications réseau. Ainsi, lorsqu'une réponse est renvoyée du réseau, le routeur de votre réseau domestique sait quel ordinateur attend cette réponse, et lorsque la réponse parvient à l'ordinateur, l'ordinateur sait quel processus attend la réponse. message.

Par exemple, la balise de port garantit que, lorsque vous demandez cette page aux serveurs de Stackexchange et que les données du site parviennent à votre routeur, celui-ci sait que c'est votre ordinateur et non le smartphone de votre frère ou tout autre périphérique qui le souhaite. leur. Et quand ils arrivent sur votre ordinateur, votre ordinateur peut dire que c'est Firefox qui les veut, pas Word.

2
Arthur

Un processus est un programme en cours d'exécution, dans la plupart des cas. Un programme comme Firefox peut en réalité consister en plusieurs processus fonctionnant ensemble, mais en ce qui concerne le système d’exploitation, ils constituent l’unité de base du travail: chaque processus a une image (le fichier exécutable en cours d’exécution), un répertoire de travail, gère (affectations de ressources), espace adresse mémoire, priorité de la CPU et des E/S, etc. Si vous exécutez notepad, un processus est lancé à l'aide de notepad.exe et une fenêtre s'ouvrira pour vous permettre d'interagir.

Un port est une ressource. Le système d'exploitation dispose d'un certain nombre de ports disponibles (65535) et un processus peut demander un descripteur pour obtenir l'utilisation exclusive d'un port. Un processus peut obtenir des descripteurs sur un nombre quelconque de ports inutilisés. Un port est requis pour la communication réseau. Les numéros de port choisis pour les connexions sortantes (comme le navigateur qui se connecte à un serveur Web) sont essentiellement arbitraires. ils ne portent aucune importance dont vous devez vous soucier.

Ceci est une vue d'ensemble simplifiée, alors ne le prenez pas comme étant super précis.

2
Corrodias