(57)【要約】      （修正有）【課題】ユーザフィールド長列の自己相関関数値を小さくしつつデータリンクパケット当たりの総制御情報フィールド長を小さくすることができるパケット送信装置を提供する。【解決手段】自局内で発生したデータ単位（メッセージ）を相手端末に送信する際、そのメッセージの長さが自局が送信可能な長さ（ペイロード長）を超える場合、そのペイロード長に超えないようにメッセージを分割し、分割されたメッセージをユーザフィールドに設定し、その各ユーザフィールドに制御情報フィールドを付与したデータ（パケット）を送信するパケット送信装置において、ユーザフィールド長列の自己相関関数値を計測する手段と、制御情報フィールドにより生じるオーバヘッドを計測する手段と、所定の範囲で、自己相関関数値を小さくし、かつオーバヘッドを小さくするペイロード長を探索する探索手段とを備える。【選択図】図６
2011142433.tif 000002
【特許請求の範囲】
【請求項１】
自局内で発生したデータ単位（以下「メッセージ」という）を相手端末に送信する際、そのメッセージの長さが自局が送信可能な長さ（以下「ペイロード長」という）を超える場合、そのペイロード長に超えないようにメッセージを分割し、分割されたメッセージをユーザフィールドに設定し、その各ユーザフィールドに制御情報フィールドを付与したデータ（以下「パケット」という）を送信するパケット送信装置において、
ユーザフィールド長列の自己相関関数値を計測する手段と、
前記制御情報フィールドにより生じるオーバヘッドを計測する手段と、
所定の範囲で、前記自己相関関数値を小さくし、かつ前記オーバヘッドを小さくするペイロード長を探索する探索手段と
を備えたことを特徴とするパケット送信装置。
【請求項２】
請求項１に記載のパケット送信装置において、
前記探索手段は、前記自己相関関数値を小さくし、かつ前記ペイロード長と制御情報フィールド長の和に対しヘッダ長を小さくする構成である
ことを特徴とするパケット送信装置。
【請求項３】
請求項２に記載のパケット送信装置において、
前記探索手段は、前記制御情報フィールド長をｈ、前記自己相関関数値をρとして、所定期間でペイロード長ｘの目的関数Ｆ1 ＝ｈ／（ｘ＋ｈ）×ρを最小とするｘを求める構成である
ことを特徴とするパケット送信装置。
【請求項４】
請求項３に記載のパケット送信装置において、
前記探索手段は、
所定のペイロード長の区間 [ｘLow , ｘHigh] 内でｙLow ≦ｙHighとなるようにｙLow とｙHighを選択し、ペイロード長ｘがｙLow の時のＦ1 値（Ｆ1 Low ）とし、ペイロード長ｘがｙHighの時のＦ1 値（Ｆ1 High）とし、Ｆ1Low ＞Ｆ1Highのときに区間 [ｘLow , ｘHigh] を区間 [ｙLow , ｘHigh] に縮小し、Ｆ1Low ≦Ｆ1Highのときに区間 [ｘLow , ｘHigh] を区間 [ｘLow , ｙHigh] に縮小する手段と、
前記縮小された区間幅が決められた値より小さい場合、その端点もしくは中点を選択する手段と
を備えたことを特徴とするパケット送信装置。
【請求項５】
請求項１に記載のパケット送信装置において、
前記探索手段は、所定期間のユーザフィールド長の平均値と制御情報フィールド長の総和を測定し、前記自己相関関数値を小さくし、かつ前記ユーザフィールド長の平均値と前記制御情報フィールド長の和に対しヘッダ長を小さくする構成である
を備えたことを特徴とするパケット送信装置。
【請求項６】
請求項５に記載のパケット送信装置において、
前記探索手段は、前記制御情報フィールド長をｈ、前記所定期間のユーザフィールド長の平均値をｕ、前記自己相関関数値をρとして、前記所定期間でユーザフィールド長の平均値ｕの目的関数Ｆ2 ＝ｈ／（ｕ＋ｈ）×ρを最小とするｕを求める構成である
ことを特徴とするパケット送信装置。
【請求項７】
請求項６に記載のパケット送信装置において、
前記探索手段は、
所定のペイロード長の区間 [ｘLow , ｘHigh] 内でｙLow ≦ｙHighとなるようにｙLow とｙHighを選択し、ペイロード長ｘがｙLow の時のＦ2 値（Ｆ2 Low ）とし、ペイロード長ｘがｙHighの時のＦ2 値（Ｆ2 High）とし、Ｆ2Low ＞Ｆ2Highのときに区間 [ｘLow , ｘHigh] を区間 [ｙLow , ｘHigh] に縮小し、Ｆ2Low ≦Ｆ2Highのときに区間 [ｘLow , ｘHigh] を区間 [ｘLow , ｙHigh] に縮小する手段と、
前記縮小された区間幅が決められた値より小さい場合、その端点もしくは中点を選択する手段と
を備えたことを特徴とするパケット送信装置。
【請求項８】
請求項４または請求項７に記載のパケット送信装置において、
前記探索手段は、前記区間幅を毎回（−１＋√5)／２倍に縮小する
ことを特徴とするパケット送信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、送信端末のアプリケーションで生成されたデータ単位（以下「メッセージ」という）をネットワークを介して相手端末まで届ける際に、そのメッセージの長さが自局がネットワークを介して送信可能なデータ単位（以下「パケット」という）において運び得るデータ部分の長さ（以下「ペイロード長」という）を超える場合、その長さを超えないようにメッセージを分割してパケットを作成し、そのパケットを送信するパケット送信装置に関する。
【背景技術】
【０００２】
コンピュータネットワークでは、物理リンクで送信可能なデータ単位長に制限があることや国際標準との整合性などにより、ペイロード長の推奨値は決められている（非特許文献１）。例えば、代表的なＬＡＮ (local area network) であるイーサネットを使ってＴＣＰ（transmission control protocol)／ＩＰ(Internet protocol) （非特許文献１参照）のデータ単位を送信する際のペイロード長は、イーサネットのユーザフィールドを使って送信可能なデータの長さは1500バイトであるため、1500バイトからＴＣＰ／ＩＰの制御情報であるヘッダの長さ（通常40バイト）を引いた値となる。
【０００３】
図１は、コンピュータネットワークの構成例を示す。図１において、送信端末１と受信端末２は、中継装置３を介して通信網４と通信網５が接続されたネットワークを介して接続されている。送信端末１と受信端末２は、ＴＣＰとＩＰを実施している。送信端末１のＴＣＰ処理部ではメッセージを所定の長さに分割し、受信端末２のＴＣＰ処理部では分割されたメッセージを基のメッセージに組み立てる。
【０００４】
図２は、従来の送信端末の構成例を示す。図２において、送信端末は、送信側上位層処理部１０、送信側ＴＣＰ処理部２０、受信側ＴＣＰ処理部３０、ＴＣＰコネクション管理テーブル４０、送信側ＩＰ処理部５１、受信側ＩＰ処理部５２、パスＭＴＵ（maximum transmission unit ）探索部６０、送信側回線処理部７１、受信側回線処理部７２から構成される。なお、本構成例では、送信端末１から受信端末２への片方向のメッセージ転送を想定しているため、受信側上位層処理部は省略している。
【０００５】
送信側上位層処理部１０は、上位層送信処理部１１およびメッセージバッファ１２を備える。送信側ＴＣＰ処理部２０は、ウインドウフロー制御部２１、ＴＣＰパケット作成部２２、ペイロード長レジスタ２３、ペイロード長決定部２４を備える。なお、送信側ＴＣＰ処理部２０では廃棄されたＴＣＰパケットを再送する処理部もあるが、本発明とは関係しないため省略している。
【０００６】
ここでは、ＴＣＰを想定しているが、メッセージを所定の長さに分割する機能をもつプロトコル（例えば、ＩＰ（非特許文献１参照）、ＩＥＥＥ８０２．１１ＭＡＣプロトコル（非特許文献２参照））にも容易に適用できる。
【０００７】
図３は、送信端末１の各処理部で生成されるデータ単位を示す。
図３において、送信端末１の送信側上位層処理部１０で生成されるデータ単位をメッセージ３００とする。送信側上位層処理部１０は、例えば、ＷＷＷ（world wide web）、電子メール（非特許文献１参照）などの上位層送信処理部１１で実行されるアプリケーションで発生したメッセージ３００をメッセージバッファ１２に一時的に保存する。
【０００８】
送信側ＴＣＰ処理部２０は、メッセージバッファ１２に保存されているメッセージ３００をとりだし、メッセージ３００がペイロード長と呼ばれるユーザフィールドの最大長より大きい場合に、分割後のメッセージ長がペイロード長以下になるように分割メッセージ３０１，３０２に分割する。さらに、分割メッセージ３０１，３０２をそれぞれユーザフィールド３１１，３１２に格納し、ＴＣＰ処理に必要な制御情報を含むＴＣＰヘッダ３２１，３２２を付加してＴＣＰパケットを作成する。ＴＣＰパケットはＴＣＰ／ＩＰ用語でのセグメントに相当する（非特許文献１参照）。
【０００９】
送信側ＩＰ処理部５１は、ＴＣＰパケットにそれぞれＩＰ処理に必要な制御情報を含むＩＰヘッダ３３１，３３２を付加してＩＰパケットを作成する。ＩＰパケットは、ＴＣＰ／ＩＰ用語でのデータグラムに相当する（非特許文献１参照）。
【００１０】
送信側回線処理部７１は、ＩＰパケットにそれぞれ回線処理（データリンク処理）に必要な制御情報を含むデータリンクヘッダ３４１とデータリンクトレーラ３５１、データリンクヘッダ３４２とデータリンクトレーラ３５２を付加してデータリンクパケットを作成する。データリンクパケットは、ＴＣＰ／ＩＰ用語ではフレームと呼ぶ（非特許文献１参照）。
【００１１】
ＴＣＰコネクション管理テーブル４０は、送信端末１と送信端末２の間で設定されたＴＣＰコネクションの状態値を保持している。図４は、ＴＣＰコネクション管理テーブル４０の構成例を示す。
【００１２】
送信元ＩＰアドレスには、送信端末１のＩＰアドレスが設定される。
宛先ＩＰアドレスには、受信端末２のＩＰアドレスが設定される。
送信元ポート番号には、送信端末１内でＴＣＰコネクションを識別する番号が設定される。
宛先ポート番号には、受信端末２内でＴＣＰコネクションを識別する番号が設定される。
累積的送達確認順序番号(highACK) には、累積的に送達確認されたＴＣＰパケットにおいて最大の順序番号が設定される。
送信済順序番号(highDATA)には、今まで送信したＴＣＰパケットにおいて最大の順序番号が設定される。
輻輳ウインドウサイズ（cwnd) には、送信局が累積的に送達確認なしで送信できるバイト長が設定される。
ＭＳＳ（maximum segment size）長には、受信端末２が受信可能なＴＣＰパケットの最大長である。この値は、ＴＣＰヘッダオプションを使って受信端末２により通知されたＭＳＳ値が設定される。
パスＭＴＵ長には、送信端末１と受信端末２とを経由するパス上における最小のＭＴＵ長が設定される。
【００１３】
端末間で設定された各ＴＣＰコネクションは、図４に示す送信元ＩＰアドレス、宛先ＩＰアドレス、送信元ポート番号および受信端末から通知される宛先ポート番号からなるコネクション識別子によって識別される。このコネクション識別子により識別されるＴＣＰコネクションごとに、以下の処理が実施される。
【００１４】
送信側ＴＣＰ処理部２０のウインドウフロー制御部２１は、 highACK＋１から highACK＋ｗまでの値をもつバイト数までの送信を許可する。このウインドウサイズｗは、受信端末から通知される処理可能なバイト数（受信ウインドウサイズ）、もしくはネットワークでの輻輳発生を回避するための送信可能なバイト数（輻輳ウインドウサイズ）のうち、最小の値が割り当てられる。
【００１５】
ＴＣＰパケット作成部２２では、ウインドウフロー制御部２１でデータ送信を許可された場合、ペイロード長決定部２４に問い合わせる。ペイロード長決定部２４では、ＴＣＰコネクション管理テーブル４０のＭＳＳ長とパスＭＴＵ長を比較し、その小さい方の値をペイロード長レジスタ２３に書き込む。ＴＣＰパケット作成部２２では、以下の処理を行う。
【００１６】
(1) メッセージバッファ１２に蓄積されているメッセージ３００からペイロード長レジスター２３の値を超えないバイト数のデータを取り出し、そのデータをユーザフィールド３１１に設定する。
(2) コネクション管理テーブル４０の送信順序番号をユーザフィールド長分増加させる。
(3) コネクション管理テーブル４０の保持する送信順序番号に１を加えた値の順序番号情報と、送信元ポート番号で設定された送信元ポート番号情報を含むＴＣＰヘッダ３２１を作成する。
(4) ユーザフィールド３１１にＴＣＰヘッダ３２１を付加し、ＴＣＰパケットを作成する。
(5) ＴＣＰパケットを送信側ＩＰ処理部５１に引き渡す。
【００１７】
送信側ＩＰ処理部５１は、送信側ＴＣＰ処理部２０から受け取ったＴＣＰパケットに対してＩＰヘッダ３３１を付加してＩＰパケットを作成する。ＩＰヘッダには、コネクション管理テーブル４０の送信元ＩＰアドレスと宛先ＩＰアドレスの情報が含まれる。送信側ＩＰ処理部５１は、作成したＩＰパケットを送信側回線処理部７１に引き渡す。送信側回線処理部７１は、受け取ったＩＰパケットにデータリンクヘッダ３４１とデータリンクトレーラ３５１を付加し、データリンクパケットを作成する。送信側回線処理部７１は、そのデータリンクパケットを上り回線８１に出力する。
【００１８】
下り回線８２からデータリンクパケットを受信した受信側回線処理部７２は、データリンクヘッダとデータリンクトレーラの情報を使ってデータリンクパケットを処理し、データリンクヘッダとデータリンクトレーラを削除し、ＩＰパケットを生成する。そして、そのＩＰパケットを、受信側ＩＰ処理部５２に引き渡す。なお、本例では、送信端末１から受信端末２への片方向へのメッセージ転送を想定しているため、受信したＩＰパケットには、ユーザフィールドはなくＡＣＫ(acknowledgement) 情報をもっている。
【００１９】
そのＩＰパケットを受信した受信側ＩＰ処理部５２は、ＩＰヘッダの情報を使ってＩＰパケットの処理を行い、そのＩＰヘッダを削除し、ＡＣＫパケットを作成する。そして、ＡＣＫパケットを受信側ＴＣＰ処理部３０に引き渡す。
【００２０】
受信側ＴＣＰ処理部３０内のＡＣＫパケット処理部３１では、受信側ＩＰ処理部５２での出力パケットであるＡＣＫパケットを受信すると、そのＡＣＫパケット内で指示されている送達確認順序番号フィールド値（受信端末２で正しく受信したＴＣＰパケットの送信順序番号）をＴＣＰコネクション管理テーブル４０の状態値である累積的送達確認順序番号(highACK) にセットする。また、ウインドウサイズフィールド値をＴＣＰコネクション管理テーブル４０の状態値である輻輳ウインドウサイズ(cwnd)にセットする。
【００２１】
ＡＣＫパケット処理部３１では、送信側ＴＣＰ処理部２０に対してＡＣＫパケットの受信を通知する。送信側ＴＣＰ処理部２０では、この通知を受け、ウインドウフロー制御部２１でウインドウサイズの制御を行う。もし、空きウインドウがある場合は、前述したようにメッセージバッファ１２からデータを取り出し、ＴＣＰパケットを作成し、送信する。
【００２２】
ＭＳＳ取得部３２では、ＴＣＰヘッダ３２１内でＭＳＳオプションが指定されている場合、セグメントサイズフィールド値を取得し、その値をＴＣＰコネクション管理テーブル４０のＭＳＳ長に設定する。パスＭＴＵ検出部６０では、送信端末１がパスＭＴＵ発見機能（非特許文献３参照）をサポートしている場合、その機能により検出された値をＴＣＰコネクション管理テーブル４０のパスＭＴＵ長に設定する。
【先行技術文献】
【非特許文献】
【００２３】
【非特許文献１】S. Tanenbaum, Computer Networks, 3rd ed. Englewood Cliffs, Prentice-Hall, pp.406-409, 1996.
【非特許文献２】B. P. Crow, I. Wigjaja, L. G. Kim, and P. T. Sakai, IEEE 802.11 Wireless Local Area Networks,IEEE Communication Magazine, Vol.35, No.9, pp.116-126, 1997.
【非特許文献３】Mogul, J. and S. Deering, "Path MTU discovery", RFC1191, November 1990.
【非特許文献４】高橋幸雄、確率論 (基礎数理講座) 、朝倉書店、2008.
【非特許文献５】池川  隆司、宮本  裕美子、高橋  幸雄、メッセージ分割が発生する場合のパケット長列の自己相関関数解析、2009年電子情報通信学会総合大会、B-7-58、2009年３月
【非特許文献６】A. Erramilli, O. Narayan, W. Willinger,;“Experimental queueing analysis with long-range dependent packet traffic ”, IEEE/ACM Transactions on Networking, vol.4, no.2, pp.209-223, 1996.
【非特許文献７】M.S.Bazaraa, C.M. Shetty, “Nonlinear Programming: Theory and Algorithm ”, John Wiley & Sons, 1979.
【発明の概要】
【発明が解決しようとする課題】
【００２４】
送信端末１が生成したＴＣＰパケットのユーザフィールド長列を｛Xi｝とする。Xiはｉ番目に生成されたユーザフィールド長である。このユーザフィールド長列のラグｎの自己相関関数ρ(n) をCov[Xi , Xi+n]/σ2 と定義する。ここで、Cov[Xi , Xi+n] は、Xi とXi+n との共分散であり、σ2 はパケット長の分散である。なお、共分散と分散の定義は、例えば非特許文献４にある。
【００２５】
ユーザフィールド長列の自己相関関数ρ(n) は、メッセージ長の分布とペイロード長に依存する。ペイロード長を大きくするとユーザフィールド長列の自己相関関数値が大きくなり、一方、ペイロード長を十分小さくするとユーザフィールド長列の自己相関関数値は小さくなることが知られている（非特許文献５）。
【００２６】
一般にパケット到着時間間隔などの自己相関関数値が大きい入力トラヒックをもつ通信システムの待ち時間が多いことが知られている（非特許文献６）。したがって、ユーザフィールド長列においても、その自己相関関数値を小さくすることが望ましい。
【００２７】
一方、送信端末１が送信したヘッダやトレーラのような制御情報フィールドの総長は、送信したデータリンクパケット数に比例する。よって、ペイロード長を小さくすると、データリンクパケット長あたりの総制御情報フィールド長は増加し実効的なスループットが減少する問題点がある。
【００２８】
本発明は、ユーザフィールド長列の自己相関関数値を小さくしつつデータリンクパケット当たりの総制御情報フィールド長を小さくすることができるパケット送信装置を提供することを目的とする。
【課題を解決するための手段】
【００２９】
前述の課題を解決するために、ユーザフィールド長列の自己相関関数値を小さくしつつデータリンクパケット当たりの総制御情報フィールド長を小さくする手段を用意する。
【００３０】
具体的には、次の制約条件
ｌmin ≦ｘ≦ｌmax     …(1) 
のもとで目的関数を用意して、それを最小化するペイロード長ｘopt を求める手法が有用である。
【００３１】
ここで、ｘはパラメータであるペイロード長であり、ｌmin とｌmax は、それぞれペイロード長の最小値と最大値である。例えば、ｌmin はイーサネットの最小ペイロード長である46バイトとし、ｌmax を min｛ＭＳＳ, パスＭＴＵ長｝とすればよい。
【００３２】
目的関数として、様々な関数が考えられる。例えば、
Ｆ1 ＝ｈ／（ｘ＋ｈ）×ρ  …(2) 
とする。ここで、ｈはひとつのデータリンクパケット当たりの制御情報フィールド長、ρはある決められた期間で測定されたユーザフィールド長列の自己相関関数値である（以下、ラグｎは省略する）。
【００３３】
他に、次のような目的関数Ｆ2 も考えられる。
Ｆ2 ＝ｈ／（ｕ＋ｈ）×ρ  …(3) 
ここで、ｕはある決められた期間で測定されたユーザフィールド長列の平均値である。
【００３４】
(2)式のｈ／（ｘ＋ｈ）と (3)式のｈ／（ｕ＋ｈ）はｘに対して単調減少であり、ρは実用的な範囲では単調増加（非特許文献５参照）であるため、Ｆ1 とＦ2 はｘに対して下に凸となる。
【００３５】
一般に、ある制約条件を満たす変数の組のなかで目的関数の値を最小にする変数の値を求める問題を「数理計画問題」という（非特許文献７参照）。変数が１つの場合において目的関数の値を最小にする変数の値を探索する手法を「一次元探索手法」と呼ぶ。本発明では、目的関数Ｆ1 のペイロード長ｘに対する微分値ならびに目的関数Ｆ2 の平均ユーザフィールド長ｕに対する微分値を求めるのが困難であるため、微分値を用いずに効率的に最適なペイロード長値を探索できる黄金分割法をとりあげる（非特許文献７参照）。次に、その黄金分割法を使った最適ペイロード長ｘopt を探索する手法について説明する。
【００３６】
図５は、黄金分割法により使われるパラメータの例を示す。
黄金分割法とは、目標関数Ｆを最小にするペイロード長であるｘopt を含む区間
[ｘiLow , ｘiHigh] を一定比τ（＝（−１＋√5)／２）と呼ばれる比率で内分する点であるｙiLow とｙiHighを求め、縮小された区間 [ｙiLow , ｘiHigh] の幅が十分小さくなるまで繰り返す方式である。つまり、
（ｙiLow−ｘiLow ) ：（ｘiHigh−ｙiLow) ＝（１−τ）：τ
（ｘiHigh−ｙiHigh) ：（ｙiHigh−ｘiLow) ＝（１−τ）：τ
を満たすようにｙiLow とｙiHighを選択する。ここで、添え字ｉはｉ番目ステップを意味する。
【００３７】
ペイロード長をｙiLowとする時の目標関数Ｆ値をＦLowと表し、ペイロード長がｙiHighの時の目標関数Ｆ値をＦHighと表す。ＦLow＞ＦHighの時、区間 [ｘiLow, ｘiHigh] を区間 [ｙiLow, ｘiHigh] に縮小する。一方、ＦLow≦ＦHighの時、区間 [ｘiLow, ｘiHigh]を区間 [ｘiLow , ｙiHigh] に縮小する。もし、縮小された区間幅が十分小さい値ε（例えば10バイト）以下のとき、繰り返し処理を終了し、目標関数Ｆを最小にするペイロード長であるｘopt をｘiHighとする。なお、ｘopt を中点（ｘiLow＋ｘiHigh) ／２もしくはｘiLow にしてもよい。
【００３８】
なお、ペイロード長の最小値と最大値をそれぞれｌmin とｌmax と表記すると初期区間は [ｌmin ，ｌmax ] である。
【００３９】
上記のアルゴリズムにおける初期化処理、反復処理、終了処理の各パラメータは次の通りである。
【００４０】
＜初期化処理＞
(1) ｉ← 0
(2) τ←（−１＋√5)／２
(3) ｘ0Low ←ｌmin 
(4) ｘ0High←ｌmax 
(5) ｗ←ｘ0High−ｘ0Low 
(6) ｙ0Low ←ｘ0High−τｗ
(7) ｙ0High←ｘ0Low ＋τｗ
(8) ε←十分小さな値（例：10バイト）
【００４１】
＜反復処理＞
｜ｘiHigh−ｘiLow｜＜εになるまで以下の処理を行う。
(1) ペイロード長がｙi Low の時のユーザフィールド長列の自己相関関数値ρLow を求め、そのときの目標関数Ｆ値をＦLow とする。
(2) ペイロード長がｙi Highの時のユーザフィールド長列の自己相関関数値ρHighを求め、そのときの目標関数Ｆ値をＦHighとする。
(3) ＦLow ＞ＦHighの時、以下の処理を行う。
ｘi+1Low ←ｙiLow 
ｗ←ｘiHigh−ｘi+1Low 
ｘi+1High←ｙiHigh
ｙi+1Low ←ｙiHigh
ｙi+1High←ｘi+1Low ＋τｗ
(4) ＦLow ≦ＦHighの時、以下の処理を行う。
ｘi+1High←ｙiHigh
ｘi+1Low ←ｘiLow 
ｗ←ｘi+1High−ｘiLow 
ｙi+1High←ｙiLow 
ｙi+1Low ←ｘi+1High−τｗ
【００４２】
＜終了処理＞
ｘopt ←ｘiHigh
【発明の効果】
【００４３】
本発明は、ユーザフィールド長列の自己相関関数値を小さくしつつデータリンクパケット当たりの総制御情報フィールド長を小さくすることにより、通信システムでの待ち時間を小さくするとともに実効的なスループットを大きくすることができる。
【図面の簡単な説明】
【００４４】
【図１】コンピュータネットワークの構成例を示す図である。
【図２】従来の送信端末の構成例を示す図である。
【図３】送信端末の各処理で生成されるデータ単位を示す図である。
【図４】ＴＣＰコネクション管理テーブル４０の構成例を示す図である。
【図５】黄金分割法による最適値探索手順の例を説明する図である。
【図６】本発明の実施例１の送信端末の構成例を示す図である。
【図７】ユーザフィールド長列テーブル１０１２の構成例を示す図である。
【図８】実施例１の黄金分割法パラメータテーブル１０１４の構成例を示す図である。
【図９】ヘッダ・トレーラ長テーブル１０１５の構成例を示す図である。
【図１０】本発明の実施例２の送信端末の構成例を示す図である。
【図１１】実施例２の黄金分割法パラメータテーブル２０１４の構成例を示す図である。
【発明を実施するための形態】
【実施例１】
【００４５】
図６は、本発明の実施例１の送信端末の構成例を示す。上り回線８１は、イーサネットを仮定する。実施例１は、目的関数を (2)式にした場合の例である。
本実施例では、従来の装置のＴＣＰパケット作成部２２を１０２２に、送信側ＩＰ処理部５１を１０５１に、送信側回線処理部７１を１０７１に置き換え、新たに、ユーザフィールド長列自己相関値計算部１００３、制御情報フィールド長計算部１００４、動的ペイロード長計算部１００５、観測タイマ１００６、次データパケット番号レジスタ１０１１、ユーザフィールド長列テーブル１０１２、自己相関値レジスタ１０１３、黄金分割法パラメータテーブル１０１４、ヘッダ・トレーラ長テーブル１０１５、制御情報フィールド長レジスタ１０１６を設ける。
【００４６】
図７は、ユーザフィールド長列テーブル１０１２の構成例を示す。
ユーザフィールド長列テーブル１０１２は、ＴＣＰパケット番号とユーザフィールド長の要素から構成される。要素数は max＋ｎとしている。ここでｎはラグを意味し、以下ｎを５とする。ｉ番目ＴＣＰパケットのユーザフィールド長をｘi とする。
【００４７】
図８は、実施例１の黄金分割法パラメータテーブル１０１４の構成例を示す。
黄金分割法パラメータテーブル１０１４は、黄金分割法により最適ペイロード長を求める際に用いるパラメータであり、自己相関関数種別，ｘLow，ｘHigh，ｗ，ｙLow，ｙHigh，ρLow ，ρHigh，ＦLow ，ＦHigh，τ，εから構成される。
【００４８】
図９は、ヘッダ・トレーラ長テーブル１０１５の構成例を示す。
ヘッダ・トレーラ長テーブル１０１５は、ＴＣＰヘッダ長，ＩＰヘッダ長，データリンクヘッダ長，データリンクトレーラ長から構成される。
【００４９】
＜実施例１における送信端末起動時の処理＞
(1) ＴＣＰパケット作成部１０２２は、ヘッダ・トレーラ長テーブル１０１５のＴＣＰヘッダ長に共通に用いられる値である20バイトを設定する。
(2) 送信側ＩＰ処理部１０５１は、ヘッダ・トレーラ長テーブル１０１５のＩＰヘッダ長に共通に用いられる値である20バイトを設定する。
(3) 送信側回線処理部１０７１は、ヘッダ・トレーラ長テーブル１０１５のデータリンクヘッダ長にイーサネットのヘッダ長である15バイトを設定し、データリンクトレーラ長にイーサネットのトレーラ長である４バイトを設定する。
(4) 制御情報フィールド長計算部１００４は、ヘッダ・トレーラ長テーブル１０１５内のＴＣＰヘッダ長の値と、ＩＰヘッダ長の値と、データリンクヘッダ長の値と、データリンクトレーラ長の値の総和を計算し、その値を制御情報フィールド長レジスタ１０１６に書き込む。
(5) 次データパケット番号レジスタ１０１１を１に設定する。
(6) 黄金分割パラメータテーブル１０１５の要素を次のように設定する。
(a)τに（−１＋√5)／２を設定する。
(b)εを10バイトとする。
(c)自己相関関数種別をＬＯＷとする。
(d)ｘLow にペイロード長の最小値46バイト（イーサネットでの最小ペイロード長）        を設定する。
(e)ｘHighに、ＴＣＰコネクション管理テーブル４０のＭＳＳ長とパスＭＴＵ長のう        ちの最小値を設定する。
(f)ｗに、ｘHigh−ｘLow の値を設定する。
(g)ｙLow にｘHigh−τ×ｗの値を設定する。
(h)ｙHighにｘLow ＋τ×ｗの値を設定する。
(i)ρLow をＮＵＬＬ値とする。
(g)ρHighをＮＵＬＬ値とする。
(h)ＦLow をＮＵＬＬ値とする。
(i)ＦHighをＮＵＬＬ値とする。
(7) ペイロード長レジスタ２３にｙLow の値を設定する。
(8) 観測タイマ１００６を起動する。観測タイマ１００６では一定間隔（例えば60秒間隔）でタイムアウトする。
【００５０】
＜実施例１におけるＴＣＰパケット作成部１０２２の処理＞
(1) ＴＣＰパケットを生成するごとに、ユーザフィールド長列テーブル１０１２において、次データパケット番号レジスタ１０１１の値と等しいＴＣＰパケット番号を要素とするユーザフィールド長の値に、生成されたＴＣＰパケットのユーザフィールド長を設定する。
(2) 次データパケット番号レジスタ１０１１を１つ増加させる。
【００５１】
＜実施例１における観測タイマのタイムアウト後の処理＞
(1) ユーザフィールド長列自己相関値計算部１００３に、自己相関値の計算を指示する。ユーザフィールド長列自己相関値計算部１００３では、以下の処理を行う。
(a) 次の式に従い平均ユーザフィールド長Ｅu を計算する。
Ｅu ＝Σi=lmax Ｘi／max 
(b) 次の式に従いユーザフィールド長列の不偏分散σ’u2 を計算する。なお、ここ        は、母分散の不偏推定量である不偏分散を用いている。
σ’u2 ＝Σi=lmax (Ｘi−Ｅu)2／(max−１) 
(c) 次の式に従いユーザフィールド長列Ｘi とＸi+5 との不変共分散 Cov'[Ｘi ，          Ｘi+5 ] を計算する。ここではラグｎを５とする。また、共分散の不偏推定量で        ある不偏共分散を用いている。
Cov'[Ｘi ，Ｘi+5 ] ＝Σi=lmax2（Ｘi+5−Ｅu)(Ｘi−Ｅu)／(max−１) 
(d) 次の式に従いユーザフィールド長列の自己相関関数値を計算する。
ρ＝ Cov'[Ｘi ，Ｘi+5]／σ’u2 
(e) ρの値を自己相関値レジスタ１０１３に書き込む。
(2) 動的ペイロード長計算部１００５にペイロード長計算処理を依頼する。
【００５２】
＜実施例１における最適ペイロード長探索処理＞
｜ｘHigh−ｘLow ｜＜εになるまで、動的ペイロード長計算部１００５では、自己相関関数種別の値に応じて以下の処理を行う。
【００５３】
Ａ．自己相関関数種別がＬＯＷの時
(1) ρLow に自己相関値レジスタ１０１３の値を設定する。
(2) 制御情報フィールド長レジスタ１０１６の値をｈ、ｙLow の値をｘ、ρLow の値をρとして、ｈ／(ｘ＋ｈ)×ρを求め、ＦLow にその値を設定する。
(3) ペイロード長レジスタ２３にｙHighの値を設定する。
(4) 自己相関関数種別にＨＩＧＨを設定する。
(5) 観測タイマ１００６を再スタートする。
(6) 次データパケット番号レジスタ１０１１を１に設定する。
【００５４】
Ｂ．自己相関関数種別がＨＩＧＨの時
(1) ρHighに自己相関値レジスタ１０１３の値を設定する。
(2) 制御情報フィールド長レジスタ１０１６の値をｈ、ｙHighの値をｘ、ρHighの値をρとして、ｈ／(ｘ＋ｈ)×ρを求め、ＦHighにその値を設定する。
(3) ＦLow ＞ＦHighの時、以下の処理を行う。
ｘLow ←ｙLow 
ｗ←ｘHigh−ｘLow 
ｙLow ←ｙHigh
ｙHigh←ｘLow ＋τ×ｗ
(4) ＦLow ≦ＦHighの時、以下の処理を行う。
ｘHigh←ｙHigh
ｗ←ｘHigh−ｘLow 
ｙHigh←ｙLow 
ｙLow ←ｘHigh−τ×ｗ
(5) 自己相関関数種別にＬＯＷを設定する。
(6) 観測タイマ１００６を再スタートする。
(7) 次データパケット番号レジスタ１０１１を１に設定する。
｜ｘHigh−ｘLow ｜≧εになったとき、観測タイマ１００６を停止する。
【実施例２】
【００５５】
図１０は、本発明の実施例２の送信端末の構成例を示す。上り回線８１は、イーサネットを仮定する。実施例２は、目的関数を (3)式にした場合の例である。
【００５６】
本実施例では、実施例１の動的ペイロード長計算部１００５を２００５に置き換え、黄金分割法パラメータテーブル１０１４を２０１４に置き換え、新たに、平均ユーザフィールド計算部２０１１と平均ユーザフィールド長レジスタ２０１２を追加する。
【００５７】
図１１は、実施例２の黄金分割法パラメータテーブル２０１４の構成例を示す。図８に示す実施例１の黄金分割法パラメータテーブル１０１４に新たに、ｕLow ，ｕHighを追加している。
【００５８】
実施例２における送信端末起動時の処理は、実施例１における送信端末起動時の処理の(6) の (a)〜(i) に以下の処理を追加する。
(j) ｕLow をＮＵＬＬ値とする。
(k) ｕHighをＮＵＬＬ値とする。
【００５９】
実施例２における観測タイマのタイムアウト後の処理は、実施例１における観測タイマのタイムアウト後の処理の(2) に以下の処理を追加する。
(3) 平均ユーザフィールド長計算部２０１１に、平均ユーザフィールド長の計算を依頼する。平均ユーザフィールド長計算部２０１１では、以下の処理を行う。
(a) 次の式に従い平均ユーザフィールド長Ｅu を計算する。
Ｅu ＝Σi=lmax Ｘi／max 
(b) Ｅu の値を平均ユーザフィールド長レジスタ２０１２に書き込む。
【００６０】
＜実施例２における最適ペイロード長探索処理＞
｜ｘHigh−ｘLow ｜＜εになるまで、動的ペイロード長計算部１００５では、自己相関関数種別の値に応じて以下の処理を行う。
【００６１】
Ａ．自己相関関数種別がＬＯＷの時
(1) ρLow に自己相関値レジスタ１０１３の値を設定する。
(2) ｕLow に平均ユーザフィールド長レジスタ２０１２の値を設定する。
(3) 制御情報フィールド長レジスタ１０１６の値をｈ、ｕLow の値をｕ、ρLow の値をρとして、ｈ／(ｕ＋ｈ)×ρを求め、ＦLow にその値を設定する。
(4) ペイロード長レジスタ２３にｙHighの値を設定する。
(5) 自己相関関数種別にＨＩＧＨを設定する。
(6) 観測タイマ１００６を再スタートする。
(7) 次データパケット番号レジスタ１０１１を１に設定する。
【００６２】
Ｂ．自己相関関数種別がＨＩＧＨの時
(1) ρHighに自己相関値レジスタ１０１３の値を設定する。
(2) ｕHighに平均ユーザフィールド長レジスタ２０１２の値を設定する。
(3) 制御情報フィールド長レジスタ１０１６の値をｈ、ｕHighの値をｕ、ρHighの値をρとして、ｈ／(ｕ＋ｈ)×ρを求め、ＦHighにその値を設定する。
(4) ＦLow ≧ＦHighの時、以下の処理を行う。
ｘLow ←ｙLow 
ｗ←ｘHigh−ｘLow 
ｙLow ←ｙHigh
ｙHigh←ｘLow ＋τ×ｗ
(5) ＦLow ＜ＦHighの時、以下の処理を行う。
ｘHigh←ｙHigh
ｗ←ｘHigh−ｘLow 
ｙHigh←ｙLow 
ｙLow ←ｘHigh−τ×ｗ
(6) 自己相関関数種別にＬＯＷを設定する。
(7) 観測タイマ１００６を再スタートする。
(8) 次データパケット番号レジスタ１０１１を１に設定する。
｜ｘHigh−ｘLow ｜≧εになったとき、観測タイマ１００６を停止する。
【符号の説明】
【００６３】
１  送信端末
２  受信端末
３  中継装置
４，５  通信網
１０  送信側上位層処理部
１１  上位層送信処理部
１２  メッセージバッファ
２０  送信側ＴＣＰ処理部
２１  ウインドウフロー制御部
２２，１０２２  ＴＣＰパケット作成部
２３  ペイロード長レジスタ
２４  ペイロード長決定部
３０  受信側ＴＣＰ処理部
３１  ＡＣＫパケット処理部
３２  ＭＳＳ取得部
４０  ＴＣＰコネクション管理テーブル
５１，１０５１  送信側ＩＰ処理部
５２  受信側ＩＰ処理部
６０  パスＭＴＵ探索部
７１，１０７１  送信側回線処理部
７２  受信側回線処理部
８１  上り回線
８２  下り回線
１００３  ユーザフィールド長列自己相関値計算部
１００４  制御情報フィールド長計算部
１００５，２００５  動的ペイロード長計算部
１００６  観測タイマ
１０１１  次データパケット番号レジスタ
１０１２  ユーザフィールド長列テーブル
１０１３  自己相関値レジスタ
１０１４，２０１４  黄金分割法パラメータテーブル
１０１５  ヘッダ・トレーラ長テーブル
１０１６  制御情報フィールド長レジスタ
２０１１  平均ユーザフィールド長計算部
２０１２  平均ユーザフィールド長レジスタ
【図１】
2011142433.tif 000003
【図２】
2011142433.tif 000004
【図３】
2011142433.tif 000005
【図４】
2011142433.tif 000006
【図５】
2011142433.tif 000007
【図６】
2011142433.tif 000008
【図７】
2011142433.tif 000009
【図８】
2011142433.tif 000010
【図９】
2011142433.tif 000011
【図１０】
2011142433.tif 000012
【図１１】
2011142433.tif 000013