Назначение портов 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