JP2018050177A - 通信システム - Google Patents

通信システム Download PDF

Info

Publication number
JP2018050177A
JP2018050177A JP2016184368A JP2016184368A JP2018050177A JP 2018050177 A JP2018050177 A JP 2018050177A JP 2016184368 A JP2016184368 A JP 2016184368A JP 2016184368 A JP2016184368 A JP 2016184368A JP 2018050177 A JP2018050177 A JP 2018050177A
Authority
JP
Japan
Prior art keywords
communication
switch
client device
address
real
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016184368A
Other languages
English (en)
Other versions
JP6505649B2 (ja
Inventor
悟 鈴本
Satoru Suzumoto
悟 鈴本
佳輝 蔭山
Yoshiteru Kageyama
佳輝 蔭山
仁士 古城
Hitoshi Kojo
仁士 古城
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2016184368A priority Critical patent/JP6505649B2/ja
Publication of JP2018050177A publication Critical patent/JP2018050177A/ja
Application granted granted Critical
Publication of JP6505649B2 publication Critical patent/JP6505649B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

【課題】クライアント装置間の通信を行うときの通信遅延を低減する。
【解決手段】実施形態における通信システムは、通信処理装置、第1、第2通信制御装置、第1、第2スイッチを有し、通信処理装置は、第1クライアント装置から第2クライアント装置への通信の提案信号を受信したときに、通信制御テーブルに、第1スイッチおよび第1クライアント装置の識別情報を設定し、返答信号を第2クライアント装置から受信したときに、第2スイッチおよび第2クライアント装置の識別情報を設定して、第1通信制御装置に通信の開始の要請信号を伝送し、第1、第2の通信制御装置は、要請信号を受信したときに、通信のための第1および第2のスイッチの動作を設定する。
【選択図】図1

Description

本発明の実施形態は、通信システムに関する。
Webアプリケーションでクライアントとして使用されるブラウザ間でリアルタイムUDPデータグラム通信(トランスポート層としてUDPを用いるパケットの通信)を実現するプロトコルとして、P2P通信を実現するためのプロトコルであるWebRTCが注目されている。
プライベートアドレスを有するクライアントが広域通信網を越えてパケットの通信を行なうときに、パケットは、Symmetric NATおよびファイアウォールを通過する。
プライベートアドレスを持つクライアント同士がUDPデータグラム通信を行うときは、TURN(Traversal Using Relays around NAT:Symmetric NATやファイアウォールを通過するパケットをリレーさせるためのプロトコル)サーバによるパケットのリレーが必要になる。TURNサーバによるパケットリレーにより、プライベートアドレスを持つクライアント同士が広域通信網を越えてリアルタイムUDPデータグラム通信をするときは、リアルタイム性の確保が困難になる。
特開2011−091826号公報
Symmetric NATやファイアウォールを通過するUDPデータグラム通信では、STUN(Session Traversal Utilities for NAT:プライベートアドレスを持つクライアントが、NAT(ネットワークアドレス変換装置)のグローバルアドレスと宛先ポートを知るためのプロトコル)によるグローバルアドレス解決のみではなく、TURNによるリレーも必要になる。
TURNサーバと各クライアントの通信遅延時間が長くなる場合に、通信を行うクライアント同士の通信遅延時間が短くても、TURNサーバを経由すると、UDPデータグラム通信の遅延時間は長くなる。例えば、送信側クライアントと受信側クライアントが直接通信できたときの通信遅延時間が10msであったとしても、TURNサーバと送信側クライアントとの通信遅延時間、TURNサーバと受信側クライアントとの通信遅延時間がそれぞれ100msであれば、TURNサーバを経由する、送信側クライアントから受信側クライアントの通信における通信遅延時間は、上記の直接通信できたときの通信遅延時間の20倍の200msになってしまう。
また、通信の組み合わせが増加するとTURNサーバを経由する通信が増加するために、このTURNサーバが通信のボトルネックとなる。
本発明が解決しようとする課題は、クライアント装置間の通信を行うときの通信遅延を低減することが可能な通信システムを提供することである。
実施形態における通信システムは、通信処理装置、第1の通信制御装置、第1のスイッチ、第2の通信制御装置、第2のスイッチを有する通信システムであって、前記通信処理装置は、前記第1のスイッチに接続可能な第1のクライアント装置から、前記第2のスイッチに接続可能な第2のクライアント装置への通信の提案信号を前記第1のスイッチを介して受信したときに、前記第1のクライアント装置と前記第2のクライアント装置との間の通信制御テーブルのレコードに、前記通信のための前記第1のスイッチおよび前記第1のクライアント装置の識別情報を設定する第1の設定手段と、前記提案信号を前記第2のクライアント装置へ伝送する第1の伝送手段と、前記提案信号に対する返答信号を前記第2のクライアント装置から前記第2のスイッチを介して受信したときに、前記通信のための前記第2のスイッチおよび前記第2のクライアント装置の識別番号を前記レコードに設定する第2の設定手段と、前記第1および第2の設定手段による前記レコードへの設定内容を含む、前記通信の開始の要請信号を前記第1および第2の通信制御装置に伝送する第2の伝送手段とを有し、前記第1の通信制御装置は、前記要請信号に含まれる設定内容に基づいて、前記通信の開始のために、前記第1のクライアント装置から前記第2のクライアント装置へ前記通信のためのパケットが通過するときの前記第1のスイッチの動作を定めるテーブルに、前記通信のための前記第1のスイッチの動作を設定する第3の設定手段を有し、前記第2の通信制御装置は、前記要請信号に含まれる設定内容に基づいて、前記第2のクライアント装置から前記第1のクライアント装置へ前記パケットが通過するときの前記第2のスイッチの動作を定めるテーブルに、前記通信の開始のための前記第2のスイッチの動作を設定する第4の設定手段を有する。
本発明によれば、クライアント装置間の通信を行うときの通信遅延を低減することができる。
第1の実施形態における通信システムの機能構成例を示す図。 第1の実施形態における通信システムによる処理の手順の一例を示すシーケンス図。 第1の実施形態における通信システムにおけるIPアドレスの一例を示す図。 第1の実施形態における通信システムのネットワークコントローラが管理するパケットOFC-IPアドレスマッピングテーブルの構成例を表形式で示す図。 第1の実施形態における通信システムのOFSWのポートの一例を示す図。 第1の実施形態における通信システムのネットワークコントローラが管理するOFSWポート-クライアントIPアドレスマッピングテーブルの構成例を表形式で示す図。 第1の実施形態における通信システムのネットワークコントローラが管理するOFSWポート-クライアントIPアドレスマッピングテーブルの構成例を表形式で示す図。 第1の実施形態における通信システムの第1OFSW21が管理するフローテーブルの構成例を表形式で示す図。 第1の実施形態における通信システムの、Webアプリケーション取得後の第1OFSWのフローテーブルの構成例を表形式で示す図。 第1の実施形態における通信システムの、Webアプリケーション取得後の第2OFSWのフローテーブルの構成例を表形式で示す図。 第1の実施形態における通信システムによるSDP OFFERの解析に伴うリアルタイムUDPデータグラム通信制御テーブルのレコードの作成について説明する図。 第1の実施形態における通信システムによるSDP OFFERの解析に伴うリアルタイムUDPデータグラム通信制御テーブルのレコードの作成について説明する図。 第1の実施形態における通信システムによるSDP OFFERの解析に伴うリアルタイムUDPデータグラム通信制御テーブルのレコードの作成について説明する図。 第1の実施形態における通信システムによるSDP ANSWERの解析に伴うリアルタイムUDPデータグラム通信制御テーブルのレコードの作成について説明する図。 第1の実施形態における通信システムによるSDP ANSWERの解析に伴うリアルタイムUDPデータグラム通信制御テーブルのレコードの作成について説明する図。 第1の実施形態における通信システムによるSDP ANSWERの解析に伴うリアルタイムUDPデータグラム通信制御テーブルのレコードの作成について説明する図。 第1の実施形態における通信システムによる、フローテーブルのレコードの追加について説明する図。 第1の実施形態における通信システムによる、フローテーブルのレコードの追加について説明する図。 第1の実施形態における通信システムによる、リアルタイムUDPデータグラム通信開始後のフローテーブルの構成例を表形式で説明する図。 第1の実施形態における通信システムによる、フローテーブルのレコードの追加について説明する図。 第1の実施形態における通信システムによる、フローテーブルのレコードの追加について説明する図。 第1の実施形態における通信システムによる、リアルタイムUDPデータグラム通信開始後のフローテーブルの構成例を表形式で説明する図。 第1の実施形態における通信システムによる複数のリアルタイムUDPデータグラム通信に対応するリアルタイムUDPデータグラム通信制御テーブルの構成例を表形式で説明する図。 第1の実施形態における通信システムによる複数のリアルタイムUDPデータグラム通信に対応するフローテーブルの構成例を表形式で説明する図。 第1の実施形態における通信システムによる複数のリアルタイムUDPデータグラム通信に対応するフローテーブルの構成例を表形式で説明する図。 第2の実施形態における通信システムの機能構成例を示す図。 第2の実施形態における通信システムによる処理の手順の一例を示すシーケンス図。 第2の実施形態における通信システムによるSDP ANSWERの解析に伴うリアルタイムUDPデータグラム通信制御テーブルのレコードの作成について説明する図。 第2の実施形態における通信システムによるSDP ANSWERの解析に伴うリアルタイムUDPデータグラム通信制御テーブルのレコードの作成について説明する図。 第2の実施形態における通信システムにより送信されるポート確保情報の構成例を表形式で示す図。 第2の実施形態における通信システムにより送信されるポート確保情報の構成例を表形式で示す図。 第3の実施形態における通信システムの機能構成例を示す図。 第3の実施形態における通信システムによる処理の手順の一例を示すシーケンス図。 第3の実施形態における通信システムによるSDP ANSWERの解析に伴うリアルタイムUDPデータグラム通信制御テーブルのレコードの作成について説明する図。 第3の実施形態における通信システムによるポート確保情報の受信に伴うリアルタイムUDPデータグラム通信制御テーブルのレコードの作成について説明する図。 第3の実施形態における通信システムによるポート確保情報の受信に伴うリアルタイムUDPデータグラム通信制御テーブルのレコードの作成について説明する図。 第3の実施形態における通信システムによるSDP CANDIDATEの解析に伴うリアルタイムUDPデータグラム通信制御テーブルのレコードの作成について説明する図 第4の実施形態における通信システムの機能構成例を示す図。 第4の実施形態における通信システムによる処理の手順の一例を示すシーケンス図。 第4の実施形態における通信システムによる、リアルタイムUDPデータグラム通信制御テーブルのレコードの削除について説明する図。 第4の実施形態における通信システムによる、フローテーブルのレコードの削除について説明する図。 第4の実施形態における通信システムによる、フローテーブルのレコードの削除について説明する図。 第4の実施形態における通信システムによる、フローテーブルのレコードの削除について説明する図。 第4の実施形態における通信システムによる、フローテーブルのレコードの削除について説明する図。 第5の実施形態における通信システムの機能構成例を示す図。
以下、実施形態について図面を用いて説明する。
まず、各実施形態に関係する用語の意味について以下に説明する。
パケット:
(1)インターネットプロトコルスイートにおいて、ネットワーク層にIPを使用したものである。パケットのトランスポート層としては、TCPまたは、UDPが使用される。
(2)後述のOFSW(オープンフロースイッチ)は、リンク層プロトコルとしてEthernet(登録商標)のみ接続が可能である。他の装置のリンク層プロトコルについては、 Ethernet以外(例えば、IEEE802.11n のような無線LAN)を用いてもよい。
UDPデータグラム:トランスポート層としてUDPを使用しているパケットである。
TCPセグメント:トランスポート層としてTCPを使用しているパケットである。
送信元ポート、宛先ポート:
(1)インターネットプロトコルスイートにおけるトランスポート層の送信元ポートおよび宛先ポートである。
(2)ルータ、NAT、クライアントが送受信に使用するUDPポート番号やTCPポート番号である。
(3)後述するOFSWのOFSWポートとは別である。
ルータ:インターネットプロトコルスイートのネットワーク層以上の情報を用いてパケットの通信制御を行う機器である。
広域通信網:グローバルIPアドレスが使用されるネットワークである。この広域通信網の内部では、ルータによりネットワークが相互接続されている。
LAN:プライベートIPアドレスが使用されるネットワークである。
Webサーバ:Webアプリケーションを提供するサーバである。
クライアント:
(1)リアルタイムUDPデータグラム通信の送受信を行う端末である。
(2)Webサーバとクライアント間の通信はTCPセグメントが使用される。
ファイアウォール:あるネットワークを不正アクセスから守るための装置である。
パケットフィルタリング:ルールをもとに、ファイアウォールでパケットの通過制御を行うことである。
SDP(Session Description Protocol):
(1)draft-nandakumar-rtcweb-sdp-07、 draft-ietf-mmusic-trickle-ice-02に記載される。
(2)リアルタイムマルチメディア通信を行うための情報の記述形式である。
(3)IPアドレス、ポート番号、メディア種別、コーデックなどが含まれる。
リアルタイムUDPデータグラム通信:
(1)音声や映像をリアルタイムに通信する上でSDPを使用したセッション情報の交換を伴うUDPデータグラムの通信である。
(2)リアルタイムUDPデータグラム通信を実現するプロトコルとしては、WebRTC(https://tools.ietf.org/wg/rtcweb/)が該当する。
候補アドレス:リアルタイムUDPデータグラム通信で利用可能な、IPアドレス、送信元ポートまたは宛先ポートとして利用できるポート番号のことである。
SDP OFFER:
(1)リアルタイムUDPデータグラム通信の発呼側からリアルタイムUDPデータグラム通信で使用するメディアを提案することである。
(2)SDP OFFERで候補アドレスを通信相手となるクライアントに対して通知する場合もある。
(3)SDPとリアルタイムUDPデータグラム通信のセッションIDを含む。
SDP ANSWER:
(1)SDP OFFERを受け取ったクライアントから、このSDP OFFERの送信元に対して、当該SDP OFFERで提案されたメディアが受け入れ可能かを返答することである。
(2)SDP ANSWERで通信相手となるクライアント候補アドレスを通知する場合もある。
(3)SDPとリアルタイムUDPデータグラム通信のセッションIDを含む。
SDP CANDIDATE:
(1)候補アドレスを通信相手となるクライアントに対して通知することである。
(2)SDPとリアルタイムUDPデータグラム通信のセッションIDを含む。
リアルタイムUDPデータグラム通信終了メッセージ:
(1)リアルタイムUDPデータグラム通信を終了することを通信相手となるクライアントに対して通知することである。
(2)リアルタイムUDPデータグラム通信のセッションIDを含む。
SDP OFFER・SDP ANSWER・SDP CANDIDATEは、例えばJSON形式をメッセージフォーマットとするが、これと等価な表現をするプレーンテキストやXMLなどであっても構わない。また、セッションID、SDP以外にも何らかのプロパティがJSONに存在しても良い。
シグナリングチャネル:
(1)WebRTCでSDPを交換するために使用されるソフトウエアである。
(2)SDP OFFER・SDP ANSWER・SDP CANDIDATEで使用するセッションIDは、SDP OFFERを発呼するクライアントが指定する。
OpenFlow:
(1)SDN(Software Defined Network)を実現するプロトコルである。
(2)OFC(OpenFlowコントローラ)(後述)およびOFSWから構成される。
(2−1)OFSWに備えられた物理的なポートのうち、OFSWを制御するためのみに使用する管理ポートに接続される。
(2−2)OFCとOFSWの通信は、TCPセグメント、もしくは、UDPデータグラムで行われる。
(3)本実施形態では、OpenFlowを用いてパケットの通信制御を行う。
OpenFlowコントローラ(OFC):OpenFlowでパケットを制御するためのソフトウエア、および、そのソフトウエアが動作する端末である。
OpenFlowスイッチ(OFSW):
(1)OpenFlowに対応したスイッチである。
(2)インターネットプロトコルスイートにおけるリンク層の媒体、例えばEthernetケーブルなどが接続されるOFSWポートを複数有する。
(3)フローテーブル(後述)によりパケットの処理を実施する。
OFSWポート:OFSWが備える物理的なポートである。
フローテーブル:
(1)OpenFlowでパケットの通信制御をするためのルールが記述され、このフローテーブルの条件部に合致するパケットに対して、このフローテーブルの操作部で定義された処理がOFSW上で実行される。
(2)OFCにより作成され、OFSWに配布される。
(3)フローテーブルの条件部に合致しないパケットがOFSWを通過する場合、このパケットはOFCに転送される。この転送されたパケットは、OFCのソフトウエアにしたがって制御される。
OFSWポート-クライアントIPアドレスマッピングテーブル:OFSWポートの番号と、OFSWに接続しているクライアントのIPアドレスとの対応表であり、OFCが所持する。
使用済みポート番号:OFSWに割り振られたグローバルIPアドレスが使用している送信元ポート、あるいは、宛先ポートとして使用する番号であり、OFCが所持する。
パケット中継OFC:
(1)本実施形態を実現するためのOFCとして実装されOFSWのフローテーブルを管理する。
(2)ファイアウォール用フローテーブル作成・配布機能、(パケットを使用した不要な通信を遮断する機能)、Symmetric NAT用フローテーブル作成・配布機能(Symmetric NATを実現し、使用済みポート番号に現在使用しているポート番号を追加する)を実装する。
ポート確保要請受信機能(パケット中継OFCが実装):
(1)後述のネットワークコントローラから後述のポート確保要請を受け取りOFSWのグローバルIPアドレスに対応付ける送信元ポートと宛先ポートとなるポート番号を確保するための機能である。
(2)ポート番号を確保した後に、ポート確保要請をネットワークコントローラに対して送信する。
リアルタイムUDPデータグラム通信開始機能:ネットワークコントローラから後述のリアルタイムUDPデータグラム通信開始要請を受け取り、リアルタイムUDPデータグラム通信を開始するためのフローテーブルをOFSWに配布するための機能である。
リアルタイムUDPデータグラム通信遮断機能:ネットワークコントローラから後述のリアルタイムUDPデータグラム通信遮断要請を受け取り、リアルタイムUDPデータグラム通信を遮断するために、OFSWからフローテーブルを削除するための機能である。
ネットワークコントローラ:
(1)例えば、パケット中継OFCを制御するサーバ装置が実現する。以下の第1ないし第4の実施形態ではネットワークコントローラとサーバ装置は同義である。
(2)ネットワークコントローラとパケット中継OFCは、TCPセグメント、もしくは、UDPデータグラムを用いて通信をする。
(3)ネットワークコントローラは、クライアントのSDPを何らかの手段で取り込む。WebRTCならシグナリングチャネル上にネットワークコントローラを実装する。
SDP OFFER 解析機能(ネットワークコントローラが実装):
(1)SDP OFFERを受信したときにSDP OFFERに含まれるSDPを解析し、後述のリアルタイムUDPデータグラム通信制御テーブルに対して、新たに開始するリアルタイムUDPデータグラム通信のレコードを追加する。
(2)後述するポート確保要請をパケット中継OFCに対して送信する。
SDP ANSWER 解析機能(ネットワークコントローラが実装):
(1)SDP ANSWERを受信したときに、このSDP ANSWERに含まれるSDPを解析し、後述のリアルタイムUDPデータグラム通信制御テーブルの該当レコードを変更する。変更した結果、リアルタイムUDPデータグラム通信制御テーブルの該当レコードの列がすべて埋まった場合に、リアルタイムUDPデータグラム通信開始要請機能を呼び出す。
(2)後述のポート確保要請をパケット中継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データグラム通信終了検知機能:
(1)ネットワークコントローラがリアルタイムUDPデータグラム通信終了メッセージを受信することで、リアルタイムUDPデータグラム通信の終了を検知する。
(2)リアルタイムUDPデータグラム通信の終了を検知するとリアルタイムUDPデータグラム通信遮断要請機能を呼び出す。
(3)後述のリアルタイム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アドレスマッピングテーブル:
(1)パケット中継OFCとパケット中継OFCが接続するOFSWに割り振られたグローバルIPアドレス、および、OFSWに接続するクライアントのローカルIPアドレスが所属するネットワークアドレスの対応表。
(2)ネットワークコントローラに予め入力しておく必要がある。
リアルタイムUDPデータグラム通信開始要請:
(1)ネットワークコントローラのリアルタイムUDPデータグラム通信開始要請機能により、ネットワークコントローラからパケット中継OFCに対して送信される。
(2)送信されるデータは、リアルタイムUDPデータグラム通信制御テーブルのうち、リアルタイムUDPデータグラム通信を開始する該当の1レコードである。
リアルタイムUDPデータグラム通信遮断要請:
(1)ネットワークコントローラのリアルタイムUDPデータグラム通信遮断要請機能により、ネットワークコントローラからパケット中継OFCに対して送信される。
(2)送信されるデータは、リアルタイムUDPデータグラム通信制御テーブルのうち、リアルタイムUDPデータグラム通信を遮断する該当の1レコードである。
リアルタイムUDPデータグラム通信開始要請、リアルタイムUDPデータグラム通信遮断要請は、セッションID、OFFER IP アドレス、OFFER ポート、ANSWER IP アドレス、ANSWER ポート、OFFER グローバル IP アドレス、OFFER グローバルポート、ANSWER IP アドレス、ANSWER グローバルポートを含む。
ポート確保要請:
(1)OFSWに割り振られたグローバルIPアドレスで使用する送信元ポート・宛先ポートについてポートの確保要請を通知することである。
(2)ネットワークコントローラからパケット中継OFCに送信され、セッションIDを含む。
ポート確保情報:
(1)OFSWに割り振られたグローバルIPアドレスであらたに使用する送信元ポート・宛先ポートを他装置に対して通知することである。
(2)パケット中継OFCからネットワークコントローラに送信されセッションID、グローバルIPアドレス、対象ポート番号を含む。
(第1の実施形態)
次に、第1の実施形態について説明する。図1は、第1の実施形態における通信システムの機能構成例を示す図である。
図1に示すように、第1の実施形態における通信システムは、Webサーバ10、第1OFSW(第1のスイッチ)21、第2OFSW(第2のスイッチ)22、ルータ30、第1パケット中継OFC(第1の通信制御装置)41、第2パケット中継OFC(第2の通信制御装置)42、第1クライアント51、第2クライアント52、第3クライアント53、第4クライアント54を含む。
Webサーバ10は、シグナリングチャネル11を有する。シグナリングチャネル11は、ネットワークコントローラ(通信処理装置)12を有する。
Webサーバ10は、広域通信網および第1OFSW21を介して、第1パケット中継OFC41、第1クライアント51、第2クライアント52と通信可能に接続される。
また、Webサーバ10は、広域通信網およびルータ30を介して第2パケット中継OFC42と通信可能に接続される。また、Webサーバ10は、広域通信網および第2OFSW22を介して、第3クライアント53、第4クライアント54と通信可能に接続される。
第2OFSW22は、第2パケット中継OFC42と通信可能に接続される。
ネットワークコントローラ12は、SDP OFFER 解析機能、SDP ANSWER 解析機能、リアルタイムUDPデータグラム通信開始要請機能、リアルタイムUDPデータグラム通信制御テーブル、パケット中継OFC-IPアドレスマッピングテーブルを有する。
第1パケット中継OFC41および第2パケット中継OFC42は、リアルタイムUDPデータグラム通信開始機能、ファイアウォール用フローテーブル作成・配布機能、Symmetric NAT用フローテーブル作成・配布機能、OFSWポート-クライアントIPアドレスマッピングテーブルを有し、使用済みポート番号を管理する。
第1パケット中継OFC41および第2パケット中継OFC42は、第1クライアント51から第3クライアント53へ向けて行われるリアルタイムUDPデータグラム通信をTURNサーバのような外部サーバを経由することなく通信するためのフローテーブルを第1OFSW21と第2OFSW22に作成する。
上記のフローテーブルの作成を実施するために、第1クライアント51と第3クライアント53とのリアルタイムUDPデータグラム通信で交換されるSDPを解析して候補アドレスを収集する機能が、シグナリングチャネル11上へ実装されたネットワークコントローラ12で実現される。
また、シグナリングチャネル11は、収集された候補アドレスからリアルタイムUDPデータグラム通信制御テーブルを作成して、このテーブルをもとにパケット中継OFCに対してフローテーブル作成の指示を出す。
第1OFSW21は、第1クライアント51から送信されてきたパケットを広域通信網内で第2OFSWへ送信されるように、フローテーブルでパケットのIPヘッダとUDPヘッダを書き換えて、第2OFSW22に向けてパケットを送信する。
第2OFSW22は、第1OFSW21から送信されてきたパケットを第3クライアント53で受信できるように、フローテーブルでパケットのIPヘッダとUDPヘッダを書き換えて、第3クライアント53に向けてパケットを送信する。
図2は、第1の実施形態における通信システムによる処理の手順の一例を示すシーケンス図である。
ネットワークコントローラ12は、SDP OFFER、SDP ANSWERを解析して、SDPから候補アドレスを収集する。ネットワークコントローラ12は、収集した候補アドレスから、リアルタイムUDPデータグラム通信制御テーブルのレコードの作成や変更を実施する。
ネットワークコントローラ12は、パケット中継OFCに対して、レコードのすべての列が埋まったリアルタイムUDPデータグラム通信制御テーブルのレコードをもとに、リアルタイムUDPデータグラム通信開始要請を送信する。リアルタイムUDPデータグラム通信開始要請を受け取ったパケット中継OFCは、OFSWに対してリアルタイムUDPデータグラム通信ができるようにフローテーブルを作成する。
図1に示した太線は、ネットワークコントローラ12と第1パケット中継OFC41との間の通信経路である。
図1に示した細線は、クライアント間やWebサーバ10との間の通信経路である。
図1に示した点線は、各パケット中継OFC41、42と各OFSW21、22との間の通信経路である。
ただし、これらの線は、あくまで装置(あるいは、装置の機能)間のインターネットプロトコルスイートにおけるネットワーク層の通信を表す。したがって、これらの線で表された通信が、インターネットプロトコルスイートのリンク層において、同一の物理媒体を使用して行われる場合もある。
図1には、ネットワークコントローラ12と第1OFSW21との間の通信経路として、上記のように太線の通信経路と細線の通信経路があるがこれらの通信経路として、同じ物理ケーブルを使用してよい
また、図1には、第1OFSW21と第1パケット中継OFC41との間の通信経路として、上記のように太線の通信経路と点線の通信経路があるが、これらの通信経路に同じ物理ケーブルを使用することはできない。これは、第1OFSW21の管理ポートとクライアントが接続するOFSWポートとは物理的に異なるポートであるためである。
第1の実施形態では、候補アドレスをSDP OFFERやSDP ANSWERに含むリアルタイムUDPデータグラム通信(WebRTC)を例として説明する。
次に、第1の実施形態において実現したいリアルタイムUDPデータグラム通信について説明する。
第1の実施形態において、第1クライアント51から第3クライアント53へのリアルタイムUDPデータグラム通信は、Webサーバ10のような何らかのサーバを経由することなく行われる。
ただし、SDPの交換については、Webサーバ10上のシグナリングチャネル11を経由して通信がなされる。
ネットワークコントローラ12と第1パケット中継OFC41、ネットワークコントローラ12と第2パケット中継OFC42、第1パケット中継OFC41と第1OFSW21、および、第2パケット中継OFC42と第2OFSW22のそれぞれの通信は、TCPセグメントでなされる。
次に、第1の実施形態における、ネットワークコントローラ12とパケット中継OFCの通信について説明する。
ネットワークコントローラ12からパケット中継OFCに対して通信が可能であれば、図1に示すように、パケット中継OFCとネットワークコントローラ12の通信は、OFSW(図1に示した例では第1OFSW21)やルータ30を経由していてもよい。
次に、第1の実施形態における、ネットワークコントローラ12とパケット中継OFCの通信について説明する。
Webサーバ10と広域通信網との物理的な接続、および、第1OFSW21と広域通信網との物理的な接続では、ネットワークコントローラ12と第1パケット中継OFC41との通信経路、および、クライアントとクライアント(または、Webサーバ)の通信経路で、インターネットプロトコルスイートのリンク層は、同一のケーブルを使用しても良い。
次に、第1の実施形態における、パケット中継OFCとOFSWの通信について説明する。第1パケット中継OFC41と第1OFSW21との物理的な接続では、第1OFSW21と第1パケット中継OFC41の通信経路、および、クライアントとクライアント(または、Webサーバ)の通信経路で、インターネットプロトコルスイートのリンク層は、異なるケーブルを用いる。
次に、第1の実施形態におけるリアルタイムUDPデータグラム通信について説明する。ここでは、第1クライアント51(192.168.0.1: 52345(IPアドレス:ポート番号))から第3クライアント53(192.168.1.1: 1111)へリアルタイムUDPデータグラム通信をする。
図3は、第1の実施形態における通信システムにおけるIPアドレスの一例を示す図である。
図3に示した例では、Webサーバ10のIPアドレスは33.33.0.1であり、第1OFSW21におけるWebサーバ10側のIPアドレスは33.33.0.2であり、第2OFSW22におけるWebサーバ10側のIPアドレスは33.33.0.3であり、ルータ30におけるWebサーバ10側のIPアドレスは33.33.0.5である。
また、第1OFSW21におけるクライアント側のIPアドレスは192.168.0.254であり、第2OFSW22におけるクライアント側のIPアドレスは192.168.1.254である。
また、第1OFSW21と第1パケット中継OFC41との間の通信経路のIPアドレスは172.17.0.254であり、第2OFSW22とルータ30との間の通信経路のIPアドレスは172.17.1.254である。
また、第1クライアント51のIPアドレスは、192.168.0.1であり、第2クライアント52のIPアドレスは、192.168.0.2であり、第3クライアント53のIPアドレスは、192.168.1.1であり、第4クライアント54のIPアドレスは、192.168.1.2である。
次に、各装置の初期データについて説明する。
図4は、第1の実施形態における通信システムのネットワークコントローラが管理するパケットOFC-IPアドレスマッピングテーブルの構成例を表形式で示す図である。
図4に示すように、ネットワークコントローラは、パケット中継OFC-IPアドレスマッピングテーブルを管理する。このテーブルは、各パケット中継OFCのローカルネットワークと、通信相手の各OFSWのIPアドレスを管理する。
次に、OFSWのポートについて説明する。図5は、第1の実施形態における通信システムのOFSWのポートの一例を示す図である。
図5に示した例では、第1OFSW21における広域通信網側のOFSWポートの番号は「1」であり、第1パケット中継OFC41側のOFSWポートの番号は「2」であり、第1クライアント51側のOFSWポートの番号は「3」であり、第2クライアント52側のOFSWポートの番号は「4」である。
また、第2OFSW22における広域通信網側のOFSWポートの番号は「1」であり、第3クライアント53側のOFSWポートの番号は「2」であり、第4クライアント54側のOFSWポートの番号は「3」である。
また、各パケット中継OFCと各OFSWの接続は、OFSWにおけるOFSWポートと異なる管理ポートを用いるため、ここでは番号を記述しない。
図6および図7は、第1の実施形態における通信システムのネットワークコントローラが管理するOFSWポート-クライアントIPアドレスマッピングテーブルの構成例を表形式で示す図である。
図6に示すように、第1パケット中継OFC41は、OFSWポート-クライアントIPアドレスマッピングテーブルを管理する。
このテーブルは、第1パケット中継OFC41の、広域通信網側以外の各OFSWポートの番号と、このOFSWポートに接続される各装置のIPアドレスを管理する。
図7に示すように、第2パケット中継OFC42は、OFSWポート-クライアントIPアドレスマッピングテーブルを管理する。
このテーブルは、第2パケット中継OFC42の、広域通信網側以外の各OFSWポートの番号と、このOFSWポートに接続される各装置のIPアドレスを管理する。
次に、第1OFSW21の初期データについて説明する。
図8は、第1の実施形態における通信システムの第1OFSW21が管理するフローテーブルの構成例を表形式で示す図である。
あらかじめ、第1パケット中継OFC41は、ファイアウォール用フローテーブル作成・配布機能を実行しておき、Webサーバ10以外と通信をできないように、フローテーブルを第1OFSW21の図示しないメモリに格納しておく。
図8に示すように、第1OFSW21用のフローテーブルでは、第1パケット中継OFC41とWebサーバ(ネットワークコントローラ12)の通信を許可する。
また、ネットワークコントローラ12以外の外部から第1パケット中継OFC41に対する通信は拒否する(この拒否する通信については、適用優先度を最低にするため常にフローテーブルの最後尾に存在)。
また、第2OFSW22は、フローテーブルの初期データは特に管理しない。
次に、Webサーバ10へのアクセスについて説明する。
アクセスの例としては、(1)第1クライアント51(192.168.0.1:13138)からWebサーバ10(33.33.0.1:80)へのアクセス、(2)第3クライアント53(192.168.1.1:13555)からWebサーバ10(33.33.0.1:80)が挙げられる。
次に、Webアプリケーションの取得について説明する。
第1クライアント51はWebアプリケーションを取得するためにWebサーバ10へHTTP GETを発行する。
第1OFSW21には、第1クライアント51からWebサーバ10にアクセスするためのフローテーブルがまだ存在しないので、HTTP GETが含まれたパケットは、第1パケット中継OFC41に転送される。
第1パケット中継OFC41は、HTTP GETが含まれたパケットを受け取るとSymmetric NAT用フローテーブル作成・配布機能を実行し、また、Webサーバ10にアクセスするためのフローテーブルを作成して、第1OFSW21に対して配布する。
第1パケット中継OFC41は、 HTTP GETが含まれたパケットをWebサーバ10に対して送信する。
Webサーバ10は、受け取ったHTTP GETに応じ、HTML・Javascript・CSSなどを第1クライアント51に対して送信する。
第3クライアント53によっても同様にWebアプリケーション取得が行なえる。
次に、Webアプリケーション取得後の第1OFSW21のデータについて説明する。
図9は、第1の実施形態における通信システムの、Webアプリケーション取得後の第1OFSWのフローテーブルの構成例を表形式で示す図である。
図9に示したフローテーブルは、図8に示した初期データに対して、第1クライアント51とWebサーバ10との通信を許可するための追加、および第1パケット中継OFC41とWebサーバ10(ネットワークコントローラ12)の通信を許可するための追加がなされている。
次に、Webアプリケーション取得後の第2OFSW22が管理するデータについて説明する。
図10は、第1の実施形態における通信システムの、Webアプリケーション取得後の第2OFSWのフローテーブルの構成例を表形式で示す図である。
図10に示したフローテーブルは、第3クライアント53とWebサーバ10との通信を許可するための設定(初期データが無い状態からの追加)がなされている。
次に、Webアプリケーション取得後の第1パケット中継OFC41のデータについて説明する。
Webアプリケーション取得後の第1パケット中継OFC41は、使用済みポート番号(例えば30841と43256など)を管理する。
次に、Webアプリケーション取得後の第2パケット中継OFC41のデータについて説明する。
Webアプリケーション取得後の第2パケット中継OFC42は、使用済みポート番号(例えば46927など)を管理する。
次に、SDP OFFERの送信について説明する。
第1クライアント51は第3クライアント53との間でリアルタイムUDPデータグラム通信を開始するために、シグナリングチャネル11を通じて第3クライアント53へ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」は、改行文字(属性の区切りを表す)である。
次に、第1クライアント51から送信されたSDP OFFERの解析について説明する。図11、図12、図13は、第1の実施形態における通信システムによるSDP OFFERの解析に伴うリアルタイムUDPデータグラム通信制御テーブルのレコードの作成について説明する図である。
SDP OFFERを受け取ったネットワークコントローラ12は、SDP OFFER解析機能を実行して、SDP OFFERに含まれるセッションIDからリアルタイムUDPデータグラム通信制御テーブルのレコードを作成する。このレコードは、セッションID、OFFER IP アドレス、OFFER ポート、ANSWER IP アドレス、ANSWER ポート、OFFER グローバル IP アドレス、OFFER グローバルポート、ANSWER IP アドレス、ANSWER グローバルポートを含み、図11に示すように、このレコードのセッションIDの値に、SDP OFFERに含まれるセッションIDが設定される。
ネットワークコントローラ12は、SDP OFFERを含んだパケットの送信元IPアドレス(ここでは33.33.0.2)をレコードのOFFER グローバル IPアドレスの値に設定する(第1の設定手段による設定)。
第1の実施形態では、SDP OFFERに第1クライアント51が使用する候補アドレスが含まれる。図12に示すように、ネットワークコントローラ12は、レコードのOFFER IP アドレス、OFFER ポートの値に、候補アドレスで示されるアドレスとポート番号(ここでは192.168.0.1と52345)を設定する(第1の設定手段による設定)。
ネットワークコントローラ12は、候補アドレスを、SDP OFFERに含まれる”a=candidate”属性から取得する。候補アドレスとして有効なアドレスは、ネットワークコントローラ12が所持するパケット中継OFC-IPアドレスマッピングテーブルに所属するもののみである。この場合では、候補アドレスにおけるIPアドレス「192.168.0.1」は、パケット中継OFC-IPアドレスマッピングテーブルにおける、第1パケット中継OFC41のローカルネットワークアドレスに含まれる。
次に、ネットワークコントローラ12は、0〜65535の中から任意の数値を一つ選び(こここでは3456)、図13に示すように、リアルタイムUDPデータグラム通信制御テーブルのOFFERグローバルポートの値に書き込む(第1の設定手段による設定)。
ネットワークコントローラ12は、SDP OFFERを第3クライアント53へ転送する(第1の伝送手段による伝送)。
第3クライアント53は、第1クライアント51からネットワークコントローラ12を介して受け取ったSDP OFFERから第1クライアント51向けのSDP ANSWERを生成してネットワークコントローラ12へ送信する。
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の解析について説明する。図14、図15、図16は、第1の実施形態における通信システムによるSDP ANSWERの解析に伴うリアルタイムUDPデータグラム通信制御テーブルのレコードの作成について説明する図である。
SDP ANSWERを受け取ったネットワークコントローラ12は、SDP ANSWER解析機能を実行して、SDP ANSWERに含まれるセッションIDと同じセッションIDを持つリアルタイムUDPデータグラム通信制御テーブルのレコードを検索する。
図14に示すように、ネットワークコントローラ12は、SDP ANSWERを含んだパケットの送信元IP(ここでは33.3.0.3)を、そのレコードのANSWER グローバル IPアドレスに設定する(第2の設定手段による設定)。
第1の実施形態では、SDP ANSWERに第3クライアント53が使用する候補アドレスが含まれる。図15に示すように、ネットワークコントローラ12は、レコードのANSWER IP アドレス、ANSWER ポートの値に、候補アドレスで示されるアドレスとポート番号(ここでは192.168.1.1と1111)を設定する(第2の設定手段による設定)。
ネットワークコントローラ12は、候補アドレスを、SDPに含まれる”a=candidate”属性から取得する。候補アドレスとして有効なアドレスは、ネットワークコントローラ12が所持するパケット中継OFC-IPアドレスマッピングテーブル」に所属するもののみである。この場合では、候補アドレスにおけるIPアドレス「192.168.1.1」は、第2パケット中継OFC42のローカルネットワークアドレスに含まれる。
ネットワークコントローラ12は、0〜65535の中から任意の数値を一つ選び(ここでは2456)、図16に示すように、リアルタイムUDPデータグラム通信制御テーブルのANSWERグローバルポートに書き込む(第2の設定手段による設定)。
ネットワークコントローラ12は、SDP ANSWERを第1クライアント51へ転送する(第2の伝送手段による伝送)。
次に、リアルタイムUDPデータグラム通信開始要請について説明する。
ネットワークコントローラ12は、前述のSDP ANSWER解析機能により、リアルタイムUDPデータグラム通信制御テーブルの1つのレコードの列がすべて埋まると、リアルタイムUDPデータグラム通信開始要請機能を呼び出す。
リアルタイムUDPデータグラム通信開始要請機能は、パケット中継OFCにリアルタイムUDPデータグラム通信開始要請を送信する。
第1の実施形態では、リアルタイムUDPデータグラム通信開始要請は、第1パケット中継OFC41、および、第2パケット中継OFC42に対して送信される。
この送信される内容は、リアルタイムUDPデータグラム通信制御テーブルの該当レコードからデータをコピーしたものである。
次に、リアルタイムUDPデータグラム通信開始について説明する。
第1パケット中継OFC41は、ネットワークコントローラ12からリアルタイムUDPデータグラム通信開始要請を受信すると、リアルタイムUDPデータグラム通信開始機能を呼び出す。
図17および図18は、第1の実施形態における通信システムによる、フローテーブルのレコードの追加について説明する図である。
第1パケット中継OFC41が接続している第1OFSW21のグローバルIPアドレスが、リアルタイムUDPデータグラム通信開始要請のOFFERグローバルIPアドレスと同一である場合、第1パケット中継OFC41は、リアルタイムUDPデータグラム通信開始要請に含まれるデータを利用して、図17に示すようなフローテーブルのレコードを追加する。
ここで追加する第1のレコードは、条件部のプロトコル、送信元IP、送信元ポート、宛先IP、宛先ポート、入力・OFSWポートに、UDP、OFFER IPアドレス、OFFERポート、ANSWER IPアドレス、ANSWERポート、「※1」を1対1で対応させ、かつ、操作部の書き換え・送信元IP、書き換え・送信元ポート、書き換え・宛先IP、書き換え・宛先ポート、出力・OFSWポート)に、OFFERグローバルIPアドレス、OFFERグローバルポート、ANSWERグローバルIPアドレス、ANSWERグローバルポート、「※2」を1対1で対応させたものである。
また、追加する第2のレコードは、条件部のプロトコル、送信元IP、送信元ポート、宛先IP、宛先ポート、入力・OFSWポートに、UDP、ANSWERグローバルIPアドレス、ANSWERグローバルポート、OFFERグローバルIPアドレス、OFFERグローバルポート、「※2」を1対で対応させ、かつ、操作部の書き換え・送信元IP、書き換え・送信元ポート、書き換え・宛先IP、書き換え・宛先ポート、出力・OFSWポート)に、ANSWER IPアドレス、ANSWERポート、OFFER IPアドレス、OFFERポート、「※1」を1対1で対応させたものである。
図17に示したレコードの「※1」は、OFFER IP アドレスとOFSWポート-クライアントIPアドレスマッピングテーブルのクライアントIPアドレスとが合致するレコードのOFSWポートの番号である。
また、図17に示したレコードの「※2」は、OFSWポートのうちOFFERグローバルIPアドレスがIPアドレスとして割り振られているポートの番号である。
次に、第1パケット中継OFC41がUDPデータグラム通信開始要請を受け取り、具体的な値が入ったフローテーブルのレコードを作成したときの例を説明する。
第1パケット中継OFC41が接続している第1OFSW21のグローバルIPアドレスは、UDPデータグラム通信開始要請のOFFERグローバルIPアドレスと同一であるので、第1パケット中継OFC41は、図18に示すようなフローテーブルのレコードを第1OFSW41のフローテーブルへ追加する。
ここでは、1つ目に追加されるレコードの条件部において、第1クライアント51が送信元に、第3クライアント53が宛先に設定されたときに、操作部において、第1OFSW21が書き換え・送信元に、第2OFSW22が書き換え・宛先に設定される。
また、2つ目に追加されるレコードの条件部において、第2OFSW22が送信元に、第1OFSW21が宛先に設定されたときに、操作部において、第3クライアント53が書き換え・送信元に、第1クライアント51が書き換え・宛先に設定される(第3の設定手段による設定)。
図19は、第1の実施形態における通信システムによる、リアルタイムUDPデータグラム通信開始後のフローテーブルの構成例を表形式で説明する図である。
図19では、第1パケット中継OFC41がリアルタイムUDPデータグラム通信開始機能を実行後の第1OFSW21のフローテーブルを示す。図9に示したテーブルと比較して、図19に示したテーブルでは、プロトコルがUDPである2行分のレコードが追加されている。
第2パケット中継OFC42は、ネットワークコントローラ12からリアルタイムUDPデータグラム通信開始要請を受信すると、第1パケット中継OFC41と同様にリアルタイムUDPデータグラム通信開始機能を実行する。
図20および図21は、第1の実施形態における通信システムによる、フローテーブルのレコードの追加について説明する図である。
第2パケット中継OFC42が接続している第2OFSW22のグローバルIPアドレスが、リアルタイムUDPデータグラム通信開始要請のANSWERグローバルIPアドレスと同一の場合、第2パケット中継OFC42は、リアルタイムUDPデータグラム通信開始要請に含まれるデータを利用して、図20に示すようなフローテーブルのレコードを追加する。
ここで追加する第1のレコードは、条件部のプロトコル、送信元IP、送信元ポート、宛先IP、宛先ポート、入力・OFSWポートに、UDP、ANSWER IPアドレス、ANSWERポート、OFFER IPアドレス、OFFERポート、「※1」を1対1で対応させ、かつ、操作部の書き換え・送信元IP、書き換え・送信元ポート、書き換え・宛先IP、書き換え・宛先ポート、出力・OFSWポート)に、ANSWERグローバルIPアドレス、ANSWERグローバルポート、OFFERグローバルIPアドレス、OFFERグローバルポート、「※2」を1対1で対応させたものである。
また、追加する第2のレコードは、条件部のプロトコル、送信元IP、送信元ポート、宛先IP、宛先ポート、入力・OFSWポートに、UDP、OFFERグローバルIPアドレス、OFFERグローバルポート、ANSWERグローバルIPアドレス、ANSWERグローバルポート、「※2」を1対で対応させ、かつ、操作部の書き換え・送信元IP、書き換え・送信元ポート、書き換え・宛先IP、書き換え・宛先ポート、出力・OFSWポート)に、OFFER IPアドレス、OFFERポート、ANSWER IPアドレス、ANSWERポート、「※1」を1対1で対応させたものである。
図20に示した「※1」は、ANSWER IP アドレスとOFSWポート-クライアントIPアドレスマッピングテーブルのクライアントIPアドレスとが合致するレコードのOFSWポートの番号である。
図20に示した「※2」は、OFSWポートのうちANSWERグローバルIPアドレスがIPアドレスとして割り振られているポートの番号である。
次に、第2パケット中継OFC42がUDPデータグラム通信開始要請を受け取り、具体的な値が入ったフローテーブルのレコードを作成したときの例を説明する。
第2パケット中継OFC42が接続している第2OFSW22のグローバルIPアドレスは、UDPデータグラム通信開始要請のANSWERグローバルIPアドレスと同一であるので、第2パケット中継OFC42は、図21に示すようなフローテーブルのレコードを第2OFSW22のフローテーブルへ追加する。
ここでは、1つ目に追加されるレコードの条件部において、第3クライアント53が送信元に、第1クライアント51が宛先に設定されたときに、操作部において、第2OFSW22が書き換え・送信元に、第1OFSW21が書き換え・宛先に設定される。
また、2つ目に追加されるレコードの条件部において、第1OFSW21が送信元に、第2OFSW22が宛先に設定されたときに、操作部において、第1クライアント51が書き換え・送信元に、第3クライアント53が書き換え・宛先に設定される(第4の設定手段による設定)。
図22は、第1の実施形態における通信システムによる、リアルタイムUDPデータグラム通信開始後のフローテーブルの構成例を表形式で説明する図である
図22では、第2パケット中継OFC42がリアルタイムUDPデータグラム通信開始機能を実行後の第2OFSW22のフローテーブルを示す。図10に示したテーブルと比較して、図22に示したテーブルでは、プロトコルがUDPである2行分のレコードが追加されている。
以上の処理を実行することで、第1クライアント51 (192.168.0.1: 52345)から第3クライアント53(192.168.1.1: 1111)へWebRTCによるリアルタイムUDPデータグラム通信を行なうことが可能になった。
次に、複数のリアルタイムUDPデータグラム通信について説明する。
ここでは、前述のリアルタイムUDPデータグラム通信がなされている状態で、第4クライアント54 (192.168.1.2: 38976)から第2クライアント52(192.168.0.2:21597)へリアルタイムUDPデータグラム通信を新たに実行することについて説明する。
第4クライアント54 (192.168.1.2: 38976)から第2クライアント52(192.168.0.2:21597)へのリアルタイムUDPデータグラム通信は、第1クライアント51 (192.168.0.1: 52345)から第3クライアント53(192.168.1.1: 1111)へのリアルタイムUDPデータグラム通信と同様のステップで各装置が動作する。
パケット中継OFCが生成するOFSWのグローバルIPアドレスと紐づける送信元ポート・宛先ポートとして使用するポート番号は、以下の通りになる。
第1OFSW21のグローバルIPアドレスと紐づける送信元ポート・宛先ポートとして使用するポート番号:59024
第2OFSW22のグローバルIPアドレスと紐づける送信元ポート・宛先ポートとして使用するポート番号:19824
SDP OFFERおよびSDP ANSWERに含まれるセッションIDは、c98uieopfとする。
図23は、第1の実施形態における通信システムによる複数のリアルタイムUDPデータグラム通信に対応するリアルタイムUDPデータグラム通信制御テーブルの構成例を表形式で説明する図である。
図23に示した例では、第4クライアント54から第2クライアント52へのリアルタイムUDPデータグラム通信のために、図16に示したリアルタイムUDPデータグラム通信制御テーブルに対して、セッションID「c98uieopf」に関わる行が追加される。
図24、図25は、第1の実施形態における通信システムによる複数のリアルタイムUDPデータグラム通信に対応するフローテーブルの構成例を表形式で説明する図である。
図24に示した例では、図19に示した、第1OFSW21が所持するフローテーブルに対して、第4クライアント54から第2クライアント52へのリアルタイムUDPデータグラム通信のための行(下から2行目、3行目)が追加される。
また、図25に示した例では、図22に示した、第2OFSW22が所持するフローテーブルに対して、第4クライアント54から第2クライアント52へのリアルタイムUDPデータグラム通信のための行(下から2行分)が追加される。
以上のように、第1の実施形態では、リアルタイムUDPデータグラム通信において、TURNサーバを経由することがないので、クライアント装置間の通信を行うときの通信遅延を低減できる。つまりUDPデータグラム通信のリアルタイム性を向上させることができる。
上記のように、リアルタイムUDPデータグラム通信にTURNサーバを使用しないので、例えば、第1クライアント51と第3クライアント53が直接通信できたときの通信遅延時間が10msであった場合は、リアルタイムUDPデータグラム通信の通信遅延時間が同じ10msとなる。
また、クライアントによりSDPを運ぶパケットを暗号化する場合に、パケットを復号化する仕組みをネットワークコントローラ以外の中継装置に設ける必要がなくなる。
また、クライアントの組が複数であってもリアルタイムUDPデータグラム通信が可能である。
(第2の実施形態)
次に、第2の実施形態について説明する。この第2の実施形態では、第1の実施形態と同じく、候補アドレスをSDP OFFERやSDP ANSWERに含むリアルタイムUDPデータグラム通信(WebRTC)について説明する。
第1の実施形態に対し、第2の実施形態では、ネットワークコントローラ12とパケット中継OFCとの間で、ポート確保要請とポート確保情報のメッセージのやり取りが発生する。
図26は、第2の実施形態における通信システムの機能構成例を示す図である。
第1の実施形態と比較して、第2の実施形態におけるネットワークコントローラ12は、ポート確保情報受信機能をさらに有する。
第1の実施形態と比較して、第2の実施形態における第1パケット中継OFC41および第2パケット中継OFC42は、ポート確保要請受信機能をさらに有する。
図27は、第2の実施形態における通信システムによる処理の手順の一例を示すシーケンス図である。
第1の実施形態で説明した処理に加え、第2の実施形態では、ネットワークコントローラ12は、リアルタイムUDPデータグラム通信で使用するOFSWのグローバルIPアドレスと組になるポート番号を確保するために、パケット中継OFCに対してポート確保要請を送信する。パケット中継OFCは、ポート確保要請を受信すると確保したポート番号をネットワークコントローラ12に対してパケット確保情報として知らせるとともに、使用済みポート番号へその値を追加する。ポート確保要請を受信したネットワークコントローラ12は、リアルタイムUDPデータグラム通信制御テーブルのレコードを変更する。
次に、第2の実施形態における処理手順について説明する。
第2の実施形態では、第1の実施形態で説明した、Webサーバへのアクセス、Webアプリケーションの取得、SDP OFFERの送信がなされる。
次に、第2の実施形態における、第1クライアント51から送信されたSDP OFFERの解析について説明する。
第1の実施形態と同様に、第2の実施形態では、SDP OFFERに第1クライアント51が使用する候補アドレスが含まれる。そこで、ネットワークコントローラ12は、レコードのOFFER IP アドレス、OFFER ポートの値に、候補アドレスで示されるアドレスとポート番号(ここでは192.168.0.1と52345)を設定する。
この設定のあと、ネットワークコントローラ12は、ポート確保要請を送信するパケット中継OFCを特定するために、SDP OFFERを含んだパケット送信元IPアドレスと同一のIPアドレスを持つレコードをパケット中継OFC-IPアドレスマッピングテーブルをから探し出す。
本実施形態では、第1パケット中継OFC41のレコードが該当する。ネットワークコントローラ12は、SDP OFFERに含まれるセッションIDを含んだポート確保要請を生成して第1パケット中継OFC41に送信する。ここで送信されるセッションIDは「1jiifa9783」であるとする。
ネットワークコントローラ12は、SDP OFFERを第3クライアント53へ転送する。
次にSDP ANSWERの解析について説明する。図28、図29は、第2の実施形態における通信システムによるSDP ANSWERの解析に伴うリアルタイムUDPデータグラム通信制御テーブルのレコードの作成について説明する図である。
第2の実施形態では、SDP ANSWERの解析において第1の実施形態と同様にレコードの検索、ANSWERグローバルIPアドレスの設定、候補アドレスの設定がなされる。ただし、この時点では、該当のレコードにOFFERグローバルポートは設定されないので、リアルタイムUDPデータグラム通信制御テーブルのレコードは、図28、図29の順で作成される。
ネットワークコントローラ12は、ポート確保要請を送信するパケット中継OFCを特定するために、SDP ANSWERを含んだパケット送信元IPアドレスと同一のIPアドレスを持つレコードをパケット中継OFC-IPアドレスマッピングテーブルをから探し出す。本実施形態では、第2パケット中継OFC42のレコードが該当する。
ネットワークコントローラ12は、SDP ANSWERに含まれるセッションIDを含んだポート確保要請を生成して第2パケット中継OFC42に対して送信する。ここで送信されるセッションIDは上記の「1jiifa9783」であるとする。
ネットワークコントローラ12は、SDP ANSWERを第1クライアント51へ転送する。
次に、ポート確保要請受信について説明する。
第1パケット中継OFC41は、ネットワークコントローラ12からポート確保要請を受信するとポート確保要請受信機能を呼び出す。
第1パケット中継OFC41は、使用済みポート番号に含まれない数値(0〜65535)をランダムに生成して使用済みポート番号に追加する。ここで生成する値は、3456であるとする。
第1パケット中継OFC41は、生成したランダムの数値(3456)を対象ポート番号に、ポート確保要請に含まれるセッションIDをセッションIDに、第1OFSW21のグローバルIPアドレスをグローバルIPアドレスにそれぞれ指定したポート確保情報を生成し、生成したポート確保情報をネットワークコントローラ12に対して送信する。
ここでは、第1パケット中継OFC41の使用済みポート番号は、30841、43256、3456であるとする。
図30および図31は、第2の実施形態における通信システムにより送信されるポート確保情報の構成例を表形式で示す図である。
第1パケット中継OFC41がネットワークコントローラ12に送信するポート確保情報は、図30に示すように、セッションID「1jiifa9783」、グローバルIPアドレス「33.0.0.2」、対象ポート番号「3456」を含む。
ネットワークコントローラ12からポート確保要請を受信すると、第2パケット中継OFC42は、第1パケット中継OFC41と同様に、ポート確保要請受信機能を実行する。
ポート番号としてランダムに生成される値は2456であるとする。
第2パケット中継OFC42の使用済みポート番号は、46927、2456であるとする。
第2パケット中継OFC42がネットワークコントローラ12に送信するポート確保情報は、図31に示すように、セッションID「1jiifa9783」、グローバルIPアドレス「33.0.0.2」、対象ポート番号「2456」を含む。
次に、ポート確保情報の受信について説明する。
ネットワークコントローラ12は、第1パケット中継OFC41からポート確保情報を受信するとポート確保情報受信機能を呼び出す。
ネットワークコントローラ12は、ポート確保情報を受信すると、ポート確保情報に含まれるセッションIDと同じセッションIDを持つリアルタイムUDPデータグラム通信制御テーブルのレコードを検索する。
ポート確保情報のグローバルIPアドレスがOFFERグローバルIPアドレスと同一の場合、ネットワークコントローラ12は、OFFERグローバルポートにポート確保情報の対象ポート番号の値を設定する。
ポート確保情報のグローバルIPアドレスがANSWERグローバルIPアドレスと同一の場合、ネットワークコントローラ12は、ANSWERグローバルポートにポート確保情報の対象ポート番号の値を設定する。
第1パケット中継OFC41から受信したポート確保情報のグローバルIPアドレスは、OFFERグローバルアドレスIPアドレスと一致するので、OFFERグローバルポートに第1パケット中継OFC41から受信したポート確保情報の対象ポート番号の値を設定する。
この設定の時点では、該当のレコードは、図15に示したように設定される。
ネットワークコントローラ12は、第2パケット中継OFC42からポート確保情報を受信すると、第1パケット中継OFC41からポート確保情報を受信したときと同様にポート確保情報受信機能を呼び出す。
第2パケット中継OFC42から受信したポート確保情報のグローバルIPアドレスは、ANSWERグローバルアドレスIPアドレスと一致するので、ANSWERグローバルポートに第2パケット中継OFC42から受信したポート確保情報の対象ポート番号の値を設定する。この設定の時点では、該当のレコードは、図16に示したように設定される。
図16に示すように、レコードを構成する情報がすべて埋まった場合、ネットワークコントローラ12は、リアルタイムUDPデータグラム通信開始要請機能を呼び出す。
次に、第2の実施形態において説明した各処理の非同期実行について説明する。
この第2の実施形態で、ネットワークコントローラ12の機能が呼び出される順序は、「SDP OFFER 解析機能」→「SDP ANSWER 解析機能」→「(第1パケット中継OFC41の)ポート確保情報受信機能」→「(第2パケット中継OFC42の)ポート確保情報受信機能」であると説明したが、これに限らず、各装置で送受信するメッセージの到着順序により、「SDP OFFER 解析機能」より後に呼び出される機能は、呼び出し順序が前後しても良い。
ただし、「SDP ANSWER 解析機能」より後に「(第2パケット中継OFC42の)ポート確保情報受信機能」が呼び出されることを要する。
機能の呼び出し順序の例としては、「SDP OFFER解析機能」→「(第1パケット中継OFC41の)ポート確保情報受信機能」 → 「SDP ANSWER 解析機能」→ 「(第2パケット中継OFC42の)ポート確保情報受信機能」や、「SDP OFFER 解析機能」→ 「SDP ANSWER 解析機能」→ 「(第2パケット中継OFC42の)ポート確保情報受信機能」 →「(第1パケット中継OFC41の)ポート確保情報受信機能」が存在する。
以下、第1の実施形態と同様にリアルタイムUDPデータグラム通信開始および複数のリアルタイムUDPデータグラム通信開始を行なうことができる。
次に、複数のリアルタイムUDPデータグラム通信により変更されたデータについて説明する。複数のリアルタイムUDPデータグラム通信により変更された、ネットワークコントローラ12が所持するリアルタイムUDPデータグラム通信制御テーブル、第1OFSW21および第2OFSW22が所持するフローテーブルは、図23から図25に示した構成と同様である。
また、第1パケット中継OFC41における、複数のリアルタイムUDPデータグラム通信により変更された使用済みポート番号は、30841、43256、3456、59024である。
また、第2パケット中継OFC42における、複数のリアルタイムUDPデータグラム通信により変更された使用済みポート番号は、46927、2456、19824である。
以上のように、第2の実施形態では、ネットワークコントローラ12から各パケット中継OFCとの間でポート確保要請を行ない、この要請にしたがって、使用済みポート番号に含まれないポート番号を生成しても、第1の実施形態と同様の効果が得られる。
(第3の実施形態)
次に、第3の実施形態について説明する。第3の実施形態では、候補アドレスをSDP OFFERやSDP ANSWERに含まず、SDP CANDIDATEにより、候補アドレスを通信相手となるクライアントに通知するWebRTCを例に挙げる。候補アドレスの通知方法以外は、第2の実施形態と同様である。
図32は、第3の実施形態における通信システムの機能構成例を示す図である。
第2の実施形態と比較して、第3の実施形態におけるネットワークコントローラ12は、SDP CANDIDATE解析機能をさらに有する。
図33は、第3の実施形態における通信システムによる処理の手順の一例を示すシーケンス図である。
第2の実施形態で説明した処理に加え、第3の実施形態では、ネットワークコントローラ12と各クライアントの間でSDP CANDIDATEのやりとりが生ずる。
次に、第3の実施形態における処理手順について説明する。
まず、第3の実施形態では、第1の実施形態で説明した、Webサーバへのアクセス、Webアプリケーションの取得、SDP OFFERの送信がなされる。
ここで、第3の実施形態におけるSDP OFFERの内容について説明する。
SDPの記述例は以下の通りである。上記のように、SDP OFFERは候補アドレスを含まない。ここではa=candidate以外の属性の記述は省略する。
{
“sessionId” :” 1jiifa9783” ,
“SDP”:”・・・”
・・・
}
次に、SDP OFFERの解析について説明する。
第2の実施形態と同様に、第3の実施形態では、SDP OFFERを受け取ったネットワークコントローラ12は、SDP OFFER解析機能を実行して、SDP OFFERに含まれるセッションIDからリアルタイムUDPデータグラム通信制御テーブルのレコードを作成する。
ネットワークコントローラ12は、SDP OFFERを含んだパケットの送信元IPアドレス(ここでは33.33.0.2)をレコードのOFFER グローバル IPアドレスの値に設定する。この設定の時点では、テーブルは、図11に示した構成となる。
第3の実施形態では、SDP OFFERに第1クライアント51が使用する候補アドレスは含まれない。したがって、この時点では、レコードのOFFER IP アドレス、OFFER ポートの値に、候補アドレスで示されるアドレスとポート番号は設定されない。
次に、第2の実施形態と同様に、ポート確保要請の送信がなされ、SDP OFFERが第3クライアント53へ転送され、SDP ANSWERが第1クライアント51へ送信される。
次に、SDP ANSWERの内容について説明する。
SDPの記述例は以下の通りである。上記のように、SDP OFFERは候補アドレスを含まないので、SDP ANSWERも候補アドレスを含まない。ここではa=candidate以外の属性の記述は省略する。
{
“sessionId” :” 1jiifa9783”,
“SDP”:”・・・”
・・・
}
次に、第2の実施形態と同様に、SDP ANSWERを受け取ったネットワークコントローラ12は、SDP ANSWER解析機能を実行して、SDP ANSWERに含まれるセッションIDと同じセッションIDを持つリアルタイムUDPデータグラム通信制御テーブルのレコードを検索する。
図34は、第3の実施形態における通信システムによるSDP ANSWERの解析に伴うリアルタイムUDPデータグラム通信制御テーブルのレコードの作成について説明する図である。図34に示すように、ネットワークコントローラ12は、SDP ANSWERを含んだパケットの送信元IP(ここでは33.3.0.3)を、そのレコードのANSWER グローバル IPアドレスに設定する。
第3の実施形態では、SDP ANSWERに第3クライアント53が使用する候補アドレスは含まれない。よって、この時点では、レコードのANSWER IP アドレス、ANSWER ポートの値に、候補アドレスで示されるアドレスとポート番号(ここでは192.168.1.1と1111)は設定されない。
次に、第2の実施形態と同様に、ポート確保要請の送信がなされ、SDP ANSWERが第1クライアント51へ転送される。
図35および図36は、第3の実施形態における通信システムによるポート確保情報の受信に伴うリアルタイムUDPデータグラム通信制御テーブルのレコードの作成について説明する図である。
次に、第2の実施形態と同様に、ポート確保要請の受信、およびポート確保情報の受信がなされる。ただし、上記のように、SDPに候補アドレスは含まれないので、図35に示すように、レコード上のOFFERグローバルIPアドレス、OFFERグローバルポート、ANSWERグローバルIPアドレスに値の設定がなされた時点では、残りのOFFER IPアドレス、OFFERポート、ANSWER IPアドレス、ANSWERポートには値は設定されていない。
また、図36に示すように、レコード上のOFFERグローバルポートに、さらに値の設定がなされた時点でも、残りのOFFER IPアドレス、OFFERポート、ANSWER IPアドレス、ANSWERポートには値は設定されていない。
次に、SDP CANDIDATEの送信について説明する。
第1クライアント51は、第3クライアント53に対して候補アドレスを通知するために、シグナリングチャネルを通じて第3クライアント53へSDP CANDIDATEを送信する。
次に、SDPの内容について説明する。
SDPの記述例は以下の通りである。ここではa=candidate以外の属性の記述は省略する。
{
“sessionId” :” 1jiifa9783” ,
“SDP”:”a=candidate:1 1 UDP 1854697382 192.168.0.1 52345 typ host”,
・・・
}
次に、SDP CANDIDATEの解析について説明する。
図37は、第3の実施形態における通信システムによるSDP CANDIDATEの解析に伴うリアルタイムUDPデータグラム通信制御テーブルのレコードの作成について説明する図である。
ネットワークコントローラは、SDP CANDIDATEを受信すると、SDP CANDIDATE受信機能を実行して、SDP CANDIDATEに含まれるセッションIDと同じセッションIDを持つリアルタイムUDPデータグラム通信制御テーブルのレコードを検索する。
図37に示すように、ネットワークコントローラは、SDP CANDIDATEから候補アドレスを取り出し、上記のリアルタイムUDPデータグラム通信制御テーブルのレコードに対して値を書き込む。
SDP CANDIDATEの送信元IPアドレスがOFFERグローバルIPアドレスと同一の場合、ネットワークコントローラ12は、OFFER IP アドレス、および、OFFERポートに値を設定する。
SDP CANDIDATEの送信元IPアドレスがANSWERグローバルIPアドレスと同一の場合、ネットワークコントローラ12は、ANSWERグローバルポートにポート確保上の対象ポート番号の値を設定する。
候補アドレスは、SDPに含まれる”a=candidate”属性から取得される。候補アドレスとして有効なアドレスは、ネットワークコントローラ12が所持する「パケット中継OFC-IPアドレスマッピングテーブル」に所属するもののみである。この場合では、「192.168.0.1」は、第1パケット中継OFC41のローカルネットワークアドレスに含まれる。
第3クライアント53は、第1クライアント51に対して候補アドレスを通知するために、シグナリングチャネルを通じて第3クライアント53へSDP CANDIDATEを送信する。
次に、この送信されるSDPの内容について説明する。
SDPの記述例は以下の通りである。ここではa=candidate以外の属性の記述は省略する。
{
“sessionId” :” 1jiifa9783” ,
“SDP”:”a=candidate:1 1 UDP 1854697382 192.168.1.1 1111 typ host”,
・・・
}
次に、SDP CANDIDATEの解析について説明する。
ネットワークコントローラ12は、SDP CANDIDATEを受信すると、SDP CANDIDATE解析機能を実行して、第1クライアント51から第3クライアント53に送信されたSDP CANDIDATEと同様に処理をする。
候補アドレスは、SDPに含まれる”a=candidate”属性から取得される。候補アドレスとして有効なアドレスは、ネットワークコントローラ12が所持するパケット中継OFC-IPアドレスマッピングテーブルに所属するもののみである。この場合では、「192.168.1.1」は、第2パケット中継OFC42のローカルネットワークアドレスに含まれる。
図16に示すように、レコードを構成する情報がすべて埋まった場合、ネットワークコントローラ12は、リアルタイムUDPデータグラム通信開始要請機能を呼び出す。
次に、第3の実施形態で説明した各処理の非同期実行について説明する。
この実施形態で、ネットワークコントローラ12の機能が呼び出される順序は、「SDP OFFER 解析機能」→「SDP ANSWER 解析機能」→「(第1パケット中継OFC41の)ポート確保情報受信機能」 →「(第2パケット中継OFC42の)ポート確保情報受信機能」→「(第1クライアント51から第3クライアント53へ送信された)SDP CANDIDATE 解析機能」→「(第3クライアント53から第1クライアント51へ送信された)SDP CANDIDATE 解析機能」であると説明したが、これに限らず、各装置で送受信するメッセージの到着順序により、「SDP OFFER 解析機能」より後に呼び出される機能は、呼び出し順序が前後しても良い。
ただし、「SDP ANSWER 解析機能」より後に「(第2パケット中継OFC42の)ポート確保情報受信機能」と「(第3クライアント53から第1クライアント51へ送信された)SDP CANDIDATE 解析機能」が呼び出される必要がある。
呼び出し順序の例としては、 「SDP OFFER 解析機能」→「(第1パケット中継OFC41の)ポート確保情報受信機能」 → 「(第1クライアント51から第3クライアント53へ送信された)SDP CANDIDATE 解析機能」→ 「SDP ANSWER 解析機能」→ 「(第3クライアント53から第1クライアント51へ送信された)SDP CANDIDATE 解析機能」→ 「(第2パケット中継OFC42の)ポート確保情報受信機能」や、 「SDP OFFER 解析機能」→ 「SDP ANSWER 解析機能」→ 「(第2パケット中継OFC42の)ポート確保情報受信機能」 →「(第1パケット中継OFC41の)ポート確保情報受信機能」 →「(第3クライアント53から第1クライアント51へ送信された)SDP CANDIDATE 解析機能」→ 「(第1クライアント51から第3クライアント53へ送信された)SDP CANDIDATE 解析機能」などが存在する。
以降は、第2の実施形態と同様にリアルタイムUDPデータグラム通信がなされる。
以上のように、第3の実施形態では、候補アドレスをSDP OFFERやSDP ANSWERに含めずに、SDP CANDIDATEに含めるようにしても、第1の実施形態と同様の効果が得られる。
(第4の実施形態)
次に、第4の実施形態について説明する。この第4の実施形態では、リアルタイムUDPデータグラム通信の遮断について説明する。
ここでは、第1乃至第3の実施形態で説明した複数のリアルタイムUDPデータグラム通信がされ、これらの通信のうち、第1クライアント51と第3クライアント53のリアルタイムUDPデータグラム通信を遮断する例について説明する。
図38は、第4の実施形態における通信システムの機能構成例を示す図である。
第3の実施形態と比較して、第4の実施形態におけるネットワークコントローラ12は、リアルタイムUDPデータグラム通信遮断要請機能、リアルタイムUDPデータグラム通信終了検知機能をさらに有する。また、各パケット中継OFCは、リアルタイムUDPデータグラム通信遮断機能をさらに有する。
ネットワークコントローラ12は、リアルタイムUDPデータグラム通信終了メッセージ(クライアントからの、通信の終了の要請)を受信すると、通信を終了するリアルタイムUDPデータグラム通信制御テーブルのレコードを削除し、リアルタイムUDPデータグラム通信遮断要請をパケット中継OFCに送信する。リアルタイムUDPデータグラム通信遮断要請を受け取ったパケット中継OFCは、通信を終了するリアルタイムUDPデータグラム通信を実現するフローテーブルをOFSWから削除するとともに、使用済みポート番号から通信を終了するリアルタイムUDPデータグラム通信で用いていたポート番号を削除する。
図39は、第4の実施形態における通信システムによる処理の手順の一例を示すシーケンス図である。
第3の実施形態で説明した処理に加え、第4の実施形態では、クライアントからネットワークコントローラ12にリアルタイムUDPデータグラム通信終了メッセージが送られ、
ネットワークコントローラ12から各パケット中継OFCにリアルタイムUDPデータグラム通信遮断要請が送られ、各パケット中継OFCは、各OFSWに対してフローテーブル削除を行なう。
ここで、リアルタイムUDPデータグラム通信の遮断を実施する前の各装置における初期データについて説明する。
ネットワークコントローラ12におけるリアルタイムUDPデータグラム通信制御テーブル、およびパケット中継OFC-IPアドレスマッピングテーブルの構成は、図23、図4に示した構成と同じとする。
第1パケット中継OFC41における使用済みポート番号は、第2の実施形態と同じく、30841、43256、3456、59024とする。
第1パケット中継OFC41における、OFSWポート-クライアントIPアドレスマッピングテーブルの構成は図6に示した構成と同じとする。
第2パケット中継OFC42における使用済みポート番号は、第2の実施形態と同じく、46927、2456、19824とする。
第2パケット中継OFC42における、OFSWポート-クライアントIPアドレスマッピングテーブルの構成は図7に示した構成と同じとする。
第1OFSW21におけるフローテーブルの構成は、図24に示した構成と同じとする。第2OFSW22におけるフローテーブルの構成は、図25に示した構成と同じとする。
次に、リアルタイムUDPデータグラム通信終了メッセージについて説明する。
第1クライアント51は、リアルタイムUDPデータグラム通信を終了するために、シグナリングチャネルを通じて第3クライアント53へリアルタイムUDPデータグラム通信終了メッセージを送信する。このメッセージに含まれるセッションIDは、「1jiifa9783」とする。
次に、ネットワークコントローラ12による、リアルタイムUDPデータグラム通信の終了検知について説明する。
リアルタイムUDPデータグラム通信終了メッセージを受け取ったネットワークコントローラ12は、リアルタイムUDPデータグラム通信終了検知機能を呼び出す。
ネットワークコントローラ12は、リアルタイムUDPデータグラム通信終了メッセージに含まれるセッションIDと同じセッションIDを持つリアルタイムUDPデータグラム通信制御テーブルのレコードを検索する。
検索したレコードのデータをメッセージ内容とした、リアルタイムUDPデータグラム通信遮断要請をパケット中継OFCに対して送信するために、ネットワークコントローラ12は、検索したレコードをリアルタイムUDPデータグラム通信遮断要請機能に対して渡す。ネットワークコントローラ12は、リアルタイムUDPデータグラム通信終了メッセージを第3クライアント53へ転送する。
図40は、第4の実施形態における通信システムによる、リアルタイムUDPデータグラム通信制御テーブルのレコードの削除について説明する図である。
その後、図40に示すように、ネットワークコントローラ12は、リアルタイムUDPデータグラム通信終了メッセージに含まれるセッションIDと同じセッションIDを持つリアルタイムUDPデータグラム通信制御テーブルのレコード、ここではリアルタイムUDPデータグラム通信終了に含まれるセッションIDは「1jiifa9783」を含むレコードを削除する。
次に、ネットワークコントローラ12によるリアルタイムUDPデータグラム通信遮断要請について説明する。
リアルタイムUDPデータグラム通信遮断要請機能は、前述のリアルタイムUDPデータグラム通信終了検知機能から渡されたリアルタイムUDPデータグラム通信制御テーブルのレコードをメッセージの内容としたリアルタイムUDPデータグラム通信遮断要請を、パケット中継OFCに対して送信する。
送信対象となるパケット中継OFCは、OFFER グローバルIPアドレスとANSWERグローバル IPアドレスを持つパケット中継OFCである。このパケット中継OFCは、パケット中継OFC-IPアドレスマッピングテーブルをOFFER グローバルIPアドレス、や、ANSWERグローバルIPアドレスとパケット中継OFC-IPアドレスマッピングテーブルIPアドレスが一致するかどうかで調べることができる。
第4の実施形態では、リアルタイムUDPデータグラム通信遮断要請が第1パケット中継OFC41と第2パケット中継OFC42に送信される。この送信されるリアルタイムUDPデータグラム通信遮断要請の構成は、図16に示した構成と同様である。
次に、リアルタイムUDPデータグラム通信遮断について説明する。
ネットワークコントローラ12からリアルタイムUDPデータグラム通信遮断要請を受信すると、第1パケット中継OFC41は、リアルタイムUDPデータグラム通信遮断機能を呼び出す。
図41、図42、図43、図44は、第4の実施形態における通信システムによる、フローテーブルのレコードの削除について説明する図である。
第1パケット中継OFC41が接続している第1OFSW21のグローバルIPアドレスが、リアルタイムUDPデータグラム通信遮断要請のOFFERグローバルIPアドレスと同一の場合、第1パケット中継OFC41は、リアルタイムUDPデータグラム通信遮断要請に含まれるデータを利用して、フローテーブルにおける、図41に示す条件に該当するレコードを削除する(ここでは合計2レコードが削除される)。この図41で示した条件は、図17に示した条件部の入力・OFSWポートの値、操作部の出力・OFSWポートの値を「any」に変更したものである。
第1パケット中継OFC41にかかる第1OFSW21のグローバルIPアドレスは、リアルタイムUDPデータグラム通信遮断要請のOFFERグローバルIPアドレスと同一である。
次に、第1パケット中継OFC41がUDPデータグラム通信遮断要請を受け取り、フローテーブルのレコードを削除したときの具体例を説明する。
上記のように第1パケット中継OFC41が接続している第1OFSW21のグローバルIPアドレスは、UDPデータグラム通信開始要請のOFFERグローバルIPアドレスと同一であるので、第1パケット中継OFC41は、図42に示すように、フローテーブルにおける、図41に示す条件に該当するレコード、つまり、図24で示したフローテーブルの上から5、6行目のレコードを削除する。
第4の実施形態では、OFSWのグローバルIPアドレスが、リアルタイムUDPデータグラム通信遮断要請のOFFERグローバルIPアドレスと同一の場合は、リアルタイムUDPデータグラム通信遮断要請のOFFERグローバルポートと一致する使用済みポート番号のレコードを削除する。
上記の第1パケット中継OFC41の場合は、3456が該当する。
ネットワークコントローラ12からリアルタイムUDPデータグラム通信遮断要請を受信すると、第2パケット中継OFC42は、第1パケット中継OFC41と同様にリアルタイムUDPデータグラム通信遮断機能を実行する。
また、第2パケット中継OFC42が接続している第2OFSW22のグローバルIPアドレスが、リアルタイムUDPデータグラム通信遮断要請のANSWERグローバルIPアドレスと同一の場合、第2パケット中継OFC42は、図44に示すように、リアルタイムUDPデータグラム通信遮断要請に含まれるデータを利用して、フローテーブルにおける図43に示す条件に該当するレコードを削除する(合計2レコードが削除される)。この図43で示した条件は、図20に示した条件部の入力・OFSWポートの値、操作部の出力・OFSWポートの値を「any」に変更したものである。
第2パケット中継OFC42にかかる第2OFSW22のグローバルIPアドレスは、リアルタイムUDPデータグラム通信遮断要請のANSWERグローバルIPアドレスと同一である。
次に、第2パケット中継OFC42がUDPデータグラム通信開始要請を受け取り、具体的な値が入ったフローテーブルのレコードを作成したときの例について説明する。
上記のように第2パケット中継OFC42が接続している第2OFSW22のグローバルIPアドレスは、UDPデータグラム通信開始要請のANSWERグローバルIPアドレスと同一であるので、第2パケット中継OFC42は、図42に示すように、フローテーブルにおける、図43に示す条件に該当するレコード、つまり、図25で示したフローテーブルの上から3、4行目のレコードを削除する。
OFSWのグローバルIPアドレスが、リアルタイムUDPデータグラム通信遮断要請のANSWERグローバルIPアドレスと同一の場合は、パケット中継OFCは、リアルタイムUDPデータグラム通信遮断要請のANSWERグローバルポートと一致する使用済みポート番号のレコードを削除する。
上記の第2パケット中継OFC42の場合は、2456が該当する。
以上のように、第4の実施形態では、第1の実施形態で説明した効果に加え、リアルタイムUDPデータグラム通信の終了をネットワークコントローラで検出して、リアルタイムUDPデータグラム通信を遮断することができる。
(第5の実施形態)
次に、第5の実施形態について説明する。この第5の実施形態では、シグナリングチャネルの外出し(Webサーバからのシグナリングチャネルの分離)について説明する。
図45は、第5の実施形態における通信システムの機能構成例を示す図である。
それぞれのクライアントがWebSocketのような通信手段でシグナリングチャネルと通信が可能であれば、図45に示すように、シグナリングチャネル11は、Webサーバ10の外側に設置されていても良い。
なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
また、上記の各実施形態に記載した手法は、計算機(コンピュータ)に実行させることができるプログラム(ソフトウエア手段)として、例えば磁気ディスク(フロッピー(登録商標)ディスク、ハードディスク等)、光ディスク(CD−ROM、DVD、MO等)、半導体メモリ(ROM、RAM、フラッシュメモリ等)等の記録媒体に格納し、また通信媒体により伝送して頒布することもできる。なお、媒体側に格納されるプログラムには、計算機に実行させるソフトウエア手段(実行プログラムのみならずテーブルやデータ構造も含む)を計算機内に構成させる設定プログラムをも含む。本装置を実現する計算機は、記録媒体に記録されたプログラムを読み込み、また場合により設定プログラムによりソフトウエア手段を構築し、このソフトウエア手段によって動作が制御されることにより上述した処理を実行する。なお、本明細書でいう記録媒体は、頒布用に限らず、計算機内部あるいはネットワークを介して接続される機器に設けられた磁気ディスクや半導体メモリ等の記憶媒体を含むものである。
10…Webサーバ、11…シグナリングチャネル、12…ネットワークコントローラ
21…第1OFSW、22…第2OFSW、30…ルータ、41…第1パケット中継OFC、42…第2パケット中継OFC、51…第1クライアント、52…第2クライアント、53…第3クライアント、54…第4クライアント。

