JP5935602B2 - 転送装置、転送方法および転送プログラム - Google Patents

転送装置、転送方法および転送プログラム Download PDF

Info

Publication number
JP5935602B2
JP5935602B2 JP2012190631A JP2012190631A JP5935602B2 JP 5935602 B2 JP5935602 B2 JP 5935602B2 JP 2012190631 A JP2012190631 A JP 2012190631A JP 2012190631 A JP2012190631 A JP 2012190631A JP 5935602 B2 JP5935602 B2 JP 5935602B2
Authority
JP
Japan
Prior art keywords
data
transfer
retransmission
packet
unit
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
Application number
JP2012190631A
Other languages
English (en)
Other versions
JP2014049905A (ja
Inventor
真一 佐沢
真一 佐沢
佐藤 裕一
裕一 佐藤
大地 島田
大地 島田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012190631A priority Critical patent/JP5935602B2/ja
Priority to EP13172836.2A priority patent/EP2725760B1/en
Priority to US13/926,495 priority patent/US9485189B2/en
Publication of JP2014049905A publication Critical patent/JP2014049905A/ja
Application granted granted Critical
Publication of JP5935602B2 publication Critical patent/JP5935602B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/828Allocation of resources per group of connections, e.g. per group of users
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、転送装置等に関する。
近年、ネットワーク上で複数のアプリケーションが協働し、利用者にサービスを提供するクラウドコンピューティングが存在する。
コンピュータネットワークにおいて、データ通信の確実性のため、一般にTCP(Transmission Control Protocol)に代表されるコネクション型プロトコルが用いられる。しかしながら、各アプリケーションがTCPを用いてデータ通信を実行すると、ハンドシェイクプロセスでのコネクションを確立する処理やデータ転送の確認応答処理が発生し、例えば通信距離が長距離の場合など、ネットワーク帯域が十分である場合でも、遅延が発生してしまう場合がある。
かかる遅延発生を防止するべく、TCPに代わる従来技術が存在する。図13は、従来技術の一例を説明するための図である。図13に示す例では、アプリケーション10は、データをTCPクライアント15に送信し、TCPクライアント15は、TCPパケットを中継ソフトウェア20に送信する。
中継ソフトウェア20は、TCPパケットをキャプチャし、コネクションレス型プロトコルであるUDP(User Datagram Protocol)と再送アルゴリズムに変換し、データ転送を行う。具体的に、中継ソフトウェア20は、TCPパケットをUDPパケットに変換し、UDPによって、データ転送を実行する。また、中継ソフトウェア20は、アプリケーション層を2分割し、UDPによるデータ消失に対応するリカバリや、帯域制御などを行うための再送アルゴリズムを備えた高速転送部を設ける。
特開2009−49506号公報
しかしながら、上述した従来技術では、データ通信量の少ないアプリケーションの組みに十分な通信帯域が割り当てられず、データの再送が滞るという問題があった。
図14は、従来技術の問題点を説明するための図である。図14に示す例では、転送装置30a、30bがネットワーク50を介して接続されている。転送装置30aは、アプリケーション15a、15b、15c、中継ソフトウェア20aを有する。転送装置30bは、アプリケーション16a、16b、16c、中継ソフトウェア20bを有する。
例えば、アプリケーション15aは、データ通信量の少ない低性能のアプリケーションであり、中継ソフトウェア20a、20bを利用して、アプリケーション16aとデータ通信を行う。アプリケーション15bは、データ通信量の多い高性能のアプリケーションであり、中継ソフトウェア20a、20bを利用して、アプリケーション16bとデータ通信を行う。アプリケーション15cは、データ通信量の少ない低性能のアプリケーションであり、アプリケーション16cとデータ通信を行う。中継ソフトウェア20a、20bは、図13で説明した中継ソフトウェア20に対応する。
従来の中継ソフトウェア20a、20bは、ネットワーク50の最大通信帯域を鑑みず、各アプリケーションの性能に応じて、帯域を割り当てる。このため、中継ソフトウェア20a、20bは、高性能のアプリケーション15b,16bの組みに、大きな通信帯域を割り当てる場合がある。このように、中継ソフトウェア20a、20bが帯域を割り当てると、ネットワーク50の帯域が占有されてしまい、アプリケーション15a、16a間や、アプリケーション15c,16c間に十分な通信帯域が割り当てられず、データの再送が滞ってしまう。
開示の技術は、上記に鑑みてなされたものであって、データ通信量の少ないアプリケーションの組みでもデータの再送が滞ることを防止することができる転送装置、転送方法および転送プログラムを提供することを目的とする。
開示の転送装置は、帯域割当部と転送制御部とを有する。帯域割当部は、データの送信元と送信先との複数の組みが共通して利用する通信回線の最大通信帯域の範囲内で、複数の組み毎に最低限の通信帯域をそれぞれ割り当てる。転送制御部は、帯域割当部によって割り当てられた各組の通信帯域内において、送信元から受信するデータとは異なるプロトコルで送受信される変換データにデータを変換し、変換データを送信先に転送し、変換データの再送要求に応答して、再送データを再送する。
開示の転送装置によれば、データ通信量の少ないアプリケーションの組みでもデータの再送が滞ることを防止することができるという効果を奏する。
図1は、本実施例に係るシステムの構成を示す図である。 図2は、本実施例に係る転送装置の構成を示す機能ブロック図である。 図3は、本実施例に係る記憶部のデータ構造の一例を示す図である。 図4は、転送制御部が生成するUDPパケットのデータ構造の一例を示す図である。 図5は、受信状況確認パケットのデータ構造の一例を示す図である。 図6は、受信状況応答パケットのデータ構造の一例を示す図である。 図7は、本実施例に係るパケット受信情報のデータ構造の一例を示す図である。 図8は、パケット受信情報を生成する処理の一例を示す図である。 図9は、本実施例に係るシステムの処理手順を示すフローチャートである。 図10は、本実施例に係るデータ転送の処理手順を示すフローチャートである。 図11は、データ転送処理の処理手順を示すフローチャートである。 図12は、転送プログラムを実行するコンピュータの一例を示す図である。 図13は、従来技術の一例を説明するための図である。 図14は、従来技術の問題点を説明するための図である。
以下に、本発明に係る転送装置、転送方法および転送プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
次に、本実施例に係るシステムについて説明する。図1は、本実施例に係るシステムの構成を示す図である。図1に示すように、このシステムは、TCPクライアント60a、60b、60c、TCPサーバ70a、70b、70c、転送装置100、200を有する。ここでは一例として、TCPクライアント60a〜60c、TCPサーバ70a〜70cを示すが、その他のTCPクライアント、TCPサーバが接続されていても良い。以下の説明では、TCPクライアント60a〜60cをまとめて、TCPクライアント60と表記する。TCPサーバ70a〜70cをまとめて、TCPサーバ70と表記する。
TCPクライアント60は、転送装置100に接続される。TCPサーバ70は、転送装置200に接続される。転送装置100および転送装置200は、ネットワーク50を介して相互に接続される。TCPクライアント60およびTCP70サーバは、転送装置100、200を介してデータ通信を実行する。
図1に示した転送装置100、200の構成について説明する。図2は、本実施例に係る転送装置の構成を示す機能ブロック図である。図2に示すように、転送装置100は、UI部101、設定ファイル記憶部102、設定変更部103、転送部104、記憶部105、送信制御部106を有する。転送装置200は、UI部201、設定ファイル記憶部202、設定変更部203、転送部204、記憶部205、受信制御部206を有する。
まず、転送装置100の構成について説明する。UI(User Interface)部101は、利用者が各種の情報を入力する入力部である。例えば、UI部101は、キーボード、タッチパネル等の入力装置に対応する。利用者は、UI部101を操作して、各種の設定情報を入力する。UI部101から入力された各種の設定情報は、設定ファイル記憶部102に記憶される。
設定ファイル記憶部102は、各種の設定情報を記憶する記憶装置である。設定変更部103は、設定ファイル記憶部102に記憶された設定情報に基づいて、転送部104、送信制御部106の設定を適宜変更する処理部である。
転送部104は、TCPクライアント60とコネクションを確立し、TCPクライアント60からTCPパケットを受信する処理部である。転送部104は、TCPパケットを記憶部105に記憶させる。転送部104は、TCPクライアント60毎にTCPパケットを記憶部105に記憶させる。また、転送部104は、TCPクライアント60から受信したTCPパケットの単位時間当たりのデータサイズを記憶部105に記憶させる。
記憶部105は、TCPパケットを記憶する記憶装置である。図3は、本実施例に係る記憶部のデータ構造の一例を示す図である。図3に示すように、記憶部105は、識別番号、TCPパケット、データサイズT(X)、データサイズR(X)を対応付けて記憶する。識別番号は、データ通信を行うTCPクライアント60とTCPサーバ70との組みを一意に識別する情報である。TCPパケットは、TCPクライアント60から受信したTCPパケットのデータである。データサイズT(X)は、単位時間あたりのTCPパケットの合計サイズである。データサイズR(X)は、転送装置200に再送する単位時間あたりの再送パケットの合計サイズである。再送パケットは、送信先の転送装置200から、再送要求のあったUDPパケットである。
送信制御部106は、TCPパケットをUDPパケットに変換し、UDPパケットによって、データ転送を実行する処理部である。また、送信制御部106は、UDPによるデータ消失に対応するリカバリや、TCPクライアントとTCPサーバとの帯域制御を行う。送信制御部106は、帯域割当部106a、転送制御部106b、再送受付部106cを有する。
帯域割当部106aは、TCPクライアント60とTCPサーバ70との各組みに、最低帯域以上の通信帯域をそれぞれ割り当てる処理部である。具体的に、帯域割当部106aは、下記に示すように、TCPクライアント60とTCPサーバ70との各組みに割り当てる帯域を算出する。帯域割当部106aは、算出結果を転送制御部106bに出力する。
ここで、帯域割当部106aの処理を具体的に説明する。まず、帯域割当部106aは、記憶部105を参照し、式(1)に基づいて、TotalSizeを算出する。TotalSizeは、TCPクライアント60とTCPサーバ70とのデータ通信における、単位時間あたりのデータ量の合計値である。
Figure 0005935602
帯域割当部106aは、ネットワーク50の最大帯域と、TotalSizeとを比較し、最大帯域の方がTotalSizeよりも大きいか否かを判定する。例えば、最大帯域の情報は、利用者が予め設定しておくものとする。
最大帯域の方がTotalSizeよりも大きい場合について説明する。帯域割当部106aは、全データを送信する旨を転送制御部106bに通知する。
最大帯域がTotalSize以下の場合について説明する。帯域割当部106aは、記憶部105を参照し、式(2)に基づいて、「Bnow」を算出する。式(2)において、B(bps)は、ネットワーク50の最大帯域である。b(bps)は、TCPクライアント60とTCPサーバ70との各組みにそれぞれ割り当てる、最低帯域である。最低帯域bの値は、例えば、利用者が予め設定しておく。なお、式(2)において、min(b,R(x))は、b,R(x)のうち、小さい方の値を選択する関数である。すなわち、「Bnow」は、最大帯域から、TCPクライアント60とTCPサーバ70との各組に割り当てる最低限の帯域を合計したものを減算した残りの帯域といえる。
Figure 0005935602
帯域割当部106aは、「Bnow」を算出した後に、式(3)を基にして、各組みの「Total(X)」を算出する。「Total(X)」は、UDPパケットおよび再送パケットを送信する場合のTCPクライアント60とTCPサーバ70との各組に割り当てる帯域である。例えば、Total(1)は、TCPクライアント60aとTCPサーバ70aとの組みに割り当てる帯域を示す。帯域割当部106aは、算出結果となる「Total(X)」の情報を、転送制御部106bに通知する。
Figure 0005935602
転送制御部106bは、転送装置200との間でコネクションを確立させ、TCPパケットをUDPパケットに変換し、UDPパケットを転送装置200に送信する処理部である。例えば、転送制御部106bは、TCPパケットをカプセル化し、UDPヘッダを付与することで、UDPパケットを生成する。また、転送制御部106bは、再送に備えて、UDPパケットを記憶部105に記憶させておく。転送制御部106bは、再送要求を受け付けた場合には、未送信のUDPパケットよりも、再送パケットを優先して、転送装置200に再送パケットを送信する。
図4は、転送制御部が生成するUDPパケットのデータ構造の一例を示す図である。図4に示すように、例えば、UDPパケットは、UDPヘッダ、RPSヘッダ、送信データ部を含む。RPSヘッダには、送信データのオフセット、受信完了通知を受けたデータのオフセットが含まれる。また、UDPヘッダには、UDPパケットを一意に識別するID(Identification)が含まれているものとする。また、送信データ部には、カプセル化されたTCPパケットが含まれる。
転送制御部106bが、帯域割当部106aから、全データを送信する旨の情報を取得した場合の処理について説明する。転送制御部106bは、記憶部105に記憶されたTCPパケットを、UDPパケットに変換し、変換したUDPパケットを転送装置200に送信する。また、転送制御部106bは、再送受付部106cから、再送対象となるUDPパケットのIDを取得した場合に、再送対象となるUDPパケットを記憶部105から抽出し、転送装置200に再送する。再送対象となるUDPパケットは、上記の再送パケットに対応する。
転送制御部106bが、各組みのTotal(X)を取得した場合の処理について説明する。転送制御部106bは、未送信のUDPパケットよりも、再送パケットを優先して、転送装置200にパケットを送信する処理を実行する。転送制御部106bは、式(4)を基にして、再送パケットを優先的に送信した場合の、残りの帯域を算出し、算出した残りの帯域の範囲内で、TCPパケットをUDPパケットに変換して送信する。
例えば、TCPクライアント60aとTCPサーバ70aとの組に割り当てる帯域をTotal(1)とし、Total(1)を100M(bps)とする。また、T(1)を60M(bps)とし、R(M)を60M(bps)とする。この場合には、転送制御部106bは、Total(1)の100Mbpsうち、60M(bps)を、再送パケットのデータ転送に割り当て、残りの40M(bps)を、未送信のUDPパケットのデータ転送に割り当てる。
このように、転送制御部106bが、再送パケットを優先して送信することで、転送装置200に到達できなかったUDPパケットを、時間的に古い方から順番に補っていくことができる。例えば、時間的に新しいUDPパケットを受け取れても、再送要求した、古いUDPパケットをいっこうに受け取れないといった問題を解消できる。
Figure 0005935602
再送受付部106cは、転送装置200から再送対象となるUDPパケットのIDを受信する処理部である。例えば、再送受付部106cは、受信状況確認パケットを、転送装置200に送信し、かかる受信状況確認パケットの応答となる受信状況応答パケットを受信する。受信状況応答パケットに、送信対象となるUDPパケットのIDが含まれる。
図5は、受信状況確認パケットのデータ構造の一例を示す図である。図5に示すように、この受信状況確認パケットは、UDPヘッダ、RPSヘッダ、SendReqID、CurSendOffsetを含む。SendReqIDは、受信できた受信状況応答の個数を示す。CurSendOffsetは、送信済みデータの先頭からの位置を示す。
図6は、受信状況応答パケットのデータ構造の一例を示す図である。図6に示すように、この受信状況応答パケットは、UDPヘッダ、RPSヘッダ、SendReqID、CurSendOffsetを含む。また、受信状況応答パケットは、LossCnt、SackID、SackMaxID、AckDataを含む。LossCntは、受信できているパケットの合計個数を示す。SackIDは、受信状況応答パケットに含まれるAckDataの個数を示す。SackMaxIDは、AckDataの合計個数を示す。AckDataは、受信したUDPパケットの開始IDと終了IDを含む。例えば、再送受付部106cは、かかるAckDataを参照することで、再送対象となるUDPパケットのIDを特定する。
再送受付部106cは、再送パケットのIDを転送制御部106bに出力する。また、再送受付部106cは、再送パケットの単位時間当たりのデータ量を、R(X)に加算して、記憶部105を更新する。
次に、転送装置200の構成について説明する。UI部201は、利用者が各種の情報を入力する入力部である。例えば、UI部201は、キーボード、タッチパネル等の入力装置に対応する。利用者は、UI部201を操作して、各種の設定情報を入力する。UI部201から入力された各種の設定情報は、設定ファイル記憶部202に記憶される。
設定ファイル記憶部202は、各種の設定情報を記憶する記憶装置である。設定変更部203は、設定ファイル記憶部202に記憶された設定情報に基づいて、転送部204、受信制御部206の設定を適宜変更する処理部である。
転送部204は、TCPサーバ70とコネクションを確立し、記憶部205に記憶されたTCPパケットを、TCPサーバ70に転送する処理部である。
記憶部205は、TCPクライアント60とTCPサーバ70との各組みに対応するTCPパケットを記憶する。また、記憶部205は、パケット受信情報を記憶する。パケット受信情報は、受信できなかったUDPパケットを判定するために利用される情報である。
図7は、本実施例に係るパケット受信情報のデータ構造の一例を示す図である。図7に示すように、このパケット受信情報は、各ノード81〜87がツリー状となっている。各ノード81〜87は、UDPパケットを一意に識別するIDと受信状況とを対応付けている。ノード81はノード82、85に接続される。ノード82は、ノード83、84に接続される。ノード85は、ノード86、87に接続される。
図7において、ノード81は、受信状況が「未」である。このため、ノード81は、ID0〜127によって識別されるUDPパケットのうち、いずれかのUDPパケットを受信していないことを示す。
ノード82は、受信状況が「済み」である。このため、ノード82は、ID0〜63によって識別されるUDPパケットを全て受信していることを示す。ノード83は、受信状況が「済み」である。このため、ノード83は、ID0〜31によって識別されるUDPパケットを全て受信していることを示す。ノード84は、受信状況が「済み」である。このため、ノード84は、ID32〜63によって識別されるUDPパケットを全て受信していることを示す。
ノード85は、受信状況が「未」である。このため、ノード85は、ID64〜127によって識別されるUDPパケットのうち、いずれかのUDPパケットを受信していないことを示す。ノード86は、受信状況が「未」である。このため、ノード86は、ID64〜95によって識別されるUDPパケットのうち、いずれかのUDPパケットを受信していないことを示す。ノード87は、受信状況が「済み」である。このため、ノード87は、ID96〜127によって識別されるUDPパケットを全て受信していることを示す。このパケット受信情報のノードのうち、受信状況が「未」となるノードを辿ることで、未受信のUDPパケットのIDを特定することができる。
受信制御部206は、転送装置100からUDPパケットを受信し、UDPパケットをTCPパケットに変換して、記憶部205に順次記憶する。また、受信制御部206は、受信できなかったUDPパケットの情報を、転送装置100に送信し、再送要求を行う。受信制御部206は、受信部206aおよび再送要求部206bを有する。
受信部206aは、転送装置からUDPパケットを受信し、受信したUDPパケットをTCPパケットに変換して、記憶部205に記憶させる。例えば、受信部206aは、UDPパケットに含まれるカプセル化されたTCPパケットを取り出し、記憶部205に記憶させる。また、受信部206aは、UPDパケットに含まれるIDを基にして、図7に示したパケット受信情報を生成する。
ここで、受信部206aが、パケット受信情報を生成する処理の一例について説明する。図8は、パケット受信情報を生成する処理の一例を示す図である。図8では受信状況の図示を省略する。図8に示すように、受信部206aは、ID0〜3のUDPパケットを受信した時点で、ID0〜3に対応するノード91a〜91dを生成し、ノード91a〜91dの受信状態を「済み」に設定する。また、受信部206aは、ノード91を生成し、ID0〜3のUDPパケットを受信済みである旨を、ノード91に設定する。
受信部206aは、ID4〜7のUDPパケットを受信した時点で、ID4〜7に対応するノード92a〜92dを生成し、ノード92a〜92dの受信状態を「済み」に設定する。また、受信部206aは、ノード92を生成し、ID4〜7のUDPパケットを受信済みである旨を、ノード92に設定する。
受信部206aは、ID8、9、11のUDPパケットを受信した時点で、ID8〜11に対応するノード93a〜93dを生成し、ノード93a、93b、93dの受信状態を「済み」に設定する。受信部206aは、ID10のUDPパケットを受信できていないため、ノード93cの受信状態を「未」に設定する。そして、受信部206aは、ノード93を生成し、ID8〜11に対応する受信状態を「未」に設定する。
受信部206aは、ID12〜15のUDPパケットを受信した時点で、ID12〜15に対応するノード94a〜94dを生成し、ノード94a〜94dの受信状態を「済み」に設定する。また、受信部206aは、ノード94を生成し、ID12〜15のUDPパケットを受信済みである旨を、ノード94に設定する。
受信部206aは、ノード91〜94を生成した後に、ノード90を生成する。受信部206aは、ノード93の受信状態が「未」であるため、ID0〜15に対応する受信状態を「未」に設定する。受信部206aは、UDPパケットを受信する度に上記処理を繰り返し実行することで、パケット受信情報を生成する。
再送要求部206bは、受信状況確認パケットを転送装置100から受信し、記憶部205のパケット受信情報を基にして、未受信のUDPパケットのIDを特定し、特定したIDを転送装置100に通知することで、未受信のUDPパケットの再送要求を行う。再送要求部206bは、パケット受信情報のノードのうち、受信状況が「未」となるノードを辿ることで、未受信のUDPパケットのIDを特定する。再送要求部206bは、パケット受信状況応答パケットを生成して、転送装置100に送信する。例えば、図8に示す例では、再送要求部206bは、受信状態が「未」となるノードを辿ると、ノード93に辿り着くため、ID10のUDPパケットが未受信であると判定する。
次に、本実施例にかかるシステムの処理手順について説明する。図9は、本実施例にかかるシステムの処理手順を示すフローチャートである。図9に示すように、転送装置100と転送装置200との間でコネクションを確立する(ステップS101)。TCPクライアント60と転送装置100との間でコネクションを確立する(ステップS102)。
転送装置100は、宛先IPを転送装置200に送信し(ステップS103)、転送装置200は、宛先IPを受信する(ステップS104)。ステップS103、S104において、宛先IPは、TCPクライアント60がデータ通信を行うTCPサーバ70のIPアドレスに対応する。
転送装置200とTCPサーバ70との間でコネクションを確立する(ステップS105)。TCPクライアント60は、TCPパケットを順次送信し(ステップS106)、TCPパケットを順次受信する(ステップS107)。
転送装置100は、UDPヘッダを付加し、TCPパケットのカプセル化を行う(ステップS108)。転送装置100は転送装置200との間で、UDPパケット、再送パケットのデータ転送、受信状況確認、受信状況返信を繰り返し実行する(ステップS109)。ステップS109において、転送装置100は、TCPクライアント60とTCPサーバ70との組みに割り当てる帯域を算出し、算出した帯域内で、データ転送を実行するものとする。
転送装置200は、ヘッダ情報を解析し、TCPパケットをTCPサーバ70に順次送信し(ステップS110)、TCPサーバ70はTCPパケットを順次受信する(ステップS111)。TCPクライアント60のTCPパケット転送が完了した後に、TCPクライアント60と転送装置100との間でセッションを切断する(ステップS112)。
転送装置100は、宛先IDを転送装置200に送信し(ステップS113)、転送装置200は、宛先IPを受信する(ステップS114)。ステップS113、S114において、宛先IPは、TCPクライアント60がデータ通信を終了するTCPサーバ70のIPアドレスに対応する。転送装置200とTCPサーバ70との間でセッションを切断する(ステップS115)。
次に、転送装置100がデータ転送を行う処理手順について説明する。図10は、本実施例に係るデータ転送の処理手順を示すフローチャートである。例えば、図10に示す処理は、転送装置100が、TCPクライアント60からTCPパケットの受信を開始したことを契機として実行される。
図10に示すように、転送装置100は、単位時間内において、TCPパケットを受信した場合には、データパケットサイズT(X)に受信したTCPパケットのデータサイズを加算する。また、転送装置100は、単位時間内において、再送要求を受信した場合には、データサイズR(X)に、再送パケットのデータサイズを加算する(ステップS201)。
転送装置100は、データ転送処理を実行し(ステップS202)、処理を継続する場合には(ステップS203,Yes)、再度ステップS201に移行する。一方、転送装置100は、処理を継続しない場合には(ステップS203,No)、処理を終了する。すなわち、転送装置100は、処理を継続している間は、所定の単位時間毎に、ステップS201、202の処理を繰り返し実行する。
次に、図10のステップS202に示したデータ転送処理について説明する。図11は、データ転送処理の処理手順を示すフローチャートである。図11に示すように、転送装置100は、TotalSizeを算出する(ステップS301)。ステップS301において、転送装置100は、式(1)を基にしてTotalSizeを算出する。
転送装置100は、最大帯域がTotalSizeよりも大きいか否かを判定する(ステップS302)。転送装置100は、最大帯域がTotalSizeよりも大きい場合には(ステップS302,Yes)、全データを送信する(ステップS303)。
転送装置100は、最大帯域がTotalSizeよりも大きくない場合には(ステップS302,No)、Bnowを算出する(ステップS304)。ステップS304において、転送装置100は、式(2)を基にして、Bnowを算出する。
転送装置100は、TCPクライアント60、TCPサーバ70の組み毎のTotal(X)を算出する(ステップS305)。ステップS305において、転送装置100は、式(3)を基にして、Total(X)を算出する。
転送装置100は、Total(X)を基にして、再送パケットを優先させ、UDPパケットおよび再送パケットのデータ転送を実行する(ステップS306)。
次に、本実施例に係る転送装置100の効果について説明する。転送装置100は、複数のアプリケーションの組みが共通して利用する通信回線の最大通信帯域の範囲内で、複数の組み毎に最低帯域以上の通信帯域をそれぞれ割り当て、UDPデータの転送および再送制御を実行する。このため、転送装置100によれば、再送パケットを再送するだけの通信帯域を確保でき、例えば、データ通信量の少ないアプリケーションの組みでもデータの再送が滞ることを防止することができる。
また、転送装置100によれば、複数のアプリケーションの組みにそれぞれ割り当てる通信帯域を、最低限の通信帯域と、アプリケーションの組で送受信されるデータ通信量に応じた通信帯域とを加算することで算出する。このため、転送装置100によれば、複数のアプリケーションに公平に通信帯域を割り当てることができる。例えば、高帯域を使用するアプリの利用中に、他の低帯域のアプリがデータ通信を実行不能になることを未然に防止することができる。また、利用可能な通信帯域をフル活用することができる。
また、転送装置100は、再送パケットを優先してデータ転送し、アプリケーションの組みに割り当てられた通信帯域から再送パケットで利用する通信帯域を減算した通信帯域の範囲内で、残りのUDPデータのデータ転送を実行する。このため、再送パケットを早めに転送でき、転送装置200側で不足するパケットを優先的に補うことができる。
また、転送装置200は、受信したUDPパケットのIDと、受信状況を基にして、ツリー状のパケット受信情報を生成する。そして、転送装置200は、パケット受信情報を基にして、再送要求を転送装置100に送信する。このため、未受信のUDPパケットのIDを開始IDから終了IDまで順に確認すること無く、未受信のUDPパケットのIDを特定することができる。例えば、未受信のUDPパケットのIDを特定する計算量が(logN)となる。これにより、ACK要求に時間がかかることによってパケットキューがフルになりパケットロスが増大する現象を抑止することができる。
ところで、転送装置100、200の構成は、図2に示すものに限定されない。例えば、転送装置100は、転送装置200の受信制御部206の機能を有していても良い。また、転送装置200は、転送装置100の送信制御部106の機能を有していても良い。そして、転送装置200が、TCPクライアント60からTCPパケットを受信して、転送装置100にデータ送信を実行し、転送装置100がTCPサーバ70にTCPパケットを送信しても良い。
次に、各実施例に示した転送装置100、200と同様の機能を実現する転送プログラムを実行するコンピュータの一例を説明する。図12は、転送プログラムを実行するコンピュータの一例を示す図である。
図12に示すように、コンピュータ300は、各種演算処理を実行するCPU301と、ユーザからのデータの入力を受け付ける入力装置302と、ディスプレイ303を有する。また、コンピュータ300は、記憶媒体からプログラム等を読取る読み取り装置304と、ネットワークを介して他のコンピュータとの間でデータの授受を行うインタフェース装置305とを有する。また、コンピュータ300は、各種情報を一時記憶するRAM306と、ハードディスク装置307を有する。そして、各装置301〜307は、バス308に接続される。
ハードディスク装置307は、例えば、送信制御プログラム307a、受信制御プログラム307bを有する。CPU301は、各プログラム307a、307bを読み出して、RAM306に展開する。
送信制御プログラム307aは、送信制御プロセス306aとして機能する。受信制御プログラム307bは、受信制御プロセス306bとして機能する。
例えば、送信制御プロセス306aは、送信制御部106に対応する。受信制御プロセス306bは、受信制御部206に対応する。
なお、各プログラム307a、307bについては、必ずしも最初からハードディスク装置307に記憶させておかなくてもよい。例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ300がこれらから各プログラム307a、307bを読み出して実行するようにしてもよい。
なお、本実施例における処理では送信をUDP通信により行うものしているが、通信方式はこれに限定されない。例えば、コネクションレス型通信プロトコルとしても良い。コネクションレス型通信とは、データ通信において、通信相手の状況を確認せずデータを一方的に送りつける通信方式、または、互いにそのようにデータを送りあう方式である。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)データの送信元と送信先との複数の組みが共通して利用する通信回線の最大通信帯域の範囲内で、前記複数の組み毎に最低限の通信帯域をそれぞれ割り当てる帯域割当部と、
前記帯域割当部によって割り当てられた各組の通信帯域内において、前記送信元から受信するデータとは異なるプロトコルで送受信される変換データに前記データを変換し、前記変換データを前記送信先に転送し、前記変換データの再送要求に応答して、再送データを再送する転送制御部と
を有することを特徴とする転送装置。
(付記2)前記帯域割当部は、前記送信元と前記送信先との複数の組みにそれぞれ割り当てる通信帯域を、最低限の通信帯域と、前記送信元と前記送信先との組で送受信されるデータ通信量に応じた通信帯域とを加算することで算出し、算出した通信帯域を各組みに割り当てることを特徴とする付記1に記載の転送装置。
(付記3)前記転送制御部は、前記再送データを優先してデータ転送し、前記送信元と送信先との組みに割り当てられた通信帯域から前記再送データで利用する通信帯域を減算した通信帯域の範囲内で、残りの変換データのデータ転送を実行することを特徴とする付記1または2に記載の転送装置。
(付記4)他の転送装置から変換データを順次受信し、受信した変換データを一意に識別する識別情報を木構造データによって記録する受信部と、前記木構造データをもとにして、再送要求を行う変換データを特定する再送要求部とを更に有することを特徴とする付記1、2または3に記載の転送装置。
(付記5)コンピュータが実行する転送方法であって、
データの送信元と送信先との複数の組みが共通して利用する通信回線の最大通信帯域の範囲内で、前記複数の組み毎に最低帯域以上の通信帯域をそれぞれ割り当て、
割り当てた各組みの通信帯域内において、前記送信元から受信するデータとは異なるプロトコルで送受信される変換データに前記データを変換し、前記変換データを前記送信先に転送し、前記変換データの再送要求に応答して、再送データを再送する
各処理を実行する転送方法。
(付記6)前記通信帯域をそれぞれ割り当てる処理は、前記送信元と前記送信先との複数の組みにそれぞれ割り当てる通信帯域を、最低限の通信帯域と、前記送信元と前記送信先との組で送受信されるデータ通信量に応じた通信帯域とを加算することで算出し、算出した通信帯域を各組みに割り当てることを特徴とする付記5に記載の転送方法。
(付記7)前記変換データの転送および再送データを再送する処理は、前記再送データを優先してデータ転送し、前記送信元と送信先との組みに割り当てられた通信帯域から前記再送データで利用する通信帯域を減算した通信帯域の範囲内で、残りの変換データのデータ転送を実行することを特徴とする付記5または6に記載の転送方法。
(付記8)他の転送装置から変換データを順次受信し、受信した変換データを一意に識別する識別情報を木構造データによって記録し、木構造データをもとにして、再送要求を行う変換データを特定する各処理を更に実行する付記5、6または7に記載の転送方法。
(付記9)コンピュータに、
データの送信元と送信先との複数の組みが共通して利用する通信回線の最大通信帯域の範囲内で、前記複数の組み毎に最低帯域以上の通信帯域をそれぞれ割り当て、
割り当てた各組みの通信帯域内において、前記送信元から受信するデータとは異なるプロトコルで送受信される変換データに前記データを変換し、前記変換データを前記送信先に転送し、前記変換データの再送要求に応答して、再送データを再送する
各処理を実行させることを特徴とする転送プログラム。
(付記10)前記通信帯域をそれぞれ割り当てる処理は、前記送信元と前記送信先との複数の組みにそれぞれ割り当てる通信帯域を、最低限の通信帯域と、前記送信元と前記送信先との組で送受信されるデータ通信量に応じた通信帯域とを加算することで算出し、算出した通信帯域を各組みに割り当てることを特徴とする付記9に記載の転送プログラム。
(付記11)前記変換データの転送および再送データを再送する処理は、前記再送データを優先してデータ転送し、前記送信元と送信先との組みに割り当てられた通信帯域から前記再送データで利用する通信帯域を減算した通信帯域の範囲内で、残りの変換データのデータ転送を実行することを特徴とする付記9または10に記載の転送プログラム。
(付記12)他の転送装置から変換データを順次受信し、受信した変換データを一意に識別する識別情報を木構造データによって記録し、木構造データをもとにして、再送要求を行う変換データを特定する各処理を更にコンピュータに実行させることを特徴とする付記9、10または11に記載の転送プログラム。
50 ネットワーク
60a、60b、60c TCPクライアント
70a、70b、70c TCPサーバ
100、200 転送装置

