Назначение портов TCP / IP для внутреннего использования приложений

Я написал службу WCF, размещенную службой Windows, и ей необходимо прослушивать известный порт TCP / IP. Из какого диапазона я могу безопасно выделить порт для использования в моей организации? Этот порт будет встроен в конфигурационные файлы для службы и клиентов, которые потребляют эту услугу.

Выберите номер порта с 49152 по 65535.

IANA публикует список назначенных портов.

http://www.iana.org/assignments/port-numbers

Динамические и / или частные порты – это от 49152 до 65535. Это диапазон, от которого вы ДОЛЖНЫ выбрать порт для своих внутренних приложений. Конечно, можно использовать любой порт, принадлежащий одному из непризнанных диапазонов в опубликованном списке. Но имейте в виду, что, выбирая номер порта из этих неназначенных диапазонов, нет никакой гарантии, что выбранный вами порт не будет зарезервированным портом в будущем.

НЕОБХОДИМЫ ИСПОЛЬЗОВАТЬ НОМЕРА НЕОБХОДИМОГО ПОРТА. ИАНА НАПРАВЛЯЕТ НОМЕР ДЛЯ ПОРТА ПОСЛЕ УТВЕРЖДЕНИЯ ВАШЕГО ПРИМЕНЕНИЯ.

И убедитесь, что номер порта, который вы выбираете, настраивается, как вы заявили:

Этот порт будет встроен в конфигурационные файлы для службы и клиентов, которые потребляют эту услугу.

Это позволит избежать головных болей в случае, если какое-либо другое третье лицо, которого вы не можете использовать, использует ваш номер порта. Если это произойдет, вы просто продолжаете и меняете его в файле конфигурации, и он просто работает.

Порты 0-1023 – это хорошо известные порты и назначаются IANA. Они должны использоваться только для назначенных протоколов в общедоступных сетях.

Порты 1024-65535 обычно назывались номерами зарегистрированных портов (см. Rfc1700 ), но теперь разделены на две области (см. Rfc6335 ).

Порты 1024-49151 являются пользовательскими портами и используются для собственных протоколов.

Порты 49152-65535 являются динамическими портами и не должны быть предписаны протоколу.

Пользовательские порты могут использоваться для любого протокола, но есть конечное число, поэтому ваше использование будет конфликтовать с кем-то, кто-то использует в какой-либо сети где-нибудь. IANA ведет учет зарегистрированных номеров портов (0-49151). Если ваш протокол будет использоваться в общедоступных сетях, вам необходимо изучить его в IANA. Если вы используете его только в своей собственной сети, выберите порт в этой области (1024-49151) и проверьте этот порт на регистр IANA, чтобы убедиться, что он не используется протоколом, который может использоваться в вашей сети. Для частного использования, вероятно, лучше выбрать номер, назначенный протоколу, который, как вы знаете, не будет использоваться, чем выбрать тот, который не назначен, и поэтому может быть назначен в будущем.

Не используйте номер порта в динамическом диапазоне. Эти порты назначаются операционной системой динамически и несколько случайным образом. Если вы откроете клиентское соединение (используя bind () с портом = 0), вам будет назначен неиспользуемый порт из динамического диапазона. Невозможно гарантировать, что порт в этом диапазоне всегда будет бесплатным для вашего протокола.

В дополнение к другим предложениям по выбору общего порта приложений я бы предложил вам настроить порт в вашем приложении. Жестко кодированные номера портов – плохая идея, особенно если позже вы обнаружите конфликт порта с другим приложением и вам нужно изменить свой.

Краткий ответ: избегайте всего, вплоть до 1023 или более 49152, и проверьте выбранный порт на услуги в вашей сети.

Если вы приняли разумные меры предосторожности, которые у вас есть (поместите номер порта в файл конфигурации), это не должно быть огромным сбоем, если вы позже обнаружите конфликт.

Но (чтобы я мог добавить что-то к другим предложениям, которые появились во время набора текста), убедитесь, что вы легко меняете! Если это в файлах конфигурации, сделайте это очевидным. Запишите его и укажите на устранение неполадок. Это то, что может пойти не так, так что упростите отладку, если нужно изменить.

Вот хороший список обычных портов приложений . Сделайте свой собственный выбор в пустом слоте. Возможно, вам также следует отсканировать свою сеть для любого специального приложения.

Как правило, порт с большими номерами доступен, и я предлагаю их, но они могут быть заблокированы брандмауэрами.

В примечании не забудьте проверить этот порт netstat / a / n, чтобы узнать, используется ли его другим приложением или нет. Я выяснил, что Vista использовала 49152 …. для некоторой причины уровня приложения. В основном, поскольку большинство слушателей системного уровня не реализуют совместное использование портов, очень безопасно использовать те порты, которые вообще не используются.

иметь хороший день программирования AMir

Interesting Posts

В чем разница между портами 465 и 587?

Когда были введенные в C ++ «и» и «или» альтернативные токены?

Аккуратные способы получения среды (например, версия Office)

Методы расширения должны быть определены в неэквивалентном статическом classе

Как распечатать трассировку стека ошибок на странице JSP?

Ubuntu 10.04 не загружается и переходит на пустой экран – не удается войти

Как добавить поддержку в список функций для нового пользовательского языка? (Notepad ++ Win7 64bit)

Как вы получаете Word 2010 для проверки орфографии внутри таблиц?

Последствия безопасности отключения CURLOPT_SSL_VERIFYHOST (libcurl / openssl)

Разница между HBase и Hadoop / HDFS

Использование G ++ для компиляции нескольких файлов .cpp и .h

Программно перейдите к определенной позиции в Android ListView

Outlook 2010 не разрешает поиск папок IMAP

Арифметические операции с HH: MM: SS раз в пакетном файле

Как можно изменить настройки отображения nvidia?

Давайте будем гением компьютера.