JP4656415B2 - 通信装置およびその通信方法ならびにプログラム - Google Patents

通信装置およびその通信方法ならびにプログラム Download PDF

Info

Publication number
JP4656415B2
JP4656415B2 JP2005514882A JP2005514882A JP4656415B2 JP 4656415 B2 JP4656415 B2 JP 4656415B2 JP 2005514882 A JP2005514882 A JP 2005514882A JP 2005514882 A JP2005514882 A JP 2005514882A JP 4656415 B2 JP4656415 B2 JP 4656415B2
Authority
JP
Japan
Prior art keywords
data
communication
connections
header
restoring
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
JP2005514882A
Other languages
English (en)
Other versions
JPWO2005039150A1 (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Publication of JPWO2005039150A1 publication Critical patent/JPWO2005039150A1/ja
Application granted granted Critical
Publication of JP4656415B2 publication Critical patent/JP4656415B2/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
    • 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]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • 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]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • 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]
    • H04L69/166IP fragmentation; TCP segmentation

Description

本発明は、通信装置およびその通信方法ならびにプログラムに関し、特に複数のコネクションにデータを分散させて通信を実現する通信装置およびその通信方法ならびにプログラムに関する。
従来、送信端末と受信端末間の通信で用いられる1つの通信フローのデータを複数のフローに分岐させて、最後に復元する通信方法がある。例えば、送信端末が置かれたLAN(Local Area Network)と、受信端末が置かれたLANに、それぞれゲートウエイを設置し、送信端末から送出されたTCP(Transmission Control Protocol)コネクションのデータを送信端末近傍のゲートウエイにおいてパケット単位でそれぞれの通信経路に振り分け、受信端末近傍のゲートウエイでは、TCPのシーケンス番号にしたがってパケットの順序逆転を補正する方法がある(特開2000−261478号公報参照)。
ただし、この方法では、端末のTCPは、1つの通信経路で使用されることを前提としている動作を実現しているため、通信経路の性能を十分に発揮できない問題がある。
複数の通信回線を効率的に利用し、回線利用率を向上させる方法としては、以下の方法が存在する。
第1の方法は、端末のTCPに機能を追加し、従来一本のTCPコネクションを用いていた通信を複数のTCPコネクションを利用するように変更する方法である(マルチパスTCP、マルチパスプロキシサーバ〈Multipath Proxy Server〉、特開2003−110604号公報参照)。
この方法では送信端末と受信端末間の通信で1つの通信フローで行われていたデータの通信を複数の通信フローに分割して並列的に送る方法がある。送信端末から受信端末へとデータを送信する場合、送信端末の通信プロトコルは1つの通信フローの通信データを分割し、複数の通信フローに振り分け、受信端末がこれを元のデータに復元するための復元情報として新たなヘッダをTCP/IPのパケットのパケットデータ内に付加して、それぞれの通信フローにてデータを送信し、受信端末の通信プロトコルでは複数の通信フローから受信したデータの復元情報を参照して1つの通信フローを復元し、元のデータを復元する。
第一の問題は、第一方式では、データの分割および復元のため、パケット内に新たなヘッダを付け加えるため、ヘッダが大きくなってしまい通信効率が低下することである。
第二の問題は、第一方式では、データの分割および復元のため、パケット内に新たなヘッダを付け加えることによりヘッダが大きくなってしまい、データをパケットごとに分割するためのセグメント化が変化するため、セグメント化が変化することを考慮しないアプリケーションでは、正常な通信ができなくなってしまうことである。
特に、プロキシサーバに第一方式を用い、一つのコネクションで受信したデータを複数のコネクションに分散させて送信した場合では、必ず再セグメント化が必要となる。
第三の問題は、第一方式の通信装置が利用するネットワーク経路の途中に、本方式を意識しない制御管理範囲外の装置が存在し、セグメント化が変化した場合、第一方式では、正常な通信が行えなくなってしまうことである。
第四の問題は、第一方式では、データ分割をし、複数のコネクションにて並列に送信する際に、1パケット単位でTCPコネクション処理プロセスへとデータを渡すため、書き込み命令の発行回数が多くなってしまい、処理負荷が大きくなる点である。
そこで本発明の目的は、ヘッダが大きくなるのを防止することにより、フローの分割および復元を伴う通信を効率よく実現することが可能な通信装置およびその通信方法ならびにプログラムを提供することにある。
前記課題を解決するために本発明による通信装置は、複数のコネクションにデータを分散させて通信を実現する通信装置であって、その装置はそれぞれのコネクションに分散させたデータを復元するための情報をヘッダ内部に格納する機能を有することを特徴とする。
また、本発明による通信方法は、複数のコネクションにデータを分散させて通信を実現する通信方法であって、その方法はそれぞれのコネクションに分散させたデータを復元するための情報をヘッダ内部に格納する処理を含むことを特徴とする。
さらに、本発明によるプログラムは、複数のコネクションにデータを分散させて通信を実現する通信方法をコンピュータに実行させるためのプログラムであって、そのプログラムはそれぞれのコネクションに分散させたデータを復元するための情報をヘッダ内部に格納する処理を含むことを特徴とする。
本発明によれば、それぞれのコネクションに分散させたデータを復元するための情報をヘッダ内部に格納するため、ヘッダが大きくなることがない。
図1は、本発明による通信装置の第1実施例の構成を示すブロック図である。
図2は、第1実施例で送信端末2−1から受信端末2−2へのデータの流れを示したブロック図である。
図3は、第1実施例におけるデータの分割方法と、分割されたブロックを示す図である。
図4は、第1実施例のデータ分割復元処理部においてTCPヘッダ内部にデータの復元情報を格納する例を示す図である。
図5は、TCPのタイムスタンプオプションの形式図である。
図6は、第1実施例における送信端末2−1の処理の概要を示すフローチャートである。
図7は、第1実施例における受信端末2−2の処理の概要を示すフローチャートである。
図8は、第2実施例における送信端末2−1の処理の概要を示すフローチャートである。
図9は、第2実施例における受信端末2−2の処理の概要を示すフローチャートである。
図10は、第3実施例における送信端末21−1と、プロキシサーバ21−3と、受信端末21−2との間のデータの流れを示すブロック図である。
図11は、第4実施例のデータ分割復元処理部1−2においてブロックの先頭にデータの復元情報を格納する例を示す図である。
図12は、第4実施例における送信端末2−1の処理の概要を示すフローチャートである。
図13は、第4実施例における受信端末2−2における処理の概要を示すフローチャートである。
図14は、第5実施例における通信レートが大きい場合の送信端末と受信端末との間のデータの流れを示すブロック図である。
図15は、第5実施例における通信レートが大きい場合のデータの分割方法と、分割されたブロックとを示す図である。
図16は、第5実施例における送信端末2−1の処理の概要を示すフローチャートである。
図17は、第5実施例における受信端末2−2の処理の概要を示すフローチャートである。
以下、本発明の実施の形態について添付図面を参照しながら説明する。
(第1実施例)
図1は本発明による通信装置の第1実施例の構成を示すブロック図である。第1実施例において、通信装置1は、アプリケーション処理部1−1と、データ分割復元処理部1−2と、ネットワーク処理部1−3とを含んで構成される。
アプリケーション処理部1−1は、任意のアプリケーションプログラムを処理し、データを送信する場合にはデータ分割復元処理部1−2にデータを送り、データを受信する場合にはデータ分割復元処理部1−2からデータを受け取る機能を有する。
データ分割復元処理部1−2は、データを送信する場合にはアプリケーション処理部1−1からデータを受け取り、データを任意の数のブロックに分割し、このブロックを元のデータに復元するための情報をTCPヘッダ内部に格納し、任意の数のTCPコネクションを利用してネットワーク処理部1−3へと送り、データを受信する場合にはネットワーク処理部1−3から受け取った複数のTCPコネクションのデータについて、TCPヘッダ内部に格納された復元情報を参照し、分割されたブロックを識別し、これをあわせることにより分割前のデータに復元し、アプリケーション処理部1−1に送る機能を有する。
ネットワーク処理部1−3は、データを送信する場合にはデータ分割復元処理部1−2から受け取ったTCPコネクションのデータをネットワークへと出力し、データを受信する場合にはネットワークから入力されたTCPコネクションのデータをデータ分割復元処理部1−2へと送る機能を有する。
図2は、第1実施例で送信端末2−1から受信端末2−2へのデータの流れを示したブロック図、図3は第1実施例におけるデータの分割方法と、分割されたブロックを示す図である。図2では、送信端末2−1から受信端末2−2へとデータを送る場合、送信端末2−1は図3に示すように送信するデータを複数のブロックへ分割し、これを復元するための情報をTCPヘッダ内部に格納し、複数のTCPコネクションを利用して受信端末2−2へ送る。
図2では、データ3−1を4つのブロック(1)〜(4)に分割し、2つのTCPコネクション(1)、(2)を利用し、TCPコネクション(1)ではブロック(1)、(3)を送信し、TCPコネクション(2)ではブロック(2)、(4)を送信する例を示している。
送信端末2−1からのブロックを受け取った受信端末2−2は、TCPヘッダ内部に格納された復元情報を参照し、分割されたブロックを識別し、ブロックを順番に整列することにより、複数のブロックからもとのデータを復元する。
図2では、受信端末2−2は、TCPコネクション(1)、(2)から受け取ったブロック(1)〜(4)を順番に整列し、元のデータを復元する。
図4は、第1実施例のデータ分割復元処理部においてTCPヘッダ内部にデータの復元情報を格納する例を示す図である。送信端末2−1は、データを分割し、複数のブロックを生成したのち、このブロック番号をTCPのタイムスタンプ(Timestamp)オプションの一部に格納する。
図5はTCPのタイムスタンプオプションの形式図である。TCPのタイムスタンプオプションは図5に示す形式にてTCPヘッダのオプションフィールドに格納される。同図を参照すると、TCPのタイムスタンプオプションは種類(Kind)と、長さ(Length)と、TS Value(TSval)と、TS Echo Reply(TSecr)とを含んで構成される。同図は種類が8、長さが10バイトの場合を示している。
本実施例では、このTS Valueの4バイトの情報のうち、1バイトをデータの復元情報として、ブロック番号を格納するために用い、残りの3バイトにTS Valueのうち、上位3バイトを格納する。
ただし、このTS Valueの4バイトの情報のうち、2バイトをデータの復元情報として、ブロック番号を格納するために用い、残りの2バイトにTS Valueのうち、下位2バイトを格納する、というようにTS Valueにおけるデータの復元情報のために利用する領域を変更した実施例も可能である。
次に、図6および図7を参照して第1実施例における送信端末2−1、受信端末2−2における処理について説明する。なお、以下の説明において、送信端末2−1および受信端末2−2は図1の通信装置1の一例を示している。
図6は第1実施例における送信端末2−1の処理の概要を示すフローチャートである。同図を参照すると、送信端末2−1はアプリケーション処理部1−1が任意の処理を実施し、データ分割復元処理部1−2にデータの送信を指示することにより、処理が開始される。
処理5−1では、データ分割復元処理部1−2は、アプリケーション処理部1−1から受け取ったデータを任意の数のブロックに分割する。処理5−2へ移動する。
処理5−2では、データ分割復元処理部1−2は、分割したブロックを任意のTCPコネクションに振り分ける。処理5−3へ移動する。
処理5−3では、データ分割復元処理部1−2は、ネットワーク処理部1−3へブロックの送信を指示する。このとき、データTCPヘッダ内のタイムスタンプオプションフィールドに復元するための情報として、送信しているブロック番号を格納する。ただし、異なるブロックは同じパケット内には格納しない。ネットワーク処理部1−3はネットワークへブロックを送出する。ブロックをすべて送信し、アプリケーション処理部1−1の任意の処理が終了したら、処理を終了する。
図7は第1実施例における受信端末2−2の処理の概要を示すフローチャートである。受信端末2−2は、ネットワークから送信端末2−1が送信したブロックを受信することによって処理を開始する。
処理6−1では、ネットワーク処理部1−3がデータ分割復元処理部1−2にブロックをわたし、データ分割復元処理部1−2では、TCPヘッダ内のタイムスタンプオプションフィールドに格納されているブロック番号を参照し、これを整列し、元のデータに復元する。処理6−2へ移動する。
処理6−2では、データ分割復元処理部1−2が復元したデータをアプリケーション処理部1−1にわたし、アプリケーション処理部1−1では任意の処理を実行する。すべてのブロックがアプリケーション処理部1−1に渡され、アプリケーション処理部1−1の任意の処理が終了したら処理を終了する。
以上が、本発明による第一の実施例における通信端末の処理の内容である。
従来の技術においては、データを分割し、これを復元するための情報をアプリケーションデータの一部としていたため、これを格納するためアプリケーションデータが大きくなってしまっていた。
一方、上記で述べたように第1実施例では、広く用いられているTCPのタイムスタンプオプションフィールドに、データを復元するための情報を含めることによってアプリケーションデータが大きくなることがなく、復元情報を格納するためのオーバヘッドがない。かつ、同時にタイムスタンプオプションも利用することができる。
また、第1実施例では、タイムスタンプオプションに復元情報を格納する方法を示したが、この他、TCP/IP(Transmission Control Protocol/Internet Protocol)ヘッダのうち、冗長なデータを含んでいる箇所や、データ長の圧縮あるいは縮退可能な箇所に復元情報を格納する実施例も可能である。
例えば、IP(Internet Protocol)パケットには1つのパケットを分割するためのフラグメントオプションがあるが、現在では、パスMTU(Maximum Transfer Unit)ディスカバリー(Path MTU Discovery)オプションが一般的に利用された場合にはこのフラグメントフィールドは利用されておらず、これをTCPタイムスタンプオプションフィールドの代わりに用いる実施例も可能である。
(第2実施例)
本発明の第2実施例による通信装置の構成は図1に示した第1実施例と同様であるため、ここでは第1実施例の構成を示す図1を用いて説明する。
第2実施例において、通信装置1は、アプリケーション処理部1−1と、データ分割復元処理部1−2と、ネットワーク処理部1−3とを含んで構成される。
アプリケーション処理部1−1は、データ分割復元処理部1−2により設定された最大パケットサイズを参照し、最大パケットサイズに基づきデータを区切って通信することがある任意のアプリケーションプログラムを処理し、データを送信する場合にはデータ分割復元処理部1−2にデータを送り、データを受信する場合にはデータ分割復元処理部1−2からデータを受け取る機能を有する。
データ分割復元処理部1−2は、ネットワーク処理部1−3の複数のインタフェースに設定された最大パケットサイズをそれぞれ参照し、最も小さい最大パケットサイズを代表値としてアプリケーションへと公開し、データを送信する場合にはアプリケーション処理部1−1からデータを受け取り、データを最大パケットサイズの代表値の倍数に基づくサイズのブロックに分解し(ただし最大パケットサイズの倍数に基づくブロックに分割した際に生じた端数は最大パケットサイズの代表値の倍数でなくてもよい)、このブロックを元のデータに復元するための情報をTCPヘッダ内部に格納し、最大パケットサイズの代表値を利用可能な最大パケットサイズとして設定された任意の数のTCPコネクションを利用してネットワーク処理部1−3へと送り、データを受信する場合にはネットワーク処理部1−3から受け取った複数のTCPコネクションのデータについて、TCPヘッダ内部に格納された復元情報を参照し、分割されたブロックを識別し、これをあわせることにより分割前のデータに復元し、アプリケーション処理部1−1に送る機能を有する。
ネットワーク処理部1−3は、データを送信する場合にはデータ分割復元処理部1−2から受け取ったTCPコネクションのデータをネットワークへと出力し、データを受信する場合にはネットワークから入力されたTCPコネクションのデータをデータ分割復元処理部1−2へと送る機能を有する。
また、それぞれの最大パケットサイズを調査する場合に、TCPのオプションとして提供されているパスMTUディスカバリーオプションを利用し、通信開始後に最大パケットサイズの代表値を再調整する実施例も可能である。
図2は、第2実施例で、送信端末2−1から受信端末2−2へのデータの流れを示したブロック図である。
図2では、送信端末2−1から受信端末2−2へとデータを送る場合、送信端末2−1は通信に利用する複数のTCPコネクションで利用可能な最大パケットサイズをそれぞれ調査し、最も小さい最大パケットサイズを代表値として、それぞれのTCPコネクションで利用するようにし、図3に示すように送信するデータを最大パケットサイズの代表値の倍数に基づくサイズのブロックに分解し(ただし最大パケットサイズの倍数に基づくブロックに分割した際に生じた端数は最大パケットサイズの代表値の倍数でなくてもよい)、これを復元するための情報をTCPヘッダ内部に格納し、最大パケットサイズの代表値が設定された複数のTCPコネクションを利用して受信端末2−2へ送る。
図2では、データを4つのブロック(1)〜(4)に分割し、2つのTCPコネクション(1)、(2)を利用し、TCPコネクション(1)ではブロック(1)、(3)を送信し、TCPコネクション(2)ではブロック(2)、(4)を送信する例を示している。
送信端末2−1からのブロックを受け取った受信端末2−2は、TCPヘッダ内部に格納された復元情報を参照し、分割されたブロックを識別し、ブロックを順番に整列することにより、複数のブロックから元のデータを復元する。図2では、受信端末2−2は、TCPコネクション(1)、(2)から受け取ったブロック(1)〜(4)を順番に整列し、元のデータを復元する。
図4は、第2実施例のデータ分割復元処理部1−2においてTCPヘッダ内部にデータの復元情報を格納する例を示す図である。送信端末2−1は、データを分割し、複数のブロックを生成したのち、このブロック番号をTCPのタイムスタンプオプションの一部に格納する。TCPのタイムスタンプオプションは図5に示す形式にてTCPヘッダのオプションフィールドに格納される。
第2実施例では、このTS Valueの4バイトの情報のうち、1バイトをデータの復元情報として、ブロック番号を格納するために用い、残りの3バイトにTS Valueのうち、上位3バイトを格納する。
次に、図8および図9を参照して第2実施例における送信端末2−1および受信端末2−2の処理について説明する。
図8は第2実施例における送信端末2−1の処理の概要を示すフローチャートである。送信端末2−1はアプリケーション処理部1−1が任意の処理を実施し、データ分割復元処理部1−2にデータの送信を指示することにより、処理を開始する。
処理7−1では、データ分割復元処理部1−2は、それぞれのTCPコネクションで利用可能な最大パケットサイズを調査し、それぞれの最大パケットサイズのうちの最も小さな最大パケットサイズを代表値として設定しそれぞれのTCPコネクションを利用する場合はこの代表値を利用できるようにする。アプリケーション処理部1−1から受け取ったデータを最大パケットサイズの代表値の倍数に基づくサイズのブロックに分割し(ただし最大パケットサイズの倍数に基づくブロックに分割した際に生じた端数は最大パケットサイズの代表値の倍数でなくてもよい)、処理7−2へ移動する。
処理7−2では、データ分割復元処理部1−2は、分割したブロックを任意のTCPコネクションに振り分ける。処理7−3へ移動する。
処理7−3では、データ分割復元処理部1−2は、ネットワーク処理部1−3へブロックの送信を指示する。
このとき、データTCPヘッダ内のタイムスタンプオプションフィールドに復元のための情報として、送信しているブロック番号を格納する。ただし、ブロック番号が変わる場合は、同じパケットには格納しない。
ネットワーク処理部1−3はネットワークへブロックを送出する。ブロックをすべて送信し、アプリケーション処理部1−1の任意の処理が終了したら、処理を終了する。
図9は、第2実施例における受信端末2−2の処理の概要を示すフローチャートである。
受信端末2−2は、ネットワークから送信端末2−1が送信したブロックを受信することによって処理を開始する。
処理8−1では、ネットワーク処理部1−3がデータ分割復元処理部1−2にブロックをわたし、データ分割復元処理部1−2では、TCPヘッダ内のタイムスタンプオプションフィールドに格納されているブロック番号を参照し、これを整列し、元のデータに復元する。処理8−2へ移動する。
処理8−2では、データ分割復元処理部1−2が復元したデータをアプリケーション処理部1−1にわたし、アプリケーション処理部1−1では任意の処理を実行する。すべてのブロックがアプリケーション処理部1−1に渡され、アプリケーション処理部1−1の任意の処理が終了したら処理を終了する。
以上が、本発明による第2実施例における通信端末の処理の内容である。
従来の技術においては、各TCPコネクションの最大パケットサイズを意識せずにブロック化を行っていたため、それぞれのTCPコネクションでは、パケットがフラグメントされてしまう可能性があり、通信効率が低下していた。
本発明による通信装置では、それぞれのTCPコネクションで利用可能なMSS(Max Segment Size)を調査し、この調査結果に基づいてブロック化を行うため、効率のよい通信が実現される。
(第3実施例)
本発明の第3実施例による通信装置の構成は図1に示した第2の実施例と同様であるため、ここでは第2の実施例の構成を示す図1を用いて説明する。
第3実施例では、図10に示すように、本発明による第2の実施例の通信方法を用いた通信装置である、プロキシサーバ21−3と受信端末21−2、従来のTCP/IPによる通信を実現する送信端末21−1の通信を説明する。なお、以下の説明において、プロキシサーバ21−3は図1の通信装置1の一例を示している。
図10は第3実施例における送信端末21−1と、プロキシサーバ21−3と、受信端末21−2との間のデータの流れを示すブロック図である。
プロキシサーバ21−3でのアプリケーション処理部1−1では、送信端末21−1と受信端末21−2の通信を実現するためのプロキシサーバが動作しており、送信端末21−1から従来のTCP/IPによる通信によって受信したパケット(1)〜(4)を転送し、受信端末21−2へと送信する。
プロキシサーバ21−3は、通信に関係するTCPコネクションであるTCPコネクション(0)、TCPコネクション(1)、TCPコネクション(2)でそれぞれ利用可能な最大パケットサイズのうち最も小さな最大パケットサイズを、本通信で利用可能な最大パケットサイズの代表値として設定する。プロキシサーバ21−3は送信端末21−1、受信端末21−2に本通信で利用可能な最大パケットサイズの代表値を通知しTCPコネクションを開設する。
送信端末はプロキシサーバ21−3から通知されたパケットサイズ以下の大きさのパケットを用いてパケットをプロキシサーバ21−3に送信する。プロキシサーバ21−3は、送信端末21−1から受け取ったデータを転送し、TCPコネクション(1)、TCPコネクション(2)を利用して、受信端末21−2へとパケットを送出する。
図10では、送信端末21−1は、従来の技術による1本のTCPコネクション(0)によりプロキシサーバ21−3にパケット(1)〜(4)を送信し、プロキシサーバ21−3は、TCP コネクション(0)により受信した該パケットを、TCPコネクション(1)、TCPコネクション(2)に振り分け受信端末21−2へと送信する。
以上のように、本発明による通信方法では、通信に関係するそれぞれのTCPコネクションでそれぞれ利用可能な最大パケットサイズのうち、最小のものを用いて通信を行う。また、データを複数のコネクションに分散させて送出させる場合に既存のTCPヘッダ内部に復元情報を格納するため、通信データが増えることがない。これにより、第3実施例のように1本のTCPコネクションで受信したパケットを複数のTCPコネクションを用いて送出するプロキシサーバとして利用した場合においては、結果的に受信したパケットと同じ全くデータを持つパケットのままで送信することができ、既存通信との親和性が高く、正常な通信が行える可能性も高い。
(第4実施例)
本発明の第4実施例による通信装置の構成は図1に示した第1の実施例と同様であるため、ここでは第1実施例の構成を示す図1を用いて説明する。
第4実施例において、本通信装置1は、アプリケーション処理部1−1と、データ分割復元処理部1−2と、ネットワーク処理部1−3とを含んで構成される。
アプリケーション処理部1−1は、任意のアプリケーションプログラムを処理し、データを送信する場合にはデータ分割復元処理部1−2にデータを送り、データを受信する場合にはデータ分割復元処理部1−2からデータを受け取る機能を有する。
データ分割復元処理部1−2は、データを送信する場合にはアプリケーション処理部1−1からデータを受け取り、データを任意の数のブロックに分割し、このブロックを元のデータに復元するための情報として、元のデータにおけるブロックの位置を示すシーケンス番号と、ブロックの大きさをブロックの先頭に追加し、それぞれのブロックを任意の数のTCPコネクションに割り当て、TCPコネクションを利用してネットワーク処理部へと送り、データを受信する場合にはネットワーク処理部から受け取った複数のTCPコネクションのデータについて、ブロックの先頭に格納されたシーケンス番号と、ブロックの大きさを参照し、整列することによりより分割前のデータに復元し、アプリケーション処理部1−1に送る機能を有する。
ネットワーク処理部1−3は、データを送信する場合にはデータ分割復元処理部1−2から受け取ったTCPコネクションのデータをネットワークへと出力し、データを受信する場合にはネットワークから入力されたTCPコネクションのデータをデータ分割復元処理部1−2へと送る機能を有する。
図2は、第4実施例で、送信端末2−1から受信端末2−2へのデータの流れを示したブロック図、図11は第4実施例におけるデータが分割されたブロックを示す図である。
図2では、送信端末2−1から受信端末2−2へとデータを送る場合、送信端末2−1は図3に示すように送信するデータを複数のブロックへ分割し、これを復元するための情報として、元のデータにおけるブロックの位置を示すシーケンス番号と、ブロックのサイズを図11に示すようにブロックの先頭に追加し、これを複数のTCPコネクションを利用して受信端末2−2へ送る。
図2では、データを4つのブロック(1)〜(4)に分割し、2つのTCPコネクション(1)、(2)を利用し、TCPコネクション(1)ではブロック(1)、(3)を送信し、TCPコネクション(2)では、ブロック(2)、(4)を送信する例を示している。
送信端末2−1からのブロックを受け取った受信端末2−2は、ブロックの先頭に格納されたシーケンス番号と、ブロックのサイズを参照し、分割されたブロックを識別し、ブロックを順番に整列することにより、複数のブロックから元のデータを復元する。図2では、受信端末2−2は、TCPコネクション(1)、(2)から受け取ったブロック(1)〜(4)を順番に整列し、元のデータを復元する。
図11は、第4実施例のデータ分割復元処理部1−2においてブロックの先頭にデータの復元情報を格納する例を示す図である。
送信端末2−1は、図3に示すようにデータを分割し、複数のブロックを生成したのち、図4に示すように、ブロックの分割前のデータにおける位置を示すシーケンス番号と、各ブロックのサイズをブロックの先頭に追加する。
次に図12および図13を参照して第4実施例における送信端末2−1および受信端末2−2における処理について説明する。
図12は、第4実施例における送信端末2−1の処理の概要を示すフローチャートである。送信端末2−1は、アプリケーション処理部1−1が任意の処理を実施し、データ分割復元部1−2にデータの送信を指示することにより、処理が開始される。
処理10−1では、データ分割復元処理部1−2は、アプリケーション処理部1−1から受け取ったデータを任意の数のブロックに分割し、これを復元するための情報として、データのシーケンス番号と、ブロックの大きさをブロックの先頭に追加する。処理10−2へ移動する。
処理10−2では、データ分割復元処理部1−2は、分割したブロックを任意のTCPコネクションに振り分ける。処理10−3へ移動する。
処理10−3では、データ分割復元処理部1−2は、ネットワーク処理部1−3へブロックの送信を指示する。ブロックをすべて送信し、アプリケーション処理部1−1の任意の処理が終了したら、処理を終了する。
図13は、第4実施例における受信端末2−2の処理の概要を示すフローチャートである。受信端末2−2は、ネットワークから送信端末2−1が送信したブロックを受信することによって処理を開始する。
処理11−1では、ネットワーク処理部1−3がデータ分割復元処理部1−2にブロックをわたし、データ分割復元処理部1−2では、ブロックの先頭に格納されているシーケンス番号とブロックサイズを参照し、ブロックを整列し、元のデータに復元する。処理11−2へ移動する。
処理11−2では、データ分割復元処理部1−2が復元したデータをアプリケーション処理部1−1にわたし、アプリケーション処理部1−1では任意の処理を実行する。すべてのブロックがアプリケーション処理部1−1に渡され、アプリケーション処理部1−1の任意の処理が終了したら処理を終了する。
以上が、本発明による第4実施例における通信端末の処理の内容である。
従来の技術においては、通信経路中に想定していないプロキシサーバなどがあり、データのセグメントが変更される場合があると、受信端末でデータを復元することが不可能であった。
一方、上記で述べたように第4実施例では、データを複数のブロック分割し、これを復元するための情報に分割されたブロックの長さを格納することにより、通信経路中に想定していないプロキシサーバなどがあり、データのセグメント化が変更される場合においても、受信端末でデータを復元することが可能である。
(第5実施例)
本発明の第5実施例による通信装置の構成は図1に示した第1実施例と同様であるため、ここでは第1の実施例の構成を示す図1を用いて説明する。
第5実施例において、本通信装置1は、アプリケーション処理部1−1と、データ分割復元処理部1−2と、ネットワーク処理部1−3とを含んで構成される。
アプリケーション処理部1−1は、任意のアプリケーションプログラムを処理し、データを送信する場合にはデータ分割復元処理部1−2にデータを送り、データを受信する場合にはデータ分割復元処理部1−2からデータを受け取る機能を有する。
データ分割復元処理部1−2は、データを送信する場合にはアプリケーション処理部1−1からデータを受け取り、データを送信するために任意の数のTCPコネクションを利用し、それぞれのTCPコネクションの通信レートを調査し、通信レートが低い場合は、小さなブロックにデータを分割し、通信レートが高い場合は、より大きなブロックをへとデータを分割し、任意の数のTCPコネクションを利用して、ブロックをネットワーク処理部1−3へと送り、データを受信する場合にはネットワーク処理部1−3から受け取った複数のTCPコネクションのデータについて、TCPヘッダ内部に格納された復元情報を参照し、分割されたブロックを識別し、これをあわせることにより分割前のデータに復元し、アプリケーション処理部1−1に送る機能を有する。
ネットワーク処理部1−3は、データを送信する場合にはデータ分割復元処理部1−2から受け取ったTCPコネクションのデータをネットワークへと出力し、データを受信する場合にはネットワークから入力されたTCPコネクションのデータをデータ分割復元処理部1−2へと送る機能を有する。
図2は、第5実施例で、送信端末2−1から受信端末2−2へのデータの流れを示したブロック図、図14は第5実施例における通信レートが大きい場合の送信端末と受信端末との間のデータの流れを示すブロック図、図15は第5実施例における通信レートが大きい場合のデータの分割方法と、分割されたブロックとを示す図である。
図2では、送信端末2−1から受信端末2−2へとデータを送る場合、送信端末2−1は利用するそれぞれのTCPコネクションの通信レートを調査し、図3に示すように、送信するデータを複数のブロックへ分割する。
ただし、それぞれのTCPコネクションの通信レートを調査し、この通信レートの調査結果の合計が低い場合は、分割するブロックのサイズを小さくし、この通信レートの合計が高い場合は、分割するブロックのサイズを大きくする。次に、分割したブロックをあわせもとのデータを復元するための情報をTCPヘッダ内部に格納し、複数のTCPコネクションを利用して受信端末2−2へ送る。
例えば、通信レートが低い場合では、図3に示すように、データを4つのブロック(1)〜(4)に分割し、図2に示すように2つのTCPコネクション(1)、(2)を利用し、TCPコネクション1ではブロック(1)、(3)を送信し、TCPコネクション2では、ブロック(2)、(4)を送信し、通信レートが高い場合では、分割するブロックの数を多くし、図15に示すように、データを2つのブロック(1)、(2)に分割し、図14に示すように2つのTCPコネクション(1)、(2)を利用し、TCPコネクション(1)ではブロック13−1を送信し、TCPコネクション(2)では、ブロック13−2を送信する。
送信端末2−1からのブロックを受け取った受信端末2−2は、TCPヘッダ内部に格納された復元情報を参照し、分割されたブロックを識別し、ブロックを順番に整列することにより、複数のブロックから元のデータを復元する。図2では、受信端末2−2は、TCPコネクション(1)、(2)から受け取ったブロック(1)〜(4)を順番に整列し、元のデータを復元する。
同様に図14では、受信端末2−2は、TCPコネクション(1)、(2)から受け取ったブロック13−1および13−2を順番に整列し、元のデータを復元する。
図4は、第5実施例のデータ分割復元処理部1−2においてTCPヘッダ内部にデータの復元情報を格納する例である。送信端末2−1は、データを分割し、複数のブロックを生成したのち、このブロック番号をTCPのタイムスタンプオプションの一部に格納する。TCPのタイムスタンプオプションは図5に示す形式にてTCPヘッダのオプションフィールドに格納される。
第5実施例では、このTS Valueの4バイトの情報のうち、1バイトをデータの復元情報として、ブロック番号を格納するために用い、残りの3バイトにTS Valueのうち、上位3バイトを格納する。
ただし、このTS Valueの4倍との情報のうち、2バイトをデータの復元情報として、ブロック番号を格納するために用い、残りの2バイトにTS Valueのうち、下位2バイトを格納する、というように TS Valueにおけるデータの復元情報のために利用する領域を変更した実施例も可能である。
次に図16、図17を参照して第5実施例における送信端末2−1、受信端末2−2における処理について説明する。
図16は、第5実施例における送信端末2−1の処理の概要を示すフローチャートである。送信端末2−1は、アプリケーション処理部が任意の処理を実施し、データ分割復元部1−2にデータの送信を指示することにより、処理が開始される。
処理14−1では、データ分割復元処理部1−2は、アプリケーション処理部1−1から受け取ったデータを任意の数のブロックに分割する。ただし、このとき利用するTCPコネクションの通信レートを調査し、その合計が低い場合は、小さなブロックへとデータを分割し、その合計が高い場合はより大きなブロックへとデータを分割する。処理14−2へ移動する。
処理14−2では、データ分割復元処理部1−2は、分割したブロックを任意のTCP コネクションに振り分ける。処理14−3へ移動する。
処理14−3では、データ分割復元処理部1−2は、ネットワーク処理部1−3へブロックの送信を指示する。このとき、データTCPヘッダ内のタイムスタンプオプションフィールドに復元のための情報として、送信しているブロック番号を格納する。ただし、ブロック番号が変わる場合は、同じパケット内には格納しない。
ネットワーク処理部1−3はネットワークへブロックを送出する。ブロックをすべて送信し、アプリケーション処理部1−1の任意の処理が終了したら、処理を終了する。
図17は、第5実施例における受信端末2−2の処理の概要を示すフローチャートである。受信端末2−2は、ネットワークから送信端末2−1が送信したブロックを受信することによって処理を開始する。
処理15−1では、ネットワーク処理部1−3がデータ分割復元処理部1−2にブロックをわたし、データ分割復元処理部1−2では、TCPヘッダ内のタイムスタンプオプションフィールドに格納されているブロック番号を参照し、これを整列し、元のデータに復元する。処理15−2へ移動する。
処理15−2では、データ分割復元処理部1−2が復元したデータをアプリケーション処理部1−1にわたし、アプリケーション処理部1−1では任意の処理を実行する。すべてのブロックがアプリケーション処理部1−1に渡され、アプリケーション処理部1−1の任意の処理が終了したら処理を終了する。
以上が、本発明による第5実施例における通信端末の処理の内容である。
従来の技術においては、通信レートに依存せず、複数のTCPコネクションに分割したデータを振り分けており、異なるTCPコネクションでデータを送信する際には、TCPコネクションへとデータを渡すための指示が多くなることによる処理負荷が大きかった。
一方、上記で述べたように第5実施例では、通信レートが大きくなった場合には、TCPコネクションに渡すブロックのサイズを大きくすることにより、一度の送信指示により渡されるサイズを大きくし、送信指示の回数を減らし、逆に、通信レートが小さい場合にはTCPコネクションに渡すブロックのサイズを小さくすることにより、複数の通信回線を並列的に利用して通信を実現でき、通信回線の利用効率を上げることができる。
また、第5実施例では、データ分割復元処理部1−2は、データを送信する際に、利用するTCPコネクションの通信レートを調査し、通信レートが低い場合にはデータを小さなブロックへと分割し、通信レートが高い場合は、データをより大きなブロックへと分割するとしたが、これに代えて、分割するブロックのサイズは一定とし、通信レートが低い場合には、一度の書き込み指示で1つのTCPコネクションに1のブロックを渡すようにし、通信レートが高い場合には、ネットワーク処理部へと一度の書き込み指示で1つのTCPコネクションに複数のブロックを連続して渡すようにする実施例も可能である。
また、第5実施例では、データ分割復元処理部1−2は、データを送信する際に、利用するTCPコネクションの通信レートを調査するが、TCPの輻輳ウィンドウを参照することにより通信レートを推測し、通信レートの調査の代わりとする実施例も可能である。
また、第5実施例では、データ分割復元処理部1−2は、データを送信する際に、利用するTCPコネクションの通信レートを調査するが、通信を開始してまもなくの間は、通信レートが低いと仮定し、通信開始から時間が経過するごとに通信レートが上がると仮定することにより、通信レートの調査の代わりとする実施例も可能である。
また、第5実施例では、データ分割復元処理部1−2は、データを送信する際に、利用するTCPコネクションの通信レートを調査するが、アプリケーション処理部から渡されたデータの大きさによって、このデータが大きい場合は通信レートが高いものと仮定し、このデータが小さい場合には通信レートが低いと仮定することにより通信レートの調査の代わりとする実施例も可能である。
(第6実施例)
前述の図1の通信装置1はアプリケーション処理部1−1と、データ分割復元処理部102と、ネットワーク処理部1−3とを含むと説明した。しかし、これらにメモリ18と、制御部19とを加えプログラムの発明として権利化することも可能である。
メモリ18には前述の図6〜図9、図12、図13、図16および図17にフローチャートで示すプログラムが格納されている。制御部19はメモリ18に格納されたこれらのプログラムを読み出し、そのプログラムにしたがってアプリケーション処理部1−1と、データ分割復元処理部102と、ネットワーク処理部1−3とを制御する。
なお、第1〜第6実施例では、TCPコネクションを利用した通信装置およびその通信方法ならびにプログラムについて説明したが、これに限定するものではなく、TCP、SCTP(Stream Control Transport Protocol)、UDP(User Datagram Protocol)、DCCP(Datagram Congestion Control Protocol)などのOSI(Open System Interconnection)4層のトランスポートプロトコルによるコネクションを利用した通信置およびその通信方法ならびにプログラムに本発明を適用することも可能である。
以上説明した本発明によれば、フロー分割および復元のために用いる情報を端末がデータを送出する際に作成したヘッダの内部に格納するため、データ分割および復元を行うために新たなヘッダをパケット内に格納する必要がなく、ヘッダが大きくなることがない。
また、本発明によれば、通信開始時に通信に関係するそれぞれのフローで利用可能なセグメントサイズを調査し、その調査結果に基づきそれぞれのフローで利用するセグメントサイズを決定するため、あるフローから別のフローへデータを乗せ換える場合でも、データを再セグメント化する必要が無くなり正常な通信が行える。
また、本発明によれば、データフローの分割および復元を行うために用いる情報に、ブロックの大きさを格納し、データ復元の際にこれを参照することにより、通信経路にてデータの再セグメント化が行われた場合でも、データの復元を行うことができ、正常な通信が行える。
さらに、本発明によれば、データ分割をし、複数のコネクションにて並列に送信する際に、コネクション処理プロセスへと一度に渡すデータの量を調整し、通信レートが小さいときには1パケット単位でデータを渡すが、通信レートが高くなった場合には複数のパケット分をまとめてコネクションに渡すため、コネクション処理プロセスへの書き込み命令の発行回数を少なくすることができ、この処理負荷を減らすことができる。

