JP2017118545A5 - - Google Patents
Download PDFInfo
- Publication number
- JP2017118545A5 JP2017118545A5 JP2017000017A JP2017000017A JP2017118545A5 JP 2017118545 A5 JP2017118545 A5 JP 2017118545A5 JP 2017000017 A JP2017000017 A JP 2017000017A JP 2017000017 A JP2017000017 A JP 2017000017A JP 2017118545 A5 JP2017118545 A5 JP 2017118545A5
- Authority
- JP
- Japan
- Prior art keywords
- data
- communication link
- http
- real
- time communication
- 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.)
- Pending
Links
Description
本願は、通信システム、例えば、リアルタイム・ハイパーテキスト・トランスファー・プロトコル(HTTP)を利用することによりグラフィックデータ、画像データ、ビデオデータ、音声データ等の各種デジタルデータを伝送する通信システムに関する。さらに、本願は、上記通信システムを動作させることにより各種データを伝送する方法にも関連する。さらに、本願は、装置の処理手段に実行されると、当該装置に上記方法を遂行させるように構成されるプログラム命令を備えるコンピュータプログラムにも関連する。
概して、ハイパーテキスト・トランスファー・プロトコル(HTTP)は、現代のインターネットを実装するために広く用いられている。該プロトコルは、分散協調ハイパーメディア情報システムのためのアプリケーションプロトコルである。実装においては、HTTPは、ネットワークを定義する論理リンクを用いて該ネットワークを構築するように動作可能である多重線形セットのオブジェクトであり、上記リンクは、しばしば、ノード間のネットワーク関係を定義する「ハイパーリンク」とされる。
HTTPは、インターネットに実装されるクライアントサーバモデル等における要求応答プロトコルとして機能するように動作可能である。当該モデルにおいて、任意に、ウェブブラウザが、クライアントを実装するのに用いられ、サーバ上で実行されるソフトウェアアプリケーションがウェブサイトをホストしてもよい。動作においては、所定のクライアントが、HTTP要求メッセージをサーバに送信し、該サーバは、HTMLファイル及びその他コンテンツ等のリソースを提供することにより応答し、又は上記クライアントの代わりにデータ処理機能を実行し、若しくは上記クライアントに応答メッセージを返しさえする。上記ウェブブラウザは、様々な方法で実装されることが可能であり、例えばユーザーエージェントとして、ウェブクローラとして、又はインターネット由来データコンテンツにアクセスし、利用し、又は表示する、コンピュータハードウェア上で実行可能なその他任意のソフトウェアとして実装され得る。
HTTPは、隣接したネットワーク要素がクライアントとサーバとの間における通信を可能にすることができるように設計されている。インターネットの高トラフィックウェブサイトは、しばしば、上流サーバの代わりにコンテンツを配信し、データ及び/又はサービスの配信に関する応答時間を向上させるように動作可能であるウェブキャッシュサーバを利用する。さらに、プライベートネットワーク境界におけるHTTPプロキシサーバは、グローバルにルーティング可能なインターネットアドレス無しに、即ち外部サーバを介してメッセージを中継することによって、クライアントのための通信を容易にするために有利に用いられる。
HTTPリソースは、ユニフォームリソースロケータ(Uniform Resource Locators;URL)とも称されるユニフォームリソースアイデンティファイア(Uniform Resource Identifiers;URI)を用いることによって所定のネットワーク上で識別され、かつそこに配置される。さらに、URI及びハイパーリンクは、相互に関連付けされたハイパーテキスト文書のウェブを形成することが可能であるハイパーテキスト・マークアップ言語(HTML)で表現される。
HTTPセッションは、一連のネットワーク要求/応答トランザクションによって実装される。例えば、HTTPクライアントは、サーバ上の特定のポートに対して伝送制御プロトコル(Transmission Control Protocol;TCP)接続を確立することによって要求を開始する。HTTPサーバは、クライアントの要求メッセージをリッスンし、関連するメッセージと共に「HTTP/1.1 200 OK」等の状態表示行を返送することによって応答する。この関連するメッセージの本文は、しばしば、要求リソースであるが、エラーメッセージが代わりに返される場合もある。
HTTPは、便宜上「動詞」と称される、識別リソースに関して実行され得る所望のアクションを示すメソッドを定義する。その識別リソースとは、例えば、1又は複数のサーバ上に存在する実行可能なオブジェクトに由来するデータファイル又は出力である。HTTP「動詞」としても知られるHTTPメソッドの例が、表1に提供されている。
このように、現代のウェブブラウザによって利用されている主な転送プロトコルは、上述のHTTPであり、幾つかの関連する「エコシステム」、並びにそれらが利用するソフトウェア、特にブラウザソフトウェアアプリケーションは、HTTPを用いることなく機能することはできない。上述のとおり、HTTPは、送信される要求(表1を参照)に基づくものであり、それら要求への応答では、一般的に、HTMLページ、又は画像若しくは音声ストリーム/ファイル等のバイナリデータが、その要求を受信したことに応じて供給される。
インターネットの複雑さにより、インターネット通信遅延、即ち「待ち時間」が、動作において生じる。このような遅延は、リアルタイム応答が要請されるような双方向(全2重)通信が所望される場合、具体的には殆ど遅延の無いビデオイメージ及び/又は音声の転送及び受信が所望される場合など、よりデータ交換要件が厳しい状況において問題を発生させ得る。インターネットを介した双方向通信は、ボイスオーバインターネットプロトコル(Voice−over−Internet−Protocol;VoIP)から、また、例えば、近時ではスカイプソフトウェア等(「Skype」(スカイプ)は登録商標である。)を用いて提供されるようなインターネットを利用したビデオ会議で知られている。
特定種類の通信ニーズに対処するためには、ウェブサイトhttp://tools.ietf.org/html/rfc6455に記載されるとおり、「ウェブソケット(WebSockets)」として知られるプロトコルを利用することが知られている。以下の通信特性がそれによって実現可能である。
(i)ウェブソケットがHTTP/HTTPSトンネル内で利用され、この場合、ファイアウォールは、近年、ウェブブラウザ上で一般的に利用されていることから、ポート80/443に対して既に開放されている、並びに
(ii)ウェブソケットは、全2重接続モードで利用され、1つのTCP接続のみがリアルタイムで両方向に伝送することが可能であり、つまり、データ配信の方向を変えることによって1つの接続を用いてデータを送受信することができる。
(i)ウェブソケットがHTTP/HTTPSトンネル内で利用され、この場合、ファイアウォールは、近年、ウェブブラウザ上で一般的に利用されていることから、ポート80/443に対して既に開放されている、並びに
(ii)ウェブソケットは、全2重接続モードで利用され、1つのTCP接続のみがリアルタイムで両方向に伝送することが可能であり、つまり、データ配信の方向を変えることによって1つの接続を用いてデータを送受信することができる。
しかしながら、このようなウェブソケットは、ポートに依存し得るものであり、この事は、つまり、望ましくない制限が生じることを意味する。
本願は、改良した様式のHTTP通信ネットワークを介した双方向データ通信を提供できる通信システムを提供することを目的とする。
さらに、本願は、HTTP通信ネットワークを介した双方向データ通信を提供する通信システムを動作させる改良法を提供することを目的とする。
本発明の第1の態様によれば、HTTPを利用する通信をサポートするように動作可能である通信システムであって、該通信システムは、HTTPに関連するGETメソッド及びPOSTメソッドの組合せを利用することによって、システムの2つのノードの間に双方向リアルタイム通信リンクを確立するように動作可能であり、かつ上記通信リンクを介したデータ交換が、チャンク様式として実装され、上記通信リンクを介して伝送されるデータチャンクに関する最大セグメントサイズ(MSS)が、上記通信リンクをサポートする通信ネットワーク容量に応じて最適化されることを特徴とする、通信システムが提供される。
当該通信システムは、待ち時間が減少したリアルタイム双方向通信を提供することができる点で有利である。
任意に、CONNECTメソッドは、以下の3つの異なるタイプのシナリオにおいて用いることができる。
(i)接続が、ターゲットにトンネルされる。これは、有利にはデフォルトのシナリオである。
(ii)接続が、ローカルホストを介してターゲットにトンネルされ、その結果、データがローカルサービス内の送信プロセスから転送プロキシプロセスに転送され、転送プロキシプロセスからデータがターゲットに送信される。このようなアプローチは、ウイルス対策ソフトウェアが、データを分析しないようにし、かつデータを不注意にブロックしたり又はさもなければデータに干渉しないようにすることが可能であることから有利である。
(iii)接続は、転送プロキシサーバにトンネルされ、該転送プロキシサーバは、次いで、データをそのターゲットにリダイレクトする。このようなアプローチは、負荷平衡化システム、即ちクライアントによって生じるネットワーク負荷がターゲットに最適な状態で分配されるシステムにおいて利用するのに有利である。例えば、直接接続を介するよりもバックボーンネットワークにおいてデータを送信するのがより早くなる。
(i)接続が、ターゲットにトンネルされる。これは、有利にはデフォルトのシナリオである。
(ii)接続が、ローカルホストを介してターゲットにトンネルされ、その結果、データがローカルサービス内の送信プロセスから転送プロキシプロセスに転送され、転送プロキシプロセスからデータがターゲットに送信される。このようなアプローチは、ウイルス対策ソフトウェアが、データを分析しないようにし、かつデータを不注意にブロックしたり又はさもなければデータに干渉しないようにすることが可能であることから有利である。
(iii)接続は、転送プロキシサーバにトンネルされ、該転送プロキシサーバは、次いで、データをそのターゲットにリダイレクトする。このようなアプローチは、負荷平衡化システム、即ちクライアントによって生じるネットワーク負荷がターゲットに最適な状態で分配されるシステムにおいて利用するのに有利である。例えば、直接接続を介するよりもバックボーンネットワークにおいてデータを送信するのがより早くなる。
任意に、上記通信システムにおいて、上記通信リンクが、上記双方向通信を提供する受信接続及び送信接続を含み、かつ、空のデータチャンク及び/又は空のマルチパートデータブロックを受信するまで、それら接続がオープンに維持される。
任意に、上記通信システムにおいて、上記通信リンクが、該通信リンクを介して伝送されるデータの暗号化を利用するように動作可能である。
任意に、上記通信システムにおいて、上記通信リンクが、グラフィックデータ、画像データ、ビデオデータ、音声データ、非構造化データのうちの少なくとも1つの通信を提供するように動作可能である。
本願の第2の態様によれば、HTTPを利用する通信をサポートするように動作可能である通信システムを介して通信リンクを確立する方法であって、
当該方法は、
(a)HTTPに関連するGETメソッド及びPOSTメソッドの組合せを利用することによって、システムの2つのノードの間に双方向リアルタイム通信リンクを確立する通信システムを用いること、
(b)上記通信リンクを介して、チャンク様式でデータを交換すること、並びに
(c)上記通信リンクをサポートする通信ネットワーク容量に応じて、上記通信リンクを介して伝送されるデータチャンクに関する最大セグメントサイズ(MSS)を最適化すること、
を含む、方法が提供される。
当該方法は、
(a)HTTPに関連するGETメソッド及びPOSTメソッドの組合せを利用することによって、システムの2つのノードの間に双方向リアルタイム通信リンクを確立する通信システムを用いること、
(b)上記通信リンクを介して、チャンク様式でデータを交換すること、並びに
(c)上記通信リンクをサポートする通信ネットワーク容量に応じて、上記通信リンクを介して伝送されるデータチャンクに関する最大セグメントサイズ(MSS)を最適化すること、
を含む、方法が提供される。
任意に、上記方法においては、上記通信リンクが、上記双方向通信を提供する受信接続及び伝送接続を含み、かつ、空のデータチャンク及び/又は空のマルチパートデータブロックを受信するまで、それら接続がオープンに維持される。
任意に、上記方法においては、上記通信リンクが、該通信リンクを介して伝送されるデータの暗号化を利用するように動作可能である。
任意に、上記方法においては、上記通信リンクが、グラフィックデータ、画像データ、ビデオデータ、音声データ、非構造化データのうちの少なくとも1つの通信を提供するように動作可能である。
本願の第3の態様によれば、装置の処理手段に実行されることにより、前記装置に、本願の第2の態様による方法を遂行させるように構成されるプログラム命令を備えるコンピュータプログラムが提供される。
任意に、上記コンピュータプログラムは、HTTPで表現され、かつHTTPに従って動作する通信ネットワークのサーバ上で実行可能である。
本発明は、通信システムが、該通信システムにおいて実行されるソフトウェア若しくはハードウェアファイアウォール、並びに/又はウイルス対策ソフトウェアアプリケーションにおいて追加のコンフィギュレーション(設定;構成)が必要とならないように、既知のHTTP転送プロトコルを利用することによって、該システムが、非暗号化又は暗号化の双方向全2重通信を提供可能であるという点で有利である。
さらに、本発明は、通信アプリケーションの機能性及び信頼性を向上させることにより、システムに関係する技術的なメンテナンスの問題、例えばデータセキュリティ設定を簡素化するという点で有利である。
本発明の特徴は、添付の特許請求の範囲に規定される発明の要旨から逸脱することなしに、様々な組合せにおいて組合せることが可能であることが理解される。
以下の図面を参照して、本願の実施形態を例としてのみ以下に説明する。
添付の図面において、下線を付した番号は、その下線を付した番号が位置する要素、又はその下線を付した番号が隣接する要素を表すのに用いられる。下線が付されていない番号は、要素にその下線が付されていない番号を結合させる線によって特定されるその要素に関する。番号に下線が付されておらず、関連する矢印が付随する場合、下線が付されていないその番号が、その矢印が指し示す全体要素を特定するのに用いられる。
概して、図1を参照すると、以下に説明されるシステムが存在し、そのシステムの一部は5で全体的に示されており、並びに、利用されるHTTPの記述がRFC2621、RFC2068及びRFC1945等の標準に従う様式で、双方向リアルタイム通信のHTTPに関し、遅延、つまり「待ち時間」を推定することが可能である関連する方法が存在する。通常、HTTPは、第1及び第2ノード10A、10Bの間においてリアルタイム双方向通信を可能にするように設計されておらず、所定のクライアントは、以下のような様式で、リアルタイムデータを送信すると同時にリアルタイムデータを受信することができる。
(i)2つのノード10A、10Bの間で利用される通信接続20は、暗号化フォーマットで双方向通信をサポートするように動作可能であり、
(ii)ウイルス防止ソフトウェア30が、通信接続20を介して送信され、かつ受信されるコンテンツに干渉せず、
(iii)ファイアウォール60は、インターネットトラフィック、即ち「WWWトラフィック」の全面的遮断が、例えば安全な金融取引に利用されるバンキング接続の状況において、ブロックされないかぎり、ネットワークトラフィックを阻むことができず、並びに
(iv)ネットワークデバイス、例えばブリッジ及びルータが、通信接続20を介して伝送されるデータを分析せず、かつ該データに干渉することができない。
(ii)ウイルス防止ソフトウェア30が、通信接続20を介して送信され、かつ受信されるコンテンツに干渉せず、
(iii)ファイアウォール60は、インターネットトラフィック、即ち「WWWトラフィック」の全面的遮断が、例えば安全な金融取引に利用されるバンキング接続の状況において、ブロックされないかぎり、ネットワークトラフィックを阻むことができず、並びに
(iv)ネットワークデバイス、例えばブリッジ及びルータが、通信接続20を介して伝送されるデータを分析せず、かつ該データに干渉することができない。
本願の実施形態は、以下の特徴を利用することによって機能性(i)から(iv)に対処することが可能である。
(a)2つの相互に異なるタイプであるGETメソッド及びPOSTメソッドが用いられ(表1を参照。)、GETメソッドは、通信接続20を介して受信接続を構築し、POSTメソッドは、通信接続20を介して送信接続を構築する、
(b)両方の接続が、現代のHTTPにおいて利用されるCONNECTメソッドを用いてトンネルされ、並びに
(c)以下により詳細に説明されるとおり、「チャンク」又はマルチパート転送符号化の形態が利用される。
(a)2つの相互に異なるタイプであるGETメソッド及びPOSTメソッドが用いられ(表1を参照。)、GETメソッドは、通信接続20を介して受信接続を構築し、POSTメソッドは、通信接続20を介して送信接続を構築する、
(b)両方の接続が、現代のHTTPにおいて利用されるCONNECTメソッドを用いてトンネルされ、並びに
(c)以下により詳細に説明されるとおり、「チャンク」又はマルチパート転送符号化の形態が利用される。
好都合なことに、HTTPがインターネットセッションに用いられ、GETメソッド及びPOSTメソッドが、相互に独立した様式で利用される。例えば、GETメソッドは、ウェブブラウザークライアントのホストとして機能するよう動作し得るウェブサーバからHTMLコンテンツを要求するために用いられ、GETメソッドのための接続は、全ての応答データがホストからクライアントに配信されるまで、オープンのままである。さらに、データがクライアントからホストに配信される以外は、POSTメソッドと同様の接続手順が利用される(表1を参照)。
以下に説明される実施形態においては、通信は、所定のソケットが、例えば上述したウェブソケット等の既知のアプローチとそれら実施形態を区別する半2重様式で用いられる態様で実行される。それら実施形態では、データの送信及び/又は受信が、全2重接続よりも、より効率的である。何故ならば、ネットワークインターフェースカードが、受信と送信との間におけるそれらの入力/出力(I/O)状態を切り替える必要がないからである。既知の技術で利用されるこのような切り替えは、システムリソースを消費し、その結果、潜在的な通信速度を低下させる。
以下に説明の実施形態においては、ソケットは、受信モード又は送信モードの何れにおいても、HTTPのGETメソッド及びPOSTメソッドのみの初期化の後に利用される。その結果、用いられるネットワークアダプターは、半2重状態においてのみ動作する必要があり、それによってネットワークインフラストラクチャ及びデバイスリソースを節約することができる。何故ならば、接続は、HTTP GETメソッド及び/又はPOSTメソッドのヘッダがネゴシエートされた後、その接続が終了するまで、送信モード又は受信モードの何れかにおいてのみ作動するからである。さらに、他の利益も生じ、例えば、ファイアウォール及びルータ、即ちハブ及びスイッチが受ける切り替えの負荷も少なく、従って、1つの全2重接続しか使用しない近年の既知の全2重通信アプローチと同じような速さではそれらに障害は起きないだろう。従って、以下に記載の実施形態は、例えば上記のウェブソケットよりもリソース効率がかなり良い。
上記既知のウェブソケットは、識別されていない接続タイプに属し、従って切断されているのでファイアウォールによって簡単に分析することができ、関連する接続がトンネルされるか否かに関わらず、それらの使用は回避され、又は制限される。以下に説明の実施形態においては、HTTPプロトコルによるGET接続又はPOST接続はHTTPプロトコルに従って機能し、そのためファイアウォールは、これらメソッドを利用する通信を制限又は回避することができない。
以下に説明の実施形態においては、TCPよりも実質3倍は速いと推定されるUDPプロトコルが有利に利用される。任意に、それら実施形態では、ピアツーピア(P2P)接続を用いることができ、これによってアプリケーションレベルの通信が達成可能となる。
本明細書に記載の実施形態は、既知のHTTP実装がGETメソッド及びPOSTメソッドの間に如何なるリンクも欠いているという点で、それら既知のHTTP実装とは区別される。即ち、対照的に、本明細書に記載の実施形態では、リアルタイム全2重データ通信を提供するために、新しい様式で融合させたGETメソッド及びPOSTメソッドが利用される。言及される全2重データ通信は、1つの受信接続及び1つの送信接続を用いることによって実装される。1つの受信接続又は1つの送信接続は、1つの半2重接続モード又は1つの全2重接続モードを用い得る。
以下、実施形態が、伝送制御プロトコル(Transport Control Protocol;TCP)に基づいて説明されるが、代わりにユーザーデータグラムプロトコル(User Datagram Protocol;UDP)が利用され得ることが理解される。UDPもTCPも基本的なインターネットプロトコル(IP)に依るものであり、UDPデータグラムもTCPセグメントもIPパケットで送信されるものであるが、UDPは、ネットワークアドレス変換(network address translation;NAT)トラバース手法を用いることによって、ローカルエリアネットワーク(LAN)内だけでなく外部インターネットにおいてもアプリケーション間におけるピアツーピア通信の達成を可能にする無接続プロトコルであるという点で区別される。このようなアプローチを利用することによって、システム5においてサーバを介してデータを転送する必要を回避することができ、その結果、通信ネットワーク容量を顕著に節約することが可能となる。システム5においてUDPを用いることから生じる更なる利益は、そのネットワーク通信容量の使用において、TCPよりも実質3倍効率が良いことである。何故ならば、UDPは、制御プロトコルではないからである。さらに、例えばシステム5を実装するために用いられる、IPv4及びIPv6の両方の通信ネットワークにおいてバイトで測定されるMSS容量は、より大きいものとなる。何故ならば、UDPヘッダは、対応するTCPヘッダよりも小さいからである。
GET接続及びPOST接続の両方に対してTCPを用いることが、以下に説明されているが、任意に、これら接続のうちの一方のみがTCPを用い、これら接続の他方はUDPを用いることが理解される。さらに、GET接続もPOST接続もUDPを利用し得ることが理解される。
送信側又は受信側におけるデータはまた、本発明の要旨から逸脱することなく、回線交換データからIPに基づくデータへと、またそれに相応してIPに基づくデータから回線交換データへと変化し得ることも理解される。
第1の例示実施形態においては、図2を参照すると、以下のとおり一連のステップが実行される。
ステップ1(S1):クライアントからデータへの接続は、一意のストリーム識別情報(ID)を生成し、このIDは、GETメソッドとPOSTメソッドとをペアにするのに利用され、その結果、そのデータ接続を実装するのに利用されるサーバは、GETメソッド及びPOSTメソッドのペアが同一のクライアントに属することを認識する。利用される該IDは、以下に、より詳細に説明する。しかしながら、GETメソッド及びPOSTメソッドは、一意のストリーム識別情報(ID)が、送信接続及び受信接続を組み合わせるのに用いられる場合に本発明を限定するものではないことが理解される。そのストリームIDの基本的な目的は、サーバでクライアントの送信接続及び受信接続をバインドすることにあるとしても、それは、同時に、そのクライアントを認証し、かつ識別するためにも用いられ得る。この事は、サーバが、次いで、それらの処理が継続する前に、有害であり、誤りであり、及び/又は未識別の接続を破棄することが可能であることを意味する。このような機能性によれば、サーバを保護し、かつ未識別の接続要求及び不必要な計算よって生じるサーバ負荷を低減/削減することが可能になる。言い換えると、これにより、システムが、リソースを節約することが可能となり、これにより、エネルギーを節約することと、サーバ設備、特に負荷分散システムにおいて必要となるサーバ数を低減することの利益を提供できる。
ステップ2(S2):クライアントは、次いで、サーバに対して、例えばそのデフォルトポート「80」で、2つのTCP/IP接続を確立し、その後、クライアントは、CONNECTメソッドに関連するヘッダを送信する。動作において、CONNECTメソッドは、例えば、大抵は上述の非暗号化プロキシを介してTLS及びSSL暗号化通信(HTTP)を簡素化するために、要求データ接続を透明的TCP/IPトンネルに変換する。
ステップ1及び2を実装する場合は、様々な形態の暗号化が任意に利用され、例えば、SSL1.0、SSL2.0、SSL3.0、TLS1.0、TLS1.1、TLS1.2、又は同種の暗号化が利用される。しかしながら、上記トンネルは、異なる「エコシステム」の間において安全な通信を確保するためには、有利には透過的である。さらに、悪意のある攻撃又は干渉から保護されるハードウェアを利用することもまた有利である。本願の実施形態を実施するために利用される、このような透過的なトンネル接続は、ハッカー、敵意のあるソフトウェア、ウイルス対策ソフトウェア、ファイアウォールソフトウェア、又はデータトラフィックを監視し、かつ分析するように動作可能であるデバイス及び/若しくはソフトウェアが、トンネル接続を介して伝送されるデータに干渉することを回避することができる。
ステップ3(S3):通信トンネルに関し利用される受信又は送信の接続に依存して、GETメソッド又はPOSTメソッドのヘッダは、送信され、かつ受信され続ける。そのヘッダは、通信トンネルによって提供される所定の通信セッションに必要な情報を含む。さらに、該ヘッダは、有利には、従来型のデータ構造を利用するものであるが、以下のパラメータを含むものである。
(i)結合/リンクされた接続に関する情報のストリームID種類、並びに
(ii)チャンク又はマルチパートのフォーマットとしての転送暗号化。
(ii)チャンク又はマルチパートのフォーマットとしての転送暗号化。
ヘッダに含まれる情報は、データが個々のデータブロックとして転送及び受信されることを確実にする。有利には、データの最大セグメントサイズ(MSS)は、データチャンク又はマルチパートデータブロックのヘッダに用いられるバイト量を考慮し、通信トンネルをサポートするネットワーク容量に対して最適化され、その結果、データを転送及び受信する際に、バイトが喪失することがなく、これにより、信頼性のある、安全なデータ交換が提供される。
このようなネットワークの最適化は、例えば、接続されるクライアントデバイスをサーバに連結するネットワークからサーバに最大転送単位(Maximum Transfer Unit;MTU)値を要求することによって実施される。それによって、通信ネットワークにおいて最弱通信リンクを識別することが可能であり、その後、その最弱通信リンクに関連するクライアントデバイスへの送信に関する最大セグメントサイズ(MSS)が、その最弱通信リンクに対応し得る割合で設定される。このMSS値は、任意に、サーバによって、システムの他のクライアントデバイスに伝送される。このようなネットワーク最適化は、有利には、以下のステップを有する方法を用いて実施される。
ステップA:システムは、サーバをクライアントデバイスに連結する最弱通信リンクを決定する。例えば、所定のデータリンクに関するMTU値は1500バイトである。このMTU値から、所定の数値のTCPヘッダバイト、即ち40バイトを減算すると、1460バイトが利用可能となる。これら1460バイトはMSSに対応する。
ステップB:システムは、最弱通信リンクのMSSを利用することによって所定のセッションに関するMSSを決定する。
ステップC:任意に、システムにおいて利用されるネーグルアルゴリズム(Nagle algorithm)は、システム内の輻輳制御を防止するために無効化されるが、即ち、これは、システムのソケットでTCP_NODELAYオプションを設定することによって達成され、これはネーグルアルゴリズムを無効化するものである。このようなネーグルアルゴリズムの無効化が望ましい。何故ならば、ネーグルアルゴリズムは、対応するデータパケットが送信される前に、特定量バイトのデータが送信キューに追加されるまで待機するからである。ネーグルアルゴリズムが無効化された場合、システムは、上述のとおり、システムによってのみ決定されたサイズのデータパケットを送信することができる。
ステップ4(S4):HTTP要求ヘッダが一旦送信され、対応して正常な応答がサーバから受信されると、2重のデータ受信及び送信が次いで開始される。これにより、サーバとの2つの接続、つまり受信接続及び送信接続が正常に活率され、これら接続は、空のデータチャンク又は空のマルチパートデータブロックが受信されるまでオープン状態で維持される。
次に、2つの例示実施形態がHTTPコードによって説明される。
実施例1:クライアントとサーバとの間に単純なトンネル受信接続を構築するために実行される際に動作するHTTPコードが提供され、IPアドレス192.168.0.101を有するピアが、IPアドレス192.168.0.100を有するホストに接続する。HTTPコードにおいては、「GET」メソッドと「CONNECT」メソッドの両方が使用され、それと共にチャンク転送符号化が指定されていることが分かる。
実施例2:クライアントとサーバとの間に単純なトンネル送信接続を構築するために実行される際に動作するHTTPコードが提供され、IPアドレス192.168.0.101を有するピアが、対応するIPアドレス192.168.0.100を有するホストに接続される。HTTPコードにおいては、「POST」メソッドと「CONNECT」メソッドの両方が使用され、それと共にチャンク転送符号化が指定されていることが分かる。
これら2つの実施例1及び2においては、MSSは1460バイトであると想定されるので、実際上、最適化チャンクに関するデータサイズは、1453バイトとなる。最適化チャンクサイズは、方程式1において与えられる式を用いることによって、システムにおいて算出される。
MSS=(チャンク開始ヘッダ)−(チャンク終了ヘッダ)・・・方程式1
チャンク開始ヘッダは、例えば16進表記の実際のデータチャンクの長さと、通常はキャリッジ・リターン(CR)とラインフィード(Lf)の両方である1又は複数の改行文字とからなる。チャンク終了ヘッダは、改行文字の終了に類似し、それら改行文字がデータチャンクを完成させる。
次に図2を参照すると、ステップ3(S3)、即ちCONNECTメソッドを利用することによって接続トンネルを確立することは、図3に提供されるとおり、任意に省略される。トンネルを要しない場合には、接続トンネルは省略される。従って、通信が利用されない場合には、ステップ1、2及び4のみが利用される。さらに、図2に関しては、接続トンネルが、GET接続又はPOST接続に対してのみ構築され、即ち複数のノード間で非対称トンネル通信構成が構築され得る。つまり、任意に、通信トンネルは、GET接続又はPOST接続に対してのみ用いられる。
実施例3:MSS最適化は、所定のデータチャンクによって提供される所定のペイロードにのみ依存する。何故ならば、対応するhttpチャンクヘッダは、処理におけるその時点で既に除去されているのに対し、データブロックのペイロードは100%であるからである。ここで、このようなMSS最適化は、基本的に、以下の概念に基づくものである。即ち、最大転送単位(MTU)は、個別の送信バーストであり、それ自体は、層が渡すことができる最大プロトコルデータ単位であり、例えば1500バイトである。また、MSS(最大セグメントサイズ)は、MTU−プロトコルヘッダと同等のデータサイズを有する。本願による技術の実施形態においては、MSSは、ちょうど、問題とされるネットワークの最弱通信リンクが送信し得るバイト量のデータを保有する。従って、本願による技術が用いられる場合には、データはより小さいパケットに分割されず、その結果、例えばWiFi(ワイファイ)ネットワーク等において衝突及びパケット損失が生じることは少なくなる。
MSS最適化の例は、以下のとおりである。
接続構築の開始:
ICMPピング(ICMP−ping)は、ネットワークをテストするために送信され、クライアント1とクライアント2との間の通信が、MTU>600の場合に回避されることが検出される。従って、MTUは600バイトに設定され、この事は、TCPヘッダの40バイトが除外された後、つまり考慮された後のMSSは560バイトであることを意味する。UDPプロトコルのヘッダはより小さく、従って、UDPが用いられる場合、ペイロードは相応してより大きくなる。
次いで、クライアント1は、6つのパートに分割される3000バイトのパケットをクライアント2に送信する。このような分割は単純であり、有利には以下の式に従い実装される。全バイト量が、ネットワークにおける最小MTU−開始及び終了チャンクヘッダで除算される。即ち、3000/(560−(5+2))=5.42パケットであり、これは、その他データが送信のために待ち行列に入れられない限り、最も近い整数単位のパケットに四捨五入される。
パケット1:560バイトが送信され、そのうちペイロードは553バイトである。
パケット2:560バイトが送信され、そのうちペイロードは553バイトである。
パケット3:560バイトが送信され、そのうちペイロードは553バイトである。
パケット4:560バイトが送信され、そのうちペイロードは553バイトである。
パケット5:560バイトが送信され、そのうちペイロードは553バイトである。
パケット6:560バイトが送信され、そのうちペイロードは235バイトである。
パケット2:560バイトが送信され、そのうちペイロードは553バイトである。
パケット3:560バイトが送信され、そのうちペイロードは553バイトである。
パケット4:560バイトが送信され、そのうちペイロードは553バイトである。
パケット5:560バイトが送信され、そのうちペイロードは553バイトである。
パケット6:560バイトが送信され、そのうちペイロードは235バイトである。
パケットが、分割されることなく、つまり1つの3000バイトのパケットとして直接送信された場合には、パケットは、ネットワーク上のオペレータのデバイスによって分割され、即ち断片化され、これは、時間を要するであろうし、また、問題を生じさせる可能性もあり、さらに欠損パケットを再送信することが必要になる可能性も生じるであろう。そして、これら全ての事が、送信側が、受信側の不安定なネットワークによって遅延が生じるために、新規パケットを送信する前に待機しなければならないことに繋がるであろう。
上記に記載した発明の実施形態に対する変更は、添付の特許請求の範囲によって定義される発明の要旨から逸脱することのない限り可能である。特許請求の範囲に図面の参照符号が記載される場合、それは請求項の理解を補助するためのものであり、請求項に係る発明を限定するものとして解釈してはならない。
Claims (12)
- 通信システム(5)であって、
HTTPに準拠する通信をサポートするように動作可能であり、HTTPに関連するGETメソッド及びPOSTメソッドの組合せを利用することによって、前記通信システムの2つのノード(10A,10B)の間に双方向リアルタイム通信リンク(40)を確立するように動作可能であり、
前記双方向リアルタイム通信リンクを介したデータ交換は、一連のマルチパートデータブロック及び/又はHTTPデータチャンクを用いるチャンク様式として実装される、
通信システム(5)において、
(i)最大セグメントサイズ(MSS)が、前記双方向リアルタイム通信リンクをサポートする通信ネットワーク容量の関数として最適化され、また前記最大セグメントサイズは、識別された最弱通信リンクを表す最大転送単位(MTU)に応じて最適化されることと;
(ii)前記双方向リアルタイム通信リンクを介して伝送されるHTTPデータチャンク及び/又はマルチパートデータブロックに関するサイズが、最適化された前記最大セグメントサイズに基づいて最適化されること、但し該最適化されることは、前記HTTPデータチャンク及び/又は前記マルチパートデータブロックが、前記最弱通信リンクが送信しうるバイト量とちょうど同じであるようにすることを含む、前記最適化されることと;
(iii)前記データ交換は、転送符号化を利用して実装されることと;
を特徴とする、通信システム。 - 前記双方向リアルタイム通信リンクが、HTTPと関連するCONNECTメソッドを利用することによってトンネルされるTCP/IP及び/又はUDPである、請求項1に記載の通信システム。
- 前記双方向リアルタイム通信リンクが、前記双方向リアルタイム通信リンクを提供する受信接続及び送信接続を含み、空のデータチャンク及び/又は空のマルチパートデータブロックを受信するまで、それら接続がオープンに維持される、請求項1に記載の通信システム。
- 前記双方向リアルタイム通信リンクが、前記双方向リアルタイム通信リンクを介して伝送されるデータの暗号化を利用するように動作可能である、請求項1に記載の通信システム。
- 前記双方向リアルタイム通信リンクが、グラフィックデータ、画像データ、ビデオデータ、音声データ、テキストデータ、非構造化データのうちの少なくとも1つの通信を提供するように動作可能である、請求項1に記載の通信システム。
- HTTPに準拠する通信をサポートするように動作可能である通信システム(5)を介して通信リンクを確立する方法であって、
(a)HTTPに関連するGETメソッド及びPOSTメソッドの組合せを利用することによって、前記通信システムの2つのノードの間に双方向リアルタイム通信リンクを確立することと;
(b)前記双方向リアルタイム通信リンクを介して、一連のマルチパートデータブロック及び/又はHTTPデータチャンクを用いるチャンク様式でデータを交換することと;
(c)最大セグメントサイズ(MSS)を、前記双方向リアルタイム通信リンクをサポートする通信ネットワーク容量の関数として最適化すること、および前記最大セグメントサイズを、識別された最弱通信リンクを表す最大転送単位(MTU)に応じて最適化することと;
(d)前記双方向リアルタイム通信リンクを介して伝送されるHTTPデータチャンク及び/又はマルチパートデータブロックに関するサイズを、最適化された前記最大セグメントサイズに基づいて最適化すること、但し該最適化することは、前記HTTPデータチャンク及び/又は前記マルチパートデータブロックが、前記最弱通信リンクが送信しうるバイト量とちょうど同じであるようにすることを含む、前記最適化することと;
を含み、前記交換することは、転送符号化を利用して実装される、方法。 - 前記方法は、HTTPと関連するCONNECTメソッドを利用することによって、前記双方向リアルタイム通信リンクのTCP/IP及び/又はUDPトンネリングを含む、請求項6に記載の方法。
- 前記双方向リアルタイム通信リンクが、前記双方向リアルタイム通信リンクを提供する受信接続及び送信接続を含み、空のデータチャンク及び/又は空のマルチパートデータブロックを受信するまで、それら接続がオープンに維持される、請求項6に記載の方法。
- 前記双方向リアルタイム通信リンクを介して伝送されるデータの暗号化を利用するように前記双方向リアルタイム通信リンクを動作させることを含む、請求項6に記載の方法。
- グラフィックデータ、画像データ、ビデオデータ、音声データ、テキストデータ、非構造化データのうちの少なくとも1つの通信を提供するよう前記双方向リアルタイム通信リンクを動作させることを含む、請求項6に記載の方法。
- 装置の処理手段に実行されると、前記装置に、請求項6から10のいずれかに記載の方法を遂行させるように構成されるプログラム命令を備える、コンピュータプログラム。
- HTTPで表現され、かつHTTPに従って動作する通信ネットワークのサーバ上で実行可能である、請求項11に記載のコンピュータプログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1307340.8 | 2013-04-23 | ||
GB1307340.8A GB2513344B (en) | 2013-04-23 | 2013-04-23 | Communication system utilizing HTTP |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016508045A Division JP6444988B2 (ja) | 2013-04-23 | 2014-04-21 | Httpを利用する通信システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017118545A JP2017118545A (ja) | 2017-06-29 |
JP2017118545A5 true JP2017118545A5 (ja) | 2018-06-14 |
Family
ID=48537693
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016508045A Active JP6444988B2 (ja) | 2013-04-23 | 2014-04-21 | Httpを利用する通信システム |
JP2017000017A Pending JP2017118545A (ja) | 2013-04-23 | 2017-01-04 | Httpを利用する通信システム |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016508045A Active JP6444988B2 (ja) | 2013-04-23 | 2014-04-21 | Httpを利用する通信システム |
Country Status (9)
Country | Link |
---|---|
US (2) | US20150200997A1 (ja) |
EP (1) | EP2989774B1 (ja) |
JP (2) | JP6444988B2 (ja) |
KR (1) | KR101655715B1 (ja) |
CN (1) | CN105340242B (ja) |
BR (1) | BR112015026903A2 (ja) |
GB (1) | GB2513344B (ja) |
RU (1) | RU2635220C2 (ja) |
WO (1) | WO2014173521A1 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107294913B (zh) * | 2016-03-31 | 2021-08-27 | 阿里巴巴集团控股有限公司 | 基于http的安全通信方法、服务端及客户端 |
US10334052B2 (en) | 2016-10-28 | 2019-06-25 | Caterpillar Inc. | System and method for communicating negotiated groups of parameters |
EP3662638B1 (en) * | 2017-08-04 | 2021-09-22 | Nokia Technologies Oy | Transport method selection for delivery of server notifications |
JP7203297B2 (ja) * | 2017-09-27 | 2023-01-13 | 有限会社シモウサ・システムズ | エンドツーエンド暗号化通信システム |
CN108011850B (zh) * | 2017-12-18 | 2021-08-17 | 北京百度网讯科技有限公司 | 数据包的重组方法及装置、计算机设备及可读介质 |
WO2021201305A1 (ko) * | 2020-03-30 | 2021-10-07 | 엘지전자 주식회사 | 차량을 위한 통신 프로토콜을 변경하는 방법 및 장치 |
CN113285931B (zh) * | 2021-05-12 | 2022-10-11 | 阿波罗智联(北京)科技有限公司 | 流媒体的传输方法、流媒体服务器及流媒体系统 |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6412009B1 (en) * | 1999-03-15 | 2002-06-25 | Wall Data Incorporated | Method and system for providing a persistent HTTP tunnel |
JP3478200B2 (ja) * | 1999-09-17 | 2003-12-15 | 日本電気株式会社 | サーバ・クライアント間双方向通信システム |
US7522631B1 (en) * | 1999-10-26 | 2009-04-21 | Qualcomm, Incorporated | Method and apparatus for efficient data transmission control in a wireless voice-over-data communication system |
US7324228B2 (en) * | 2000-02-25 | 2008-01-29 | Hewlett-Packard Development Company, L.P. | System and method for downloading and for printing data from an external content source |
US20020184383A1 (en) | 2001-05-29 | 2002-12-05 | Docomo Communications Laboratories Usa, Inc. | Live mobile camera system with a communication protocol and a server cluster |
EP1461708A1 (en) * | 2001-08-24 | 2004-09-29 | Reality Fusion, Inc. | System and method for group video teleconferencing with variable bandwidth |
JP2003244194A (ja) * | 2002-02-18 | 2003-08-29 | Mitsubishi Electric Corp | データ暗号装置及び暗号通信処理方法及びデータ中継装置 |
JP2003304248A (ja) * | 2002-04-09 | 2003-10-24 | Nippon Telegr & Teleph Corp <Ntt> | データ転送方法及び装置 |
DE10260926B4 (de) * | 2002-12-20 | 2005-12-01 | Hewlett-Packard Development Co., L.P., Houston | Kommunikationsverfahren |
US7447369B2 (en) * | 2003-03-07 | 2008-11-04 | Ricoh Co., Ltd. | Communication of compressed digital images |
US20050071485A1 (en) * | 2003-09-26 | 2005-03-31 | Arun Ramagopal | System and method for identifying a network resource |
FR2869490B1 (fr) * | 2004-04-26 | 2006-06-23 | Michel Gouget | Procede d'acces a un syteme informatique protege, application a la tele-administration et a la realisation de proxies |
US7561696B2 (en) * | 2005-07-12 | 2009-07-14 | Microsoft Corporation | Delivering policy updates for protected content |
US8151323B2 (en) * | 2006-04-12 | 2012-04-03 | Citrix Systems, Inc. | Systems and methods for providing levels of access and action control via an SSL VPN appliance |
JP2008108116A (ja) * | 2006-10-26 | 2008-05-08 | Nec Corp | 双方向通信システム、サーバ装置、中継装置、双方向通信方法及びプログラム |
KR20100014507A (ko) * | 2007-03-22 | 2010-02-10 | 텔레폰악티에볼라겟엘엠에릭슨(펍) | 사용자 장비에서 링크 최대 전송 단위를 구성하는 방법 |
JP4864792B2 (ja) * | 2007-03-29 | 2012-02-01 | 京セラ株式会社 | 無線通信端末の制御方法および無線通信端末 |
US7995478B2 (en) * | 2007-05-30 | 2011-08-09 | Sony Computer Entertainment Inc. | Network communication with path MTU size discovery |
KR20090010416A (ko) * | 2007-07-23 | 2009-01-30 | 삼성전자주식회사 | Ppp 연결의 패킷 크기 최적화 시스템 및 그 방법 |
US8782772B2 (en) * | 2007-09-28 | 2014-07-15 | Microsoft Corporation | Multi-session secure tunnel |
KR101405952B1 (ko) * | 2007-12-05 | 2014-06-12 | 엘지전자 주식회사 | 데이터 블록 전송방법 |
JP2010004416A (ja) * | 2008-06-23 | 2010-01-07 | Fujitsu Ltd | 移動無線装置 |
KR101010409B1 (ko) | 2008-09-01 | 2011-01-24 | 주식회사 세아네트웍스 | 터널링 기반 네트워크에서 ip 패킷 전송 방법 및 장치 |
KR101636258B1 (ko) * | 2009-03-20 | 2016-07-05 | 삼성전자 주식회사 | 이동통신시스템에서 네트워크의 rach 관련 시스템 자원자동적 최적화 방법 |
US9178648B2 (en) * | 2010-01-06 | 2015-11-03 | Alcatel Lucent | Method to improve voice over IP capacity for user equipment employing variable rate vocoders |
WO2012161652A1 (en) * | 2011-05-26 | 2012-11-29 | Agency For Science, Technology And Research | Methods for transmitting and receiving a digital signal, transmitter and receiver |
CN102594826B (zh) * | 2012-02-24 | 2014-12-10 | 清华大学 | 一种适用于电力系统终端设备的实时数据压缩通信方法 |
US8755404B2 (en) * | 2012-04-25 | 2014-06-17 | Gainspan Corporation | Facilitating communication between resource-constrained devices and wireless communication terminals |
US9268651B1 (en) * | 2012-10-31 | 2016-02-23 | Amazon Technologies, Inc. | Efficient recovery of storage gateway cached volumes |
-
2013
- 2013-04-23 GB GB1307340.8A patent/GB2513344B/en active Active
-
2014
- 2014-04-21 RU RU2015143010A patent/RU2635220C2/ru active
- 2014-04-21 JP JP2016508045A patent/JP6444988B2/ja active Active
- 2014-04-21 BR BR112015026903A patent/BR112015026903A2/pt not_active IP Right Cessation
- 2014-04-21 KR KR1020157032976A patent/KR101655715B1/ko active IP Right Grant
- 2014-04-21 WO PCT/EP2014/001052 patent/WO2014173521A1/en active Application Filing
- 2014-04-21 EP EP14721760.8A patent/EP2989774B1/en active Active
- 2014-04-21 CN CN201480035501.1A patent/CN105340242B/zh active Active
-
2015
- 2015-03-26 US US14/669,622 patent/US20150200997A1/en not_active Abandoned
- 2015-04-13 US US14/684,955 patent/US9787770B2/en active Active
-
2017
- 2017-01-04 JP JP2017000017A patent/JP2017118545A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6444988B2 (ja) | Httpを利用する通信システム | |
JP2017118545A5 (ja) | ||
US9590821B2 (en) | Communication system for transmitting data under a tunnel protocol between at least two data computers via a wide area network and a method for running such a communication system | |
EP1892887B1 (en) | Communication method between communication devices and communication apparatus | |
Eggert et al. | Unicast UDP usage guidelines for application designers | |
US7826487B1 (en) | Coalescing acknowledgement responses to improve network communications | |
US10135956B2 (en) | Hardware-based packet forwarding for the transport layer | |
US11882199B2 (en) | Virtual private network (VPN) whose traffic is intelligently routed | |
EP2741463B1 (en) | Data packet transmission method | |
US8032641B2 (en) | Assymmetric traffic flow detection | |
US20220045934A1 (en) | Method and apparatus of automatic route optimization in a private virtual network for client devices of a local network | |
EP3125502A1 (en) | Method for providing access to a web server | |
WO2011020397A1 (zh) | 网络代理实现方法及装置 | |
TWI701920B (zh) | 封包傳送方法以及系統 | |
JP2009055418A (ja) | 通信システム、中継装置、端末、及び中継処理方法並びにそのプログラム | |
CN111314447A (zh) | 代理服务器及其处理访问请求的方法 | |
CN114978643B (zh) | 一种通信方法、网络设备及存储介质 | |
JP7178523B2 (ja) | 中継装置及びローカルブレイクアウトの転送方法 | |
Komu et al. | Basic host identity protocol (HIP) extensions for traversal of network address translators | |
Eggert et al. | RFC 5405: Unicast UDP Usage Guidelines for Application Designers | |
Ott et al. | The Binary Floor Control Protocol (BFCP) draft-ietf-bfcpbis-rfc4582bis-06 |