Question

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 affecter en toute sécurité un port à utiliser dans mon entreprise? Ce port sera intégré aux fichiers de configuration du service et aux clients qui utilisent le service.

Était-ce utile?

La solution

Choisissez un numéro de port compris entre 49152 et 65535.

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 compris entre 49152 et 65535. Il s’agit de la plage dans 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é. Sachez toutefois qu'en choisissant un numéro de port dans ces plages non attribuées, rien ne garantit 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É. L'IANA assignera le numéro   POUR LE PORT APRES VOTRE DEMANDE   A ÉTÉ APPROUVÉ.

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 le   fichiers de configuration pour le service et le   les clients qui consomment le   service.

Ceci évitera des maux de tête au cas où un autre logiciel tiers, vous ne pouvez toucher, utilise votre numéro de port. Si cela se produit, vous devez simplement le modifier dans le fichier de configuration et cela fonctionne.

Autres conseils

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

Les ports 1024 à 65535 étaient auparavant appelés numéros de port enregistrés (voir rfc1700 ) 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, ainsi votre utilisation se heurtera à une personne autre que celle utilisée sur un réseau quelque part. L'IANA conserve une trace des numéros de port enregistrés (0-49151). Si votre protocole doit être utilisé sur des réseaux publics, vous devez alors envisager de l'enregistrer auprès de l'IANA. Si vous ne l'utilisez que sur votre propre réseau, choisissez un port dans cette zone (1024-49151) et vérifiez-le par rapport au registre IANA pour vous assurer qu'il n'est pas utilisé par un protocole pouvant ê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é plutôt que de choisir un numéro non attribué et susceptible de l'être ultérieurement.

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 aléatoire. Si vous ouvrez une connexion client (à l'aide de bind () avec le 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 gamme sera toujours libre pour votre protocole.

Réponse courte: Évitez tout ce qui est inférieur à 1023 ou supérieur à 49152 et testez le port choisi par rapport aux services de votre réseau.

Si vous avez pris les précautions raisonnables qui semblent avoir été prises (en plaçant le numéro de port dans un fichier de configuration), cela ne devrait pas être une énorme perturbation si vous découvrez par la suite un conflit.

Mais (pour que je puisse ajouter quelque chose aux autres suggestions qui sont apparues pendant que je tape), assurez-vous de pouvoir changer facilement! Si c'est dans les fichiers de configuration, rendez-le évident. Documentez-le et signalez-le lors du dépannage. C’est le genre de problème qui pourrait mal se passer. Facilitez donc le débogage si cela doit changer.

Outre les autres suggestions relatives au 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 découvrez par la suite un conflit de port avec une autre application et devez modifier la vôtre.

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

Des ports généralement très nombreux sont disponibles et je les suggérerais, mais ils pourraient être bloqués par des pare-feu.

Comme note, rappelez-vous de vérifier le port par netstat / a / n pour voir s’il est utilisé par une autre application ou non. Je découvre que Vista a utilisé le 49152 ... pour une raison d'application. Fondamentalement, étant donné que la plupart des programmes d’écoute de niveau système n’implémentent pas le 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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top