Сценарий следующий. У меня есть две машины A и B:
A: Клиент (за NAT)
B: Сервер (за NAT)
Я хочу, чтобы B мог прослушивать любой заданный порт, чтобы A мог отправлять пакеты в B через этот конкретный порт TCP и получать любой ответ. Если обе машины не находятся за NAT, это довольно прямой процесс. Однако, как я могу заставить его работать так, чтобы он работал, даже когда B находится позади маршрутизатора, без необходимости менять конфигурацию маршрутизатора, включить переадресацию портов и т.д.
Например, как работают одноранговые программы, такие как торрент-клиенты, без настройки пользователем?