Comment sélectionner le numéro de port d'un nouvel outil?

13

Je crée un outil de collaboration interne qui utilisera un serveur central (sur un intranet) et un ou plusieurs ports pour la communication de socket avec les clients. Je sais que de nombreux ports sont réservés à des fins particulières et que d'autres sont conventionnellement utilisés pour certains types de trafic.

Comment dois-je procéder pour choisir un port par défaut le moins susceptible d'avoir été "revendiqué" par quelqu'un d'autre pour son outil? Existe-t-il une base de données qui identifie toute utilisation de port connue (même non conventionnelle)?

Jace Browning
la source
3
Ce n'est généralement un problème que si quelque chose utilise déjà le port sur le serveur. Cependant, le port doit être configurable. J'ai vu pas mal de logiciels dotés de ports codés en dur, ce qui n'est pas ce que vous voulez.
devicenull
@devicenull J'aurai certainement la possibilité de remplacer la valeur par défaut.
Jace Browning
3
Si votre barbe est suffisamment grise, vous pouvez utiliser RPC et enregistrer votre propre point de terminaison. msdn.microsoft.com/en-us/library/windows/desktop/…
Ryan Ries
2
Sauf si vous avez une bonne raison de ne pas le faire, il est préférable d'utiliser les protocoles existants où vous le pouvez. a) Il est naturel de penser que vous pouvez faire un meilleur travail, pour la plupart des gens, ce n'est pas vrai. Mais même quand vous le pouvez, est-il préférable de contrecarrer b) les outils / périphériques réseau sont déjà configurés pour fonctionner avec les normes existantes. L'ajout de nouveaux a un obstacle et une quantité de travail à faire pour mettre en œuvre.
JamesRyan
2
Pour quelque chose qui est une collaboration interne, tout ce qui est> 1024 et <32768 (devrait protéger contre les liaisons de port éphémères) et NON répertorié dans le registre des ports IANA serait OK, à condition que vous communiquiez efficacement avec vos services internes, vous avez pris le port.
Matthew Ife

Réponses:

16

Oui, l'IANA maintient le registre officiel des services et des numéros de port .

Le processus pour obtenir un numéro de port qui vous est attribué est documenté dans RFC 6335 . Un processus de révision est requis pour toute affectation de port, mais il est beaucoup plus strict pour les ports <1024; ces affectations nécessitent (entre autres) que votre protocole soit documenté dans un RFC.

(Notez que ce processus est relativement nouveau et qu'il existe de nombreux ports attribués qui ont bénéficié de droits acquis.)

Pour <1024, les ports 1021 et 1022 sont réservés à l'expérimentation; au-dessus de cela, pour l'expérimentation, vous pouvez simplement utiliser un port dynamique> = 49152.

Michael Hampton
la source
1
Raccourci pour rechercher "non affecté": iana.org/assignments/service-names-port-numbers/…
Jace Browning
3

Dans la plupart des cas, il est préférable d'utiliser simplement HTTP, car il y aura tôt ou tard un pare-feu à traverser. La plupart des systèmes d'exploitation permettent de répartir l'espace d'adressage HTTP entre les processus.

Ian Ringrose
la source
2
Je suis confus, ne puis-je pas utiliser HTTP sur un port? Je ne veux pas utiliser par défaut :80ou :8080parce qu'il y a de fortes chances que ceux-ci soient déjà utilisés. Ma question n'est-elle pas toujours valable?
Jace Browning
@JaceBrowning, oui, vous pouvez, mais utiliser n'importe quel autre port n'est qu'un petit peu d'histoire :-). Tout système d'exploitation décent vous permettra de diviser l'espace de noms HTTP entre les applications.
Ian Ringrose