Claims (45)

  1. 複数のコネクションにデータを分散させて通信を実現する通信装置であって、
    複数のコネクションに分散させたデータを復元するための情報を、トランスポートプロトコルのヘッダ内に格納する機能を有することを特徴とする通信装置。
  2. 前記ヘッダは、コネクションヘッダであることを特徴とする請求項1に記載の通信装置。
  3. 通信に関係するコネクションで許容されるパケットサイズの最大値を調査し、前記パケットサイズの最大値のうち最も小さいサイズを、許容されるパケットサイズの最大値として統一する機能を有することを特徴とする請求項1に記載の通信装置。
  4. 通信に関係するコネクションで許容されるパケットサイズの最大値を調査し、前記パケットサイズの最大値のうち最も小さいサイズ以下のパケットサイズで通信する機能を有することを特徴とする請求項1に記載の通信装置。
  5. 前記データを復元するための情報として、データ長を格納することを特徴とする請求項1から請求項4のいずれかに記載の通信装置。
  6. TCPやSCTP、UDP、DCCPなどのOSI4層相当のトランスポートプロトコルによるコネクションを利用し、複数のコネクションにデータを分散させて通信を実現する通信装置であって、
    複数のコネクションに分散させたデータを復元するための情報を、トランスポートプロトコルのヘッダ内に格納する機能を有することを特徴とする通信装置。
  7. 複数のコネクションに分散させたデータを復元するための情報を、トランスポートプロトコルのヘッダ内のオプションフィールドに格納することを特徴とする請求項6に記載の通信装置。
  8. 複数のコネクションに分散させたデータを復元するための情報を、トランスポートプロトコルのヘッダ内のオプションフィールドのタイムスタンプフィールドの一部に格納することを特徴とする請求項6に記載の通信装置。
  9. 複数のコネクションに分散させたデータを復元するための情報を、IPヘッダ内に格納することを特徴とする請求項1に記載の通信装置。
  10. 複数のコネクションに分散させたデータを復元するための情報を、IPヘッダ内のフラグメントフィールドに格納することを特徴とする請求項1に記載の通信装置。
  11. 複数のコネクションで利用可能なMTUをパスMTUディスカバリーオプションにより調査し、それぞれのコネクションのMTUを前記調査により得られた最も小さいMTUに統一する機能を有することを特徴とする請求項6に記載の通信装置。
  12. 送信側が、前記分散させたデータを復元するための情報に、分散されたデータ長を格納し、受信側が前記データ長を参照することにより、データを復元することを特徴とする請求項6に記載の通信装置。
  13. 通信レートに応じて、それぞれのコネクションに一度に渡すデータサイズを変更することを特徴とする請求項1から請求項12のいずれかに記載の通信装置。
  14. データを復元するための情報を参照することにより、データを復元することを特徴とする請求項1から請求項13のいずれかに記載の通信装置。
  15. TCPの通信レートが低い場合には、それぞれのコネクションに一度に渡すデータ量を小さくし、TCPの通信レートが高くなった場合には、それぞれのコネクションに一度に渡すデータ量を大きくする機能を有することを特徴とする請求項1から請求項12のいずれかに記載の通信装置。
  16. 複数のコネクションにデータを分散させて通信を実現する通信方法であって、
    複数のコネクションに分散させたデータを復元するための情報を、トランスポートプロトコルのヘッダ内に格納する処理を含むことを特徴とする通信方法。
  17. 前記ヘッダはコネクションヘッダであることを特徴とする請求項16に記載の通信方法。
  18. 通信に関係するコネクションで許容されるパケットサイズの最大値を調査し、前記パケットサイズの最大値のうち最も小さいサイズを、許容されるパケットサイズの最大値として統一する処理を含むことを特徴とする請求項16に記載の通信方法。
  19. 通信に関係するコネクションで許容されるパケットサイズの最大値を調査し、前記パケットサイズの最大値のうち最も小さいサイズ以下のパケットサイズで通信する処理を含むことを特徴とする請求項16に記載の通信方法。
  20. データを復元するための情報として、データ長を格納することを特徴とする請求項16から請求項19のいずれかに記載の通信方法。
  21. TCPやSCTP、UDP、DCCPなどのOSI4層相当のトランスポートプロトコルによるコネクションを利用し、複数のコネクションにデータを分散させて通信を実現する通信方法であって、
    複数のコネクションに分散させたデータを復元するための情報を、トランスポートプロトコルのヘッダ内に格納する処理を含むことを特徴とする通信方法。
  22. 複数のコネクションに分散させたデータを復元するための情報を、トランスポートプロトコルのヘッダ内のオプションフィールドに格納することを特徴とする請求項21に記載の通信方法。
  23. 複数のコネクションに分散させたデータを復元するための情報を、トランスポートプロトコルのヘッダ内のオプションフィールドのタイムスタンプフィールドの一部に格納することを特徴とする請求項21に記載の通信方法。
  24. 複数のコネクションに分散させたデータを復元するための情報を、IPヘッダ内に格納することを特徴とする請求項16に記載の通信方法。
  25. それぞれのコネクションに分散させたデータを復元するための情報をIPヘッダ内部のフラグメントフィールドに格納することを特徴とする請求項16に記載の通信方法。
  26. それぞれのコネクションで利用可能なMTUをパスMTUディスカバリーオプションにより調査し、それぞれのコネクションのMTUを前記調査により得られた最も小さいMTUに統一する処理を含むことを特徴とする請求項21に記載の通信方法。
  27. 送信側で、分散させたデータを復元するための情報に、分散されたデータ長を格納し、受信側が前記分散されたデータをを参照することにより、データを復元することを特徴とする請求項21に記載の通信方法。
  28. 通信レートに応じて、それぞれのコネクションに一度に渡すデータサイズを変更する処理を含むことを特徴とする請求項16から請求項27のいずれかに記載の通信方法。
  29. データを復元するための情報を参照することによりデータを復元する処理を含むことを特徴とする請求項16から請求項28のいずれかに記載の通信方法。
  30. TCPの通信レートが低い場合には、それぞれのコネクションに一度に渡すデータ量を小さくし、TCPの通信レートが高くなった場合には、それぞれのコネクションに一度に渡すデータ量を大きくする処理を含むことを特徴とする請求項16から請求項27のいずれかに記載の通信方法。
  31. 複数のコネクションにデータを分散させる通信をコンピュータに実行させるためのプログラムであって、
    複数のコネクションに分散させたデータを復元するための情報を、トランスポートプロトコルのヘッダ内に格納する機能を前記コンピュータに実行させることを特徴とするプログラム。
  32. 前記ヘッダはコネクションヘッダであることを特徴とする請求項31に記載のプログラム。
  33. 通信に関係するコネクションで許容されるパケットサイズの最大値を調査し、前記パケットサイズの最大値のうち最も小さいサイズを、許容されるパケットサイズの最大値として統一する機能を実行させることを特徴とする請求項31に記載のプログラム。
  34. 通信に関係するコネクションで許容されるパケットサイズの最大値を調査し、前記パケットサイズの最大値のうち最も小さいサイズ以下のパケットサイズで通信する機能を実行させることを特徴とする請求項31に記載のプログラム。
  35. データを復元するための情報として、データ長を格納する機能を実行させることを特徴とする請求項31から請求項34のいずれかに記載のプログラム。
  36. TCPやSCTP、UDP、DCCPなどのOSI4層相当のトランスポートプロトコルによるコネクションを利用し、複数のコネクションにデータを分散させる通信をコンピュータに実行させるためのプログラムであって、
    複数のコネクションに分散させたデータを復元するための情報を、トランスポートプロトコルのヘッダ内に格納する機能を前記コンピュータに実行させることを特徴とするプログラム。
  37. 複数のコネクションに分散させたデータを復元するための情報を、トランスポートプロトコルのヘッダ内のオプションフィールドに格納する機能を実行させることを特徴とする請求項36に記載のプログラム。
  38. 複数のコネクションに分散させたデータを復元するための情報を、トランスポートプロトコルのヘッダ内のオプションフィールドのタイムスタンプフィールドの一部に格納する機能を実行させることを特徴とする請求項36に記載のプログラム。
  39. 複数のコネクションに分散させたデータを復元するための情報を、IPヘッダ内部に格納する機能を実行させることを特徴とする請求項31に記載のプログラム。
  40. 複数のコネクションに分散させたデータを復元するための情報を、IPヘッダ内部のフラグメントフィールドに格納する機能を実行させることを特徴とする請求項31に記載のプログラム。
  41. 複数のコネクションで利用可能なMTUをパスMTUディスカバリーオプションにより調査し、それぞれのコネクションのMTUを前記調査により得られた最も小さいMTUに統一する機能を実行させることを特徴とする請求項36に記載のプログラム。
  42. 送信側で、分散させたデータを復元するための情報に、分散されたデータ長を格納し、受信側で、前記分散されたデータ長を参照してデータを復元する機能を実行させることを特徴とする請求項36に記載のプログラム。
  43. 通信レートに応じて、それぞれのコネクションに一度に渡すデータサイズを変更する機能を実行させることを特徴とする請求項31から請求項42のいずれかに記載のプログラム。
  44. データを復元するための情報を参照してデータを復元する機能を実行させることを特徴とする請求項31から請求項43のいずれかに記載のプログラム。
  45. TCPの通信レートが低い場合には、それぞれのコネクションに一度に渡すデータ量を小さくし、TCPの通信レートが高くなった場合には、それぞれのコネクションに一度に渡すデータ量を大きくする機能を実行させることを特徴とする請求項31から請求項42のいずれかに記載のプログラム。