Claims (7)

  1. 通信処理装置、第1の通信制御装置、第1のスイッチ、第2の通信制御装置、第2のスイッチを有する通信システムであって、
    前記通信処理装置は、
    前記第1のスイッチに接続可能な第1のクライアント装置から、前記第2のスイッチに接続可能な第2のクライアント装置への通信の提案信号を前記第1のスイッチを介して受信したときに、前記第1のクライアント装置と前記第2のクライアント装置との間の通信制御テーブルのレコードに、前記通信のための前記第1のスイッチおよび前記第1のクライアント装置の識別情報を設定する第1の設定手段と、
    前記提案信号を前記第2のクライアント装置へ伝送する第1の伝送手段と、
    前記提案信号に対する返答信号を前記第2のクライアント装置から前記第2のスイッチを介して受信したときに、前記通信のための前記第2のスイッチおよび前記第2のクライアント装置の識別番号を前記レコードに設定する第2の設定手段と、
    前記第1および第2の設定手段による前記レコードへの設定内容を含む、前記通信の開始の要請信号を前記第1および第2の通信制御装置に伝送する第2の伝送手段と
    を有し、
    前記第1の通信制御装置は、
    前記要請信号に含まれる設定内容に基づいて、前記通信の開始のために、前記第1のクライアント装置から前記第2のクライアント装置へ前記通信のためのパケットが通過するときの前記第1のスイッチの動作を定めるテーブルに、前記通信のための前記第1のスイッチの動作を設定する第3の設定手段を有し、
    前記第2の通信制御装置は、
    前記要請信号に含まれる設定内容に基づいて、前記第2のクライアント装置から前記第1のクライアント装置へ前記パケットが通過するときの前記第2のスイッチの動作を定めるテーブルに、前記通信の開始のための前記第2のスイッチの動作を設定する第4の設定手段を有する
    ことを特徴とする通信システム。
  2. 前記第1の設定手段は、
    前記第1のスイッチに接続可能な第1のクライアント装置から、前記第2のスイッチに接続可能な第2のクライアント装置への通信の提案信号を前記第1のスイッチを介して受信したときに、前記第1のクライアント装置と前記第2のクライアント装置との間の通信制御テーブルのレコードに、(1)前記第1のスイッチのグローバルIPアドレス、(2)前記第1のクライアント装置のIPアドレスおよびポート番号を、(3)前記通信に使用する、前記第1のスイッチのグローバルポート番号を前記レコードに設定し、
    前記第2の設定手段は、
    前記提案信号に対する返答信号を前記第2のクライアント装置から前記第2のスイッチを介して受信したときに、(1)前記第2のスイッチのグローバルIPアドレス、(2)前記第2のクライアント装置のIPアドレスおよびポート番号、(3)前記通信に使用する、前記第2のスイッチのグローバルポート番号を前記レコードに設定する
    ことを特徴とする請求項1に記載の通信システム。
  3. 前記第1の通信制御装置の前記第3の設定手段は、
    前記要請信号に含まれる設定内容に基づいて、前記通信の開始のために、前記第1のクライアント装置から前記第2のクライアント装置へ前記通信のためのパケットが通過するときの前記第1のスイッチの動作を定めるテーブルに、(1)前記第1のクライアント装置が送信元で前記第2のクライアント装置が宛先であるときに前記第1のスイッチから第2のスイッチへ前記パケットを送信させる前記第1のスイッチの動作、および、(2)前記第2のスイッチが前記送信元で前記第1のスイッチが前記宛先であるときに前記第2のクライアント装置から前記第1のクライアント装置に前記パケットを送信させる前記第1のスイッチの動作を設定し、
    前記第2の通信制御装置の前記第3の設定手段は、
    前記要請信号に含まれる設定内容に基づいて、前記通信の開始のために、前記第2のクライアント装置から前記第1のクライアント装置へ前記パケットが通過するときの前記第2のスイッチの動作を定めるテーブルに、(1)前記第2のクライアント装置が送信元で前記第1のクライアント装置が前宛先であるときに前記第2のスイッチから第1のスイッチへ前記パケットを送信させる前記第1のスイッチの動作、および、(2)前記第1のスイッチが送信元で前記第2のスイッチが宛先であるときに前記第1のクライアント装置から前記第2のクライアント装置に前記パケットを送信させる前記第2のスイッチの動作を設定する
    ことを特徴とする請求項1に記載の通信システム。
  4. 前記通信処理装置は、
    前記第1の設定手段により設定する前記第1のスイッチのグローバルポート番号の生成を前記第1の通信制御装置に要請する第1の要請手段と、
    前記第2の設定手段により設定する前記第2のスイッチのグローバルポート番号の生成を前記第2の通信制御装置に要請する第2の要請手段とをさらに有し、
    前記第1の設定手段は、前記要請にしたがって前記第1の通信制御装置により生成された前記第1のスイッチのグローバルポート番号を前記レコードに設定し、
    前記第1の設定手段は、前記要請にしたがって前記第2の通信制御装置により生成された前記第1のスイッチのグローバルポート番号を前記レコードに設定する
    ことを特徴とする請求項2に記載の通信システム。
  5. 前記提案信号は、前記第1のクライアント装置のIPアドレスおよび前記第1のクライアント装置が前記通信に使用するポート番号を含み、
    前記返答信号は、前記第2のクライアント装置のIPアドレスおよび前記第2のクライアント装置が前記通信に使用するポート番号を含む
    ことを特徴とする請求項2に記載の通信システム。
  6. 前記通信処理装置は、
    前記第1のクライアント装置のIPアドレスおよび前記第1のクライアント装置が前記通信に使用するポート番号を、前記提案信号とは別に受信し、
    前記第2のクライアント装置のIPアドレスおよび前記第2のクライアント装置が前記通信に使用するポート番号を、前記返答信号とは別に受信する
    ことを特徴とする請求項2に記載の通信システム。
  7. 前記通信処理装置は、
    前記第1のクライアント装置からの、前記要請信号にしたがって開始された通信の終了の要請を受信したときに、この通信に関わる、前記第1および第2の設定手段による前記レコードへの設定内容を削除し、前記通信の遮断を前記第1および第2の通信制御装置に要請し、
    前記第1の通信制御装置は、
    前記通信の遮断の要請にしたがって、前記第3の設定手段による設定内容を削除し、
    前記第2の通信制御装置は、
    前記通信の遮断の要請にしたがって、前記第4の設定手段による設定内容を削除する
    ことを特徴とする請求項1に記載の通信システム。
