本発明は、半二重伝送路によるTCPプロトコル(Transmission Control Protocol)を利用した通信を行う通信端末および通信方法に関する。
電子ファイル、コンテンツ等の転送を行うための転送プロトコルとして、TCPプロトコルが広く利用されている。TCPプロトコルでは、ネットワークのTCP層において、送信側端末が、送信した送信単位であるTCPセグメントデータ(以下、TCP−DATAとする)が受信側端末に正常に到達した場合に、TCPプロトコルとしての送達確認応答(TCPアクノレッジメント(Acknowledgement)、以下、TCP−ACKとする)が受信側端末から送信側端末へ返されることで信頼性を確保している。
また、TCPプロトコルでは次のように通信の効率化を図っている。送信側端末では、ウィンドウ制御によりTCP−ACKを受信しなくとも、連続的にTCP−DATAの送信を行う。受信側端末では、遅延確認応答(Delayed Ack)という手法を用いる。一般的には、受信側端末は、最大長のTCP−DATAを2セグメント受信するとTCP−ACKを送信するように実装されている(例えば、非特許文献1参照)。
また、データ通信手段として無線LANシステムが、その利便性等から広く普及している。図14は、無線LANを用いた場合のデータ通信システムの一例を示す。無線LANを用いた端末(無線LAN端末)1501は、無線LANアクセスポイント1502との通信が可能な無線LAN通信エリア1504に位置し、無線LANアクセスポイント1502を介し、通信ネットワーク1505に接続される。
また、無線LANアクセスポイント1502は、一般的に、Ethernet(登録商標)、光ファイバなどの優先メディアにて通信ネットワーク1505に接続される。通信ネットワーク1505は、例えば、インターネット、イントラネット、宅内ネットワーク、通信事業者が管理する公衆インフラ網、などが挙げられる。また、通信ネットワーク1505には、通信相手端末1503が接続されており、無線LAN端末1501と通信相手端末1503とは、通信ネットワーク1505を介してTCPプロトコルによるデータ通信が可能となる。
広く一般的に利用されている無線LANシステムは、IEEE802.11にて規定されている方式である。また、MAC層にて実現するアクセスアルゴリズムは、CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)方式をベースとしている(例えば、非特許文献2参照)。CSMA/CA方式では、データを送信しようとする端末は、通信メディア(この場合、無線メディア)が使用されているか否かを判断するキャリアセンスを行う。
キャリアセンスの結果、通信メディアが一定期間使用されていないこと(キャリアフリー)が確認できて初めてデータの送信権を獲得する。キャリアセンス中に、他の端末からの送信を検出すると、キャリアフリーを検出するまで自身の送信は遅延される。(例えば、非特許文献2参照)。
高橋浩和 他著、「Linuxカーネル2.6解読室」、ソフトバンククリエイティブ、2006年11月30日(P433)
IEEE Std802.11−2007、Part11:Wireless LAN Medium Access Control(MAC) and Physical Layer (PHY) Specifications、2007年6月12日(P261−P267)
ここで、無線LANのようにCSMA/CA方式によるメディアアクセスを行う場合、通信量が多い、あるいはバースト的にデータ転送が行われている状況を想定する。このような状況においては、自通信端末にて生成したTCP−ACKを送信するためにMAC層にて送信権獲得試行中に、接続先の無線LANアクセスポイントから更なるTCPセグメントデータを受信する。
この場合、自通信端末は、TCP−ACKの送信を待機し、TCPセグメントデータの受信処理後、再度、待機中のTCP−ACKの送信権獲得試行を実施し、送信権獲得後、TCP−ACKを通信メディアに出力し、送信処理が終了する。
図15は、このようなバースト的にデータ転送が行われている場合の送信側端末と、受信側端末との間のデータ転送動作の一例を示すシーケンス図である。図15では、図14の通信相手端末1503を送信側端末、無線LAN端末(自通信端末)1501を受信側端末とした場合を示している。前述のように、TCPセグメントデータ送信側の通信相手端末1503から無線LANアクセスポイント1502までは、一般的にEthernet(登録商標)等の有線ネットワークで接続され、一般的に無線LANよりも伝送能力が高い。
図示例では、通信相手端末1503(送信側端末)からバースト的にTCP−DATA#1〜TCP−DATA#8が送信されている。無線LAN端末1501(受信側端末)では、TCP−DATA#2、TCP−DATA#4、TCP−DATA#6、TCP−DATA#8を受信した時点にてそれぞれTCP−ACKを生成している。ここで、送信側端末から無線LANアクセスポイント1502を介してバースト的に受信側端末にTCP−DATAが送られているため、受信側端末は通信メディアの送信権を獲得することができず、TCP−ACKの送信が遅延させられる。
TCP−DATA#1およびTCP−DATA#2に対する確認応答であるTCP−ACKを送信する際には、既に新たなTCPセグメントデータを正常に受信しているにもかかわらず、それぞれのTCP−ACKを順次送信する。したがって、既に新たなTCPセグメントデータを受信しているにもかかわらず、TCP−ACKが分割して、TCP−DATAの送信側端末に送られてしまうことになる。これにより、従来の方法では、システムのスループットの低下、通信端末の消費電力の増大等を招くという課題を有していた。
本発明は、上記事情に鑑みてなされたもので、その目的は、TCP通信時におけるTCP確認応答セグメント(TCP−ACK)の分割送信を抑制し、効率的に確認応答を行うことが可能な通信端末および通信方法を提供することにある。
本発明は、少なくとも一つ以上の通信端末とTCPプロトコルを利用した通信を行う通信端末であって、自通信端末のメディアアクセス制御処理部にTCP確認応答セグメントを含む送信データが到着してから通信メディアに送信するまでに送信待機する頻度を推定する送信待機頻度推定部と、前記推定した送信待機頻度情報に基づき、前記TCP確認応答セグメントの生成頻度を変更するTCP確認応答生成制御部と、を有し、前記TCP確認応答生成制御部は、前記送信待機頻度推定部において送信待機頻度が所定値より高いと推定した場合に、前記TCP確認応答セグメントの生成頻度を下げる制御を行う通信端末を提供する。
本構成によって、TCP確認応答セグメント(TCP−ACK)の送信待機が発生しやすい環境、すなわち、送信データの滞留頻度が高く、直ちに送信権を得ることが困難な状況では、TCP−ACKの生成タイミングを遅らせることにより、一つのTCP−ACKによってより多くのTCPセグメントデータの受信確認を送信側に通知することが可能となる。このため、TCP通信時におけるTCP−ACKの分割送信を抑制し、効率的に確認応答を行うことが可能になる。
また、本発明は、少なくとも一つ以上の通信端末とTCPプロトコルを利用した通信を行う通信端末における通信方法であって、自通信端末のメディアアクセス制御処理部にTCP確認応答セグメントを含む送信データが到着してから通信メディアに送信するまでに送信待機する頻度を推定するステップと、前記推定した送信待機頻度情報に基づき、送信待機頻度が所定値より高いと推定した場合に、前記TCP確認応答セグメントの生成頻度を下げるように、前記TCP確認応答セグメントの生成頻度を変更するステップと、を有する通信方法を提供する。
本構成によって、TCP確認応答セグメント(TCP−ACK)の送信待機が発生しやすい環境、すなわち、送信データの滞留頻度が高く、直ちに送信権を得ることが困難な状況では、TCP−ACKの生成タイミングを遅らせることにより、一つのTCP−ACKによってより多くのTCPセグメントデータの受信確認を送信側に通知することが可能となる。このため、TCP通信時におけるTCP−ACKの分割送信を抑制し、効率的に確認応答を行うことが可能になる。
本発明によれば、TCP通信時におけるTCP確認応答セグメント(TCP−ACK)の分割送信を抑制し、効率的に確認応答を行うことが可能な通信端末および通信方法を提供できる。
本発明の実施の形態1における通信端末の構成を示すブロック図
実施の形態1における送信待機頻度推定部の構成を示すブロック図
実施の形態1におけるTCP−ACKの生成タイミングを変更する処理フローを示す図
実施の形態1における滞留予測情報を算出する処理フローを示す図
実施の形態1における送信側端末と受信側端末との間のデータ転送動作の一例を示すシーケンス図
実施の形態2における送信待機頻度推定部の構成を示すブロック図
実施の形態2における滞留予測情報を算出する処理フローを示す図
実施の形態3における送信待機頻度推定部の構成を示すブロック図
実施の形態3における滞留予測情報を算出する処理フローを示す図
実施の形態4における通信端末の構成を示すブロック図
実施の形態4における送信データの格納処理フローを示す図
実施の形態4における送信データの送信処理フローを示す図
実施の形態4における送信側端末と受信側端末との間のデータ転送動作の一例を示すシーケンス図
無線LANを用いたデータ通信システムの一例を示す図
バースト的にデータ転送が行われている場合の送信側端末と受信側端末との間のデータ転送動作の一例を示すシーケンス図
以下、本発明の実施の形態について、図面を参照しながら説明する。
本実施形態では、半二重伝送路による通信を行う通信端末および通信方法の一例として、無線LANシステムにおける構成例を示す。ここでは、無線LAN端末に適用した通信装置である通信端末を想定し、無線LANアクセスポイントを介して通信相手端末と通信する場合を例示する。この際、通信相手端末は、送信側端末とし、無線LAN端末(自通信端末)を受信側端末とする。
(実施の形態1)
図1〜図4は、本発明の実施の形態1における通信端末および通信方法の一例を示したものである。図1は、実施の形態1における通信端末の構成を示すブロック図である。
本実施形態の通信端末は、PHY処理部101、MAC処理部102、送信待機頻度推定部103、IP処理部104、TCP処理部105、TCP−ACK生成制御部106、端末制御部107を有して構成される。
PHY処理部101は、通信メディアへのデータ送受信、変復調、符号化などの物理層処理を行うものである。MAC処理部(メディアアクセス制御処理部)102は、通信メディアへのアクセス制御処理を行うものである。IP処理部104は、IP層のヘッダ解析、付与等のIP層に関連する処理を行うものである。
TCP処理部105は、TCPセグメントデータの送受信処理、送達確認応答であるTCP−ACK(TCP確認応答セグメント)の生成処理など、TCP層に関連する処理を行うものである。TCP確認応答生成制御部として機能するTCP−ACK生成制御部106は、通信メディアの状況に応じてTCP−ACK生成のタイミングを制御するものである。端末制御部107は、ネットワークの上位層の処理、端末の管理処理等を行うものである。
なお、図示はしていないが、本通信端末は、通信端末の利用者が、本通信端末の動作を選択して実行するためのユーザインタフェースであるキー、ディスプレイ等を有している。また、本通信端末は、音声処理用のコーデック、マイク、スピーカ、および、カメラ、バイブレータ、並びに、プログラム格納および実行のためのメモリなどの構成要素も有している。
MAC処理部102は、通信メディアへのアクセス制御処理を行う。また、MAC処理部102は、PHY処理部101から取得した受信フレームのMAC層処理を行いIP処理部104に渡す処理と、IP処理部104から取得した送信パケットのMAC層処理を行いPHY処理部101に渡す処理とを行う。また、MAC処理部102は、接続先の無線LANアクセスポイントからデータを受信した場合に、送信待機頻度推定部103に通知する機能を有する。
送信待機頻度推定部103は、MAC処理部102がIP処理部104から受け取った送信パケットの送信がどれほど滞留するかを示す滞留予測情報を算出し、TCP−ACK生成制御部106に通知する処理を行う。この滞留予測情報は、送信待機頻度情報としてTCP−ACK生成制御部106に送られる。
図2は、実施の形態1における送信待機頻度推定部103の構成を示すブロック図である。送信待機頻度推定部103は、インターバルタイマ201、データフレーム受信数カウンタ202、滞留頻度閾値管理部203、滞留予測情報算出部204を有して構成される。
インターバルタイマ201は、TCP処理部105からのデータ受信セッション設立通知を受け、インターバルタイマを起動する処理と、所定のインターバル値に基づいたタイマ満了通知を滞留予測情報算出部204に通知する処理とを行う。インターバル値は、例えば、無線LANアクセスポイントからのビーコン間隔と同一の値に設定する、固定値にする、などとする。
データフレーム受信数カウンタ202は、MAC処理部102からデータ受信通知を受けるとカウンタ値を1加算する。また、データフレーム受信数カウンタ202は、インターバルタイマ201のタイマ満了に伴い、カウンタ値を初期化する。このカウンタ値の初期化は、滞留予測情報算出部204の指示に従い実施する。ここで、インターバルタイマ201及びデータフレーム受信数カウンタ202は、所定期間の受信データ数を算出する受信データ数算出部の機能を実現する。
滞留頻度閾値管理部203は、データフレーム受信数カウンタ202のカウンタ値により、滞留頻度のレベルを規定するための閾値を管理する。例えば、滞留頻度は、レベル1(小)・レベル2(中)・レベル3(大)の3段階に規定する。レベル1とレベル2の境界値は、通常状態でのTCP−ACK生成頻度の2倍すなわちデータフレーム受信数4回とし、レベル2とレベル3の境界値を、通常状態でのTCP−ACK生成頻度の3倍すなわちデータフレーム受信数6回とする。
滞留予測情報算出部204は、インターバルタイマ201からタイマ満了通知を受けると、データフレーム受信数カウンタ202のカウンタ値および滞留頻度閾値管理部203の閾値情報を参照する。これらの情報の参照の結果、データフレーム受信数カウンタ値がどの滞留頻度レベルに属するかを判定し、判定結果をTCP−ACK生成制御部106に通知し、カウンタ値の初期化をデータフレーム受信数カウンタ202に指示する。
このように、本実施の形態の送信待機頻度推定部103は、TCPセッションが確立し、データ受信セッションが設立してから所定のインターバルを常時カウントして所定期間の受信データ数を算出する。さらに、送信待機頻度推定部103は、インターバル毎のデータフレーム受信数に基づき、滞留頻度レベルを決定する。また、送信待機頻度推定部103は、この滞留頻度レベルを滞留予測情報として、TCP−ACK生成制御部106に通知する。
TCP処理部105は、TCPセグメントデータを受信するためのセッションを設立すると、送信待機頻度推定部103にデータ受信セッション設立通知を行う。また、TCP処理部105は、TCP−ACK生成制御部106からの通知に基づき、IP層からいくつTCPセグメントデータを正常受信したらTCP−ACKを生成するかを管理するACKパラメータを変更する。
TCP処理部105は、このACKパラメータの変更により、定常状態でのTCP−ACKの生成タイミングを、TCPセグメントデータを2セグメント受信した後、または、4セグメント受信した後、6セグメント受信した後などに設定する。なお、一般的には、輻輳状態では1セグメント受信した後にTCP−ACKを生成し、定常状態では2セグメント受信した後にTCP−ACKを生成するように構成されている。ここで、定常状態とは、セッション開設や解放時、スロースタート時を除く、輻輳回避状態を示している。
TCP−ACK生成制御部106は、送信待機頻度推定部103から受け取った滞留予測情報(送信待機頻度情報)に基づき、TCP−ACKの生成頻度を管理するACKパラメータを変更するよう、TCP処理部105に通知する。この滞留予測情報は、上述したように所定のインターバル毎のデータフレーム受信数の大小を複数のレベルで示したものであり、TCP−ACKの送信待機中に次のTCPセグメントデータをどれだけ受信したかを示すものである。
すなわち、通常の生成頻度でTCPセグメントデータを2セグメント受信後にTCP−ACKを生成した場合には、TCP−ACKが発生してから送信可能となるまでの滞留度合い(滞留頻度、すなわち送信待機頻度)を示す情報に相当する。例えば、送信待機頻度が所定値より高い場合には、TCP−ACKの生成頻度を下げるように、生成頻度の制御を行う。なお、送信待機頻度が所定値より低い場合には、TCP−ACKの生成頻度を上げるような制御をしてもよい。
このように、滞留予測情報に基づいてACKパラメータを変更してTCP−ACKの生成頻度を調整することによって、TCP−ACKの生成タイミングを制御でき、伝送路の使用状況に応じたTCP−ACKの生成および送信が可能になる。
上記のように構成された実施の形態1の通信端末の動作について、以下に説明する。
図3は、実施の形態1の通信端末において、TCP−ACKの生成タイミングを変更する処理フローを示す図である。
通信端末は、TCP通信を開始すると、送信待機頻度推定部103にて滞留予測情報算出処理を行い、TCP−ACK生成制御部106に滞留予測情報を通知する(ステップS301)。TCP−ACK生成制御部106では、滞留予測情報による滞留頻度を判定し、滞留頻度に応じて以下の処理を行う。
滞留頻度が小さい場合、ステップS302の判定にてYesの場合、TCP−ACK生成制御部106は、ACKパラメータをデフォルト値に設定し、TCP処理部105は通常のTCPパラメータにてTCP通信を行う(ステップS303)。デフォルト値の場合、TCP処理部105は、一般には、定常状態にてTCPセグメント2個の受信に対し、1つのTCP−ACKを生成する。
滞留頻度が中程度の場合、ステップS302の判定にてNo、かつステップS304の判定にてNoの場合、TCP−ACK生成制御部106は、ACKパラメータを設定する。TCP−ACK生成制御部106は、ACKパラメータとして、TCP−ACK生成タイマタイムアウト値、およびTCP−ACK生成頻度(TCP−ACKを生成するために受信するTCPセグメント数)をデフォルト値の2倍に設定する。
そして、TCP処理部105は、設定後のTCPパラメータにてTCP通信を行う(ステップS305)。この場合、TCP処理部105は、デフォルト値において、定常状態にてTCPセグメントを2個受信するごとに1つのTCP−ACKを生成する場合には、TCPセグメント4個の受信に対し、1つのTCP−ACKを生成する。
滞留頻度が大きい場合、ステップS304の判定にてYesの場合、TCP−ACK生成制御部106は、ACKパラメータとして、TCP−ACK生成タイマタイムアウト値、およびTCP−ACK生成頻度をデフォルト値の3倍に設定する。そして、TCP処理部105は設定後のTCPパラメータにてTCP通信を行う(ステップS306)。
この場合、TCP処理部105は、デフォルト値において、定常状態にてTCPセグメントを2個受信するごとに1つのTCP−ACKを生成する場合には、TCPセグメント6個の受信に対し、1つのTCP−ACKを生成する。
図4は、実施の形態1の通信端末において、送信待機頻度推定部103による滞留予測情報を算出する処理フローを示す図である。
送信待機頻度推定部103による滞留予測情報算出処理では、まず始めに、タイマおよびカウンタを初期化する(ステップS401)。具体的には、送信待機頻度推定部103は、滞留頻度を計測するために使用するインターバルタイマ201、および、インターバルタイマ起動中に受信するデータフレーム数を管理するデータフレーム受信数カウンタ202を初期化する。
次に、送信待機頻度推定部103は、自通信端末が接続している接続先アクセスポイント(AP)(ここでは、無線LANアクセスポイント)からのデータを受信したか否かを判定する(ステップS402)。ステップS402の判定にてYes、すなわち接続先アクセスポイントからのデータを受信した場合には、データフレーム受信数カウンタ202を1加算する(ステップS403)。また、送信待機頻度推定部103は、インターバルタイマ201がタイマ満了したか否かを判定する(ステップS404)。
ここで、インターバルタイマ201のタイマ満了値とは、例えば100msであり、この値は変更が可能である。ステップS402の判定にてNoの場合、すなわち接続先アクセスポイントからのデータを受信していない場合は何もせずステップS404に進む。インターバルタイマ201がタイマ満了していない場合(ステップS404の判定にてNo)、ステップS402に戻り、接続先アクセスポイントからのデータを受信したか否かを判定する。
インターバルタイマ201がタイマ満了している場合(ステップS404の判定にてYes)、送信待機頻度推定部103は、データフレーム受信数カウンタ202のカウンタ値がレベル1未満であるか否かを判定する(ステップS405)。ステップS405の判定でYes、すなわち、データフレーム受信数カウンタ202のカウンタ値がレベル1未満である場合には、ステップS406に進む。滞留予測情報算出部204は、滞留頻度を小に設定して滞留頻度情報としてTCP−ACK生成制御部106に通知し(ステップS406)、ステップS401へ戻る。
また、ステップS405の判定でNo、すなわち、データフレーム受信数カウンタ202のカウンタ値がレベル1以上である場合には、ステップS407に進む。滞留予測情報算出部204は、データフレーム受信数カウンタ202のカウンタ値がレベル2未満であるか否かを判定する(ステップS407)。ステップS407の判定でYes、すなわち、データフレーム受信数カウンタ202のカウンタ値がレベル2未満である場合には、ステップS408に進む。滞留予測情報算出部204は、滞留頻度を中に設定して滞留頻度情報としてTCP−ACK生成制御部106に通知し(ステップS408)、ステップS401へ戻る。
また、ステップS407の判定でNo、すなわち、データフレーム受信数カウンタの値がレベル2以上である場合には、ステップS409に進む。滞留予測情報算出部204は、滞留頻度を大に設定して滞留頻度情報としてTCP−ACK生成制御部106に通知し(ステップS409)、ステップS401へ戻る。
図5は、実施の形態1における送信側端末と受信側端末との間のデータ転送動作の一例を示すシーケンス図である。図5の例は、滞留頻度が大きい場合の例であり、TCP−ACK生成頻度を通常の3倍に設定した場合を示している。図示例では、送信側端末である通信相手端末503から無線LANアクセスポイント502を介して、受信側端末である通信端末(無線LAN端末)501に対して、バースト的にTCPセグメントデータが送信されている。
この場合、通信端末501は、所定のインターバルにおけるデータフレーム受信数が多く、滞留頻度が大であり、通常のTCP−ACK生成頻度ではTCP−ACKの送信に遅延が生じる。このため、通信端末501は、TCP−ACK生成頻度をデフォルト値の3倍に設定し、TCP−DATA#1〜TCP−DATA#6を受信した時点にて1つのTCP−ACK#1〜#6を生成する。これにより、通信端末501は、TCP−ACKの生成タイミングを遅延させる。そして、通信端末501は、送信権の獲得後にTCP−ACK#1〜#6を無線LANアクセスポイント502に返信する。
上記のような本実施の形態の処理によって、所定期間の受信データ数によって通信回線の混雑度を推定し、送信データの滞留頻度を推定することが可能である。この際、TCP−ACKの送信待機が発生しやすい環境、すなわち、送信データの滞留頻度が高く、直ちに送信権を得ることが困難な状況では、TCP−ACKの生成タイミングを遅らせるように生成頻度を調整する。すなわち、本実施の形態では、より多くのTCPセグメントデータを受信後にTCP−ACKを生成する。
このようなTCP−ACK生成タイミングの調整により、一つのTCP−ACKでより多くのTCPセグメントデータの受信確認を送信側に通知することが可能となる。これにより、TCP−ACKの送信回数を削減することができるため、通信端末の消費電力を下げることができる。また、TCP−ACKの送信回数を削減することで通信メディアに送信するデータフレーム量を削減できるため、システムのスループットを向上することができる。
したがって、本実施の形態によれば、伝送路の使用状況に応じてTCP−ACKの生成タイミングを制御することで、TCP−ACKの分割送信を抑制でき、効率的に確認応答を行うことが可能になる。
なお、上述した本実施の形態における、滞留頻度レベル数、滞留頻度レベルの境界値は、変更が可能である。本実施の形態では、レベルを3段階、レベル1・レベル2の境界値は通常のTCP−ACK生成頻度の2倍すなわちデータフレーム受信数4回とした。また、レベル2・レベル3の境界値は、通常のTCP−ACK生成頻度の3倍すなわちデータフレーム受信数6回と設定したが、この限りではない。例えば、レベルは、2段階あるいは4段階以上に設定し、それぞれの境界値を別の値に設定する、等としてもよい。
また、滞留頻度レベルに応じて変更するACKパラメータ等のTCPパラメータ値に関しても、上述したものは一例であり、2倍、3倍でなく、+2回、+3回という変更にするようにした場合でも、同様の効果が得られるのは言うまでもない。
(実施の形態2)
図6〜図7は、本発明の実施の形態2における通信端末および通信方法の一例を示したものである。実施の形態2は、通信端末の基本構成は図1に示した実施の形態1における構成と同様であり、送信待機頻度推定部103の代わりに構成および機能が異なる送信待機頻度推定部601を備えている。なお、実施の形態1と同様の構成要素には同一の符号を付してその説明を省略し、異なる部分のみを説明する。
実施の形態2のMAC処理部102は、キャリアセンスを行いデータフレームの送信権獲得試行中に他の通信端末からのキャリアを検出した場合、および送信権を獲得して送信が完了した場合に、送信待機頻度推定部601に通知する。
送信待機頻度推定部601は、MAC処理部102がIP処理部104から取得したTCP−ACKを格納したIPパケットの送信が、どれほど滞留するかを示す滞留予測情報を算出し、TCP−ACK生成制御部106に通知する処理を行う。
図6は、実施の形態2における送信待機頻度推定部601の構成を示すブロック図である。送信待機頻度推定部601は、キャリア検出回数カウンタ602、滞留頻度閾値管理部603、滞留予測情報算出部604を有して構成される。
キャリア検出回数カウンタ602は、キャリアセンス中に他の通信端末からの送信(送信信号または干渉波)を検出した回数、すなわちキャリア検出回数をカウントする。キャリア検出回数のカウントの開始、およびカウンタ値の初期化は、滞留予測情報算出部604の指示に従い実施する。
ここで、キャリア検出回数カウンタ602は、送信データが発生してから通信メディアに送信するまでの間に、他端末からの送信を検出した回数を記録する送信検出回数記録部の機能を実現する。
滞留頻度閾値管理部603は、キャリア検出回数カウンタ602のカウンタ値により、滞留頻度のレベルを規定するための閾値を管理する。例えば、滞留頻度閾値管理部603は、滞留頻度をレベル1(小)・レベル2(中)・レベル3(大)の3段階に規定し、レベル1とレベル2の境界値をキャリア検出回数5回、レベル2とレベル3の境界値をキャリア検出回数10回とする。
滞留予測情報算出部604は、TCP処理部105より、TCP−ACKをIP処理部104に送出した通知を受けると、キャリア検出回数のカウント開始をキャリア検出回数カウンタ602に指示する。また、滞留予測情報算出部604は、MAC処理部102からTCP−ACKを含むデータフレームの送信完了通知を受けると、キャリア検出回数カウンタ602のカウンタ値および滞留頻度閾値管理部603の閾値情報を参照する。
滞留予測情報算出部604は、これらの情報の参照の結果、キャリア検出回数カウンタ値がどの滞留頻度レベルに属するかを判定する。さらに、滞留予測情報算出部604は、判定結果をTCP−ACK生成制御部106に通知し、カウンタ値の初期化をキャリア検出回数カウンタ602に指示する。
以上、本実施の形態の送信待機頻度推定部601は、TCP処理部105でTCP−ACKを生成してからMAC処理部102によりTCP−ACKの送信が完了するまでの間、キャリア検出回数をカウントする。さらに、送信待機頻度推定部601は、この期間のキャリア検出回数に基づき、滞留頻度レベルを決定する。送信待機頻度推定部601は、この滞留頻度レベルを滞留予測情報としてTCP−ACK生成制御部106に通知する。
TCP処理部105は、TCP−ACKをIP処理部104に渡す処理を実施したことを送信待機頻度推定部601に通知する機能を有する。また、TCP処理部105は、TCP−ACK生成制御部106からの通知に基づき、IP層からいくつTCPセグメントデータを正常受信したらTCP−ACKを生成するかを管理するACKパラメータを変更する。
TCP処理部105は、ACKパラメータの変更により、定常状態でのTCP−ACKの生成タイミングを、TCPセグメントデータを2セグメント受信した後、あるいは、4セグメント受信した後、6セグメント受信した後などに設定する。なお、一般的には、輻輳状態では、1セグメント受信した後にTCP−ACKを生成し、定常状態では2セグメント受信した後にTCP−ACKを生成するように構成されている。
TCP−ACK生成制御部106は、送信待機頻度推定部601から受け取った滞留予測情報に基づき、TCP−ACKの生成頻度を管理するACKパラメータを変更するよう、TCP処理部105に通知する。この滞留予測情報は、上述したようにTCP−ACKの生成から送信完了までの間、送信権獲得試行中のキャリア検出回数の大小を複数のレベルで示したものである。つまり、滞留予測情報は、TCP−ACKの送信待機中に他の通信端末からのキャリアをどれだけ受信したかを示すものである。
すなわち、通常の生成頻度でTCPセグメントデータを2セグメント受信後にTCP−ACKを生成した場合に、TCP−ACKが発生してから送信可能となるまでにどのぐらい滞留するかの度合い(滞留頻度)を示す情報に相当する。このように、滞留予測情報に基づいてACKパラメータを変更してTCP−ACKの生成頻度を調整することによって、TCP−ACKの生成タイミングを制御でき、伝送路の使用状況に応じたTCP−ACKの生成および送信が可能になる。
図7は、実施の形態2の通信端末において、滞留予測情報を算出する処理フローを示す図である。
送信待機頻度推定部601による滞留予測情報算出処理では、まず始めに、滞留頻度を計測するために使用する、データの送信権獲得試行中のキャリア検出回数を管理するキャリア検出回数カウンタ602を初期化する(ステップS701)。
次に、送信待機頻度推定部601は、自通信端末にて送信するTCP−ACKデータが発生したか否かを判定する(ステップS702)。ステップS702の判定にてNo、すなわち送信データが発生していない場合、送信データが発生するまでステップS702の判定を繰り返す。
送信データが発生すると(ステップS702の判定にてYes)、MAC処理部102は、データの送信権獲得のためのキャリアセンスを実施する(ステップS703)。そして、MAC処理部102は、キャリアセンスの結果に基づき、他の通信端末からのキャリアを検出したか否かによって、送信権を獲得できたかどうかを判定する(ステップS704)。
キャリアセンスの結果、送信権がまだ獲得できていない場合(ステップS704の判定にてNo)、すなわち他の通信端末からのキャリアを検出した場合、キャリア検出回数カウンタ602を1加算する(ステップS708)。さらに、MAC処理部102は、再び送信権獲得のためのキャリアセンス処理(ステップS703)に戻る。
キャリアセンスの結果、送信権を獲得すると(ステップS704の判定にてYes)、送信待機頻度推定部601は、キャリア検出回数カウンタ602のカウンタ値がレベル1未満であるか否かを判定する(ステップS705)。ステップS705の判定でYes、すなわち、キャリア検出回数カウンタ602のカウンタ値がレベル1未満である場合には、ステップS706に進む。滞留予測情報算出部604は、滞留頻度を小に設定して滞留頻度情報としてTCP−ACK生成制御部106に通知し(ステップS706)、ステップS701へ戻りキャリア検出回数カウンタ602を初期化する。
また、ステップS705の判定でNo、すなわち、キャリア検出回数カウンタ602のカウンタ値がレベル1以上である場合には、キャリア検出回数カウンタ602のカウンタ値がレベル2未満であるか否かを判定する(ステップS709)。ステップS709の判定でYes、すなわち、キャリア検出回数カウンタ602のカウンタ値がレベル2未満である場合には、ステップS710に進む。滞留予測情報算出部604は、滞留頻度を中に設定して滞留頻度情報としてTCP−ACK生成制御部106に通知し(ステップS710)、ステップS701へ戻りキャリア検出回数カウンタ602を初期化する。
また、ステップS709の判定でNo、すなわち、キャリア検出回数カウンタ602のカウンタ値がレベル2以上である場合には、ステップS711に進む。滞留予測情報算出部604は、滞留頻度を大に設定して滞留頻度情報としてTCP−ACK生成制御部106に通知し(ステップS711)、ステップS701へ戻りキャリア検出回数カウンタ602を初期化する。
上記のような本実施の形態の処理によって、他端末からの送信の検出回数によって通信回線の混雑度を推定し、送信データの滞留頻度を推定することが可能である。この際、他端末の送信によりTCP−ACKの送信待機が発生しやすい環境、すなわち、送信データの滞留頻度が高く、直ちに送信権を得ることが困難な状況では、TCP−ACKの生成頻度を調整する。具体的には、本実施の形態は、TCP−ACKの生成タイミングを遅らせて、より多くのTCPセグメントデータを受信後にTCP−ACKを生成するように生成頻度を調整するようにしたものである。
このようなTCP−ACK生成タイミングの調整により、一つのTCP−ACKでより多くのTCPセグメントデータの受信確認を送信側に通知することが可能となる。これにより、実施の形態1と同様、TCP−ACKの送信回数を削減することができるため、通信端末の消費電力を下げることができる。また、本実施の形態では、TCP−ACKの送信回数を削減することで通信メディアに送信するデータフレーム量を削減できるため、システムのスループットを向上することができる。
なお、上述した本実施の形態における、滞留頻度レベル数、滞留頻度レベルの境界値は、変更が可能である。本実施の形態では、レベルを3段階、レベル1・レベル2の境界値はキャリア検出回数5回、レベル2・レベル3の境界値はキャリア検出回数10回と設定したが、この限りではない。例えば、レベルは2段階あるいは4段階以上に設定する、それぞれの境界値を別の値に設定する、等としてもよい。
また、滞留頻度レベルに応じて変更するACKパラメータ等のTCPパラメータ値は、上述したものは一例であり、2倍、3倍でなく、+2回、+3回という変更にするようにした場合でも、同様の効果が得られるのは言うまでもない。
なお、送信待機頻度推定部601は、特定の期間、TCP−ACK生成制御部106にTCP処理部105へのTCP−ACK生成禁止を通知するようにしてもよい。
これは、キャリア検出回数カウンタ602の稼働中は、常に滞留頻度がレベル3になるようにレベル2・レベル3の境界値を設定することで実現できる。ただし、レベル3においては、TCP−ACK生成タイマタイムアウト値をRTT閾値、TCP−ACK生成頻度を無限大に設定するものとする。
(実施の形態3)
図8〜図9は、本発明の実施の形態3における通信端末および通信方法の一例を示したものである。実施の形態3は、通信端末の基本構成は図1に示した実施の形態1における構成と同様であり、送信待機頻度推定部103の代わりに構成および機能が異なる送信待機頻度推定部801を備えている。なお、実施の形態1と同様の構成要素には同一の符号を付してその説明を省略し、異なる部分のみを説明する。
実施の形態3のMAC処理部102は、送信待機中のデータフレームがTCP−ACKを含むデータか否かを判別し、TCP−ACKを含むデータフレームの送信権を獲得して送信が完了した場合に送信待機頻度推定部801に通知する。このデータフレームの判定機能は、MAC処理部102にて、IPヘッダおよびTCPヘッダのオフセットを管理することで、送信データのヘッダ情報からTCP−ACKを含むデータフレームか否かを判定することができる。
送信待機頻度推定部801は、MAC処理部102がIP処理部104から取得したTCP−ACKを格納したIPパケットの送信が、どれほど滞留するかを示す滞留予測情報を算出し、TCP−ACK生成制御部106に通知する処理を行う。
図8は、実施の形態3における送信待機頻度推定部801の構成を示すブロック図である。送信待機頻度推定部801は、TCP−DATA受信回数カウンタ802、滞留頻度閾値管理部803、滞留予測情報算出部804を有して構成される。
TCP−DATA受信回数カウンタ802は、TCP−ACKの送信待機中に新たに受信したTCP−DATA数(TCPセグメントデータの数)、すなわちそのセッションに関わるデータの受信回数をカウントする。TCP−DATA受信回数のカウントの開始、およびカウンタ値の初期化は、滞留予測情報算出部804の指示に従い実施する。
ここで、TCP−DATA受信回数カウンタ802、特定の区間、TCP確認応答セグメントの送信相手からのTCPデータを受信した回数を、記録するTCPデータ受信回数記録部の機能を実現する。なお、特定の区間とは、TCP確認応答セグメントが発生してから通信メディアに送信するまでの間である。
滞留頻度閾値管理部803は、TCP−DATA受信回数カウンタ802のカウンタ値により、滞留頻度のレベルを規定するための閾値を管理する。例えば、滞留頻度閾値管理部803は、滞留頻度をレベル1(小)・レベル2(中)・レベル3(大)の3段階に規定する。なお、レベル1とレベル2の境界値は、通常状態でのTCP−ACK生成頻度の2倍すなわちTCP−DATA受信回数4回とする。また、レベル2とレベル3の境界値は、通常状態でのTCP−ACK生成頻度の3倍すなわちTCP−DATA受信回数6回とする。
滞留予測情報算出部804は、TCP処理部105より、TCP−ACKをIP処理部104に送出した通知を受けると、TCP−DATA受信回数のカウント開始をTCP−DATA受信回数カウンタ802に指示する。また、滞留予測情報算出部804は、MAC処理部102からTCP−ACKを含むデータフレームの送信完了通知を受けると、TCP−DATA受信回数カウンタ802のカウンタ値および滞留頻度閾値管理部803の閾値情報を参照する。
これらの情報の参照の結果、TCP−DATA受信回数カウンタ値がどの滞留頻度レベルに属するかを判定し、判定結果をTCP−ACK生成制御部106に通知し、カウンタの初期化をTCP−DATA受信回数カウンタ802に指示する。
このように、本実施の形態の送信待機頻度推定部801は、特定の区間、TCP−DATA受信回数をカウントし、この期間のTCP−DATA受信回数に基づき、滞留頻度レベルを決定する。なお、特定の区間とは、TCP処理部105でTCP−ACKを生成してからMAC処理部102によりTCP−ACKの送信が完了するまでの間である。送信待機頻度推定部801は、この滞留頻度レベルを滞留予測情報として、TCP−ACK生成制御部106に通知する。
TCP処理部105は、TCP−ACKをIP処理部104に渡す処理を実施したことを送信待機頻度推定部801に通知する機能を有する。さらに、TCP処理部105は、TCP−DATAの受信をした場合に、送信待機頻度推定部801に通知する機能を有する。また、TCP処理部105は、TCP−ACK生成制御部106からの通知に基づき、IP層からいくつTCPセグメントデータを正常受信したらTCP−ACKを生成するかを管理するACKパラメータを変更する。
TCP処理部105は、ACKパラメータの変更により、定常状態でのTCP−ACKの生成タイミングを、TCPセグメントデータを2セグメント受信した後、あるいは、4セグメント受信した後、6セグメント受信した後などに設定する。なお、一般的には、輻輳状態では1セグメント受信した後にTCP−ACKを生成し、定常状態では2セグメント受信した後にTCP−ACKを生成するように構成されている。
TCP−ACK生成制御部106は、送信待機頻度推定部801から受け取った滞留予測情報に基づき、TCP−ACKの生成頻度を管理するACKパラメータを変更するよう、TCP処理部105に通知する。この滞留予測情報は、上述したようにTCP−ACKの生成から送信完了までの間、送信権獲得試行中のTCPセグメントデータの受信回数の大小を複数のレベルで示したものである。すなわち、滞留予測情報は、TCP−ACKの送信待機中に自通信端末が受信するセッションに関わるTCPセグメントデータを、どれだけ受信したかを示すものである。
すなわち、通常の生成頻度でTCPセグメントデータを2セグメント受信後にTCP−ACKを生成した場合に、TCP−ACKが発生してから送信可能となるまでにどのぐらい滞留するかの度合い(滞留頻度)を示す情報に相当する。このように、滞留予測情報に基づいてACKパラメータを変更してTCP−ACKの生成頻度を調整することによって、TCP−ACKの生成タイミングを制御でき、伝送路の使用状況に応じたTCP−ACKの生成および送信が可能になる。
図9は、実施の形態3の通信端末において、送信待機頻度推定部801による滞留予測情報を算出する処理フローを示す図である。
送信待機頻度推定部801による滞留予測情報算出処理では、まず始めに、滞留頻度を計測するために使用するカウンタを初期化する(ステップS901)。具体的には、送信待機頻度推定部801は、TCP−ACKの送信権獲得試行中のTCP−DATA受信回数を管理するTCP−DATA受信回数カウンタ802を初期化する。
次に、送信待機頻度推定部801は、自通信端末にて送信するTCP−ACKデータが発生したか否かを判定する(ステップS902)。ステップS902の判定にてNo、すなわち送信データが発生していない場合、送信データが発生するまでステップS902の判定を繰り返す。
送信データが発生すると(ステップS902の判定にてYes)、MAC処理部102は、データの送信権獲得のためのキャリアセンスを実施する(ステップS903)。そして、キャリアセンスの結果に基づき、MAC処理部102は、他の通信端末からのキャリアを検出したか否かによって送信権を獲得できたかどうかを判定する(ステップS904)。
キャリアセンスの結果、送信権がまだ獲得できていない場合(ステップS904の判定にてNo)、すなわち他の通信端末からのキャリアを検出した場合、ステップS907に進む。MAC処理部102は、通信相手端末からのTCP−DATAを受信したか否かを判定する(ステップS907)。ステップS907の判定にてYes、すなわち、通信相手端末からのTCP−DATAを検出した場合、MAC処理部102は、TCP−DATA受信回数カウンタ802を1加算する(ステップS908)。さらに、MAC処理部102は、再び送信権獲得のためのキャリアセンス処理(ステップS903)に戻る。
また、ステップS907の判定にてNo、すなわち、通信相手端末からのTCP−DATAを検出していない場合は、そのまま送信権獲得のためのキャリアセンス処理(ステップS903)に戻り。つまり、送信権が獲得できるまでは、キャリアセンス処理を実施する。
キャリアセンスの結果、送信権を獲得すると(ステップS904の判定にてYesの場合)、送信待機頻度推定部801は、TCP−DATA受信回数カウンタ802のカウンタ値がレベル1未満であるか否かを判定する(ステップS905)。
ステップS905の判定でYes、すなわち、TCP−DATA受信回数カウンタ802のカウンタ値がレベル1未満である場合には、ステップS906に進む。滞留予測情報算出部804は、滞留頻度を小に設定して滞留頻度情報としてTCP−ACK生成制御部106に通知し(ステップS906)、ステップS901へ戻り、TCP−DATA受信回数カウンタ802を初期化する。
また、ステップS905の判定でNoの場合には、TCP−DATA受信回数カウンタ802のカウンタ値が、レベル1以上であり、かつ、レベル2未満であるか否かを判定する(ステップS909)。ステップS909の判定でYes、すなわち、TCP−DATA受信回数カウンタ802のカウンタ値がレベル2未満である場合には、ステップS910に進む。滞留予測情報算出部804は、滞留頻度を中に設定して滞留頻度情報としてTCP−ACK生成制御部106に通知し(ステップS910)、ステップS901へ戻り、TCP−DATA受信回数カウンタ802を初期化する。
また、ステップS909の判定でNo、すなわち、TCP−DATA受信回数カウンタ802のカウンタ値がレベル2以上である場合には、ステップS911に進む。滞留予測情報算出部804は、滞留頻度を大に設定して滞留頻度情報としてTCP−ACK生成制御部106に通知し(ステップS911)、ステップS901へ戻り、TCP−DATA受信回数カウンタ802を初期化する。
以上、本実施の形態は、自端末からのTCP−ACKを含む送信データ待機中に新たな送信相手からのTCP−DATAの受信回数によって、通信回線の混雑度および通信相手から到着するデータのバースト性を推定し、送信データの滞留頻度を推定することが可能である。
この際、他端末の送信によりTCP−ACKの送信待機が発生しやすい環境、すなわち、送信データの滞留頻度が高く、直ちに送信権を得ることが困難な状況では、TCP−ACKの生成頻度を調整する。具体的には、本実施の形態は、TCP−ACKの生成タイミングを遅らせて、より多くのTCPセグメントデータを受信後にTCP−ACKを生成するように生成頻度を調整するようにしたものである。このようなTCP−ACK生成タイミングの調整により、一つのTCP−ACKでより多くのTCPセグメントデータの受信確認を送信側に通知することが可能となる。
これにより、実施の形態1および2と同様、TCP−ACKの送信回数を削減することができるため、通信端末の消費電力を下げることができる。また、TCP−ACKの送信回数を削減することで通信メディアに送信するデータフレーム量を削減できるため、システムのスループットを向上することができる。
なお、上述した本実施の形態における、滞留頻度レベル数、滞留頻度レベルの境界値は、変更が可能である。本実施の形態では、レベルを3段階、レベル1・レベル2の境界値は通常のTCP−ACK生成頻度の2倍すなわちTCP−DATA受信回数4回、レベル2・レベル3の境界値は通常のTCP−ACK生成頻度の2倍すなわちTCP−DATA受信回数6回と設定したが、この限りではない。例えば、レベルは2段階あるいは4段階以上に設定する、それぞれの境界値を別の値に設定する、等としてもよい。
また、滞留頻度レベルに応じて変更するACKパラメータ等のTCPパラメータ値に関しても、上述したものは一例であり、2倍、3倍でなく、+2回、+3回という変更にするようにした場合でも、同様の効果が得られるのは言うまでもない。
なお、送信待機頻度推定部801は、特定の期間、TCP−ACK生成制御部106にTCP処理部105へのTCP−ACK生成禁止を通知するようにしてもよい。なお特定の期間とは、TCP処理部105よりTCP−ACKをIP処理部104に送出した通知を受けた時点から、MAC処理部102よりTCP−ACKの送信権を獲得して送信が完了した通知を受けるまでの間である。
これは、TCP−DATA受信回数カウンタ802の稼働中は、常に滞留頻度がレベル3になるようにレベル2・レベル3の境界値を設定することで実現できる。ただし、レベル3においては、TCP−ACK生成タイマタイムアウト値をRTT閾値、TCP−ACK生成頻度を無限大に設定するものとする。
(実施の形態4)
図10〜図13は、本発明の実施の形態4における通信端末および通信方法の一例を示したものである。図10は、実施の形態4における通信端末の構成を示すブロック図である。なお、実施の形態1と同様の構成要素には同一の符号を付してその説明を省略し、異なる部分のみを説明する。
MAC処理部102は、通信メディアへのアクセス制御処理を行う。また、MAC処理部102は、PHY処理部101から受け取った受信フレームのMAC層処理を行いIP処理部104に渡す処理を行う。また、MAC処理部102は、送信データ選択部1001から受け取った送信データフレームにMAC層処理を行いPHY処理部101に渡す処理を行う。また、MAC処理部102は、キャリアセンスの結果、送信権獲得した場合には送信データ選択部1001に通知する機能を有する。
IP処理部104は、MAC処理部102から受け取ったIPパケットのヘッダ解析を行い、TCP処理部105などの上位層処理部にIPパケットのペイロードを渡す処理を行う。また、IP処理部104は、TCP処理部105から受け取ったTCPセグメントデータにIPヘッダを付与し、送信データ選択部1001に渡す処理を行う。
送信データ選択部1001は、IP処理部104から受け取ったIPパケットを解析し、送信するデータがTCP−DATA受信に対するTCP−ACKであるか否かを解析する。ここで、TCP−ACKである場合、実際に送信権が得られるまでにIP処理部104から受け取ったTCP−ACKを最新のものに更新し、MAC処理部102に渡す処理を行う。また、送信待機中のデータがある場合には、データ送信権獲得試行を行うように送信待機通知をMAC処理部102に発行する。
送信データ選択部1001は、送信データ判定部1002、追加TCP−ACK格納部1003、送信待機TCP−ACK格納部1004、送信データバッファ1005、出力選択部1006を有して構成される。
送信データ判定部1002は、IP処理部104から受け取ったIPパケットを解析し、格納されているデータがTCP−ACKか否かを判定する。この際、送信データ判定部1002は、IPパケットのIPヘッダ情報から、IPパケットのペイロードがTCPか否かを識別し、さらに、TCPである場合にはTCPヘッダ情報を解析し、TCP−ACKか否かを識別する。ここで、TCP−ACKである場合、送信データ判定部1002は、追加TCP−ACK格納部1003にTCP−ACKデータを渡す。
また、TCP−ACKではない場合、送信データ判定部1002は、送信データバッファ1005に送信データを渡す。また、送信データ判定部1002は、送信データの到着順情報を管理し、追加TCP−ACK格納部1003および送信データバッファ1005に送信データを渡す場合には、データ到着順を示す到着順情報と共に渡すようにする。この到着順情報とは、システムで管理する時刻情報とする。
追加TCP−ACK格納部1003は、新規にTCP−ACKデータを送信データ判定部1002から受け取ると、送信待機TCP−ACK格納部1004にデータが到着したことおよびデータの宛先を通知する。
送信待機TCP−ACK格納部1004は、追加TCP−ACK格納部1003からのTCP−ACKデータを順に出力選択部1006に渡すようにデータをバッファに格納する。データ出力順は、システムのキューイングアルゴリズムに従う。データ出力順として、ここでは到着順に順次出力する例を挙げるが、他の例として、データに優先度を設け、優先度順に出力するようにしてもよい。優先度順に処理をさせるには、バッファを優先度クラスごとに区別して設ければよい。到着順に出力する場合は、1クラスのバッファを設けることと等価である。
また、送信待機TCP−ACK格納部1004は、追加TCP−ACK格納部1003からの新規データ到着通知を受けると、該当する宛先に対するTCP−ACKデータが既に格納されているかを検索する。ここで、既に該当宛先のTCP−ACKデータが格納されている場合は、そのTCP−ACKデータと、追加TCP−ACK格納部1003に格納された新たなTCP−ACKデータとの差し替えを行う。
このとき、データの到着順情報の差し替えは、行わない。また、送信待機TCP−ACK格納部1004は、出力選択部1006からの到着順情報通知要求に対し、格納されているTCP−ACKデータのうち、送信順位の最も高いもののデータの到着順序情報を渡す処理を行う。なお、送信順位の最も高いものとは、例えば、最も早く格納されたTCP−ACKデータとする。また、送信待機TCP−ACK格納部1004は、出力選択部1006からの送信許可指示を受け、送信順位の最も高いTCP−ACKを含むデータを出力し、出力選択部1006を介してMAC処理部102に渡す。
送信データバッファ1005は、送信データ判定部1002から受け取った送信データをバッファに格納する処理を行う。また、出力選択部1006からの到着順情報通知要求に対し、格納されている送信データのうち、送信順位の最も高いもの(本例では最も早く格納されたもの)のデータの到着順序情報を渡す処理を行う。また、送信待機TCP−ACK格納部1004は、出力選択部1006からの送信許可指示を受け、送信順位の最も高い送信データを出力し、出力選択部1006を介してMAC処理部102に渡す。
出力選択部1006は、送信待機TCP−ACK格納部1004および送信データバッファ1005に対し到着順情報通知要求を行い、それぞれの到着順情報を取得する。そして、取得した到着順情報を用いて、送信優先度が高いのはどちらのデータかを判定する処理を行う。また、出力選択部1006は、MAC処理部102からの送信権獲得通知を受けると、送信待機TCP−ACK格納部1004または送信データバッファ1005のいずれかのうち、送信順位が高いデータをMAC処理部102に渡す。なお、送信順位が高いとは、到着順序の早いデータをいう。
図11は、実施の形態4の通信端末において、送信データの格納処理フローを示す図である。
送信データ選択部1001内の送信データ判定部1002は、IP処理部104から送信データを受け取ったか否かを判定し、送信データの到着を待つ(ステップS1101)。IP処理部104から送信データを受け取ると(ステップS1101の判定でYes)、受け取った送信データがTCP−ACKか否かを判定する(ステップS1102)。
ここで、送信データがTCP−ACKである場合(ステップS1102の判定でYes)、送信データ判定部1002は、追加TCP−ACK格納部1003に送信データを到着順情報と共に格納する(ステップS1103)。送信待機TCP−ACK格納部1004は、追加TCP−ACK格納部1003にTCP−ACKデータが格納された通知を受ける。送信待機TCP−ACK格納部1004は、追加TCP−ACK格納部1003に格納されたTCP−ACKデータと同一の宛先のものが、送信待機TCP−ACK格納部1004に格納されているか否かを検索する(ステップS1104)。
ここで、該当する同一宛先のTCP−ACKデータが存在する場合(ステップS1104の判定でYes)は、ステップS1105に進む。送信待機TCP−ACK格納部1004は、格納されている該当送信データを、追加TCP−ACK格納部1003に格納されているTCP−ACKデータに書き換える(ステップS1105)。このとき、到着順情報の書き換えは行わない。また、該当送信データがTCP−DATAを含む場合には、TCP−ACK情報のみを置き換える。すなわち、送信待機TCP−ACK格納部1004は、TCPヘッダのアクノレッジメント番号を置き換え、チェックサムを再計算する。
また、該当する同一宛先のTCP−ACKデータが存在しない場合(ステップS1104の判定でNo)、ステップS1107に進む。送信待機TCP−ACK格納部1004は、追加TCP−ACK格納部1003に格納されているTCP−ACKデータを、到着順情報と共に送信待機TCP−ACK格納部1004内に転送する(ステップS1107)。さらに、送信待機TCP−ACK格納部1004は、追加TCP−ACK格納部1003内の情報をクリアする。
また、ステップS1102の判定にてNo、すなわち送信データがTCP−ACKでないと判定した場合、送信データ判定部1002は、送信データバッファ1005に送信データを到着順情報と共に格納する(ステップS1106)。
図12は、実施の形態4の通信端末において、送信データの送信処理フローを示す図である。
送信データ選択部1001は、送信待機TCP−ACK格納部1004、もしくは送信データバッファ1005のいずれかに送信データがあるか否かを判定する(ステップS1201)。送信データが存在する場合(ステップS1201の判定にてYes)、送信データ選択部1001は、MAC処理部102に送信待機データの存在を示す送信待機通知を発行する(ステップS1202)。
送信待機通知を受けたMAC処理部102は、データの送信権獲得試行、すなわちキャリアセンスを実施する(ステップS1203)。そして、MAC処理部102は、キャリアセンスの結果に基づき、他の通信端末からのキャリアを検出したか否かによって送信権を獲得できたかどうかを判定する(ステップS1204)。
キャリアセンスの結果、送信権を獲得すると(ステップS1204の判定にてYesの場合)、MAC処理部102から送信データ選択部1001に送信権獲得通知が発行される。この送信権獲得通知を受けると、送信データ選択部1001内の出力選択部1006は、送信データバッファ1005に格納されている最優先の送信データの到着順情報を取得する。同様に、送信データ選択部1001内の出力選択部1006は、送信待機TCP−ACK格納部1004内に格納されている最優先の送信データの到着順情報を取得する(ステップS1205)。
出力選択部1006は、ステップS1205にて取得した到着順情報から、送信データバッファ1005と、送信待機TCP−ACK格納部1004のどちらのデータの送信優先度が高いかを判定する(ステップS1206)。ここで、送信待機TCP−ACK格納部1004内のデータの方が高優先度の場合、出力選択部1006は、送信待機TCP−ACK格納部1004内の最高優先度のTCP−ACKデータをMAC処理部102に渡す(ステップS1207)。
一方、ステップS1206の判定にて、送信データバッファ1005内のデータの方が高優先度の場合、出力選択部1006は、送信データバッファ1005内の最高優先度の送信データをMAC処理部102に渡す(ステップS1208)。
図13は、実施の形態4における送信側端末と受信側端末との間のデータ転送動作の一例を示すシーケンス図である。図示例では、送信側端末である通信相手端末1303から無線LANアクセスポイント1302を介して、受信側端末である通信端末(無線LAN端末)1301に対して、バースト的にTCPセグメントデータが送信されている。
この場合、通信端末1301は、そのセッションに関わるデータフレーム受信数が多く、送信権獲得までに時間がかかるので、通常のTCP−ACK生成頻度ではTCP−ACKの送信に遅延が生じる。このため、通信端末1301は、送信権獲得できるまでTCP−ACKを更新し、送信権獲得できた時点で更新したTCP−ACKを送信する。
図13の例では、TCP−DATA#1〜TCP−DATA#2を受信した時点でTCP−ACK#1〜#2を、TCP−DATA#3〜TCP−DATA#4を受信した時点でTCP−ACK#3〜#4を、TCP−DATA#5〜TCP−DATA#6を受信した時点でTCP−ACK#5〜#6を、TCP−DATA#7〜TCP−DATA#8を受信した時点でTCP−ACK#7〜#8をそれぞれ生成し、TCP−ACKを更新していく。
これにより、通信端末1301は、送信遅延発生時のTCP−ACKを1つにまとめる。そして、通信端末1301は、TCP−DATA#8を受信した時点で送信権が獲得できると、更新後のTCP−ACK#1〜#8を無線LANアクセスポイント1302に返信する。このように、TCP−ACKを送信可能になるまでに時間がかかる場合であっても、更新後の1つにまとめたTCP−ACKを送信することで、TCP−ACKの分割送信を抑制できる。
上記のような本実施の形態は、送信待機中のTCP−ACKと同一の宛先に向けたTCP−ACKが新たに発生した場合に、一つのTCP−ACKにまとめることが可能である。これは、他端末の送信によりTCP−ACKの送信待機が発生しやすい環境、すなわち、送信データの滞留頻度が高く、直ちに送信権を得ることが困難な状況で、有効である。つまり、本実施の形態では、TCP−ACKの送信権が得られるまでに順次発生した同一宛先へのTCP−ACKを最新のものに置き換えるようにしたものである。
このようなTCP−ACK生成処理により、一つのTCP−ACKでより多くのTCPセグメントデータの受信確認を送信側に通知することが可能となる。これにより、TCP−ACKの送信回数を削減することができるため、通信端末の消費電力を下げることができる。また、TCP−ACKの送信回数を削減することで通信メディアに送信するデータフレーム量を削減できるため、システムのスループットを向上することができる。
なお、上述した本実施の形態において、到着順情報はシステムで管理する時刻情報としたが、送信データ発生ごとに1加算される識別子を付与したものを用いるなどしてもよい。また、到着順情報は、QoS情報(送信優先度情報)に対して重み付けを行った結果の値としてもよい。
また、本実施の形態では、実施の形態4の構成の通信端末に、実施の形態1〜3における送信待機頻度推定部のいずれか、および実施の形態1〜3におけるTCP処理部のいずれかを設けてもよい。これにより、本実施の形態では、他端末の送信によりTCP−ACKの送信待機が発生しやすい環境において、TCP処理部105におけるTCP−ACK生成処理が削減されるため、システムの負荷を削減することができる。
また、本実施の形態は、半二重通信を行う通信システムにおいて、MAC層におけるキャリアセンス状況に応じて、TCP層におけるTCP−ACK生成タイミングを制御することで、TCP−ACKの分割送信を抑制することができる。また、本実施の形態は、TCP通信時において送信待機が頻繁に発生し、TCP−ACKの送信に遅延が発生する環境においても、TCP−ACKの送信回数を削減することができ、TCP通信処理の効率化を実現することが可能である。これによって、本実施の形態は、通信端末の消費電力の低減、システムのスループットの向上等を図ることが可能になる。
なお、本発明は、本発明の趣旨ならびに範囲を逸脱することなく、明細書の記載、並びに周知の技術に基づいて、当業者が様々な変更、応用することも本発明の予定するところであり、保護を求める範囲に含まれる。また、本発明は、発明の趣旨を逸脱しない範囲で、上記実施の形態における各構成要素を任意に組み合わせてもよい。
上述した実施の形態では、PHY処理部101、MAC処理部102について、無線LANに接続する通信端末に適用した場合を例にとりその構成および動作を記載したが、これに限るものではない。本実施の形態は、半二重通信を行う通信方式、あるいは通信システムとして、例えばPLC(Power Line Communications)などに用いる通信装置に適用してもよい。
上記各実施の形態では、本発明をハードウェアで構成する場合を例にとって説明したが、本発明はソフトウェアで実現することも可能である。
また、上記各実施の形態の説明に用いた各機能ブロックは、典型的には集積回路であるLSIとして実現される。上記のPHY処理部101、MAC処理部102、送信待機頻度推定部103、601、801、IP処理部104、TCP処理部105、TCP−ACK生成制御部106、端末制御部107、送信データ選択部1001等は、集積回路であるLSIとして典型的には実現される。これらは、個別に1チップ化されてもよいし、一部または全てを含むように1チップ化されてもよい。ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
本出願は、2009年11月2日出願の日本特許出願(特願2009−252237)に基づくものであり、その内容はここに参照として取り込まれる。
本発明にかかる通信端末および通信方法は、TCP通信時におけるTCP−ACKの分割送信を抑制し、効率的に確認応答を行うことが可能となる効果を有し、特に、無線LANなどの半二重通信リンクを用いてTCP/IP通信を行う通信端末、家電機器等に対して有用である。また、本発明にかかる通信端末および通信方法は、車載LAN内に接続されTCP/IP通信を行う車載通信機器、家庭内ネットワーク用通信インタフェースを搭載した携帯電話等の用途にも応用できる。
101 PHY処理部
102 MAC処理部
103、601、801 送信待機頻度推定部
104 IP処理部
105 TCP処理部
106 TCP−ACK生成制御部
107 端末制御部
201 インターバルタイマ
202 データフレーム受信数カウンタ
203、603、803 滞留頻度閾値管理部
204、604、804 滞留予測情報算出部
501、1301 通信端末
502、1302 無線LANアクセスポイント
503、1303 通信相手端末
602 キャリア検出回数カウンタ
802 TCP−DATA受信回数カウンタ
1001 送信データ選択部
1002 送信データ判定部
1003 追加TCP−ACK格納部
1004 送信待機TCP−ACK格納部
1005 送信データバッファ
1006 出力選択部
本発明は、半二重伝送路によるTCPプロトコル(Transmission Control Protocol)を利用した通信を行う通信端末および通信方法に関する。
電子ファイル、コンテンツ等の転送を行うための転送プロトコルとして、TCPプロトコルが広く利用されている。TCPプロトコルでは、ネットワークのTCP層において、送信側端末が、送信した送信単位であるTCPセグメントデータ(以下、TCP−DATAとする)が受信側端末に正常に到達した場合に、TCPプロトコルとしての送達確認応答(TCPアクノレッジメント(Acknowledgement)、以下、TCP−ACKとする)が受信側端末から送信側端末へ返されることで信頼性を確保している。
また、TCPプロトコルでは次のように通信の効率化を図っている。送信側端末では、ウィンドウ制御によりTCP−ACKを受信しなくとも、連続的にTCP−DATAの送信を行う。受信側端末では、遅延確認応答(Delayed Ack)という手法を用いる。一般的には、受信側端末は、最大長のTCP−DATAを2セグメント受信するとTCP−ACKを送信するように実装されている(例えば、非特許文献1参照)。
また、データ通信手段として無線LANシステムが、その利便性等から広く普及している。図14は、無線LANを用いた場合のデータ通信システムの一例を示す。無線LANを用いた端末(無線LAN端末)1501は、無線LANアクセスポイント1502との通信が可能な無線LAN通信エリア1504に位置し、無線LANアクセスポイント1502を介し、通信ネットワーク1505に接続される。
また、無線LANアクセスポイント1502は、一般的に、Ethernet(登録商標)、光ファイバなどの有線メディアにて通信ネットワーク1505に接続される。通信ネットワーク1505は、例えば、インターネット、イントラネット、宅内ネットワーク、通信事業者が管理する公衆インフラ網、などが挙げられる。また、通信ネットワーク1505には、通信相手端末1503が接続されており、無線LAN端末1501と通信相手端末1503とは、通信ネットワーク1505を介してTCPプロトコルによるデータ通信が可能となる。
広く一般的に利用されている無線LANシステムは、IEEE802.11にて規定されている方式である。また、MAC層にて実現するアクセスアルゴリズムは、CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)方式をベースとしている(例えば、非特許文献2参照)。CSMA/CA方式では、データを送信しようとする端末は、通信メディア(この場合、無線メディア)が使用されているか否かを判断するキャリアセンスを行う。
キャリアセンスの結果、通信メディアが一定期間使用されていないこと(キャリアフリー)が確認できて初めてデータの送信権を獲得する。キャリアセンス中に、他の端末からの送信を検出すると、キャリアフリーを検出するまで自身の送信は遅延される。(例えば、非特許文献2参照)。
高橋浩和 他著、「Linuxカーネル2.6解読室」、ソフトバンククリエイティブ、2006年11月30日(P433)
IEEE Std802.11−2007、Part11:Wireless LAN Medium Access Control(MAC) and Physical Layer (PHY) Specifications、2007年6月12日(P261−P267)
ここで、無線LANのようにCSMA/CA方式によるメディアアクセスを行う場合、通信量が多い、あるいはバースト的にデータ転送が行われている状況を想定する。このような状況においては、自通信端末にて生成したTCP−ACKを送信するためにMAC層にて送信権獲得試行中に、接続先の無線LANアクセスポイントから更なるTCPセグメントデータを受信する。
この場合、自通信端末は、TCP−ACKの送信を待機し、TCPセグメントデータの受信処理後、再度、待機中のTCP−ACKの送信権獲得試行を実施し、送信権獲得後、TCP−ACKを通信メディアに出力し、送信処理が終了する。
図15は、このようなバースト的にデータ転送が行われている場合の送信側端末と、受信側端末との間のデータ転送動作の一例を示すシーケンス図である。図15では、図14の通信相手端末1503を送信側端末、無線LAN端末(自通信端末)1501を受信側端末とした場合を示している。前述のように、TCPセグメントデータ送信側の通信相手端末1503から無線LANアクセスポイント1502までは、一般的にEthernet(登録商標)等の有線ネットワークで接続され、一般的に無線LANよりも伝送能力が高い。
図示例では、通信相手端末1503(送信側端末)からバースト的にTCP−DATA#1〜TCP−DATA#8が送信されている。無線LAN端末1501(受信側端末)では、TCP−DATA#2、TCP−DATA#4、TCP−DATA#6、TCP−DATA#8を受信した時点にてそれぞれTCP−ACKを生成している。ここで、送信側端末から無線LANアクセスポイント1502を介してバースト的に受信側端末にTCP−DATAが送られているため、受信側端末は通信メディアの送信権を獲得することができず、TCP−ACKの送信が遅延させられる。
TCP−DATA#1およびTCP−DATA#2に対する確認応答であるTCP−ACKを送信する際には、既に新たなTCPセグメントデータを正常に受信しているにもかかわらず、それぞれのTCP−ACKを順次送信する。したがって、既に新たなTCPセグメントデータを受信しているにもかかわらず、TCP−ACKが分割して、TCP−DATAの送信側端末に送られてしまうことになる。これにより、従来の方法では、システムのスループットの低下、通信端末の消費電力の増大等を招くという課題を有していた。
本発明は、上記事情に鑑みてなされたもので、その目的は、TCP通信時におけるTCP確認応答セグメント(TCP−ACK)の分割送信を抑制し、効率的に確認応答を行うことが可能な通信端末および通信方法を提供することにある。
本発明は、少なくとも一つ以上の通信端末とTCPプロトコルを利用した通信を行う通信端末であって、自通信端末のメディアアクセス制御処理部にTCP確認応答セグメントを含む送信データが到着してから通信メディアに送信するまでに送信待機する頻度を推定する送信待機頻度推定部と、前記推定した送信待機頻度情報に基づき、前記TCP確認応答セグメントの生成頻度を変更するTCP確認応答生成制御部と、を有し、前記TCP確認応答生成制御部は、前記送信待機頻度推定部において送信待機頻度が所定値より高いと推定した場合に、前記TCP確認応答セグメントの生成頻度を下げる制御を行う通信端末を提供する。
本構成によって、TCP確認応答セグメント(TCP−ACK)の送信待機が発生しやすい環境、すなわち、送信データの滞留頻度が高く、直ちに送信権を得ることが困難な状況では、TCP−ACKの生成タイミングを遅らせることにより、一つのTCP−ACKによってより多くのTCPセグメントデータの受信確認を送信側に通知することが可能となる。このため、TCP通信時におけるTCP−ACKの分割送信を抑制し、効率的に確認応答を行うことが可能になる。
また、本発明は、少なくとも一つ以上の通信端末とTCPプロトコルを利用した通信を行う通信端末における通信方法であって、自通信端末のメディアアクセス制御処理部にTCP確認応答セグメントを含む送信データが到着してから通信メディアに送信するまでに送信待機する頻度を推定するステップと、前記推定した送信待機頻度情報に基づき、送信待機頻度が所定値より高いと推定した場合に、前記TCP確認応答セグメントの生成頻度を下げるように、前記TCP確認応答セグメントの生成頻度を変更するステップと、を有する通信方法を提供する。
本構成によって、TCP確認応答セグメント(TCP−ACK)の送信待機が発生しやすい環境、すなわち、送信データの滞留頻度が高く、直ちに送信権を得ることが困難な状況では、TCP−ACKの生成タイミングを遅らせることにより、一つのTCP−ACKによってより多くのTCPセグメントデータの受信確認を送信側に通知することが可能となる。このため、TCP通信時におけるTCP−ACKの分割送信を抑制し、効率的に確認応答を行うことが可能になる。
本発明によれば、TCP通信時におけるTCP確認応答セグメント(TCP−ACK)の分割送信を抑制し、効率的に確認応答を行うことが可能な通信端末および通信方法を提供できる。
本発明の実施の形態1における通信端末の構成を示すブロック図
実施の形態1における送信待機頻度推定部の構成を示すブロック図
実施の形態1におけるTCP−ACKの生成タイミングを変更する処理フローを示す図
実施の形態1における滞留予測情報を算出する処理フローを示す図
実施の形態1における送信側端末と受信側端末との間のデータ転送動作の一例を示すシーケンス図
実施の形態2における送信待機頻度推定部の構成を示すブロック図
実施の形態2における滞留予測情報を算出する処理フローを示す図
実施の形態3における送信待機頻度推定部の構成を示すブロック図
実施の形態3における滞留予測情報を算出する処理フローを示す図
実施の形態4における通信端末の構成を示すブロック図
実施の形態4における送信データの格納処理フローを示す図
実施の形態4における送信データの送信処理フローを示す図
実施の形態4における送信側端末と受信側端末との間のデータ転送動作の一例を示すシーケンス図
無線LANを用いたデータ通信システムの一例を示す図
バースト的にデータ転送が行われている場合の送信側端末と受信側端末との間のデータ転送動作の一例を示すシーケンス図
以下、本発明の実施の形態について、図面を参照しながら説明する。
本実施形態では、半二重伝送路による通信を行う通信端末および通信方法の一例として、無線LANシステムにおける構成例を示す。ここでは、無線LAN端末に適用した通信装置である通信端末を想定し、無線LANアクセスポイントを介して通信相手端末と通信する場合を例示する。この際、通信相手端末は、送信側端末とし、無線LAN端末(自通信端末)を受信側端末とする。
(実施の形態1)
図1〜図4は、本発明の実施の形態1における通信端末および通信方法の一例を示したものである。図1は、実施の形態1における通信端末の構成を示すブロック図である。
本実施形態の通信端末は、PHY処理部101、MAC処理部102、送信待機頻度推定部103、IP処理部104、TCP処理部105、TCP−ACK生成制御部106、端末制御部107を有して構成される。
PHY処理部101は、通信メディアへのデータ送受信、変復調、符号化などの物理層処理を行うものである。MAC処理部(メディアアクセス制御処理部)102は、通信メディアへのアクセス制御処理を行うものである。IP処理部104は、IP層のヘッダ解析、付与等のIP層に関連する処理を行うものである。
TCP処理部105は、TCPセグメントデータの送受信処理、送達確認応答であるTCP−ACK(TCP確認応答セグメント)の生成処理など、TCP層に関連する処理を行うものである。TCP確認応答生成制御部として機能するTCP−ACK生成制御部106は、通信メディアの状況に応じてTCP−ACK生成のタイミングを制御するものである。端末制御部107は、ネットワークの上位層の処理、端末の管理処理等を行うものである。
なお、図示はしていないが、本通信端末は、通信端末の利用者が、本通信端末の動作を選択して実行するためのユーザインタフェースであるキー、ディスプレイ等を有している。また、本通信端末は、音声処理用のコーデック、マイク、スピーカ、および、カメラ、バイブレータ、並びに、プログラム格納および実行のためのメモリなどの構成要素も有している。
MAC処理部102は、通信メディアへのアクセス制御処理を行う。また、MAC処理部102は、PHY処理部101から取得した受信フレームのMAC層処理を行いIP処理部104に渡す処理と、IP処理部104から取得した送信パケットのMAC層処理を行いPHY処理部101に渡す処理とを行う。また、MAC処理部102は、接続先の無線LANアクセスポイントからデータを受信した場合に、送信待機頻度推定部103に通知する機能を有する。
送信待機頻度推定部103は、MAC処理部102がIP処理部104から受け取った送信パケットの送信がどれほど滞留するかを示す滞留予測情報を算出し、TCP−ACK生成制御部106に通知する処理を行う。この滞留予測情報は、送信待機頻度情報としてTCP−ACK生成制御部106に送られる。
図2は、実施の形態1における送信待機頻度推定部103の構成を示すブロック図である。送信待機頻度推定部103は、インターバルタイマ201、データフレーム受信数カウンタ202、滞留頻度閾値管理部203、滞留予測情報算出部204を有して構成される。
インターバルタイマ201は、TCP処理部105からのデータ受信セッション設立通知を受け、インターバルタイマを起動する処理と、所定のインターバル値に基づいたタイマ満了通知を滞留予測情報算出部204に通知する処理とを行う。インターバル値は、例えば、無線LANアクセスポイントからのビーコン間隔と同一の値に設定する、固定値にする、などとする。
データフレーム受信数カウンタ202は、MAC処理部102からデータ受信通知を受けるとカウンタ値を1加算する。また、データフレーム受信数カウンタ202は、インターバルタイマ201のタイマ満了に伴い、カウンタ値を初期化する。このカウンタ値の初期化は、滞留予測情報算出部204の指示に従い実施する。ここで、インターバルタイマ201及びデータフレーム受信数カウンタ202は、所定期間の受信データ数を算出する受信データ数算出部の機能を実現する。
滞留頻度閾値管理部203は、データフレーム受信数カウンタ202のカウンタ値により、滞留頻度のレベルを規定するための閾値を管理する。例えば、滞留頻度は、レベル1(小)・レベル2(中)・レベル3(大)の3段階に規定する。レベル1とレベル2の境界値は、通常状態でのTCP−ACK生成頻度の2倍すなわちデータフレーム受信数4回とし、レベル2とレベル3の境界値を、通常状態でのTCP−ACK生成頻度の3倍すなわちデータフレーム受信数6回とする。
滞留予測情報算出部204は、インターバルタイマ201からタイマ満了通知を受けると、データフレーム受信数カウンタ202のカウンタ値および滞留頻度閾値管理部203の閾値情報を参照する。これらの情報の参照の結果、データフレーム受信数カウンタ値がどの滞留頻度レベルに属するかを判定し、判定結果をTCP−ACK生成制御部106に通知し、カウンタ値の初期化をデータフレーム受信数カウンタ202に指示する。
このように、本実施の形態の送信待機頻度推定部103は、TCPセッションが確立し、データ受信セッションが設立してから所定のインターバルを常時カウントして所定期間の受信データ数を算出する。さらに、送信待機頻度推定部103は、インターバル毎のデータフレーム受信数に基づき、滞留頻度レベルを決定する。また、送信待機頻度推定部103は、この滞留頻度レベルを滞留予測情報として、TCP−ACK生成制御部106に通知する。
TCP処理部105は、TCPセグメントデータを受信するためのセッションを設立すると、送信待機頻度推定部103にデータ受信セッション設立通知を行う。また、TCP処理部105は、TCP−ACK生成制御部106からの通知に基づき、IP層からいくつTCPセグメントデータを正常受信したらTCP−ACKを生成するかを管理するACKパラメータを変更する。
TCP処理部105は、このACKパラメータの変更により、定常状態でのTCP−ACKの生成タイミングを、TCPセグメントデータを2セグメント受信した後、または、4セグメント受信した後、6セグメント受信した後などに設定する。なお、一般的には、輻輳状態では1セグメント受信した後にTCP−ACKを生成し、定常状態では2セグメント受信した後にTCP−ACKを生成するように構成されている。ここで、定常状態とは、セッション開設や解放時、スロースタート時を除く、輻輳回避状態を示している。
TCP−ACK生成制御部106は、送信待機頻度推定部103から受け取った滞留予測情報(送信待機頻度情報)に基づき、TCP−ACKの生成頻度を管理するACKパラメータを変更するよう、TCP処理部105に通知する。この滞留予測情報は、上述したように所定のインターバル毎のデータフレーム受信数の大小を複数のレベルで示したものであり、TCP−ACKの送信待機中に次のTCPセグメントデータをどれだけ受信したかを示すものである。
すなわち、通常の生成頻度でTCPセグメントデータを2セグメント受信後にTCP−ACKを生成した場合には、TCP−ACKが発生してから送信可能となるまでの滞留度合い(滞留頻度、すなわち送信待機頻度)を示す情報に相当する。例えば、送信待機頻度が所定値より高い場合には、TCP−ACKの生成頻度を下げるように、生成頻度の制御を行う。なお、送信待機頻度が所定値より低い場合には、TCP−ACKの生成頻度を上げるような制御をしてもよい。
このように、滞留予測情報に基づいてACKパラメータを変更してTCP−ACKの生成頻度を調整することによって、TCP−ACKの生成タイミングを制御でき、伝送路の使用状況に応じたTCP−ACKの生成および送信が可能になる。
上記のように構成された実施の形態1の通信端末の動作について、以下に説明する。
図3は、実施の形態1の通信端末において、TCP−ACKの生成タイミングを変更する処理フローを示す図である。
通信端末は、TCP通信を開始すると、送信待機頻度推定部103にて滞留予測情報算出処理を行い、TCP−ACK生成制御部106に滞留予測情報を通知する(ステップS301)。TCP−ACK生成制御部106では、滞留予測情報による滞留頻度を判定し、滞留頻度に応じて以下の処理を行う。
滞留頻度が小さい場合、ステップS302の判定にてYesの場合、TCP−ACK生成制御部106は、ACKパラメータをデフォルト値に設定し、TCP処理部105は通常のTCPパラメータにてTCP通信を行う(ステップS303)。デフォルト値の場合、TCP処理部105は、一般には、定常状態にてTCPセグメント2個の受信に対し、1つのTCP−ACKを生成する。
滞留頻度が中程度の場合、ステップS302の判定にてNo、かつステップS304の判定にてNoの場合、TCP−ACK生成制御部106は、ACKパラメータを設定する。TCP−ACK生成制御部106は、ACKパラメータとして、TCP−ACK生成タイマタイムアウト値、およびTCP−ACK生成頻度(TCP−ACKを生成するために受信するTCPセグメント数)をデフォルト値の2倍に設定する。
そして、TCP処理部105は、設定後のTCPパラメータにてTCP通信を行う(ステップS305)。この場合、TCP処理部105は、デフォルト値において、定常状態にてTCPセグメントを2個受信するごとに1つのTCP−ACKを生成する場合には、TCPセグメント4個の受信に対し、1つのTCP−ACKを生成する。
滞留頻度が大きい場合、ステップS304の判定にてYesの場合、TCP−ACK生成制御部106は、ACKパラメータとして、TCP−ACK生成タイマタイムアウト値、およびTCP−ACK生成頻度をデフォルト値の3倍に設定する。そして、TCP処理部105は設定後のTCPパラメータにてTCP通信を行う(ステップS306)。
この場合、TCP処理部105は、デフォルト値において、定常状態にてTCPセグメントを2個受信するごとに1つのTCP−ACKを生成する場合には、TCPセグメント6個の受信に対し、1つのTCP−ACKを生成する。
図4は、実施の形態1の通信端末において、送信待機頻度推定部103による滞留予測情報を算出する処理フローを示す図である。
送信待機頻度推定部103による滞留予測情報算出処理では、まず始めに、タイマおよびカウンタを初期化する(ステップS401)。具体的には、送信待機頻度推定部103は、滞留頻度を計測するために使用するインターバルタイマ201、および、インターバルタイマ起動中に受信するデータフレーム数を管理するデータフレーム受信数カウンタ202を初期化する。
次に、送信待機頻度推定部103は、自通信端末が接続している接続先アクセスポイント(AP)(ここでは、無線LANアクセスポイント)からのデータを受信したか否かを判定する(ステップS402)。ステップS402の判定にてYes、すなわち接続先アクセスポイントからのデータを受信した場合には、データフレーム受信数カウンタ202を1加算する(ステップS403)。また、送信待機頻度推定部103は、インターバルタイマ201がタイマ満了したか否かを判定する(ステップS404)。
ここで、インターバルタイマ201のタイマ満了値とは、例えば100msであり、この値は変更が可能である。ステップS402の判定にてNoの場合、すなわち接続先アクセスポイントからのデータを受信していない場合は何もせずステップS404に進む。インターバルタイマ201がタイマ満了していない場合(ステップS404の判定にてNo)、ステップS402に戻り、接続先アクセスポイントからのデータを受信したか否かを判定する。
インターバルタイマ201がタイマ満了している場合(ステップS404の判定にてYes)、送信待機頻度推定部103は、データフレーム受信数カウンタ202のカウンタ値がレベル1未満であるか否かを判定する(ステップS405)。ステップS405の判定でYes、すなわち、データフレーム受信数カウンタ202のカウンタ値がレベル1未満である場合には、ステップS406に進む。滞留予測情報算出部204は、滞留頻度を小に設定して滞留頻度情報としてTCP−ACK生成制御部106に通知し(ステップS406)、ステップS401へ戻る。
また、ステップS405の判定でNo、すなわち、データフレーム受信数カウンタ202のカウンタ値がレベル1以上である場合には、ステップS407に進む。滞留予測情報算出部204は、データフレーム受信数カウンタ202のカウンタ値がレベル2未満であるか否かを判定する(ステップS407)。ステップS407の判定でYes、すなわち、データフレーム受信数カウンタ202のカウンタ値がレベル2未満である場合には、ステップS408に進む。滞留予測情報算出部204は、滞留頻度を中に設定して滞留頻度情報としてTCP−ACK生成制御部106に通知し(ステップS408)、ステップS401へ戻る。
また、ステップS407の判定でNo、すなわち、データフレーム受信数カウンタの値がレベル2以上である場合には、ステップS409に進む。滞留予測情報算出部204は、滞留頻度を大に設定して滞留頻度情報としてTCP−ACK生成制御部106に通知し(ステップS409)、ステップS401へ戻る。
図5は、実施の形態1における送信側端末と受信側端末との間のデータ転送動作の一例を示すシーケンス図である。図5の例は、滞留頻度が大きい場合の例であり、TCP−ACK生成頻度を通常の3倍に設定した場合を示している。図示例では、送信側端末である通信相手端末503から無線LANアクセスポイント502を介して、受信側端末である通信端末(無線LAN端末)501に対して、バースト的にTCPセグメントデータが送信されている。
この場合、通信端末501は、所定のインターバルにおけるデータフレーム受信数が多く、滞留頻度が大であり、通常のTCP−ACK生成頻度ではTCP−ACKの送信に遅延が生じる。このため、通信端末501は、TCP−ACK生成頻度をデフォルト値の3倍に設定し、TCP−DATA#1〜TCP−DATA#6を受信した時点にて1つのTCP−ACK#1〜#6を生成する。これにより、通信端末501は、TCP−ACKの生成タイミングを遅延させる。そして、通信端末501は、送信権の獲得後にTCP−ACK#1〜#6を無線LANアクセスポイント502に返信する。
上記のような本実施の形態の処理によって、所定期間の受信データ数によって通信回線の混雑度を推定し、送信データの滞留頻度を推定することが可能である。この際、TCP−ACKの送信待機が発生しやすい環境、すなわち、送信データの滞留頻度が高く、直ちに送信権を得ることが困難な状況では、TCP−ACKの生成タイミングを遅らせるように生成頻度を調整する。すなわち、本実施の形態では、より多くのTCPセグメントデータを受信後にTCP−ACKを生成する。
このようなTCP−ACK生成タイミングの調整により、一つのTCP−ACKでより多くのTCPセグメントデータの受信確認を送信側に通知することが可能となる。これにより、TCP−ACKの送信回数を削減することができるため、通信端末の消費電力を下げることができる。また、TCP−ACKの送信回数を削減することで通信メディアに送信するデータフレーム量を削減できるため、システムのスループットを向上することができる。
したがって、本実施の形態によれば、伝送路の使用状況に応じてTCP−ACKの生成タイミングを制御することで、TCP−ACKの分割送信を抑制でき、効率的に確認応答を行うことが可能になる。
なお、上述した本実施の形態における、滞留頻度レベル数、滞留頻度レベルの境界値は、変更が可能である。本実施の形態では、レベルを3段階、レベル1・レベル2の境界値は通常のTCP−ACK生成頻度の2倍すなわちデータフレーム受信数4回とした。また、レベル2・レベル3の境界値は、通常のTCP−ACK生成頻度の3倍すなわちデータフレーム受信数6回と設定したが、この限りではない。例えば、レベルは、2段階あるいは4段階以上に設定し、それぞれの境界値を別の値に設定する、等としてもよい。
また、滞留頻度レベルに応じて変更するACKパラメータ等のTCPパラメータ値に関しても、上述したものは一例であり、2倍、3倍でなく、+2回、+3回という変更にするようにした場合でも、同様の効果が得られるのは言うまでもない。
(実施の形態2)
図6〜図7は、本発明の実施の形態2における通信端末および通信方法の一例を示したものである。実施の形態2は、通信端末の基本構成は図1に示した実施の形態1における構成と同様であり、送信待機頻度推定部103の代わりに構成および機能が異なる送信待機頻度推定部601を備えている。なお、実施の形態1と同様の構成要素には同一の符号を付してその説明を省略し、異なる部分のみを説明する。
実施の形態2のMAC処理部102は、キャリアセンスを行いデータフレームの送信権獲得試行中に他の通信端末からのキャリアを検出した場合、および送信権を獲得して送信が完了した場合に、送信待機頻度推定部601に通知する。
送信待機頻度推定部601は、MAC処理部102がIP処理部104から取得したTCP−ACKを格納したIPパケットの送信が、どれほど滞留するかを示す滞留予測情報を算出し、TCP−ACK生成制御部106に通知する処理を行う。
図6は、実施の形態2における送信待機頻度推定部601の構成を示すブロック図である。送信待機頻度推定部601は、キャリア検出回数カウンタ602、滞留頻度閾値管理部603、滞留予測情報算出部604を有して構成される。
キャリア検出回数カウンタ602は、キャリアセンス中に他の通信端末からの送信(送信信号または干渉波)を検出した回数、すなわちキャリア検出回数をカウントする。キャリア検出回数のカウントの開始、およびカウンタ値の初期化は、滞留予測情報算出部604の指示に従い実施する。
ここで、キャリア検出回数カウンタ602は、送信データが発生してから通信メディアに送信するまでの間に、他端末からの送信を検出した回数を記録する送信検出回数記録部の機能を実現する。
滞留頻度閾値管理部603は、キャリア検出回数カウンタ602のカウンタ値により、滞留頻度のレベルを規定するための閾値を管理する。例えば、滞留頻度閾値管理部603は、滞留頻度をレベル1(小)・レベル2(中)・レベル3(大)の3段階に規定し、レベル1とレベル2の境界値をキャリア検出回数5回、レベル2とレベル3の境界値をキャリア検出回数10回とする。
滞留予測情報算出部604は、TCP処理部105より、TCP−ACKをIP処理部104に送出した通知を受けると、キャリア検出回数のカウント開始をキャリア検出回数カウンタ602に指示する。また、滞留予測情報算出部604は、MAC処理部102からTCP−ACKを含むデータフレームの送信完了通知を受けると、キャリア検出回数カウンタ602のカウンタ値および滞留頻度閾値管理部603の閾値情報を参照する。
滞留予測情報算出部604は、これらの情報の参照の結果、キャリア検出回数カウンタ値がどの滞留頻度レベルに属するかを判定する。さらに、滞留予測情報算出部604は、判定結果をTCP−ACK生成制御部106に通知し、カウンタ値の初期化をキャリア検出回数カウンタ602に指示する。
以上、本実施の形態の送信待機頻度推定部601は、TCP処理部105でTCP−ACKを生成してからMAC処理部102によりTCP−ACKの送信が完了するまでの間、キャリア検出回数をカウントする。さらに、送信待機頻度推定部601は、この期間のキャリア検出回数に基づき、滞留頻度レベルを決定する。送信待機頻度推定部601は、この滞留頻度レベルを滞留予測情報としてTCP−ACK生成制御部106に通知する。
TCP処理部105は、TCP−ACKをIP処理部104に渡す処理を実施したことを送信待機頻度推定部601に通知する機能を有する。また、TCP処理部105は、TCP−ACK生成制御部106からの通知に基づき、IP層からいくつTCPセグメントデータを正常受信したらTCP−ACKを生成するかを管理するACKパラメータを変更する。
TCP処理部105は、ACKパラメータの変更により、定常状態でのTCP−ACKの生成タイミングを、TCPセグメントデータを2セグメント受信した後、あるいは、4セグメント受信した後、6セグメント受信した後などに設定する。なお、一般的には、輻輳状態では、1セグメント受信した後にTCP−ACKを生成し、定常状態では2セグメント受信した後にTCP−ACKを生成するように構成されている。
TCP−ACK生成制御部106は、送信待機頻度推定部601から受け取った滞留予測情報に基づき、TCP−ACKの生成頻度を管理するACKパラメータを変更するよう、TCP処理部105に通知する。この滞留予測情報は、上述したようにTCP−ACKの生成から送信完了までの間、送信権獲得試行中のキャリア検出回数の大小を複数のレベルで示したものである。つまり、滞留予測情報は、TCP−ACKの送信待機中に他の通信端末からのキャリアをどれだけ受信したかを示すものである。
すなわち、通常の生成頻度でTCPセグメントデータを2セグメント受信後にTCP−ACKを生成した場合に、TCP−ACKが発生してから送信可能となるまでにどのぐらい滞留するかの度合い(滞留頻度)を示す情報に相当する。このように、滞留予測情報に基づいてACKパラメータを変更してTCP−ACKの生成頻度を調整することによって、TCP−ACKの生成タイミングを制御でき、伝送路の使用状況に応じたTCP−ACKの生成および送信が可能になる。
図7は、実施の形態2の通信端末において、滞留予測情報を算出する処理フローを示す図である。
送信待機頻度推定部601による滞留予測情報算出処理では、まず始めに、滞留頻度を計測するために使用する、データの送信権獲得試行中のキャリア検出回数を管理するキャリア検出回数カウンタ602を初期化する(ステップS701)。
次に、送信待機頻度推定部601は、自通信端末にて送信するTCP−ACKデータが発生したか否かを判定する(ステップS702)。ステップS702の判定にてNo、すなわち送信データが発生していない場合、送信データが発生するまでステップS702の判定を繰り返す。
送信データが発生すると(ステップS702の判定にてYes)、MAC処理部102は、データの送信権獲得のためのキャリアセンスを実施する(ステップS703)。そして、MAC処理部102は、キャリアセンスの結果に基づき、他の通信端末からのキャリアを検出したか否かによって、送信権を獲得できたかどうかを判定する(ステップS704)。
キャリアセンスの結果、送信権がまだ獲得できていない場合(ステップS704の判定にてNo)、すなわち他の通信端末からのキャリアを検出した場合、キャリア検出回数カウンタ602を1加算する(ステップS708)。さらに、MAC処理部102は、再び送信権獲得のためのキャリアセンス処理(ステップS703)に戻る。
キャリアセンスの結果、送信権を獲得すると(ステップS704の判定にてYes)、送信待機頻度推定部601は、キャリア検出回数カウンタ602のカウンタ値がレベル1未満であるか否かを判定する(ステップS705)。ステップS705の判定でYes、すなわち、キャリア検出回数カウンタ602のカウンタ値がレベル1未満である場合には、ステップS706に進む。滞留予測情報算出部604は、滞留頻度を小に設定して滞留頻度情報としてTCP−ACK生成制御部106に通知し(ステップS706)、ステップS701へ戻りキャリア検出回数カウンタ602を初期化する。
また、ステップS705の判定でNo、すなわち、キャリア検出回数カウンタ602のカウンタ値がレベル1以上である場合には、キャリア検出回数カウンタ602のカウンタ値がレベル2未満であるか否かを判定する(ステップS709)。ステップS709の判定でYes、すなわち、キャリア検出回数カウンタ602のカウンタ値がレベル2未満である場合には、ステップS710に進む。滞留予測情報算出部604は、滞留頻度を中に設定して滞留頻度情報としてTCP−ACK生成制御部106に通知し(ステップS710)、ステップS701へ戻りキャリア検出回数カウンタ602を初期化する。
また、ステップS709の判定でNo、すなわち、キャリア検出回数カウンタ602のカウンタ値がレベル2以上である場合には、ステップS711に進む。滞留予測情報算出部604は、滞留頻度を大に設定して滞留頻度情報としてTCP−ACK生成制御部106に通知し(ステップS711)、ステップS701へ戻りキャリア検出回数カウンタ602を初期化する。
上記のような本実施の形態の処理によって、他端末からの送信の検出回数によって通信回線の混雑度を推定し、送信データの滞留頻度を推定することが可能である。この際、他端末の送信によりTCP−ACKの送信待機が発生しやすい環境、すなわち、送信データの滞留頻度が高く、直ちに送信権を得ることが困難な状況では、TCP−ACKの生成頻度を調整する。具体的には、本実施の形態は、TCP−ACKの生成タイミングを遅らせて、より多くのTCPセグメントデータを受信後にTCP−ACKを生成するように生成頻度を調整するようにしたものである。
このようなTCP−ACK生成タイミングの調整により、一つのTCP−ACKでより多くのTCPセグメントデータの受信確認を送信側に通知することが可能となる。これにより、実施の形態1と同様、TCP−ACKの送信回数を削減することができるため、通信端末の消費電力を下げることができる。また、本実施の形態では、TCP−ACKの送信回数を削減することで通信メディアに送信するデータフレーム量を削減できるため、システムのスループットを向上することができる。
なお、上述した本実施の形態における、滞留頻度レベル数、滞留頻度レベルの境界値は、変更が可能である。本実施の形態では、レベルを3段階、レベル1・レベル2の境界値はキャリア検出回数5回、レベル2・レベル3の境界値はキャリア検出回数10回と設定したが、この限りではない。例えば、レベルは2段階あるいは4段階以上に設定する、それぞれの境界値を別の値に設定する、等としてもよい。
また、滞留頻度レベルに応じて変更するACKパラメータ等のTCPパラメータ値は、上述したものは一例であり、2倍、3倍でなく、+2回、+3回という変更にするようにした場合でも、同様の効果が得られるのは言うまでもない。
なお、送信待機頻度推定部601は、特定の期間、TCP−ACK生成制御部106にTCP処理部105へのTCP−ACK生成禁止を通知するようにしてもよい。
これは、キャリア検出回数カウンタ602の稼働中は、常に滞留頻度がレベル3になるようにレベル2・レベル3の境界値を設定することで実現できる。ただし、レベル3においては、TCP−ACK生成タイマタイムアウト値をRTT閾値、TCP−ACK生成頻度を無限大に設定するものとする。
(実施の形態3)
図8〜図9は、本発明の実施の形態3における通信端末および通信方法の一例を示したものである。実施の形態3は、通信端末の基本構成は図1に示した実施の形態1における構成と同様であり、送信待機頻度推定部103の代わりに構成および機能が異なる送信待機頻度推定部801を備えている。なお、実施の形態1と同様の構成要素には同一の符号を付してその説明を省略し、異なる部分のみを説明する。
実施の形態3のMAC処理部102は、送信待機中のデータフレームがTCP−ACKを含むデータか否かを判別し、TCP−ACKを含むデータフレームの送信権を獲得して送信が完了した場合に送信待機頻度推定部801に通知する。このデータフレームの判定機能は、MAC処理部102にて、IPヘッダおよびTCPヘッダのオフセットを管理することで、送信データのヘッダ情報からTCP−ACKを含むデータフレームか否かを判定することができる。
送信待機頻度推定部801は、MAC処理部102がIP処理部104から取得したTCP−ACKを格納したIPパケットの送信が、どれほど滞留するかを示す滞留予測情報を算出し、TCP−ACK生成制御部106に通知する処理を行う。
図8は、実施の形態3における送信待機頻度推定部801の構成を示すブロック図である。送信待機頻度推定部801は、TCP−DATA受信回数カウンタ802、滞留頻度閾値管理部803、滞留予測情報算出部804を有して構成される。
TCP−DATA受信回数カウンタ802は、TCP−ACKの送信待機中に新たに受信したTCP−DATA数(TCPセグメントデータの数)、すなわちそのセッションに関わるデータの受信回数をカウントする。TCP−DATA受信回数のカウントの開始、およびカウンタ値の初期化は、滞留予測情報算出部804の指示に従い実施する。
ここで、TCP−DATA受信回数カウンタ802、特定の区間、TCP確認応答セグメントの送信相手からのTCPデータを受信した回数を、記録するTCPデータ受信回数記録部の機能を実現する。なお、特定の区間とは、TCP確認応答セグメントが発生してから通信メディアに送信するまでの間である。
滞留頻度閾値管理部803は、TCP−DATA受信回数カウンタ802のカウンタ値により、滞留頻度のレベルを規定するための閾値を管理する。例えば、滞留頻度閾値管理部803は、滞留頻度をレベル1(小)・レベル2(中)・レベル3(大)の3段階に規定する。なお、レベル1とレベル2の境界値は、通常状態でのTCP−ACK生成頻度の2倍すなわちTCP−DATA受信回数4回とする。また、レベル2とレベル3の境界値は、通常状態でのTCP−ACK生成頻度の3倍すなわちTCP−DATA受信回数6回とする。
滞留予測情報算出部804は、TCP処理部105より、TCP−ACKをIP処理部104に送出した通知を受けると、TCP−DATA受信回数のカウント開始をTCP−DATA受信回数カウンタ802に指示する。また、滞留予測情報算出部804は、MAC処理部102からTCP−ACKを含むデータフレームの送信完了通知を受けると、TCP−DATA受信回数カウンタ802のカウンタ値および滞留頻度閾値管理部803の閾値情報を参照する。
これらの情報の参照の結果、TCP−DATA受信回数カウンタ値がどの滞留頻度レベルに属するかを判定し、判定結果をTCP−ACK生成制御部106に通知し、カウンタの初期化をTCP−DATA受信回数カウンタ802に指示する。
このように、本実施の形態の送信待機頻度推定部801は、特定の区間、TCP−DATA受信回数をカウントし、この期間のTCP−DATA受信回数に基づき、滞留頻度レベルを決定する。なお、特定の区間とは、TCP処理部105でTCP−ACKを生成してからMAC処理部102によりTCP−ACKの送信が完了するまでの間である。送信待機頻度推定部801は、この滞留頻度レベルを滞留予測情報として、TCP−ACK生成制御部106に通知する。
TCP処理部105は、TCP−ACKをIP処理部104に渡す処理を実施したことを送信待機頻度推定部801に通知する機能を有する。さらに、TCP処理部105は、TCP−DATAの受信をした場合に、送信待機頻度推定部801に通知する機能を有する。また、TCP処理部105は、TCP−ACK生成制御部106からの通知に基づき、IP層からいくつTCPセグメントデータを正常受信したらTCP−ACKを生成するかを管理するACKパラメータを変更する。
TCP処理部105は、ACKパラメータの変更により、定常状態でのTCP−ACKの生成タイミングを、TCPセグメントデータを2セグメント受信した後、あるいは、4セグメント受信した後、6セグメント受信した後などに設定する。なお、一般的には、輻輳状態では1セグメント受信した後にTCP−ACKを生成し、定常状態では2セグメント受信した後にTCP−ACKを生成するように構成されている。
TCP−ACK生成制御部106は、送信待機頻度推定部801から受け取った滞留予測情報に基づき、TCP−ACKの生成頻度を管理するACKパラメータを変更するよう、TCP処理部105に通知する。この滞留予測情報は、上述したようにTCP−ACKの生成から送信完了までの間、送信権獲得試行中のTCPセグメントデータの受信回数の大小を複数のレベルで示したものである。すなわち、滞留予測情報は、TCP−ACKの送信待機中に自通信端末が受信するセッションに関わるTCPセグメントデータを、どれだけ受信したかを示すものである。
すなわち、通常の生成頻度でTCPセグメントデータを2セグメント受信後にTCP−ACKを生成した場合に、TCP−ACKが発生してから送信可能となるまでにどのぐらい滞留するかの度合い(滞留頻度)を示す情報に相当する。このように、滞留予測情報に基づいてACKパラメータを変更してTCP−ACKの生成頻度を調整することによって、TCP−ACKの生成タイミングを制御でき、伝送路の使用状況に応じたTCP−ACKの生成および送信が可能になる。
図9は、実施の形態3の通信端末において、送信待機頻度推定部801による滞留予測情報を算出する処理フローを示す図である。
送信待機頻度推定部801による滞留予測情報算出処理では、まず始めに、滞留頻度を計測するために使用するカウンタを初期化する(ステップS901)。具体的には、送信待機頻度推定部801は、TCP−ACKの送信権獲得試行中のTCP−DATA受信回数を管理するTCP−DATA受信回数カウンタ802を初期化する。
次に、送信待機頻度推定部801は、自通信端末にて送信するTCP−ACKデータが発生したか否かを判定する(ステップS902)。ステップS902の判定にてNo、すなわち送信データが発生していない場合、送信データが発生するまでステップS902の判定を繰り返す。
送信データが発生すると(ステップS902の判定にてYes)、MAC処理部102は、データの送信権獲得のためのキャリアセンスを実施する(ステップS903)。そして、キャリアセンスの結果に基づき、MAC処理部102は、他の通信端末からのキャリアを検出したか否かによって送信権を獲得できたかどうかを判定する(ステップS904)。
キャリアセンスの結果、送信権がまだ獲得できていない場合(ステップS904の判定にてNo)、すなわち他の通信端末からのキャリアを検出した場合、ステップS907に進む。MAC処理部102は、通信相手端末からのTCP−DATAを受信したか否かを判定する(ステップS907)。ステップS907の判定にてYes、すなわち、通信相手端末からのTCP−DATAを検出した場合、MAC処理部102は、TCP−DATA受信回数カウンタ802を1加算する(ステップS908)。さらに、MAC処理部102は、再び送信権獲得のためのキャリアセンス処理(ステップS903)に戻る。
また、ステップS907の判定にてNo、すなわち、通信相手端末からのTCP−DATAを検出していない場合は、そのまま送信権獲得のためのキャリアセンス処理(ステップS903)に戻り。つまり、送信権が獲得できるまでは、キャリアセンス処理を実施する。
キャリアセンスの結果、送信権を獲得すると(ステップS904の判定にてYesの場合)、送信待機頻度推定部801は、TCP−DATA受信回数カウンタ802のカウンタ値がレベル1未満であるか否かを判定する(ステップS905)。
ステップS905の判定でYes、すなわち、TCP−DATA受信回数カウンタ802のカウンタ値がレベル1未満である場合には、ステップS906に進む。滞留予測情報算出部804は、滞留頻度を小に設定して滞留頻度情報としてTCP−ACK生成制御部106に通知し(ステップS906)、ステップS901へ戻り、TCP−DATA受信回数カウンタ802を初期化する。
また、ステップS905の判定でNoの場合には、TCP−DATA受信回数カウンタ802のカウンタ値が、レベル1以上であり、かつ、レベル2未満であるか否かを判定する(ステップS909)。ステップS909の判定でYes、すなわち、TCP−DATA受信回数カウンタ802のカウンタ値がレベル2未満である場合には、ステップS910に進む。滞留予測情報算出部804は、滞留頻度を中に設定して滞留頻度情報としてTCP−ACK生成制御部106に通知し(ステップS910)、ステップS901へ戻り、TCP−DATA受信回数カウンタ802を初期化する。
また、ステップS909の判定でNo、すなわち、TCP−DATA受信回数カウンタ802のカウンタ値がレベル2以上である場合には、ステップS911に進む。滞留予測情報算出部804は、滞留頻度を大に設定して滞留頻度情報としてTCP−ACK生成制御部106に通知し(ステップS911)、ステップS901へ戻り、TCP−DATA受信回数カウンタ802を初期化する。
以上、本実施の形態は、自端末からのTCP−ACKを含む送信データ待機中に新たな送信相手からのTCP−DATAの受信回数によって、通信回線の混雑度および通信相手から到着するデータのバースト性を推定し、送信データの滞留頻度を推定することが可能である。
この際、他端末の送信によりTCP−ACKの送信待機が発生しやすい環境、すなわち、送信データの滞留頻度が高く、直ちに送信権を得ることが困難な状況では、TCP−ACKの生成頻度を調整する。具体的には、本実施の形態は、TCP−ACKの生成タイミングを遅らせて、より多くのTCPセグメントデータを受信後にTCP−ACKを生成するように生成頻度を調整するようにしたものである。このようなTCP−ACK生成タイミングの調整により、一つのTCP−ACKでより多くのTCPセグメントデータの受信確認を送信側に通知することが可能となる。
これにより、実施の形態1および2と同様、TCP−ACKの送信回数を削減することができるため、通信端末の消費電力を下げることができる。また、TCP−ACKの送信回数を削減することで通信メディアに送信するデータフレーム量を削減できるため、システムのスループットを向上することができる。
なお、上述した本実施の形態における、滞留頻度レベル数、滞留頻度レベルの境界値は、変更が可能である。本実施の形態では、レベルを3段階、レベル1・レベル2の境界値は通常のTCP−ACK生成頻度の2倍すなわちTCP−DATA受信回数4回、レベル2・レベル3の境界値は通常のTCP−ACK生成頻度の3倍すなわちTCP−DATA受信回数6回と設定したが、この限りではない。例えば、レベルは2段階あるいは4段階以上に設定する、それぞれの境界値を別の値に設定する、等としてもよい。
また、滞留頻度レベルに応じて変更するACKパラメータ等のTCPパラメータ値に関しても、上述したものは一例であり、2倍、3倍でなく、+2回、+3回という変更にするようにした場合でも、同様の効果が得られるのは言うまでもない。
なお、送信待機頻度推定部801は、特定の期間、TCP−ACK生成制御部106にTCP処理部105へのTCP−ACK生成禁止を通知するようにしてもよい。なお特定の期間とは、TCP処理部105よりTCP−ACKをIP処理部104に送出した通知を受けた時点から、MAC処理部102よりTCP−ACKの送信権を獲得して送信が完了した通知を受けるまでの間である。
これは、TCP−DATA受信回数カウンタ802の稼働中は、常に滞留頻度がレベル3になるようにレベル2・レベル3の境界値を設定することで実現できる。ただし、レベル3においては、TCP−ACK生成タイマタイムアウト値をRTT閾値、TCP−ACK生成頻度を無限大に設定するものとする。
(実施の形態4)
図10〜図13は、本発明の実施の形態4における通信端末および通信方法の一例を示したものである。図10は、実施の形態4における通信端末の構成を示すブロック図である。なお、実施の形態1と同様の構成要素には同一の符号を付してその説明を省略し、異なる部分のみを説明する。
MAC処理部102は、通信メディアへのアクセス制御処理を行う。また、MAC処理部102は、PHY処理部101から受け取った受信フレームのMAC層処理を行いIP処理部104に渡す処理を行う。また、MAC処理部102は、送信データ選択部1001から受け取った送信データフレームにMAC層処理を行いPHY処理部101に渡す処理を行う。また、MAC処理部102は、キャリアセンスの結果、送信権獲得した場合には送信データ選択部1001に通知する機能を有する。
IP処理部104は、MAC処理部102から受け取ったIPパケットのヘッダ解析を行い、TCP処理部105などの上位層処理部にIPパケットのペイロードを渡す処理を行う。また、IP処理部104は、TCP処理部105から受け取ったTCPセグメントデータにIPヘッダを付与し、送信データ選択部1001に渡す処理を行う。
送信データ選択部1001は、IP処理部104から受け取ったIPパケットを解析し、送信するデータがTCP−DATA受信に対するTCP−ACKであるか否かを解析する。ここで、TCP−ACKである場合、実際に送信権が得られるまでにIP処理部104から受け取ったTCP−ACKを最新のものに更新し、MAC処理部102に渡す処理を行う。また、送信待機中のデータがある場合には、データ送信権獲得試行を行うように送信待機通知をMAC処理部102に発行する。
送信データ選択部1001は、送信データ判定部1002、追加TCP−ACK格納部1003、送信待機TCP−ACK格納部1004、送信データバッファ1005、出力選択部1006を有して構成される。
送信データ判定部1002は、IP処理部104から受け取ったIPパケットを解析し、格納されているデータがTCP−ACKか否かを判定する。この際、送信データ判定部1002は、IPパケットのIPヘッダ情報から、IPパケットのペイロードがTCPか否かを識別し、さらに、TCPである場合にはTCPヘッダ情報を解析し、TCP−ACKか否かを識別する。ここで、TCP−ACKである場合、送信データ判定部1002は、追加TCP−ACK格納部1003にTCP−ACKデータを渡す。
また、TCP−ACKではない場合、送信データ判定部1002は、送信データバッファ1005に送信データを渡す。また、送信データ判定部1002は、送信データの到着順情報を管理し、追加TCP−ACK格納部1003および送信データバッファ1005に送信データを渡す場合には、データ到着順を示す到着順情報と共に渡すようにする。この到着順情報とは、システムで管理する時刻情報とする。
追加TCP−ACK格納部1003は、新規にTCP−ACKデータを送信データ判定部1002から受け取ると、送信待機TCP−ACK格納部1004にデータが到着したことおよびデータの宛先を通知する。
送信待機TCP−ACK格納部1004は、追加TCP−ACK格納部1003からのTCP−ACKデータを順に出力選択部1006に渡すようにデータをバッファに格納する。データ出力順は、システムのキューイングアルゴリズムに従う。データ出力順として、ここでは到着順に順次出力する例を挙げるが、他の例として、データに優先度を設け、優先度順に出力するようにしてもよい。優先度順に処理をさせるには、バッファを優先度クラスごとに区別して設ければよい。到着順に出力する場合は、1クラスのバッファを設けることと等価である。
また、送信待機TCP−ACK格納部1004は、追加TCP−ACK格納部1003からの新規データ到着通知を受けると、該当する宛先に対するTCP−ACKデータが既に格納されているかを検索する。ここで、既に該当宛先のTCP−ACKデータが格納されている場合は、そのTCP−ACKデータと、追加TCP−ACK格納部1003に格納された新たなTCP−ACKデータとの差し替えを行う。
このとき、データの到着順情報の差し替えは、行わない。また、送信待機TCP−ACK格納部1004は、出力選択部1006からの到着順情報通知要求に対し、格納されているTCP−ACKデータのうち、送信順位の最も高いもののデータの到着順序情報を渡す処理を行う。なお、送信順位の最も高いものとは、例えば、最も早く格納されたTCP−ACKデータとする。また、送信待機TCP−ACK格納部1004は、出力選択部1006からの送信許可指示を受け、送信順位の最も高いTCP−ACKを含むデータを出力し、出力選択部1006を介してMAC処理部102に渡す。
送信データバッファ1005は、送信データ判定部1002から受け取った送信データをバッファに格納する処理を行う。また、出力選択部1006からの到着順情報通知要求に対し、格納されている送信データのうち、送信順位の最も高いもの(本例では最も早く格納されたもの)のデータの到着順序情報を渡す処理を行う。また、送信待機TCP−ACK格納部1004は、出力選択部1006からの送信許可指示を受け、送信順位の最も高い送信データを出力し、出力選択部1006を介してMAC処理部102に渡す。
出力選択部1006は、送信待機TCP−ACK格納部1004および送信データバッファ1005に対し到着順情報通知要求を行い、それぞれの到着順情報を取得する。そして、取得した到着順情報を用いて、送信優先度が高いのはどちらのデータかを判定する処理を行う。また、出力選択部1006は、MAC処理部102からの送信権獲得通知を受けると、送信待機TCP−ACK格納部1004または送信データバッファ1005のいずれかのうち、送信順位が高いデータをMAC処理部102に渡す。なお、送信順位が高いとは、到着順序の早いデータをいう。
図11は、実施の形態4の通信端末において、送信データの格納処理フローを示す図である。
送信データ選択部1001内の送信データ判定部1002は、IP処理部104から送信データを受け取ったか否かを判定し、送信データの到着を待つ(ステップS1101)。IP処理部104から送信データを受け取ると(ステップS1101の判定でYes)、受け取った送信データがTCP−ACKか否かを判定する(ステップS1102)。
ここで、送信データがTCP−ACKである場合(ステップS1102の判定でYes)、送信データ判定部1002は、追加TCP−ACK格納部1003に送信データを到着順情報と共に格納する(ステップS1103)。送信待機TCP−ACK格納部1004は、追加TCP−ACK格納部1003にTCP−ACKデータが格納された通知を受ける。送信待機TCP−ACK格納部1004は、追加TCP−ACK格納部1003に格納されたTCP−ACKデータと同一の宛先のものが、送信待機TCP−ACK格納部1004に格納されているか否かを検索する(ステップS1104)。
ここで、該当する同一宛先のTCP−ACKデータが存在する場合(ステップS1104の判定でYes)は、ステップS1105に進む。送信待機TCP−ACK格納部1004は、格納されている該当送信データを、追加TCP−ACK格納部1003に格納されているTCP−ACKデータに書き換える(ステップS1105)。このとき、到着順情報の書き換えは行わない。また、該当送信データがTCP−DATAを含む場合には、TCP−ACK情報のみを置き換える。すなわち、送信待機TCP−ACK格納部1004は、TCPヘッダのアクノレッジメント番号を置き換え、チェックサムを再計算する。
また、該当する同一宛先のTCP−ACKデータが存在しない場合(ステップS1104の判定でNo)、ステップS1107に進む。送信待機TCP−ACK格納部1004は、追加TCP−ACK格納部1003に格納されているTCP−ACKデータを、到着順情報と共に送信待機TCP−ACK格納部1004内に転送する(ステップS1107)。さらに、送信待機TCP−ACK格納部1004は、追加TCP−ACK格納部1003内の情報をクリアする。
また、ステップS1102の判定にてNo、すなわち送信データがTCP−ACKでないと判定した場合、送信データ判定部1002は、送信データバッファ1005に送信データを到着順情報と共に格納する(ステップS1106)。
図12は、実施の形態4の通信端末において、送信データの送信処理フローを示す図である。
送信データ選択部1001は、送信待機TCP−ACK格納部1004、もしくは送信データバッファ1005のいずれかに送信データがあるか否かを判定する(ステップS1201)。送信データが存在する場合(ステップS1201の判定にてYes)、送信データ選択部1001は、MAC処理部102に送信待機データの存在を示す送信待機通知を発行する(ステップS1202)。
送信待機通知を受けたMAC処理部102は、データの送信権獲得試行、すなわちキャリアセンスを実施する(ステップS1203)。そして、MAC処理部102は、キャリアセンスの結果に基づき、他の通信端末からのキャリアを検出したか否かによって送信権を獲得できたかどうかを判定する(ステップS1204)。
キャリアセンスの結果、送信権を獲得すると(ステップS1204の判定にてYesの場合)、MAC処理部102から送信データ選択部1001に送信権獲得通知が発行される。この送信権獲得通知を受けると、送信データ選択部1001内の出力選択部1006は、送信データバッファ1005に格納されている最優先の送信データの到着順情報を取得する。同様に、送信データ選択部1001内の出力選択部1006は、送信待機TCP−ACK格納部1004内に格納されている最優先の送信データの到着順情報を取得する(ステップS1205)。
出力選択部1006は、ステップS1205にて取得した到着順情報から、送信データバッファ1005と、送信待機TCP−ACK格納部1004のどちらのデータの送信優先度が高いかを判定する(ステップS1206)。ここで、送信待機TCP−ACK格納部1004内のデータの方が高優先度の場合、出力選択部1006は、送信待機TCP−ACK格納部1004内の最高優先度のTCP−ACKデータをMAC処理部102に渡す(ステップS1207)。
一方、ステップS1206の判定にて、送信データバッファ1005内のデータの方が高優先度の場合、出力選択部1006は、送信データバッファ1005内の最高優先度の送信データをMAC処理部102に渡す(ステップS1208)。
図13は、実施の形態4における送信側端末と受信側端末との間のデータ転送動作の一例を示すシーケンス図である。図示例では、送信側端末である通信相手端末1303から無線LANアクセスポイント1302を介して、受信側端末である通信端末(無線LAN端末)1301に対して、バースト的にTCPセグメントデータが送信されている。
この場合、通信端末1301は、そのセッションに関わるデータフレーム受信数が多く、送信権獲得までに時間がかかるので、通常のTCP−ACK生成頻度ではTCP−ACKの送信に遅延が生じる。このため、通信端末1301は、送信権獲得できるまでTCP−ACKを更新し、送信権獲得できた時点で更新したTCP−ACKを送信する。
図13の例では、TCP−DATA#1〜TCP−DATA#2を受信した時点でTCP−ACK#1〜#2を、TCP−DATA#3〜TCP−DATA#4を受信した時点でTCP−ACK#3〜#4を、TCP−DATA#5〜TCP−DATA#6を受信した時点でTCP−ACK#5〜#6を、TCP−DATA#7〜TCP−DATA#8を受信した時点でTCP−ACK#7〜#8をそれぞれ生成し、TCP−ACKを更新していく。
これにより、通信端末1301は、送信遅延発生時のTCP−ACKを1つにまとめる。そして、通信端末1301は、TCP−DATA#8を受信した時点で送信権が獲得できると、更新後のTCP−ACK#1〜#8を無線LANアクセスポイント1302に返信する。このように、TCP−ACKを送信可能になるまでに時間がかかる場合であっても、更新後の1つにまとめたTCP−ACKを送信することで、TCP−ACKの分割送信を抑制できる。
上記のような本実施の形態は、送信待機中のTCP−ACKと同一の宛先に向けたTCP−ACKが新たに発生した場合に、一つのTCP−ACKにまとめることが可能である。これは、他端末の送信によりTCP−ACKの送信待機が発生しやすい環境、すなわち、送信データの滞留頻度が高く、直ちに送信権を得ることが困難な状況で、有効である。つまり、本実施の形態では、TCP−ACKの送信権が得られるまでに順次発生した同一宛先へのTCP−ACKを最新のものに置き換えるようにしたものである。
このようなTCP−ACK生成処理により、一つのTCP−ACKでより多くのTCPセグメントデータの受信確認を送信側に通知することが可能となる。これにより、TCP−ACKの送信回数を削減することができるため、通信端末の消費電力を下げることができる。また、TCP−ACKの送信回数を削減することで通信メディアに送信するデータフレーム量を削減できるため、システムのスループットを向上することができる。
なお、上述した本実施の形態において、到着順情報はシステムで管理する時刻情報としたが、送信データ発生ごとに1加算される識別子を付与したものを用いるなどしてもよい。また、到着順情報は、QoS情報(送信優先度情報)に対して重み付けを行った結果の値としてもよい。
また、本実施の形態では、実施の形態4の構成の通信端末に、実施の形態1〜3における送信待機頻度推定部のいずれか、および実施の形態1〜3におけるTCP処理部のいずれかを設けてもよい。これにより、本実施の形態では、他端末の送信によりTCP−ACKの送信待機が発生しやすい環境において、TCP処理部105におけるTCP−ACK生成処理が削減されるため、システムの負荷を削減することができる。
また、本実施の形態は、半二重通信を行う通信システムにおいて、MAC層におけるキャリアセンス状況に応じて、TCP層におけるTCP−ACK生成タイミングを制御することで、TCP−ACKの分割送信を抑制することができる。また、本実施の形態は、TCP通信時において送信待機が頻繁に発生し、TCP−ACKの送信に遅延が発生する環境においても、TCP−ACKの送信回数を削減することができ、TCP通信処理の効率化を実現することが可能である。これによって、本実施の形態は、通信端末の消費電力の低減、システムのスループットの向上等を図ることが可能になる。
なお、本発明は、本発明の趣旨ならびに範囲を逸脱することなく、明細書の記載、並びに周知の技術に基づいて、当業者が様々な変更、応用することも本発明の予定するところであり、保護を求める範囲に含まれる。また、本発明は、発明の趣旨を逸脱しない範囲で、上記実施の形態における各構成要素を任意に組み合わせてもよい。
上述した実施の形態では、PHY処理部101、MAC処理部102について、無線LANに接続する通信端末に適用した場合を例にとりその構成および動作を記載したが、これに限るものではない。本実施の形態は、半二重通信を行う通信方式、あるいは通信システムとして、例えばPLC(Power Line Communications)などに用いる通信装置に適用してもよい。
上記各実施の形態では、本発明をハードウェアで構成する場合を例にとって説明したが、本発明はソフトウェアで実現することも可能である。
また、上記各実施の形態の説明に用いた各機能ブロックは、典型的には集積回路であるLSIとして実現される。上記のPHY処理部101、MAC処理部102、送信待機頻度推定部103、601、801、IP処理部104、TCP処理部105、TCP−ACK生成制御部106、端末制御部107、送信データ選択部1001等は、集積回路であるLSIとして典型的には実現される。これらは、個別に1チップ化されてもよいし、一部または全てを含むように1チップ化されてもよい。ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
本出願は、2009年11月2日出願の日本特許出願(特願2009−252237)に基づくものであり、その内容はここに参照として取り込まれる。
本発明にかかる通信端末および通信方法は、TCP通信時におけるTCP−ACKの分割送信を抑制し、効率的に確認応答を行うことが可能となる効果を有し、特に、無線LANなどの半二重通信リンクを用いてTCP/IP通信を行う通信端末、家電機器等に対して有用である。また、本発明にかかる通信端末および通信方法は、車載LAN内に接続されTCP/IP通信を行う車載通信機器、家庭内ネットワーク用通信インタフェースを搭載した携帯電話等の用途にも応用できる。
101 PHY処理部
102 MAC処理部
103、601、801 送信待機頻度推定部
104 IP処理部
105 TCP処理部
106 TCP−ACK生成制御部
107 端末制御部
201 インターバルタイマ
202 データフレーム受信数カウンタ
203、603、803 滞留頻度閾値管理部
204、604、804 滞留予測情報算出部
501、1301 通信端末
502、1302 無線LANアクセスポイント
503、1303 通信相手端末
602 キャリア検出回数カウンタ
802 TCP−DATA受信回数カウンタ
1001 送信データ選択部
1002 送信データ判定部
1003 追加TCP−ACK格納部
1004 送信待機TCP−ACK格納部
1005 送信データバッファ
1006 出力選択部