Требуется реализовать систему, подобную параметрам -L/-R в ssh - проброс порта. Основной приоритет на -R. Толерантную к потере соединения. Типичный пример использования : * 2 клиента, 1 имеет белый IP адрес + Клиента за NAT открывает соединение на клиента с белым IP + Клиент на белом IP запрашивает у клиента за NAT открыть порт на удаленную машину за NAT + Клиент на белом IP получает возможность писать в открытый канал связи + Роутер, за которым находиться 1 из клиентов, и который реализует NAT уходит в перезагрузку на 15 секунд + Клиент на белом IP вв это время ждет пока клиента за NAT вновь подключится чтобы отправить данные + Клиент за NAT успешно переподключается, успешно получает данные для отправки и сам в свою очередь отправляет все, что смог прочитать с открытого соединения.
Требуется реализовать каналы соединения клиента за NAT с клиентом на белом IP: + TCP + UDP + web hop (возможность использовать схему proxy->aspx/jsp->tunnel->server + DNS(+over tls) + ICMP + NTP
Обязательные условия: + Использование чистого WinAPI (/NODEFAULTLIB) + Запрещено создавать потоки. Все действия в одном потоке. + Win2000->Last работа + Возможность работать с урезанными правами из под юзера + dll,exe,reflective dll
Серверная часть linux + Желательно C/C++ но можно и на скиптовом + Реализация в виде демона/сервиса + centos/debian