Як слід вибрати номер порту для нового інструменту?


13

Я створюю внутрішній інструмент співпраці, який використовуватиме центральний сервер (в інтрамережі) та один або декілька портів для комунікаційного зв'язку з клієнтами. Я знаю, що багато портів зарезервовано для певних цілей, а інші умовно використовуються для певного типу трафіку.

Як я повинен піти про вибір порту за замовчуванням, який, найменш ймовірно, був би "заявлений" хтось іншим за свій інструмент? Чи існує база даних, яка б ідентифікувала все відоме (навіть нетрадиційне) використання портів?


3
Зазвичай це лише проблема, якщо щось вже використовує порт на сервері. Однак порт повинен бути налаштований. Я бачив досить багато програмного забезпечення з жорстко кодованими портами, а це не те, що ви хочете.
devicenull

@devicenull У мене, безумовно, буде можливість змінити за замовчуванням.
Джейс Браунінг

3
Якщо ваша борода досить сіра, ви можете використовувати RPC та зареєструвати власну кінцеву точку. msdn.microsoft.com/en-us/library/windows/desktop/…
Ryan Ries

2
Якщо у вас немає вагомих причин, не варто краще використовувати існуючі протоколи, де можна. а) Цілком природно думати, що ти можеш зробити кращу роботу, для більшості людей це неправда. Але навіть коли можна, чи достатньо краще протидіяти b) мережеві інструменти / пристрої вже налаштовані на роботу з існуючими стандартами. Додавання нових має бар'єр та обсяг роботи, яку потрібно виконати.
JamesRyan

2
Для того, що є внутрішньою співпрацею, що-небудь> 1024 та <32768 (має захищати від ефемерних прив'язків портів), а НЕ перераховано в реєстр портів IANA, було б добре, якщо ви ефективно спілкуєтесь із внутрішніми депутатами, які ви взяли на порт.
Меттью Іфе

Відповіді:


16

Так, IANA веде офіційний реєстр послуг та номер порту .

Процес отримання присвоєного вам номера порту задокументовано в RFC 6335 . Процес огляду необхідний для будь-якого призначення порту, але він набагато суворіший для портів <1024; такі завдання вимагають (серед іншого), щоб ваш протокол був задокументований в RFC.

(Зауважте, що цей процес є відносно новим і що існує безліч призначених портів, в яких відбулося зібрання.)

Для <1024 порти 1021 та 1022 зарезервовані для експериментів; вище для цього для експерименту можна просто використовувати динамічний порт> = 49152.


1
Ярлик для пошуку "без призначення": iana.org/assignments/service-names-port-numbers/…
Джейс Браунінг

3

У більшості випадків краще просто скористатися HTTP, оскільки рано чи пізно з’явиться брандмауер, який потрібно перетнути. Більшість ОС дозволяють розділити між процесами адресний простір HTTP.


2
Я розгублений, чи не можу я використовувати HTTP через будь-який порт? Я не хочу за замовчуванням :80або :8080тому, що є велика можливість, вони вже будуть використовуватися. Чи моє запитання ще не дійсне?
Джейс Браунінг

@JaceBrowning, так, ви можете, але використання будь-якого іншого порту - це лише дивний біт історії :-). Будь-яка гідна ОС дозволить вам розділити простір імен HTTP між програмами.
Ян Рінгроуз
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.