JP2005514882A 2003-10-22 2004-10-18 通信装置およびその通信方法ならびにプログラム Active JP4656415B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2003361339 2003-10-22
JP2003361339 2003-10-22
PCT/JP2004/015756 WO2005039150A1 (ja) 2003-10-22 2004-10-18 通信装置およびその通信方法ならびにプログラム

Publications (2)

Publication Number Publication Date
JPWO2005039150A1 JPWO2005039150A1 (ja) 2007-02-08
JP4656415B2 true JP4656415B2 (ja) 2011-03-23

Family

ID=34463488

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005514882A Active JP4656415B2 (ja) 2003-10-22 2004-10-18 通信装置およびその通信方法ならびにプログラム

Country Status (3)

Country Link
US (1) US8228919B2 (ja)
JP (1) JP4656415B2 (ja)
WO (1) WO2005039150A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006295819A (ja) * 2005-04-14 2006-10-26 Sony Corp データ送信装置、データ送信方法及びデータ送信プログラム
US7636309B2 (en) * 2005-06-28 2009-12-22 Alcatel-Lucent Usa Inc. Multi-path routing using intra-flow splitting
US20070043874A1 (en) * 2005-08-17 2007-02-22 Virendra Nath File transfer method and system
JP2010504047A (ja) * 2006-09-13 2010-02-04 アサンキア ネットワークス, インコーポレイテッド マルチパス環境におけるトランスポートプロトコルの性能を改善するシステムおよび方法
JP2008205868A (ja) * 2007-02-21 2008-09-04 Nec Corp Ipフラグメントパケット処理装置及びそれに用いるipフラグメントパケット処理方法並びにプログラム
US7911956B2 (en) * 2007-07-27 2011-03-22 Silicon Image, Inc. Packet level prioritization in interconnection networks
KR101466573B1 (ko) * 2008-01-22 2014-12-10 삼성전자주식회사 통신 단말 장치 및 통신 단말 장치에 탑재된 복수개의네트워크 인터페이스를 이용하여 통신을 수행하는 방법
US8400923B2 (en) * 2010-10-15 2013-03-19 Telefonaktiebolaget L M Ericsson (Publ) Multipath transmission control protocol proxy
US20140280715A1 (en) * 2013-03-15 2014-09-18 First Principles, Inc. Real time remote desktop
US10142262B2 (en) * 2016-05-31 2018-11-27 Anchorfree Inc. System and method for improving an aggregated throughput of simultaneous connections
EP3534587B1 (en) * 2018-02-28 2020-02-12 Deutsche Telekom AG Techniques for packet data conversion
JP7151516B2 (ja) * 2019-01-30 2022-10-12 株式会社リコー 通信装置、通信プログラム、及び通信方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6427343A (en) * 1987-07-23 1989-01-30 Fujitsu Ltd Transmission data split processing system
JP2000156706A (ja) * 1998-11-19 2000-06-06 Nippon Telegr & Teleph Corp <Ntt> データ送受信方法並びにデータ送信プログラムを記憶した媒体及びデータ受信プログラムを記憶した媒体
JP2000261478A (ja) * 1999-03-04 2000-09-22 Telecommunication Advancement Organization Of Japan ゲートウェイ装置、送信方法、受信方法および情報記録媒体
JP2002185488A (ja) * 2000-12-14 2002-06-28 Nippon Telegr & Teleph Corp <Ntt> 通信効率増幅装置
JP2003110604A (ja) * 2001-10-02 2003-04-11 Nippon Telegr & Teleph Corp <Ntt> クライアントサーバシステム及びクライアントサーバシステムにおけるデータ通信方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6304578B1 (en) * 1998-05-01 2001-10-16 Lucent Technologies Inc. Packet routing and queuing at the headend of shared data channel
US6532476B1 (en) * 1999-11-13 2003-03-11 Precision Solutions, Inc. Software based methodology for the storage and retrieval of diverse information
US6965646B1 (en) * 2000-06-28 2005-11-15 Cisco Technology, Inc. MPEG file format optimization for streaming
US6912645B2 (en) * 2001-07-19 2005-06-28 Lucent Technologies Inc. Method and apparatus for archival data storage
JP2003152544A (ja) * 2001-11-12 2003-05-23 Sony Corp データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム
JP2003242097A (ja) * 2002-02-15 2003-08-29 Hitachi Ltd クロスコール機能を備えるディスク制御装置
JP2003264596A (ja) * 2002-03-07 2003-09-19 Mitsubishi Electric Corp 通信デバイス、携帯端末、通信方法を実現するためのプログラム
US7627693B2 (en) * 2002-06-11 2009-12-01 Pandya Ashish A IP storage processor and engine therefor using RDMA

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6427343A (en) * 1987-07-23 1989-01-30 Fujitsu Ltd Transmission data split processing system
JP2000156706A (ja) * 1998-11-19 2000-06-06 Nippon Telegr & Teleph Corp <Ntt> データ送受信方法並びにデータ送信プログラムを記憶した媒体及びデータ受信プログラムを記憶した媒体
JP2000261478A (ja) * 1999-03-04 2000-09-22 Telecommunication Advancement Organization Of Japan ゲートウェイ装置、送信方法、受信方法および情報記録媒体
JP2002185488A (ja) * 2000-12-14 2002-06-28 Nippon Telegr & Teleph Corp <Ntt> 通信効率増幅装置
JP2003110604A (ja) * 2001-10-02 2003-04-11 Nippon Telegr & Teleph Corp <Ntt> クライアントサーバシステム及びクライアントサーバシステムにおけるデータ通信方法

