このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン | 次のリビジョン 両方とも次のリビジョン | ||
wsl2:interop [2020/12/27 17:51] y2sunlight [WLS2のリスニングポート] |
wsl2:interop [2020/12/27 17:57] y2sunlight [仮想マシンのリスニングポート] |
||
---|---|---|---|
行 92: | 行 92: | ||
- | ==== 仮想マシンのリスニングポート ==== | + | ==== WSL2側のリスニングポート ==== |
- | ポート番号を指定して待ち受けするには、そのためのAPIを利用して、ポート番号を確保する必要がある。逆にいうとシステムは、どのポート番号が待ち受けに使われているのかを把握できる。 | + | WSL2では、仮想マシン側でリスニングされているポート番号と同じポート番号を、ホスト側で動作しているwslhost.exeがリスニングします。 |
+ | TODO: | ||
- | WSL2側で待ち受けが行われているポート番号をホスト側で動作しているwslhost.exeが代わって確保して待ち受けする。 | + | WSL2側でPort Xで待ち受けを行うと、win32側でもwslhost.exeがPort XをListen Portに指定して待ち受けする。つまり、localhostのPortXに対する接続はすべてwslhost.exeが受けることになる。wslhost.exeは、受け取ったパケットをなんらかの方法でWSL2側に転送する。WSL2の挙動をみるに、仮想ネットワーク経由での転送ではなく、WSL2側のネットワークサービスからは、localhostからのアクセスのように見える。 |
- | + | ||
- | WSL2側でPort Xで待ち受けを行うと、win32側でもwslhost.exeがPort XをListen Portに指定して待ち受けする。つまり、localhostのPortXに対する接続はすべてwslhost.exeが受けることになる。wslhost.exeは、受け取ったパケットをなんらかの方法でWSL2側に転送する。WSL2の挙動をみるに、仮想ネットワーク経由での転送ではなく、WSL2側のネットワークサービスからは、localhostからのアクセスのように見える。 | + | |
\\ | \\ | ||