В общем, временные порты используются клиентами при установлении соединения с сервером.
Например:
- Сервер прослушивает порт 80
- Клиент (браузер, FTP-клиент, клиент bittorent) отправляет запрос на сервер, включая временный порт, назначенный ОС
- Сервер отвечает, используя предоставленный эфемерный порт в качестве порта назначения
А теперь вопрос:
Я написал серверное приложение, которое я хотел бы запускать на произвольном свободном порте каждый раз, когда оно запускается (чтобы не задавать этот вопрос, я не буду объяснять, почему мне нравится такое поведение). Теперь мой вопрос: какие последствия это имело бы, если бы я использовал один из эфемерных портов для сервера для прослушивания. Есть ли какие-либо недостатки (также с точки зрения безопасности) в этом?
Может быть, вы знаете какой-нибудь пример сервера, который также использует эфемерные порты на практике?
Одной из моих проблем является также заявление из Руководства по TCP/IP: всеобъемлющая иллюстрированная справка по интернет-протоколам (стр. 705):
Так же, как общеизвестные и зарегистрированные номера портов используются для серверных процессов, эфемерные номера портов предназначены только для клиентских процессов.