Also Published As

Publication number Publication date
JPWO2005039150A1 (ja) 2007-02-08
US20070071004A1 (en) 2007-03-29
US8228919B2 (en) 2012-07-24
WO2005039150A1 (ja) 2005-04-28

Similar Documents

Publication Publication Date Title
EP1175064B1 (en) Method and system for improving network performance using a performance enhancing proxy
KR100334788B1 (ko) 표준프로토콜을이용하여노드를무선통신망에접속하는방법및장치
US7414975B2 (en) Protocol stack
US8649395B2 (en) Protocol stack using shared memory
US20070008884A1 (en) Immediate ready implementation of virtually congestion free guarantedd service capable network
JP4702151B2 (ja) ネットワーク中継装置およびネットワーク通信システム
AU1050601A (en) Method and system for discarding and regenerating acknowledgment packets in ADSL communications
JP4656415B2 (ja) 通信装置およびその通信方法ならびにプログラム
EP1232628B1 (en) Method for enhancing performance
JP3614006B2 (ja) 非対称経路利用通信システム、および、非対称経路利用通信方法
JP2008113327A (ja) ネットワークインターフェース装置
Houmkozlis et al. End-to-end Adaptive Congestion Control in TCP/IP Networks
Tarzan et al. Error and flow control protocol (efcp) design and implementation: A data transfer protocol for the recursive internetwork architecture
JP4692406B2 (ja) 中継通信システム、中継装置及びそれらに用いるセッション別帯域制御方法並びにそのプログラム
EP1768336B1 (en) Network device for manipulation of TCP segments for increase of efficiency in the transmission
De Silva et al. Tailoring protocols for dynamic network conditions and user requirements
Welzl Beneficial gradual deployment of SCTP
US20070061662A1 (en) Method and system for detecting wired network error in mobile communication terminal
Leigh et al. Grid Networks and UDP Services, Protocols, and Technologies

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070911

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100225

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100423

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101215

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140107

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4656415

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150