Claims (6)

  1. データの送信元と送信先との複数の組みが共通して利用する通信回線の最大通信帯域の範囲内で、前記複数の組み毎に、基準値と単位時間あたりの再送データのデータサイズとのうち小さい方の値を、最低限の通信帯域として、それぞれ割り当てる帯域割当部と、
    前記帯域割当部によって割り当てられた各組の通信帯域内において、前記送信元から受信するデータとは異なるプロトコルで送受信される変換データに前記データを変換し、前記変換データを前記送信先に転送し、前記変換データの再送要求に応答して、再送データを再送する転送制御部と
    を有することを特徴とする転送装置。
  2. 前記帯域割当部は、前記送信元と前記送信先との複数の組みにそれぞれ割り当てる通信帯域を、最低限の通信帯域と、前記送信元と前記送信先との組で送受信されるデータ通信量に応じた通信帯域とを加算することで算出し、算出した通信帯域を各組みに割り当てることを特徴とする請求項1に記載の転送装置。
  3. 前記転送制御部は、前記再送データを優先してデータ転送し、前記送信元と送信先との組みに割り当てられた通信帯域から前記再送データで利用する通信帯域を減算した通信帯域の範囲内で、残りの変換データのデータ転送を実行することを特徴とする請求項1または2に記載の転送装置。
  4. 他の転送装置から変換データを順次受信し、受信した変換データを一意に識別する識別情報を木構造データによって記録する受信部と、前記木構造データをもとにして、再送要求を行う変換データを特定する再送要求部とを更に有することを特徴とする請求項1、2または3に記載の転送装置。
  5. コンピュータが実行する転送方法であって、
    データの送信元と送信先との複数の組みが共通して利用する通信回線の最大通信帯域の範囲内で、前記複数の組み毎に、基準値と単位時間あたりの再送データのデータサイズとのうち小さい方の値を、最低限の通信帯域として、それぞれ割り当て、
    割り当てた各組みの通信帯域内において、前記送信元から受信するデータとは異なるプロトコルで送受信される変換データに前記データを変換し、前記変換データを前記送信先に転送し、前記変換データの再送要求に応答して、再送データを再送する
    各処理を実行する転送方法。
  6. コンピュータに、
    データの送信元と送信先との複数の組みが共通して利用する通信回線の最大通信帯域の範囲内で、前記複数の組み毎に、基準値と単位時間あたりの再送データのデータサイズとのうち小さい方の値を、最低限の通信帯域として、それぞれ割り当て、
    割り当てた各組みの通信帯域内において、前記送信元から受信するデータとは異なるプロトコルで送受信される変換データに前記データを変換し、前記変換データを前記送信先に転送し、前記変換データの再送要求に応答して、再送データを再送する
    各処理を実行させることを特徴とする転送プログラム。
