特許第6863274号(P6863274)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電気株式会社の特許一覧
特許6863274送信装置およびその制御方法、通信システム、並びに通信制御プログラム
<>
  • 特許6863274-送信装置およびその制御方法、通信システム、並びに通信制御プログラム 図000002
  • 特許6863274-送信装置およびその制御方法、通信システム、並びに通信制御プログラム 図000003
  • 特許6863274-送信装置およびその制御方法、通信システム、並びに通信制御プログラム 図000004
  • 特許6863274-送信装置およびその制御方法、通信システム、並びに通信制御プログラム 図000005
  • 特許6863274-送信装置およびその制御方法、通信システム、並びに通信制御プログラム 図000006
  • 特許6863274-送信装置およびその制御方法、通信システム、並びに通信制御プログラム 図000007
  • 特許6863274-送信装置およびその制御方法、通信システム、並びに通信制御プログラム 図000008
  • 特許6863274-送信装置およびその制御方法、通信システム、並びに通信制御プログラム 図000009
  • 特許6863274-送信装置およびその制御方法、通信システム、並びに通信制御プログラム 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6863274
(24)【登録日】2021年4月5日
(45)【発行日】2021年4月21日
(54)【発明の名称】送信装置およびその制御方法、通信システム、並びに通信制御プログラム
(51)【国際特許分類】
   H04L 29/08 20060101AFI20210412BHJP
   H04L 12/801 20130101ALI20210412BHJP
【FI】
   H04L13/00 307Z
   H04L12/801
