このアプリはどのくらいのセッション数を使っているのか(Windows)

こんにちは、エス・ワイ・シーの松本です。

ネットワーク的なものを触っていると話題になるのが
どのくらいのセッション数が必要なのか、という点です。

普段、ユーザー的立ち位置ですとあまり気にしませんが、
ファイアウォール的なものをやっているとインターネット通信の際に NAT 変換はされるわけで、通信宛先が 仮に https://www.syc.co.jp とすると 特定のグローバル IP 1個のポート 443 に対するアクセスが大丈夫か否か的な話になったりするわけですね。

内部ネットワーク側支店でいえば、192.168.1.x/24 とか複数のローカル IP からファイアウォールで外部グローバル IP に NAT 変換して宛先 www.syc.co.jp に通信することになります。

仮に 自分側の グローバル IP が A.B.C.D、宛先が E.F.G.H とした場合、
A.B.C.D:ランダムポート → E.F.G.H:443
という通信セッションが何個利用できるのか、という話ですね。
A.B.C.D:ランダムポートは 別に E.F.G.H:443 以外に別のところあてにも使用されるので全部使えるわけではないのです。
通信終わってセッション切れると使いまわされるのである瞬間は全部使えるのでは?という話ではあるのでしょうけども。

例えば Outlook をメールクライアントとして Exchange Online 等をメールサーバーとして、目安として社内ユーザーの Outlook 関連セッションてどのくらいになるのでしょうね?
とかですね。

これがなかなか難しいと思うのですよ。
たぶん Outlook のバージョンや使い方によって 1ユーザーの PC 1個からどのくらいセッション張っているのか。
Exchange Online 側もオンラインサービスなので宛先1つじゃないですし、Outlook も処理を高速化する目的で複数セッションを張ったりしていて固定数でなかったりするので。

ここでは Outlook を例としましたがその他のものもそうです。

何とかして参考値を出す手段はないものか。

実は前回の記事でご紹介した Get-NetProcess が少し使えます。
-Name オプションに Outlook とか確認したい名前を指定するとそのプロセス名でフィルターされて一覧されます。

Get-NetProcess -Name Outlook

なるほど、Outlook が利用しているセッションが一つではなくたくさんあるのはわかった。
でもこれいちいち何個あるか数えるの?多いよ?

そこはそれ、PowerShell ですので
(Get-NetProcess -Name Outlook).Count
で数量だけ教えてくれますので簡単ですね。

難点はこれを 全員の端末でやるの?ということですが、
そこはそれ、状況に応じて代表いくつかを確認して参考としてみるしかないのではないかとは思います。

何も根拠がないよりはいいんじゃないでしょうか。