JP2022059312A - 通信装置、制御方法およびプログラム - Google Patents
通信装置、制御方法およびプログラム Download PDFInfo
- Publication number
- JP2022059312A JP2022059312A JP2020166969A JP2020166969A JP2022059312A JP 2022059312 A JP2022059312 A JP 2022059312A JP 2020166969 A JP2020166969 A JP 2020166969A JP 2020166969 A JP2020166969 A JP 2020166969A JP 2022059312 A JP2022059312 A JP 2022059312A
- Authority
- JP
- Japan
- Prior art keywords
- transmission queue
- address information
- communication device
- mac
- destination
- 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.)
- Pending
Links
- 238000004891 communication Methods 0.000 title claims abstract description 109
- 238000000034 method Methods 0.000 title claims abstract description 18
- 230000005540 biological transmission Effects 0.000 claims abstract description 87
- 230000002776 aggregation Effects 0.000 claims abstract description 72
- 238000004220 aggregation Methods 0.000 claims abstract description 72
- 230000006870 function Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000004931 aggregating effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 1
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
Description
本発明は、MAC(Media Access Control)フレームをアグリゲーション可能な通信装置に関する。
無線LAN規格(IEEE802.11nおよびac)では、MACフレームを束ねてデータの送信効率を増すことで通信速度を向上させるA-MSDU(Aggregation-MAC Service Data Unit)が規定されている。A-MSDUによりMACフレームをアグリゲーションすることで、データの送信期間に対する送信待ち時間およびACK待ち時間などのプロトコル上で必要となる期間を低減し、通信速度を改善することができる。
例えば、特許文献1には、標準規格で規定される送信時間の制約を遵守しつつ、フレームの最大長を決定し、その範囲内でデータフレームを結合してスループットを向上させる技術が開示されている。
一方、A-MSDUを実現するためには、無線ドライバにおいて送信時に上位層のプロトコルスタックで生成されるMACフレームをA-MSDUのフレームフォーマットに従って連結する必要がある。一般的な実装としては、プロトコルスタックが生成したMACフレームをキューに投入し、無線ドライバがキューから取り出して既定のフレーム数のMACフレームを連結し、無線ヘッダを付加して無線通信フレームを生成し、無線デバイスへ転送する。また、複数の宛先と無線通信を行う場合には、複数のキューを用意して宛先ごとにMACフレームを連結する。
しかしながら、組み込み製品では、使用できるメモリ容量が少ないため、複数の宛先ごとにキューを持つと、メモリリソースが不足するおそれがある。一方、少ないキューでアグリゲーションを実現する場合、複数の宛先へのMACフレームがキュー内で混在し、適切にアグリゲーションできず、スループットが低下するおそれがある。
本発明は、上述の課題を鑑み、メモリリソースの増大を抑制しつつ、複数の宛先へのアグリゲーションを適正化することを目的とする。
本発明の一つの態様による通信装置は、MACフレームにアクセス可能なアドレス情報が投入される送信キューを管理する第1管理手段と、前記送信キューに投入されるアドレス情報に基づいて、同宛先のMACフレームをアグリゲーションサイズ以下で互いに紐付けて管理する第2管理手段と、前記MACフレームの宛先および前記アグリゲーションサイズに基づいて、前記送信キューに未投入のアドレス情報を前記送信キューに投入するか否かを判定する判定手段と、前記判定手段により前記送信キューに未投入のアドレス情報を前記送信キューに投入すると判定された場合、当該アドレス情報を前記送信キューに投入する投入手段と、を備える。
本発明によれば、メモリリソースの増大を抑制しつつ、複数の宛先へのグリゲーションを適正化することができる。
以下、添付図面を参照して本発明の実施形態を詳細に説明する。なお、以下の実施形態は本発明を限定するものではなく、また、実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。実施形態の構成は、本発明が適用される装置の仕様や各種条件(使用条件、使用環境等)によって適宜修正または変更され得る。本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されない。
図1は、実施形態に係る通信ネットワークの構成例を示すブロック図である。
図1において、通信システム11は、通信装置1~4を備える。図1の例では、通信装置1は、アクセスポイント、通信装置2~4は、ステーションである。通信装置1~4は、カメラ、プリンタ、タブレット、PC(Personal Computer)などの通信機能を備えた装置である。このとき、通信システム11は、インフラストラクチャーモードの無線ネットワークを構成することができる。インフラストラクチャーモードは、IEEE802.11で規定される無線LANの動作モードの1つである。インフラストラクチャーモードでは、アクセスポイントを介してステーション間の通信が行われる。例えば、インフラストラクチャーモードでは、通信装置2であるカメラが撮影した動画像を、通信装置1を介して通信装置3、4に送信し、通信装置3、4である複数のディスプレイに表示することができる。あるいは、通信装置2であるタブレットで編集したコンテンツを、通信装置1を介して通信装置3、4に送信し、通信装置3、4である複数のプリンタで用途別に印刷することができる。
図1において、通信システム11は、通信装置1~4を備える。図1の例では、通信装置1は、アクセスポイント、通信装置2~4は、ステーションである。通信装置1~4は、カメラ、プリンタ、タブレット、PC(Personal Computer)などの通信機能を備えた装置である。このとき、通信システム11は、インフラストラクチャーモードの無線ネットワークを構成することができる。インフラストラクチャーモードは、IEEE802.11で規定される無線LANの動作モードの1つである。インフラストラクチャーモードでは、アクセスポイントを介してステーション間の通信が行われる。例えば、インフラストラクチャーモードでは、通信装置2であるカメラが撮影した動画像を、通信装置1を介して通信装置3、4に送信し、通信装置3、4である複数のディスプレイに表示することができる。あるいは、通信装置2であるタブレットで編集したコンテンツを、通信装置1を介して通信装置3、4に送信し、通信装置3、4である複数のプリンタで用途別に印刷することができる。
通信装置2は、通信装置1を介して、動画像または印刷データを無線パケットとして通信装置3、4へ送信する。このとき、通信装置1は、各通信装置3、4の無線パケットを同時にハンドリングするため、アグリゲーション処理を効率化し、通信速度を向上させる。例えば、通信装置1は、各通信装置3、4に対して許容される最大のアグリゲーションサイズの無線パケットを送信することで、通信速度を向上させることができる。
また、通信装置2においても、通信装置1が各通信装置3、4に効率よくアグリゲーションしたパケットを送信できるように、宛先ごとに最大のアグリゲーションサイズで送信することができる。ここで、各通信装置1~4が許容する最大のアグリゲーションサイズは、予め機器のスペックおよび通信リンク方式により決められる。例えば、通信リンク方式としてIEEE802.11acで接続する場合には、A-MSDUの最大アグリゲーションサイズは10Kバイトであり、IEEE802.11nの場合は、最大アグリゲーションサイズは8Kバイトである。
また、通信装置1、2間には無線リンク12が設定され、通信装置1、3間には無線リンク13が設定され、通信装置1、4間には無線リンク14が設定される。このとき、各通信装置1~4は、ケーパビリティーを予め交換し合うことで無線リンク12~14における最大アグリゲーションサイズを決定することができる。例えば、無線リンク12、13は、IEEE802.11acで接続され、無線リンク14は、IEEE802.11nで接続されるものとする。ただし、通信装置4は、スペックの制約で6Kバイトまでのアグリゲーションに対応しているものとする。この場合、各通信装置1、2は、最大アグリゲーションサイズを管理するテーブルを宛先ごとに持ち、宛先が通信装置3の場合には最大10Kバイトのアグリゲーションを実行し、通信装置4の場合には最大6Kバイトのアグリゲーションを実行する。
図2は、実施形態に係る通信装置の構成例を示すブロック図である。なお、図2は、図1の通信装置1を例にとるが、通信装置2~4も同様に構成することができる。
図2に示す通信装置1の各機能モジュールのうち、ソフトウェアにより実現される機能については、各機能モジュールの機能を提供するためのプログラムがROM(Read Only Memory)等のメモリに記憶される。そして、そのプログラムをRAM(Random Access Memory)に読み出してCPU(Central Processing Unit)が実行することにより実現される。ハードウェアにより実現される機能については、例えば、所定のコンパイラを用いることで、各機能モジュールの機能を実現するためのプログラムからFPGA上に自動的に専用回路を生成すればよい。FPGAとは、Field Programmable Gate Arrayの略である。また、FPGAと同様にしてGate Array回路を形成し、ハードウェアとして実現するようにしてもよい。また、ASIC(Application Specific Integrated Circuit)により実現するようにしてもよい。なお、図2に示した機能ブロックの構成は一例であり、複数の機能ブロックが1つの機能ブロックを構成するようにしてもよいし、いずれかの機能ブロックが複数の機能を行うブロックに分かれてもよい。
図2に示す通信装置1の各機能モジュールのうち、ソフトウェアにより実現される機能については、各機能モジュールの機能を提供するためのプログラムがROM(Read Only Memory)等のメモリに記憶される。そして、そのプログラムをRAM(Random Access Memory)に読み出してCPU(Central Processing Unit)が実行することにより実現される。ハードウェアにより実現される機能については、例えば、所定のコンパイラを用いることで、各機能モジュールの機能を実現するためのプログラムからFPGA上に自動的に専用回路を生成すればよい。FPGAとは、Field Programmable Gate Arrayの略である。また、FPGAと同様にしてGate Array回路を形成し、ハードウェアとして実現するようにしてもよい。また、ASIC(Application Specific Integrated Circuit)により実現するようにしてもよい。なお、図2に示した機能ブロックの構成は一例であり、複数の機能ブロックが1つの機能ブロックを構成するようにしてもよいし、いずれかの機能ブロックが複数の機能を行うブロックに分かれてもよい。
図2において、通信装置1は、CPU21、オンチップメモリ22、メインメモリ23および無線制御部24を備える。CPU21、オンチップメモリ22、メインメモリ23および無線制御部24は、システムバス25を介して互いに接続されている。システムバス25は、各種データの転送経路である。
CPU21は、OS(Operating System)またはデバイスドライバを介して各ハードウェア構成部を統括的に制御し、通信装置1を制御する。CPU21は、GPU(Graphics Processing Unit)であってもよい。CPU21は、アプリケーション210、プロトコルスタック211および無線ドライバ212を備える。無線ドライバ212は、連結サイズ決定部213、キュー管理部214、リスト管理部215および管理種別選択部216を備える。
オンチップメモリ22は、CPU21で実行されるOSおよびデバイスドライバなどの制御プログラムを格納する。オンチップメモリ22は、送信キュー217を備える。
メインメモリ23は、CPU21で実行されるアプリケーション210、プロトコルスタック211および無線ドライバ212の各種プログラムおよびデータを記憶したり、ワークエリアを提供したりする。
メインメモリ23は、CPU21で実行されるアプリケーション210、プロトコルスタック211および無線ドライバ212の各種プログラムおよびデータを記憶したり、ワークエリアを提供したりする。
無線制御部24は、無線ネットワークを介し、相手の通信装置と通信を行う。無線制御部24は、CPU21、オンチップメモリ22およびメインメモリ23から構成されるホストシステムと接続するためのSDIO、PCIeまたはUSBなどのインターフェースから構成される。SDIOは、Secure Digital Input/Output、PCIeは、Peripheral Component Interconnect-Express、USBは、Universal Serial Busである。
通信装置1において、データ通信を行う場合は、アプリケーション210により、ソケットAPI(Application Programming Interface)がコールされる。
プロトコルスタック211は、TCP/IP(Transmission Control Protocol /Internet Protocol)等のプロトコル処理を行い、MACフレームを生成する。
プロトコルスタック211は、TCP/IP(Transmission Control Protocol /Internet Protocol)等のプロトコル処理を行い、MACフレームを生成する。
無線ドライバ212は、プロトコルスタック211からMACフレームを受け取り、無線通信フレームを生成する際に複数のMACフレームに対してアグリゲーション処理を行う。このとき、無線ドライバ212は、送信キュー217に積まれた順にMACフレームのアグリゲーション処理を行い、無線ヘッダを付加して無線通信フレームとして無線制御部24に転送する。このアグリゲーション処理では、無線ドライバ212は、各宛先のアグリゲーションサイズ以下でMACフレームを宛先ごとに連結する。このとき、無線ドライバ212は、A-MSDUを実現するために、プロトコルスタック211で生成されるMACフレームをA-MSDUのフレームフォーマットに従って連結する。
連結サイズ決定部213は、複数の宛先ノードごとにアグリゲーションサイズを決定する。例えば、図1の通信装置1が各通信装置3、4にMACフレームを送信する場合、宛先ノードは各通信装置3、4である。連結サイズ決定部213は、複数の宛先ノードごとに設定されたアグリゲーションサイズを格納するテーブルを備えてもよい。連結サイズ決定部213は、複数の宛先ノードごとのアグリゲーションサイズから最小のアグリゲーションサイズを決定し、全ての宛先に対して最小のアグリゲーションサイズを適用してもよい。
キュー管理部214は、MACフレームにアクセス可能なアドレス情報が投入される送信キュー217を管理する。このアドレス情報は、例えば、MACフレームが格納されるパケット管理構造体の先頭アドレスである。
リスト管理部215は、MACフレームにアクセス可能なアドレス情報に基づいて、同宛先のMACフレームを紐付けてリスト形式で管理する。例えば、リスト管理部215は、第1MACフレームの第1アドレス情報が送信キュー217に投入済の場合、第1MACフレームと同宛先の第2MACフレームをリスト管理する。このとき、リスト管理される第2MACフレームの第2アドレス情報は送信キュー217に投入されない。また、リスト管理部215は、同宛先のMACフレームをアグリゲーションサイズ以下で紐付けて管理する。
このとき、MACフレームは、キュー管理部214およびリスト管理部215により宛先ごとに適正にアグリゲーションが実行できるように管理される。
このとき、MACフレームは、キュー管理部214およびリスト管理部215により宛先ごとに適正にアグリゲーションが実行できるように管理される。
管理種別選択部216は、MACフレームの宛先およびアグリゲーションサイズに基づいて、送信キュー217に未投入のアドレス情報を送信キュー217に投入するか、投入しないかを選択する。例えば、管理種別選択部216は、第1MACフレームの第1アドレス情報が送信キュー217に投入済のときに、第1MACフレームと同宛先の第2MACフレームをアグリゲーションサイズ以下で紐付けが可能な場合、第2MACフレームの第2アドレス情報を送信キュー217に投入しないことを選択する。この場合、リスト管理部215は、第2MACフレームを第1MACフレームと紐付けてリスト管理する。
また、管理種別選択部216は、第1MACフレームの第1アドレス情報が送信キュー217に投入済のときに、第1MACフレームと同宛先の第2MACフレームをアグリゲーションサイズ以下で紐付けが不可能な場合、第2MACフレームの第2アドレス情報を送信キュー217に投入することを選択する。
さらに、管理種別選択部216は、第1MACフレームの第1アドレス情報と同宛先の第2MACフレームの第2アドレス情報が送信キュー217に未投入の場合、第1アドレス情報を送信キュー217に投入することを選択する。
また、管理種別選択部216は、第1MACフレームの第1アドレス情報が送信キュー217に投入済のときに、第1MACフレームと同宛先の第2MACフレームをアグリゲーションサイズ以下で紐付けが不可能な場合、第2MACフレームの第2アドレス情報を送信キュー217に投入することを選択する。
さらに、管理種別選択部216は、第1MACフレームの第1アドレス情報と同宛先の第2MACフレームの第2アドレス情報が送信キュー217に未投入の場合、第1アドレス情報を送信キュー217に投入することを選択する。
送信キュー217は、MACフレームにアクセス可能なアドレス情報が投入される。例えば、送信キュー217には、MACフレームが格納されるパケット管理構造体の先頭アドレスが積まれる。このとき、同宛先のMACフレームが複数あるものとする。この場合、送信キュー217には、それら複数のMACフレームのそれぞれの格納先である複数のパケット管理構造体の先頭アドレスのうち、いずれか1つのMACフレームの格納先であるパケット管理構造体の先頭アドレスのみが格納される。
図3は、実施形態に係る無線ドライバのアグリゲーション処理を示すフローチャートである。ここでは、図2のプロトコルスタック211がMACフレームを生成し、無線ドライバ212が取得した後、宛先ごとに管理してアグリゲーション処理を行い、無線制御部24に転送するまでの流れを説明する。
なお、図3の各ステップは、通信装置1の記憶部に記憶されたプログラムをCPU21が読み出し、実行することで実現される。また、図3に示すフローチャートの少なくとも一部をハードウェアにより実現してもよい。ハードウェアにより実現する場合、例えば、所定のコンパイラを用いることで、各ステップを実現するためのプログラムからFPGA上に自動的に専用回路を生成すればよい。また、FPGAと同様にしてGate Array回路を形成し、ハードウェアとして実現するようにしてもよい。また、ASICにより実現するようにしてもよい。
この場合、図3に示すフローチャートにおける各ブロックは、ハードウェアブロックと見做すことができる。なお、複数のブロックをまとめて1つのハードウェアブロックとして構成してもよく、1つのブロックを複数のハードウェアブロックとして構成してもよい。
この場合、図3に示すフローチャートにおける各ブロックは、ハードウェアブロックと見做すことができる。なお、複数のブロックをまとめて1つのハードウェアブロックとして構成してもよく、1つのブロックを複数のハードウェアブロックとして構成してもよい。
図3のS1において、図2の無線ドライバ212は、プロトコルスタック211が生成したMACフレームが取得可能かどうかを判断し、取得可能な場合にはS2に進み、取得不可の場合にはS6に進む。
S2では、無線ドライバ212は、MACフレーム内のMACヘッダまたはIP(Internet Protocol)ヘッダを参照し、同宛先のMACフレームが送信キュー217にあるかどうかを判定する。このとき、無線ドライバ212は、宛先を識別するために、宛先MACアドレスまたは宛先IPアドレスを参照することができる。
S2では、無線ドライバ212は、MACフレーム内のMACヘッダまたはIP(Internet Protocol)ヘッダを参照し、同宛先のMACフレームが送信キュー217にあるかどうかを判定する。このとき、無線ドライバ212は、宛先を識別するために、宛先MACアドレスまたは宛先IPアドレスを参照することができる。
無線ドライバ212は、同宛先のMACフレームが送信キュー217にない場合、S3に進み、ある場合、S4に進む。
S3では、無線ドライバ212は、MACフレームが格納されるパケット管理構造体の先頭アドレスを送信キュー217に投入し、S1に戻る。
S4では、無線ドライバ212は、同宛先のMACフレームに関連付けられるMACフレームを含めても、連結サイズ決定部213にて決定されるアグリゲーションサイズ以下かどうかを判定する。無線ドライバ212は、アグリゲーションサイズを超過する場合、S3に進み、アグリゲーションサイズ以下の場合、S5に進む。
S3では、無線ドライバ212は、MACフレームが格納されるパケット管理構造体の先頭アドレスを送信キュー217に投入し、S1に戻る。
S4では、無線ドライバ212は、同宛先のMACフレームに関連付けられるMACフレームを含めても、連結サイズ決定部213にて決定されるアグリゲーションサイズ以下かどうかを判定する。無線ドライバ212は、アグリゲーションサイズを超過する場合、S3に進み、アグリゲーションサイズ以下の場合、S5に進む。
S5では、無線ドライバ212は、リストに追加されるMACフレームを送信キュー217に投入済みのMACフレームに関連付け、リスト管理を行う。なお、MACフレームを関連付けすることでリストとして管理する方法については後述する。
S6では、無線ドライバ212は、MACフレームが格納されるパケット管理構造体の先頭アドレスを送信キュー217からデキューし、S7に進む。
S7では、無線ドライバ212は、格納先のパケット管理構造体の先頭アドレスがデキューされたMACフレームに関連付けられているMACフレームを含めてアグリゲーション処理を行い、S8に進む。
S8では、無線ドライバ212は、アグリゲーション処理を行ったMACフレームに無線ヘッダを付加して無線通信フレームを生成し、S9に進む。
S9では、無線ドライバ212は、無線通信フレームを無線制御部24に転送し、処理を終了する。
S7では、無線ドライバ212は、格納先のパケット管理構造体の先頭アドレスがデキューされたMACフレームに関連付けられているMACフレームを含めてアグリゲーション処理を行い、S8に進む。
S8では、無線ドライバ212は、アグリゲーション処理を行ったMACフレームに無線ヘッダを付加して無線通信フレームを生成し、S9に進む。
S9では、無線ドライバ212は、無線通信フレームを無線制御部24に転送し、処理を終了する。
ここで、S1において、無線制御部24へ転送可能かどうかの判断を加えてもよい。すなわち、無線制御部24へ転送可能の場合には、MACフレームが格納されるパケット管理構造体の先頭アドレスを送信キュー217から即座にデキューしてアグリゲーションし、無線ヘッダを付加して転送してもよい。
また、S4において、アグリゲーションサイズにより判定を行ったが、この方法以外にも、アグリゲーション数により判定を行ってもよい。例えば、MACフレームのサイズは1.5Kバイトを想定し、最大アグリゲーションサイズが6Kバイトの場合には、アグリゲーション数を4として判定してもよい。
また、S4において、アグリゲーションサイズにより判定を行ったが、この方法以外にも、アグリゲーション数により判定を行ってもよい。例えば、MACフレームのサイズは1.5Kバイトを想定し、最大アグリゲーションサイズが6Kバイトの場合には、アグリゲーション数を4として判定してもよい。
図4は、実施形態に係るパケット管理構造体を示す図である。ここでは、図2のメインメモリ23において、MACフレームを格納するパケット管理構造体40について説明を行う。
図4において、パケット管理構造体40は、管理情報部41およびデータ部42を備える。
図4において、パケット管理構造体40は、管理情報部41およびデータ部42を備える。
管理情報部41は、データ部42のサイズ、データ部42に格納されるフレームのデータ長、データ部42の開始アドレスおよび次パケット管理構造体40の先頭アドレスを含む。
データ部42は、フレームを格納可能なサイズのバッファである。データ部42は、パケットとしてMACヘッダ、IPヘッダ、TCP/UDPヘッダおよびペイロードを格納する。
データ部42は、フレームを格納可能なサイズのバッファである。データ部42は、パケットとしてMACヘッダ、IPヘッダ、TCP/UDPヘッダおよびペイロードを格納する。
プロトコルスタック211で生成されたMACフレームは、パケット管理構造体40に格納され、無線ドライバ212は、データ部42の開始アドレスからMACフレームを取得する。また、無線ドライバ212は、S5において、次のパケット管理構造体40の先頭アドレスを使用してリスト形式でMACフレームの関連付けを行う。無線ドライバ212は、リストの最後のパケット管理構造体40では、次のパケット管理構造体40の先頭アドレスをNULLまたは0として管理を行う。
ここで、送信キュー217は、サイズが予め決められたFIFO(First In First Out)で構成され、MACフレームを格納するパケット管理構造体の先頭アドレスを保持する。また、無線ドライバ212は、パケット管理構造体に他のパケット管理構造体の先頭アドレスを紐付けることでリスト管理を行う。リスト管理は、先頭アドレスのみの情報を付加することで宛先ごとにMACフレームを管理可能であるため、送信キュー217でMACフレームのFIFOを実現するよりも、必要となるメモリサイズを低減可能である。
図5は、実施形態に係る送信キューおよびリスト管理の一例を示す図である。ここでは、図2の通信装置1において、図3の処理を実行することで、宛先である通信装置3、4へのMACフレームを宛先ごとに適切にアグリゲーション処理できるように管理する場合を説明する。また、全てのMACフレームは、1.5Kバイトであるものとして説明する。
図5において、パケット管理構造体504~510は、番号順にプロトコルスタック211で生成され、無線ドライバ212が生成した順に取得される。パケット管理構造体504、508は、通信装置3宛てのMACフレームが格納され、パケット管理構造体505~507、509、510は、通信装置4宛てのMACフレームが格納される。
以下、図5の送信キュー217に格納された先頭アドレスに紐付けられたリストの生成方法について説明する。
無線ドライバ212は、パケット管理構造体504を取得し、パケット管理構造体504の先頭アドレス503を送信キュー217に投入する。
次に、無線ドライバ212は、パケット管理構造体505を取得する。このとき、パケット管理構造体505の宛先は、送信キュー217に投入済みのパケット管理構造体404と宛先と異なるため、無線ドライバ212は、パケット管理構造体505の先頭アドレス502を送信キュー217に投入する。
無線ドライバ212は、パケット管理構造体504を取得し、パケット管理構造体504の先頭アドレス503を送信キュー217に投入する。
次に、無線ドライバ212は、パケット管理構造体505を取得する。このとき、パケット管理構造体505の宛先は、送信キュー217に投入済みのパケット管理構造体404と宛先と異なるため、無線ドライバ212は、パケット管理構造体505の先頭アドレス502を送信キュー217に投入する。
次に、無線ドライバ212は、パケット管理構造体506を取得する。このとき、パケット管理構造体506と同宛先であるパケット管理構造体505が送信キュー217に既に存在する。このため、無線ドライバ212は、管理情報部41の次のパケット管理構造体40の先頭アドレス512にパケット管理構造体506の先頭アドレスを使用して関連付けを行う。
次に、無線ドライバ212は、パケット管理構造体505と同宛先であるパケット管理構造体507、509について順次関連付けを行う。
また、無線ドライバ212は、パケット管理構造体504と同宛先であるパケット管理構造体508について関連付けを行う。
また、無線ドライバ212は、パケット管理構造体510を取得する。このとき、パケット管理構造体510と同宛先のパケット管理構造体509が存在するが、これらの関連付けを行うと、最大アグリゲーションサイズである6Kバイトを超過するものとする。この場合、無線ドライバ212は、パケット管理構造体510については、パケット管理構造体509と紐付けるリスト管理を行わず、パケット管理構造体510の先頭アドレス501を送信キュー217に投入する。
また、無線ドライバ212は、パケット管理構造体504と同宛先であるパケット管理構造体508について関連付けを行う。
また、無線ドライバ212は、パケット管理構造体510を取得する。このとき、パケット管理構造体510と同宛先のパケット管理構造体509が存在するが、これらの関連付けを行うと、最大アグリゲーションサイズである6Kバイトを超過するものとする。この場合、無線ドライバ212は、パケット管理構造体510については、パケット管理構造体509と紐付けるリスト管理を行わず、パケット管理構造体510の先頭アドレス501を送信キュー217に投入する。
以上の操作により、最大アグリゲーションサイズ以内に収めつつ、図5の送信キュー217に格納された先頭アドレスに紐付けられたリストが生成される。
その後、無線ドライバ212は、送信キュー217から順にデキューし、リスト管理されるパケット管理構造体40に格納されるMACフレームをアグリゲーション処理する。これにより、無線ドライバ212は、1つの送信キュー217のみで宛先ごとに適切にアグリゲーション処理を行うことができ、メモリリソースの増大を抑制しつつ、データ送信時のスループットを向上させることができる。
その後、無線ドライバ212は、送信キュー217から順にデキューし、リスト管理されるパケット管理構造体40に格納されるMACフレームをアグリゲーション処理する。これにより、無線ドライバ212は、1つの送信キュー217のみで宛先ごとに適切にアグリゲーション処理を行うことができ、メモリリソースの増大を抑制しつつ、データ送信時のスループットを向上させることができる。
図6は、実施形態に係る無線ドライバのアグリゲーション処理シーケンスを示す図である。ここでは、図1の通信装置1において、通信装置3、4への複数のMACフレームF1~F7に対するアグリゲーション処理を含む送信動作を説明する。MACフレームF1、F5は通信装置3宛て、MACフレームF2~F4、F6、F7は通信装置4宛てであるものとする。また、各MACフレームの格納先が、図5のパケット管理構造体504~510であるものとする。
図6において、S10、S11では、図2のプロトコルスタック211は、通信装置3宛てのMACフレームF1をメインメモリ23に生成する。
S12では、無線ドライバ212は、MACフレームF1を取得し、S13では、格納されるパケット管理構造体504の先頭アドレス503を送信キュー217に投入する。
S12では、無線ドライバ212は、MACフレームF1を取得し、S13では、格納されるパケット管理構造体504の先頭アドレス503を送信キュー217に投入する。
S14、S15では、プロトコルスタック211は、通信装置4宛てのMACフレームF2をメインメモリ23に生成する。
S16では、無線ドライバ212は、MACフレームF2を取得し、S17では、格納されるパケット管理構造体505の先頭アドレス502を送信キュー217に投入する。
S16では、無線ドライバ212は、MACフレームF2を取得し、S17では、格納されるパケット管理構造体505の先頭アドレス502を送信キュー217に投入する。
S18、S19では、プロトコルスタック211は、通信装置4宛てのMACフレームF3をメインメモリ23に生成する。
S20では、無線ドライバ212は、MACフレームF3を取得し、S21では、格納されるパケット管理構造体506の先頭アドレスをパケット管理構造体505に関連付ける。
S20では、無線ドライバ212は、MACフレームF3を取得し、S21では、格納されるパケット管理構造体506の先頭アドレスをパケット管理構造体505に関連付ける。
S22、S23では、プロトコルスタック211は、通信装置4宛てのMACフレームF4をメインメモリ23に生成する。
S24では、無線ドライバ212は、MACフレームF4を取得し、S25では、格納されるパケット管理構造体507の先頭アドレスをパケット管理構造体506に関連付ける。
S24では、無線ドライバ212は、MACフレームF4を取得し、S25では、格納されるパケット管理構造体507の先頭アドレスをパケット管理構造体506に関連付ける。
S26、S27では、プロトコルスタック211は、通信装置3宛てのMACフレームF5をメインメモリ23に生成する。
S28では、無線ドライバ212は、MACフレームF5を取得し、S29では、格納されるパケット管理構造体508の先頭アドレスをパケット管理構造体504に関連付ける。
S28では、無線ドライバ212は、MACフレームF5を取得し、S29では、格納されるパケット管理構造体508の先頭アドレスをパケット管理構造体504に関連付ける。
S30、S31では、プロトコルスタック211は、通信装置4宛てのMACフレームF6をメインメモリ23に生成する。
S32では、無線ドライバ212は、MACフレームF6を取得し、S33では、格納されるパケット管理構造体509の先頭アドレスをパケット管理構造体507に関連付ける。
S32では、無線ドライバ212は、MACフレームF6を取得し、S33では、格納されるパケット管理構造体509の先頭アドレスをパケット管理構造体507に関連付ける。
S34、S35では、プロトコルスタック211は、通信装置4宛てのMACフレームF7をメインメモリ23に生成する。
S36では、無線ドライバ212は、MACフレームF7を取得する。このとき、無線ドライバ212は、MACフレームF7のパケット管理構造体510の先頭アドレスをパケット管理構造体509に関連付けると、MACフレームF2を先頭にリスト管理されるフレーム数がアグリゲーションサイズを超過する。このため、S37では、無線ドライバ212は、格納されるパケット管理構造体510の先頭アドレス501を送信キュー217に投入する。
S36では、無線ドライバ212は、MACフレームF7を取得する。このとき、無線ドライバ212は、MACフレームF7のパケット管理構造体510の先頭アドレスをパケット管理構造体509に関連付けると、MACフレームF2を先頭にリスト管理されるフレーム数がアグリゲーションサイズを超過する。このため、S37では、無線ドライバ212は、格納されるパケット管理構造体510の先頭アドレス501を送信キュー217に投入する。
S38、S39では、無線ドライバ212は、MACフレームを取得できなかったため、パケット管理構造体504の先頭アドレス503を送信キュー217からデキューし、MACフレームF1、F5をアグリゲーション処理する。
また、無線ドライバ212は、パケット管理構造体505の先頭アドレス502を送信キュー217からデキューし、MACフレームF2~F4、F6をアグリゲーション処理する。
さらに、無線ドライバ212は、パケット管理構造体510の先頭アドレス501を送信キュー217からデキューし、パケット管理構造体510については関連付けがないため、MACフレームF7のアグリゲーション処理は行わない。
また、無線ドライバ212は、パケット管理構造体505の先頭アドレス502を送信キュー217からデキューし、MACフレームF2~F4、F6をアグリゲーション処理する。
さらに、無線ドライバ212は、パケット管理構造体510の先頭アドレス501を送信キュー217からデキューし、パケット管理構造体510については関連付けがないため、MACフレームF7のアグリゲーション処理は行わない。
S40、S41では、無線ドライバ212は、アグリゲーション処理されたMACフレームと、アグリゲーション処理されてないMACフレームF7に無線ヘッダを付加し、無線通信フレームを生成する。
S42では、無線ドライバ212は、無線制御部203に対して転送命令を発行し、S43、S44では、メインメモリ23から無線制御部203に無線通信フレームを転送する。
S42では、無線ドライバ212は、無線制御部203に対して転送命令を発行し、S43、S44では、メインメモリ23から無線制御部203に無線通信フレームを転送する。
以上説明したように、上述した実施形態によれば、キュー管理部は、MACフレームにアクセス可能なアドレス情報が投入される送信キューを管理し、リスト管理部は、送信キューに投入されたアドレス情報に基づいて、同宛先のMACフレームを紐付けて管理する。これにより、送信キューに投入されるデータの量を削減しつつ、宛先ごとにMACフレームを管理することが可能となり、メモリリソースの増大を抑制しつつ、複数の宛先へのアグリゲーションを適正化することができる。
なお、上述した実施形態では、宛先である通信装置3、4に対して各々のアグリゲーションサイズを決定してテーブルで管理し、図3のS4では宛先ごとのアグリゲーションサイズを利用して判定を行った。この方法以外にも、例えば、全ての宛先のアグリゲーションサイズから最小のアグリゲーションサイズを決定し、S4において全ての宛先について最小のアグリゲーションサイズを使用して判定してもよい。また、最もアクセス数の多い宛先には個別のアグリゲーションサイズを適用し、その他の宛先に対しては最小のアグリゲーションサイズを適用してもよい。
また、上述した実施形態では、通信装置1~4がインフラストラクチャーモードで動作する場合を例にとった。これ以外にも、通信装置1~4は、複数のBSS(Basic Service Set)モードを併用して実行する場合であってもよい。複数のBSSモードは、インフラストラクチャーモード、WiFiダイレクトモードおよびアドホックモードのうち、少なくともいずれか2つの組み合わせである。例えば、インフラストラクチャーモードに加えて通信装置1、4間でWiFiダイレクトモードを同時に併用する場合に、通信装置1~4は、各々のモードに対して2つの送信キューを生成して運用してもよい。
また、リスト管理部215は、緊急性の高いMACフレームに対しては、MACフレームのリスト管理を行わないようにしてもよい。緊急性の高いMACフレームは、例えば、同期情報または制御情報を含むMACフレームである。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワークまたは記憶媒体を介してシステムまたは装置に供給してもよい。そして、上述の実施形態の1以上の機能は、そのシステムまたは装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。
11 通信システム、1~4 通信装置、12~14 無線リンク、21 CPU、22 オンチップメモリ、23 メインメモリ、24 無線制御部、25 システムバス、210 アプリケーション、211 プロトコルスタック、212 無線ドライバ、213 連結サイズ決定部、214 キュー管理部214 リスト管理部、216 管理種別選択部、217 送信キュー
Claims (15)
- MAC(Media Access Control)フレームにアクセス可能なアドレス情報が投入される送信キューを管理する第1管理手段と、
前記送信キューに投入されるアドレス情報に基づいて、同宛先のMACフレームをアグリゲーションサイズ以下で互いに紐付けて管理する第2管理手段と、
前記MACフレームの宛先および前記アグリゲーションサイズに基づいて、前記送信キューに未投入のアドレス情報を前記送信キューに投入するか否かを判定する判定手段と、
前記判定手段により前記送信キューに未投入のアドレス情報を前記送信キューに投入すると判定された場合、当該アドレス情報を前記送信キューに投入する投入手段と、
を備えることを特徴とする通信装置。 - 複数の宛先ノードごとにアグリゲーションサイズを決定する決定手段をさらに備えることを特徴とする請求項1に記載の通信装置。
- 各宛先のアグリゲーションサイズ以下で前記MACフレームを宛先ごとに連結して通信フレームとして転送する転送手段をさらに備えることを特徴とする請求項1または2に記載の通信装置。
- 前記アドレス情報は、前記MACフレームの格納先のアドレス情報であることを特徴とする請求項1から3のいずれか1項に記載の通信装置。
- 前記判定手段は、第1MACフレームの第1アドレス情報が前記送信キューに投入済のときに、前記第1MACフレームと同宛先の第2MACフレームを前記アグリゲーションサイズ以下で紐付けが可能な場合、前記第2MACフレームの第2アドレス情報を前記送信キューに投入しないと判定し、
前記第2管理手段は、前記第2MACフレームをリスト管理することを特徴とする請求項1から4のいずれか1項に記載の通信装置。 - 前記判定手段は、第1MACフレームの第1アドレス情報が前記送信キューに投入済のときに、前記第1MACフレームと同宛先の第2MACフレームを前記アグリゲーションサイズ以下で紐付けが不可能な場合、前記第2MACフレームの第2アドレス情報を前記送信キューに投入すると判定することを特徴とする請求項1から4のいずれか1項に記載の通信装置。
- 前記判定手段は、第1MACフレームの第1アドレス情報と同宛先の第2MACフレームの第2アドレス情報が前記送信キューに未投入の場合、前記第1アドレス情報を前記送信キューに投入すると判定することを特徴とする請求項1から4のいずれか1項に記載の通信装置。
- 前記決定手段は、複数の宛先ノードごとに設定された前記アグリゲーションサイズを格納するテーブルを備えることを特徴とする請求項6または7に記載の通信装置。
- 前記決定手段は、複数の宛先ノードごとのアグリゲーションサイズから最小のアグリゲーションサイズを決定し、全ての宛先に対して前記最小のアグリゲーションサイズを適用することを特徴とする請求項6から8のいずれか1項に記載の通信装置。
- 複数のBSS(Basic Service Set)モードを並行して実行する実行手段をさらに備え、
前記BSSモードごとに前記送信キューを生成することを特徴とする請求項1から9のいずれか1項に記載の通信装置。 - 前記複数のBSSモードは、インフラストラクチャーモード、WiFiダイレクトモードおよびアドホックモードのうち、少なくともいずれか2つの組み合わせであることを特徴とする請求項10に記載の通信装置。
- 前記第2管理手段は、同期情報または制御情報を含むMACフレームに対しては、前記MACフレームのリスト管理を行わないことを特徴とする請求項1から11のいずれか1項に記載の通信装置。
- 前記第2管理手段は、前記MACフレームに含まれる宛先MACアドレスまたは宛先IPアドレスに基づいて、前記MACフレームの宛先を識別することを特徴とする請求項1から12のいずれか1項に記載の通信装置。
- MAC(Media Access Control)フレームにアクセス可能なアドレス情報が投入される送信キューを管理するステップと、
前記送信キューに投入されるアドレス情報に基づいて、同宛先のMACフレームをアグリゲーションサイズ以下で互いに紐付けて管理するステップと、
前記MACフレームの宛先および前記アグリゲーションサイズに基づいて、前記送信キューに未投入のアドレス情報を前記送信キューに投入するか否かを判定するステップと、
前記送信キューに未投入のアドレス情報を前記送信キューに投入すると判定された場合、当該アドレス情報を前記送信キューに投入するステップと、
を備えることを特徴とする制御方法。 - コンピュータを請求項1から13のいずれか1項に記載の通信装置として動作させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020166969A JP2022059312A (ja) | 2020-10-01 | 2020-10-01 | 通信装置、制御方法およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020166969A JP2022059312A (ja) | 2020-10-01 | 2020-10-01 | 通信装置、制御方法およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022059312A true JP2022059312A (ja) | 2022-04-13 |
Family
ID=81124343
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020166969A Pending JP2022059312A (ja) | 2020-10-01 | 2020-10-01 | 通信装置、制御方法およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2022059312A (ja) |
-
2020
- 2020-10-01 JP JP2020166969A patent/JP2022059312A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102014067B (zh) | 一种报文分片发送的方法、装置和网络设备 | |
TWI406133B (zh) | 資料處理設備及資料傳送方法 | |
CN107360591A (zh) | 一种上报缓存状态报告的方法和设备 | |
WO2018121295A1 (zh) | 一种异构多协议栈方法、装置及系统 | |
US9774651B2 (en) | Method and apparatus for rapid data distribution | |
US9954982B2 (en) | Transmission apparatus and transmission method thereof | |
JP6851506B2 (ja) | データ分配方法、装置及びシステム | |
CN102316516A (zh) | 一种lte上行数据传输结构及控制方法 | |
US20210144589A1 (en) | Apparatus and methods for eht multi-band a-msdu operation | |
CN115396528A (zh) | 基于协议族的quic数据传输方法及装置 | |
US10769096B2 (en) | Apparatus and circuit for processing data | |
JP4201590B2 (ja) | データ通信装置、データ通信方法、データ通信プログラム及びデータ通信プログラムを記録した記録媒体 | |
JP2022059312A (ja) | 通信装置、制御方法およびプログラム | |
CN111698274B (zh) | 数据处理方法及装置 | |
JP2022161122A (ja) | 通信装置及び通信方法 | |
US20230179545A1 (en) | Packet forwarding apparatus with buffer recycling and associated packet forwarding method | |
JP6618330B2 (ja) | 通信装置及びその方法、コンピュータプログラム | |
US7532644B1 (en) | Method and system for associating multiple payload buffers with multidata message | |
JP2021036649A (ja) | 通信装置、通信装置の制御方法およびプログラム | |
US20240089786A1 (en) | Method and device for communication | |
CN113132264B (zh) | 一种安全计算控制方法、数据包处理方法、装置及其系统 | |
JP7321913B2 (ja) | 通信装置、制御方法およびプログラム | |
JP2023031710A (ja) | 通信装置及びその制御方法、並びにプログラム | |
CN117951051A (zh) | 聚合小型远程存储器访问请求 | |
JP4216181B2 (ja) | 送信装置、中継装置およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230726 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20240410 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240416 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240517 |