【請求項の数】8
【全頁数】27
(21)【出願番号】特願2017-506091(P2017-506091)
(86)(22)【出願日】2016年3月15日
(86)【国際出願番号】JP2016001451
(87)【国際公開番号】WO2016147650
(87)【国際公開日】20160922
【審査請求日】2019年2月15日
(31)【優先権主張番号】特願2015-55477(P2015-55477)
(32)【優先日】2015年3月19日
(33)【優先権主張国】JP
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100109313
【弁理士】
【氏名又は名称】机 昌彦
(74)【代理人】
【識別番号】100124154
【弁理士】
【氏名又は名称】下坂 直樹
(72)【発明者】
【氏名】西川 由明
【審査官】 野元 久道
(56)【参考文献】
【文献】 特開2002−271439(JP,A)
【文献】 竹下 隆史,マスタリングTCP/IP 入門編 第5版,株式会社オーム社 竹生 修己,2013年 4月25日,第5版,p.236-241
(58)【調査した分野】(Int.Cl.,DB名)
H04L 29/08
H04L 12/801
(57)【特許請求の範囲】
【請求項1】
送信対象データを受信装置へ送信すると共に、前記送信対象データに対応する確認応答を、前記受信装置から受信する送信側送受信手段と、
前記送信側送受信手段における前記送信対象データの送信が停止されているか否かを確認する送信停止監視手段と、
前記送信側送受信手段による前記送信対象データの送信が停止されたと前記送信停止監視手段によって判定された場合に、前記送信対象データのうち前記送信側送受信手段によって次に送信される予定であったデータの送信を、前記送信側送受信手段に代わって継続し、前記送信対象データの送信の停止が解除されたと前記送信停止監視手段によって判定された場合に、前記送信側送受信手段に処理を戻す送信継続手段と
を備え
前記送信停止監視手段は、前記送信側送受信手段又は前記送信継続手段が、前記送信済みのデータであって、且つ、前記確認応答を表すACKデータの受信待ちのデータである、送信済み且つACK待ちデータのサイズと、前記ACKデータを受信することなく送信可能なデータのデータ量を示す送信量の制限の範囲とに基づいて、前記送信対象データの送信を停止したか否かを判定す
送信装置。
【請求項2】
前記送信停止監視手段は、
前記送信側送受信手段又は前記送信継続手段が、前記送信対象データの送信を停止したと判定する条件を、
(I)前記送信側送受信手段が有する送信バッファにおける、前記送信済み且つACK待ちデータのサイズが、前記送信量の制限に達した場合か、
(II)前記送信バッファにおける、前記送信済み且つACK待ちデータのサイズが前記送信量の制限に達した場合であり、且つ、自装置における前記送信対象データの送信間隔が、自装置から前記受信装置に前記送信対象データが送信された時刻から、送信された前記送信対象データを前記受信装置が受信し、受信した前記送信対象データを前記受信装置が確認応答したことを表す前記ACKデータを前記送信装置に送信し、送信された前記ACKデータを前記送信装置が受信するまでの、前記送信装置と前記受信装置との間において観測された遅延時間(以下、RTT値)に基づく閾値以上に遅延した場合か、
(III)前記送信バッファにおける、前記送信済み且つACK待ちデータのサイズが前記送信量の制限に達した場合で、且つ、前記送信側送受信手段における前記ACKデータの受信間隔が所定の閾値以上になった場合か、
(IV)前記送信バッファにおける、前記送信済み且つACK待ちデータのサイズが前記送信量の制限に達する場合であり、且つ、自装置における前記データの送信間隔が、前記RTT値に基づく前記閾値以上に遅延し、且つ、前記送信側送受信手段における前記ACKデータの前記受信間隔が前記所定の閾値以上になった場合、
のうち何れかとする
請求項に記載の送信装置。
【請求項3】
前記ACKデータを受信したときの前記受信間隔を示す情報を保存するACK履歴保存手段を更に備え、
前記送信停止監視手段は、
前記送信側送受信手段が前記送信対象データの送信を停止したと判定した場合に、前記送信継続手段に前記ACK履歴保存手段を参照するよう指示し、
前記送信継続手段は、
前記ACK履歴保存手段を参照した結果得られた前記受信間隔を示す情報に基づいて、前記ACKデータを前記送信側送受信手段が継続して受信した場合に送信可能なデータ量を求め、求めた前記データ量に基づいて、前記送信対象データを送信する
請求項に記載の送信装置。
【請求項4】
前記送信継続手段は、
自装置が送信する前記送信対象データを自装置と前記受信装置との間で中継する中継手段から、その中継手段が備える送信バッファのバッファ容量を示す情報を取得し、
前記送信側送受信手段が前記送信対象データの送信を停止したと判定した前記送信停止監視手段の指示に基づき、前記中継手段から受信した前記ACKデータの受信間隔を示す情報を保存する前記ACK履歴保存手段を参照するよう指示し、
前記送信継続手段は、前記ACK履歴保存手段を参照した結果得られた前記受信間隔を示す情報、および、前記中継手段の前記送信バッファのバッファ容量を示す情報に基づいて、前記ACKデータを前記送信側送受信手段が継続して受信した場合に前記送信継続手段が送信可能なデータ量を求め、
求めた前記データ量に基づいて、前記送信対象データを送信する
請求項に記載の送信装置。
【請求項5】
前記送信側送受信手段は、
前記送信継続手段が前記送信対象データの送信を継続する際に、
(I)自装置が前記ACKデータを受信したこととするか、
(II)前記送信側送受信手段における前記送信バッファの前記送信量の制限の範囲を緩和するか、
(III)前記送信側送受信手段における前記送信バッファの前記送信量の制限の範囲を無視するか、
(IV)自装置が、前記受信装置からのダミーACKデータを受信するか、
のうちの少なくとも何れかを行う
請求項に記載の送信装置。
【請求項6】
送信対象データを受信装置へ送信すると共に、前記送信対象データに対応する確認応答を、前記受信装置から受信する送信側送受信手段と、
前記送信側送受信手段における前記送信対象データの送信が停止されているか否かを確認する送信停止監視手段と、
前記送信停止監視手段の指示に基づいて前記送信対象データを送信する送信継続手段とを備える送信装置の制御方法であって、
前記送信側送受信手段による前記送信対象データの送信が停止されたと前記送信停止監視手段によって判定された場合に、前記送信対象データのうち前記送信側送受信手段によって次に送信される予定であったデータの送信を、前記送信側送受信手段に代わって継続し、前記送信対象データの送信の停止が解除されたと前記送信停止監視手段によって判定された場合に、前記送信側送受信手段に処理を戻すよう前記送信継続手段を制御し、
前記送信停止監視手段は、前記送信側送受信手段又は前記送信継続手段が、前記送信済みのデータであって、且つ、前記確認応答を表すACKデータの受信待ちのデータである、送信済み且つACK待ちデータのサイズと、前記ACKデータを受信することなく送信可能なデータのデータ量を示す送信量の制限の範囲とに基づいて、前記送信対象データの送信を停止したか否かを判定する
送信装置の制御方法。
【請求項7】
送信対象データを受信装置へ送信すると共に、前記送信対象データに対応する確認応答を、前記受信装置から受信する送信側送受信機能と、
前記送信側送受信機能における前記送信対象データの送信が停止されているか否かを確認する送信停止監視機能と、
前記送信側送受信機能による前記送信対象データの送信が停止されたと前記送信停止監視機能によって判定された場合に、前記送信対象データのうち前記送信側送受信手段によって次に送信される予定であったデータの送信を、前記送信側送受信機能に代わって継続し、前記送信対象データの送信の停止が解除されたと前記送信停止監視手段によって判定された場合に、前記送信側送受信手段に処理を戻す前記送信継続機能とを
コンピュータに実現させ
前記送信停止監視機能は、前記送信側送受信機能又は前記送信継続機能が、前記送信済みのデータであって、且つ、前記確認応答を表すACKデータの受信待ちのデータである、送信済み且つACK待ちデータのサイズと、前記ACKデータを受信することなく送信可能なデータのデータ量を示す送信量の制限の範囲とに基づいて、前記送信対象データの送信を停止したか否かを判定す
送信装置の通信制御プログラム。
【請求項8】
送信対象データを送信可能な送信装置と、
該送信装置と相互に通信可能な通信ネットワークを介して接続され、前記送信装置からの前記送信対象データを受信した場合に確認応答を返送可能な受信装置と
を備え、
前記送信装置は、
前記送信対象データを前記受信装置へ送信すると共に、前記送信対象データに対応する前記確認応答を、前記受信装置から受信する送信側送受信手段と、
前記送信側送受信手段における前記送信対象データの送信が停止されているか否かを確認する送信停止監視手段と、
前記送信側送受信手段による前記送信対象データの送信が停止されたと前記送信停止監視手段によって判定された場合に、前記送信対象データのうち前記送信側送受信手段によって次に送信される予定であったデータの送信を、前記送信側送受信手段に代わって継続し、前記送信対象データの送信の停止が解除されたと前記送信停止監視手段によって判定された場合に、前記送信側送受信手段に処理を戻す送信継続手段と
を含
前記送信停止監視手段は、前記送信側送受信手段又は前記送信継続手段が、前記送信済みのデータであって、且つ、前記確認応答を表すACKデータの受信待ちのデータである、送信済み且つACK待ちデータのサイズと、前記ACKデータを受信することなく送信可能なデータのデータ量を示す送信量の制限の範囲とに基づいて、前記送信対象データの送信を停止したか否かを判定する
通信システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、送信装置およびその制御方法、通信システム、並びに通信制御プログラムが格納された記録媒体に関する。
【背景技術】
【0002】
送信端末が受信端末に送信したデータパケットをその受信端末が受信すると、当該受信端末は、確認応答(以下、「ACK」と言う。)パケットを送信端末に送信する。そのACKパケットを受信すると、当該送信端末は、当該受信端末に、次のデータパケットを送信する。このような動作を行う通信システムが知られている。
【0003】
係る送信端末および受信端末が通信可能に接続される通信ネットワーク(以下、単に「ネットワーク」と言う。)の通信方式には、例えば、今日では一般的なTCP(Transmission_Control_Protocol)プロトコル(以下、「TCP」と略称する。)が用いられる。
【0004】
TCPでは、ネットワークにおいて輻輳(ネットワークの伝送能力を越える量のデータがネットワークに流入することによって、送信したデータパケットが遅延したり、喪失したりする状況)が発生しないように、例えば送信端末の送信バッファにおいては、ACKパケットを受信することなく一度に送信可能なデータを示すウィンドウを用いてデータパケットの送信量が制限される。
【0005】
一例として、TCPにおけるウィンドウについて図9を用いて説明する。図9は、送信バッファで用いられるウィンドウを概念的に説明する図である。
【0006】
図9に示す(1)項は、新たなデータパケットが書き込まれる前の送信バッファの内容を示す。確認応答済み領域(斜線部分)は、送信端末が送信した斜線部分までのデータパケットに対して、受信端末が対応するACKパケットを送信端末に送信し、そのACKパケットを送信端末が受け取ったことを示す。
【0007】
送信端末は、ACKパケットを受け取ると、それまで送信バッファに記憶していた送信済みのデータパケットを消去(斜線部分)する。そして、送信端末は、その消去した送信済みデータパケットが記憶されていた領域の上限の位置を、その位置のデータパケットまで確認応答済みであることを示すACK済みポインタ(図9に示す(1)項の上向き矢印)で指示する。
【0008】
(2)項は、確認応答領域に続く、送信可能領域および送信待ち領域を示す。送信可能領域および送信待ち領域には、送信端末が送信バッファに書き込んだデータパケットa乃至nが記憶されている。
【0009】
このうちの送信可能領域には、次に送信される、ACKパケットを受信することなく一度に送信可能なデータ量の範囲(つまり、ウィンドウサイズ)のデータパケットa乃至eが記憶されている(図9の例ではウィンドウサイズは「5」である。)。
【0010】
なお、以下では、ウィンドウサイズを、「送信量の制限の範囲」とも言う。
【0011】
送信待ち領域は、送信バッファに書き込まれたデータパケットa乃至nのうちの、データパケットa乃至eよりあとに送信されるデータパケットf乃至nを示す。
【0012】
送信端末は、データパケットa乃至eを、受信端末に送信すると、データパケットeの位置を、そのデータパケットeまでが送信済みであることを示す送信済みポインタ(図9の(2)項の左から2つ目の上向き矢印)で指示する。
【0013】
この時点で、データパケットa乃至eのそれぞれは、送信済みで且つACK待ちのデータパケットである。
【0014】
(3)項は、受信端末がデータパケットa乃至eのうちの、例えばデータパケットaのみを受信したことを示す。
【0015】
送信端末は、データパケットaに対応する受信端末からのACKパケットを受信すると、それまで送信バッファに記憶していたデータパケットaを消去(図9に示す(3)項の左から2つ目の斜線部分)する。そして、送信端末は、そのデータパケットaがあった位置を、そのデータパケットaまでがACK済みであることを示すACK済みポインタで指示する(図9に示す(3)項の左から1つ目の上向き矢印)。
【0016】
この時点で、データパケットb乃至eのそれぞれは、送信済みで且つACK待ちのデータパケットである(図9に示す(3)項のAの両矢印で示される範囲)。
【0017】
(3)項は、また、送信端末が消去したデータパケットaの分だけウィンドウを右側にずらすことを示し(つまり、図9に示す(3)項のBの両矢印で示される範囲。)、送信済みで且つACK待ちデータパケットb乃至eの右側に1つウィンドウがずらされることにより、データパケットfが、次に送信されるデータパケットとなる。
【0018】
なお、以下では、ウィンドウが右側にずらされることにより、次に送信されるデータが送信可能領域に入る余地ができることを「空きができる」と言う。
【0019】
送信バッファは、次のデータパケットfを受信端末へ送信し、データパケットfの位置を、そのデータパケットfの位置までが送信済みであることを示す送信済みポインタで指示する(図9に示す(3)項の左から2つ目の上向き矢印)。
【0020】
すなわち、送信端末は、送信したデータパケットaに対応するACKパケットを受信できたときに、Aで示される送信済みで且つACK待ちのデータパケットb乃至eのサイズ「4」が、Bで示されるウィンドウサイズ「5」よりも小さいので、送信可能領域に送信待ちのデータパケットfが入る空きができる。
【0021】
送信可能領域に空きができる場合に、送信端末は、送信量の制限の範囲に達していないとして、送信バッファにおける送信待ちデータパケットfを送信する。
【0022】
(4)項は、(3)項で、通信環境の変動により、送信端末がデータパケットaに対応するACKパケットを受信できないときに、確認応答ができなかったデータパケットaを消去できず、その分のウィンドウを右にスライドできないことを示す。
【0023】
そのため(4)項では、送信端末が、送信済みで且つACK待ちのデータパケットa乃至eのAで示されるサイズ「5」が、Bで示されるウィンドウサイズ「5」以上となり、送信可能領域に送信待ちのデータパケットが入る空きができない。
【0024】
送信可能領域に空きができない場合に、送信端末は、送信量の制限の範囲に達したとして、送信バッファにおける次の送信待ちデータパケットfの送信を停止する。
【0025】
なお、一般的なTCPでは、送信端末が、送信済みのデータパケットに対応するACKパケットを所定の時間内に受信できなければ、送信済みのデータパケットを所定の再送待ち時間毎に再送する。
【0026】
上述した送信端末および受信端末が、それぞれ、例えばインターネットにおけるWeb上のサーバ端末およびモバイル端末である場合、その途中経路にはモバイル網がある。
【0027】
係るモバイル網では、モバイル端末の移動や、複数の基地局との間でモバイル端末が無線接続を切替えるハンドオーバに伴う電波強度の低下や、多数のモバイル端末が接続されることによる基地局における混雑等のモバイル環境特有の通信環境の変動が発生する。
【0028】
上述した通信環境の変動により、基地局およびモバイル端末は、基地局からモバイル端末へ(下り方向)のデータパケットが喪失する場合や、無線出力電力が基地局よりも相対的に小さいモバイル端末から基地局へ(上り方向)のACKパケットが喪失する場合がある。
【0029】
上述したデータパケットおよびACKパケットのうちの少なくとも一方がネットワークにおいて喪失すると、結果としてWeb上のサーバ端末でACKパケットが受信されない。従って、Web上のサーバ端末の送信バッファにおけるウィンドウに新たな空きが生じない。
【0030】
そのため、送信バッファにおける送信済みで且つACK待ちのデータパケットは、送信量の制限の範囲に達し、送信バッファにおける次に送信されるべき送信待ちデータパケットの送信が停止される。
【0031】
その後、基地局およびモバイル端末の間の通信環境が通信可能な状態に回復したとしても、Web上のサーバ端末は、モバイル端末からのACKパケットを受信するまでの間、モバイル端末へのデータパケットの送信を停止する。
【0032】
例えば関連技術として、特許文献1には、以下の技術が開示されている。即ち、クライアント10は、サーバ12にACKメッセージを返送する際に、所定の時間T1を計測するタイマの計時を開始する。そのタイマが所定の時間を計時した以降にサーバ12からの次のデータパケットがクライアント10で受信されない場合に、クライアント10は、物理伝送媒体が中断されたことを検知し、同じACKメッセージを繰り返しサーバ12に送信する。
【0033】
特許文献2には、以下の技術が開示されている。即ち、地上局3(送信端末)および移動局4(受信端末)の間の無線リンクが非接続状態から回復したことが検出されると、受信端末でACKパケットを蓄積するACKパケット蓄積手段に蓄積された最新のACKパケットを、送信端末へ送信する。これにより、送信端末は、その送信されたACKパケットに基づいて再送するデータパケットを決定する。
【0034】
特許文献3には、以下の技術が開示されている。即ち、送信装置100から送信されたパケットを受信装置200が受信し、受信したそのパケットに誤りが検出された際に、その検出された誤りの補正を行う。そして、受信装置200は、所定時間内にその誤りを補正できなかった場合でも、その補正を継続し、補正が正しくできた場合に肯定応答ACKを返送するまでの間、送信装置100は、次のパケットを最大N個の範囲で連続して送信する。これにより、送信装置100から受信装置200への再送パケットの送信頻度を抑制する。
【0035】
特許文献4には、以下の技術が開示されている。即ち、無線アクセスポイント1から、複数の受信端末に送信データパケットを同報するシステムにおいて、受信端末からのACK信号がアクセスポイント1において受信されないときに、アクセスポイント1における送信前データの蓄積量が規定の大きさを越える場合、送信データパケットの再送を停止する。これにより、当該システムは、データパケットの送信の遅延を解消する。
【0036】
特許文献5には、基地局130から送信されたパケットを受信する中継装置120の再送把握部214が、受信したパケットのシーケンス番号の欠番を検知すると、中継装置120が欠番パケットの再送を基地局130へ要求する技術が開示されている。
【0037】
特許文献5には、以下の技術が開示されている。即ち、その技術は、中継装置120からの要求に基づいて基地局130が再送したパケットを中継装置120が受信する際に生じる無通信状態を無通信検出部220が検出したときに、ダミー送信部216によりダミーデータを基地局130に送信し、基地局130と中継装置120との間のチャネルが解放されないようにする。
【0038】
特許文献6には、以下の技術が開示されている。即ち、その技術は、通信網10を介してデータを送受信するパケット通信装置1および2のうちの何れか一方から、相手装置の正常性を確認する第1の周期でのARPパケットの送信を行い、そのARPパケットに対する応答が来なければ、当該相手装置が異常な状態にあると判断する。そしてその技術は、その後の当該相手装置へのデータの送信を停止することでトラフィックが増大するのを抑制する。
【先行技術文献】
【特許文献】
【0039】
【特許文献1】特許第5185955号公報
【特許文献2】特許第4832483号公報
【特許文献3】特開2008−079350号公報
【特許文献4】特開2006−324738号公報
【特許文献5】特開2010−056942号公報
【特許文献6】特開2008−017417号公報
【発明の概要】
【発明が解決しようとする課題】
【0040】
しかしながら、通信環境の変動により、データパケットおよび/またはACKメッセージを喪失した場合に、一般的なTCPでは、送信端末が、最大でデータパケットの再送待ち時間の間待たなければデータパケットの送信ができない。
【0041】
また、特許文献1に記載された技術では、サーバ12が、最大でACKパケットの繰り返し送信間隔のT1時間の間待たなければデータパケットの送信ができない。
【0042】
すなわち、上述した一般的なTCPおよび特許文献1では、送信端末において、上述したデータパケットおよびACKパケットを待つ時間分の遅延が発生するため通信システムとしての通信効率が低下する問題点がある。
【0043】
なお、関連する特許文献2乃至6のそれぞれでは、送信端末がACKパケットを待つことなく、且つ、送信済みデータパケットを再送することなしに、次のデータパケットを送信することは何ら記載されていない。
【0044】
本発明の目的は、上述した問題点を解決した通信システム、通信制御方法および通信制御プログラムを提供することにある。
【課題を解決するための手段】
【0045】
本発明の一観点において、送信装置は、送信対象データを受信装置へ送信すると共に、前記送信対象データに対応する確認応答を、前記受信装置から受信する送信側送受信手段と、前記送信側送受信手段における前記送信対象データの送信が停止されているか否かを確認する送信停止監視手段と、前記送信側送受信手段による前記送信対象データの送信が停止されたと前記送信停止監視手段によって判定された場合に、前記送信対象データの送信を、前記送信側送受信手段に代わって継続する送信継続手段とを備える。
【0046】
また、本発明の他の観点において、送信装置の制御方法は、送信対象データを受信装置へ送信すると共に、前記送信対象データに対応する確認応答を、前記受信装置から受信する送信側送受信手段と、前記送信側送受信手段における前記送信対象データの送信が停止されているか否かを確認する送信停止監視手段と、前記送信停止監視手段の指示に基づいて前記送信対象データを送信する送信継続手段とを備える送信装置の制御方法であって、前記送信側送受信手段の前記送信対象データの送信が停止されたと前記送信停止監視手段によって判定した場合に、前記送信対象データの送信を、前記送信側送受信手段に代わって継続するよう前記送信継続手段を制御する。
【0047】
また、本発明の他の観点において、通信システムは、
送信対象データを送信可能な送信装置と、該送信装置と相互に通信可能な通信ネットワークを介して接続され、前記送信装置からの前記送信対象データを受信した場合に確認応答を返送可能な受信装置とを備え、前記送信装置は、前記送信対象データを前記受信装置へ送信すると共に、前記送信対象データに対応する前記確認応答を、前記受信装置から受信する送信側送受信手段と、前記送信側送受信手段における前記送信対象データの送信が停止されているか否かを確認する送信停止監視手段と、前記送信側送受信手段による前記送信対象データの送信が停止されたと前記送信停止監視手段によって判定された場合に、前記送信対象データの送信を、前記送信側送受信手段に代わって継続する前記送信継続手段とを含む。
【0048】
さらに、本発明は、上述した構成を備える送信装置またはその制御方法に対応する、送信制御プログラム、あるいは、その送信制御プログラムが格納された記録媒体(記憶媒体)によっても実現される。
【発明の効果】
【0049】
本発明には、データまたはACKデータを待つ時間分の遅延を抑制し、通信システムとしての通信効率を改善できる効果がある。
【図面の簡単な説明】
【0050】
図1】本発明の第1の実施形態を示すブロック図である。
図2】第1の実施形態における送信側装置の処理の流れを示すフローチャートである。
図3】本発明の第2の実施形態を示すブロック図である。
図4】第2の実施形態における送信側装置の処理の流れを示すフローチャートである。
図5】本発明の第3の実施形態を示すブロック図である。
図6】本発明の第3の実施形態を示すブロック図である。
図7】第3の実施形態における送信側装置の処理の流れを示すフローチャートである。
図8】本発明の模範的な実施形態における送信側装置を実行可能な情報処理装置(コンピュータ)の構成を例示的に説明する図である。
図9】送信バッファで用いられるウィンドウを概念的に説明する図である。
【発明を実施するための形態】
【0051】
次に、本発明の実施形態について図面を参照して詳細に説明する。
【0052】
<第1の実施形態>
まず、第1の実施形態について説明する。図1は、第1の実施形態を示すブロック図である。
【0053】
図1を参照すると、本実施形態の通信システム1は、送信側装置11と、送信側装置11と相互に通信可能なネットワークを介して接続された受信側装置31とを含む。
【0054】
送信側装置11は、送信側送受信部12と、送信停止監視部13と、送信継続部14と、共用送受信部19とを含む。受信側装置31は、受信側送受信部32を含む。
【0055】
送信側送受信部12は、送信バッファ20を含む。
【0056】
送信継続部14は、送信バッファを含む(図1には、図示せず。)。
【0057】
共用送受信部19は、送信バッファを含む(図1には、図示せず。)。
【0058】
受信側装置31の受信側送受信部32は、送信バッファ(図1には、図示せず。)を含む。
【0059】
共用送受信部19は、送信バッファ20または、送信継続部14の送信バッファからのデータが、共用送受信部19の送信バッファに書き込まれる(コピーされる)と、書き込まれたデータを受信側装置31へ送信する。
【0060】
また、共用送受信部19は、受信側装置31からのACKデータを受け取り、送信側送受信部12に渡す。
【0061】
送信停止監視部13および送信継続部14については、後述する本実施形態における動作説明において説明する。
【0062】
なお、送信バッファ20は、送信側装置11からの書き込みデータを記憶する記憶領域である。
【0063】
次に、図2を参照して本実施形態の動作を説明する。
【0064】
図2は、本実施形態における送信側装置11の処理の流れを示す図である。
【0065】
送信側装置11が、送信バッファ20に、データを書き込むと、送信バッファ20は、書き込まれたデータのうち、ACKデータを受信することなく一度に送信可能なデータ量のデータを、共用送受信部19を介して受信側端末31へ送信する(ステップS51)。
【0066】
送信停止監視部13は、送信バッファ20に書き込まれたデータの、送信バッファ20からの送信が停止されたか否かを確認する(ステップS52)。
【0067】
送信停止監視部13は、ステップS52において、送信側装置11が、受信側装置31からのACKデータを受信できたときに、送信バッファ20がデータの送信を停止していないと判定する(ステップS52において、NO)。
【0068】
つまり、送信停止監視部13は、送信済みで且つACK待ちのデータのサイズが、ウィンドウサイズよりも小さく、ウィンドウに空きがある、「送信済み且つACK待ちデータのサイズ−(マイナス)ウィンドウサイズ<0」の条件を満たす場合に、送信量の制限の範囲に達していないので送信バッファ20がデータの送信を停止していないと判定する。
【0069】
なお、上述した判定方法は、一例であり、上述した方法には限定されない。
【0070】
送信バッファ20は、ステップS52においてNOの場合、上述したステップS51に示すデータを送信する処理を実行する。
【0071】
一方、送信停止監視部13は、ステップS52において、送信側装置11が、受信側装置31からのACKデータを受信できないときに、送信バッファ20がデータの送信を停止していると判定する(ステップS52において、YES)。
【0072】
つまり、送信停止監視部13は、送信済みで且つACK待ちのデータのサイズが、ウィンドウサイズ以上となり、ウィンドウに空きがない、「送信済み且つACK待ちデータのサイズ−ウィンドウサイズ≧0」の条件を満たす場合に、以下の処理を行う。即ち、送信停止監視部13は、送信バッファが送信量の制限の範囲に達しているので送信バッファ20がデータの送信を停止していると判定する。
【0073】
なお、上述した判定方法は、一例であり、上述した方法には限定されない。
【0074】
送信継続部14は、ステップS52において、YESの場合、後述するステップS53の処理を実行する。
【0075】
すなわち、送信停止監視部13は、送信継続部14に、送信継続部14の送信バッファに、送信バッファ20が次に送信する予定であったデータを送信バッファ20から引き取るよう指示する。
【0076】
送信継続部14は、共用送受信部19の送信バッファに、送信継続部14が引き取った送信バッファ20のデータを書き込む。
【0077】
共用送受信部19は、送信継続部14の送信バッファから書き込まれたデータを受信側装置31へ送信する(ステップS53)。
【0078】
送信停止監視部13は、ステップS52において、送信側装置11が、受信側装置31からのACKデータを受信できずに、送信バッファ20がデータの送信を停止していると判定した後、送信バッファ20からのデータの送信の停止が解除されたか否かを確認する(ステップS54)。
【0079】
送信停止監視部13は、ステップS54において送信側装置11が受信側装置31からのACKデータを受信できないときに、送信バッファ20におけるデータの送信の停止が解除されていないと判定する(ステップS54において、NO)。
【0080】
つまり、送信停止監視部13は、送信済みで且つACK待ちのデータのサイズが、ウィンドウサイズ以上となり、ウィンドウに空きができず、送信量の制限の範囲に達しているので、送信バッファ20におけるデータの送信の停止が解除されていないと判定する。
【0081】
なお、上述した判定方法は、一例であり、上述した方法には限定されない。
【0082】
送信継続部14は、ステップS54において、NOの場合、上述したステップS53に示す処理を実行する。
【0083】
一方、送信停止監視部13は、ステップS54において、送信側装置11が受信側装置31からのACKデータを受信できたときに、送信バッファ20におけるデータの送信の停止が解除されたと判定する(ステップS54において、YES)。
【0084】
つまり、送信停止監視部13は、送信済みで且つACK待ちのデータのサイズが、ウィンドウサイズよりも小さく、ウィンドウに空きができ、送信量の制限の範囲に達していないので送信バッファ20におけるデータの送信の停止が解除されたと判定する。
【0085】
なお、上述した判定方法は、一例であり、上述した方法には限定されない。
【0086】
送信バッファ20は、ステップS54において、YESの場合、上述したステップS51に示すデータを送信する処理を再開する。
【0087】
その際、送信継続部14は、送信継続部14の送信バッファによるデータの送信を停止する。
【0088】
こうして、送信側装置11は、受信側装置31からのACKデータを受信していなくても送信継続部14を用いてデータの送信を継続することが出来る。
【0089】
なお、ステップS54において、送信バッファ20からのデータの送信の停止が解除されたことを判定する他の方法として、以下の方法を採用してもよい。即ち、送信停止監視部13は、送信バッファ20が上述したステップS51に示す、データを送信する処理を再開したことによってデータの送信の停止が解除されたと判定するようにしてもよい。
【0090】
また、共用送受信部19は、送信バッファ20または送信継続部14の送信バッファのデータを受信側装置31へ送信し、受信側装置31からのACKデータを、送信側送受信部12に渡すことができれば、上述した方法に限定されず、他の方法を用いてもよい。
【0091】
以上、本実施形態には、データまたはACKデータを待つ時間分の遅延を抑制し、通信システムとしての通信効率を改善できる効果がある。
【0092】
その理由は、ACKデータを待つことなくデータを継続して送信するように送信側装置11に送信継続部14を設けたからである。
【0093】
また、上述した送信側装置および受信側装置を、それぞれ、例えば基地局の外部端末であるWeb上のサーバ端末およびモバイル端末としてモバイル通信環境に適用した場合には、以下の効果もある。即ち、不特定多数となる受信側装置であるモバイル端末の改造は不要であり、共通の送信側装置であるWeb上のサーバ端末にのみ、上述した図2に示す処理を実行可能なように適用すればよいので、導入コストを低減できる。
【0094】
<第2の実施形態>
次に、第2の実施形態について説明する。図3は、第2の実施形態を示すブロック図である。
【0095】
図3を参照すると、本実施形態の通信システム70は、送信側装置71と、送信側装置71と相互に通信可能なネットワークを介して接続された受信側装置31とを含む。
【0096】
本実施形態における送信側装置71は、第1の実施形態で説明した送信側装置11の構成に、ACK履歴保存部76を追加した点が、第1の実施形態の構成と異なる。
【0097】
以下では、第1の実施形態と異なる構成および動作を中心に説明し、第1の実施形態の構成要素と同じ構成要素には同一の参照符号が付与され、それらの説明は省略される。
【0098】
送信側装置71は、送信側送受信部72と、送信停止監視部73と、送信継続部74と、共用送受信部79と、ACK履歴保存部76とを含む。
【0099】
送信側送受信部72は、送信バッファ80を含む。
【0100】
送信継続部74は、送信バッファを含む(図3には図示せず。)。
【0101】
ACK履歴保存部76は、送信側送受信部72が、受信側装置31からのACKデータを受信する度に、ACKデータの受信間隔の情報を保存する。
【0102】
ACKデータの受信間隔の情報は、例えば通信システムが有する時刻の時刻値やクロックのクロック数等を用いることができる。
【0103】
次に、図4を参照して本実施形態の動作を説明する。
【0104】
図4は、本実施形態における送信側装置71の処理の流れを示す図である。
【0105】
送信側装置71が、送信バッファ80に、データを書き込むと、送信バッファ80は、書き込まれたデータのうち、ACKを受信することなく一度に送信可能なデータ量のデータを、共用送受信部79を介して受信側端末31へ送信する(ステップS151)。
【0106】
送信停止監視部73は、送信バッファ80に書き込まれたデータの、送信バッファ80からの送信が停止したか否かを確認する(ステップS152)。
【0107】
送信停止監視部73は、ステップS152において、送信側装置71が、受信側装置31からのACKデータを受信できたときに、送信バッファ80がデータの送信を停止していないと判定する(ステップS152において、NO)。
【0108】
つまり、送信停止監視部73は、送信済みで且つACK待ちのデータのサイズが、ウィンドウサイズよりも小さく、ウィンドウに空きがある、「送信済み且つACK待ちデータのサイズ−ウィンドウサイズ<0」の条件を満たす場合に、以下の処理を行う。即ち、送信停止監視部73は、送信バッファが送信量の制限の範囲に達していないので送信バッファ80がデータの送信を停止していないと判定する。
【0109】
なお、上述した判定方法は、一例であり、上述した方法には限定されない。
【0110】
送信バッファ80は、ステップS152においてNOの場合、上述したステップS151に示すデータを送信する処理を実行する。
【0111】
一方、送信停止監視部73は、ステップS152において、送信側装置71が、受信側装置31からのACKデータを受信できないときに、送信バッファ80がデータの送信を停止していると判定する(ステップS152において、YES)。
【0112】
つまり、送信停止監視部73は、送信済みで且つACK待ちのデータのサイズがウィンドウサイズ以上となり、ウィンドウに空きがない、「送信済み且つACK待ちデータのサイズ−ウィンドウサイズ≧0」の条件を満たす場合に、以下の処理を行う。即ち、送信停止監視部73は、送信バッファが送信量の制限の範囲に達しているので送信バッファ80がデータの送信を停止していると判定する。
【0113】
なお、上述した判定方法は、一例であり、上述した方法には限定されない。
【0114】
送信継続部74は、ステップS152において、YESの場合、後述するステップS153の処理を実行する。
【0115】
送信停止監視部73は、送信継続部74に、ACK履歴保存部76のACKデータの受信間隔の履歴を参照するようACK履歴保存部76を介して指示する(ステップS153)。
【0116】
送信継続部74は、ACK履歴保存部76の履歴を参照し、ACK履歴保存部76に保存されたACKデータの受信間隔でACKデータを送信側送受信部72が仮に継続して受信した場合に、送信可能となるデータ量を求める。
【0117】
その際に、送信継続部74が求める送信可能なデータ量は、一例として以下である。即ち、例えばTCPにおける送信データの最大セグメントサイズが1500バイト(12000ビット)とし、送信側装置が受信側装置から1秒毎に、最大セグメントサイズのデータに対応するACKデータを受信する場合には、1秒あたりに12000ビットである。
【0118】
送信継続部74は、求めたそのデータ量に基づいて、送信継続部74の送信バッファに、送信バッファ80が送信する予定であったデータを引き取る。
【0119】
送信継続部74は、共用送受信部79の送信バッファに、送信バッファ80から引き取ったデータを書き込む。
【0120】
共用送受信部79は、送信継続部74から書き込まれたデータを受信側装置31へ送信する(ステップS154)。
【0121】
送信停止監視部73は、ステップS152において、送信バッファ80からのデータの送信が停止していないと判定した場合(ステップS152においてNO)、ステップS151に示す処理を実行する。
【0122】
なお、ステップ152において、送信側装置71は、送信バッファ80によるデータの送信の停止を確認し、送信継続部74によりデータを継続送信する場合に、以下に示す1)乃至7)の何れか、またはこれらを組み合わせた制御を行ってもよい。
【0123】
即ち、
1)送信継続部74がデータを継続送信する際のデータ量は、送信バッファ80が送信可能なデータ量を越えてもよい。
【0124】
2)送信継続部74がデータを継続送信する際の送信レートは、固定レートでもよいし、変動レートでもよく、変動レートの場合には、単位時間当たりの送信量が減少するように送信してもよい。
【0125】
3)送信継続部74がデータを継続送信する際の総送信量は、ネットワークにおける、下り方向のデータを中継する図3には図示していない中継装置(例えば、携帯端末との間の基地局)等の送信バッファにおける既知のバッファ量か、またはその既知のバッファ量の実数倍のバッファ量を超えないように調整してもよい。
【0126】
4)上記3)項で説明したネットワークにおける、中継装置等の送信バッファの既知のバッファ量としては、過去に、通信環境の変動によりデータが喪失した際に用いられた送信量の制限値や、ウィンドウサイズを用いてもよい。
【0127】
なお、送信継続部74は、中継装置のバッファ量を、例えば、送信側装置71がネットワークを運用する際に予め通知される情報または、予めデータを大量に送信して推定する等により取得することができる。
【0128】
5)送信継続部74は、データを継続送信する際に、送信側装置71、またはネットワークにおける上り方向の受信データを中継する中継装置等で生成したダミーのACKデータを、送信側送受信部72で受信させるようにしてもよい。
【0129】
また、送信継続部74は、データを継続送信する際に、送信側装置71の内部処理としてACKデータを受信させたものとして処理をしてもよい。
【0130】
6)送信側装置71は、送信バッファ80における送信量の制限の範囲を緩和してもよい。
【0131】
7)送信側装置71は、上述した送信継続部74が、データをACKデータの受信レートに基づいて継続送信しているときに、通信環境の変動により上り方向が通信不可能な状態から通信可能な状態に復帰した場合、以下の処理を実行してもよい。即ち、送信側装置71は、送信側装置71が受信側装置31から送信されたACKデータを受信した場合には、送信側装置71の後述する設定値および内部状態を示す各種の情報の全部または一部を変更してもよい。
【0132】
もしくは、送信側装置71は、送信側装置71の後述する設定値および内部状態を送信側装置71がACKデータを受信しなくなる前の状態に戻してもよい。
【0133】
上述した7)項に示す送信側装置71における設定値および内部状態は、例えばTCPであれば、一般に知られている輻輳ウィンドウ(cwnd)や、スロースタート閾値(slow_start_threshold;ssthresh)等の設定値およびスロースタートフェーズまたは輻輳回避フェーズ等の内部状態であり、送信量の制限や、その制限を調整する処理に係る各種の情報である。
【0134】
しかし、送信側装置71の設定値および内部状態を示す各種の情報は、上述した値および情報には限定されない。
【0135】
また、上述したステップS152において、送信停止監視部73は、送信バッファ80における送信済み且つACK待ちデータのサイズが送信量の制限の範囲に達する場合に、送信バッファ80がデータの送信を停止したと判断する例で説明した。
【0136】
しかし、送信停止監視部73は、上述した停止の判断条件以外で、以下に示すa)、b)またはc)の少なくとも何れかの条件を満たす場合に、送信バッファ80がデータの送信を停止したと判断するようにしてもよい。
【0137】
即ち、
a)送信バッファ80における送信済み且つACK待ちデータのサイズが送信量の制限の範囲に達する場合で、且つ、送信側装置71におけるデータの送信間隔が、RTT値に基づく閾値以上に遅延した場合。
【0138】
b)送信バッファ80における送信済み且つACK待ちデータのサイズが送信量の制限の範囲に達する場合で、且つ、送信側送受信部72におけるACKデータの受信間隔が所定の閾値以上になった場合。
【0139】
c)送信バッファ80における送信済み且つACK待ちデータのサイズが送信量の制限の範囲に達する場合で、且つ、送信側装置71におけるデータの送信間隔が、RTT値に基づく閾値以上に遅延し、且つ、送信側送受信部72におけるACKデータの受信間隔が所定の閾値以上になった場合。
【0140】
ここで、RTTは、Round_Trip_Timeの略である。RTTは、図3に示す送信側装置71から受信側装置31にデータが送信された時刻から、送信されたデータを受信側装置31が受け取り、受け取ったそのデータを受信側装置31が確認応答した結果のACKデータを送信側装置71に送信し、送信されたACKデータを送信側装置71が受信する時刻までの、送信側装置と受信側装置との間の観測された往復の遅延時間である。
【0141】
上述したRTT値に基づく閾値は、例えばRTT値の実数倍などの値が設定される。
【0142】
引き続き、図4に示す送信側装置71の処理の流れを説明する。
【0143】
送信停止監視部73は、ステップS152において、送信側装置71が、受信側装置31からのACKデータを受信できずに、送信バッファ80がデータの送信を停止していると判定した後、送信バッファ80からのデータの送信の停止が解除されたか否かを確認する(ステップS155)。
【0144】
送信停止監視部73は、ステップS155において、送信側装置71が受信側装置31からのACKデータを受信できないときに、送信バッファ80におけるデータの送信の停止が解除されていないと判定する(ステップS155において、NO)。
【0145】
つまり、送信停止監視部73は、送信済みで且つACK待ちのデータのサイズが、ウィンドウサイズ以上となり、ウィンドウに空きがない、「送信済み且つACK待ちデータのサイズ−ウィンドウサイズ≧0」の条件を満たす場合に、送信量の制限の範囲に達しているので、送信バッファ80におけるデータの送信の停止が解除されていないと判定する。
【0146】
送信継続部74は、ステップS155においてNOの場合、上述したステップS154に示す、ACK受信レート継続送信処理を実行する。
【0147】
なお、上述した判定方法は、一例であり、上述した方法には限定されない。
【0148】
一方、送信停止監視部73は、ステップS155において、送信側装置71が受信側装置31からのACKデータを受信できたときに、送信バッファ80におけるデータの送信の停止が解除されたと判定する(ステップS155において、YES)。
【0149】
つまり、送信停止監視部73は、送信済みで且つACK待ちのデータのサイズが、ウィンドウサイズよりも小さく、ウィンドウに空きがある、「送信済み且つACK待ちデータのサイズ−ウィンドウサイズ<0」の条件を満たす場合に、以下の処理を行う。即ち、送信量の制限の範囲に達していないので、送信停止監視部73は、送信バッファ80におけるデータの送信の停止が解除されたと判定する。
【0150】
なお、上述した判定方法は、一例であり、上述した方法には限定されない。
【0151】
送信バッファ80は、ステップS155においてYESの場合、上述したステップS151に示す、データを送信する処理を再開する。
【0152】
その際、送信継続部74は、送信継続部74の送信バッファによるデータの送信を停止する。
【0153】
以上、本実施形態には、第1の実施形態の効果に加えて、第1の実施形態に比べてネットワークにおける負荷を低減できる効果がある。
【0154】
その理由は、送信側装置71が、ACK受信履歴保存部76に保存された受信間隔でACKデータを受信しているときに実際に送信可能となるデータ量のデータを送信するようにしたからである。
【0155】
<第3の実施形態>
次に、第3の実施形態について説明する。図5は、第3の実施形態を示すブロック図である。
【0156】
図5を参照すると、本実施形態の通信システム90は、送信側装置91と、送信側装置91と相互に通信可能なネットワークを介して接続された受信側装置31とを含む。
【0157】
本実施形態の通信システム90は、第2の実施形態で説明した通信システム70の構成に、受信側装置31との間の、ネットワークにおける下り方向のデータを記憶すると共に送信する、図5に示す、例えば基地局や他のWeb上のサーバ装置等の中継装置100における送信バッファのバッファ量を用いる点が、第2の実施形態と異なる。
【0158】
以下では、第2の実施形態と異なる構成および動作を中心に説明し、第2の実施形態の構成要素と同じ構成要素には同一の参照符号が付与され、それらの説明は省略される。
【0159】
送信側装置91は、送信側送受信部92と、送信停止監視部93と、送信継続部94と、共用送受信部99と、ACK履歴保存部96とを含む。
【0160】
送信側送受信部92は、送信バッファ95を含む。
【0161】
送信継続部94は、送信バッファを含む(図5には図示せず。)。
【0162】
ACK履歴保存部96は、送信側送受信部92が、受信側装置31からのACKデータを受信する度に、ACKデータの受信間隔の情報を保存する。
【0163】
ACKデータの受信間隔の情報は、例えば通信システムが有する時刻の時刻値やクロックのクロック数等を用いることができる。
【0164】
次に、図6を参照して本実施形態の動作を説明する。
【0165】
図6は、本実施形態における送信側装置91の処理の流れを示す図である。
【0166】
送信側装置91が、送信バッファ95に、データを書き込むと、送信バッファ95は、書き込まれたデータのうち、ACKを受信することなく一度に送信可能なデータ量のデータを、共用送受信部99を介して受信側端末31へ送信する(ステップS171)。
【0167】
送信停止監視部93は、送信バッファ95に書き込まれたデータの、送信バッファ95からの送信が停止したか否かを確認する(ステップS172)。
【0168】
送信停止監視部93は、ステップS172において、送信側装置91が、受信側装置31からのACKデータを受信できたときに、送信バッファ95がデータの送信を停止していないと判定する(ステップS172において、NO)。
【0169】
つまり、送信停止監視部93は、送信済みで且つACK待ちのデータのサイズが、ウィンドウサイズよりも小さく、ウィンドウに空きがある、「送信済み且つACK待ちデータのサイズ−ウィンドウサイズ<0」の条件を満たす場合に、以下の処理を行う。即ち、送信停止監視部93は、送信量の制限の範囲に達していないので送信バッファ95がデータの送信を停止していないと判定する。
【0170】
なお、上述した判定方法は、一例であり、上述した方法には限定されない。
【0171】
送信バッファ95は、ステップS172においてNOの場合、上述したステップS171に示すデータを送信する処理を実行する。
【0172】
一方、送信停止監視部93は、ステップS172において、送信側装置91が、受信側装置31からのACKデータを受信できないときに、送信バッファ95がデータの送信を停止していると判定する(ステップS172において、YES)。
【0173】
つまり、送信停止監視部93は、送信済みで且つACK待ちのデータのサイズがウィンドウサイズ以上となり、ウィンドウに空きがない、「送信済み且つACK待ちデータのサイズ−ウィンドウサイズ≧0」の条件を満たす場合に、以下の処理を行う。即ち、送信停止監視部93は、送信量の制限の範囲に達しているので送信バッファ95がデータの送信を停止していると判定する。
【0174】
なお、上述した判定方法は、一例であり、上述した方法には限定されない。
【0175】
送信継続部94は、ステップS172において、YESの場合、後述するステップS173の処理を実行する。
【0176】
送信停止監視部93は、送信継続部94に、ACK履歴保存部96のACKデータの受信間隔の履歴を参照するようACK履歴保存部96を介して指示する(ステップS173)。
【0177】
送信継続部94は、ACK履歴保存部96の履歴を参照し、ACK履歴保存部96に保存されたACKデータの受信間隔でACKデータを送信側送受信部92が仮に継続して受信した場合に、送信可能となるデータ量を求める。
【0178】
その際に、送信継続部94が求める送信可能なデータ量は、一例として以下である。即ち、例えばTCPにおける送信データの最大セグメントサイズが1500バイト(12000ビット)とし、送信側装置が受信側装置から1秒毎に、最大セグメントサイズのデータに対応するACKデータを受信する場合には、1秒あたりに12000ビットである。
【0179】
送信継続部94は、求めたそのデータ量に基づいて、送信継続部94の送信バッファに、送信バッファ95が送信する予定であったデータを引き取る。
【0180】
送信継続部94は、共用送受信部99の送信バッファに、送信バッファ95から引き取ったデータを書き込む。
【0181】
共用送受信部99は、送信継続部94から書き込まれたデータを受信側装置31へ送信する(ステップS174)。
【0182】
ここで、送信側送受信部92において、ステップS173で参照したACKデータの受信間隔が遅くなったとすると、送信側装置91は、この遅くなったACKデータの受信間隔に基づいた送信レートでデータの送信を継続する。
【0183】
そして、送信継続部94が上述した送信レートでデータを継続送信中に、中継装置100の送信バッファがそのバッファ量の、例えば半分を送信し終えている場合には、送信継続部94は、以下の処理を実行する。即ち、送信継続部94は、以降の送信継続部94から送信するデータの送信レートを、例えば上述した送信レートを半分に低減した送信レートに設定する。
【0184】
その後、中継装置100の送信バッファが、上述した残りのバッファ量のうち、さらにその半分を送信し終えている場合には、送信継続部94は、以下の処理を実行する。即ち、送信継続部94は、以降の送信継続部94から送信するデータの送信レートを、例えば、上述した送信レートのさらに半分に低減した送信レートに設定する。
【0185】
送信停止監視部93は、ステップS172において、送信バッファ95からのデータの送信が停止していないと判定した場合(ステップS172においてNO)、ステップS171に示す処理を実行する。
【0186】
なお、ステップ172において、送信側装置91は、送信バッファ95によるデータの送信の停止を確認し、送信継続部94によりデータを継続送信する場合に、以下に示す1)乃至7)の何れか、またはこれらを組み合わせた制御を行ってもよい。
【0187】
即ち、
1)送信継続部94がデータを継続送信する際のデータ量は、送信バッファ95が送信可能なデータ量を越えてもよい。
【0188】
2)送信継続部94がデータを継続送信する際の送信レートは、固定レートでもよいし、変動レートでもよく、変動レートの場合には、単位時間当たりの送信量が減少するように送信してもよい。
【0189】
3)送信継続部94がデータを継続送信する際の総送信量は、ネットワークにおける、下り方向のデータを中継する図5に図示する中継装置100等の送信バッファにおける既知のバッファ量か、またはその既知のバッファ量の実数倍のバッファ量を超えないように調整してもよい。
【0190】
4)3)項で説明したネットワークにおける、中継装置等の送信バッファの既知のバッファ量としては、過去に、通信環境の変動によりデータが喪失した際に用いられた送信量の制限値や、ウィンドウサイズを用いてもよい。
【0191】
なお、送信継続部94は、中継装置のバッファ量を、例えば、送信側装置91がネットワークを運用する際に予め通知される情報または、予めデータを大量に送信して推定する等により取得することができる。
【0192】
5)送信継続部94は、データを継続送信する際に、送信側装置91、またはネットワークにおける上り方向の受信データを中継する中継装置等で生成したダミーのACKデータを、送信側送受信部92で受信させるようにしてもよい。
【0193】
また、送信継続部94は、データを継続送信する際に、送信側装置91の内部処理としてACKデータを受信させたものとして処理をしてもよい。
【0194】
6)送信側装置91は、送信バッファ95における送信量の制限の範囲を緩和してもよい。
【0195】
7)送信側装置91は、上述した送信継続部94が、データをACKデータの受信レートに基づいて継続送信しているときに、通信環境の変動により上り方向が通信不可能な状態から通信可能な状態に復帰した場合、以下の処理を実行してもよい。即ち、送信側装置91は、受信側装置31から送信されたACKデータを受信した場合には、送信側装置91の後述する設定値および内部状態を示す各種の情報の全部または一部を変更してもよい。
【0196】
もしくは、送信側装置91は、送信側装置91の後述する設定値および内部状態を送信側装置91がACKデータを受信しなくなる前の状態に戻してもよい。
【0197】
上述した7)項に示す送信側装置91における設定値および内部状態は、例えばTCPであれば、一般に知られている輻輳ウィンドウ(cwnd)や、スロースタート閾値(slow_start_threshold;ssthresh)等の設定値およびスロースタートフェーズまたは輻輳回避フェーズ等の内部状態であり、送信量の制限や、その制限を調整する処理に係る各種の情報である。
【0198】
しかし、送信側装置91の設定値および内部状態を示す各種の情報は、上述した値および情報には限定されない。
【0199】
また、上述したステップS172において、送信停止監視部93は、送信バッファ95における送信済み且つACK待ちデータのサイズが送信量の制限の範囲に達する場合に、送信バッファ95がデータの送信を停止したと判断する例で説明した。
【0200】
しかし、送信停止監視部93は、上述した停止の判断条件以外で、以下に示すa)、b)またはc)の少なくとも何れかの条件を満たす場合に、送信バッファ95がデータの送信を停止したと判断するようにしてもよい。即ち、
a)送信バッファ95における送信済み且つACK待ちデータのサイズが送信量の制限の範囲に達する場合で、且つ、送信側装置91におけるデータの送信間隔が、RTT値に基づく閾値以上に遅延した場合。
【0201】
b)送信バッファ95における送信済み且つACK待ちデータのサイズが送信量の制限の範囲に達する場合で、且つ、送信側送受信部92におけるACKデータの受信間隔が所定の閾値以上になった場合。
【0202】
c)送信バッファ95における送信済み且つACK待ちデータのサイズが送信量の制限の範囲に達する場合で、且つ、送信側装置91におけるデータの送信間隔が、RTT値に基づく閾値以上に遅延し、且つ、送信側送受信部92におけるACKデータの受信間隔が所定の閾値以上になった場合。
【0203】
上述したRTT値に基づく閾値は、例えばRTT値の実数倍などの値が設定される。
【0204】
引き続き、図7に示す送信側装置91の処理の流れを説明する。
【0205】
送信停止監視部93は、ステップS172において、送信側装置91が、受信側装置31からのACKデータを受信できずに、送信バッファ95がデータの送信を停止していると判定した後、送信バッファ95からのデータの送信の停止が解除されたか否かを確認する(ステップS175)。
【0206】
送信停止監視部93は、ステップS175において、送信側装置91が受信側装置31からのACKデータを受信できないときに、送信バッファ95におけるデータの送信の停止が解除されていないと判定する(ステップS175において、NO)。
【0207】
つまり、送信停止監視部93は、送信済みで且つACK待ちのデータのサイズが、ウィンドウサイズ以上となり、ウィンドウに空きがない、「送信済み且つACK待ちデータのサイズ−ウィンドウサイズ≧0」の条件を満たす場合に、以下の処理を行う。即ち、送信停止監視部93は、送信量の制限の範囲に達しているので、送信バッファ95におけるデータの送信の停止が解除されていないと判定する。
【0208】
なお、上述した判定方法は、一例であり、上述した方法には限定されない。
【0209】
送信継続部94は、ステップS175においてNOの場合、上述したステップS174に示す、ACK受信レート継続送信処理を実行する。
【0210】
一方、送信停止監視部93は、ステップS175において、送信側装置91が受信側装置31からのACKデータを受信できたときに、送信バッファ95におけるデータの送信の停止が解除されたと判定する(ステップS175において、YES)。
【0211】
つまり、送信停止監視部93は、送信済みで且つACK待ちのデータのサイズが、ウィンドウサイズよりも小さく、ウィンドウに空きがある、「送信済み且つACK待ちデータのサイズ−ウィンドウサイズ<0」の条件を満たす場合に、以下の処理を行う。即ち、送信停止監視部93は、送信量の制限の範囲に達していないので送信バッファ95におけるデータの送信の停止が解除されたと判定する。
【0212】
なお、上述した判定方法は、一例であり、上述した方法には限定されない。
【0213】
送信バッファ95は、ステップS175においてYESの場合、上述したステップS171に示す、データを送信する処理を再開する。
【0214】
その際、送信継続部94は、送信継続部94の送信バッファによるデータの送信を停止する。
【0215】
以上、本実施形態には、第2の実施形態に記載した効果よりもさらに、ネットワークにかかる負荷を抑制できる効果がある。
【0216】
その理由は、送信側装置91が、ACK受信履歴保存部96に保存された受信間隔でACKデータを受信しているときに実際に送信可能となるデータ量のデータを、変動レートで送信するようにしたからである。
【0217】
<第4の実施形態>
次に、第4の実施形態について説明する。図6は、第4の実施形態を示すブロック図である。
【0218】
図6を参照すると、本実施形態における通信システム10は、送信側装置81と、送信側装置81と相互に通信可能なネットワークを介して接続された受信側装置41とを含む。
【0219】
送信側装置81は、以下の構成を含む。
【0220】
・受信側装置41へデータを送信すると共に、そのデータに対応する受信側装置41からの確認応答であるACKデータを受信する送信側送受信部82と、
・送信側送受信部82のデータの送信が停止しているか否かを確認する送信停止監視部83と、
・その送信停止監視部83により、送信側送受信部82のデータの送信が停止されたと判定した場合に、そのデータの送信を継続する送信継続部84。
【0221】
また、受信側装置41は、送信側装置81からのデータを受信すると共に、そのデータに対応するACKデータを、送信側装置81へ送信する受信側送受信部42を含む。
【0222】
以上、本実施形態には、データおよびACKデータを待つ時間分の遅延を抑制し、通信システムとしての通信効率を改善できる効果がある。
【0223】
その理由は、ACKデータを待つことなくデータを継続して送信するように送信側装置81に送信継続部84を設けたからである。
【0224】
(ハードウェア構成例)
上述した実施形態において図1図3図5に示した各部は、ソフトウェアプログラムの機能(処理)単位(ソフトウェアモジュール)と捉えることができる。但し、これらの図面に示した各部の区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。この場合のハードウェア環境の一例を、図8を参照して説明する。
【0225】
図8は、本発明の模範的な実施形態における送信側装置を実行可能な情報処理装置200(コンピュータ)の構成を例示的に説明する図である。即ち、図8は、図1図3図5に示した送信側装置11、71、91の各送信側装置の全体または一部の送信側装置を実現可能なサーバ端末等のコンピュータ(情報処理装置)の構成であって、上述した実施形態における各機能を実現可能なハードウェア環境を表す。図8中の矢印の向きは、一例を示すものであり、ブロック間の信号の向きを限定するものではない。
【0226】
図8に示した情報処理装置200は、CPU(Central_Processing_Unit)201と、入力部202と、出力部203と、外部装置との通信インタフェース205(Interface:以降、「通信I/F205」と略称する)とを含む。
【0227】
また、情報処理装置200は、ハードディスク206(不揮発性記憶装置)と、メモリ207と、CD−ROM(Compact_Disc_Read_Only_Memory)等の不揮発性記憶媒体209に格納されたデータを読み書き可能なリーダライタ208とを含み、これらの構成がバス204(通信線)を介して接続された一般的なコンピュータである。
【0228】
図1図3図5に示した送信側送受信部12、72、92は、例えば入力部202(送信側装置の送受信部の受信部)および出力部203(送信側装置の送受信部の送信部)である。
【0229】
そして、上述した実施形態を例に説明した本発明は、図8に示した情報処理装置200に対して、その実施形態の説明において参照したブロック構成図(図1図3図5)あるいはフローチャート(図2図4図6)の機能を実現可能なコンピュータ・プログラムを供給した後、そのコンピュータ・プログラムを、当該ハードウェアのCPU201に読み出して解釈し実行することによって達成される。
【0230】
また、当該装置内に供給されたコンピュータ・プログラムは、ハードディスク206等の不揮発性の記憶デバイスまたは読み書き可能な揮発性のメモリ207に格納すれば良い。
【0231】
また、前記の場合において、当該ハードウェア内へのコンピュータ・プログラムの供給方法は、CD−ROM等の各種不揮発性記憶媒体209を介して当該装置内にインストールする方法や、インターネット等の通信回線および通信I/F205を介して外部よりダウンロードする方法等のように、現在では一般的な手順を採用することができる。
【0232】
そして、このような場合において、本発明は、係るコンピュータ・プログラムを構成するコード或いは、そのコードが格納された不揮発性記憶媒体209によって構成されると捉えることができる。
【0233】
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【0234】
この出願は、2015年3月19日に出願された日本出願特願2015−055477を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【0235】
1 通信システム
10 通信システム
11 送信側装置
12 送信側送受信部
13 送信停止監視部
14 送信継続部
19 共用送受信部
20 送信バッファ
31 受信側装置
32 受信側送受信部
41 受信側装置
42 受信側送受信部
70 通信システム
71 送信側装置
72 送信側送受信部
73 送信停止監視部
74 送信継続部
76 ACK履歴保存部
79 共用送受信部
80 送信バッファ
81 送信側装置
82 送信側送受信部
83 送信停止監視部
84 送信継続部
90 通信システム
91 送信側装置
92 送信側送受信部
93 送信停止監視部
94 送信継続部
95 送信バッファ
96 ACK履歴保存部
99 共用送受信部
100 中継装置
200 情報処理装置
201 CPU
202 入力部
203 出力部
204 バス
205 通信インタフェース
206 ハードディスク
207 メモリ
208 リーダライタ
209 不揮発性記憶媒体
図1
図2
図3
図4
図5
図6
図7
図8
図9