JP2012190631A 2012-08-30 2012-08-30 転送装置、転送方法および転送プログラム Active JP5935602B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012190631A JP5935602B2 (ja) 2012-08-30 2012-08-30 転送装置、転送方法および転送プログラム
EP13172836.2A EP2725760B1 (en) 2012-08-30 2013-06-19 Transfer device and transfer method
US13/926,495 US9485189B2 (en) 2012-08-30 2013-06-25 Transfer device, and transfer method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012190631A JP5935602B2 (ja) 2012-08-30 2012-08-30 転送装置、転送方法および転送プログラム

Publications (2)

Publication Number Publication Date
JP2014049905A JP2014049905A (ja) 2014-03-17
JP5935602B2 true JP5935602B2 (ja) 2016-06-15

Family

ID=48747320

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012190631A Active JP5935602B2 (ja) 2012-08-30 2012-08-30 転送装置、転送方法および転送プログラム

Country Status (3)

Country Link
US (1) US9485189B2 (ja)
EP (1) EP2725760B1 (ja)
JP (1) JP5935602B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5676067B1 (ja) 2014-07-16 2015-02-25 かもめエンジニアリング株式会社 通信方法および通信システム
CN108234080A (zh) * 2018-01-12 2018-06-29 苏州汇万家数字科技有限公司 一种音视频传输方法
US11611542B2 (en) * 2021-08-11 2023-03-21 Dish Network Technologies India Private Limited Secure media streaming communication via user datagram protocol

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0763161B2 (ja) * 1993-01-05 1995-07-05 日本電気株式会社 マルチメディアパケット通信方式
US6075796A (en) * 1997-03-17 2000-06-13 At&T Methods and apparatus for providing improved quality of packet transmission in applications such as internet telephony
JP3602972B2 (ja) * 1998-07-28 2004-12-15 富士通株式会社 通信性能測定装置及びその測定方法
WO2002051101A1 (fr) * 2000-12-20 2002-06-27 Fujitsu Limited Systeme de reseau tcp/ip
US7675939B2 (en) * 2004-01-30 2010-03-09 Sony Corporation Transmission apparatus and method, reception apparatus and method, communication system, recording medium, and program
US20050213586A1 (en) * 2004-02-05 2005-09-29 David Cyganski System and method to increase network throughput
JP4883801B2 (ja) 2007-08-14 2012-02-22 キヤノン株式会社 通信制御装置、通信制御方法、及びコンピュータプログラム
US9154369B2 (en) * 2007-11-09 2015-10-06 Nokia Technologies Oy Method, apparatus and software for packet modification
US8261148B2 (en) * 2008-07-28 2012-09-04 At&T Intellectual Property Ii, Lp Internet protocol multicast with internet protocol unicast/multicast error correction
KR101048865B1 (ko) * 2009-03-16 2011-07-13 주식회사 팬택 전송계층 성능 향상을 위한 전송계층 제어장치 및 전송속도와 신뢰성을 동시에 보장할 수 있는 패킷 송신 방법
JP2012004969A (ja) * 2010-06-18 2012-01-05 Nippon Hoso Kyokai <Nhk> コンテンツ配信装置及びプログラム
JP5580706B2 (ja) 2010-09-29 2014-08-27 Kddi株式会社 再送制御プロトコルを用いるデータ転送装置、プログラム及び方法
JP5672063B2 (ja) * 2011-02-24 2015-02-18 富士通株式会社 送信制御プログラム、通信装置および送信制御方法

