説明

通信装置、データフレームの送信制御方法及びプログラム

【課題】上位レイヤでフィードバック型のフロー制御を行い、且つ下位レイヤで複数のデータフレームを結合した結合フレームを送受信して通信を行う通信システムにおいて、上位レイヤのスループットの向上を図る。
【解決手段】端末13は、MACフレームの送信制御を行うMAC部132と、MAC部132から供給されるデータを無線送信するPHY部133とを有する。MAC部132は、複数のMACフレームを結合させて結合フレームとしてPHY部133に供給する結合フレーム送信制御、及びMACフレームを他のデータフレームと結合せずに単一フレームとしてPHY部133に供給する単一フレーム送信制御の両方を行なうことができ、MACフレームのペイロードに収容されるデータセグメント種別に応じて、結合フレームとして送信するか単一フレームとして送信するかを決定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はデータフレームの無線通信を行う通信装置に関し、特に、複数のデータフレームを結合した結合フレームを送受信可能な通信装置に関する。
【背景技術】
【0002】
パケット通信では、データパケット又はデータフレーム等と呼ばれる固定長又は可変長のデータユニットを端末間で送受信することによって通信が行なわれる。特にパケット通信を無線を介して行なう技術を、無線パケット通信と呼ぶ。無線パケット通信は、無線を介しているために、有線でのパケット通信と比較してデータフレーム(データパケット)の送受信中にデータ誤りが発生する確率が高い。このため、例えば、IEEE 802.11規格の媒体アクセス制御方法を用いた無線パケット通信では、データフレームの受信に成功した受信側の端末が、データフレームの受信成功を通知するためのACKフレームを、通信相手である送信側の端末に送り返すことで通信の信頼性を高めている。
【0003】
しかしながら、無線パケット通信において、1つのデータフレームの受信に応じて1つのACKフレームを送信したのでは、信頼性が向上する半面、ACKフレームを使用しない有線パケット通信比べて通信効率が悪くなる。そこで、ACKフレームの送受信に要する時間を減らし、データフレームを効率よく通信するために、図11に示すように、送信側端末851は複数のデータパケットを結合(アグリゲーション)したデータフレーム(以下、結合フレームと呼ぶ)80を送信し、受信側端末852は結合フレーム80に含まれる複数のデータフレーム82の各々に関する受信成功をブロックACKフレーム83により一括して返送する技術が提案されている。以下では、データフレームを結合させて送受信する技術をフレーム・アグリゲーションと呼ぶ。
【0004】
例えば、IEEE802委員会で策定作業中である無線LAN規格IEEE802.11nでは、MAC副層にフレーム・アグリゲーションの採用が検討されている。図20は、IEEE802.11nのドラフト2.0に記載されている結合フレームのパケットフォーマットを示している。図20の結合フレームは、複数のMPDU(MAC Protocol Data Unit)が結合されたA−MPDU(Aggregated MPDU)である。この結合フレームが、物理層へ供給されるデータユニットであるPSDU(Physical-layer Service Data Unit)とされる。図12において、複数のデータフレーム(MPDU)は、データパケットの区切りを示す制御データ(デリミタ)を挟んで互いに結合されている。
【0005】
上述した無線パケット通信は、OSI基本参照モデルでいうところの物理層及びデータリンク層で実現される。一方、無線パケット通信の上位レイヤであるトランスポート層での輻輳制御及びフロー制御を実現するプロトコルの代表例は、TCP(Transmission Control Protocol)である。TCPは、受信側からのフィードバック情報を用いて送信側が送信データレート等の調整を行なう、いわゆるフィードバック型のフロー制御を行うプロトコルである。TCPは、TCPセグメントの送信側端末及び受信側端末の各々が、ウィンドウと呼ばれる受信バッファ容量又は送信バッファ容量に対応する変数を管理することで、輻輳制御及びフロー制御を実現している。このようなウィンドウ変数を用いた制御はウィンドウ制御と呼ばれ、データ転送の制御方法として広く知られている。TCPヘッダのフォーマットには、受信ウィンドウのサイズを送信側に伝達するためのウィンドウ・サイズ・フィールドが定義されている。TCPセグメントの受信側端末が送信側端末に自身のウィンドウを通知するためには、TCPセグメントの1つであるTCP ACKセグメントを利用する。TCP ACKセグメントは、TCPヘッダのACKフラグをONに設定することで作られる。
【0006】
TCPセグメントの送信側は、受信側から到達するTCP ACKセグメント内の確認応答番号によって、次に送信するべきパケットの開始バイトとその長さを決定することができる。このため、TCPセグメントを受信した受信側端末は、受信完了を通知するためのTCP ACKセグメントをなるべく早く送信側端末に送り出す必要がある。ただし、受信者側端末にTCPセグメントが到着するたびにTCP ACKグメントを送り出すと、特に通信媒体に無線を用いた場合、無線リソースを消費して効率が悪い。このため、通常、TCPセグメントの受信者側端末は、タイマを用いて複数の受信TCPセグメントをある程度蓄積した後に、複数のTCPセグメントの受信完了を示すTCP ACKセグメントを送信する。
【0007】
なお、特許文献1には、TCPを使用したデータパケット転送制御において、データパケットの送受信の開始当初は、受信側端末が、受信ウィドウサイズに応じて定められる所定の待ち時間の経過を待たずに、送信側端末に対してTCP ACKを返送する技術が開示されている。
【0008】
また、特許文献2には、無線伝送が行われるレイヤより上位のレイヤにおいて生成されたデータパケットを送受信する無線基地局及び無線端末が開示されている。当該無線端末は、無線基地局から無線端末に向かう下り回線によるデータパケットの受信に成功したことを示すACKパケット(具体的にはTCP ACKセグメント)を上り回線で送信する際に、上り回線に適用する変調方式及び符号化率を、上り回線の符号誤り率が小さくなるように変更する。一方、無線基地局は、ACKパケットの送信許可を求める許可要求を無線基地局から受信した場合に、許可要求の送信元に優先的に送信許可を与える。
【特許文献1】特開2001−186179号公報
【特許文献2】特開2003−198556号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
上述したMAC副層以下の下位レイヤで行なわれるフレーム・アグリゲーションとTCP等の上位レイヤにおけるフィードバック型のフロー制御とを共に使用して通信が行われる場合、上位レイヤで行っているフロー制御に必要な受信側からのTCP ACKセグメント等のフィードバック情報の送信が、下位レイヤで行っている通信効率を向上させる為のフレーム・アグリゲーションのために待たされるという問題がある。すなわち、下位レイヤ(データリンク層以下)の通信効率を追求することにより、それを用いて通信を行っている上位レイヤ(TCP層(トランスポート層))のスループットが低下してしまう。
【0010】
なお、上述した特許文献1は、トランスポート層でのTCP ACKセグメントの送信を受信ウィドウサイズに応じて定められる所定の待ち時間の経過を待たずに行なうことを開示するのみである。つまり、下位レイヤのフレーム・アグリゲーションによるフィードバック情報の送信遅延によって上位レイヤのスループットが低下するという上述した課題の解決手段を何ら示唆するものではない。
【0011】
また、特許文献2は、TCP ACKセグメントをペイロードに含むIPパケット(以下、TCP ACKパケット)の送信時に、物理層における変調方式及び符号化率を変更することによって無線リンクの通信品質を向上させ、TCP ACKパケットの到達可能性を向上させる技術を開示している。また、特許文献2は、無線基地局と複数の無線端末との間の上り回線の通信品質に応じて無線基地局から無線端末に与えられる送信許可の優先順位が決定される場合であっても、TCP ACKパケットの送信元となる無線端末に対しては、上り回線の通信品質に依らず優先的に送信許可を与える技術を開示している。しかしながら、下位レイヤのフレーム・アグリゲーションによるフィードバック情報の送信遅延によって上位レイヤのスループットが低下するという上述した課題の解決手段を何ら示唆するものではない。
【0012】
なお、OSI参照モデルのレイヤ3以上でフィードバック型のフロー制御を行うために、受信側から送信側に送信されるフィードバック情報は、TCP ACKセグメントに限られない。例えば、ストリーミムデータの転送プロトコルであるRTP(Real-time Transport Protocol)と組み合わせて使用されるRTCP(RTP Control Protocol)により、RTPによるストリームデータの受信側から送信側に対して送信される受信者レポート(Receiver Report)も、フロー制御のためのフィードバック情報の一例である。RTCPの受信者レポートを受信側から受け取った送信側装置は、アプリケーションレイヤにおいて送信データレートの調整等を行なうことができる。
【0013】
本発明は、上述した事情を考慮してなされたものであって、本発明の目的は、データリンク層以下の下位レイヤで行なわれるフレーム・アグリゲーションによって通信効率を上げながらも、フィードバック型のフロー制御を行う上位レイヤのスループットの低下を抑制することである。
【課題を解決するための手段】
【0014】
本発明の第1の態様にかかる通信装置は、データを通信媒体に送信する物理層処理部と、送信データフレームを前記物理層処理部に供給する下位レイヤ処理部とを有する。前記下位レイヤ処理部は、データフレームを少なくとも1つの他のデータフレームと結合させて結合フレームとして前記物理層処理部に供給する結合フレーム送信制御、及び前記データフレームを他のデータフレームと結合せずに単一フレームとして前記物理層処理部に供給する単一フレーム送信制御の両方を行なうことが可能である。さらに、前記下位レイヤ処理部は、前記データフレームのペイロードに収容されるデータセグメントの種別に基づいて、前記データフレームを前記結合フレームとして送信するか、前記単一フレームとして送信するかを決定する。なお、例えば、後述する発明の実施の形態1におけるPHY部133が、本発明の第1の態様における物理層処理部に相当する。また、例えば、後述する発明の実施の形態1におけるMAC部132が、本発明の第1の態様における下位レイヤ処理部に相当する。
【発明の効果】
【0015】
上述したように、本発明の第1の態様にかかる通信装置は、通信媒体にアクセスしてデータ送信を行う物理層処理部に対して、複数のデータフレームが結合された結合フレームを供給するか、結合されていない単一フレームを供給するかを選択可能である。さらに、本発明の第1の態様にかかる通信装置は、前記データフレームのペイロードに含まれるデータセグメントの種別に基づいて、前記データフレームを結合フレームとして送信するか、単一フレームとして送信するかを決定する。例えば、TCP ACKセグメント等の通信相手装置に対するフィードバック情報をペイロードに含むデータフレームについては、他のデータフレームと結合せずにデータフレーム単位で前記物理層処理部に供給することができる。したがって、本発明の第1の態様にかかる通信装置は、通常は下位レイヤでのフレーム・アグリゲーションによって物理レイヤの利用効率を上げる場合であっても、例えばフィードバック情報をペイロードに含むデータフレームを選択的に単一フレームとして送信することで、結合フレームを利用する場合に比べて、上位レイヤのデータセグメントの送信元である通信相手装置に対してフィードバック情報を早く返送することが可能となる。つまり、本発明の第1の態様にかかる通信装置によれば、フィードバック型のフロー制御を行う上位レイヤのスループットを改善することができる。
【発明を実施するための最良の形態】
【0016】
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。
【0017】
<発明の実施の形態1>
図1は、本発明の実施の形態1に係る通信システム1の構成図である。図1の例では、通信システム1は、FTP(File Transfer protocol)サーバ11、無線LANアクセスポイント12及び端末13を含む。FTPサーバ11は、FTPによりデータファイルの転送を実行する装置であって、TCPによるウィンドウ制御を利用してデータセグメントの送受信を行なう。図1の例では、FTPサーバ11は、IEEE802.3によって標準化された100BASE−TX等の有線LANで使用される通信ケーブル14よってアクセスポイント12と接続されている。
【0018】
アクセスポイント12は、無線LANのアクセスポイント装置であり、有線LANと無線LANとの間でデータ中継を行なうレイヤ2ブリッジとして機能する。端末13は、アクセスポイント12に無線インタフェースにより接続される。アクセスポイント12及び端末13の間は、無線LANのデータリンク層のデータユニットであるMAC(Media Access Control)フレームを連結した結合フレームを生成し、結合フレーム単位で無線送信することができる。このような、フレーム・アグリゲーション技術は、IEEE802.11nとして標準化が進められている高速無線LAN規格で採用されている。
【0019】
以下では、FTPサーバ11から端末13に対してFTPによるファイル転送が行われる場合を例にとって説明する。なお、FTPサーバ11は、ウィンドウ制御によりデータセグメントを送受信する通信装置の一例に過ぎないことはもちろんである。つまり、トランスポート層にTCPを採用する場合であれば、その上位のアプリケーションプロトコルは、FTPに限らず、例えば、HTTP(Hyper-Text Transfer Protocol)、SMTP(Simple Mail Transfer Protocol)等でもよい。また、TCPもウィンドウ制御を採用するトランスポートプロトコルの一例であって、他のプロトコルを利用してもよい。また、図1では、説明の便宜上、1台の端末13のみを示しているが、アクセスポイント12は、複数の端末13を接続可能に構成されてもよい。
【0020】
図2は、通信システム1に含まれるFTPサーバ11、アクセスポイント12及び端末13のプロトコルスタックを示す模式図である。FTPサーバ11のプロトコルスタックは、OSI基本参照モデル又はインターネットモデルに倣って複数のレイヤにわかれている。具体的には、最下層から順に、物理層(PHY)、データリンク層(MAC副層及びLLC副層)、ネットワーク層(IP層)、トランスポート層(TCP層)、アプリケーション層(APP層)である。
【0021】
同様に、アクセスポイント12のプロトコルスタックは、物理層(PHY)及びデータリンク層(MAC副層及びLLC副層)から構成されている。なお、アクセスポイント12はブリッジとして動作するから、図2には、有線LAN側及び無線LAN側の2つのプロトコルスタックを図示している。
【0022】
また同様に、端末13のプロトコルスタックは、物理層(PHY)、データリンク層(MAC副層及びLLC副層)、ネットワーク層(IP層)、トランスポート層(TCP層)、アプリケーション層(APP層)から構成されている。
【0023】
FTPサーバ11のAPP層で生成されたデータは、TCP層、IP層、MAC層において各プロトコルヘッダをその順番で付加されたあと、物理層で変調され送信される。FTPサーバ11によって通信ケーブル14に出力された信号は、アクセスポイント12の有線PHY層で復調され、復調されたMACフレームMAC層に送られる。アクセスポイント12のMAC層は、MACフレームの宛先MACアドレスに基づいて次に送るべき送信先端末を判断し、送信先端末に送るためのスケジューリングを行う。
【0024】
次に、アクセスポイント12のプロトコルスタックについて説明する。アクセスポイント12の無線MAC層は、有線LAN側から中継されて無線MAC層に供給されるデータセグメント(具体的にはIPパケット)をペイロードに含むMACフレームを生成し、MACフレームのまま又は複数のMACフレームを連結した結合フレームとして無線PHY層に供給する。
【0025】
フレーム・アグリゲーションによってMACフレームの転送効率を向上させつつ、パケットロスや遅延が生じたときのTCPのスループットの低下を抑制するために、アクセスポイント12の無線MAC層は、通常のTCPセグメントを含むIPパケットを格納したMACフレームについては、フレーム・アグリゲーションを利用して結合フレームとして送信を行い、パケットロスや遅延が生じた場合に、通信相手端末に送信するTCP ACKパケットをペイロードに含むMACフレームを他のMACフレームと連結せずに送信する。以下では、結合フレームをPHY層に供給するための制御を「結合送信制御」と呼び、他のMACフレームと連結されていないMACフレームをPHY層に供給するための制御を「単発送信制御」と呼ぶ。
【0026】
なお、TCP ACKパケットをペイロードに含むMACフレームが既に他のMACフレームと連結されている場合、アクセスポイント12の無線MAC層は、TCP ACKパケットを含む結合フレームを優先的に送信しても良い。また、TCP ACKパケットをペイロードに含むMACフレームが他のMACフレームとの連結するために送信待ち状態にある場合、アクセスポイント12の無線MAC層は、フレーム結合処理を中断して、TCP ACKパケットをペイロードに含む結合フレームを優先的に送信しても良い。
【0027】
アクセスポイント12の無線MAC副層は、例えば、有線LAN側から中継されて無線MAC副層に供給されるデータセグメントに含まれるトランスポートヘッダ(つまり、はTCPヘッダ)を監視することによって、パケットロスや遅延の発生を検出してもよい。具体的には、TCPヘッダのシーケンス番号を順次取得し、取得したシーケンス番号を取得時間と対応付けて記録し、TCPヘッダのシーケンス番号の時間変化の異常、例えば、時間変化率の変化やシーケンス番号の不連続な減少等が生じた場合に、TCP ACKパケットをペイロードに含むMACフレームを他のMACフレームと連結せずに送信する上述した処理を行えばよい。
【0028】
なお、TCPセグメントの消失又は遅延が発生したと判断したことに応じて、TCP ACKパケットを含むMACフレームを他のMACフレームと連結せずに単発で送信する動作は一例に過ぎない。例えば、TCP ACKパケットを含むMACフレームを常に他のMACフレームと連結せずに単発送信してもよい。
【0029】
アクセスポイント12による無線信号の受信処理についてみると、アクセスポイント12の無線PHY層は、端末13から送信される無線信号を受信して復調処理を行い、復調された結合フレーム又はMACフレームを無線MAC副層に供給する。アクセスポイント12の無線MAC副層は、無線PHY層から供給されるMACフレームの宛先が他の無線端末である場合、MACフレームを折り返して無線PHY層に供給する。一方、無線PHY層から供給されるMACフレームの宛先が自身のMACアドレスである場合、言い換えると、無線PHY層から供給されるMACフレームが有線LAN側に転送すべきデータを含む場合、当該データは有線MAC層に渡される。
【0030】
次に、端末13のプロトコルスタックについて説明する。端末13のPHY層は、アクセスポイント12から送信される無線信号を受信して復調処理を行い、復調された結合フレーム又はMACフレームをMAC副層に供給する。端末13のMAC副層、IP層、TCP層はそれぞれ送信側で付加されたヘッダを取り除き、APP層(つまり、FTPクライアント)に渡す。なお、端末13のTCP層は、TCPセグメントの受信に応じてTCP ACKセグメントを生成し、MAC副層及びPHY層を介して、TCPセグメントの送信側(ここではアクセスポイント12)に送信する。
【0031】
端末13のMAC副層では、上述したアクセスポイント12の無線MAC副層と同様に、TCPセグメントTCP ACKパケットを含むMACフレームを他のMACフレームと連結せずに単発で送信する。なお、端末13のMAC副層は、TCPシーケンス番号の時間変化を監視し、TCPセグメントの消失又は遅延が発生したと判断した場合に、その後のTCP ACKパケットを含むMACフレームを他のMACフレームと連結せずに単発送信してもよい。また、TCP ACKパケットを含むMACフレームを常に他のMACフレームと連結せずに単発送信してもよい。
【0032】
続いて以下では、端末13及びアクセスポイント12の構成例について詳しく説明する。図3は、端末13の機能ブロック図である。図3において、上位レイヤ処理部131は、上述した端末13のAPP層、TCP層及びIP層の処理を担う。MAC部132は、上述した端末13のデータリンク層(LLC副層及びMAC副層)の処理を担う。PHY部133は、上述した端末13のPHY層の処理を担う。アンテナ134は、アクセスポイント12との間で無線信号の送受信を行なうためのアンテナである。
【0033】
一方、図4は、アクセスポイント12の機能ブロック図である。図4において、ブリッジ部121は、無線MAC部122と有線MAC部125との間でデータ中継を行なう。無線MAC部122は、上述したアクセスポイント12の無線LAN側のLLC副層及び無線MAC副層の処理を担う。無線PHY部123は、上述したアクセスポイント12の無線PHY層の処理を担う。アンテナ124は、端末13との間で無線信号の送受信を行なうためのアンテナである。有線MAC部125は、上述したアクセスポイント12の有線LAN側のLLC副層及び有線MAC副層の処理を担う。有線PHY部126は、上述したアクセスポイント12の有線PHY層の処理を担う。
【0034】
続いて、端末13が有するMAC部132によるデータフレームの送信制御手順を説明する。図5は、MAC部132の送信制御手順の一例を示すフローチャートである。ステップS11では、上位レイヤ処理部131から供給される送信データ、具体的にはIPパケットを取得する。ステップS12では、送信データの内容を識別する。ステップS12での識別の結果、送信データがFTPサーバ11等の通信相手装置に対するフィードバック情報を含む場合は、当該送信データをペイロードに含むMACフレームを他のMACフレームト結合せずに単一のMACフレーム(以下、単一フレームと呼ぶ)として送信する(ステップS13及びS14)。例えば、ステップS12において、送信データ即ち送信IPパケットに含まれるTCPセグメントのTCPヘッダを参照し、当該送信IPパケットがTCP ACKパケットである場合に、これを含むMACフレームを他のフレームと結合せずに、PHY部133に供給すればよい。
【0035】
一方、ステップS12での識別の結果、送信データがFTPサーバ11等の通信相手装置に対するフィードバック情報を含まない場合は、当該送信データをペイロードに含むMACフレームを他のMACフレームとアグリゲーションし、結合フレームとして送信する(ステップS13及びS15)。
【0036】
次に、本実施の形態にかかる通信システム1において、FTPサーバ11と端末13の間でFTPプロトコルによるファイル転送を実行する場合にFTPサーバ11、アクセスポイント12及び端末13の各装置間で転送されるデータの一例について説明する。図6Aは、FTPサーバ11、アクセスポイント12及び端末13の各装置間でのデータ転送の一例を示すタイミングチャートである。より具体的に述べると、図6Aは、端末13における送信TCPセグメント又は受信TCPセグメントのTCPシーケンス番号の監視結果により、FTPサーバ11と端末13の間でパケットロス又は遅延等の異常が発生したときに、その後に端末13から送信されるTCP ACKパケットをアグリゲーションせずに送信する例を示している。なお、図6Aでは、簡略化のために、IP層、LLC副層及びPHY層の記載を省略している。
【0037】
FTPサーバ11から端末13宛てに送られる送信データ501は、FTPサーバ11のTCP層でTCPヘッダが付加され(TCPセグメント502)、IP層で端末13のIPアドレスを送信先とするIPヘッダが付加され(不図示)、MAC副層でMACヘッダが付加された後(MACフレーム503)、有線LAN(通信ケーブル14)を通してアクセスポイント12に送られる。MACフレーム503を受信したアクセスポイント12は、受信したMACフレーム503を他の送信MACフレームとともにアグリゲーションし、結合フレーム504を生成する。次にアクセスポイント12は結合フレーム504を端末13に向けて送信する。結合フレーム504を受信した端末13は、受信した結合フレーム504を、MAC副層(MAC部132)で分解し、連結されていたMACフレーム505を取り出す。その後、端末13のMAC副層、IP層(不図示)及びTCP層でそれぞれのプロトコルに対応したヘッダが取り除かれた後、FTPサーバ11の送信データ506(送信データ501に対応)がAPP層(FTP)に渡される。
【0038】
端末13のTCP層では、TCPセグメント506をAPP層(FTP)に渡すのに合わせて、TCPセグメント506に対応するTCP ACKセグメント508が生成される。端末13のMAC副層(MAC部132)は、TCPシーケンス番号の異常発生時には、上位層から受信したIPパケットが、TCP ACKセグメント508を含むIPパケット(TCP ACKパケット)であるかどうかを常に検査する。そして、TCP ACKセグメント508を含むTCP ACKパケットである場合には、これをアグリゲーションせずに単一のMACフレーム509のまま送信する。MACフレーム509はアクセスポイント12によって中継されFTPサーバ11に送られ、TCP ACKセグメント510(TCP ACKセグメント508に対応)がFTPサーバ11に到達する。
【0039】
なお、上述したTCP ACKパケットを含むMACフレーム509の後に送信されるTCP ACKパケットを含むMACフレーム511及び512は、シーケンス番号の異常が回復した場合を示している。このため、MACフレーム511及び512は、アグリゲーションされて結合フレームとして送信されている。
【0040】
一方、図6Bは、図6Aと対比するために、上述したTCP ACKパケットを含むMACフレームの単発送信を実行しない場合のタイミングチャートを示している。図6Bに示すデータ転送処理では、TCP ACKセグメント508を含むMACフレーム509が他のMACフレームと結合され、結合フレーム519として送信される。アクセスポイント12は、受信した結合フレーム519を分解してTCP ACKパケットを含むMACフレーム509を取り出し、これをFTPサーバ11に向けて送信する。このため、図10Bのデータ転送処理においてFTPサーバがTCPセグメント502を送信してからTCP ACKセグメント510を受信するまでの時間T2は、図6Aのデータ転送処理においてFTPサーバ11がTCPセグメント502を送信してからTCP ACKセグメント510を受信するまでの時間T1に比べて長くなる。換言すると、本実施の形態にかかる通信システム1によれば、下位層におけるフレーム結合に起因するTCP ACKセグメントの到達遅延を低減できる。このため、FTPサーバ11のTCP送信ウィンドウをいち早く開放し、次のTCPセグメントを送信可能にできる。
【0041】
上述したように、本実施の形態にかかる通信システム1は、MAC副層でMACフレームを結合して送信することでMACフレーム転送効率を向上させる通信方式において、MACフレームのペイロードに含まれる送信データが通信相手装置に対するフィードバック情報、例えば、TCP ACKパケットである場合に、MACフレームの結合をやめてTCP ACKパケットを含むMACフレームを単一フレームとして送信する。これにより、TCP ACKセグメントを速やかに通信相手装置に返すことができ、通信相手装置のTCPの送信ウィンドウを速やかに再び増加させ、TCPでの平均スループットを向上させることができる。
【0042】
続いて以下では、端末13が有するMAC部132の構成及び動作の具体例1〜5について順に説明する。各具体例と図面との対応関係は以下の通りである。
・具体例1:図7、8、9、10、11A及び11B
・具体例2:図12及び13
・具体例3:図14
・具体例4:図15及び16
・具体例5:図17、18A及び18B
【0043】
<具体例1>
本具体例にかかるMAC部132は、通信相手装置すなわちFTPサーバ11と端末13との間におけるパケットロス又は遅延の発生を検出した場合に、選択的にTCP ACKパケットを含むMACフレームを他のMACフレームとアグリゲーションせずに送信するよう構成されている。さらに、本具体例にかかるMAC部132は、端末13から送信されるTCPセグメントのシーケンス番号を監視することにより、パケットロス又は遅延の発生を検出するよう構成されている。
【0044】
図7は、本具体例にかかるMAC部132のブロック図である。図7において、受信フレーム終端部401は、PHY部133で受信、復調されたデータを受け取り、格納する。また、受信フレーム終端部401は、送信側のアクセスポイント12の無線MAC層においてMACフレームに付加されたMACヘッダを取り除くとともに、ペイロードデータが上位レイヤのデータである場合には、上位レイヤ処理部131に受信したデータを渡す。一方、受信フレーム終端部401は、受信したMACフレームのペイロードデータがMAC層の制御データ又は管理データである場合は、MAC部132の制御部(不図示)が制御データ又は管理データに応じた適切な処理を行う。
【0045】
送信フレーム生成部402は、上位レイヤ処理部131から供給されるIPパケットを受け取り、IPヘッダ内の宛先IPアドレスに対応した宛先MACアドレスを含むMACヘッダを生成し、これをIPパケットの先頭に付加する。さらに、送信フレーム生成部402は、後述する単発送信判定部407の指示に応じて、生成したMACフレームをフレーム結合部403又は単一フレーム送信キュー405に供給する。
【0046】
フレーム結合部403は、送信フレーム生成部402によって生成された複数のMACフレームを連結して結合フレームを生成し、結合フレーム送信キュー404に格納する。結合フレーム送信キュー404に蓄積された結合フレームは、送信タイミングが到来した場合にPHY部133に供給される。PHY部133は、結合フレームを送信する為の変調を行って、無線信号の送信を行う。
【0047】
単一フレーム送信キュー405は、他のフレームと結合せずに単一のMACフレーム単位で送信すべきMACフレームを送信フレーム生成部402から受け取り、送信タイミングが来るまで当該MACフレームを格納する。送信タイミングであると判断された場合、単一フレーム送信キュー405は、格納しているMACフレームをPHY部133に供給する。PHY部133は、結合フレームを送信する為の変調を行って、無線信号の送信を行う。
【0048】
上位レイヤヘッダ取得部406は、送信フレーム生成部402に供給されるIPパケットを受信し、当該IPパケットに含まれるTCPヘッダを取得し、TCPヘッダに含まれるシーケンス番号を取得時刻と関連付けて記憶する。
【0049】
単発送信判定部407は、上位レイヤヘッダ取得部406によって取得されたシーケンス番号及びその取得時間を監視して、シーケンス番号の時間変化率を計算する。そして、単発送信判定部407は、アクセスポイント12からの受信パケットのパケットロスや遅延などの異常があるかどうかを、シーケンス番号の時間変化率の変動によって判断する。そして、パケットロスや遅延等の異常があると判断した場合、単発送信判定部407は、送信フレーム生成部402、フレーム結合部403、及び送信キュー制御部408に対して単発送信の指示を行う。
【0050】
キュー制御部408は、単発送信判定部407によって判断された単発送信をするかどうかの判断を基に、送信タイミング獲得時に、単一フレーム送信キュー405と、結合フレーム送信キュー404のうち適切なキューからの送信が行えるように制御を行う。例えば、キュー制御部408は、単一フレーム送信キュー405から送信すると判断された場合であっても、単一フレーム送信キュー405に送信すべきパケットがない場合には、結合フレーム送信キュー404からの送信を行う。
【0051】
なお、上述したフレーム結合部403によって生成される結合フレームの最大長は、連結されるMACフレームのデータ長やアグリゲーションする時間に応じて決定される。しかしながら、例えば、上記のように、単一フレーム送信キュー405に単発送信すべきMACフレームがない場合には、MACフレームのペイロードに含まれるデータがTCP ACKセグメントではない場合でも、フレーム結合部403は、結合途中のフレームを結合フレーム送信キュー404に前倒しして送り、結合フレーム送信キュー404にこれを送信させてもよい。
【0052】
また、第1の具体例にて示す上位レイヤヘッダ取得部406は、TCPヘッダを取得することで、TCP ACKパケットの判別を目的としたものである。しかしながら、必ずしも取得されるパケットヘッダはTCPに限られるわけではなく、パケットロスや遅延の発生を判定可能なシーケンス番号、タイムスタンプ情報等を送信する例えばRTP(Real-Time Transport Protocol)他のプロトコルのパケットヘッダであってもよい。
【0053】
なお、アクセスポイント12が有する無線MAC部122は、上述したMAC部132と同様に構成すればよい。
【0054】
次に、図8乃至10並びに11A及び11Bを参照して、本具体例にかかるMAC部132の動作について詳細に検討する。図8は上位レイヤヘッダ取得部406の動作を示し、図9は単発送信判定部407の動作を示し、図11A及びBは送信キュー制御部408の動作を示している。
【0055】
上位レイヤヘッダ取得部406は、端末13の通信期間中、図8に示す処理を繰り返し実行する。図8のステップS101では、上位レイヤヘッダ取得部406が、上位レイヤ処理部131から送信フレーム生成部402に供給される送信データ、つまり送信IPパケットを取得する。ステップS102では、送信IPパケットに含まれるTCPヘッダを抽出し、TCPヘッダに含まれるシーケンス番号を取得時刻と関連付けて記録する。
【0056】
単発送信判定部407は、端末13の通信期間中、図9に示す処理を繰り返し実行する。図9のステップS201では、単発送信判定部407が、上位レイヤヘッダ取得部406によって取得されるシーケンス番号の時間変化率を計算する。ステップS202では、単発送信判定部407は、計算されたシーケンス番号の時間変化率を監視し、その値に異常な変化が無いかどうかを判断する。ここでシーケンス番号の時間変化率の異常とは、シーケンス番号の傾きの変化又はシーケンス番号の不連続な変化である。図10A及びBは、シーケンス番号の時間変化の一例を示すグラフであり、横軸は時間を表し、縦軸はシーケンス番号を表している。図10Aは、時間変化率が正常な場合の一例である"時間変化率が一定の状態"を示している。一方、図10Bは、時間変化率に異常が発生している場合を示している。具体的に述べると、図10Bの点線で囲まれた領域701は、シーケンス番号の時間変化率が減少した状態であり、送信されるTCPセグメントに遅延が発生していることを表している。また、図10Bの点線で囲まれた領域702は、シーケンス番号が不連続に減少した状態であり、送信データの消失によるTCPセグメントの再送が発生したことを表している。
【0057】
図9に戻り説明を続ける。ステップS202の判定においてシーケンス番号の時間変化率に異常な値がないと判定された場合、単発送信判定部407は、時間変化率の計算に用いたIPパケットを含むMACフレームを結合フレームとして送信するよう指示する(ステップS203)。当該指示に応じて、送信フレーム生成部402は、時間変化率の計算に使用されたシーケンス番号のIPパケットを含むMACフレームをフレーム結合部403に送り、フレーム結合部403は当該MACフレームのアグリゲーションを行う。
【0058】
一方、ステップS202の判定においてシーケンス番号の時間変化率に異常があると判定された場合、単発送信判定部407は、異常が発生している直後のシーケンス番号のTCP ACKセグメントを含むIPパケットをアグリゲーションせずに単発送信するよう指示する(ステップS204)。当該指示に応じて、送信フレーム生成部402は、異常が発生している直後のシーケンス番号のTCP ACKセグメントを含むIPパケットが収容されたMACフレームを、フレーム結合部403に送らずに単一フレーム送信キュー405に送る。
【0059】
次に図11A及びBを参照して、送信キュー制御部408の動作について詳細に説明する。送信キュー制御部408は、端末13の通信期間中、図11A及びBに示す処理を繰り返し実行する。
【0060】
送信キュー制御部408は、単発送信判定部407からの単発送信指示を入力として、送信タイミング時に、単一フレーム送信キュー405と結合フレーム送信キュー404とのいずれかをPHY部132に送信データフレームを供給する送信用キューとして選択する。
【0061】
ステップS301において、単発送信判定部407から単発送信指示がない場合、送信キュー制御部408は、図11A及びBの処理を終了し、次の実行タイミングにステップS301に帰還して再び実行する。一方、単発送信判定部407から単発送信指示がある場合(ステップS301でYES)、送信キュー制御部408は、単一フレーム送信キュー405にMACフレームが存在するかどうかを判定する(ステップS302)。単一フレーム送信キュー405にMACフレームが存在する場合、送信キュー制御部408は、そのデータフレームを送信させる(ステップS303)。なお、単一フレーム送信キュー405に複数のMACフレームが存在する場合、送信キュー制御部408は、先頭のMACフレームのみを送信させてもよいし、単一フレーム送信キュー405に蓄積された全てのMACフレームを順次送信させてもよい。
【0062】
ステップS302において、単一フレーム送信キュー405に送信待ちのMACフレームが存在しない場合(ステップS302でNO)、送信キュー制御部408は、結合フレーム送信キュー404に未送信の結合フレームがあるかどうかを調べる(ステップS304)。
【0063】
ステップS304において、未送信の結合フレームが結合フレーム送信キュー404ある場合(ステップS304でYES)、未送信の結合フレーム中にTCP ACKパケットが含まれているかどうかを検査する(ステップS305)。
【0064】
ステップS305においてTCP ACKパケットが存在すると判定された場合、送信キュー制御部408は、TCP ACKパケットを含む結合フレームを送信させる(ステップS306)。なお、送信キュー制御部408は、TCP ACKパケットを含むMACフレームを結合フレーム送信キュー404から抽出し、当該MACフレームを単独で送信させてもよい。
【0065】
ステップS304において、未送信の結合フレームが結合フレーム送信キュー404に存在しない場合(ステップS304でNO)、送信キュー制御部408は、フレーム結合部403が結合フレームを生成する処理を実行中であるかどうかを検査する(ステップS307)。
【0066】
フレーム結合部403がフレーム結合処理中である場合(ステップS307でYES)、送信キュー制御部408は、結合途中の結合フレームの中にTCP ACKパケットが存在するかどうかを検査する(ステップS308)。
【0067】
TCP ACKパケットが存在する場合(ステップS308、YES)、送信キュー制御部408は、結合途中の結合フレームの結合処理をその時点で中止し、結合途中の結合フレームを結合フレーム送信キュー404に出力するようフレーム結合部403に対して指示する(ステップS306)。なお、送信キュー制御部408は、結合途中の結合フレームに含まれているTCP ACKパケットを含むMACフレームのみを抽出して結合フレーム送信キュー404に出力させてもよい。
【0068】
上述したように、本具体例にかかるMAC部132は、MAC副層でMACフレームを結合して送信することでMACフレーム転送効率を向上させる通信方式において、送信TCPセグメントの損失又は遅延の発生を判定した場合には、TCP ACKパケットを含むMACフレームを他のMACフレームとアグリゲーションせずに単一MACフレームとして送信する。これにより、TCPセグメントの損失又は遅延の発生に起因して通信相手装置(FTPサーバ11)による輻輳制御が実行されると想定される状況下において、TCP ACKセグメントを速やかに送信元装置に返すことができる。このため、送信元である通信相手装置(FTPサーバ11)のTCPの送信ウィンドウを速やかに再び増加させ、TCPでの平均スループットを向上させることができる。
【0069】
<具体例2>
本具体例にかかるMAC部132は、上述した具体例1にかかるMAC部132と同様に、通信相手装置すなわちFTPサーバ11と端末13との間におけるパケットロス又は遅延の発生を検出した場合に、選択的にTCP ACKパケットを含むMACフレームを他のMACフレームとアグリゲーションせずに送信するよう構成されている。先に述べた具体例1と具体例2の相違点は、具体例1が送信TCPセグメントのシーケンス番号を監視するのに対し、本具体例にかかるMAC部132が、通信相手装置からの受信TCPセグメントのシーケンス番号を監視することにより、パケットロス又は遅延の発生を検出する点である。
【0070】
図12は、本具体例にかかるMAC部132のブロック図である。図7の構成図と図12との相違点は、上位レイヤヘッダ取得部406が受信フレーム終端部401から出力される受信IPパケットを取得する点である。図13は、図12の上位レイヤヘッダ取得部406の動作手順を示すフローチャートである。図13に示すように、本具体例にかかる上位レイヤヘッダ取得部406は、受信MACフレームに含まれる受信IPパケットを取得し(ステップS401)、受信IPパケットに含まれるTCPヘッダを抽出し、TCPヘッダに含まれるシーケンス番号を取得時刻と関連付けて記録する(ステップS402)。なお、上位レイヤヘッダ取得部406を除く他の要素の機能及び動作は、図7に示したものと同様であるため、ここでは詳細な説明を省略する。
【0071】
本具体例のMAC部132を有する端末13も、TCPセグメントの損失又は遅延の発生に起因して通信相手装置(FTPサーバ11)による輻輳制御が実行されると想定される状況下において、TCP ACKセグメントを速やかに送信元装置に返すことができる。このため、送信元である通信相手装置(FTPサーバ11)のTCPの送信ウィンドウを速やかに再び増加させ、TCPでの平均スループットを向上させることができる。
【0072】
<具体例3>
上述した具体例1及び2にかかるMAC部132は、TCPセグメントの損失又は遅延が発生した場合に、選択的にTCP ACKパケットを単一フレームとして送信し、それ以外の通常動作時には、TCP ACKパケットも結合して送信する例を示した。しかしながら、このような動作は一例であって、TCP ACKパケットを常時単一フレームとして送信してもよい。このような構成は、例えば、端末13が音声又は映像等のストリームデータを受信し、ストリームデータの送信元である通信相手装置に対してデータ受信の完了を示すACKパケットを送信する場合等の上り方向と下り方向のデータ転送量が非対称な通信形態において有効である。
【0073】
本具体例にかかるMAC部132の構成例を図14に示す。図7の構成図と図14との相違点は、パケットロス又は遅延の発生を検出してMACフレームをアグリゲーションするか否かを切り替えるための上位レイヤヘッダ取得部406及び単発送信判定部407が省略されている点である。なお、図14における送信フレーム生成部602は、単発送信判定部407からの単発送信指示の有無に関わらず、TCP ACKパケットを含むMACフレームを単一フレーム送信キュー405に格納すればよい。また、送信キュー制御部608は、単発送信判定部407からの単発送信指示の有無に関わらず、TCP ACKパケットを含むMACフレームを優先的に送信するように、単一フレーム送信キュー405及び結合フレーム送信キュー404を制御すればよい。具体的に述べると、送信キュー制御部608は、図11A及びBに示したフローチャートにおいて、ステップS301を除くステップS302〜308の処理を繰り返し実行すればよい。
【0074】
<具体例4>
本具体例にかかるMAC部132は、上述した具体例1にかかるMAC部132の送信キュー制御部408の動作を変更したものである。本具体例にかかるMAC部132が有する送信キュー制御部708は、パケットロス又は遅延等の異常発生時に、結合フレーム送信キュー404及び単一フレーム送信キュー405のうち、いち早く送信タイミングが到来する送信キューを用いてTCP ACKパケットを含むMACフレームを送信する。
【0075】
例えば、送信キュー制御部708は、図11A及びBに示したフローチャートのステップS302とS303の間で、図16に示すステップS501からS503の処理を行えばよい。ステップS501では、ステップS302で単一フレーム送信キュー405内にMACフレームが存在すると判定された場合に、結合フレーム送信キュー404内で結合フレームが送信可能状態にあるか否かを判定する。結合フレーム送信キュー404内に送信可能な結合フレームが存在しなければステップS303に進み、単一フレーム送信キュー405の送信タイミングの到来時に、単一フレーム送信キュー405からTCP ACKパケットを含むMACフレームを送信させる。
【0076】
一方、結合フレーム送信キュー404内に送信可能な結合フレームが存在する場合(ステップS501でYES)、結合フレーム送信キュー404にある結合フレームが、単一フレーム送信キュー405にある単一フレームより早期に送信されるか否かを判定する(ステップS502)。そして、結合フレーム送信キュー404にある結合フレームがより早期に送信されると判定された場合(ステップS502でYES)、送信キュー制御部708は、単発送信対象のMACフレームを結合フレーム送信キュー404内の結合フレームに追加して送信させる(ステップS503)。
【0077】
本具体例のMAC部132は、単一フレームとして送信するより結合フレームとするほうがフィードバック情報(具体的にはTCP ACKパケット)を含むMACフレームを早期に送信可能である場合は、単一フレームとせずに結合フレームとして送信できる。すなわち、本具体例のMAC部132を有する端末は、フィードバック情報を含むMACフレームをいち早く通信相手装置に対して送信可能である。
【0078】
<具体例5>
本具体例にかかるMAC部132の構成を図17に示す。図17において、送信フレーム生成部802は、送信MACフレームを生成して送信バッファ803に格納するとともに、送信ディスクリプタテーブル804を生成する。送信ディスクリプタテーブル804は、複数の送信ディスクリプタを記述するテーブルである。各々の送信ディスクリプタは、送信MACフレームが格納された送信バッファ803のアドレスを指定する。
【0079】
本具体例にかかるMAC部132と協調動作するPHY部133は、DMA(Direct Memory Access)コントローラ機能を有しており、送信ディスクリプタテーブル804に従って、送信バッファ803から送信MACフレームを読み出し、結合フレーム又は単一フレームとして送信する。
【0080】
送信ディスクリプタテーブル804の一例を図18Aに示す。図18Aの例では、各々の送信ディスクプタは、次のディスクリプタを指定するNEXTポインタ8051、次のディスクリプタにより指定されるMACフレームとのアグリゲーションの有無を示すアグリゲーションビット8042、及びMACフレームが格納されている送信バッファ803のアドレス(バッファアドレス8043)を含む。
【0081】
図18Aの例では、アグリゲーションビット8042は1ビット情報であり、値1が"アグリゲーション有り"を示し、値0が"アグリゲーション無し"を示す。なお、アグリゲーションビット8042の値0は、アグリゲーションされる複数のMACフレームのうち最後尾のMACフレームを指定するためにも使用される。例えば、2つのMACフレームがアグリゲーションされる場合、先頭MACフレームに対応する送信ディスクリプタのアグリゲーションビット8042の値は1とされる。一方、この先頭MACフレームに対応する送信ディスクリプタのNEXTポインタ8041によって指される2つ目のディスクリプタのアグリゲーションビット8042の値は、0とされる。
【0082】
また、図18Aの例では、結合送信用ポインタ901によって、結合フレームを生成するための先頭の送信ディスクリプタのアドレスが指定される。同様に、単発送信用ポインタ902によって、単一フレームを生成するための先頭の送信ディスクリプタのアドレスが指定される。
【0083】
なお、図17及び18Aに示したような送信ディスクリプタテーブル804により送信MACフレームが格納されたアドレス及びアグリゲーションの有無をPHY部133に伝達する構成を採用する場合、上述した具体例4のMAC部132が行なう単一フレームを結合フレームに追加する処理も容易に実現可能である。
【0084】
図17に示すアグリゲーション制御部808は、送信ディスクリプタテーブル804の書き換えを行なうことによって、単一フレームとして指定されたMACフレームを結合フレームに追加させる。アグリゲーション制御部808の動作の一例を、図18Bを用いて説明する。図18Bは、単一フレームとして指定されたMACフレームを結合フレームへの追加を、NEXTポインタ8041の付け替え及びアグリゲーションビット8042の書き換えによって行なう例を示している。
【0085】
具体的には、図18Bにおいて斜線でハッチングされている2つのNEXTポインタ8041の付け替え及び2つのアグリゲーションビット8042の書き換えによって、単発送信用ポインタ902によって指定されていた単一フレームに関する送信ディスクリプタを、結合フレームに関する送信ディスクリプタに連結することができる。図18BのようにNEXTポインタ8041の付け替えが行なわれた送信ディスクリプタテーブル804に従って、PHY部133が送信バッファ803からMACフレームを順次読み出し、これらを連結させて送信することにより、TCP ACKパケット等のフィードバック情報を含むMACフレームをいち早く送信することができる。
【0086】
<その他の実施の形態>
上述した発明の実施の形態1では、FTPサーバ11がアクセスポイント12と有線LANによって直接接続されたネットワーク構成を例にとって説明した。しかしながら、このようなネットワーク構成が一例に過ぎないことはもちろんである。例えば、FTPサーバ11は、アクセスポイント12とは別のIPサブネットに配置されてもよいし、インターネットを介して配置されてもよい。また、FTPサーバ11とアクセスポイント12は、1台の共通のコンピュータとして構成されてもよい。この場合、有線LANと無線LANとの間のブリッジは必ずしも必要ではないため、アクセスポイント12のブリッジ部121は、省略されてもよい。
【0087】
また、上述した発明の実施の形態1では、FTPプロトコルによるファイル転送を行う例を示したが、上位層のプロトコルがFTPに限定されないことはもちろんである。また、ウィンドウ制御を行う上位層の通信プロトコルは、上述した実施の形態において具体的に示したFTPに限定されるものではない。
【0088】
また、上述した発明の実施の形態1では、下位層においてフレーム結合を行なってフレーム転送効率を向上させるプロトコルの具体例の1つとして、IEEE802.11にて規格化が検討されている無線LANを示した。しかしながら、フィードバック型のフロー制御を行う上位層に対する下位層としてフレーム結合技術を用いてデータ転送を担う通信プロトコルは、上述した無線LANに限定されるものではない。
【0089】
また、上述した発明の実施の形態1では、通信媒体が無線チャネルである場合について説明したが、通信媒体が有線伝送路であってもよいことはもちろんである。例えば、物理媒体としてツイストペアケーブルを使用する1000BASE−Tにおいて、複数のMACフレームの連続送信を行なうフレームバーストによりMACフレームを送信するか、単一のMACフレームとして送信するかを、MACフレームに収容されるデータセグメントの種別に基づいて決定してもよい。
【0090】
さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【図面の簡単な説明】
【0091】
【図1】本発明の実施の形態1にかかる通信システムを示す模式図である。
【図2】本発明の実施の形態1にかかる通信システムの論理的なレイヤ構成を示す図である。
【図3】本発明の実施の形態1にかかる通信システムに含まれる端末の装置構成を示すブロック図である。
【図4】本発明の実施の形態1にかかる通信システムに含まれるアクセスポイントの装置構成を示すブロック図である。
【図5】本発明の実施の形態1にかかる通信システムに含まれる端末が有するMAC部の送信制御手順を示すフローチャートである。
【図6A】発明の実施の形態1におけるFTPサーバ、アクセスポイント及び端末の間のデータ転送の一例を示すタイミングチャートである。
【図6B】図11Aに示したデータ転送と対比するために示すタイミングチャートである。
【図7】本発明の実施の形態1にかかる通信システムに含まれる端末が有するMAC部の第1の構成例を示すブロック図である。
【図8】第1の構成例にかかるMAC部が有する上位レイヤヘッダ取得部の動作を示すフローチャートである。
【図9】第1の構成例にかかるMAC部が有する単発送信判定部の動作を示すフローチャートである。
【図10A】通信時間とTCPの送信セグメントのシーケンス番号との関係を示すグラフである。
【図10B】通信時間とTCPの送信セグメントのシーケンス番号との関係を示すグラフである。
【図11A】第1の具体例にかかるMAC部が有する送信キュー制御部の動作を示すフローチャートである。
【図11B】第1の具体例にかかるMAC部が有する送信キュー制御部の動作を示すフローチャートである。
【図12】本発明の実施の形態1にかかる通信システムに含まれる端末が有するMAC部の第2の具体例を示すブロック図である。
【図13】第2の具体例にかかるMAC部が有する上位レイヤヘッダ取得部の動作を示すフローチャートである。
【図14】本発明の実施の形態1にかかる通信システムに含まれる端末が有するMAC部の第3の具体例を示すブロック図である。
【図15】本発明の実施の形態1にかかる通信システムに含まれる端末が有するMAC部の第4の具体例を示すブロック図である。
【図16】第4の具体例にかかるMAC部が有する送信キュー制御部の動作を示すフローチャートである。
【図17】本発明の実施の形態1にかかる通信システムに含まれる端末が有するMAC部の第5の具体例を示すブロック図である。
【図18A】第5の具体例にかかるMAC部が有するアグリゲーション制御部による送信ディスクリプタテーブルの変更動作を説明するための図である。
【図18B】第5の具体例にかかるMAC部が有するアグリゲーション制御部による送信ディスクリプタテーブルの変更動作を説明するための図である。
【図19】背景技術にかかるフレーム結合技術を模式的に示した図の一例である。
【図20】背景技術にかかるフレーム結合技術によって生成される結合フレームのパケットフォーマットを示す図である。
【符号の説明】
【0092】
1 通信システム
11 FTPサーバ
12 アクセスポイント
13 端末
14 通信ケーブル
121 ブリッジ部
122 無線MAC部
123 無線PHY部
124 アンテナ
125 有線MAC部
126 有線PHY部
131 上位レイヤ処理部
132 MAC部
133 PHY部
134 アンテナ
401、801 受信フレーム終端部
402、602、802 送信フレーム生成部
403 フレーム結合部
404 結合フレーム送信キュー
405 単一フレーム送信キュー
406 上位レイヤヘッダ取得部
407 単発送信判定部
408、608 送信キュー制御部
803 送信バッファ
804 送信ディスクリプタテーブル
808 アグリゲーション制御部

