Как смоделировать прямое сетевое соединение между двумя компьютерами через Интернет?
Я читал о теме в вики-статьях Ethernet, модели OSI, TCP, UDP, Routing (нет ссылок из-за ограничений новых пользователей) и других, но не смог ответить на мою конкретную проблему.
Ситуация: 4 компьютера (AD)
Они связаны друг с другом следующим образом, используя Ethernet: A <-LAN-> B <-Internet-> C <-LAN-> D (только ссылка вместо изображения из-за ограничений нового пользователя, извините еще раз)
Что я пытаюсь сделать: Компьютер A должен быть одурачен, чтобы думать, что он напрямую связан с компьютером D(и наоборот). Программное обеспечение для этого должно быть запущено только на компьютерах B и C.
В чем моя проблема: я не могу точно сказать, что нужно сделать подробно, чтобы достичь своей цели. Можно ли вообще позволить A и D думать, что они связаны друг с другом, используя программное обеспечение, работающее в современной операционной системе на компьютерах B и C?
Что я действительно понимаю, так это то, что если бы я действительно смоделировал эту связь, мне пришлось бы передавать информацию на физическом уровне. Сколько можно сделать на прикладном уровне операционной системы на B/C, чтобы добиться того же? Это вообще возможно?
Что я мог бы сделать уже с моей точки зрения: наличие клиентского программного обеспечения на A, которое отправляет дейтаграммы или поток байтов в B (зная, что B затем отправит его через Интернет на C, который затем, в свою очередь, отправит данные до D). То же самое касается направления D к A.
Моя проблема с этим решением: это решение имеет недостатки в том смысле, что мне понадобятся 2 программных решения (одно для A/D, одно для B/C), плюс, оно ограничивает соединение с протоколами TCP и UDP, также оно делает на самом деле не имитировать соединение - это всего лишь обходной путь для передачи информации от A к D, а не симуляция однорангового соединения.
Что приводит меня к вопросу из названия:
Как смоделировать прямое сетевое соединение между двумя компьютерами через Интернет?
Я также открыт для любых предложений, которые я мог полностью пропустить, или частичных решений и предложений.
1 ответ
Мне кажется, что вы могли бы использовать какой-то тип программного VPN. Я использовал LogMeIn Hamachi (это бесплатно), чтобы сделать это в прошлом.
Для этого ключевым моментом будет установка "прямого" vpn между B и C, в противном случае Hamachi будет работать довольно медленно, потому что он проходит через другие серверы для маршрутизации вашего сетевого трафика.