イーサネット、OSI モデル、TCP、UDP、ルーティング (新しいユーザー制限のためリンクなし)などの wiki 記事のトピックについて読みましたが、特定の問題に答えてもらうことができませんでした。
状況: 4 台のコンピューター (AD)
これらは、イーサネットを使用して次のように相互に接続されています: A <-LAN-> B <-Internet-> C <-LAN-> D (新しいユーザー制限のため、画像ではなくリンクのみです。申し訳ありません)
私が達成しようとしていること:コンピューターAは、コンピューターDに直接接続されていると思うようにだまされる必要があります(逆も同様です)。それを達成するためのソフトウェアは、コンピューター B と C でのみ実行する必要があります。
私の問題は何ですか:目標を達成するために何をしなければならないかを詳しく言えません。コンピューター B と C の最新のオペレーティング システムで実行されるソフトウェアを使用して、A と D が互いに接続されていると思わせることはまったく可能ですか?
私が理解しているのは、その接続を実際にシミュレートする場合、物理層で情報を転送する必要があるということです。同じことを達成するために、B/C のオペレーティング システムのアプリケーション層からどの程度のことができるでしょうか? それはまったく可能ですか?
私の知識の点から私がすでにできること: データグラムまたはバイトストリームをBに送信するクライアントソフトウェアをAに持つこと(Bがインターネット経由でCに送信し、次にデータを送信することを知っている) Dに)。DからAへの方向も同様です。
そのソリューションに関する私の問題: そのソリューションには、2つのソフトウェアソリューション(A / D用、B / C用)が必要であるという意味で欠陥があり、さらに、TCPおよびUDPプロトコルへの接続を制限します。接続を実際にシミュレートするわけではありません。これは、A から D に情報をルーティングするための回避策であり、ピアツーピア接続のシミュレーションではありません。
これは、タイトルからの質問に私を導きます:
インターネット経由で 2 台の PC 間の直接ネットワーク接続をシミュレートするにはどうすればよいですか?
また、私が完全に見落とした可能性のある提案、または部分的な解決策や提案も受け入れます。