Я создаю внутренний инструмент для совместной работы, который будет использовать центральный сервер (в интрасети) и один или несколько портов для связи через сокеты с клиентами. Я знаю, что многие порты зарезервированы для определенных целей, а другие обычно используются для определенных типов трафика.
Как мне выбрать дефолт порт, который с наименьшей вероятностью был «востребован» кем-то другим для своего инструмента? Есть ли база данных, которая идентифицирует все известные (даже нетрадиционные) использования портов?
Да, IANA поддерживает официальная служба и реестр номеров портов.
Процесс получения присвоенного вам номера порта задокументирован в RFC 6335. Процесс проверки требуется для любого назначения порта, но он намного строже для портов <1024; такие назначения требуют (среди прочего), чтобы ваш протокол был задокументирован в RFC.
(Обратите внимание, что этот процесс относительно новый, и что есть много назначенных портов, которые были унаследованы.)
Для <1024 порты 1021 и 1022 зарезервированы для экспериментов; выше этого для экспериментов вы можете просто использовать динамический порт> = 49152.
В большинстве случаев лучше просто использовать HTTP, так как рано или поздно вам понадобится пересечь межсетевой экран. Большинство ОС позволяют разделить адресное пространство HTTP между процессами.