KUSONEKOの見る世界

HVTR-BCTX3 の通信をキャプチャ+QoSマーキング


HVTR-BCTX3のリモート視聴の通信をキャプチャしてみました。
その結果とその内容から、周辺ネットワーク機器でどのような設定があると良いかが分かりましたので記載します。
特にQoSのマーキングが大事だと思います。

キャプチャ結果

LAN内からのアクセス

Windows10のテレプレやテレリモでのアクセスや、Android/iPhoneのモバイルアプリREC-ON AppでLAN内(ローカル)からアクセスする場合の通信内容を調べてみました。

HVTR-BCTX3に対して、TCP 55247で通信をしていました。
これがランダムなのかは不明です。

TCPハンドシェイクのMSSは1398でした。
MTUに換算すると1438になるので、もしかするとNTT西のフレッツ光プレミアムに合わせた可能性あり?

でもインターネット越しの通信は次項の通りUDPになります。
HVTR-BCTX3のインターフェースは、MTU1438に設定しているのかもしれません。

外出先からのアクセス

Windows10のテレプレやテレリモでのアクセスや、Android/iPhoneのモバイルアプリREC-ON App(以下、端末と記載)で、外出先(インターネット側)からアクセスする場合の通信内容を調べてみました。

通信で使用するプロトコルはUDPで、ポート番号はランダムとなります。

外出先からの接続時は、端末のSIPのINVITEがインターネット上のDiXiMのサーバに流れ、DiXiMのサーバから自宅内のHVTR-BCTX3にINVITEが流れます。
(もちろん事前に自宅内のHVTR-BCTX3からDiXiMのサーバにSIP REGISERしており、DiXiMサーバがHVTR-BCTX3のIPアドレスが分かっている状態です。)

その後、DiXiMのサーバを介し、端末とHVTR-BCTX3のグローバルIPが知らされ、端末とHVTR-BCTX3が直で通信が始まります。
この時グローバルIPが分かっても、お互いがNATの内側にいるため、簡単に通信はできません。

そこで、『STUN』『TRUN』というプロトコルと使い、UDPのポート番号を変えながら、NAT越しでも通信できるまでパケットを投げ続け、通信を確立させます。
これは、NAT(正確にはNAPT/PATやIPマスカレード)では内側から外側に通信が始まった時に、NAT装置のNATテーブルにプライベートIPと使用ポート番号が登録され、外側からでも内側に通信ができるようになります。しかし、外側のポート番号がNAT装置によりランダムに決められるため、外側から内側に通信するには、NAT装置が決めたランダムなポート番号に合致するまでパケットを投げ続ける必要があるわけです。
(これをUDP hole punchingと呼ぶそうです)

なお、DiXiMサーバからHVTR-BCTX3への通信は、HVTR-BCTX3が予め、SIPのREGISERをDiXiMサーバに直接投げており、外側ポート番号を知っているため、DiXiMサーバからHVTR-BCTX3への通信は可能です。

周辺ネットワーク機器の設定

UPnP機能

HVTR-BCTX3にUPnPの機能の設定がありましたが、我が家のブロードバンドルータ RTX810でUPnPを有効にしていても、HVTR-BCTX3がUPnP機能使っている様子はありませんでした。
これが使用できれば、UDP hole punchingが不要になるのかもしれません。
(使用できたら、接続時に高速化する?)

効果が分からなければ、ブロードバンドルータではUPnPは無効でいいでしょう。

おすすめQoS設定

我が家のルータは、RTX810であるため高度な機能が使用できます。
こちらの記事でもRTX810でQoSのマーキング設定をしていますが、その設定でリモート視聴の通信もローカル→インターネットの通信がDSCP46(EF)に設定されます。

この設定は、前回ではあまり意味のない設定でしたが、今回意味があると考えられます。
それは、インターネットの向こう側のリモートの端末が無線LANに繋がっている場合、 DSCP46(IP Precedence 5)によって、無線LANのQoSが効く可能性があるからです。
IP Precedence 5はWMMでは、ビデオパケットと判断され、音声パケットの次に優先されます。
無線LANのAPではだいたいQoSがデフォルトで有効なので、QoSが効く可能性が高いと思われます。

RTX810のようにQoSマーキングできる機器をお持ちの方は、IP Precedence 5やDSCP46などに設定しておくと良いでしょう。