Wie soll ich die Portnummer für ein neues Tool auswählen?

13

Ich erstelle ein Tool für die interne Zusammenarbeit, das einen zentralen Server (in einem Intranet) und einen oder mehrere Ports für die Socket-Kommunikation mit Clients verwendet. Ich weiß, dass viele Ports für bestimmte Zwecke reserviert sind und andere herkömmlicherweise für bestimmte Arten von Verkehr verwendet werden.

Wie soll ich vorgehen, um einen Standardport auszuwählen, der am wenigsten von jemand anderem für sein Tool "beansprucht" wurde? Gibt es eine Datenbank, die alle bekannten (auch unkonventionellen) Portverwendungen identifiziert?

Jace Browning
quelle
3
Dies ist in der Regel nur dann ein Problem, wenn der Port auf dem Server bereits belegt ist. Der Port sollte jedoch konfigurierbar sein. Ich habe gesehen, dass eine Menge Software fest codierte Ports hat, was nicht das ist, was Sie wollen.
Devicenull
@devicenull Ich werde definitiv die Option haben, die Standardeinstellung zu überschreiben.
Jace Browning
3
Wenn Ihr Bart grau genug ist, können Sie RPC verwenden und Ihren eigenen Endpunkt registrieren. msdn.microsoft.com/en-us/library/windows/desktop/…
Ryan Ries
2
Es sei denn, Sie haben einen wichtigen Grund, dies nicht zu tun. Es ist besser, vorhandene Protokolle zu verwenden, sofern dies möglich ist. a) Es ist normal zu glauben, dass Sie einen besseren Job machen können, für die meisten Menschen ist das nicht der Fall. Aber selbst wenn Sie können, ist es besser, dem entgegenzuwirken. B) Netzwerkwerkzeuge / -geräte sind bereits so eingerichtet, dass sie mit vorhandenen Standards arbeiten. Das Hinzufügen neuer Systeme ist mit einem Hindernis und einem hohen Arbeitsaufwand verbunden.
James Ryan
2
Für etwas, das interne Zusammenarbeit ist, ist alles> 1024 und <32768 (sollte vor kurzlebigen Portbindungen schützen) und NICHT in der IANA-Portregistrierung aufgeführt in Ordnung, vorausgesetzt, Sie kommunizieren effektiv mit Ihren internen Mitarbeitern, die Sie den Port genommen haben.
Matthew Ife

Antworten:

16

Ja, IANA unterhält die offizielle Dienst- und Portnummernregistrierung .

Der Vorgang zum Zuweisen einer Portnummer ist in RFC 6335 dokumentiert . Für jede Portzuweisung ist ein Überprüfungsprozess erforderlich, für Ports <1024 ist dieser jedoch viel strenger. Solche Zuordnungen setzen unter anderem voraus, dass Ihr Protokoll in einem RFC dokumentiert ist.

(Beachten Sie, dass dieser Prozess relativ neu ist und dass es viele zugewiesene Ports gibt, in denen ein Großvater war.)

Für <1024 sind die Ports 1021 und 1022 für Experimente reserviert. Darüber hinaus können Sie zum Experimentieren einfach einen dynamischen Port> = 49152 verwenden.

Michael Hampton
quelle
1
Abkürzung für die Suche nach "nicht zugewiesen": iana.org/assignments/service-names-port-numbers/…
Jace Browning
3

In den meisten Fällen ist es besser, nur HTTP zu verwenden, da früher oder später eine Firewall vorhanden sein wird, die Sie überqueren müssen. Bei den meisten Betriebssystemen kann der HTTP-Adressraum auf mehrere Prozesse aufgeteilt werden.

Ian Ringrose
quelle
2
Ich bin verwirrt. Kann ich HTTP nicht über einen beliebigen Port verwenden? Ich möchte nicht standardmäßig :80oder :8080weil es eine starke Möglichkeit gibt, dass diese bereits verwendet werden. Ist meine Frage nicht noch gültig?
Jace Browning
@JaceBrowning, ja, das kannst du, aber die Verwendung eines anderen Ports ist nur ein kurioses Stück Geschichte :-). Mit jedem anständigen Betriebssystem können Sie den HTTP-Namespace zwischen Anwendungen aufteilen.
Ian Ringrose