JP2016184368A 2016-09-21 2016-09-21 通信システム Active JP6505649B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016184368A JP6505649B2 (ja) 2016-09-21 2016-09-21 通信システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016184368A JP6505649B2 (ja) 2016-09-21 2016-09-21 通信システム

Publications (2)

Publication Number Publication Date
JP2018050177A true JP2018050177A (ja) 2018-03-29
JP6505649B2 JP6505649B2 (ja) 2019-04-24

Family

ID=61766572

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016184368A Active JP6505649B2 (ja) 2016-09-21 2016-09-21 通信システム

Country Status (1)

Country Link
JP (1) JP6505649B2 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014127866A (ja) * 2012-12-26 2014-07-07 Nec Corp 通信システムと装置と方法とプログラム
WO2015079616A1 (ja) * 2013-11-27 2015-06-04 日本電気株式会社 通信システム、通信方法、ネットワーク情報結合装置およびネットワーク情報結合プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014127866A (ja) * 2012-12-26 2014-07-07 Nec Corp 通信システムと装置と方法とプログラム
WO2015079616A1 (ja) * 2013-11-27 2015-06-04 日本電気株式会社 通信システム、通信方法、ネットワーク情報結合装置およびネットワーク情報結合プログラム
US20160294673A1 (en) * 2013-11-27 2016-10-06 Nec Corporation Communication system, communication method, network information combination apparatus, and network information combination program

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
坂谷精一、古川聖: "WebRTCにおける付加サービス実現方式の一検討", 電子情報通信学会技術研究報告, vol. Vol.114、No.28, JPN6019005924, 8 May 2014 (2014-05-08), JP, pages 1〜 *

