(57)【要約】【課題】クライアント装置間の通信を行うときの通信遅延を低減する。【解決手段】実施形態における通信システムは、通信処理装置、第１、第２通信制御装置、第１、第２スイッチを有し、通信処理装置は、第１クライアント装置から第２クライアント装置への通信の提案信号を受信したときに、通信制御テーブルに、第１スイッチおよび第１クライアント装置の識別情報を設定し、返答信号を第２クライアント装置から受信したときに、第２スイッチおよび第２クライアント装置の識別情報を設定して、第１通信制御装置に通信の開始の要請信号を伝送し、第１、第２の通信制御装置は、要請信号を受信したときに、通信のための第１および第２のスイッチの動作を設定する。【選択図】図１
2018050177.tif 000002
【特許請求の範囲】
【請求項１】
通信処理装置、第１の通信制御装置、第１のスイッチ、第２の通信制御装置、第２のスイッチを有する通信システムであって、
前記通信処理装置は、
前記第１のスイッチに接続可能な第１のクライアント装置から、前記第２のスイッチに接続可能な第２のクライアント装置への通信の提案信号を前記第１のスイッチを介して受信したときに、前記第１のクライアント装置と前記第２のクライアント装置との間の通信制御テーブルのレコードに、前記通信のための前記第１のスイッチおよび前記第１のクライアント装置の識別情報を設定する第１の設定手段と、
前記提案信号を前記第２のクライアント装置へ伝送する第１の伝送手段と、
前記提案信号に対する返答信号を前記第２のクライアント装置から前記第２のスイッチを介して受信したときに、前記通信のための前記第２のスイッチおよび前記第２のクライアント装置の識別番号を前記レコードに設定する第２の設定手段と、
前記第１および第２の設定手段による前記レコードへの設定内容を含む、前記通信の開始の要請信号を前記第１および第２の通信制御装置に伝送する第２の伝送手段と
を有し、
前記第１の通信制御装置は、
前記要請信号に含まれる設定内容に基づいて、前記通信の開始のために、前記第１のクライアント装置から前記第２のクライアント装置へ前記通信のためのパケットが通過するときの前記第１のスイッチの動作を定めるテーブルに、前記通信のための前記第１のスイッチの動作を設定する第３の設定手段を有し、
前記第２の通信制御装置は、
前記要請信号に含まれる設定内容に基づいて、前記第２のクライアント装置から前記第１のクライアント装置へ前記パケットが通過するときの前記第２のスイッチの動作を定めるテーブルに、前記通信の開始のための前記第２のスイッチの動作を設定する第４の設定手段を有する
ことを特徴とする通信システム。
【請求項２】
前記第１の設定手段は、
前記第１のスイッチに接続可能な第１のクライアント装置から、前記第２のスイッチに接続可能な第２のクライアント装置への通信の提案信号を前記第１のスイッチを介して受信したときに、前記第１のクライアント装置と前記第２のクライアント装置との間の通信制御テーブルのレコードに、（１）前記第１のスイッチのグローバルＩＰアドレス、（２）前記第１のクライアント装置のＩＰアドレスおよびポート番号を、（３）前記通信に使用する、前記第１のスイッチのグローバルポート番号を前記レコードに設定し、
前記第２の設定手段は、
前記提案信号に対する返答信号を前記第２のクライアント装置から前記第２のスイッチを介して受信したときに、（１）前記第２のスイッチのグローバルＩＰアドレス、（２）前記第２のクライアント装置のＩＰアドレスおよびポート番号、（３）前記通信に使用する、前記第２のスイッチのグローバルポート番号を前記レコードに設定する
ことを特徴とする請求項１に記載の通信システム。
【請求項３】
前記第１の通信制御装置の前記第３の設定手段は、
前記要請信号に含まれる設定内容に基づいて、前記通信の開始のために、前記第１のクライアント装置から前記第２のクライアント装置へ前記通信のためのパケットが通過するときの前記第１のスイッチの動作を定めるテーブルに、（１）前記第１のクライアント装置が送信元で前記第２のクライアント装置が宛先であるときに前記第１のスイッチから第２のスイッチへ前記パケットを送信させる前記第１のスイッチの動作、および、（２）前記第２のスイッチが前記送信元で前記第１のスイッチが前記宛先であるときに前記第２のクライアント装置から前記第１のクライアント装置に前記パケットを送信させる前記第１のスイッチの動作を設定し、
前記第２の通信制御装置の前記第３の設定手段は、
前記要請信号に含まれる設定内容に基づいて、前記通信の開始のために、前記第２のクライアント装置から前記第１のクライアント装置へ前記パケットが通過するときの前記第２のスイッチの動作を定めるテーブルに、（１）前記第２のクライアント装置が送信元で前記第１のクライアント装置が前宛先であるときに前記第２のスイッチから第１のスイッチへ前記パケットを送信させる前記第１のスイッチの動作、および、（２）前記第１のスイッチが送信元で前記第２のスイッチが宛先であるときに前記第１のクライアント装置から前記第２のクライアント装置に前記パケットを送信させる前記第２のスイッチの動作を設定する
ことを特徴とする請求項１に記載の通信システム。
【請求項４】
前記通信処理装置は、
前記第１の設定手段により設定する前記第１のスイッチのグローバルポート番号の生成を前記第１の通信制御装置に要請する第１の要請手段と、
前記第２の設定手段により設定する前記第２のスイッチのグローバルポート番号の生成を前記第２の通信制御装置に要請する第２の要請手段とをさらに有し、
前記第１の設定手段は、前記要請にしたがって前記第１の通信制御装置により生成された前記第１のスイッチのグローバルポート番号を前記レコードに設定し、
前記第１の設定手段は、前記要請にしたがって前記第２の通信制御装置により生成された前記第１のスイッチのグローバルポート番号を前記レコードに設定する
ことを特徴とする請求項２に記載の通信システム。
【請求項５】
前記提案信号は、前記第１のクライアント装置のＩＰアドレスおよび前記第１のクライアント装置が前記通信に使用するポート番号を含み、
前記返答信号は、前記第２のクライアント装置のＩＰアドレスおよび前記第２のクライアント装置が前記通信に使用するポート番号を含む
ことを特徴とする請求項２に記載の通信システム。
【請求項６】
前記通信処理装置は、
前記第１のクライアント装置のＩＰアドレスおよび前記第１のクライアント装置が前記通信に使用するポート番号を、前記提案信号とは別に受信し、
前記第２のクライアント装置のＩＰアドレスおよび前記第２のクライアント装置が前記通信に使用するポート番号を、前記返答信号とは別に受信する
ことを特徴とする請求項２に記載の通信システム。
【請求項７】
前記通信処理装置は、
前記第１のクライアント装置からの、前記要請信号にしたがって開始された通信の終了の要請を受信したときに、この通信に関わる、前記第１および第２の設定手段による前記レコードへの設定内容を削除し、前記通信の遮断を前記第１および第２の通信制御装置に要請し、
前記第１の通信制御装置は、
前記通信の遮断の要請にしたがって、前記第３の設定手段による設定内容を削除し、
前記第２の通信制御装置は、
前記通信の遮断の要請にしたがって、前記第４の設定手段による設定内容を削除する
ことを特徴とする請求項１に記載の通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、通信システムに関する。
【背景技術】
【０００２】
Webアプリケーションでクライアントとして使用されるブラウザ間でリアルタイムUDPデータグラム通信（トランスポート層としてUDPを用いるパケットの通信）を実現するプロトコルとして、P2P通信を実現するためのプロトコルであるWebRTCが注目されている。
【０００３】
プライベートアドレスを有するクライアントが広域通信網を越えてパケットの通信を行なうときに、パケットは、Symmetric NATおよびファイアウォールを通過する。  
プライベートアドレスを持つクライアント同士がUDPデータグラム通信を行うときは、TURN（Traversal Using Relays around NAT：Symmetric NATやファイアウォールを通過するパケットをリレーさせるためのプロトコル）サーバによるパケットのリレーが必要になる。TURNサーバによるパケットリレーにより、プライベートアドレスを持つクライアント同士が広域通信網を越えてリアルタイムUDPデータグラム通信をするときは、リアルタイム性の確保が困難になる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−０９１８２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
Symmetric NATやファイアウォールを通過するUDPデータグラム通信では、STUN（Session Traversal Utilities for NAT：プライベートアドレスを持つクライアントが、NAT（ネットワークアドレス変換装置）のグローバルアドレスと宛先ポートを知るためのプロトコル）によるグローバルアドレス解決のみではなく、TURNによるリレーも必要になる。
【０００６】
TURNサーバと各クライアントの通信遅延時間が長くなる場合に、通信を行うクライアント同士の通信遅延時間が短くても、TURNサーバを経由すると、UDPデータグラム通信の遅延時間は長くなる。例えば、送信側クライアントと受信側クライアントが直接通信できたときの通信遅延時間が10msであったとしても、TURNサーバと送信側クライアントとの通信遅延時間、TURNサーバと受信側クライアントとの通信遅延時間がそれぞれ100msであれば、TURNサーバを経由する、送信側クライアントから受信側クライアントの通信における通信遅延時間は、上記の直接通信できたときの通信遅延時間の20倍の200msになってしまう。  
また、通信の組み合わせが増加するとTURNサーバを経由する通信が増加するために、このTURNサーバが通信のボトルネックとなる。
【０００７】
本発明が解決しようとする課題は、クライアント装置間の通信を行うときの通信遅延を低減することが可能な通信システムを提供することである。
【課題を解決するための手段】
【０００８】
実施形態における通信システムは、通信処理装置、第１の通信制御装置、第１のスイッチ、第２の通信制御装置、第２のスイッチを有する通信システムであって、前記通信処理装置は、前記第１のスイッチに接続可能な第１のクライアント装置から、前記第２のスイッチに接続可能な第２のクライアント装置への通信の提案信号を前記第１のスイッチを介して受信したときに、前記第１のクライアント装置と前記第２のクライアント装置との間の通信制御テーブルのレコードに、前記通信のための前記第１のスイッチおよび前記第１のクライアント装置の識別情報を設定する第１の設定手段と、前記提案信号を前記第２のクライアント装置へ伝送する第１の伝送手段と、前記提案信号に対する返答信号を前記第２のクライアント装置から前記第２のスイッチを介して受信したときに、前記通信のための前記第２のスイッチおよび前記第２のクライアント装置の識別番号を前記レコードに設定する第２の設定手段と、前記第１および第２の設定手段による前記レコードへの設定内容を含む、前記通信の開始の要請信号を前記第１および第２の通信制御装置に伝送する第２の伝送手段とを有し、前記第１の通信制御装置は、前記要請信号に含まれる設定内容に基づいて、前記通信の開始のために、前記第１のクライアント装置から前記第２のクライアント装置へ前記通信のためのパケットが通過するときの前記第１のスイッチの動作を定めるテーブルに、前記通信のための前記第１のスイッチの動作を設定する第３の設定手段を有し、前記第２の通信制御装置は、前記要請信号に含まれる設定内容に基づいて、前記第２のクライアント装置から前記第１のクライアント装置へ前記パケットが通過するときの前記第２のスイッチの動作を定めるテーブルに、前記通信の開始のための前記第２のスイッチの動作を設定する第４の設定手段を有する。
【発明の効果】
【０００９】
本発明によれば、クライアント装置間の通信を行うときの通信遅延を低減することができる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態における通信システムの機能構成例を示す図。
【図２】第１の実施形態における通信システムによる処理の手順の一例を示すシーケンス図。
【図３】第１の実施形態における通信システムにおけるIPアドレスの一例を示す図。
【図４】第１の実施形態における通信システムのネットワークコントローラが管理するパケットOFC-IPアドレスマッピングテーブルの構成例を表形式で示す図。
【図５】第１の実施形態における通信システムのOFSWのポートの一例を示す図。
【図６】第１の実施形態における通信システムのネットワークコントローラが管理するOFSWポート-クライアントIPアドレスマッピングテーブルの構成例を表形式で示す図。
【図７】第１の実施形態における通信システムのネットワークコントローラが管理するOFSWポート-クライアントIPアドレスマッピングテーブルの構成例を表形式で示す図。
【図８】第１の実施形態における通信システムの第１OFSW２１が管理するフローテーブルの構成例を表形式で示す図。
【図９】第１の実施形態における通信システムの、Webアプリケーション取得後の第１OFSWのフローテーブルの構成例を表形式で示す図。
【図１０】第１の実施形態における通信システムの、Webアプリケーション取得後の第２OFSWのフローテーブルの構成例を表形式で示す図。
【図１１】第１の実施形態における通信システムによるSDP OFFERの解析に伴うリアルタイムUDPデータグラム通信制御テーブルのレコードの作成について説明する図。
【図１２】第１の実施形態における通信システムによるSDP OFFERの解析に伴うリアルタイムUDPデータグラム通信制御テーブルのレコードの作成について説明する図。
【図１３】第１の実施形態における通信システムによるSDP OFFERの解析に伴うリアルタイムUDPデータグラム通信制御テーブルのレコードの作成について説明する図。
【図１４】第１の実施形態における通信システムによるSDP ANSWERの解析に伴うリアルタイムUDPデータグラム通信制御テーブルのレコードの作成について説明する図。
【図１５】第１の実施形態における通信システムによるSDP ANSWERの解析に伴うリアルタイムUDPデータグラム通信制御テーブルのレコードの作成について説明する図。
【図１６】第１の実施形態における通信システムによるSDP ANSWERの解析に伴うリアルタイムUDPデータグラム通信制御テーブルのレコードの作成について説明する図。
【図１７】第１の実施形態における通信システムによる、フローテーブルのレコードの追加について説明する図。
【図１８】第１の実施形態における通信システムによる、フローテーブルのレコードの追加について説明する図。
【図１９】第１の実施形態における通信システムによる、リアルタイムUDPデータグラム通信開始後のフローテーブルの構成例を表形式で説明する図。
【図２０】第１の実施形態における通信システムによる、フローテーブルのレコードの追加について説明する図。
【図２１】第１の実施形態における通信システムによる、フローテーブルのレコードの追加について説明する図。
【図２２】第１の実施形態における通信システムによる、リアルタイムUDPデータグラム通信開始後のフローテーブルの構成例を表形式で説明する図。
【図２３】第１の実施形態における通信システムによる複数のリアルタイムUDPデータグラム通信に対応するリアルタイムUDPデータグラム通信制御テーブルの構成例を表形式で説明する図。
【図２４】第１の実施形態における通信システムによる複数のリアルタイムUDPデータグラム通信に対応するフローテーブルの構成例を表形式で説明する図。
【図２５】第１の実施形態における通信システムによる複数のリアルタイムUDPデータグラム通信に対応するフローテーブルの構成例を表形式で説明する図。
【図２６】第２の実施形態における通信システムの機能構成例を示す図。
【図２７】第２の実施形態における通信システムによる処理の手順の一例を示すシーケンス図。
【図２８】第２の実施形態における通信システムによるSDP ANSWERの解析に伴うリアルタイムUDPデータグラム通信制御テーブルのレコードの作成について説明する図。
【図２９】第２の実施形態における通信システムによるSDP ANSWERの解析に伴うリアルタイムUDPデータグラム通信制御テーブルのレコードの作成について説明する図。
【図３０】第２の実施形態における通信システムにより送信されるポート確保情報の構成例を表形式で示す図。
【図３１】第２の実施形態における通信システムにより送信されるポート確保情報の構成例を表形式で示す図。
【図３２】第３の実施形態における通信システムの機能構成例を示す図。
【図３３】第３の実施形態における通信システムによる処理の手順の一例を示すシーケンス図。
【図３４】第３の実施形態における通信システムによるSDP ANSWERの解析に伴うリアルタイムUDPデータグラム通信制御テーブルのレコードの作成について説明する図。
【図３５】第３の実施形態における通信システムによるポート確保情報の受信に伴うリアルタイムUDPデータグラム通信制御テーブルのレコードの作成について説明する図。
【図３６】第３の実施形態における通信システムによるポート確保情報の受信に伴うリアルタイムUDPデータグラム通信制御テーブルのレコードの作成について説明する図。
【図３７】第３の実施形態における通信システムによるSDP CANDIDATEの解析に伴うリアルタイムUDPデータグラム通信制御テーブルのレコードの作成について説明する図
【図３８】第４の実施形態における通信システムの機能構成例を示す図。
【図３９】第４の実施形態における通信システムによる処理の手順の一例を示すシーケンス図。
【図４０】第４の実施形態における通信システムによる、リアルタイムUDPデータグラム通信制御テーブルのレコードの削除について説明する図。
【図４１】第４の実施形態における通信システムによる、フローテーブルのレコードの削除について説明する図。
【図４２】第４の実施形態における通信システムによる、フローテーブルのレコードの削除について説明する図。
【図４３】第４の実施形態における通信システムによる、フローテーブルのレコードの削除について説明する図。
【図４４】第４の実施形態における通信システムによる、フローテーブルのレコードの削除について説明する図。
【図４５】第５の実施形態における通信システムの機能構成例を示す図。
【発明を実施するための形態】
【００１１】
以下、実施形態について図面を用いて説明する。  
まず、各実施形態に関係する用語の意味について以下に説明する。  
パケット：
（１）インターネットプロトコルスイートにおいて、ネットワーク層にIPを使用したものである。パケットのトランスポート層としては、TCPまたは、UDPが使用される。  
（２）後述のOFSW（オープンフロースイッチ）は、リンク層プロトコルとしてEthernet（登録商標）のみ接続が可能である。他の装置のリンク層プロトコルについては、 Ethernet以外(例えば、IEEE802.11n のような無線LAN)を用いてもよい。  
UDPデータグラム：トランスポート層としてUDPを使用しているパケットである。  
TCPセグメント：トランスポート層としてTCPを使用しているパケットである。
【００１２】
送信元ポート、宛先ポート：
（１）インターネットプロトコルスイートにおけるトランスポート層の送信元ポートおよび宛先ポートである。  
（２）ルータ、NAT、クライアントが送受信に使用するUDPポート番号やTCPポート番号である。  
（３）後述するOFSWのOFSWポートとは別である。
【００１３】
ルータ：インターネットプロトコルスイートのネットワーク層以上の情報を用いてパケットの通信制御を行う機器である。  
広域通信網：グローバルIPアドレスが使用されるネットワークである。この広域通信網の内部では、ルータによりネットワークが相互接続されている。  
LAN：プライベートIPアドレスが使用されるネットワークである。  
Webサーバ：Webアプリケーションを提供するサーバである。
【００１４】
クライアント：
（１）リアルタイムUDPデータグラム通信の送受信を行う端末である。  
（２）Webサーバとクライアント間の通信はTCPセグメントが使用される。  
ファイアウォール：あるネットワークを不正アクセスから守るための装置である。  
パケットフィルタリング：ルールをもとに、ファイアウォールでパケットの通過制御を行うことである。
【００１５】
SDP(Session Description Protocol)：
（１）draft-nandakumar-rtcweb-sdp-07、 draft-ietf-mmusic-trickle-ice-02に記載される。  
（２）リアルタイムマルチメディア通信を行うための情報の記述形式である。  
（３）IPアドレス、ポート番号、メディア種別、コーデックなどが含まれる。  
リアルタイムUDPデータグラム通信：
（１）音声や映像をリアルタイムに通信する上でSDPを使用したセッション情報の交換を伴うUDPデータグラムの通信である。  
（２）リアルタイムUDPデータグラム通信を実現するプロトコルとしては、WebRTC(https://tools.ietf.org/wg/rtcweb/)が該当する。  
候補アドレス：リアルタイムUDPデータグラム通信で利用可能な、IPアドレス、送信元ポートまたは宛先ポートとして利用できるポート番号のことである。
【００１６】
SDP OFFER：
（１）リアルタイムUDPデータグラム通信の発呼側からリアルタイムUDPデータグラム通信で使用するメディアを提案することである。  
（２）SDP OFFERで候補アドレスを通信相手となるクライアントに対して通知する場合もある。  
（３）SDPとリアルタイムUDPデータグラム通信のセッションIDを含む。
【００１７】
SDP ANSWER：
（１）SDP OFFERを受け取ったクライアントから、このSDP OFFERの送信元に対して、当該SDP OFFERで提案されたメディアが受け入れ可能かを返答することである。  
（２）SDP ANSWERで通信相手となるクライアント候補アドレスを通知する場合もある。
（３）SDPとリアルタイムUDPデータグラム通信のセッションIDを含む。
【００１８】
SDP CANDIDATE：
（１）候補アドレスを通信相手となるクライアントに対して通知することである。  
（２）SDPとリアルタイムUDPデータグラム通信のセッションIDを含む。
【００１９】
リアルタイムUDPデータグラム通信終了メッセージ：
（１）リアルタイムUDPデータグラム通信を終了することを通信相手となるクライアントに対して通知することである。  
（２）リアルタイムUDPデータグラム通信のセッションIDを含む。
【００２０】
SDP OFFER・SDP ANSWER・SDP CANDIDATEは、例えばJSON形式をメッセージフォーマットとするが、これと等価な表現をするプレーンテキストやXMLなどであっても構わない。また、セッションID、SDP以外にも何らかのプロパティがJSONに存在しても良い。
【００２１】
シグナリングチャネル：
（１）WebRTCでSDPを交換するために使用されるソフトウエアである。  
（２）SDP OFFER・SDP ANSWER・SDP CANDIDATEで使用するセッションIDは、SDP OFFERを発呼するクライアントが指定する。
【００２２】
OpenFlow：
（１）SDN(Software Defined Network)を実現するプロトコルである。  
（２）OFC（OpenFlowコントローラ）（後述)およびOFSWから構成される。  
（２−１）OFSWに備えられた物理的なポートのうち、OFSWを制御するためのみに使用する管理ポートに接続される。  
（２−２）OFCとOFSWの通信は、TCPセグメント、もしくは、UDPデータグラムで行われる。  
（３）本実施形態では、OpenFlowを用いてパケットの通信制御を行う。
【００２３】
OpenFlowコントローラ(OFC)：OpenFlowでパケットを制御するためのソフトウエア、および、そのソフトウエアが動作する端末である。  
OpenFlowスイッチ(OFSW)：
（１）OpenFlowに対応したスイッチである。  
（２）インターネットプロトコルスイートにおけるリンク層の媒体、例えばEthernetケーブルなどが接続されるOFSWポートを複数有する。  
（３）フローテーブル（後述)によりパケットの処理を実施する。  
OFSWポート：OFSWが備える物理的なポートである。
【００２４】
フローテーブル：
（１）OpenFlowでパケットの通信制御をするためのルールが記述され、このフローテーブルの条件部に合致するパケットに対して、このフローテーブルの操作部で定義された処理がOFSW上で実行される。  
（２）OFCにより作成され、OFSWに配布される。  
（３）フローテーブルの条件部に合致しないパケットがOFSWを通過する場合、このパケットはOFCに転送される。この転送されたパケットは、OFCのソフトウエアにしたがって制御される。
【００２５】
OFSWポート-クライアントIPアドレスマッピングテーブル：OFSWポートの番号と、OFSWに接続しているクライアントのIPアドレスとの対応表であり、OFCが所持する。  
使用済みポート番号：OFSWに割り振られたグローバルIPアドレスが使用している送信元ポート、あるいは、宛先ポートとして使用する番号であり、OFCが所持する。
【００２６】
パケット中継OFC：
（１）本実施形態を実現するためのOFCとして実装されOFSWのフローテーブルを管理する。  
（２）ファイアウォール用フローテーブル作成・配布機能、（パケットを使用した不要な通信を遮断する機能）、Symmetric NAT用フローテーブル作成・配布機能（Symmetric NATを実現し、使用済みポート番号に現在使用しているポート番号を追加する）を実装する。
【００２７】
ポート確保要請受信機能（パケット中継OFCが実装）：
（１）後述のネットワークコントローラから後述のポート確保要請を受け取りOFSWのグローバルIPアドレスに対応付ける送信元ポートと宛先ポートとなるポート番号を確保するための機能である。  
（２）ポート番号を確保した後に、ポート確保要請をネットワークコントローラに対して送信する。
【００２８】
リアルタイムUDPデータグラム通信開始機能：ネットワークコントローラから後述のリアルタイムUDPデータグラム通信開始要請を受け取り、リアルタイムUDPデータグラム通信を開始するためのフローテーブルをOFSWに配布するための機能である。
【００２９】
リアルタイムUDPデータグラム通信遮断機能：ネットワークコントローラから後述のリアルタイムUDPデータグラム通信遮断要請を受け取り、リアルタイムUDPデータグラム通信を遮断するために、OFSWからフローテーブルを削除するための機能である。
【００３０】
ネットワークコントローラ：
（１）例えば、パケット中継OFCを制御するサーバ装置が実現する。以下の第１ないし第４の実施形態ではネットワークコントローラとサーバ装置は同義である。  
（２）ネットワークコントローラとパケット中継OFCは、TCPセグメント、もしくは、UDPデータグラムを用いて通信をする。  
（３）ネットワークコントローラは、クライアントのSDPを何らかの手段で取り込む。WebRTCならシグナリングチャネル上にネットワークコントローラを実装する。
【００３１】
SDP OFFER 解析機能（ネットワークコントローラが実装）：
（１）SDP OFFERを受信したときにSDP OFFERに含まれるSDPを解析し、後述のリアルタイムUDPデータグラム通信制御テーブルに対して、新たに開始するリアルタイムUDPデータグラム通信のレコードを追加する。  
（２）後述するポート確保要請をパケット中継OFCに対して送信する。
【００３２】
SDP ANSWER 解析機能（ネットワークコントローラが実装）：
（１）SDP ANSWERを受信したときに、このSDP ANSWERに含まれるSDPを解析し、後述のリアルタイムUDPデータグラム通信制御テーブルの該当レコードを変更する。変更した結果、リアルタイムUDPデータグラム通信制御テーブルの該当レコードの列がすべて埋まった場合に、リアルタイムUDPデータグラム通信開始要請機能を呼び出す。  
（２）後述のポート確保要請をパケット中継OFCに対して送信する。
【００３３】
SDP CANDIDATE 解析機能（ネットワークコントローラが実装）：SDP CNADIDATEを受信したときに、このSDP CANDIDATEに含まれるSDPを解析し、後述のリアルタイムUDPデータグラム通信制御テーブルの該当レコードを変更する。変更した結果、リアルタイムUDPデータグラム通信制御テーブルの該当レコードの列がすべて埋まった場合に、リアルタイムUDPデータグラム通信開始要請機能を呼び出す。
【００３４】
ポート確保情報受信機能（ネットワークコントローラが実装）：パケット中継OFCで確保された送信元ポート・宛先ポートとして使用するポート番号を受け取り、後述のリアルタイムUDPデータグラム通信制御テーブルの該当レコードを変更する。変更した結果、リアルタイムUDPデータグラム通信制御テーブルの該当レコードの列がすべて埋まった場合に、リアルタイムUDPデータグラム通信開始要請機能を呼び出す。
【００３５】
ネットワークコントローラは、以下のリアルタイムUDPデータグラム通信開始要請機能、リアルタイムUDPデータグラム通信遮断要請機能、リアルタイムUDPデータグラム通信終了検知機能を実装できる。
【００３６】
リアルタイムUDPデータグラム通信開始要請機能：パケット中継OFCに対してリアルタイムUDPデータグラム通信の開始を指示する。  
リアルタイムUDPデータグラム通信遮断要請機能：パケット中継OFCに対してリアルタイムUDPデータグラム通信の遮断を指示する。
【００３７】
リアルタイムUDPデータグラム通信終了検知機能：
（１）ネットワークコントローラがリアルタイムUDPデータグラム通信終了メッセージを受信することで、リアルタイムUDPデータグラム通信の終了を検知する。  
（２）リアルタイムUDPデータグラム通信の終了を検知するとリアルタイムUDPデータグラム通信遮断要請機能を呼び出す。  
（３）後述のリアルタイムUDPデータグラム通信制御テーブルから終了する通信に該当するレコードを削除する。
【００３８】
各種アドレスやポートの定義は以下の通りである。  
OFFER IP アドレス：SDP OFFERを発呼したクライアントのローカルIPアドレス
OFFER ポート：SDP OFFERを発呼したクライアントがリアルタイムUDPデータグラム通信で使用する送信元ポート・宛先ポート
ANSWER IP アドレス：SDP ANSWERを送信したクライアントのローカルIPアドレス
ANSWER ポート：SDP ANSWERを送信したクライアントがリアルタイムUDPデータグラム通信で使用する送信元ポート・宛先ポート
OFFER グローバル IP アドレス：SDP OFFERを発呼したクライアントが所属するOFSWのグローバルIPアドレス
OFFER グローバルポート：SDP OFFERを発呼したクライアントがリアルタイムUDPデータグラム通信で使用するOFSWの送信元ポート・宛先ポート
ANSWER IP アドレス：SDP ANSWERを送信したクライアントが所属するOFSWのグローバルIPアドレス
ANSWER グローバルポート：SDP ANSWERを出力したクライアントがリアルタイムUDPデータグラム通信で使用するOFSWの送信元ポート・宛先ポート
次に、リアルタイムUDPデータグラム通信関連の各種定義について説明する。  
リアルタイムUDPデータグラム通信制御テーブル：
OFSWでリアルタイムデータグラム通信制御のフローテーブルを作成するためにネットワークコントローラからパケット中継OFCに転送される情報であり、ネットワークコントローラが保持する。
【００３９】
パケット中継OFC-IPアドレスマッピングテーブル：
（１）パケット中継OFCとパケット中継OFCが接続するOFSWに割り振られたグローバルIPアドレス、および、OFSWに接続するクライアントのローカルIPアドレスが所属するネットワークアドレスの対応表。  
（２）ネットワークコントローラに予め入力しておく必要がある。
【００４０】
リアルタイムUDPデータグラム通信開始要請：
（１）ネットワークコントローラのリアルタイムUDPデータグラム通信開始要請機能により、ネットワークコントローラからパケット中継OFCに対して送信される。  
（２）送信されるデータは、リアルタイムUDPデータグラム通信制御テーブルのうち、リアルタイムUDPデータグラム通信を開始する該当の１レコードである。
【００４１】
リアルタイムUDPデータグラム通信遮断要請：
（１）ネットワークコントローラのリアルタイムUDPデータグラム通信遮断要請機能により、ネットワークコントローラからパケット中継OFCに対して送信される。  
（２）送信されるデータは、リアルタイムUDPデータグラム通信制御テーブルのうち、リアルタイムUDPデータグラム通信を遮断する該当の１レコードである。
【００４２】
リアルタイムUDPデータグラム通信開始要請、リアルタイムUDPデータグラム通信遮断要請は、セッションＩＤ、OFFER IP アドレス、OFFER ポート、ANSWER IP アドレス、ANSWER ポート、OFFER グローバル IP アドレス、OFFER グローバルポート、ANSWER IP アドレス、ANSWER グローバルポートを含む。
【００４３】
ポート確保要請：
（１）OFSWに割り振られたグローバルIPアドレスで使用する送信元ポート・宛先ポートについてポートの確保要請を通知することである。  
（２）ネットワークコントローラからパケット中継OFCに送信され、セッションＩＤを含む。
【００４４】
ポート確保情報：
（１）OFSWに割り振られたグローバルIPアドレスであらたに使用する送信元ポート・宛先ポートを他装置に対して通知することである。  
（２）パケット中継OFCからネットワークコントローラに送信されセッションＩＤ、グローバルIPアドレス、対象ポート番号を含む。
【００４５】
（第１の実施形態）
次に、第１の実施形態について説明する。図１は、第１の実施形態における通信システムの機能構成例を示す図である。  
図１に示すように、第１の実施形態における通信システムは、Webサーバ１０、第１OFSW（第１のスイッチ）２１、第２OFSW（第２のスイッチ）２２、ルータ３０、第１パケット中継OFC（第１の通信制御装置）４１、第２パケット中継OFC（第２の通信制御装置）４２、第１クライアント５１、第２クライアント５２、第３クライアント５３、第４クライアント５４を含む。
【００４６】
Webサーバ１０は、シグナリングチャネル１１を有する。シグナリングチャネル１１は、ネットワークコントローラ（通信処理装置）１２を有する。  
Webサーバ１０は、広域通信網および第１OFSW２１を介して、第１パケット中継OFC４１、第１クライアント５１、第２クライアント５２と通信可能に接続される。
【００４７】
また、Webサーバ１０は、広域通信網およびルータ３０を介して第２パケット中継OFC４２と通信可能に接続される。また、Webサーバ１０は、広域通信網および第２OFSW２２を介して、第３クライアント５３、第４クライアント５４と通信可能に接続される。  
第２OFSW２２は、第２パケット中継OFC４２と通信可能に接続される。
【００４８】
ネットワークコントローラ１２は、SDP OFFER 解析機能、SDP ANSWER 解析機能、リアルタイムUDPデータグラム通信開始要請機能、リアルタイムUDPデータグラム通信制御テーブル、パケット中継OFC-IPアドレスマッピングテーブルを有する。
【００４９】
第１パケット中継OFC４１および第２パケット中継OFC４２は、リアルタイムUDPデータグラム通信開始機能、ファイアウォール用フローテーブル作成・配布機能、Symmetric NAT用フローテーブル作成・配布機能、OFSWポート-クライアントIPアドレスマッピングテーブルを有し、使用済みポート番号を管理する。
【００５０】
第１パケット中継OFC４１および第２パケット中継OFC４２は、第１クライアント５１から第３クライアント５３へ向けて行われるリアルタイムUDPデータグラム通信をTURNサーバのような外部サーバを経由することなく通信するためのフローテーブルを第１OFSW２１と第２OFSW２２に作成する。
【００５１】
上記のフローテーブルの作成を実施するために、第１クライアント５１と第３クライアント５３とのリアルタイムUDPデータグラム通信で交換されるSDPを解析して候補アドレスを収集する機能が、シグナリングチャネル１１上へ実装されたネットワークコントローラ１２で実現される。
【００５２】
また、シグナリングチャネル１１は、収集された候補アドレスからリアルタイムUDPデータグラム通信制御テーブルを作成して、このテーブルをもとにパケット中継OFCに対してフローテーブル作成の指示を出す。
【００５３】
第１OFSW２１は、第１クライアント５１から送信されてきたパケットを広域通信網内で第２OFSWへ送信されるように、フローテーブルでパケットのIPヘッダとUDPヘッダを書き換えて、第２OFSW２２に向けてパケットを送信する。
【００５４】
第２OFSW２２は、第１OFSW２１から送信されてきたパケットを第３クライアント５３で受信できるように、フローテーブルでパケットのIPヘッダとUDPヘッダを書き換えて、第３クライアント５３に向けてパケットを送信する。
【００５５】
図２は、第１の実施形態における通信システムによる処理の手順の一例を示すシーケンス図である。  
ネットワークコントローラ１２は、SDP OFFER、SDP ANSWERを解析して、SDPから候補アドレスを収集する。ネットワークコントローラ１２は、収集した候補アドレスから、リアルタイムUDPデータグラム通信制御テーブルのレコードの作成や変更を実施する。
【００５６】
ネットワークコントローラ１２は、パケット中継OFCに対して、レコードのすべての列が埋まったリアルタイムUDPデータグラム通信制御テーブルのレコードをもとに、リアルタイムUDPデータグラム通信開始要請を送信する。リアルタイムUDPデータグラム通信開始要請を受け取ったパケット中継OFCは、OFSWに対してリアルタイムUDPデータグラム通信ができるようにフローテーブルを作成する。
【００５７】
図１に示した太線は、ネットワークコントローラ１２と第１パケット中継OFC４１との間の通信経路である。  
図１に示した細線は、クライアント間やWebサーバ１０との間の通信経路である。  
図１に示した点線は、各パケット中継OFC４１、４２と各OFSW２１、２２との間の通信経路である。  
ただし、これらの線は、あくまで装置（あるいは、装置の機能)間のインターネットプロトコルスイートにおけるネットワーク層の通信を表す。したがって、これらの線で表された通信が、インターネットプロトコルスイートのリンク層において、同一の物理媒体を使用して行われる場合もある。
【００５８】
図１には、ネットワークコントローラ１２と第１OFSW２１との間の通信経路として、上記のように太線の通信経路と細線の通信経路があるがこれらの通信経路として、同じ物理ケーブルを使用してよい
また、図１には、第１OFSW２１と第１パケット中継OFC４１との間の通信経路として、上記のように太線の通信経路と点線の通信経路があるが、これらの通信経路に同じ物理ケーブルを使用することはできない。これは、第１OFSW２１の管理ポートとクライアントが接続するOFSWポートとは物理的に異なるポートであるためである。
【００５９】
第１の実施形態では、候補アドレスをSDP OFFERやSDP ANSWERに含むリアルタイムUDPデータグラム通信(WebRTC)を例として説明する。  
次に、第１の実施形態において実現したいリアルタイムUDPデータグラム通信について説明する。  
第１の実施形態において、第１クライアント５１から第３クライアント５３へのリアルタイムUDPデータグラム通信は、Webサーバ１０のような何らかのサーバを経由することなく行われる。  
ただし、SDPの交換については、Webサーバ１０上のシグナリングチャネル１１を経由して通信がなされる。
【００６０】
ネットワークコントローラ１２と第１パケット中継OFC４１、ネットワークコントローラ１２と第２パケット中継OFC４２、第１パケット中継OFC４１と第１OFSW２１、および、第２パケット中継OFC４２と第２OFSW２２のそれぞれの通信は、TCPセグメントでなされる。
【００６１】
次に、第１の実施形態における、ネットワークコントローラ１２とパケット中継OFCの通信について説明する。  
ネットワークコントローラ１２からパケット中継OFCに対して通信が可能であれば、図１に示すように、パケット中継OFCとネットワークコントローラ１２の通信は、OFSW（図１に示した例では第１OFSW２１）やルータ３０を経由していてもよい。
【００６２】
次に、第１の実施形態における、ネットワークコントローラ１２とパケット中継OFCの通信について説明する。  
Webサーバ１０と広域通信網との物理的な接続、および、第１OFSW２１と広域通信網との物理的な接続では、ネットワークコントローラ１２と第１パケット中継OFC４１との通信経路、および、クライアントとクライアント(または、Webサーバ)の通信経路で、インターネットプロトコルスイートのリンク層は、同一のケーブルを使用しても良い。
【００６３】
次に、第１の実施形態における、パケット中継OFCとOFSWの通信について説明する。第１パケット中継OFC４１と第１OFSW２１との物理的な接続では、第１OFSW２１と第１パケット中継OFC４１の通信経路、および、クライアントとクライアント(または、Webサーバ)の通信経路で、インターネットプロトコルスイートのリンク層は、異なるケーブルを用いる。
【００６４】
次に、第１の実施形態におけるリアルタイムUDPデータグラム通信について説明する。ここでは、第１クライアント５１(192.168.0.1: 52345（IPアドレス：ポート番号）)から第３クライアント５３(192.168.1.1: 1111)へリアルタイムUDPデータグラム通信をする。
【００６５】
図３は、第１の実施形態における通信システムにおけるIPアドレスの一例を示す図である。  
図３に示した例では、Webサーバ１０のIPアドレスは33.33.0.1であり、第１OFSW２１におけるWebサーバ１０側のIPアドレスは33.33.0.2であり、第２OFSW２２におけるWebサーバ１０側のIPアドレスは33.33.0.3であり、ルータ３０におけるWebサーバ１０側のIPアドレスは33.33.0.5である。
【００６６】
また、第１OFSW２１におけるクライアント側のIPアドレスは192.168.0.254であり、第２OFSW２２におけるクライアント側のIPアドレスは192.168.1.254である。  
また、第１OFSW２１と第１パケット中継OFC４１との間の通信経路のIPアドレスは172.17.0.254であり、第２OFSW２２とルータ３０との間の通信経路のIPアドレスは172.17.1.254である。
【００６７】
また、第１クライアント５１のIPアドレスは、192.168.0.1であり、第２クライアント５２のIPアドレスは、192.168.0.2であり、第３クライアント５３のIPアドレスは、192.168.1.1であり、第４クライアント５４のIPアドレスは、192.168.1.2である。
【００６８】
次に、各装置の初期データについて説明する。  
図４は、第１の実施形態における通信システムのネットワークコントローラが管理するパケットOFC-IPアドレスマッピングテーブルの構成例を表形式で示す図である。  
図４に示すように、ネットワークコントローラは、パケット中継OFC-IPアドレスマッピングテーブルを管理する。このテーブルは、各パケット中継OFCのローカルネットワークと、通信相手の各OFSWのIPアドレスを管理する。
【００６９】
次に、OFSWのポートについて説明する。図５は、第１の実施形態における通信システムのOFSWのポートの一例を示す図である。  
図５に示した例では、第１OFSW２１における広域通信網側のOFSWポートの番号は「１」であり、第１パケット中継OFC４１側のOFSWポートの番号は「２」であり、第１クライアント５１側のOFSWポートの番号は「３」であり、第２クライアント５２側のOFSWポートの番号は「４」である。
【００７０】
また、第２OFSW２２における広域通信網側のOFSWポートの番号は「１」であり、第３クライアント５３側のOFSWポートの番号は「２」であり、第４クライアント５４側のOFSWポートの番号は「３」である。  
また、各パケット中継OFCと各OFSWの接続は、OFSWにおけるOFSWポートと異なる管理ポートを用いるため、ここでは番号を記述しない。
【００７１】
図６および図７は、第１の実施形態における通信システムのネットワークコントローラが管理するOFSWポート-クライアントIPアドレスマッピングテーブルの構成例を表形式で示す図である。  
図６に示すように、第１パケット中継OFC４１は、OFSWポート-クライアントIPアドレスマッピングテーブルを管理する。  
このテーブルは、第１パケット中継OFC４１の、広域通信網側以外の各OFSWポートの番号と、このOFSWポートに接続される各装置のIPアドレスを管理する。
【００７２】
図７に示すように、第２パケット中継OFC４２は、OFSWポート-クライアントIPアドレスマッピングテーブルを管理する。  
このテーブルは、第２パケット中継OFC４２の、広域通信網側以外の各OFSWポートの番号と、このOFSWポートに接続される各装置のIPアドレスを管理する。
【００７３】
次に、第１OFSW２１の初期データについて説明する。  
図８は、第１の実施形態における通信システムの第１OFSW２１が管理するフローテーブルの構成例を表形式で示す図である。  
あらかじめ、第１パケット中継OFC４１は、ファイアウォール用フローテーブル作成・配布機能を実行しておき、Webサーバ１０以外と通信をできないように、フローテーブルを第１OFSW２１の図示しないメモリに格納しておく。  
図８に示すように、第１OFSW２１用のフローテーブルでは、第１パケット中継OFC４１とWebサーバ(ネットワークコントローラ１２)の通信を許可する。
【００７４】
また、ネットワークコントローラ１２以外の外部から第１パケット中継OFC４１に対する通信は拒否する（この拒否する通信については、適用優先度を最低にするため常にフローテーブルの最後尾に存在)。  
また、第２OFSW２２は、フローテーブルの初期データは特に管理しない。
【００７５】
次に、Webサーバ１０へのアクセスについて説明する。  
アクセスの例としては、（１）第１クライアント５１(192.168.0.1:13138)からWebサーバ１０(33.33.0.1:80)へのアクセス、（２）第３クライアント５３(192.168.1.1:13555)からWebサーバ１０(33.33.0.1:80)が挙げられる。
【００７６】
次に、Webアプリケーションの取得について説明する。  
第１クライアント５１はWebアプリケーションを取得するためにWebサーバ１０へHTTP GETを発行する。
【００７７】
第１OFSW２１には、第１クライアント５１からWebサーバ１０にアクセスするためのフローテーブルがまだ存在しないので、HTTP GETが含まれたパケットは、第１パケット中継OFC４１に転送される。
【００７８】
第１パケット中継OFC４１は、HTTP GETが含まれたパケットを受け取るとSymmetric NAT用フローテーブル作成・配布機能を実行し、また、Webサーバ１０にアクセスするためのフローテーブルを作成して、第１OFSW２１に対して配布する。
【００７９】
第１パケット中継OFC４１は、 HTTP GETが含まれたパケットをWebサーバ１０に対して送信する。  
Webサーバ１０は、受け取ったHTTP GETに応じ、HTML・Javascript・CSSなどを第１クライアント５１に対して送信する。  
第３クライアント５３によっても同様にWebアプリケーション取得が行なえる。
【００８０】
次に、Webアプリケーション取得後の第１OFSW２１のデータについて説明する。  
図９は、第１の実施形態における通信システムの、Webアプリケーション取得後の第１OFSWのフローテーブルの構成例を表形式で示す図である。  
図９に示したフローテーブルは、図８に示した初期データに対して、第１クライアント５１とWebサーバ１０との通信を許可するための追加、および第１パケット中継OFC４１とWebサーバ１０(ネットワークコントローラ１２)の通信を許可するための追加がなされている。
【００８１】
次に、Webアプリケーション取得後の第２OFSW２２が管理するデータについて説明する。  
図１０は、第１の実施形態における通信システムの、Webアプリケーション取得後の第２OFSWのフローテーブルの構成例を表形式で示す図である。  
図１０に示したフローテーブルは、第３クライアント５３とWebサーバ１０との通信を許可するための設定（初期データが無い状態からの追加）がなされている。
【００８２】
次に、Webアプリケーション取得後の第１パケット中継OFC４１のデータについて説明する。  
Webアプリケーション取得後の第１パケット中継OFC４１は、使用済みポート番号（例えば30841と43256など）を管理する。
【００８３】
次に、Webアプリケーション取得後の第２パケット中継OFC４１のデータについて説明する。  
Webアプリケーション取得後の第２パケット中継OFC４２は、使用済みポート番号（例えば46927など）を管理する。
【００８４】
次に、SDP OFFERの送信について説明する。  
第１クライアント５１は第３クライアント５３との間でリアルタイムUDPデータグラム通信を開始するために、シグナリングチャネル１１を通じて第３クライアント５３へSDP OFFERを送信する。
【００８５】
次に、SDP OFFERの内容について説明する。  
SDPの記述例は以下の通りである。ここではa=candidate以外の属性の記述は省略する。
{
“sessionId” :” 1jiifa9783” ,
“SDP”:”…\n\ra=candidate:1 1 UDP 1854697382 192.168.0.1 52345 typ host\n\r…”,
…
}
「\n\r」は、改行文字（属性の区切りを表す）である。
【００８６】
次に、第１クライアント５１から送信されたSDP OFFERの解析について説明する。図１１、図１２、図１３は、第１の実施形態における通信システムによるSDP OFFERの解析に伴うリアルタイムUDPデータグラム通信制御テーブルのレコードの作成について説明する図である。  
SDP OFFERを受け取ったネットワークコントローラ１２は、SDP OFFER解析機能を実行して、SDP OFFERに含まれるセッションIDからリアルタイムUDPデータグラム通信制御テーブルのレコードを作成する。このレコードは、セッションＩＤ、OFFER IP アドレス、OFFER ポート、ANSWER IP アドレス、ANSWER ポート、OFFER グローバル IP アドレス、OFFER グローバルポート、ANSWER IP アドレス、ANSWER グローバルポートを含み、図１１に示すように、このレコードのセッションＩＤの値に、SDP OFFERに含まれるセッションIDが設定される。
【００８７】
ネットワークコントローラ１２は、SDP OFFERを含んだパケットの送信元IPアドレス（ここでは33.33.0.2）をレコードのOFFER グローバル IPアドレスの値に設定する（第１の設定手段による設定）。
【００８８】
第１の実施形態では、SDP OFFERに第１クライアント５１が使用する候補アドレスが含まれる。図１２に示すように、ネットワークコントローラ１２は、レコードのOFFER IP アドレス、OFFER ポートの値に、候補アドレスで示されるアドレスとポート番号（ここでは192.168.0.1と52345）を設定する（第１の設定手段による設定）。
【００８９】
ネットワークコントローラ１２は、候補アドレスを、SDP OFFERに含まれる”a=candidate”属性から取得する。候補アドレスとして有効なアドレスは、ネットワークコントローラ１２が所持するパケット中継OFC-IPアドレスマッピングテーブルに所属するもののみである。この場合では、候補アドレスにおけるIPアドレス「192.168.0.1」は、パケット中継OFC-IPアドレスマッピングテーブルにおける、第１パケット中継OFC４１のローカルネットワークアドレスに含まれる。
【００９０】
次に、ネットワークコントローラ１２は、0〜65535の中から任意の数値を一つ選び（こここでは3456）、図１３に示すように、リアルタイムUDPデータグラム通信制御テーブルのOFFERグローバルポートの値に書き込む（第１の設定手段による設定）。
【００９１】
ネットワークコントローラ１２は、SDP OFFERを第３クライアント５３へ転送する（第１の伝送手段による伝送）。  
第３クライアント５３は、第１クライアント５１からネットワークコントローラ１２を介して受け取ったSDP OFFERから第１クライアント５１向けのSDP ANSWERを生成してネットワークコントローラ１２へ送信する。
【００９２】
SDP ANSWERの記述例は以下の通りである。ここでは、SDPはa=candidate以外の属性の記述は省略する。
{
“sessionId” :” 1jiifa9783” ,
“SDP”:”…\n\ra=candidate:1 1 UDP 1854697382 192.168.1.1 1111 typ host\n\r…”,
…
}
次に、SDP ANSWERの解析について説明する。図１４、図１５、図１６は、第１の実施形態における通信システムによるSDP ANSWERの解析に伴うリアルタイムUDPデータグラム通信制御テーブルのレコードの作成について説明する図である。  
SDP ANSWERを受け取ったネットワークコントローラ１２は、SDP ANSWER解析機能を実行して、SDP ANSWERに含まれるセッションIDと同じセッションIDを持つリアルタイムUDPデータグラム通信制御テーブルのレコードを検索する。
【００９３】
図１４に示すように、ネットワークコントローラ１２は、SDP ANSWERを含んだパケットの送信元IP（ここでは33.3.0.3）を、そのレコードのANSWER グローバル IPアドレスに設定する（第２の設定手段による設定）。
【００９４】
第１の実施形態では、SDP ANSWERに第３クライアント５３が使用する候補アドレスが含まれる。図１５に示すように、ネットワークコントローラ１２は、レコードのANSWER IP アドレス、ANSWER ポートの値に、候補アドレスで示されるアドレスとポート番号（ここでは192.168.1.1と1111）を設定する（第２の設定手段による設定）。
【００９５】
ネットワークコントローラ１２は、候補アドレスを、SDPに含まれる”a=candidate”属性から取得する。候補アドレスとして有効なアドレスは、ネットワークコントローラ１２が所持するパケット中継OFC-IPアドレスマッピングテーブル」に所属するもののみである。この場合では、候補アドレスにおけるIPアドレス「192.168.1.1」は、第２パケット中継OFC４２のローカルネットワークアドレスに含まれる。
【００９６】
ネットワークコントローラ１２は、0〜65535の中から任意の数値を一つ選び（ここでは2456）、図１６に示すように、リアルタイムUDPデータグラム通信制御テーブルのANSWERグローバルポートに書き込む（第２の設定手段による設定）。  
ネットワークコントローラ１２は、SDP ANSWERを第１クライアント５１へ転送する（第２の伝送手段による伝送）。
【００９７】
次に、リアルタイムUDPデータグラム通信開始要請について説明する。  
ネットワークコントローラ１２は、前述のSDP ANSWER解析機能により、リアルタイムUDPデータグラム通信制御テーブルの１つのレコードの列がすべて埋まると、リアルタイムUDPデータグラム通信開始要請機能を呼び出す。
【００９８】
リアルタイムUDPデータグラム通信開始要請機能は、パケット中継OFCにリアルタイムUDPデータグラム通信開始要請を送信する。  
第１の実施形態では、リアルタイムUDPデータグラム通信開始要請は、第１パケット中継OFC４１、および、第２パケット中継OFC４２に対して送信される。  
この送信される内容は、リアルタイムUDPデータグラム通信制御テーブルの該当レコードからデータをコピーしたものである。
【００９９】
次に、リアルタイムUDPデータグラム通信開始について説明する。  
第１パケット中継OFC４１は、ネットワークコントローラ１２からリアルタイムUDPデータグラム通信開始要請を受信すると、リアルタイムUDPデータグラム通信開始機能を呼び出す。
【０１００】
図１７および図１８は、第１の実施形態における通信システムによる、フローテーブルのレコードの追加について説明する図である。  
第１パケット中継OFC４１が接続している第１OFSW２１のグローバルIPアドレスが、リアルタイムUDPデータグラム通信開始要請のOFFERグローバルIPアドレスと同一である場合、第１パケット中継OFC４１は、リアルタイムUDPデータグラム通信開始要請に含まれるデータを利用して、図１７に示すようなフローテーブルのレコードを追加する。
【０１０１】
ここで追加する第１のレコードは、条件部のプロトコル、送信元IP、送信元ポート、宛先IP、宛先ポート、入力・OFSWポートに、UDP、OFFER IPアドレス、OFFERポート、ANSWER IPアドレス、ANSWERポート、「※1」を１対１で対応させ、かつ、操作部の書き換え・送信元IP、書き換え・送信元ポート、書き換え・宛先IP、書き換え・宛先ポート、出力・OFSWポート）に、OFFERグローバルIPアドレス、OFFERグローバルポート、ANSWERグローバルIPアドレス、ANSWERグローバルポート、「※2」を１対１で対応させたものである。
【０１０２】
また、追加する第２のレコードは、条件部のプロトコル、送信元IP、送信元ポート、宛先IP、宛先ポート、入力・OFSWポートに、UDP、ANSWERグローバルIPアドレス、ANSWERグローバルポート、OFFERグローバルIPアドレス、OFFERグローバルポート、「※2」を１対で対応させ、かつ、操作部の書き換え・送信元IP、書き換え・送信元ポート、書き換え・宛先IP、書き換え・宛先ポート、出力・OFSWポート）に、ANSWER IPアドレス、ANSWERポート、OFFER IPアドレス、OFFERポート、「※1」を１対１で対応させたものである。
【０１０３】
図１７に示したレコードの「※１」は、OFFER IP アドレスとOFSWポート-クライアントIPアドレスマッピングテーブルのクライアントIPアドレスとが合致するレコードのOFSWポートの番号である。  
また、図１７に示したレコードの「※２」は、OFSWポートのうちOFFERグローバルIPアドレスがIPアドレスとして割り振られているポートの番号である。
【０１０４】
次に、第１パケット中継OFC４１がUDPデータグラム通信開始要請を受け取り、具体的な値が入ったフローテーブルのレコードを作成したときの例を説明する。  
第１パケット中継OFC４１が接続している第１OFSW２１のグローバルIPアドレスは、UDPデータグラム通信開始要請のOFFERグローバルIPアドレスと同一であるので、第１パケット中継OFC４１は、図１８に示すようなフローテーブルのレコードを第１OFSW４１のフローテーブルへ追加する。
【０１０５】
ここでは、１つ目に追加されるレコードの条件部において、第１クライアント５１が送信元に、第３クライアント５３が宛先に設定されたときに、操作部において、第１OFSW２１が書き換え・送信元に、第２OFSW２２が書き換え・宛先に設定される。
【０１０６】
また、２つ目に追加されるレコードの条件部において、第２OFSW２２が送信元に、第１OFSW２１が宛先に設定されたときに、操作部において、第３クライアント５３が書き換え・送信元に、第１クライアント５１が書き換え・宛先に設定される（第３の設定手段による設定）。
【０１０７】
図１９は、第１の実施形態における通信システムによる、リアルタイムUDPデータグラム通信開始後のフローテーブルの構成例を表形式で説明する図である。  
図１９では、第１パケット中継OFC４１がリアルタイムUDPデータグラム通信開始機能を実行後の第１OFSW２１のフローテーブルを示す。図９に示したテーブルと比較して、図１９に示したテーブルでは、プロトコルがUDPである２行分のレコードが追加されている。
【０１０８】
第２パケット中継OFC４２は、ネットワークコントローラ１２からリアルタイムUDPデータグラム通信開始要請を受信すると、第１パケット中継OFC４１と同様にリアルタイムUDPデータグラム通信開始機能を実行する。
【０１０９】
図２０および図２１は、第１の実施形態における通信システムによる、フローテーブルのレコードの追加について説明する図である。  
第２パケット中継OFC４２が接続している第２OFSW２２のグローバルIPアドレスが、リアルタイムUDPデータグラム通信開始要請のANSWERグローバルIPアドレスと同一の場合、第２パケット中継OFC４２は、リアルタイムUDPデータグラム通信開始要請に含まれるデータを利用して、図２０に示すようなフローテーブルのレコードを追加する。
【０１１０】
ここで追加する第１のレコードは、条件部のプロトコル、送信元IP、送信元ポート、宛先IP、宛先ポート、入力・OFSWポートに、UDP、ANSWER IPアドレス、ANSWERポート、OFFER IPアドレス、OFFERポート、「※1」を１対１で対応させ、かつ、操作部の書き換え・送信元IP、書き換え・送信元ポート、書き換え・宛先IP、書き換え・宛先ポート、出力・OFSWポート）に、ANSWERグローバルIPアドレス、ANSWERグローバルポート、OFFERグローバルIPアドレス、OFFERグローバルポート、「※2」を１対１で対応させたものである。
【０１１１】
また、追加する第２のレコードは、条件部のプロトコル、送信元IP、送信元ポート、宛先IP、宛先ポート、入力・OFSWポートに、UDP、OFFERグローバルIPアドレス、OFFERグローバルポート、ANSWERグローバルIPアドレス、ANSWERグローバルポート、「※2」を１対で対応させ、かつ、操作部の書き換え・送信元IP、書き換え・送信元ポート、書き換え・宛先IP、書き換え・宛先ポート、出力・OFSWポート）に、OFFER IPアドレス、OFFERポート、ANSWER IPアドレス、ANSWERポート、「※1」を１対１で対応させたものである。
【０１１２】
図２０に示した「※1」は、ANSWER IP アドレスとOFSWポート-クライアントIPアドレスマッピングテーブルのクライアントIPアドレスとが合致するレコードのOFSWポートの番号である。  
図２０に示した「※2」は、OFSWポートのうちANSWERグローバルIPアドレスがIPアドレスとして割り振られているポートの番号である。
【０１１３】
次に、第２パケット中継OFC４２がUDPデータグラム通信開始要請を受け取り、具体的な値が入ったフローテーブルのレコードを作成したときの例を説明する。  
第２パケット中継OFC４２が接続している第２OFSW２２のグローバルIPアドレスは、UDPデータグラム通信開始要請のANSWERグローバルIPアドレスと同一であるので、第２パケット中継OFC４２は、図２１に示すようなフローテーブルのレコードを第２OFSW２２のフローテーブルへ追加する。
【０１１４】
ここでは、１つ目に追加されるレコードの条件部において、第３クライアント５３が送信元に、第１クライアント５１が宛先に設定されたときに、操作部において、第２OFSW２２が書き換え・送信元に、第１OFSW２１が書き換え・宛先に設定される。
【０１１５】
また、２つ目に追加されるレコードの条件部において、第１OFSW２１が送信元に、第２OFSW２２が宛先に設定されたときに、操作部において、第１クライアント５１が書き換え・送信元に、第３クライアント５３が書き換え・宛先に設定される（第４の設定手段による設定）。
【０１１６】
図２２は、第１の実施形態における通信システムによる、リアルタイムUDPデータグラム通信開始後のフローテーブルの構成例を表形式で説明する図である  
図２２では、第２パケット中継OFC４２がリアルタイムUDPデータグラム通信開始機能を実行後の第２OFSW２２のフローテーブルを示す。図１０に示したテーブルと比較して、図２２に示したテーブルでは、プロトコルがUDPである２行分のレコードが追加されている。
【０１１７】
以上の処理を実行することで、第１クライアント５１ (192.168.0.1: 52345)から第３クライアント５３(192.168.1.1: 1111)へWebRTCによるリアルタイムUDPデータグラム通信を行なうことが可能になった。
【０１１８】
次に、複数のリアルタイムUDPデータグラム通信について説明する。  
ここでは、前述のリアルタイムUDPデータグラム通信がなされている状態で、第４クライアント５４ (192.168.1.2: 38976)から第２クライアント５２(192.168.0.2:21597)へリアルタイムUDPデータグラム通信を新たに実行することについて説明する。
【０１１９】
第４クライアント５４ (192.168.1.2: 38976)から第２クライアント５２(192.168.0.2:21597)へのリアルタイムUDPデータグラム通信は、第１クライアント５１ (192.168.0.1: 52345)から第３クライアント５３(192.168.1.1: 1111)へのリアルタイムUDPデータグラム通信と同様のステップで各装置が動作する。
【０１２０】
パケット中継OFCが生成するOFSWのグローバルIPアドレスと紐づける送信元ポート・宛先ポートとして使用するポート番号は、以下の通りになる。  
第１OFSW２１のグローバルIPアドレスと紐づける送信元ポート・宛先ポートとして使用するポート番号：59024
第２OFSW２２のグローバルIPアドレスと紐づける送信元ポート・宛先ポートとして使用するポート番号：19824
SDP OFFERおよびSDP ANSWERに含まれるセッションIDは、c98uieopfとする。
【０１２１】
図２３は、第１の実施形態における通信システムによる複数のリアルタイムUDPデータグラム通信に対応するリアルタイムUDPデータグラム通信制御テーブルの構成例を表形式で説明する図である。  
図２３に示した例では、第４クライアント５４から第２クライアント５２へのリアルタイムUDPデータグラム通信のために、図１６に示したリアルタイムUDPデータグラム通信制御テーブルに対して、セッションID「c98uieopf」に関わる行が追加される。
【０１２２】
図２４、図２５は、第１の実施形態における通信システムによる複数のリアルタイムUDPデータグラム通信に対応するフローテーブルの構成例を表形式で説明する図である。  
図２４に示した例では、図１９に示した、第１OFSW２１が所持するフローテーブルに対して、第４クライアント５４から第２クライアント５２へのリアルタイムUDPデータグラム通信のための行（下から２行目、３行目）が追加される。
【０１２３】
また、図２５に示した例では、図２２に示した、第２OFSW２２が所持するフローテーブルに対して、第４クライアント５４から第２クライアント５２へのリアルタイムUDPデータグラム通信のための行（下から２行分）が追加される。
【０１２４】
以上のように、第１の実施形態では、リアルタイムUDPデータグラム通信において、TURNサーバを経由することがないので、クライアント装置間の通信を行うときの通信遅延を低減できる。つまりUDPデータグラム通信のリアルタイム性を向上させることができる。
【０１２５】
上記のように、リアルタイムUDPデータグラム通信にTURNサーバを使用しないので、例えば、第１クライアント５１と第３クライアント５３が直接通信できたときの通信遅延時間が10msであった場合は、リアルタイムUDPデータグラム通信の通信遅延時間が同じ10msとなる。  
また、クライアントによりSDPを運ぶパケットを暗号化する場合に、パケットを復号化する仕組みをネットワークコントローラ以外の中継装置に設ける必要がなくなる。  
また、クライアントの組が複数であってもリアルタイムUDPデータグラム通信が可能である。
【０１２６】
（第２の実施形態）
次に、第２の実施形態について説明する。この第２の実施形態では、第１の実施形態と同じく、候補アドレスをSDP OFFERやSDP ANSWERに含むリアルタイムUDPデータグラム通信(WebRTC)について説明する。
【０１２７】
第１の実施形態に対し、第２の実施形態では、ネットワークコントローラ１２とパケット中継OFCとの間で、ポート確保要請とポート確保情報のメッセージのやり取りが発生する。
【０１２８】
図２６は、第２の実施形態における通信システムの機能構成例を示す図である。  
第１の実施形態と比較して、第２の実施形態におけるネットワークコントローラ１２は、ポート確保情報受信機能をさらに有する。  
第１の実施形態と比較して、第２の実施形態における第１パケット中継OFC４１および第２パケット中継OFC４２は、ポート確保要請受信機能をさらに有する。
【０１２９】
図２７は、第２の実施形態における通信システムによる処理の手順の一例を示すシーケンス図である。  
第１の実施形態で説明した処理に加え、第２の実施形態では、ネットワークコントローラ１２は、リアルタイムUDPデータグラム通信で使用するOFSWのグローバルIPアドレスと組になるポート番号を確保するために、パケット中継OFCに対してポート確保要請を送信する。パケット中継OFCは、ポート確保要請を受信すると確保したポート番号をネットワークコントローラ１２に対してパケット確保情報として知らせるとともに、使用済みポート番号へその値を追加する。ポート確保要請を受信したネットワークコントローラ１２は、リアルタイムUDPデータグラム通信制御テーブルのレコードを変更する。
【０１３０】
次に、第２の実施形態における処理手順について説明する。  
第２の実施形態では、第１の実施形態で説明した、Ｗｅｂサーバへのアクセス、Ｗｅｂアプリケーションの取得、SDP OFFERの送信がなされる。
【０１３１】
次に、第２の実施形態における、第１クライアント５１から送信されたSDP OFFERの解析について説明する。  
第１の実施形態と同様に、第２の実施形態では、SDP OFFERに第１クライアント５１が使用する候補アドレスが含まれる。そこで、ネットワークコントローラ１２は、レコードのOFFER IP アドレス、OFFER ポートの値に、候補アドレスで示されるアドレスとポート番号（ここでは192.168.0.1と52345）を設定する。
【０１３２】
この設定のあと、ネットワークコントローラ１２は、ポート確保要請を送信するパケット中継OFCを特定するために、SDP OFFERを含んだパケット送信元IPアドレスと同一のIPアドレスを持つレコードをパケット中継OFC-IPアドレスマッピングテーブルをから探し出す。
【０１３３】
本実施形態では、第１パケット中継OFC４１のレコードが該当する。ネットワークコントローラ１２は、SDP OFFERに含まれるセッションIDを含んだポート確保要請を生成して第１パケット中継OFC４１に送信する。ここで送信されるセッションIDは「1jiifa9783」であるとする。  
ネットワークコントローラ１２は、SDP OFFERを第３クライアント５３へ転送する。
【０１３４】
次にSDP ANSWERの解析について説明する。図２８、図２９は、第２の実施形態における通信システムによるSDP ANSWERの解析に伴うリアルタイムUDPデータグラム通信制御テーブルのレコードの作成について説明する図である。
【０１３５】
第２の実施形態では、SDP ANSWERの解析において第１の実施形態と同様にレコードの検索、ANSWERグローバルIPアドレスの設定、候補アドレスの設定がなされる。ただし、この時点では、該当のレコードにOFFERグローバルポートは設定されないので、リアルタイムUDPデータグラム通信制御テーブルのレコードは、図２８、図２９の順で作成される。
【０１３６】
ネットワークコントローラ１２は、ポート確保要請を送信するパケット中継OFCを特定するために、SDP ANSWERを含んだパケット送信元IPアドレスと同一のIPアドレスを持つレコードをパケット中継OFC-IPアドレスマッピングテーブルをから探し出す。本実施形態では、第２パケット中継OFC４２のレコードが該当する。
【０１３７】
ネットワークコントローラ１２は、SDP ANSWERに含まれるセッションIDを含んだポート確保要請を生成して第２パケット中継OFC４２に対して送信する。ここで送信されるセッションIDは上記の「1jiifa9783」であるとする。  
ネットワークコントローラ１２は、SDP ANSWERを第１クライアント５１へ転送する。
【０１３８】
次に、ポート確保要請受信について説明する。  
第１パケット中継OFC４１は、ネットワークコントローラ１２からポート確保要請を受信するとポート確保要請受信機能を呼び出す。
【０１３９】
第１パケット中継OFC４１は、使用済みポート番号に含まれない数値(0〜65535)をランダムに生成して使用済みポート番号に追加する。ここで生成する値は、3456であるとする。
【０１４０】
第１パケット中継OFC４１は、生成したランダムの数値(3456)を対象ポート番号に、ポート確保要請に含まれるセッションＩＤをセッションIDに、第１OFSW２１のグローバルIPアドレスをグローバルIPアドレスにそれぞれ指定したポート確保情報を生成し、生成したポート確保情報をネットワークコントローラ１２に対して送信する。  
ここでは、第１パケット中継OFC４１の使用済みポート番号は、30841、43256、3456であるとする。
【０１４１】
図３０および図３１は、第２の実施形態における通信システムにより送信されるポート確保情報の構成例を表形式で示す図である。  
第１パケット中継OFC４１がネットワークコントローラ１２に送信するポート確保情報は、図３０に示すように、セッションID「1jiifa9783」、グローバルIPアドレス「33.0.0.2」、対象ポート番号「3456」を含む。
【０１４２】
ネットワークコントローラ１２からポート確保要請を受信すると、第２パケット中継OFC４２は、第１パケット中継OFC４１と同様に、ポート確保要請受信機能を実行する。  
ポート番号としてランダムに生成される値は2456であるとする。
【０１４３】
第２パケット中継OFC４２の使用済みポート番号は、46927、2456であるとする。  
第２パケット中継OFC４２がネットワークコントローラ１２に送信するポート確保情報は、図３１に示すように、セッションID「1jiifa9783」、グローバルIPアドレス「33.0.0.2」、対象ポート番号「2456」を含む。
【０１４４】
次に、ポート確保情報の受信について説明する。  
ネットワークコントローラ１２は、第１パケット中継OFC４１からポート確保情報を受信するとポート確保情報受信機能を呼び出す。
【０１４５】
ネットワークコントローラ１２は、ポート確保情報を受信すると、ポート確保情報に含まれるセッションIDと同じセッションIDを持つリアルタイムUDPデータグラム通信制御テーブルのレコードを検索する。
【０１４６】
ポート確保情報のグローバルIPアドレスがOFFERグローバルIPアドレスと同一の場合、ネットワークコントローラ１２は、OFFERグローバルポートにポート確保情報の対象ポート番号の値を設定する。
【０１４７】
ポート確保情報のグローバルIPアドレスがANSWERグローバルIPアドレスと同一の場合、ネットワークコントローラ１２は、ANSWERグローバルポートにポート確保情報の対象ポート番号の値を設定する。
【０１４８】
第１パケット中継OFC４１から受信したポート確保情報のグローバルIPアドレスは、OFFERグローバルアドレスIPアドレスと一致するので、OFFERグローバルポートに第１パケット中継OFC４１から受信したポート確保情報の対象ポート番号の値を設定する。  
この設定の時点では、該当のレコードは、図１５に示したように設定される。
【０１４９】
ネットワークコントローラ１２は、第２パケット中継OFC４２からポート確保情報を受信すると、第１パケット中継OFC４１からポート確保情報を受信したときと同様にポート確保情報受信機能を呼び出す。
【０１５０】
第２パケット中継OFC４２から受信したポート確保情報のグローバルIPアドレスは、ANSWERグローバルアドレスIPアドレスと一致するので、ANSWERグローバルポートに第２パケット中継OFC４２から受信したポート確保情報の対象ポート番号の値を設定する。この設定の時点では、該当のレコードは、図１６に示したように設定される。  
図１６に示すように、レコードを構成する情報がすべて埋まった場合、ネットワークコントローラ１２は、リアルタイムUDPデータグラム通信開始要請機能を呼び出す。
【０１５１】
次に、第２の実施形態において説明した各処理の非同期実行について説明する。  
この第２の実施形態で、ネットワークコントローラ１２の機能が呼び出される順序は、「SDP OFFER 解析機能」→「SDP ANSWER 解析機能」→「(第１パケット中継OFC４１の)ポート確保情報受信機能」→「(第２パケット中継OFC４２の)ポート確保情報受信機能」であると説明したが、これに限らず、各装置で送受信するメッセージの到着順序により、「SDP OFFER 解析機能」より後に呼び出される機能は、呼び出し順序が前後しても良い。  
ただし、「SDP ANSWER 解析機能」より後に「(第２パケット中継OFC４２の)ポート確保情報受信機能」が呼び出されることを要する。
【０１５２】
機能の呼び出し順序の例としては、「SDP OFFER解析機能」→「(第１パケット中継OFC４１の)ポート確保情報受信機能」 → 「SDP ANSWER 解析機能」→ 「(第２パケット中継OFC４２の)ポート確保情報受信機能」や、「SDP OFFER 解析機能」→ 「SDP ANSWER 解析機能」→ 「(第２パケット中継OFC４２の)ポート確保情報受信機能」 →「(第１パケット中継OFC４１の)ポート確保情報受信機能」が存在する。  
以下、第１の実施形態と同様にリアルタイムUDPデータグラム通信開始および複数のリアルタイムUDPデータグラム通信開始を行なうことができる。
【０１５３】
次に、複数のリアルタイムUDPデータグラム通信により変更されたデータについて説明する。複数のリアルタイムUDPデータグラム通信により変更された、ネットワークコントローラ１２が所持するリアルタイムUDPデータグラム通信制御テーブル、第１OFSW２１および第２OFSW２２が所持するフローテーブルは、図２３から図２５に示した構成と同様である。
【０１５４】
また、第１パケット中継OFC４１における、複数のリアルタイムUDPデータグラム通信により変更された使用済みポート番号は、30841、43256、3456、59024である。  
また、第２パケット中継OFC４２における、複数のリアルタイムUDPデータグラム通信により変更された使用済みポート番号は、46927、2456、19824である。
【０１５５】
以上のように、第２の実施形態では、ネットワークコントローラ１２から各パケット中継OFCとの間でポート確保要請を行ない、この要請にしたがって、使用済みポート番号に含まれないポート番号を生成しても、第１の実施形態と同様の効果が得られる。
【０１５６】
（第３の実施形態）
次に、第３の実施形態について説明する。第３の実施形態では、候補アドレスをSDP OFFERやSDP ANSWERに含まず、SDP CANDIDATEにより、候補アドレスを通信相手となるクライアントに通知するWebRTCを例に挙げる。候補アドレスの通知方法以外は、第２の実施形態と同様である。
【０１５７】
図３２は、第３の実施形態における通信システムの機能構成例を示す図である。  
第２の実施形態と比較して、第３の実施形態におけるネットワークコントローラ１２は、SDP CANDIDATE解析機能をさらに有する。
【０１５８】
図３３は、第３の実施形態における通信システムによる処理の手順の一例を示すシーケンス図である。  
第２の実施形態で説明した処理に加え、第３の実施形態では、ネットワークコントローラ１２と各クライアントの間でSDP CANDIDATEのやりとりが生ずる。
【０１５９】
次に、第３の実施形態における処理手順について説明する。  
まず、第３の実施形態では、第１の実施形態で説明した、Ｗｅｂサーバへのアクセス、Ｗｅｂアプリケーションの取得、SDP OFFERの送信がなされる。
【０１６０】
ここで、第３の実施形態におけるSDP OFFERの内容について説明する。  
SDPの記述例は以下の通りである。上記のように、SDP OFFERは候補アドレスを含まない。ここではa=candidate以外の属性の記述は省略する。
{
“sessionId” :” 1jiifa9783” ,
“SDP”:”・・・”
・・・
}
次に、SDP OFFERの解析について説明する。  
第２の実施形態と同様に、第３の実施形態では、SDP OFFERを受け取ったネットワークコントローラ１２は、SDP OFFER解析機能を実行して、SDP OFFERに含まれるセッションIDからリアルタイムUDPデータグラム通信制御テーブルのレコードを作成する。
【０１６１】
ネットワークコントローラ１２は、SDP OFFERを含んだパケットの送信元IPアドレス（ここでは33.33.0.2）をレコードのOFFER グローバル IPアドレスの値に設定する。この設定の時点では、テーブルは、図１１に示した構成となる。
【０１６２】
第３の実施形態では、SDP OFFERに第１クライアント５１が使用する候補アドレスは含まれない。したがって、この時点では、レコードのOFFER IP アドレス、OFFER ポートの値に、候補アドレスで示されるアドレスとポート番号は設定されない。
【０１６３】
次に、第２の実施形態と同様に、ポート確保要請の送信がなされ、SDP OFFERが第３クライアント５３へ転送され、SDP ANSWERが第１クライアント５１へ送信される。  
次に、SDP ANSWERの内容について説明する。  
SDPの記述例は以下の通りである。上記のように、SDP OFFERは候補アドレスを含まないので、SDP ANSWERも候補アドレスを含まない。ここではa=candidate以外の属性の記述は省略する。
{
“sessionId” :” 1jiifa9783”,
“SDP”:”・・・”
・・・
}
次に、第２の実施形態と同様に、SDP ANSWERを受け取ったネットワークコントローラ１２は、SDP ANSWER解析機能を実行して、SDP ANSWERに含まれるセッションIDと同じセッションIDを持つリアルタイムUDPデータグラム通信制御テーブルのレコードを検索する。
【０１６４】
図３４は、第３の実施形態における通信システムによるSDP ANSWERの解析に伴うリアルタイムUDPデータグラム通信制御テーブルのレコードの作成について説明する図である。図３４に示すように、ネットワークコントローラ１２は、SDP ANSWERを含んだパケットの送信元IP（ここでは33.3.0.3）を、そのレコードのANSWER グローバル IPアドレスに設定する。
【０１６５】
第３の実施形態では、SDP ANSWERに第３クライアント５３が使用する候補アドレスは含まれない。よって、この時点では、レコードのANSWER IP アドレス、ANSWER ポートの値に、候補アドレスで示されるアドレスとポート番号（ここでは192.168.1.1と1111）は設定されない。  
次に、第２の実施形態と同様に、ポート確保要請の送信がなされ、SDP ANSWERが第１クライアント５１へ転送される。
【０１６６】
図３５および図３６は、第３の実施形態における通信システムによるポート確保情報の受信に伴うリアルタイムUDPデータグラム通信制御テーブルのレコードの作成について説明する図である。
【０１６７】
次に、第２の実施形態と同様に、ポート確保要請の受信、およびポート確保情報の受信がなされる。ただし、上記のように、SDPに候補アドレスは含まれないので、図３５に示すように、レコード上のOFFERグローバルIPアドレス、OFFERグローバルポート、ANSWERグローバルIPアドレスに値の設定がなされた時点では、残りのOFFER IPアドレス、OFFERポート、ANSWER IPアドレス、ANSWERポートには値は設定されていない。
【０１６８】
また、図３６に示すように、レコード上のOFFERグローバルポートに、さらに値の設定がなされた時点でも、残りのOFFER IPアドレス、OFFERポート、ANSWER IPアドレス、ANSWERポートには値は設定されていない。
【０１６９】
次に、SDP CANDIDATEの送信について説明する。  
第１クライアント５１は、第３クライアント５３に対して候補アドレスを通知するために、シグナリングチャネルを通じて第３クライアント５３へSDP CANDIDATEを送信する。
【０１７０】
次に、SDPの内容について説明する。  
SDPの記述例は以下の通りである。ここではa=candidate以外の属性の記述は省略する。
{
“sessionId” :” 1jiifa9783” ,
“SDP”:”a=candidate:1 1 UDP 1854697382 192.168.0.1 52345 typ host”,
・・・
}
次に、SDP CANDIDATEの解析について説明する。  
図３７は、第３の実施形態における通信システムによるSDP CANDIDATEの解析に伴うリアルタイムUDPデータグラム通信制御テーブルのレコードの作成について説明する図である。  
ネットワークコントローラは、SDP CANDIDATEを受信すると、SDP CANDIDATE受信機能を実行して、SDP CANDIDATEに含まれるセッションIDと同じセッションIDを持つリアルタイムUDPデータグラム通信制御テーブルのレコードを検索する。
【０１７１】
図３７に示すように、ネットワークコントローラは、SDP CANDIDATEから候補アドレスを取り出し、上記のリアルタイムUDPデータグラム通信制御テーブルのレコードに対して値を書き込む。
【０１７２】
SDP CANDIDATEの送信元IPアドレスがOFFERグローバルIPアドレスと同一の場合、ネットワークコントローラ１２は、OFFER IP アドレス、および、OFFERポートに値を設定する。
【０１７３】
SDP CANDIDATEの送信元IPアドレスがANSWERグローバルIPアドレスと同一の場合、ネットワークコントローラ１２は、ANSWERグローバルポートにポート確保上の対象ポート番号の値を設定する。
【０１７４】
候補アドレスは、SDPに含まれる”a=candidate”属性から取得される。候補アドレスとして有効なアドレスは、ネットワークコントローラ１２が所持する「パケット中継OFC-IPアドレスマッピングテーブル」に所属するもののみである。この場合では、「192.168.0.1」は、第１パケット中継OFC４１のローカルネットワークアドレスに含まれる。  
第３クライアント５３は、第１クライアント５１に対して候補アドレスを通知するために、シグナリングチャネルを通じて第３クライアント５３へSDP CANDIDATEを送信する。
【０１７５】
次に、この送信されるSDPの内容について説明する。  
SDPの記述例は以下の通りである。ここではa=candidate以外の属性の記述は省略する。
{
“sessionId” :” 1jiifa9783” ,
“SDP”:”a=candidate:1 1 UDP 1854697382 192.168.1.1 1111 typ host”,
・・・
}
次に、SDP CANDIDATEの解析について説明する。  
ネットワークコントローラ１２は、SDP CANDIDATEを受信すると、SDP CANDIDATE解析機能を実行して、第１クライアント５１から第３クライアント５３に送信されたSDP CANDIDATEと同様に処理をする。
【０１７６】
候補アドレスは、SDPに含まれる”a=candidate”属性から取得される。候補アドレスとして有効なアドレスは、ネットワークコントローラ１２が所持するパケット中継OFC-IPアドレスマッピングテーブルに所属するもののみである。この場合では、「192.168.1.1」は、第２パケット中継OFC４２のローカルネットワークアドレスに含まれる。  
図１６に示すように、レコードを構成する情報がすべて埋まった場合、ネットワークコントローラ１２は、リアルタイムUDPデータグラム通信開始要請機能を呼び出す。
【０１７７】
次に、第３の実施形態で説明した各処理の非同期実行について説明する。  
この実施形態で、ネットワークコントローラ１２の機能が呼び出される順序は、「SDP OFFER 解析機能」→「SDP ANSWER 解析機能」→「(第１パケット中継OFC４１の)ポート確保情報受信機能」 →「(第２パケット中継OFC４２の)ポート確保情報受信機能」→「(第１クライアント５１から第３クライアント５３へ送信された)SDP CANDIDATE 解析機能」→「(第３クライアント５３から第１クライアント５１へ送信された)SDP CANDIDATE 解析機能」であると説明したが、これに限らず、各装置で送受信するメッセージの到着順序により、「SDP OFFER 解析機能」より後に呼び出される機能は、呼び出し順序が前後しても良い。
【０１７８】
ただし、「SDP ANSWER 解析機能」より後に「(第２パケット中継OFC４２の)ポート確保情報受信機能」と「(第３クライアント５３から第１クライアント５１へ送信された)SDP CANDIDATE 解析機能」が呼び出される必要がある。
【０１７９】
呼び出し順序の例としては、 「SDP OFFER 解析機能」→「(第１パケット中継OFC４１の)ポート確保情報受信機能」 → 「(第１クライアント５１から第３クライアント５３へ送信された)SDP CANDIDATE 解析機能」→ 「SDP ANSWER 解析機能」→ 「(第３クライアント５３から第１クライアント５１へ送信された)SDP CANDIDATE 解析機能」→ 「(第２パケット中継OFC４２の)ポート確保情報受信機能」や、 「SDP OFFER 解析機能」→ 「SDP ANSWER 解析機能」→ 「(第２パケット中継OFC４２の)ポート確保情報受信機能」 →「(第１パケット中継OFC４１の)ポート確保情報受信機能」 →「(第３クライアント５３から第１クライアント５１へ送信された)SDP CANDIDATE 解析機能」→ 「(第１クライアント５１から第３クライアント５３へ送信された)SDP CANDIDATE 解析機能」などが存在する。  
以降は、第２の実施形態と同様にリアルタイムUDPデータグラム通信がなされる。  
以上のように、第３の実施形態では、候補アドレスをSDP OFFERやSDP ANSWERに含めずに、SDP CANDIDATEに含めるようにしても、第１の実施形態と同様の効果が得られる。
【０１８０】
（第４の実施形態）
次に、第４の実施形態について説明する。この第４の実施形態では、リアルタイムUDPデータグラム通信の遮断について説明する。  
ここでは、第１乃至第３の実施形態で説明した複数のリアルタイムUDPデータグラム通信がされ、これらの通信のうち、第１クライアント５１と第３クライアント５３のリアルタイムUDPデータグラム通信を遮断する例について説明する。
【０１８１】
図３８は、第４の実施形態における通信システムの機能構成例を示す図である。  
第３の実施形態と比較して、第４の実施形態におけるネットワークコントローラ１２は、リアルタイムUDPデータグラム通信遮断要請機能、リアルタイムUDPデータグラム通信終了検知機能をさらに有する。また、各パケット中継OFCは、リアルタイムUDPデータグラム通信遮断機能をさらに有する。
【０１８２】
ネットワークコントローラ１２は、リアルタイムUDPデータグラム通信終了メッセージ（クライアントからの、通信の終了の要請）を受信すると、通信を終了するリアルタイムUDPデータグラム通信制御テーブルのレコードを削除し、リアルタイムUDPデータグラム通信遮断要請をパケット中継OFCに送信する。リアルタイムUDPデータグラム通信遮断要請を受け取ったパケット中継OFCは、通信を終了するリアルタイムUDPデータグラム通信を実現するフローテーブルをOFSWから削除するとともに、使用済みポート番号から通信を終了するリアルタイムUDPデータグラム通信で用いていたポート番号を削除する。
【０１８３】
図３９は、第４の実施形態における通信システムによる処理の手順の一例を示すシーケンス図である。  
第３の実施形態で説明した処理に加え、第４の実施形態では、クライアントからネットワークコントローラ１２にリアルタイムUDPデータグラム通信終了メッセージが送られ、
ネットワークコントローラ１２から各パケット中継OFCにリアルタイムUDPデータグラム通信遮断要請が送られ、各パケット中継OFCは、各OFSWに対してフローテーブル削除を行なう。
【０１８４】
ここで、リアルタイムUDPデータグラム通信の遮断を実施する前の各装置における初期データについて説明する。  
ネットワークコントローラ１２におけるリアルタイムUDPデータグラム通信制御テーブル、およびパケット中継OFC-IPアドレスマッピングテーブルの構成は、図２３、図４に示した構成と同じとする。
【０１８５】
第１パケット中継OFC４１における使用済みポート番号は、第２の実施形態と同じく、30841、43256、3456、59024とする。  
第１パケット中継OFC４１における、OFSWポート-クライアントIPアドレスマッピングテーブルの構成は図６に示した構成と同じとする。
【０１８６】
第２パケット中継OFC４２における使用済みポート番号は、第２の実施形態と同じく、46927、2456、19824とする。  
第２パケット中継OFC４２における、OFSWポート-クライアントIPアドレスマッピングテーブルの構成は図７に示した構成と同じとする。  
第１OFSW２１におけるフローテーブルの構成は、図２４に示した構成と同じとする。第２OFSW２２におけるフローテーブルの構成は、図２５に示した構成と同じとする。
【０１８７】
次に、リアルタイムUDPデータグラム通信終了メッセージについて説明する。  
第１クライアント５１は、リアルタイムUDPデータグラム通信を終了するために、シグナリングチャネルを通じて第３クライアント５３へリアルタイムUDPデータグラム通信終了メッセージを送信する。このメッセージに含まれるセッションIDは、「1jiifa9783」とする。
【０１８８】
次に、ネットワークコントローラ１２による、リアルタイムUDPデータグラム通信の終了検知について説明する。  
リアルタイムUDPデータグラム通信終了メッセージを受け取ったネットワークコントローラ１２は、リアルタイムUDPデータグラム通信終了検知機能を呼び出す。  
ネットワークコントローラ１２は、リアルタイムUDPデータグラム通信終了メッセージに含まれるセッションIDと同じセッションIDを持つリアルタイムUDPデータグラム通信制御テーブルのレコードを検索する。
【０１８９】
検索したレコードのデータをメッセージ内容とした、リアルタイムUDPデータグラム通信遮断要請をパケット中継OFCに対して送信するために、ネットワークコントローラ１２は、検索したレコードをリアルタイムUDPデータグラム通信遮断要請機能に対して渡す。ネットワークコントローラ１２は、リアルタイムUDPデータグラム通信終了メッセージを第３クライアント５３へ転送する。
【０１９０】
図４０は、第４の実施形態における通信システムによる、リアルタイムUDPデータグラム通信制御テーブルのレコードの削除について説明する図である。  
その後、図４０に示すように、ネットワークコントローラ１２は、リアルタイムUDPデータグラム通信終了メッセージに含まれるセッションIDと同じセッションIDを持つリアルタイムUDPデータグラム通信制御テーブルのレコード、ここではリアルタイムUDPデータグラム通信終了に含まれるセッションIDは「1jiifa9783」を含むレコードを削除する。
【０１９１】
次に、ネットワークコントローラ１２によるリアルタイムUDPデータグラム通信遮断要請について説明する。  
リアルタイムUDPデータグラム通信遮断要請機能は、前述のリアルタイムUDPデータグラム通信終了検知機能から渡されたリアルタイムUDPデータグラム通信制御テーブルのレコードをメッセージの内容としたリアルタイムUDPデータグラム通信遮断要請を、パケット中継OFCに対して送信する。
【０１９２】
送信対象となるパケット中継OFCは、OFFER グローバルIPアドレスとANSWERグローバル IPアドレスを持つパケット中継OFCである。このパケット中継OFCは、パケット中継OFC-IPアドレスマッピングテーブルをOFFER グローバルIPアドレス、や、ANSWERグローバルIPアドレスとパケット中継OFC-IPアドレスマッピングテーブルIPアドレスが一致するかどうかで調べることができる。
【０１９３】
第４の実施形態では、リアルタイムUDPデータグラム通信遮断要請が第１パケット中継OFC４１と第２パケット中継OFC４２に送信される。この送信されるリアルタイムUDPデータグラム通信遮断要請の構成は、図１６に示した構成と同様である。
【０１９４】
次に、リアルタイムUDPデータグラム通信遮断について説明する。  
ネットワークコントローラ１２からリアルタイムUDPデータグラム通信遮断要請を受信すると、第１パケット中継OFC４１は、リアルタイムUDPデータグラム通信遮断機能を呼び出す。
【０１９５】
図４１、図４２、図４３、図４４は、第４の実施形態における通信システムによる、フローテーブルのレコードの削除について説明する図である。  
第１パケット中継OFC４１が接続している第１OFSW２１のグローバルIPアドレスが、リアルタイムUDPデータグラム通信遮断要請のOFFERグローバルIPアドレスと同一の場合、第１パケット中継OFC４１は、リアルタイムUDPデータグラム通信遮断要請に含まれるデータを利用して、フローテーブルにおける、図４１に示す条件に該当するレコードを削除する（ここでは合計２レコードが削除される)。この図４１で示した条件は、図１７に示した条件部の入力・OFSWポートの値、操作部の出力・OFSWポートの値を「any」に変更したものである。  
第１パケット中継OFC４１にかかる第１OFSW２１のグローバルIPアドレスは、リアルタイムUDPデータグラム通信遮断要請のOFFERグローバルIPアドレスと同一である。
【０１９６】
次に、第１パケット中継OFC４１がUDPデータグラム通信遮断要請を受け取り、フローテーブルのレコードを削除したときの具体例を説明する。  
上記のように第１パケット中継OFC４１が接続している第１OFSW２１のグローバルIPアドレスは、UDPデータグラム通信開始要請のOFFERグローバルIPアドレスと同一であるので、第１パケット中継OFC４１は、図４２に示すように、フローテーブルにおける、図４１に示す条件に該当するレコード、つまり、図２４で示したフローテーブルの上から５、６行目のレコードを削除する。
【０１９７】
第４の実施形態では、OFSWのグローバルIPアドレスが、リアルタイムUDPデータグラム通信遮断要請のOFFERグローバルIPアドレスと同一の場合は、リアルタイムUDPデータグラム通信遮断要請のOFFERグローバルポートと一致する使用済みポート番号のレコードを削除する。  
上記の第１パケット中継OFC４１の場合は、3456が該当する。
【０１９８】
ネットワークコントローラ１２からリアルタイムUDPデータグラム通信遮断要請を受信すると、第２パケット中継OFC４２は、第１パケット中継OFC４１と同様にリアルタイムUDPデータグラム通信遮断機能を実行する。
【０１９９】
また、第２パケット中継OFC４２が接続している第２OFSW２２のグローバルIPアドレスが、リアルタイムUDPデータグラム通信遮断要請のANSWERグローバルIPアドレスと同一の場合、第２パケット中継OFC４２は、図４４に示すように、リアルタイムUDPデータグラム通信遮断要請に含まれるデータを利用して、フローテーブルにおける図４３に示す条件に該当するレコードを削除する（合計２レコードが削除される)。この図４３で示した条件は、図２０に示した条件部の入力・OFSWポートの値、操作部の出力・OFSWポートの値を「any」に変更したものである。  
第２パケット中継OFC４２にかかる第２OFSW２２のグローバルIPアドレスは、リアルタイムUDPデータグラム通信遮断要請のANSWERグローバルIPアドレスと同一である。
【０２００】
次に、第２パケット中継OFC４２がUDPデータグラム通信開始要請を受け取り、具体的な値が入ったフローテーブルのレコードを作成したときの例について説明する。  
上記のように第２パケット中継OFC４２が接続している第２OFSW２２のグローバルIPアドレスは、UDPデータグラム通信開始要請のANSWERグローバルIPアドレスと同一であるので、第２パケット中継OFC４２は、図４２に示すように、フローテーブルにおける、図４３に示す条件に該当するレコード、つまり、図２５で示したフローテーブルの上から３、４行目のレコードを削除する。
【０２０１】
OFSWのグローバルIPアドレスが、リアルタイムUDPデータグラム通信遮断要請のANSWERグローバルIPアドレスと同一の場合は、パケット中継OFCは、リアルタイムUDPデータグラム通信遮断要請のANSWERグローバルポートと一致する使用済みポート番号のレコードを削除する。  
上記の第２パケット中継OFC４２の場合は、2456が該当する。
【０２０２】
以上のように、第４の実施形態では、第１の実施形態で説明した効果に加え、リアルタイムUDPデータグラム通信の終了をネットワークコントローラで検出して、リアルタイムUDPデータグラム通信を遮断することができる。
【０２０３】
（第５の実施形態）
次に、第５の実施形態について説明する。この第５の実施形態では、シグナリングチャネルの外出し（Ｗｅｂサーバからのシグナリングチャネルの分離）について説明する。  
図４５は、第５の実施形態における通信システムの機能構成例を示す図である。  
それぞれのクライアントがWebSocketのような通信手段でシグナリングチャネルと通信が可能であれば、図４５に示すように、シグナリングチャネル１１は、Webサーバ１０の外側に設置されていても良い。
【０２０４】
なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【０２０５】
また、上記の各実施形態に記載した手法は、計算機（コンピュータ）に実行させることができるプログラム（ソフトウエア手段）として、例えば磁気ディスク（フロッピー（登録商標）ディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ、ＭＯ等）、半導体メモリ（ＲＯＭ、ＲＡＭ、フラッシュメモリ等）等の記録媒体に格納し、また通信媒体により伝送して頒布することもできる。なお、媒体側に格納されるプログラムには、計算機に実行させるソフトウエア手段（実行プログラムのみならずテーブルやデータ構造も含む）を計算機内に構成させる設定プログラムをも含む。本装置を実現する計算機は、記録媒体に記録されたプログラムを読み込み、また場合により設定プログラムによりソフトウエア手段を構築し、このソフトウエア手段によって動作が制御されることにより上述した処理を実行する。なお、本明細書でいう記録媒体は、頒布用に限らず、計算機内部あるいはネットワークを介して接続される機器に設けられた磁気ディスクや半導体メモリ等の記憶媒体を含むものである。
【符号の説明】
【０２０６】
１０…Ｗｅｂサーバ、１１…シグナリングチャネル、１２…ネットワークコントローラ
２１…第１OFSW、２２…第２OFSW、３０…ルータ、４１…第１パケット中継OFC、４２…第２パケット中継OFC、５１…第１クライアント、５２…第２クライアント、５３…第３クライアント、５４…第４クライアント。
【図１】
2018050177.tif 000003
【図２】
2018050177.tif 000004
【図３】
2018050177.tif 000005
【図４】
2018050177.tif 000006
【図５】
2018050177.tif 000007
【図６】
2018050177.tif 000008
【図７】
2018050177.tif 000009
【図８】
2018050177.tif 000010
【図９】
2018050177.tif 000011
【図１０】
2018050177.tif 000012
【図１１】
2018050177.tif 000013
【図１２】
2018050177.tif 000014
【図１３】
2018050177.tif 000015
【図１４】
2018050177.tif 000016
【図１５】
2018050177.tif 000017
【図１６】
2018050177.tif 000018
【図１７】
2018050177.tif 000019
【図１８】
2018050177.tif 000020
【図１９】
2018050177.tif 000021
【図２０】
2018050177.tif 000022
【図２１】
2018050177.tif 000023
【図２２】
2018050177.tif 000024
【図２３】
2018050177.tif 000025
【図２４】
2018050177.tif 000026
【図２５】
2018050177.tif 000027
【図２６】
2018050177.tif 000028
【図２７】
2018050177.tif 000029
【図２８】
2018050177.tif 000030
【図２９】
2018050177.tif 000031
【図３０】
2018050177.tif 000032
【図３１】
2018050177.tif 000033
【図３２】
2018050177.tif 000034
【図３３】
2018050177.tif 000035
【図３４】
2018050177.tif 000036
【図３５】
2018050177.tif 000037
【図３６】
2018050177.tif 000038
【図３７】
2018050177.tif 000039
【図３８】
2018050177.tif 000040
【図３９】
2018050177.tif 000041
【図４０】
2018050177.tif 000042
【図４１】
2018050177.tif 000043
【図４２】
2018050177.tif 000044
【図４３】
2018050177.tif 000045
【図４４】
2018050177.tif 000046
【図４５】
2018050177.tif 000047