JP6505649B2 - 通信システム - Google Patents
通信システムInfo
- Publication number
- JP6505649B2 JP6505649B2 JP2016184368A JP2016184368A JP6505649B2 JP 6505649 B2 JP6505649 B2 JP 6505649B2 JP 2016184368 A JP2016184368 A JP 2016184368A JP 2016184368 A JP2016184368 A JP 2016184368A JP 6505649 B2 JP6505649 B2 JP 6505649B2
- Authority
- JP
- Japan
- Prior art keywords
- communication
- switch
- client device
- address
- port
- 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.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Description
プライベートアドレスを持つクライアント同士がUDPデータグラム通信を行うときは、TURN(Traversal Using Relays around NAT:Symmetric NATやファイアウォールを通過するパケットをリレーさせるためのプロトコル)サーバによるパケットのリレーが必要になる。TURNサーバによるパケットリレーにより、プライベートアドレスを持つクライアント同士が広域通信網を越えてリアルタイムUDPデータグラム通信をするときは、リアルタイム性の確保が困難になる。
また、通信の組み合わせが増加するとTURNサーバを経由する通信が増加するために、このTURNサーバが通信のボトルネックとなる。
まず、各実施形態に関係する用語の意味について以下に説明する。
パケット:
(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セグメントが使用される。
ファイアウォール:あるネットワークを不正アクセスから守るための装置である。
パケットフィルタリング:ルールをもとに、ファイアウォールでパケットの通過制御を行うことである。
(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アドレス、送信元ポートまたは宛先ポートとして利用できるポート番号のことである。
(1)リアルタイムUDPデータグラム通信の発呼側からリアルタイムUDPデータグラム通信で使用するメディアを提案することである。
(2)SDP OFFERで候補アドレスを通信相手となるクライアントに対して通知する場合もある。
(3)SDPとリアルタイムUDPデータグラム通信のセッションIDを含む。
(1)SDP OFFERを受け取ったクライアントから、このSDP OFFERの送信元に対して、当該SDP OFFERで提案されたメディアが受け入れ可能かを返答することである。
(2)SDP ANSWERで通信相手となるクライアント候補アドレスを通知する場合もある。
(3)SDPとリアルタイムUDPデータグラム通信のセッションIDを含む。
(1)候補アドレスを通信相手となるクライアントに対して通知することである。
(2)SDPとリアルタイムUDPデータグラム通信のセッションIDを含む。
(1)リアルタイムUDPデータグラム通信を終了することを通信相手となるクライアントに対して通知することである。
(2)リアルタイムUDPデータグラム通信のセッションIDを含む。
(1)WebRTCでSDPを交換するために使用されるソフトウエアである。
(2)SDP OFFER・SDP ANSWER・SDP CANDIDATEで使用するセッションIDは、SDP OFFERを発呼するクライアントが指定する。
(1)SDN(Software Defined Network)を実現するプロトコルである。
(2)OFC(OpenFlowコントローラ)(後述)およびOFSWから構成される。
(2−1)OFSWに備えられた物理的なポートのうち、OFSWを制御するためのみに使用する管理ポートに接続される。
(2−2)OFCとOFSWの通信は、TCPセグメント、もしくは、UDPデータグラムで行われる。
(3)本実施形態では、OpenFlowを用いてパケットの通信制御を行う。
OpenFlowスイッチ(OFSW):
(1)OpenFlowに対応したスイッチである。
(2)インターネットプロトコルスイートにおけるリンク層の媒体、例えばEthernetケーブルなどが接続されるOFSWポートを複数有する。
(3)フローテーブル(後述)によりパケットの処理を実施する。
OFSWポート:OFSWが備える物理的なポートである。
(1)OpenFlowでパケットの通信制御をするためのルールが記述され、このフローテーブルの条件部に合致するパケットに対して、このフローテーブルの操作部で定義された処理がOFSW上で実行される。
(2)OFCにより作成され、OFSWに配布される。
(3)フローテーブルの条件部に合致しないパケットがOFSWを通過する場合、このパケットはOFCに転送される。この転送されたパケットは、OFCのソフトウエアにしたがって制御される。
使用済みポート番号:OFSWに割り振られたグローバルIPアドレスが使用している送信元ポート、あるいは、宛先ポートとして使用する番号であり、OFCが所持する。
(1)本実施形態を実現するためのOFCとして実装されOFSWのフローテーブルを管理する。
(2)ファイアウォール用フローテーブル作成・配布機能、(パケットを使用した不要な通信を遮断する機能)、Symmetric NAT用フローテーブル作成・配布機能(Symmetric NATを実現し、使用済みポート番号に現在使用しているポート番号を追加する)を実装する。
(1)後述のネットワークコントローラから後述のポート確保要請を受け取りOFSWのグローバルIPアドレスに対応付ける送信元ポートと宛先ポートとなるポート番号を確保するための機能である。
(2)ポート番号を確保した後に、ポート確保要請をネットワークコントローラに対して送信する。
(1)例えば、パケット中継OFCを制御するサーバ装置が実現する。以下の第1ないし第4の実施形態ではネットワークコントローラとサーバ装置は同義である。
(2)ネットワークコントローラとパケット中継OFCは、TCPセグメント、もしくは、UDPデータグラムを用いて通信をする。
(3)ネットワークコントローラは、クライアントのSDPを何らかの手段で取り込む。WebRTCならシグナリングチャネル上にネットワークコントローラを実装する。
(1)SDP OFFERを受信したときにSDP OFFERに含まれるSDPを解析し、後述のリアルタイムUDPデータグラム通信制御テーブルに対して、新たに開始するリアルタイムUDPデータグラム通信のレコードを追加する。
(2)後述するポート確保要請をパケット中継OFCに対して送信する。
(1)SDP ANSWERを受信したときに、このSDP ANSWERに含まれるSDPを解析し、後述のリアルタイムUDPデータグラム通信制御テーブルの該当レコードを変更する。変更した結果、リアルタイムUDPデータグラム通信制御テーブルの該当レコードの列がすべて埋まった場合に、リアルタイムUDPデータグラム通信開始要請機能を呼び出す。
(2)後述のポート確保要請をパケット中継OFCに対して送信する。
リアルタイムUDPデータグラム通信遮断要請機能:パケット中継OFCに対してリアルタイム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に転送される情報であり、ネットワークコントローラが保持する。
(1)パケット中継OFCとパケット中継OFCが接続するOFSWに割り振られたグローバルIPアドレス、および、OFSWに接続するクライアントのローカルIPアドレスが所属するネットワークアドレスの対応表。
(2)ネットワークコントローラに予め入力しておく必要がある。
(1)ネットワークコントローラのリアルタイムUDPデータグラム通信開始要請機能により、ネットワークコントローラからパケット中継OFCに対して送信される。
(2)送信されるデータは、リアルタイムUDPデータグラム通信制御テーブルのうち、リアルタイムUDPデータグラム通信を開始する該当の1レコードである。
(1)ネットワークコントローラのリアルタイムUDPデータグラム通信遮断要請機能により、ネットワークコントローラからパケット中継OFCに対して送信される。
(2)送信されるデータは、リアルタイムUDPデータグラム通信制御テーブルのうち、リアルタイムUDPデータグラム通信を遮断する該当の1レコードである。
(1)OFSWに割り振られたグローバルIPアドレスで使用する送信元ポート・宛先ポートについてポートの確保要請を通知することである。
(2)ネットワークコントローラからパケット中継OFCに送信され、セッションIDを含む。
(1)OFSWに割り振られたグローバルIPアドレスであらたに使用する送信元ポート・宛先ポートを他装置に対して通知することである。
(2)パケット中継OFCからネットワークコントローラに送信されセッションID、グローバルIPアドレス、対象ポート番号を含む。
次に、第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は、広域通信網および第1OFSW21を介して、第1パケット中継OFC41、第1クライアント51、第2クライアント52と通信可能に接続される。
第2OFSW22は、第2パケット中継OFC42と通信可能に接続される。
ネットワークコントローラ12は、SDP OFFER、SDP ANSWERを解析して、SDPから候補アドレスを収集する。ネットワークコントローラ12は、収集した候補アドレスから、リアルタイムUDPデータグラム通信制御テーブルのレコードの作成や変更を実施する。
図1に示した細線は、クライアント間やWebサーバ10との間の通信経路である。
図1に示した点線は、各パケット中継OFC41、42と各OFSW21、22との間の通信経路である。
ただし、これらの線は、あくまで装置(あるいは、装置の機能)間のインターネットプロトコルスイートにおけるネットワーク層の通信を表す。したがって、これらの線で表された通信が、インターネットプロトコルスイートのリンク層において、同一の物理媒体を使用して行われる場合もある。
また、図1には、第1OFSW21と第1パケット中継OFC41との間の通信経路として、上記のように太線の通信経路と点線の通信経路があるが、これらの通信経路に同じ物理ケーブルを使用することはできない。これは、第1OFSW21の管理ポートとクライアントが接続するOFSWポートとは物理的に異なるポートであるためである。
次に、第1の実施形態において実現したいリアルタイムUDPデータグラム通信について説明する。
第1の実施形態において、第1クライアント51から第3クライアント53へのリアルタイムUDPデータグラム通信は、Webサーバ10のような何らかのサーバを経由することなく行われる。
ただし、SDPの交換については、Webサーバ10上のシグナリングチャネル11を経由して通信がなされる。
ネットワークコントローラ12からパケット中継OFCに対して通信が可能であれば、図1に示すように、パケット中継OFCとネットワークコントローラ12の通信は、OFSW(図1に示した例では第1OFSW21)やルータ30を経由していてもよい。
Webサーバ10と広域通信網との物理的な接続、および、第1OFSW21と広域通信網との物理的な接続では、ネットワークコントローラ12と第1パケット中継OFC41との通信経路、および、クライアントとクライアント(または、Webサーバ)の通信経路で、インターネットプロトコルスイートのリンク層は、同一のケーブルを使用しても良い。
図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と第1パケット中継OFC41との間の通信経路のIPアドレスは172.17.0.254であり、第2OFSW22とルータ30との間の通信経路のIPアドレスは172.17.1.254である。
図4は、第1の実施形態における通信システムのネットワークコントローラが管理するパケットOFC-IPアドレスマッピングテーブルの構成例を表形式で示す図である。
図4に示すように、ネットワークコントローラは、パケット中継OFC-IPアドレスマッピングテーブルを管理する。このテーブルは、各パケット中継OFCのローカルネットワークと、通信相手の各OFSWのIPアドレスを管理する。
図5に示した例では、第1OFSW21における広域通信網側のOFSWポートの番号は「1」であり、第1パケット中継OFC41側のOFSWポートの番号は「2」であり、第1クライアント51側のOFSWポートの番号は「3」であり、第2クライアント52側のOFSWポートの番号は「4」である。
また、各パケット中継OFCと各OFSWの接続は、OFSWにおけるOFSWポートと異なる管理ポートを用いるため、ここでは番号を記述しない。
図6に示すように、第1パケット中継OFC41は、OFSWポート-クライアントIPアドレスマッピングテーブルを管理する。
このテーブルは、第1パケット中継OFC41の、広域通信網側以外の各OFSWポートの番号と、このOFSWポートに接続される各装置のIPアドレスを管理する。
このテーブルは、第2パケット中継OFC42の、広域通信網側以外の各OFSWポートの番号と、このOFSWポートに接続される各装置のIPアドレスを管理する。
図8は、第1の実施形態における通信システムの第1OFSW21が管理するフローテーブルの構成例を表形式で示す図である。
あらかじめ、第1パケット中継OFC41は、ファイアウォール用フローテーブル作成・配布機能を実行しておき、Webサーバ10以外と通信をできないように、フローテーブルを第1OFSW21の図示しないメモリに格納しておく。
図8に示すように、第1OFSW21用のフローテーブルでは、第1パケット中継OFC41とWebサーバ(ネットワークコントローラ12)の通信を許可する。
また、第2OFSW22は、フローテーブルの初期データは特に管理しない。
アクセスの例としては、(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)が挙げられる。
第1クライアント51はWebアプリケーションを取得するためにWebサーバ10へHTTP GETを発行する。
Webサーバ10は、受け取ったHTTP GETに応じ、HTML・Javascript・CSSなどを第1クライアント51に対して送信する。
第3クライアント53によっても同様にWebアプリケーション取得が行なえる。
図9は、第1の実施形態における通信システムの、Webアプリケーション取得後の第1OFSWのフローテーブルの構成例を表形式で示す図である。
図9に示したフローテーブルは、図8に示した初期データに対して、第1クライアント51とWebサーバ10との通信を許可するための追加、および第1パケット中継OFC41とWebサーバ10(ネットワークコントローラ12)の通信を許可するための追加がなされている。
図10は、第1の実施形態における通信システムの、Webアプリケーション取得後の第2OFSWのフローテーブルの構成例を表形式で示す図である。
図10に示したフローテーブルは、第3クライアント53とWebサーバ10との通信を許可するための設定(初期データが無い状態からの追加)がなされている。
Webアプリケーション取得後の第1パケット中継OFC41は、使用済みポート番号(例えば30841と43256など)を管理する。
Webアプリケーション取得後の第2パケット中継OFC42は、使用済みポート番号(例えば46927など)を管理する。
第1クライアント51は第3クライアント53との間でリアルタイムUDPデータグラム通信を開始するために、シグナリングチャネル11を通じて第3クライアント53へ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を受け取ったネットワークコントローラ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が設定される。
第3クライアント53は、第1クライアント51からネットワークコントローラ12を介して受け取ったSDP OFFERから第1クライアント51向けのSDP ANSWERを生成してネットワークコントローラ12へ送信する。
{
“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データグラム通信制御テーブルのレコードを検索する。
ネットワークコントローラ12は、SDP ANSWERを第1クライアント51へ転送する(第2の伝送手段による伝送)。
ネットワークコントローラ12は、前述のSDP ANSWER解析機能により、リアルタイムUDPデータグラム通信制御テーブルの1つのレコードの列がすべて埋まると、リアルタイムUDPデータグラム通信開始要請機能を呼び出す。
第1の実施形態では、リアルタイムUDPデータグラム通信開始要請は、第1パケット中継OFC41、および、第2パケット中継OFC42に対して送信される。
この送信される内容は、リアルタイムUDPデータグラム通信制御テーブルの該当レコードからデータをコピーしたものである。
第1パケット中継OFC41は、ネットワークコントローラ12からリアルタイムUDPデータグラム通信開始要請を受信すると、リアルタイムUDPデータグラム通信開始機能を呼び出す。
第1パケット中継OFC41が接続している第1OFSW21のグローバルIPアドレスが、リアルタイムUDPデータグラム通信開始要請のOFFERグローバルIPアドレスと同一である場合、第1パケット中継OFC41は、リアルタイムUDPデータグラム通信開始要請に含まれるデータを利用して、図17に示すようなフローテーブルのレコードを追加する。
また、図17に示したレコードの「※2」は、OFSWポートのうちOFFERグローバルIPアドレスがIPアドレスとして割り振られているポートの番号である。
第1パケット中継OFC41が接続している第1OFSW21のグローバルIPアドレスは、UDPデータグラム通信開始要請のOFFERグローバルIPアドレスと同一であるので、第1パケット中継OFC41は、図18に示すようなフローテーブルのレコードを第1OFSW41のフローテーブルへ追加する。
図19では、第1パケット中継OFC41がリアルタイムUDPデータグラム通信開始機能を実行後の第1OFSW21のフローテーブルを示す。図9に示したテーブルと比較して、図19に示したテーブルでは、プロトコルがUDPである2行分のレコードが追加されている。
第2パケット中継OFC42が接続している第2OFSW22のグローバルIPアドレスが、リアルタイムUDPデータグラム通信開始要請のANSWERグローバルIPアドレスと同一の場合、第2パケット中継OFC42は、リアルタイムUDPデータグラム通信開始要請に含まれるデータを利用して、図20に示すようなフローテーブルのレコードを追加する。
図20に示した「※2」は、OFSWポートのうちANSWERグローバルIPアドレスがIPアドレスとして割り振られているポートの番号である。
第2パケット中継OFC42が接続している第2OFSW22のグローバルIPアドレスは、UDPデータグラム通信開始要請のANSWERグローバルIPアドレスと同一であるので、第2パケット中継OFC42は、図21に示すようなフローテーブルのレコードを第2OFSW22のフローテーブルへ追加する。
図22では、第2パケット中継OFC42がリアルタイムUDPデータグラム通信開始機能を実行後の第2OFSW22のフローテーブルを示す。図10に示したテーブルと比較して、図22に示したテーブルでは、プロトコルがUDPである2行分のレコードが追加されている。
ここでは、前述のリアルタイムUDPデータグラム通信がなされている状態で、第4クライアント54 (192.168.1.2: 38976)から第2クライアント52(192.168.0.2:21597)へリアルタイムUDPデータグラム通信を新たに実行することについて説明する。
第1OFSW21のグローバルIPアドレスと紐づける送信元ポート・宛先ポートとして使用するポート番号:59024
第2OFSW22のグローバルIPアドレスと紐づける送信元ポート・宛先ポートとして使用するポート番号:19824
SDP OFFERおよびSDP ANSWERに含まれるセッションIDは、c98uieopfとする。
図23に示した例では、第4クライアント54から第2クライアント52へのリアルタイムUDPデータグラム通信のために、図16に示したリアルタイムUDPデータグラム通信制御テーブルに対して、セッションID「c98uieopf」に関わる行が追加される。
図24に示した例では、図19に示した、第1OFSW21が所持するフローテーブルに対して、第4クライアント54から第2クライアント52へのリアルタイムUDPデータグラム通信のための行(下から2行目、3行目)が追加される。
また、クライアントによりSDPを運ぶパケットを暗号化する場合に、パケットを復号化する仕組みをネットワークコントローラ以外の中継装置に設ける必要がなくなる。
また、クライアントの組が複数であってもリアルタイムUDPデータグラム通信が可能である。
次に、第2の実施形態について説明する。この第2の実施形態では、第1の実施形態と同じく、候補アドレスをSDP OFFERやSDP ANSWERに含むリアルタイムUDPデータグラム通信(WebRTC)について説明する。
第1の実施形態と比較して、第2の実施形態におけるネットワークコントローラ12は、ポート確保情報受信機能をさらに有する。
第1の実施形態と比較して、第2の実施形態における第1パケット中継OFC41および第2パケット中継OFC42は、ポート確保要請受信機能をさらに有する。
第1の実施形態で説明した処理に加え、第2の実施形態では、ネットワークコントローラ12は、リアルタイムUDPデータグラム通信で使用するOFSWのグローバルIPアドレスと組になるポート番号を確保するために、パケット中継OFCに対してポート確保要請を送信する。パケット中継OFCは、ポート確保要請を受信すると確保したポート番号をネットワークコントローラ12に対してパケット確保情報として知らせるとともに、使用済みポート番号へその値を追加する。ポート確保要請を受信したネットワークコントローラ12は、リアルタイムUDPデータグラム通信制御テーブルのレコードを変更する。
第2の実施形態では、第1の実施形態で説明した、Webサーバへのアクセス、Webアプリケーションの取得、SDP OFFERの送信がなされる。
第1の実施形態と同様に、第2の実施形態では、SDP OFFERに第1クライアント51が使用する候補アドレスが含まれる。そこで、ネットワークコントローラ12は、レコードのOFFER IP アドレス、OFFER ポートの値に、候補アドレスで示されるアドレスとポート番号(ここでは192.168.0.1と52345)を設定する。
ネットワークコントローラ12は、SDP OFFERを第3クライアント53へ転送する。
ネットワークコントローラ12は、SDP ANSWERを第1クライアント51へ転送する。
第1パケット中継OFC41は、ネットワークコントローラ12からポート確保要請を受信するとポート確保要請受信機能を呼び出す。
ここでは、第1パケット中継OFC41の使用済みポート番号は、30841、43256、3456であるとする。
第1パケット中継OFC41がネットワークコントローラ12に送信するポート確保情報は、図30に示すように、セッションID「1jiifa9783」、グローバルIPアドレス「33.0.0.2」、対象ポート番号「3456」を含む。
ポート番号としてランダムに生成される値は2456であるとする。
第2パケット中継OFC42がネットワークコントローラ12に送信するポート確保情報は、図31に示すように、セッションID「1jiifa9783」、グローバルIPアドレス「33.0.0.2」、対象ポート番号「2456」を含む。
ネットワークコントローラ12は、第1パケット中継OFC41からポート確保情報を受信するとポート確保情報受信機能を呼び出す。
この設定の時点では、該当のレコードは、図15に示したように設定される。
図16に示すように、レコードを構成する情報がすべて埋まった場合、ネットワークコントローラ12は、リアルタイムUDPデータグラム通信開始要請機能を呼び出す。
この第2の実施形態で、ネットワークコントローラ12の機能が呼び出される順序は、「SDP OFFER 解析機能」→「SDP ANSWER 解析機能」→「(第1パケット中継OFC41の)ポート確保情報受信機能」→「(第2パケット中継OFC42の)ポート確保情報受信機能」であると説明したが、これに限らず、各装置で送受信するメッセージの到着順序により、「SDP OFFER 解析機能」より後に呼び出される機能は、呼び出し順序が前後しても良い。
ただし、「SDP ANSWER 解析機能」より後に「(第2パケット中継OFC42の)ポート確保情報受信機能」が呼び出されることを要する。
以下、第1の実施形態と同様にリアルタイムUDPデータグラム通信開始および複数のリアルタイムUDPデータグラム通信開始を行なうことができる。
また、第2パケット中継OFC42における、複数のリアルタイムUDPデータグラム通信により変更された使用済みポート番号は、46927、2456、19824である。
次に、第3の実施形態について説明する。第3の実施形態では、候補アドレスをSDP OFFERやSDP ANSWERに含まず、SDP CANDIDATEにより、候補アドレスを通信相手となるクライアントに通知するWebRTCを例に挙げる。候補アドレスの通知方法以外は、第2の実施形態と同様である。
第2の実施形態と比較して、第3の実施形態におけるネットワークコントローラ12は、SDP CANDIDATE解析機能をさらに有する。
第2の実施形態で説明した処理に加え、第3の実施形態では、ネットワークコントローラ12と各クライアントの間でSDP CANDIDATEのやりとりが生ずる。
まず、第3の実施形態では、第1の実施形態で説明した、Webサーバへのアクセス、Webアプリケーションの取得、SDP OFFERの送信がなされる。
SDPの記述例は以下の通りである。上記のように、SDP OFFERは候補アドレスを含まない。ここではa=candidate以外の属性の記述は省略する。
{
“sessionId” :” 1jiifa9783” ,
“SDP”:”・・・”
・・・
}
次に、SDP OFFERの解析について説明する。
第2の実施形態と同様に、第3の実施形態では、SDP OFFERを受け取ったネットワークコントローラ12は、SDP OFFER解析機能を実行して、SDP OFFERに含まれるセッションIDからリアルタイムUDPデータグラム通信制御テーブルのレコードを作成する。
次に、SDP ANSWERの内容について説明する。
SDPの記述例は以下の通りである。上記のように、SDP OFFERは候補アドレスを含まないので、SDP ANSWERも候補アドレスを含まない。ここではa=candidate以外の属性の記述は省略する。
{
“sessionId” :” 1jiifa9783”,
“SDP”:”・・・”
・・・
}
次に、第2の実施形態と同様に、SDP ANSWERを受け取ったネットワークコントローラ12は、SDP ANSWER解析機能を実行して、SDP ANSWERに含まれるセッションIDと同じセッションIDを持つリアルタイムUDPデータグラム通信制御テーブルのレコードを検索する。
次に、第2の実施形態と同様に、ポート確保要請の送信がなされ、SDP ANSWERが第1クライアント51へ転送される。
第1クライアント51は、第3クライアント53に対して候補アドレスを通知するために、シグナリングチャネルを通じて第3クライアント53へSDP CANDIDATEを送信する。
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データグラム通信制御テーブルのレコードを検索する。
第3クライアント53は、第1クライアント51に対して候補アドレスを通知するために、シグナリングチャネルを通じて第3クライアント53へSDP CANDIDATEを送信する。
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と同様に処理をする。
図16に示すように、レコードを構成する情報がすべて埋まった場合、ネットワークコントローラ12は、リアルタイムUDPデータグラム通信開始要請機能を呼び出す。
この実施形態で、ネットワークコントローラ12の機能が呼び出される順序は、「SDP OFFER 解析機能」→「SDP ANSWER 解析機能」→「(第1パケット中継OFC41の)ポート確保情報受信機能」 →「(第2パケット中継OFC42の)ポート確保情報受信機能」→「(第1クライアント51から第3クライアント53へ送信された)SDP CANDIDATE 解析機能」→「(第3クライアント53から第1クライアント51へ送信された)SDP CANDIDATE 解析機能」であると説明したが、これに限らず、各装置で送受信するメッセージの到着順序により、「SDP OFFER 解析機能」より後に呼び出される機能は、呼び出し順序が前後しても良い。
以降は、第2の実施形態と同様にリアルタイムUDPデータグラム通信がなされる。
以上のように、第3の実施形態では、候補アドレスをSDP OFFERやSDP ANSWERに含めずに、SDP CANDIDATEに含めるようにしても、第1の実施形態と同様の効果が得られる。
次に、第4の実施形態について説明する。この第4の実施形態では、リアルタイムUDPデータグラム通信の遮断について説明する。
ここでは、第1乃至第3の実施形態で説明した複数のリアルタイムUDPデータグラム通信がされ、これらの通信のうち、第1クライアント51と第3クライアント53のリアルタイムUDPデータグラム通信を遮断する例について説明する。
第3の実施形態と比較して、第4の実施形態におけるネットワークコントローラ12は、リアルタイムUDPデータグラム通信遮断要請機能、リアルタイムUDPデータグラム通信終了検知機能をさらに有する。また、各パケット中継OFCは、リアルタイムUDPデータグラム通信遮断機能をさらに有する。
第3の実施形態で説明した処理に加え、第4の実施形態では、クライアントからネットワークコントローラ12にリアルタイムUDPデータグラム通信終了メッセージが送られ、
ネットワークコントローラ12から各パケット中継OFCにリアルタイムUDPデータグラム通信遮断要請が送られ、各パケット中継OFCは、各OFSWに対してフローテーブル削除を行なう。
ネットワークコントローラ12におけるリアルタイムUDPデータグラム通信制御テーブル、およびパケット中継OFC-IPアドレスマッピングテーブルの構成は、図23、図4に示した構成と同じとする。
第1パケット中継OFC41における、OFSWポート-クライアントIPアドレスマッピングテーブルの構成は図6に示した構成と同じとする。
第2パケット中継OFC42における、OFSWポート-クライアントIPアドレスマッピングテーブルの構成は図7に示した構成と同じとする。
第1OFSW21におけるフローテーブルの構成は、図24に示した構成と同じとする。第2OFSW22におけるフローテーブルの構成は、図25に示した構成と同じとする。
第1クライアント51は、リアルタイムUDPデータグラム通信を終了するために、シグナリングチャネルを通じて第3クライアント53へリアルタイムUDPデータグラム通信終了メッセージを送信する。このメッセージに含まれるセッションIDは、「1jiifa9783」とする。
リアルタイムUDPデータグラム通信終了メッセージを受け取ったネットワークコントローラ12は、リアルタイムUDPデータグラム通信終了検知機能を呼び出す。
ネットワークコントローラ12は、リアルタイムUDPデータグラム通信終了メッセージに含まれるセッションIDと同じセッションIDを持つリアルタイムUDPデータグラム通信制御テーブルのレコードを検索する。
その後、図40に示すように、ネットワークコントローラ12は、リアルタイムUDPデータグラム通信終了メッセージに含まれるセッションIDと同じセッションIDを持つリアルタイムUDPデータグラム通信制御テーブルのレコード、ここではリアルタイムUDPデータグラム通信終了に含まれるセッションIDは「1jiifa9783」を含むレコードを削除する。
リアルタイムUDPデータグラム通信遮断要請機能は、前述のリアルタイムUDPデータグラム通信終了検知機能から渡されたリアルタイムUDPデータグラム通信制御テーブルのレコードをメッセージの内容としたリアルタイムUDPデータグラム通信遮断要請を、パケット中継OFCに対して送信する。
ネットワークコントローラ12からリアルタイムUDPデータグラム通信遮断要請を受信すると、第1パケット中継OFC41は、リアルタイムUDPデータグラム通信遮断機能を呼び出す。
第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が接続している第1OFSW21のグローバルIPアドレスは、UDPデータグラム通信開始要請のOFFERグローバルIPアドレスと同一であるので、第1パケット中継OFC41は、図42に示すように、フローテーブルにおける、図41に示す条件に該当するレコード、つまり、図24で示したフローテーブルの上から5、6行目のレコードを削除する。
上記の第1パケット中継OFC41の場合は、3456が該当する。
第2パケット中継OFC42にかかる第2OFSW22のグローバルIPアドレスは、リアルタイムUDPデータグラム通信遮断要請のANSWERグローバルIPアドレスと同一である。
上記のように第2パケット中継OFC42が接続している第2OFSW22のグローバルIPアドレスは、UDPデータグラム通信開始要請のANSWERグローバルIPアドレスと同一であるので、第2パケット中継OFC42は、図42に示すように、フローテーブルにおける、図43に示す条件に該当するレコード、つまり、図25で示したフローテーブルの上から3、4行目のレコードを削除する。
上記の第2パケット中継OFC42の場合は、2456が該当する。
次に、第5の実施形態について説明する。この第5の実施形態では、シグナリングチャネルの外出し(Webサーバからのシグナリングチャネルの分離)について説明する。
図45は、第5の実施形態における通信システムの機能構成例を示す図である。
それぞれのクライアントがWebSocketのような通信手段でシグナリングチャネルと通信が可能であれば、図45に示すように、シグナリングチャネル11は、Webサーバ10の外側に設置されていても良い。
21…第1OFSW、22…第2OFSW、30…ルータ、41…第1パケット中継OFC、42…第2パケット中継OFC、51…第1クライアント、52…第2クライアント、53…第3クライアント、54…第4クライアント。
Claims (7)
- 通信処理装置、第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のクライアント装置から、前記第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に記載の通信システム。 - 前記第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に記載の通信システム。 - 前記通信処理装置は、
前記第1の設定手段により設定する前記第1のスイッチのグローバルポート番号の生成を前記第1の通信制御装置に要請する第1の要請手段と、
前記第2の設定手段により設定する前記第2のスイッチのグローバルポート番号の生成を前記第2の通信制御装置に要請する第2の要請手段とをさらに有し、
前記第1の設定手段は、前記要請にしたがって前記第1の通信制御装置により生成された前記第1のスイッチのグローバルポート番号を前記レコードに設定し、
前記第1の設定手段は、前記要請にしたがって前記第2の通信制御装置により生成された前記第1のスイッチのグローバルポート番号を前記レコードに設定する
ことを特徴とする請求項2に記載の通信システム。 - 前記提案信号は、前記第1のクライアント装置のIPアドレスおよび前記第1のクライアント装置が前記通信に使用するポート番号を含み、
前記返答信号は、前記第2のクライアント装置のIPアドレスおよび前記第2のクライアント装置が前記通信に使用するポート番号を含む
ことを特徴とする請求項2に記載の通信システム。 - 前記通信処理装置は、
前記第1のクライアント装置のIPアドレスおよび前記第1のクライアント装置が前記通信に使用するポート番号を、前記提案信号とは別に受信し、
前記第2のクライアント装置のIPアドレスおよび前記第2のクライアント装置が前記通信に使用するポート番号を、前記返答信号とは別に受信する
ことを特徴とする請求項2に記載の通信システム。 - 前記通信処理装置は、
前記第1のクライアント装置からの、前記要請信号にしたがって開始された通信の終了の要請を受信したときに、この通信に関わる、前記第1および第2の設定手段による前記レコードへの設定内容を削除し、前記通信の遮断を前記第1および第2の通信制御装置に要請し、
前記第1の通信制御装置は、
前記通信の遮断の要請にしたがって、前記第3の設定手段による設定内容を削除し、
前記第2の通信制御装置は、
前記通信の遮断の要請にしたがって、前記第4の設定手段による設定内容を削除する
ことを特徴とする請求項1に記載の通信システム。
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 JP2018050177A (ja) | 2018-03-29 |
JP6505649B2 true 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) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6048129B2 (ja) * | 2012-12-26 | 2016-12-21 | 日本電気株式会社 | 通信システムと装置と方法とプログラム |
EP3076611B1 (en) * | 2013-11-27 | 2018-11-21 | Nec Corporation | Communication system, communication method, network information combination apparatus, and network information combination program |
-
2016
- 2016-09-21 JP JP2016184368A patent/JP6505649B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2018050177A (ja) | 2018-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3342127B1 (en) | Network packet flow controller with extended session management | |
US20240333632A1 (en) | Flow modification including shared context | |
US10200264B2 (en) | Link status monitoring based on packet loss detection | |
US9729439B2 (en) | Network packet flow controller | |
RU2660620C1 (ru) | Устройство связи и способ обхода брандмауэра шлюза уровня приложения при установлении rtc-соединения связи между rtc-клиентом и rtc-сервером | |
US12231327B2 (en) | Reverse forwarding information base enforcement | |
US10257061B2 (en) | Detecting source network address translation in a communication system | |
US11652739B2 (en) | Service related routing method and apparatus | |
US10298616B2 (en) | Apparatus and method of securing network communications | |
CN104468384A (zh) | 一种实现多业务优先级的系统及方法 | |
WO2017209944A1 (en) | Session continuity in the presence of network address translation | |
CN104320267A (zh) | 基于SDN框架实现VxLAN的ARP广播抑制系统及方法 | |
JP6605558B2 (ja) | ネットワークのプローブ・ルーティング | |
CN104205749A (zh) | 通信系统、上层交换机、控制装置、交换机控制方法以及程序 | |
JP6505649B2 (ja) | 通信システム | |
JP6128132B2 (ja) | 通信装置、制御装置、通信システム、パケット処理方法、通信装置の制御方法及びプログラム | |
CN105491178B (zh) | 一种基于软件定义网络的主机网卡ip地址获取方法 |
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 |