JP5703048B2 - 通信装置、通信装置の制御方法、およびプログラム - Google Patents

通信装置、通信装置の制御方法、およびプログラム Download PDF

Info

Publication number
JP5703048B2
JP5703048B2 JP2011023242A JP2011023242A JP5703048B2 JP 5703048 B2 JP5703048 B2 JP 5703048B2 JP 2011023242 A JP2011023242 A JP 2011023242A JP 2011023242 A JP2011023242 A JP 2011023242A JP 5703048 B2 JP5703048 B2 JP 5703048B2
Authority
JP
Japan
Prior art keywords
received frame
frame
reordering
received
tcp
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2011023242A
Other languages
English (en)
Other versions
JP2012165141A (ja
Inventor
仁志 青木
仁志 青木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2011023242A priority Critical patent/JP5703048B2/ja
Publication of JP2012165141A publication Critical patent/JP2012165141A/ja
Application granted granted Critical
Publication of JP5703048B2 publication Critical patent/JP5703048B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Detection And Prevention Of Errors In Transmission (AREA)
  • Communication Control (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

本発明は、受信フレームのリオーダ処理を行う通信装置、通信装置の制御方法、およびプログラムに関する。
IEEE802.11n規格では高速化を実現するために、複数のフレームをアグリゲート(連結)して送信するAggregationがサポートされている。MPDU(MAC protocol data unit)単位でフレームをアグリゲートするA-MPDU(aggregation MPDU)では、確認応答に従来のAckではなく、Block Ackが利用される。Block Ackはアグリゲートされた各MPDUサブフレームに対してそれぞれ確認応答をする。また、同時に一部のMPDUサブフレーム受信に失敗した場合には、受信に失敗したMPDUサブフレームをBlock Ackで通知することで再送要求を行う。そのため、A-MPDUで送信された場合、MPDUサブフレームの到着する順序が異なることが頻繁に起こり得る。このとき、TCP等で通信を行っていた場合、途中で抜けたフレームが後から到達しているにも関わらず、TCP層で再送をしてしまい、スループットの低下を招く可能性がある。
TCPのあるバージョンにおけるレート制御アルゴリズムでは、単一のパケットロスでは全体としてのスループットに影響をあたえないものの、連続して続くパケットロスにはネットワークが輻輳をしているとして過敏に反応しスループットを大きく劣化させる。
無線区間の場合、必ずしも輻輳のためにパケットロスが発生するとは限らず、ネットワーク上位層でデータの送信を止めるよりもネットワーク下位層でできるだけ再送やリオーダを実施したほうがよい場合が存在する。
このようなフレームが順序通りに到達しなかった場合に、途中で抜けたフレームを待ってから、フレームの順序を並び直す技術としてリオーダリングがある。データリンク層でリオーダリングを行えばTCP層にフレームが順序通りに通知されるため、スループットの低下を防ぐことができる。そのため、無線通信ではリオーダリングが広く行われている。
しかし、リオーダリング処理を行った場合、順序通りに揃うまで途中のフレームを常に保持する必要があるため、その分必要なバッファが大きくなる。また通信遅延も大きくなるといった問題がある。
またTCPのデータ通信においては、順序どおりにデータが来なかった場合においても、一定期間あるいは一定フレーム数は、再送処理は行われずに当該データを待つ。そのため、下位層においてフレームの中抜けが少ない場合は、下位層でフレームのリオーダリングを行わなくてもスループットはあまり低下しない。
特許文献1では音情報を受信する際に、リアルタイムで再生する場合にはリオーダリングせず受信を行い、受信後に再生する場合にはリオーダリングを行うことが開示されている。
特許文献2では、リオーダリングに必要なバッファの効率化を図っている。QoS情報に基づいてリオーダリングバッファのランク付けを行い、メモリ解放が必要になったときには、そのランクに応じてリオーダリングバッファのメモリを解放することが開示されている。
また、特許文献3、特許文献4では中継装置においてリオーダリングに必要となる制御を行うことが開示されている。
特開2003-101662号公報 特開2006-33019号公報 特開2007-81678号公報 特開2007-300502号公報
これらの先行技術におけるリオーダリングは、下位層でフレームの中抜けが発生する頻度によらずに行われていた。そのため、フレームの中抜けが少ない環境においてはリオーダリングを行わなくてもスループットはあまり低下しないにも関わらず、必要なバッファサイズが大きくなってしまったり、通信遅延が必要以上に大きくなったりするといった課題がある。
上記の課題に鑑み、本発明は、フレームの中抜けの発生頻度が低い場合に、リオーダリングに必要なバッファサイズを小さくすることを目的とする。
上記の目的を達成する本発明に係る通信装置は、
複数のフレームを受信する受信手段と、
前記受信手段により受信された受信フレームに含まれるシーケンス番号に基づいて、前記受信フレームの第1の層におけるロス率を算出する算出手段と、
前記受信フレームのシーケンス番号に基づいて、前記第1の層よりも上位層である第2の層におけるフレーム再送の発生頻度である再送率を算出する再送率算出手段と、
記ロス率および前記再送率それぞれ閾値以上である場合に前記受信フレームをリオーダリングすると判断する判断手段と、
前記判断手段により前記受信フレームをリオーダリングすると判断された場合に、前記受信フレームをリオーダリングするリオーダリング手段と、
を備えることを特徴とする。
本発明によれば、フレームの中抜けの発生頻度が低い場合に、リオーダリングに必要なバッファサイズを小さくすることができる。また、不要なリオーダリングを抑制できるため、通信遅延を小さくすることができる。
第1実施形態の無線LAN端末の構成図。 第1実施形態の受信フレームの構成図。 第1実施形態のリオーダバッファの構成図。 第1実施形態の受信フレームの処理のフローチャート。 第1実施形態のリオーダ判断部のフローチャート。 第2実施形態の無線LAN端末の構成図。 第2実施形態の受信フレームの処理のフローチャート。 第2実施形態のリオーダ判断部のフローチャート。 第3実施形態の無線LAN端末の構成図。 第3実施形態の受信フレームの処理のフローチャート。 第3実施形態のTCP再送率測定部のフローチャート。 第3実施形態のリオーダ判断部のフローチャート。
(第1実施形態)
以下、図1乃至図5を参照して、本発明の第1実施形態について述べる。図1は、第1実施形態を適用できる無線LAN端末(通信装置)の構成を示している。本実施形態では、図1の無線LAN端末101に本発明を適用する。無線LAN端末101は、IEEE802.11n規格に則った無線LAN通信が可能な端末である。無線LAN端末101は、TCP/IP処理部102と、無線LAN制御部103と、TCP/IP通知部104と、無線LANエラー率測定部105と、リオーダ判断部106と、リオーダ制御部107とを備える。
TCP/IP処理部102は、TCP、UDP、IPといったプロトコルを処理する制御プログラムから構成される。無線LAN制御部103は、無線LAN通信を行うための無線LANチップやアンテナ、そしてそれらの制御プログラムから構成される。図示されない他の端末から、無線LAN端末101にフレームが送信された場合に、無線LAN制御部103でフレームが受信され、最初に受信処理が実施される。TCP/IP通知部104は、無線LAN制御部103で受信されたフレームがTCP/IP処理部102で処理されるべきIPデータであった場合に、TCP/IP処理部102に該フレームを通知するための制御プログラムである。
無線LANエラー率測定部105は、無線LAN上で発生したエラー率を算出するためのプログラムである。無線LANエラー率測定部105は、フレームに抜けが発生した場合にエラーとしてカウントして、最後に受信した100個のフレームから受信フレームのエラー率(ロス率)を測定するものである。
リオーダ判断部106は、フレームに抜けが発生した場合にリオーダリングを実施するか否かを決定するプログラムである。リオーダ制御部107は、受信されたフレームで中抜けが発生した場合に、フレームの順序を整える処理を行うプログラムであり、リオーダリングを実施する際に必要となるリオーダバッファを含んだものである。
図2(a)は、無線LAN端末101で受信されるフレームの構成例を示す。本実施形態で、単にフレームと述べたときは図2(a)のように示されるフレームのことを指すものとし、A-MPDUフレームと区別して表す。一方、A-MPDUフレームは、図2(a)で示されるフレームが複数個連結されたフレームとして表される。無線LAN端末101で、A-MPDUフレームが受信された場合には、無線LAN制御部103がA-MPDUフレームを複数のフレームに分割する。また、図2(b)は、MPDUヘッダの詳細を示す。図2(c)は、シーケンス制御の詳細を示す。各フレームは、MPDUヘッダ(図2(b))内のシーケンス制御(図2(c))のシーケンス番号が連続になるように送信される。そのため、A-MPDUフレームを受信した際にフレームに途中で抜けが発生した場合には、受信されるフレームのシーケンス番号が連続にならずに抜けが生じることになる。また、Block Ack等により途中で抜けたフレームが再送されて無線LAN端末101で受信された場合にも、シーケンス番号は連続にならず、これまで受信したフレームのシーケンス番号よりも小さいシーケンス番号のフレームが受信されることになる。本実施形態、および以降の実施形態では説明を簡便にするために、フラグメントは行われないものとして説明する。
図3(a)は、リオーダバッファの構成例を示す。図3(a)に示されるリオーダバッファのデータは、リオーダ制御部107によってリオーダリングを実施するために保存される。領域301は、最後にTCP/IP処理部102に通知されたシーケンス番号を格納するための領域であり、フレームに抜けが発生したことや、フレームの並びが揃ったことを検出するために使用される。領域302、領域303、および領域304はいずれもフレームのシーケンス番号と、フレームへのポインタとを格納する。これは抜けたフレームが生じた際に、先行して受信したフレームのシーケンス番号とフレームへのポインタを格納するのに使用される。図3(a)では3個分のフレームの領域が図示されているが、領域の数は問わない。各領域は、静的に確保された領域であってもよいが、動的に領域を確保するようにした方がバッファの利用効率化につながる。
図3(b)は、具体的にデータが格納されたときのリオーダバッファの例を示す。図3(b)は、シーケンス番号1000からシーケンス番号1005までのフレームが端末から送信され、シーケンス番号1001およびシーケンス番号1004のフレームが抜けて受信されたときの例である。シーケンス番号1001が抜けて受信されたため、最後にTCP/IP処理部102に通知されたシーケンス番号は1000であり、続いて受信されたシーケンス番号1002、シーケンス番号1003、シーケンス番号1005のフレームのそれぞれのシーケンス番号とフレームへのポインタとが対にして格納される。
図3(b)の状態から、無線LAN制御部103がシーケンス番号1001のフレームを受信すると、シーケンス番号1001からシーケンス番号1003までのフレームが揃う。そこでシーケンス番号1000、シーケンス番号1001、シーケンス番号1002、およびシーケンス番号1003のフレームは、リオーダ制御部107によりフレームの順序を整えられ、TCP/IP通知部104が、TCP/IP処理部102にフレームを通知して処理を依頼する。そして最後にTCP/IP処理部102に通知されたシーケンス番号は、シーケンス番号1003となり、リオーダバッファからシーケンス番号1002およびシーケンス番号1003は削除される。
一方で、図3(b)の状態から、無線LAN制御部103がシーケンス番号1004のフレームを受信した場合は、まだシーケンス番号1001のフレームが抜けたままである。そのため、リオーダ制御部107は、シーケンス番号1004のフレームをリオーダバッファに追加する。TCP/IP通知部104は、シーケンス番号1001のフレームが受信されるまでTCP/IP処理部102への通知を行わない。
図4のフローチャートを参照して、本実施形態における無線LAN端末101のフレーム受信時の処理の手順を説明する。図4のS401、S402、S403、S405、およびS406の各処理は、無線LANエラー率測定部105により実行される。S404およびS411の各処理は、TCP/IP通知部104により実行される。S407の処理は、リオーダ判断部106により実行される。S408、S409、およびS410の各処理は、リオーダ制御部107により実行される。
図示されない端末から無線LAN端末101にフレームが送信されると、まず、無線LAN制御部103が該フレームを受信する。無線LAN制御部103はフレームを受信すると、無線LANエラー率測定部105へ受信したフレームを渡す。また、無線LAN制御部103は、A-MPDUフレームを受信した場合には、無線LAN制御部103はA-MPDUフレームを複数のフレームへ分割した上で、各フレームを一つずつ無線LANエラー率測定部105へ渡して処理を依頼する。
S401において、無線LANエラー率測定部105は、フレームを渡されると、MPDUヘッダのシーケンス制御からシーケンス番号を取得して、この取得されたシーケンス番号と最後にTCP/IP処理部102に通知されたシーケンス番号とを比較する。このとき、取得されたシーケンス番号が、最後にTCP/IP処理部102に通知されたシーケンス番号よりも1大きい場合には順番通りと判断し、S402へ進む。取得されたシーケンス番号が、最後にTCP/IP処理部102に通知されたシーケンス番号よりも2以上大きいと判断された場合には、フレームに抜けが発生したとして、S405へ進む。取得されたシーケンス番号が、最後にTCP/IP処理部102に通知されたシーケンス番号よりも小さい場合には、再送フレームが到達したとして、S408へ進む。
S402において、無線LANエラー測定部105は、受信フレームが順序どおりに到達した場合には、受信フレームを、正常に受信されたパケットであるとしてカウントする。
S405において、無線LANエラー測定部105は、フレームに抜けが発生した場合にはエラーとしてカウントする。
一方で、無線LANエラー測定部105は、再送フレームと判断された場合にはカウントを行わない。
S403およびS406において、無線LANエラー率測定部105は、最後に正常またはエラーとしてカウントされた、最新の100個の受信フレームからそれぞれの場合の無線LANエラー率を算出する。
S402で順序通りだと判断されたフレームは、S403での無線LANエラー率の算出後、S404でTCP/IP通知部104により、TCP/IP処理部102に通知されて、ネットワーク上位層において受信したフレームの処理を依頼する。このとき、何らかのMAC処理を行った後に、TCP/IP処理部102に受信フレームを渡してもよい。例えば、受信フレームがA-MSDU(MAC service data unit)フレームであれば、A-MSDUフレームを複数のMSDUに分割して、TCP/IP処理部102に渡してもよい。
次にS405でエラーとしてカウントされた受信フレームについて述べる。S406で無線LANエラー率測定部105により無線LANエラー率が算出された後にS407が実施される。S407の処理は、リオーダ判断部106により実施され、詳細は図5で示される。図5のフローチャートは、リオーダ判断部106の処理の詳細を示す。
リオーダ判断部106は、無線LANエラー率測定部105によって測定された無線LANエラー率によりリオーダリングするか否かを決定する。無線LANエラー率は、S403またはS406で最後に算出された無線LANエラー率を用いる。
S501において、リオーダ判断部106は、無線LANエラー率が5%以上(閾値以上)であるか否かを判定する。無線LANエラー率が5%以上(閾値以上)であると判定された場合には(S501;YES)、S502へ進む。一方、無線LANエラー率が5%未満(閾値未満)であると判定された場合には(S501;NO)、S503へ進む。S502において、リオーダ判断部106は、リオーダすると決定する。一方、S503において、リオーダ判断部106は、リオーダしないと決定する。なお、閾値として5%を基準としたが、必ずしも5%に限られず、任意の所定値を閾値として設定してもよい。
S502でリオーダすると決定された場合は、図4のフローチャートにおけるS407のYesに該当し、S409へ進む。S409において、リオーダ制御部107は、リオーダリングをすると決定された受信フレームをリオーダバッファに格納する。当該フレームはフレームの順序が揃った後に、TCP/IP処理部102に渡される。そのため、フレームの順序が揃うまではリオーダバッファに格納されたまま保持される。
一方で、S503でリオーダリングしないと判断された場合は、図4のフローチャートにおけるS407のNoに該当し、S404へ進む。
S404において、TCP/IP通知部102は、当該受信フレームをTCP/IP処理部102に通知する。すなわち、フレームに抜けがあるまま、ネットワーク上位層で当該フレームの処理が実施されることになる。
次にS401で再送フレームとして判断された受信フレームの処理を行うS408の処理について述べる。
S408において、受信フレームが再送フレームである場合、リオーダ制御部107は、リオーダバッファに格納された受信フレームのシーケンス番号から、抜けたフレームが揃っているかどうかを判断する。抜けたフレームが揃っていると判断された場合(S408;YES)、S410へ進む。抜けたフレームが揃っていないと判断された場合(S408;NO)、S409へ進む。
S409において、リオーダ制御部107は、当該再送フレームをリオーダバッファに格納する。そして、抜けたフレームが揃うまで当該再送フレームはTCP/IP処理部102には通知されない。
S410において、S408で抜けたフレームが揃ったと判断された場合には、リオーダ制御部106は、リオーダリングを実施し、シーケンス番号に従ってリオーダバッファに格納された受信フレームを並び替える。
S411において、TCP/IP通知部104は、シーケンス番号の順序通りにリオーダリングされた受信フレーム群を、TCP/IP処理部102に通知する。S404、S409、およびS411の各処理の後、図4のフローチャートの処理が終了する。
本実施形態によれば、無線LANレベルでのエラー率に応じて、リオーダ処理を実施するか否かを制御することできる。これにより、フレームの抜けが少ない場合には通信遅延を小さくすることができる。同時に、リオーダバッファの領域を必要に応じて動的に確保すれば、リオーダリングに必要なバッファサイズを小さくできる。一方で、MAC層(無線LANのレベルで)フレームの抜けが多発してTCPのスループットが大きく劣化する可能性があるような場合には、MAC層においてリオーダ処理を実施してTCPのスループット低下を防ぐことができる。
(第2実施形態)
図6乃至8を参照して、本発明の第2実施形態について説明する。図6は、本実施形態を適用できる無線LAN端末601の構成を示している。無線LAN端末601は、TCP/IP処理部602と、無線LAN制御部603と、TCP/IP通知部604と、アプリケーション処理部605と、無線LANエラー率測定部606と、リオーダ判断部607と、リオーダ制御部608と、プロトコル識別部609とを備える。図6の無線LAN端末601は、図1で説明した無線LAN端末101の構成に、アプリケーション処理部605およびプロトコル識別部609が加わったものである。そのため、図1と同様な部分の説明は省略する。 アプリケーション処理部605は、TCP/IP処理部602を介してTCPまたはUDP通信をすることで動作するアプリケーションプログラムである。アプリケーションの例としては、画像データを送信するアプリケーションや、無線LAN端末601の状態の問い合わせに応答するステータス管理アプリケーションなどが挙げられる。
プロトコル識別部609は、受信フレームが指定されたプロトコルであるか否かの識別を行うプログラムである。プロトコル識別部609で識別されたプロトコルのフレームのみをリオーダ対象に含める。プロトコルの指定は、アプリケーション処理部605がポート番号を指定することにより行われる。
例えば、スループットが要求されるような画像データ送信アプリケーションであれば、アプリケーション処理部605は、画像データ送信アプリケーションが使用するポート番号を指定する。一方で、無線LAN端末601のステータスを管理するようなアプリケーションのような、スループットがあまり要求されないアプリケーションであれば、アプリケーション処理部605は、ポート番号の指定を行わない。あるいは、UDPによりリアルタイムでストリーミングが受信されるようなアプリケーションであれば、通信遅延を小さくするためにポート番号による指定を行わない。
図7のフローチャートを参照して、無線LAN端末601がフレームを受信したときの処理を説明する。S701乃至S706の各処理は、図4のS401乃至S406の各処理と同様である。また、S709乃至S712の各処理は、それぞれ、S409、S408、S410、およびS411の各処理と同様である。図4と同様の処理については説明を省略する。図4における処理との相違点は、S707およびS708の処理である。S707の処理はプロトコル識別部609によって実施される。S708の処理はリオーダ判断部607によって実施される。
S701でフレームに抜けがあると判断された場合には第1実施形態と同様に、S705、S706へ進み、S706において、無線LANエラー測定部105は、無線LANエラー率を算出する。その後、S707において、プロトコル識別部609は、プロトコル(データ種別)を識別する。プロトコル識別部609は、受信したフレームが予め指定されたポート番号のデータであるかどうかを識別し、その結果をリオーダ判断部607に通知する。S708において、リオーダ判断部607は、受信したフレームをリオーダ対象に含めるか否か判断する。第2実施形態におけるリオーダリング判断部607のS708の処理を図8に示す。
図8のフローチャートを参照して、リオーダ判断部607の詳細な処理について説明する。まずS801において、リオーダ判断部607は、無線LANエラー率測定部606により算出された無線LANエラー率が5%以上であるか否かを判断する。無線LANエラー率が5%以上であると判断された場合(S801;YES)、S802へ進む。一方、無線LANエラー率が5%未満であると判断された場合(S801;NO)、S804へ進む。S802において、リオーダ判断部607は、プロトコル識別部609によって識別された結果から、予めリオーダ対象として指定されたポート番号であるか否かを判断する。予めリオーダ対象として指定されたポート番号であると判断された場合(S802;YES)、S803へ進む。一方、予めリオーダ対象として指定されたポート番号でないと判断された場合(S802;NO)、S804へ進む。S804において、リオーダ判断部607は、リオーダリングしないと判断する。S805において、リオーダ判断部607は、リオーダリングすると判断する。以上で処理を終了する。
以上のように、リオーダ判断部607は、図8のフローチャートの処理に従って、図7のフローチャートのS708の処理においてリオーダリングするか否かを判断する。本実施形態によれば、アプリケーションやプロトコル毎にリオーダリングを実施するか否かを指定することができる。例えば、TCPでスループットを要求するようなアプリケーションであれば、リオーダリングを実施することにより、無線LANレベルでフレームの抜けが発生した場合においてもスループットの低下を低減させることができる。一方で、UDPで音声やビデオのストリーミングを受信する際には、通信遅延を小さくするためにリオーダリングを実施しないといった指定が可能となる。
(第3実施形態)
図9乃至12を参照して、本発明の第3実施形態について説明する。図9は、本実施形態を適用できる無線LAN端末901の構成を示している。無線LAN端末901は、TCP/IP処理部902と、無線LAN制御部903と、TCP/IP通知部904と、アプリケーション処理部905と、無線LANエラー率測定部906と、リオーダ判断部907と、リオーダ制御部908と、プロトコル識別部909と、TCP再送率測定部910とを備える。図9の無線LAN端末901は、図6の無線LAN端末601にTCP再送率測定部910が加わったものである。そのため、図6と同様な部分の説明は省略する。
TCP再送率測定部910は、受信したTCPデータからTCPで発生した、フレーム再送率を算出するためのプログラムである(再送率算出処理)。TCP再送率測定部910は、受信したTCPデータのTCPシーケンス番号で一番大きいものを基準TCPシーケンス番号として保持する。そして基準TCPシーケンス番号よりも大きいTCPデータを受信した場合には、再送でないとカウントする。一方で、基準TCPシーケンス番号よりも小さいTCPデータを受信した場合には、再送としてカウントする。また、TCPデータでない場合にはカウントしない。そして、TCP再送率測定部910は、最後に受信した100個のTCPデータからTCPの再送率を測定する。基準TCPシーケンス番号は、より大きいTCPシーケンス番号のTCPのデータを受信する度に更新する。
図10のフローチャートを参照して、無線LAN端末901がフレームを受信したときの処理の手順について説明する。S1001乃至S1007の各処理は、図7のS701乃至S707の各処理と同様である。また、S1010乃至S1013の各処理は、S709乃至S712の各処理と同様である。図7と同様の処理については説明を省略する。図7における処理との相違点は、S1008およびS1009の処理である。S1008の処理は、TCP再送率測定部910によって実施される。S1009の処理は、リオーダ判断部907によって実施される。
S1001でフレームに抜けがあると判断された場合には第2実施形態と同様に、S1005、S1006、S1007により無線LANエラー率の算出処理、プロトコルの識別処理が実施される。そして、その後にS1008において、TCP再送率測定部910は、TCPの再送発生率を測定する。S1008の詳細な処理を図11のフローチャートを参照して説明する。
S1101において、TCP再送率測定部910は、受信されたフレームがTCPプロトコルのデータであるか否かを判断する。受信フレームがTCPプロトコルのデータであると判断された場合(S1101;YES)、S1102へ進む。一方、受信フレームがTCPプロトコルのデータではないと判断された場合(S1101;NO)、TCP再送率を更新しないで処理を終了する。
S1102において、TCP再送率測定部910は、受信フレームのTCPシーケンス番号と基準TCPシーケンス番号とを比較する。受信フレームのTCPシーケンス番号が基準TCPシーケンス番号よりも大きいと判断された場合には(S1102;YES)、S1103へ進む。一方、受信フレームのTCPシーケンス番号が基準TCPシーケンス番号以下であると判断された場合には(S1102;NO)、S1104へ進む。
S1103において、TCP再送率測定部910は、受信フレームを再送でないとしてカウントする。また、TCP再送率測定部910は基準TCPシーケンス番号を更新する。S1104において、TCP再送率測定部910は、受信フレームを再送であるとしてカウントする。S1103、S1104で再送であるか否かをカウントした後に、S1105へ進む。
S1105において、TCP再送率測定部910は、TCP再送率を再計算する。TCP再送率は、最後に受信された100個のTCPデータから再送の発生頻度を計算することにより算出される。以上でS1008の処理が終了する。
S1008でTCP再送率を測定した後に、S1009において、リオーダ判断部907は、受信したフレームをリオーダ対象に含めるか否か判断する。第3実施形態におけるリオーダ判断部907によるS1009の処理を図12のフローチャートを参照して説明する。
まずS1201において、リオーダ判断部907は、無線LANエラー率測定部906により算出された無線LANエラー率が5%以上であるか否かを判断する。無線LANエラー率が5%以上であると判断された場合(S1202;YES)、S1202へ進む。一方、無線LANエラー率が5%未満であると判断された場合(S1202;NO)、S1205へ進み、リオーダリングしないと判断する。
S1202において、リオーダ判断部907は、プロトコル識別部909によって識別された結果から、予めリオーダ対象として指定されたポート番号であるか否かを判断する。予めリオーダ対象として指定されたポート番号であると判断された場合(S1202;YES)、S1203へ進む。一方、予めリオーダ対象として指定されたポート番号ではないと判断された場合(S1202;NO)、S1205へ進み、リオーダリングしないと判断する。
S1203において、リオーダ判断部907は、TCP再送率測定部910によって算出されたTCP再送率が3%以上(閾値以上)であるか否かを判断する(再送率判断処理)。TCP再送率が3%以上(閾値以上)であると判断された場合(S1203;YES)、S1204へ進む。一方、TCP再送率が3%未満(閾値未満)であると判断された場合(S1203;YES)、S1205へ進む。S1204において、リオーダ判断部907は、リオーダリングをすると判断する。S1205において、リオーダ判断部907は、リオーダリングをしないと判断する。以上で処理を終了する。なお、閾値として3%を基準としたが、必ずしも3%に限られず、任意の所定値を閾値として設定してもよい。
以上のように、リオーダ判断部907は、図12のフローチャートの処理に従って、図11のフローチャートのS1109の処理においてリオーダリングするか否かを判断する。以降の処理は第2実施形態と同様である。
本実施形態によれば、TCPの再送発生率に応じてリオーダリングを実施するか否かを決定することができる。無線LANレベルでパケット抜けが生じた場合でも、TCPレベルで再送が発生していなければスループットの低下は大きくないことがあり得る。このような場合はバッファの利用効率や、通信遅延からリオーダリングしない。
また、無線LANレベルでのパケット抜けが少ない場合であって、TCPレベルで再送が頻発している場合には、無線LANでの通信ではなく、ネットワークの別の箇所でロスが発生している可能性がある。このような場合にも、リオーダリングを実施してもスループットの低下は避けられないことが起こり得る。
本実施形態により、無線LANレベルでパケット抜けが生じていて、かつTCPのスループットが大きく低下しそうである場合には、リオーダリングを実施してスループットの低下を軽減することできる。一方で、そうでない場合にはリオーダリングを実施せずに、不必要にバッファを使用したり、通信遅延を大きくしてしまったりすることを防ぐことができる。
<各実施形態について>
本発明は上述した各実施形態に限定されることなく、様々な形態で実施することが可能である。例えばS408、S710、S1011の各処理において、抜けたフレームが揃ってから、リオーダ制御部はリオーダリングを実施してTCP/IP処理部に通知を行っている。ここで、抜けたフレームが一定期間受信されない場合においては、フレームの一部が抜けたままリオーダを実施し、TCP/IP処理部に通知するようにしてもよい。
第3実施形態では、S1203でTCP再送率からリオーダリングするか否かを決定しているが、受信されたフレームがUDPプロトコルのデータの場合はTCP再送率によらずにリオーダリングするか否かを決定してもよい。すなわち、TCPプロトコルでは第3実施形態のように無線LANエラー率、プロトコル種別、TCP再送率に基づき、リオーダリングするか否かを決定する。一方でUDPプロトコルでは第2実施形態のように無線LANエラー率、プロトコル種別に基づいてリオーダリングするか否かを決定するように、プロトコルに応じて適用方法を変えてもよい。
更には、TCPでも特定のアプリケーションまたはポート番号では、TCP再送率に基づいてリオーダリングするか否かを決定し、別のアプリケーションまたはポート番号はTCP再送率を考慮しないようにしてもよい。
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

Claims (6)

  1. 複数のフレームを受信する受信手段と、
    前記受信手段により受信された受信フレームに含まれるシーケンス番号に基づいて、前記受信フレームの第1の層におけるロス率を算出する算出手段と、
    前記受信フレームのシーケンス番号に基づいて、前記第1の層よりも上位層である第2の層におけるフレーム再送の発生頻度である再送率を算出する再送率算出手段と、
    記ロス率および前記再送率それぞれ閾値以上である場合に前記受信フレームをリオーダリングすると判断する判断手段と、
    前記判断手段により前記受信フレームをリオーダリングすると判断された場合に、前記受信フレームをリオーダリングするリオーダリング手段と、
    を備えることを特徴とする通信装置。
  2. データ種別を指定する指定手段と、
    前記受信手段により受信された前記受信フレームが、前記指定手段により指定された前記データ種別であるか否かを識別する識別手段をさらに備え、
    前記判断手段は、前記ロス率および前記再送率それぞれ閾値以上であり、且つ前記識別手段により前記受信フレームが前記データ種別であると識別された場合に、前記受信フレームをリオーダリングすると判断することを特徴とする請求項1に記載の通信装置。
  3. 前記データ種別は、TCPプロトコルのデータであることを特徴とする請求項2に記載の通信装置。
  4. 前記判断手段により前記受信フレームをリオーダリングすると判断された場合、前記受信フレームをリオーダリングしてから受信フレームをネットワーク上位層に通知し、前記判断手段により前記受信フレームをリオーダリングしないと判断された場合、前記受信フレームをリオーダリングしないで受信フレームを前記ネットワーク上位層に通知する通知手段をさらに備えることを特徴とする請求項1乃至の何れか1項に記載の通信装置。
  5. 受信手段と、算出手段と、再送率算出手段と、判断手段と、リオーダリング手段とを備える通信装置の制御方法であって、
    前記受信手段が、複数のフレームを受信する受信工程と、
    前記算出手段が、前記受信工程により受信された受信フレームに含まれるシーケンス番号に基づいて、前記受信フレームの第1の層におけるロス率を算出する算出工程と、
    前記再送率算出手段が、前記受信フレームのシーケンス番号に基づいて、前記第1の層よりも上位層である第2の層におけるフレーム再送の発生頻度である再送率を算出する再送率算出工程と、
    前記判断手段が、前記ロス率および前記再送率それぞれ閾値以上である場合に前記受信フレームをリオーダリングすると判断する判断工程と、
    前記リオーダリング手段が、前記判断工程により前記受信フレームをリオーダリングすると判断された場合に、前記受信フレームをリオーダリングするリオーダリング工程と、
    を備えることを特徴とする通信装置の制御方法。
  6. コンピュータに請求項に記載の通信装置の制御方法の各工程を実行させるためのプログラム。
JP2011023242A 2011-02-04 2011-02-04 通信装置、通信装置の制御方法、およびプログラム Active JP5703048B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011023242A JP5703048B2 (ja) 2011-02-04 2011-02-04 通信装置、通信装置の制御方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011023242A JP5703048B2 (ja) 2011-02-04 2011-02-04 通信装置、通信装置の制御方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP2012165141A JP2012165141A (ja) 2012-08-30
JP5703048B2 true JP5703048B2 (ja) 2015-04-15

Family

ID=46844123

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011023242A Active JP5703048B2 (ja) 2011-02-04 2011-02-04 通信装置、通信装置の制御方法、およびプログラム

Country Status (1)

Country Link
JP (1) JP5703048B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6034753B2 (ja) * 2013-06-11 2016-11-30 西日本電信電話株式会社 通信装置、通信方法及びコンピュータプログラム
JP7111162B2 (ja) * 2018-07-09 2022-08-02 日本電気株式会社 通信制御装置、方法、及びプログラム
JP7340759B2 (ja) * 2019-08-07 2023-09-08 パナソニックIpマネジメント株式会社 無線装置、無線通信システム、及び、無線通信方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1243621A (zh) * 1997-09-12 2000-02-02 皇家菲利浦电子有限公司 具有改进的丢失部分重构功能的传输系统
JPH11177536A (ja) * 1997-12-08 1999-07-02 Mitsubishi Electric Corp 無線データリンク層の誤り制御方式
JP2002101463A (ja) * 2000-09-26 2002-04-05 Hitachi Kokusai Electric Inc 無線通信システム
JP4203400B2 (ja) * 2003-11-12 2008-12-24 株式会社エヌ・ティ・ティ・ドコモ 受信装置、通信システム及びプログラム
US7782862B2 (en) * 2006-01-13 2010-08-24 Alcatel-Lucent Usa Inc. Method for controlling packet delivery in a packet switched network

Also Published As

Publication number Publication date
JP2012165141A (ja) 2012-08-30

Similar Documents

Publication Publication Date Title
US9961010B2 (en) Communications scheduler
JP4511174B2 (ja) Tcp/ipを使用した高速度データ送信システムおよび方法
US9391907B2 (en) Packet aggregation
US11012367B2 (en) Technologies for managing TCP/IP packet delivery
EP2959645B1 (en) Dynamic optimization of tcp connections
WO2017050216A1 (zh) 一种报文传输方法及用户设备
US20140341013A1 (en) SYSTEM AND METHOD FOR CREATING LOGICAL RADIO LINK CONTROL (RLC) AND MEDIUM ACCESS CONTROL (MAC) PROTOCOL DATA UNITS (PDUs) IN MOBILE COMMUNICATION SYSTEM
JP5682618B2 (ja) パケット再送制御システム、方法、及びプログラム
US20060203730A1 (en) Method and system for reducing end station latency in response to network congestion
EP4351208A1 (en) Method and system for improving wireless link efficiency
JP5541293B2 (ja) パケット受信装置、パケット通信システム、パケット順序制御方法
JPWO2008023656A1 (ja) 通信装置
EP3694164B1 (en) Data transmission method and device, and computer storage medium
JPWO2011145557A1 (ja) パケット再送制御装置とパケット再送制御方法
JP5703048B2 (ja) 通信装置、通信装置の制御方法、およびプログラム
WO2018137158A1 (zh) 一种数据传输方法、装置及客户终端设备
CN116506354B (zh) 一种ndn路由器及其主动式拥塞丢包恢复方法
WO2021101640A1 (en) Method and apparatus of packet wash for in-time packet delivery
CN115066844A (zh) 具有优化存储器路径的动态上行链路端到端数据传输方案
CA2940077C (en) Buffer bloat control
WO2016061987A1 (zh) 报文处理方法及装置
JP5887324B2 (ja) 中継装置および中継方法
US20220368765A1 (en) Universal Transport Framework For Heterogeneous Data Streams
JP4447028B2 (ja) 通信制御方法、送信装置、およびコンピュータプログラム
JP4372814B2 (ja) データユニットの送信回数のカウント方法、カウント装置、送信装置、およびコンピュータプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140127

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141110

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141225

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150123

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150223

R151 Written notification of patent or utility model registration

Ref document number: 5703048

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151