Осталось решить последнюю задачку - есть сервис на манер turn’а, который связывает два ПК за nat’ами, соотв сервис знает внешние ip обоих ПК и раздаёт их [как портовая шалюха] бережно информирует компуктеры о том что у их [полового] сетевого партнера ip поменялся (если динамический).
Задачка - завернуть часть трафика через tcp (важно) напрямую между двумя ПК, притом сервером является только один из них и он может оказаться с серым IP за NAT’ом провайдера.
В случае с белым динамическим все просто и работает, в случае с udp иногда (не у всех провайдеров) помогает кинуть пакет ПК «сервером» в псевдоturn из нужного порта и ждать пакеты от ПК «клиента» (которые летят в Ip и порт из которого они прилетели в turn - я так понимаю по похожей логике работает stun) а вот как завернуть TCP чот не могу придумать - пров же сразу схлопнет порт на внешнем адресе когда когда клиент загасит подключение к псевдоturn’у?
Это вообще решаемая задача? Может можно как-то «передать» само «соединение» или как-то параллельно попользовать порт который nat держит открытым при наличии связи ПК «сервер»-псевдоturn?