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