web-dev-qa-db-fra.com

Attribution de ports TCP / IP pour une utilisation interne de l'application

J'ai écrit un service WCF hébergé par un service Windows et il doit écouter sur un port TCP/IP connu. À partir de quelle plage puis-je allouer en toute sécurité un port à utiliser au sein de mon organisation? Ce port sera intégré aux fichiers de configuration du service et des clients qui consomment le service.

40
Howard Pinsley

Choisissez un numéro de port de 49152 à 65535.

L'IANA publie une liste des ports actuellement attribués.

http://www.iana.org/assignments/port-numbers

Les ports dynamiques et/ou privés sont ceux de 49152 à 65535. Il s'agit de la plage à partir de laquelle vous DEVRIEZ choisir un port pour vos applications internes. Bien entendu, tout port appartenant à l'une des plages non attribuées de la liste publiée peut être utilisé. Mais sachez qu'en choisissant un numéro de port dans ces plages non attribuées, il n'y a aucune garantie que le port que vous choisissez ne sera pas un port réservé à l'avenir.

LES NUMÉROS DE PORT NON ATTRIBUÉS NE DOIVENT PAS ÊTRE UTILISÉS. L'IANA ATTRIBUERA LE NUMÉRO DU PORT APRÈS AVOIR APPROUVÉ VOTRE DEMANDE.

Et assurez-vous que le numéro de port que vous choisissez est configurable comme vous l'avez indiqué:

Ce port sera intégré dans les fichiers de configuration du service et des clients qui consomment le service.

Cela évitera les maux de tête au cas où un autre logiciel tiers que vous ne pouvez pas toucher utilise votre numéro de port. Si cela se produit, allez-y et changez-le dans le fichier de configuration et cela fonctionne.

27
Jorge Ferreira

Les ports 0-1023 sont les ports bien connus et sont attribués par l'IANA. Ceux-ci ne doivent être utilisés que pour les protocoles attribués sur les réseaux publics.

Les ports 1024-65535 s'appelaient auparavant des numéros de port enregistrés (voir rfc17 ) mais sont maintenant divisés en deux zones (voir rfc6335 ).

Les ports 1024-49151 sont les ports utilisateur et sont ceux à utiliser pour vos propres protocoles.

Les ports 49152-65535 sont les ports dynamiques et ne doivent pas être prescrits à un protocole.

Les ports utilisateur peuvent être utilisés pour n'importe quel protocole, mais il existe un nombre fini, de sorte que votre utilisation se heurtera à quelqu'un d'autre sur un réseau quelque part. L'IANA conserve un enregistrement des numéros de port enregistrés (0-49151). Si votre protocole sera utilisé sur des réseaux publics, vous devez alors envisager de l'enregistrer auprès de l'IANA. Si vous ne l'utilisez que dans votre propre réseau, choisissez un port dans cette zone (1024-49151) et vérifiez ce port par rapport au registre IANA pour vous assurer qu'il n'est pas utilisé par un protocole qui pourrait être utilisé sur votre réseau. Pour un usage privé, il est probablement préférable de choisir un numéro attribué à un protocole dont vous savez qu'il ne sera pas utilisé que de choisir celui qui n'est pas attribué et qui pourra donc être attribué à l'avenir.

N'utilisez pas de numéro de port dans la plage dynamique. Ces ports sont attribués par le système d'exploitation, de manière dynamique et quelque peu aléatoire. Si vous ouvrez une connexion client (en utilisant bind () avec port = 0), un port inutilisé de la plage dynamique vous sera attribué. Il n'y a aucun moyen de garantir qu'un port de cette plage sera toujours libre pour votre protocole.

67
adrianwadey

Réponse courte: évitez tout ce qui va jusqu'à 1023, ou plus de 49152, et testez le port choisi par rapport aux services de votre réseau.

Si vous avez pris les précautions raisonnables qu'il semble que vous avez (mettre le numéro de port dans un fichier de configuration), cela ne devrait pas être une énorme perturbation si vous découvrez plus tard un conflit.

Mais (afin que je puisse ajouter quelque chose aux autres suggestions qui sont apparues pendant que je tapais) assurez-vous de faciliter le changement! Si c'est dans des fichiers de configuration, rendez-le évident. Documentez-le et signalez-le lors du dépannage. C'est le genre de chose qui pourrait mal tourner, alors facilitez le débogage si cela doit être changé.

7
Keith Lawrence

En plus des autres suggestions sur le choix d'un port d'application commun, je vous suggère de rendre le port configurable dans votre application. Les numéros de port codés en dur sont une mauvaise idée, en particulier si vous trouvez plus tard un conflit de port avec une autre application et que vous devez changer le vôtre.

5
Kluge

Voici une bonne liste des ports d'application courants . Faites votre propre choix dans un emplacement vide. Vous devriez peut-être également analyser votre réseau pour toute application spéciale interne.

Généralement, des ports à numéros élevés sont disponibles et je les suggère, mais ils pourraient être bloqués par des pare-feu.

0
Veynom

N'oubliez pas de vérifier ces ports par netstat/a/n pour voir si leur utilisation par une autre application ou non. Je découvre que Vista a utilisé le 49152 .... pour une raison quelconque au niveau de l'application. Fondamentalement, parce que la plupart des écouteurs au niveau système n'implémentent pas de partage de port, il est très sûr d'utiliser les ports qui ne sont pas utilisés du tout.

bonne journée de programmation AMir

0
Amir