
はじめに
スマートグラスの活用が進み、特に現場業務の効率化向上に寄与しています。
今回は、Realwear社のNavigator 520(スマートグラス)を使用し、TeamViewer Frontline(ソフトウェア)を通じてエンドツーエンドのビデオ通話を実現するためのテストを行いました。本記事では、テストの内容とネットワーク設定について紹介します。
- ライター:上野 寛登
- スマートグラス・ロボット・データ分析などを担当
現場業務の効率化を実現するため、各種ソリューションをご紹介しております。
目次
TeamViewer Frontlineを用いたRealwear Navigator 520のビデオ通話テスト
WebRTCの仕組み
WebRTCは、ブラウザ間でリアルタイムの音声、ビデオ、およびデータ通信を可能にするオープンソースの技術です。例えば、WebRTCを利用してリアルタイムの音声通話やビデオ通話、ウェブ会議、直接データ転送などが実現されています。TeamViewer Frontlineでは、このWebRTCの技術を使用して、エンド間のビデオ通信を行っています。
通信の大まかなプロセスは以下の通りです。
①シグナリング:接続の初期設定やメタデータの交換を行うプロセス。
例:電話をかける前に「これから電話してもよいですか?」とメッセージを送るようなもの。
②接続の確立(ICE):STUNやTURNサーバーを利用して、最適なピア間の通信経路を確立するプロセス。
例:実際に電話をかけて、相手とつながるまでのプロセス。
通信状況をチェックして、一番つながりやすい方法を自動で選ぶプロセス。
③メディアとデータの送受信:音声やビデオ(メディアストリーム)は暗号化され、安全に送られます。
例:電話がつながって、実際に会話を始めるプロセス。
このとき、会話の内容が盗み聞きされないように、通信が暗号化されています。

今回は、このような技術が使用されているTeamViewer Frontlineのビデオ通話を検証していきます。
検証目的
今回の検証は、ビデオ通話に必要なポートの確認です。WebRTCでエンド間のビデオ通話を行う際には、TURNサーバーおよびSTUNサーバーへの通信が必要になります。この通信を制御した場合に、どのような挙動が起こるのかを確認します。
TURNサーバー:P2P通信の確立に失敗した場合に、ピア間のトラフィックを中継します。
STUNサーバー:各ピアがパブリックIPアドレスを確認する際に使用。
ネットワーク構成概要
検証に使用したネットワーク環境は以下の通りです。
外部ネットワーク
ビデオ通話に必要なTeamViewer Frontlineの各コンポーネント(TeamViewerコマンドセンター、TURNサーバー、STUNサーバー)はインターネット上に存在します。また、今回の検証ではスマートグラスにSIMを挿入してインターネットに接続します。
内部ネットワーク
こちらのネットワークは、検証用のLAN環境です。このネットワークにはPCが所属しており、このPCからインターネット上にあるスマートグラスへ通信を行います。
内部ネットワークとインターネットを接続するルータには、ホワイトリストで以下の設定を行っています。
HTTPS: 443
※現状では、ポート443のみ許可しており、それ以外の通信は拒否しています。
基本検証
TeamViewer Frontlineのビデオ通話では、以下のポートが使用されます。この後の検証では、順番に下記のポートを許可していきます。
TCP: 443
TCP: 8080
UDP: 8080
UDP: 40000-45000(同一LAN内でのビデオ通話で使用)
参照:Assist Requirements (teamviewer.com)
初回テスト:設定変更なし
まず、設定を変更せずにPCからスマートグラスへの通信を試みました。この通信で使用されたのはHTTPS(443)のみです。
この場合、PCからスマートグラスへのシグナリングは問題なく行われるものの、通話中の音声や映像が確認できませんでした。
PC側の画面 スマートグラス側の画面
ネットワークアナライザーツール(Wireshark)を使用して通信を確認すると、TCPの再送信が頻発していることがわかりました。TCPのセッションが確立できていないため、ビデオ通話に必要な情報(メディアストリーム・音声)が交換できていません。
※TCPの再送信が頻発し、セッションの確立が不完全であることを確認。
※Wiresharkを使用してパケットキャプチャを実施。
ポート設定変更後のテスト
次に、以下のポート設定をネットワーク機器に適用しました。
TCP: 8080(TURNサーバーへの通信を許可)
UDP: 8080(STUNサーバーへの通信を許可)
※UDP 40000-45000は同一ネットワーク内でのビデオ通話で使用されるため、今回は設定していません。
参照:Assist Requirements (teamviewer.com)
設定変更後、再度PCからスマートグラスへの通信を試みたところ、ビデオ通話が正常に行われました。
スマートグラス側の画面
PC側の画面
Wiresharkで通信を確認したところ、UDP 8080を使用したビデオ通信が行われていました。STUNサーバーを経由して、エンド間のビデオ通話が実現されています。
一方、TCP 8080に関しては、ビデオ通話の開始直後に通信が行われているものの、その後は頻繁に通信が行われているようには見えませんでした。
UDP 8080を許可しない場合の動作確認
次に、UDP 8080を許可しない場合の動作を確認しました。
リクエストの通信が頻繁に送信されていますが、応答がありません。これはUDP 8080を制限しているためです。
一方、TCP 8080の通信量は先ほどに比べて増加しています。
UDP 8080を制御したことで、TCP 8080を使用したTURNサーバー経由の通信に切り替わっています。
マルチキャスト通信の確認
1対Nのマルチキャスト通信も実施しました。
こちらも先ほど設定したポートを解放することで、問題なく動作しました。

通信の帯域
快適なビデオ通話を実現するためには、安定した通信環境が必要です。今回のLAN環境(PC側)では、ダウンロードが約700 Mbps、アップロードが約400 Mbpsでした。
インターネット環境(スマートグラス側)では、ダウンロードが約70 Mbpsでした。
PC側の速度テスト(Fast.comを使用)
スマートグラス側の速度テスト(Speedtest by Ooklaを使用)
結論
今回の検証で、スマートグラス上の通信の動きを把握することができました。実際の現場で上記のようなテクノロジーを使用する場合には、今回のようにポートが制限されていることが多いです。しっかりと通信フローを確認することで、必要なポートのみを開け、安全に通信を実現することができます。引き続きこのような検証を行い、有意義なレポートを作成していきたいと考えています。
※本記事の内容は執筆者個人の見解であり、所属する組織の見解を代表するものではありません。