(57)【特許請求の範囲】
【請求項１】
コンピュータネットワークにおいて，上位層処理部と下位層処理部の少なくとも２層の処理構造を有し，当該処理構造に基づいてアグリゲーションによるデータ送信が可能な送信機であって，
（Ａ）前記上位層処理部は，
（Ａ−１）通信の相手方である受信機において，自身と同じ階層である受信機の上位層処理部によって使用されることが意図されている通信に関する設定（通信設定）を，送信データに施す通信設定手段と，
（Ａ−２）通信設定が施された送信データを自身より下位の層に渡す送信データ伝達手段と，を備え，
（Ｂ）前記下位層処理部処理部は，データリンク層における処理を実行するものであって，
（Ｂ−１）自身より上位の層から渡された送信データを受信する送信データ受信手段と，
（Ｂ−２）受信した送信データを所定の領域にて保持させる送信データ保持手段と，
（Ｂ−３）前記所定の領域に保持されている送信データを受信機に向けて送信する送信手段と，
（Ｂ−４）自身であるデータリンク層における処理を実行する処理部においてのみ管理される所定時間が到来したかどうかを判断する第１の判断手段と，
（Ｂ−５）前記所定時間が到来していた場合，前記送信手段に送信データの送信を指示する第１の送信指示手段と，
（Ｂ−６）前記上位層処理部における通信設定手段によって施された前記通信設定が前記上位層処理部において送信データの区切りを示すものであるかどうかを判断する第２の判断手段と，
（Ｂ−７）前記通信設定が前記上位層処理部において送信データの区切りを示すものであると判断された場合，前記送信手段に送信データの送信を指示する第２の送信指示手段と，
を備える送信機。
【請求項２】
コンピュータネットワークにおいて、アグリゲーションによるデータ送信が可能な送信機に対し，少なくとも
（１）メインタスクとして，
上位層において，
通信の相手方である受信機において，自身と同じ階層である受信機の上位層で使用されることが意図されている通信に関する設定（通信設定）を，送信データに施し，
通信設定が施された送信データを自身より下位の層に渡す
ステップと，
データリンク層において，
自身より上位の層から渡された送信データを受信し，
受信した送信データを所定の領域にて保持し，
前記上位層において送信データに施された通信設定が前記上位層における送信データの区切りを示すものであるかどうかを判断し，
前記通信設定が前記上位層における送信データの区切りを示すものであると判断された場合，アグリゲーション監視タスクに送信指示を行う
ステップと
を実行させ，
（２）アグリゲーション監視タスクとして，
データリンク層においてのみ管理される所定時間が到来したかどうかを判断し，前記所定時間の到来していた場合，前記所定の領域に保持されている送信データを受信機に向けて送信すると共に，
メインタスクからの送信指示を受信したかどうかを判断し，前記送信指示を受信したと判断する場合、前記所定の領域に保持されている送信データを受信機に向けて送信する
ステップと
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は，コンピュータネットワーク（以下，単にネットワークと称する）における送信機に関するものであり，特に，効率的な送信を行うことのできるものに関する。
【背景技術】
【０００２】
言うまでもないが，ネットワークにおけるデータ送受信の効率化は重要な技術的テーマである。当然，このテーマに対するアプローチは，ネットワークが誕生した当初からなされてきている。また，近年，有線に比べ帯域の狭い無線ネットワークが急速に普及していることもあり，過去にもまして，効率化への要求が高まっている。このような状況に鑑み，無線ネットワークにおけるデータ送受信の効率化の手段として，アグリゲーション（またはフレームアグリゲーション）と呼ばれるものが使用されている（非特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【非特許文献１】シスコシステムズ合同会社  ホームページ＜http://www.cisco.com/web/JP/solution/netsol/mobility/ngw/literature/pdf/wlpfmc_wp.pdf＞
【０００４】
アグリゲーションとは，簡単に言うと，無線ネットワークにおけるデータの送信時に，データの最小単位である送信フレームを複数束ねて（アグリゲートして）送信することで，データ送信に付随する制御などの通信を少なくしようとするものである。これにより，効率的なデータの送信を実現するわけである。
【０００５】
図１は上記したアグリゲーション動作の具体例であり，特に送信機におけるものである。図におけるアプリケーション（ＴＣＰアプリケーションおよびＵＤＰアプリケーション）とは，例えばＴＣＰ（Transmission  Control  Protocol）やＵＤＰ（User  Datagram  Protocol）のアプリケーションであり，具体的には，ＨＴＴＰ（Hyper  Text  Transfer  Protocol）やＳＮＭＰ（Simple  Network  Management  Protocol）などを指す。
【０００６】
図１は，アプリケーション１およびアプリケーション２がデータを送信する場合を例示している。図示するように，アプリケーション１の送信フレームは２つであり，アプリケーション２の送信フレームは３つである。通常の送信機であれば，送信フレームを，例えば，アプリケーション１−１やアプリケーション２−１といった単位で送信を行うのであるが，アグリゲーションを用いると，所定時間毎の送信開始タイミングの到来をトリガとして複数の送信フレームをまとめて送信する。図１の場合，５つの送信フレームが溜まるまで送信を行わないわけである。こうすることで，データ送信に付随する通信を極力減らすことができる。なお，アグリゲーションは，通常，ＭＡＣ層（データリンク層）で行われる処理であり，上位であるＴＣＰやＵＤＰが属する層（トランスポート層およびネットワーク層）とは独立して行われる。
【０００７】
一方でアグリゲーションを用いたデータ送信は，場合によっては，通信のレスポンス低下を招くこともあった。上述した図１の場合，アプリケーション１は，送信フレームが２つしかないにも関わらず，送信開始タイミングが到来するまで送信されない。つまり，そのフレーム以前の送信フレームは送信機内に保留され続けるわけである。もし，アプリケーション１からの送信フレームが即時性を要するものであった場合，このような動作はアプリケーション１のレスポンス低下を招き，場合によっては深刻な事態を引き起こすおそれもある。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本願発明はかかる課題を解決するものである。つまり，ネットワークにおけるデータの送信において，アグリゲーションによる通信の効率化を維持しつつ，即時性を要する通信に対してレスポンスよく送信を行うことのできる送信機およびそのプログラムを提供することである。
【課題を解決するための手段】
【０００９】
本願発明にかかる第１の形態は，コンピュータネットワークにおいて，上位層処理部と下位層処理部の少なくとも２層の処理構造を有し，当該処理構造に基づいてデータを送信する送信機であって，上位層処理部は，通信の相手方である受信機において，自身と同じ階層である受信機の上位層処理部によって使用されることが意図されている通信に関する設定（通信設定）を，送信データに施す通信設定手段と，通信設定が施された送信データを自身より下位の層に渡す送信データ伝達手段と，を備え，下位層処理部は，自身より上位の層から渡された送信データを受信する送信データ受信手段と，受信した送信データを所定の領域にて保持させる送信データ保持手段と，所定の領域に保持されている送信データを受信機に向けて送信する送信手段と，自身である下位層処理部においてのみ管理される所定の条件が，満たされているかどうかを判断する第１の判断手段と，所定の条件が満たされていた場合，送信手段に送信データの送信を指示する第１の送信指示手段と，上位層処理部における通信設定手段によって施された通信設定が所定の通信設定であるかどうかを判断する第２の判断手段と，通信設定が所定の通信設定であると判断された場合，送信手段に送信データの送信を指示する第２の送信指示手段と，を備える送信機である。
【００１０】
好ましくは，下位層処理部はデータリンク層における処理を実行する処理部であり，下位層処理部においてのみ管理される所定の条件は，所定時間の到来であり，所定の通信設定は，上位層処理部において送信データの区切りを示すものである。
【００１１】
本願発明にかかる第２の形態は，コンピュータネットワークにおける送信機に対し，少なくとも，（１）メインタスクとして，上位層において，少なくとも，通信の相手方である受信機において，自身と同じ階層である受信機の上位層で使用されることが意図されている通信に関する設定（通信設定）を，送信データに施し，通信設定が施された送信データを自身より下位の層に渡すステップと，下位層において，少なくとも，自身より上位の層から渡された送信データを受信し，受信した送信データを所定の領域にて保持し，上位層において送信データに施された通信設定が所定の通信設定であるかどうかを判断し，通信設定が所定の通信設定であると判断された場合，アグリゲーション監視タスクに送信指示を行うステップとを実行させ，（２）アグリゲーション監視タスクとして，下位層においてのみ管理される所定の条件が満たされているかどうかを判断し，所定の条件が満たされていた場合，所定の領域に保持されている送信データを受信機に向けて送信すると共に，メインタスクからの送信指示を受信したかどうかを判断し，送信指示を受信したと判断する場合、所定の領域に保持されている送信データを受信機に向けて送信するステップとを実行させるプログラム。
【００１２】
好ましくは，下位層はデータリンク層であり，下位層においてのみ管理される所定の条件は，所定時間の到来であり，所定の通信設定は，上位層における送信データの区切りを示すものである。
【発明の効果】
【００１３】
本願発明では，アプリケーションが設定する送信データの区切りをＭＡＣ層にて判断し，区切りがあれば即座に送信する。これにより，即時性の必要のない送信データは通常のアグリゲーションによる送信を行い，即時性の必要なデータは即座に送信することができる。結果として，アグリゲーションによる利点を維持しつつも，アグリゲーションの欠点である，アプリケーションに対するレスポンス低下を抑制することができる。
【発明を実施するための形態】
【００１４】
以下では図面を参照し本願発明に係る実施例を説明する。
［実施例１］
［システム全体図］
【００１５】
図２は本願発明が想定するシステムの全体図である。ＰＣ２０１と無線アクセスポイント２０２とが無線によってネットワーク接続されており，アクセスポイント２０２とＰＣ２０３とが有線にてネットワーク接続されている。ＰＣ２０１は，アクセスポイント２０２を介してＰＣ２０３と通信することが可能である。以下では，ＰＣ２０１がＰＣ２０３にデータを送信する場合を例にとって説明する。
［ネットワークスタック構造］
【００１６】
図３はＰＣ２０１におけるネットワークスタック構造を示したものである。上位からアプリケーション層，ＴＣＰ／ＵＤＰ層（トランスポート層），ＩＰ層（ネットワーク層），ＭＡＣ層（データリンク層）および物理層という構成となっている。アプリケーション層は，ネットワーク層のプロトコルを利用するアプリケーションであり，たとえば背景技術で説明したようにＨＴＴＰやＳＮＭＰなどのことである。このスタック構造は一般的なものであるため，詳細な説明は省略する。なお，実施例では，ＰＣ２０１がＰＣ２０３に向けてデータを送信する場合に関するものであり，アプリケーションはＴＣＰもしくはＵＤＰを利用する場合について説明する。
［ＴＣＰヘッダ］
【００１７】
図４はＴＣＰヘッダの詳細である。本実施例では，ＴＣＰヘッダに含まれる情報をＭＡＣ層にて解析し，アグリゲーションによるフレーム送信をするか否かを判断する。本来，送信側で設定されたＴＣＰヘッダの情報は，受信側のＴＣＰでしか利用されないものであるが，本願発明では，それを送信側のＭＡＣ層でも利用する。
【００１８】
図４に示すようにＴＣＰヘッダには様々な情報がセグメント単位で入っており，本実施例では，コードビットのセグメントにおけるＰＳＨを利用する。ＰＳＨとはPush  Flagのことであり，受信したデータを即座に上位アプリケーションに渡すべきか否かを示すビットである。このビットをＯＮにするか否かの設定は，送信機側のＴＣＰが上位アプリケーションの指示に基づいて行う。つまり，ＨＴＴＰやＳＮＭＰなどが必要に応じてＴＣＰにＯＮするか否かを指示するわけである。一方，受信機のＴＣＰはＰＳＨがＯＮになっていると，即座にアプリケーションに受信データを渡す。
［送信機の動作フロー（メインタスク）］
【００１９】
図５は本実施例にかかる送信機の動作フローである。図示するように，ＴＣＰ層（ステップ５０１〜５０４）とＭＡＣ層（ステップ５０５〜５０８）の両階層の動作をまとめて示している。なお，送信機は，本図で示すメインタスクと後の図６で示すアグリゲーション監視タスクより構成されている。まずは，メインタスクについて説明する。
【００２０】
ステップ５０１にて，アプリケーションよりＴＣＰデータを受信する。
【００２１】
ステップ５０２にて，受信したＴＣＰデータについてＰＳＨをＯＮにすべき指示があるかどうかを判断し，指示があればステップ５０３に進み，そうでなければステップ５０４に進む。
【００２２】
ステップ５０３にてＰＳＨをＯＮにしてＭＡＣ層にＴＣＰデータを渡す一方，ステップ５０４ではＯＦＦにして渡す。
【００２３】
ステップ５０５にて，ＴＣＰ層より渡されたデータがＴＣＰであるかどうかを判断し，ＴＣＰであればステップ５０６に進み，そうでなければステップ５０８に進む。
【００２４】
ステップ５０６にて，ＴＣＰヘッダのＰＳＨがＯＮであるかどうかを判断し，ＯＮであればステップ５０７に進み，そうでなければステップ５０８に進む。
【００２５】
ステップ５０７にて，後述するアグリゲーション監視タスクに，渡されたＴＣＰデータの送信指示を出す。
【００２６】
ステップ５０８にて，渡されたＴＣＰデータをアグリゲートする。つまり，所定の領域にＴＣＰデータをバッファリングするわけである。
［送信機の動作フロー（アグリゲーション監視タスク）］
【００２７】
これより説明するアグリゲーション監視タスクとは，送信フレームの送信開始タイミングを監視しており，タイミングが到来すればアグリゲートしたフレームを送信するものである。
【００２８】
ステップ６０１にて，所定時間が経過したかどうかを判断する。つまり，送信開始タイミングが到来したかどうかを判断する。判断の結果，タイミングが到来していれば，ステップ６０３に進み，そうでなければステップ６０２に進む。
【００２９】
ステップ６０２にて，メインタスクからの送信指示を受信したかどうかを判断する。判断の結果，受信していればステップ６０３に進み，そうでなければステップ６０１に戻る。
【００３０】
ステップ６０３にて，所定の領域にバッファリングされている送信フレームを送信する。
【００３１】
このように，フレームを送信するトリガとして，通常のアグリゲーションによるものと，ＰＳＨがＯＮになっていることを検出するものの２つを用いるため，アグリゲーションの利点を維持しつつも，必要に応じて即座にフレームを送信することができる。
［実施例１の別の形態］
【００３２】
実施例１では，ＭＡＣ層にてＴＣＰヘッダのＰＳＨセグメントを解析することにより，アグリゲーションの途中であっても，即座にフレームを送信することができた。ＴＣＰヘッダには，ＰＳＨ以外にも上位アプリケーションからの即時送信の意図を含ませることが可能なセグメントがある。それが図７で示す予約領域である。
【００３３】
予約領域とは，現時点では使用用途が決まっていないセグメントであり，通常は無効であることを示すゼロがセットされている。実施例１の別の形態として，この予約領域を使用し，送信データをアグリゲートさせない旨をＭＡＣ層に伝えてもよい。その場合，上位のアプリケーションとＴＣＰとの間で予約領域にセットするビットの意味を決める必要がある。たとえば，ビット０が１の場合は送信するなどである。
【００３４】
また，ＭＡＣ層では，ビットがセットされた予約領域を解析し，アグリゲートするか，即座にフレームを送信するかを判断すればよい。
［実施例２］
【００３５】
実施例１では，ＭＡＣ層にてＴＣＰヘッダのＰＳＨセグメントを解析することにより，アグリゲーションの途中であっても即座にフレームを送信することができた。本願発明は，トランスポート層がＴＣＰ以外のものであっても当然に適用可能であり，本実施例ではＵＤＰを用いる場合の例を示す。
【００３６】
ＵＤＰのヘッダにはＴＣＰのＰＳＨに相当するセグメントが存在しない。このため，上位アプリケーションがＵＤＰデータを送信する場合には，ＵＤＰ層とＭＡＣ層の間に位置するＩＰ層のヘッダに含まれるセグメントを使用する。
【００３７】
図８はＩＰヘッダの詳細である。図示するようにＩＰヘッダにはフラグのセグメントが設けられている。フラグはＩＰパケットの分割を制御するビットであり，その意味は図９に示すとおりである。
【００３８】
ビット０が予約ビットであり，通常は使用されない。ビット１は分割の可否が示されており，０が分割可能，１が分割不可である。ビット２は，分割パケットの終端か否かを示すものであり，０が分割パケットの終端で，１が分割パケットの途中を意味する。本実施例では，ビット２をＭＡＣ層で解析することにより，フレームを即座に送信するか否かを判断する。
【００３９】
図１０は本実施例にかかる送信機の動作フローである。本実施例のフローも実施例１と同様，メインタスクとアグリゲーション監視タスクより構成されており，アグリゲーション監視タスクは実施例１と同じであるため説明を省略する。
【００４０】
ステップ１００１にて，アプリケーションよりＵＤＰデータを受信する。
【００４１】
ステップ１００２にて，ＩＰが分割されており，かつ終端であるかどうかを判断する。これは，上位アプリケーションからの指示に基づき判断する。判断の結果，分割かつ終端であれば，ステップ１００３に進み，そうでなければステップ１００４に進む。
【００４２】
ステップ１００３にて，フラグフィールドのビット２を０にする。一方，ステップ１００４にて，フラグフィールドのビット２を１にする。このステップ１００３とステップ１００４は，実際にはＩＰ層にて行われる。
【００４３】
ステップ１００５にて，上位層より渡されたデータがＵＤＰであるかどうかを判断する。判断の結果，ＵＤＰであればステップ１００６に進み，そうでなければステップ１００７に進む。
【００４４】
ステップ１００６にて，ＩＰのフラグフィールドを解析し，ビット２が０であるかどうかを判断する。判断の結果，０であればステップ１００７に進み，そうでなければステップ１００８に進む。
【００４５】
ステップ１００７にて，アグリゲーション監視タスクに送信の指示を出す。すなわち，アグリゲートせずに即座に送信する旨を指示するわけである。
【００４６】
ステップ１００８にて，フレームをアグリゲートする。つまり，所定の領域にＵＤＰデータをバッファリングするわけである。
［すべての実施例におけるアグリゲーション監視タスクについて］
【００４７】
これまで説明した実施例１（別の形態含む）および実施例２におけるアグリゲーション監視タスクのアグリゲーション動作は，所定時間の到来をトリガとしてバッファリングされたフレームを送信するものであった。しかし，フレーム送信のトリガは，これに限定されることなく他のものも利用可能である。例えば，所定数のフレームがバッファリングされた場合などである。さらに，これを所定時間の到来に組み合わせることも可能である。［まとめ］
【００４８】
本願発明では，アプリケーションが設定する送信データの区切りをＭＡＣ層にて判断し，区切りがあれば即座に送信する。これにより，即時性の必要のない送信データは通常のアグリゲーションによる送信を行い，即時性の必要なデータは即座に送信することができる。結果として，アグリゲーションによる利点を維持しつつも，アグリゲーションの欠点である，アプリケーションに対するレスポンス低下を抑制することができる。
【図面の簡単な説明】
【００４９】
【図１】送信機におけるアグリゲーションの動作
【図２】システム全体図
【図３】ネットワークスタック構造
【図４】ＴＣＰヘッダ
【図５】実施例１にかかる送信機の動作フロー
【図６】アグリゲーション監視タスクの動作フロー
【図７】ＴＣＰヘッダ
【図８】ＩＰヘッダ
【図９】ＩＰヘッダにおけるフラグの意味
【図１０】実施例２にかかる送信機の動作フロー
【符号の説明】
【００５０】
５０３  送信データに通信設定を施す
５０４  送信データに通信設定を施す
５０６  通信設定の判断
５０７  送信指示
５０８  アグリゲーションの実施
６０１  所定時間経過の判断
６０２  送信指示受信の判断
６０３  送信
【図１】
0005707576.tif 000002
【図２】
0005707576.tif 000003
【図３】
0005707576.tif 000004
【図４】
0005707576.tif 000005
【図５】
0005707576.tif 000006
【図６】
0005707576.tif 000007
【図７】
0005707576.tif 000008
【図８】
0005707576.tif 000009
【図９】
0005707576.tif 000010
【図１０】
0005707576.tif 000011