【特許請求の範囲】
【請求項1】
データを通信媒体に送信する物理層処理部と、
データフレームを少なくとも1つの他のデータフレームと結合させて結合フレームとして前記物理層処理部に供給する結合フレーム送信制御、及び前記データフレームを他のデータフレームと結合せずに単一フレームとして前記物理層処理部に供給する単一フレーム送信制御の両方を行なうことが可能な下位レイヤ処理部とを備え、
前記下位レイヤ処理部は、
前記データフレームのペイロードに収容されるデータセグメントの種別に基づいて、前記データフレームを前記結合フレームとして送信するか、前記単一フレームとして送信するかを決定する、通信装置。
【請求項2】
前記下位レイヤ処理部は、通信相手装置に対するフィードバック情報が前記データフレームのペイロードに含まれる場合に、前記単一フレーム送信制御により前記データフレームを前記物理層処理部に供給する請求項1に記載の通信装置。
【請求項3】
前記フィードバック情報を含むデータフレームの前記単一フレーム送信制御による前記物理層処理部への供給は、当該通信装置と前記通信相手装置との間におけるデータセグメントの送信遅延又は再送が発生したことに応じて選択的に行われる請求項2に記載の通信装置。
【請求項4】
前記下位レイヤ処理部は、前記データフレームが前記フィードバック情報を含むか否かによって、前記結合フレーム送信制御と前記単一フレーム送信制御との間で送信制御を切り替える請求項2又は3に記載の通信装置。
【請求項5】
データセグメントの送受信を制御する上位レイヤ処理部と、
前記上位レイヤ処理部から前記下位レイヤ処理部に順次供給される複数の送信データセグメント、又は前記下位レイヤ処理部から前記上位レイヤ処理部に順次供給される複数の受信データセグメントに含まれるシーケンス番号の時間変化率に基づいて、前記データフレームの前記単一フレーム送信制御による供給の要否を判定する判定部と、
をさらに備える請求項1乃至4のいずれか1項に記載の通信装置。
【請求項6】
前記単一フレームが格納される第1の送信データキューと、
前記結合フレームが格納される第2の送信データキューと、
前記第1の送信データキューに格納されたデータを前記第2の送信データキューに格納されたデータに優先して前記物理層処理部に供給する送信キュー制御部と、
をさらに備える請求項1乃至5のいずれか1項に記載の通信装置。
【請求項7】
前記フィードバック情報は、前記通信相手装置におけるフロー制御に使用される請求項2又は請求項2に従属する請求項3乃至6のいずれか1項に記載の通信装置。
【請求項8】
前記フィードバック情報は、TCP(Transmission Control Protocol)のACKセグメント又はRTCP(RTP Control Protocol)のフィードバック情報である請求項2又は請求項2に従属する請求項3乃至6のいずれか1項に記載の通信装置。
【請求項9】
前記通信媒体は、無線通信チャネルである請求項1乃至8のいずれか1項に記載の通信装置。
(方法クレーム)
【請求項10】
複数のデータフレームを結合させた結合フレームを通信媒体に送信可能な通信装置におけるデータフレームの送信制御方法であって、
データフレームのペイロードに収容される送信データセグメントの種別を識別するステップと、
前記送信データセグメントの識別結果に基づいて、前記データフレームを少なくとも1つの他のデータフレームと結合させて結合フレームとして通信媒体に送信するか、又は前記データフレームを前記他のデータフレームと結合せずに単一フレームとして前記通信媒体に送信するかを決定するステップと、
を備える送信制御方法。
【請求項11】
前記送信データセグメントが通信相手装置に対するフィードバック情報を含む場合に、前記データフレームを前記単一フレームとして送信するよう決定する請求項10に記載の送信制御方法。
【請求項12】
前記通信装置と前記通信相手装置との間におけるデータセグメントの送信遅延又は再送が発生したことを判定するステップをさらに備え、
前記データフレームの前記単一フレームでの送信の決定は、前記送信遅延又は再送が発生したことに応じて選択的に行われる請求項10又は11に記載の送信制御方法。
【請求項13】
前記送信遅延又は再送の発生を、前記上位レイヤ処理部から前記下位レイヤ処理部に順次供給される複数の送信データセグメント、又は前記下位レイヤ処理部から前記上位レイヤ処理部に順次供給される複数の受信データセグメントに含まれるシーケンス番号の時間変化率に基づいて判定する請求項12に記載の送信制御方法。
(プログラムクレーム)
【請求項14】
複数のデータフレームを結合させた結合フレームを通信媒体に送信可能な通信装置に関する制御処理をコンピュータに実行させるプログラムであって、
前記制御処理は、
データフレームのペイロードに収容される送信データセグメントの種別を識別する処理と、
前記送信データセグメントの識別結果に基づいて、前記データフレームを少なくとも1つの他のデータフレームと結合させて結合フレームとして通信媒体に送信するか、又は前記データフレームを前記他のデータフレームと結合せずに単一フレームとして前記通信媒体に送信するかを決定する処理と、
を含むプログラム。
【請求項15】
前記送信データセグメントが通信相手装置に対するフィードバック情報を含む場合に、前記データフレームを前記単一フレームとして送信するよう決定する請求項14に記載のプログラム。
【請求項16】
前記データフレームの前記単一フレームでの送信の決定は、前記通信装置と前記通信相手装置との間におけるデータセグメントの送信遅延又は再送が発生した場合に選択的に行われる請求項14又は15に記載のプログラム。
【請求項17】
前記送信遅延又は再送の発生を、前記上位レイヤ処理部から前記下位レイヤ処理部に順次供給される複数の送信データセグメント、又は前記下位レイヤ処理部から前記上位レイヤ処理部に順次供給される複数の受信データセグメントに含まれるシーケンス番号の時間変化率に基づいて判定する請求項16に記載のプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6A】
image rotate

【図6B】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10A】
image rotate

【図10B】
image rotate

【図11A】
image rotate

【図11B】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18A】
image rotate

【図18B】
image rotate

【図19】
image rotate

【図20】
image rotate


【公開番号】特開2009−147786(P2009−147786A)
【公開日】平成21年7月2日(2009.7.2)
【国際特許分類】
【出願番号】特願2007−324577(P2007−324577)
【出願日】平成19年12月17日(2007.12.17)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】