Also Published As

Publication number Publication date
EP2725760A1 (en) 2014-04-30
US9485189B2 (en) 2016-11-01
EP2725760B1 (en) 2016-11-02
US20140068081A1 (en) 2014-03-06
JP2014049905A (ja) 2014-03-17

Similar Documents

Publication Publication Date Title
Viernickel et al. Multipath QUIC: A deployable multipath transport protocol
US10116574B2 (en) System and method for improving TCP performance in virtualized environments
US9344287B2 (en) Scalable transport system for multicast replication
CN107534981B (zh) 资源重分配
CN105376173B (zh) 一种发送窗口流量控制方法和终端
EP3031184B1 (en) Performing quality-of-service on unknown bandwidths through rate estimating tcp congestion controllers
CN108702394B (zh) 网络端点间的媒体会话
JP6148459B2 (ja) データを送信ノードから宛先ノードに移送する方法
US20200274819A1 (en) Maintaining a queuing policy with multipath traffic
KR101607773B1 (ko) 데이터 송신 장치 및 이를 이용하는 데이터 통신 방법
CN104980257B (zh) 物联网通讯方法及装置
CN107786448B (zh) 建立业务流的转发路径的方法和装置
JP5935602B2 (ja) 転送装置、転送方法および転送プログラム
WO2016202224A1 (zh) 一种传输层参数调整方法和装置
JP6089518B2 (ja) 転送装置、転送方法および転送プログラム
JP2016162324A (ja) 情報処理システム、制御プログラム及び制御方法
Bakri et al. HTTP/2 and QUIC for Virtual Worlds and the 3D Web?
JP2006148727A (ja) アプリケーションモニタ装置
JP2017034627A (ja) 通信制御システムおよび通信制御方法
JP2016019156A (ja) 通信装置およびその制御方法
Chen et al. A round-trip-time based concurrent transmission scheduling for MPTCP
KR100649643B1 (ko) Tcp/ip 가속장치
US20210152481A1 (en) System and methods to filter out noisy application signatures to improve precision of first packet classification
WO2020184381A1 (ja) 処理装置、情報処理システム、情報処理方法、及びプログラム
Anibrika Improving the Communication Functionality of User Datagram Protocol (UDP) For Real Time Messaging and Application Processing

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150512

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160322

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: 20160412

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160425

R150 Certificate of patent or registration of utility model

Ref document number: 5935602

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150