Просто потому, что нет хорошего ответа, я хотел бы вмешаться.
Один из способов сделать это - добавить опцию IP, которая указывает расширение порта. Опция должна быть разработана таким образом, чтобы она помещалась в необязательную часть заголовка IP, и она будет пропущена неизвестными прыжками.
Вы можете использовать эту опцию и ее информационную информацию для расширения номера источника, пункта назначения или обоих портов.
Ограничения не будут автоматически работать в существующем программном обеспечении, просто добавив параметр в любом случае, их придется переписать, чтобы воспользоваться преимуществом параметра, независимо от того, как он реализован, существующее программное обеспечение и брандмауэры будут либо игнорировать пакет, либо обрабатывать его как обычно. используя значение в полях исходного и конечного портов.
Короче говоря, это нелегко сделать, и было бы лучше сделать это с помощью одного многоразового прослушивателя и данных, содержащихся в полезной нагрузке пакета.
Вы также можете упростить повторное использование портов в программном обеспечении, что поможет преодолеть это ограничение путем повторного использования портов сервера для нескольких клиентских подключений.
Например, Rtsp может использовать заголовок SessionId в сочетании с различными другими заголовками в полезной нагрузке IP-пакета, чтобы определить, для какого соединения был отправлен запрос, и действовать соответственно, например, если сокет, из которого было доставлено сообщение, не совпадает с сокетом удаленный адрес, которому соответствует сеанс, тогда можно разрешить обновление сеанса новым сокетом для обработки, запретить сообщение или выполнить множество других действий в зависимости от приложения.
Сервер Http также может сделать этот или любой другой тип сервера.
Главное, что нужно помнить при разрешении повторного использования портов, это то, что вы также должны учитывать исходный IP-адрес.