Also Published As

Publication number Publication date
JP6505649B2 (ja) 2019-04-24

Similar Documents

Publication Publication Date Title
EP3342127B1 (en) Network packet flow controller with extended session management
EP3021534B1 (en) A network controller and a computer implemented method for automatically define forwarding rules to configure a computer networking device
US10033648B2 (en) Multicast message forwarding method and device
US8626879B2 (en) Systems and methods for establishing network connections using local mediation services
EP3293935B1 (en) Software defined network-based data processing method, and system
US20140019639A1 (en) Computer system and communication method
US20170104671A1 (en) Data packet processing method, service node, and delivery node
JP5436451B2 (ja) 通信端末、通信方法、プログラム
JP6248929B2 (ja) 通信システム、アクセス制御装置、スイッチ、ネットワーク制御方法及びプログラム
JP2019500822A (ja) 仮想マシンパケット制御
Guimaraes et al. Experimenting content-centric networks in the future internet testbed environment
CN109218111B (zh) 一种处理报文的方法和转发器
TWI625050B (zh) 基於軟體定義網路的網路傳輸方法與系統
US20190253341A1 (en) Service Related Routing Method and Apparatus
KR20180025944A (ko) Sdn 기반의 arp 구현 방법 및 장치
CA2959022A1 (en) Software defined networking portal
JP2018061267A (ja) ネットワークのプローブ・ルーティング
US20140310429A1 (en) Server-side http translator
CN104168302B (zh) 设备操控实现方法、系统和代理网关
JP6048129B2 (ja) 通信システムと装置と方法とプログラム
JP2015164295A (ja) 情報伝送システム、情報通信装置、情報伝送装置、及びプログラム
JP6505649B2 (ja) 通信システム
US20200304399A1 (en) Method and system for interfacing communication networks
US20160182357A1 (en) Internet Control Message Protocol For Completing A Secondary Protocol Transaction
CN109040199A (zh) 一种分发资源数据的方法、系统及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180329

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190207

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190226

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190327

R151 Written notification of patent or utility model registration

Ref document number: 6505649

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151