説明

ネットワーク送信器およびそのプログラム

【課題】ネットワークにおけるデータの送信において,アグリゲーションによる通信の効率化を維持しつつ,即時性の要する通信に対してもレスポンスよく送信を行うことのできる送信機およびそのプログラムを提供する。
【解決手段】アプリケーションが設定する送信データの区切りをMAC層にて判断し,区切りがあれば即座に送信する。これにより,即時性の必要のない送信データは通常のアグリゲーションによる送信を行い,即時性の必要なデータは即座に送信することができる。結果として,アグリゲーションによる利点を維持しつつも,アグリゲーションの欠点である,アプリケーションに対するレスポンス低下を抑制することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本願発明は,コンピュータネットワーク(以下,単にネットワークと称する)における送信機に関するものであり,特に,効率的な送信を行うことのできるものに関する。
【背景技術】
【0002】
言うまでもないが,ネットワークにおけるデータ送受信の効率化は重要な技術的テーマである。当然,このテーマに対するアプローチは,ネットワークが誕生した当初からなされてきている。また,近年,有線に比べ帯域の狭い無線ネットワークが急速に普及していることもあり,過去にもまして,効率化への要求が高まっている。このような状況に鑑み,無線ネットワークにおけるデータ送受信の効率化の手段として,アグリゲーション(またはフレームアグリゲーション)と呼ばれるものが使用されている(非特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【非特許文献1】シスコシステムズ合同会社 ホームページ<http://www.cisco.com/web/JP/solution/netsol/mobility/ngw/literature/pdf/wlpfmc_wp.pdf>
【0004】
アグリゲーションとは,簡単に言うと,無線ネットワークにおけるデータの送信時に,データの最小単位である送信フレームを複数束ねて(アグリゲートして)送信することで,データ送信に付随する制御などの通信を少なくしようとするものである。これにより,効率的なデータの送信を実現するわけである。
【0005】
図1は上記したアグリゲーション動作の具体例であり,特に送信機におけるものである。図におけるアプリケーション(TCPアプリケーションおよびUDPアプリケーション)とは,例えばTCP(Transmission Control Protocol)やUDP(User Datagram Protocol)のアプリケーションであり,具体的には,HTTP(Hyper Text Transfer Protocol)やSNMP(Simple Network Management Protocol)などを指す。
【0006】
図1は,アプリケーション1およびアプリケーション2がデータを送信する場合を例示している。図示するように,アプリケーション1の送信フレームは2つであり,アプリケーション2の送信フレームは3つである。通常の送信機であれば,送信フレームを,例えば,アプリケーション1−1やアプリケーション2−1といった単位で送信を行うのであるが,アグリゲーションを用いると,所定時間毎の送信開始タイミングの到来をトリガとして複数の送信フレームをまとめて送信する。図1の場合,5つの送信フレームが溜まるまで送信を行わないわけである。こうすることで,データ送信に付随する通信を極力減らすことができる。なお,アグリゲーションは,通常,MAC層(データリンク層)で行われる処理であり,上位であるTCPやUDPが属する層(トランスポート層およびネットワーク層)とは独立して行われる。
【0007】
一方でアグリゲーションを用いたデータ送信は,場合によっては,通信のレスポンス低下を招くこともあった。上述した図1の場合,アプリケーション1は,送信フレームが2つしかないにも関わらず,送信開始タイミングが到来するまで送信されない。つまり,そのフレーム以前の送信フレームは送信機内に保留され続けるわけである。もし,アプリケーション1からの送信フレームが即時性を要するものであった場合,このような動作はアプリケーション1のレスポンス低下を招き,場合によっては深刻な事態を引き起こすおそれもある。
【発明の概要】
【発明が解決しようとする課題】
【0008】
本願発明はかかる課題を解決するものである。つまり,ネットワークにおけるデータの送信において,アグリゲーションによる通信の効率化を維持しつつ,即時性を要する通信に対してレスポンスよく送信を行うことのできる送信機およびそのプログラムを提供することである。
【課題を解決するための手段】
【0009】
本願発明にかかる第1の形態は,コンピュータネットワークにおいて,上位層処理部と下位層処理部の少なくとも2層の処理構造を有し,当該処理構造に基づいてデータを送信する送信機であって,上位層処理部は,通信の相手方である受信機において,自身と同じ階層である受信機の上位層処理部によって使用されることが意図されている通信に関する設定(通信設定)を,送信データに施す通信設定手段と,通信設定が施された送信データを自身より下位の層に渡す送信データ伝達手段と,を備え,下位層処理部は,自身より上位の層から渡された送信データを受信する送信データ受信手段と,受信した送信データを所定の領域にて保持させる送信データ保持手段と,所定の領域に保持されている送信データを受信機に向けて送信する送信手段と,自身である下位層処理部においてのみ管理される所定の条件が,満たされているかどうかを判断する第1の判断手段と,所定の条件が満たされていた場合,送信手段に送信データの送信を指示する第1の送信指示手段と,通信設定手段によって施された通信設定が所定の通信設定であるかどうかを判断する第2の判断手段と,通信設定が所定の通信設定であると判断された場合,送信手段に送信データの送信を指示する第2の送信指示手段と,を備える送信機である。
【0010】
好ましくは,下位層処理部はデータリンク層における処理を実行する処理部であり,所定の条件は,所定時間の到来であり,所定の通信設定は,上位層処理部において送信データの区切りを示すものである。
【0011】
本願発明にかかる第2の形態は,コンピュータネットワークにおける送信機を,上位層処理手段と,下位層処理手段として機能させるプログラムであって,上位層処理手段においては,少なくとも,通信の相手方である受信機において,自身と同じ階層である受信機の上位層処理手段によって使用されることが意図されている通信に関する設定(通信設定)を,送信データに施し,通信設定が施された送信データを自身より下位の層に渡すステップが実行され,下位層処理手段においては,少なくとも,自身より上位の層から渡された送信データを受信し,受信した送信データを所定の領域にて保持させ,自身である下位層処理手段においてのみ管理される所定の条件が,満たされているかどうかを判断し,所定の条件が満たされていた場合,所定の領域に保持されている送信データを受信機に向けて送信し,送信データに施された通信設定が所定の通信設定であるかどうかを判断し,通信設定が所定の通信設定であると判断された場合,所定の領域に保持されている送信データを受信機に向けて送信するステップが実行されるプログラムである。
【0012】
好ましくは,下位層処理手段はデータリンク層における処理を実行する手段であり,所定の条件は,所定時間の到来であり,所定の通信設定は,上位層処理手段において送信データの区切りを示すものである。
【発明の効果】
【0013】
本願発明では,アプリケーションが設定する送信データの区切りをMAC層にて判断し,区切りがあれば即座に送信する。これにより,即時性の必要のない送信データは通常のアグリゲーションによる送信を行い,即時性の必要なデータは即座に送信することができる。結果として,アグリゲーションによる利点を維持しつつも,アグリゲーションの欠点である,アプリケーションに対するレスポンス低下を抑制することができる。
【発明を実施するための形態】
【0014】
以下では図面を参照し本願発明に係る実施例を説明する。
[実施例1]
[システム全体図]
【0015】
図2は本願発明が想定するシステムの全体図である。PC201と無線アクセスポイント202とが無線によってネットワーク接続されており,アクセスポイント202とPC203とが有線にてネットワーク接続されている。PC201は,アクセスポイント202を介してPC203と通信することが可能である。以下では,PC201がPC203にデータを送信する場合を例にとって説明する。
[ネットワークスタック構造]
【0016】
図3はPC201におけるネットワークスタック構造を示したものである。上位からアプリケーション層,TCP/UDP層(トランスポート層),IP層(ネットワーク層),MAC層(データリンク層)および物理層という構成となっている。アプリケーション層は,ネットワーク層のプロトコルを利用するアプリケーションであり,たとえば背景技術で説明したようにHTTPやSNMPなどのことである。このスタック構造は一般的なものであるため,詳細な説明は省略する。なお,実施例では,PC201がPC203に向けてデータを送信する場合に関するものであり,アプリケーションはTCPもしくはUDPを利用する場合について説明する。
[TCPヘッダ]
【0017】
図4はTCPヘッダの詳細である。本実施例では,TCPヘッダに含まれる情報をMAC層にて解析し,アグリゲーションによるフレーム送信をするか否かを判断する。本来,送信側で設定されたTCPヘッダの情報は,受信側のTCPでしか利用されないものであるが,本願発明では,それを送信側のMAC層でも利用する。
【0018】
図4に示すようにTCPヘッダには様々な情報がセグメント単位で入っており,本実施例では,コードビットのセグメントにおけるPSHを利用する。PSHとはPush Flagのことであり,受信したデータを即座に上位アプリケーションに渡すべきか否かを示すビットである。このビットをONにするか否かの設定は,送信機側のTCPが上位アプリケーションの指示に基づいて行う。つまり,HTTPやSNMPなどが必要に応じてTCPにONするか否かを指示するわけである。一方,受信機のTCPはPSHがONになっていると,即座にアプリケーションに受信データを渡す。
[送信機の動作フロー(メインタスク)]
【0019】
図5は本実施例にかかる送信機の動作フローである。図示するように,TCP層(ステップ501〜504)とMAC層(ステップ505〜508)の両階層の動作をまとめて示している。なお,送信機は,本図で示すメインタスクと後の図6で示すアグリゲーション監視タスクより構成されている。まずは,メインタスクについて説明する。
【0020】
ステップ501にて,アプリケーションよりTCPデータを受信する。
【0021】
ステップ502にて,受信したTCPデータについてPSHをONにすべき指示があるかどうかを判断し,指示があればステップ503に進み,そうでなければステップ504に進む。
【0022】
ステップ503にてPSHをONにしてMAC層にTCPデータを渡す一方,ステップ504ではOFFにして渡す。
【0023】
ステップ505にて,TCP層より渡されたデータがTCPであるかどうかを判断し,TCPであればステップ506に進み,そうでなければステップ508に進む。
【0024】
ステップ506にて,TCPヘッダのPSHがONであるかどうかを判断し,ONであればステップ507に進み,そうでなければステップ508に進む。
【0025】
ステップ507にて,後述するアグリゲーション監視タスクに,渡されたTCPデータの送信指示を出す。
【0026】
ステップ508にて,渡されたTCPデータをアグリゲートする。つまり,所定の領域にTCPデータをバッファリングするわけである。
[送信機の動作フロー(アグリゲーション監視タスク)]
【0027】
これより説明するアグリゲーション監視タスクとは,送信フレームの送信開始タイミングを監視しており,タイミングが到来すればアグリゲートしたフレームを送信するものである。
【0028】
ステップ601にて,所定時間が経過したかどうかを判断する。つまり,送信開始タイミングが到来したかどうかを判断する。判断の結果,タイミングが到来していれば,ステップ603に進み,そうでなければステップ602に進む。
【0029】
ステップ602にて,メインタスクからの送信指示を受信したかどうかを判断する。判断の結果,受信していればステップ603に進み,そうでなければステップ601に戻る。
【0030】
ステップ603にて,所定の領域にバッファリングされている送信フレームを送信する。
【0031】
このように,フレームを送信するトリガとして,通常のアグリゲーションによるものと,PSHがONになっていることを検出するものの2つを用いるため,アグリゲーションの利点を維持しつつも,必要に応じて即座にフレームを送信することができる。
[実施例1の別の形態]
【0032】
実施例1では,MAC層にてTCPヘッダのPSHセグメントを解析することにより,アグリゲーションの途中であっても,即座にフレームを送信することができた。TCPヘッダには,PSH以外にも上位アプリケーションからの即時送信の意図を含ませることが可能なセグメントがある。それが図7で示す予約領域である。
【0033】
予約領域とは,現時点では使用用途が決まっていないセグメントであり,通常は無効であることを示すゼロがセットされている。実施例1の別の形態として,この予約領域を使用し,送信データをアグリゲートさせない旨をMAC層に伝えてもよい。その場合,上位のアプリケーションとTCPとの間で予約領域にセットするビットの意味を決める必要がある。たとえば,ビット0が1の場合は送信するなどである。
【0034】
また,MAC層では,ビットがセットされた予約領域を解析し,アグリゲートするか,即座にフレームを送信するかを判断すればよい。
[実施例2]
【0035】
実施例1では,MAC層にてTCPヘッダのPSHセグメントを解析することにより,アグリゲーションの途中であっても即座にフレームを送信することができた。本願発明は,トランスポート層がTCP以外のものであっても当然に適用可能であり,本実施例ではUDPを用いる場合の例を示す。
【0036】
UDPのヘッダにはTCPのPSHに相当するセグメントが存在しない。このため,上位アプリケーションがUDPデータを送信する場合には,UDP層とMAC層の間に位置するIP層のヘッダに含まれるセグメントを使用する。
【0037】
図8はIPヘッダの詳細である。図示するようにIPヘッダにはフラグのセグメントが設けられている。フラグはIPパケットの分割を制御するビットであり,その意味は図9に示すとおりである。
【0038】
ビット0が予約ビットであり,通常は使用されない。ビット1は分割の可否が示されており,0が分割可能,1が分割不可である。ビット2は,分割パケットの終端か否かを示すものであり,0が分割パケットの終端で,1が分割パケットの途中を意味する。本実施例では,ビット2をMAC層で解析することにより,フレームを即座に送信するか否かを判断する。
【0039】
図10は本実施例にかかる送信機の動作フローである。本実施例のフローも実施例1と同様,メインタスクとアグリゲーション監視タスクより構成されており,アグリゲーション監視タスクは実施例1と同じであるため説明を省略する。
【0040】
ステップ1001にて,アプリケーションよりUDPデータを受信する。
【0041】
ステップ1002にて,IPが分割されており,かつ終端であるかどうかを判断する。これは,上位アプリケーションからの指示に基づき判断する。判断の結果,分割かつ終端であれば,ステップ1003に進み,そうでなければステップ1004に進む。
【0042】
ステップ1003にて,フラグフィールドのビット2を0にする。一方,ステップ1004にて,フラグフィールドのビット2を1にする。このステップ1003とステップ1004は,実際にはIP層にて行われる。
【0043】
ステップ1005にて,上位層より渡されたデータがUDPであるかどうかを判断する。判断の結果,UDPであればステップ1006に進み,そうでなければステップ1007に進む。
【0044】
ステップ1006にて,IPのフラグフィールドを解析し,ビット2が0であるかどうかを判断する。判断の結果,0であればステップ1007に進み,そうでなければステップ1008に進む。
【0045】
ステップ1007にて,アグリゲーション監視タスクに送信の指示を出す。すなわち,アグリゲートせずに即座に送信する旨を指示するわけである。
【0046】
ステップ1008にて,フレームをアグリゲートする。つまり,所定の領域にUDPデータをバッファリングするわけである。
[すべての実施例におけるアグリゲーション監視タスクについて]
【0047】
これまで説明した実施例1(別の形態含む)および実施例2におけるアグリゲーション監視タスクのアグリゲーション動作は,所定時間の到来をトリガとしてバッファリングされたフレームを送信するものであった。しかし,フレーム送信のトリガは,これに限定されることなく他のものも利用可能である。例えば,所定数のフレームがバッファリングされた場合などである。さらに,これを所定時間の到来に組み合わせることも可能である。[まとめ]
【0048】
本願発明では,アプリケーションが設定する送信データの区切りをMAC層にて判断し,区切りがあれば即座に送信する。これにより,即時性の必要のない送信データは通常のアグリゲーションによる送信を行い,即時性の必要なデータは即座に送信することができる。結果として,アグリゲーションによる利点を維持しつつも,アグリゲーションの欠点である,アプリケーションに対するレスポンス低下を抑制することができる。

【図面の簡単な説明】
【0049】
【図1】送信機におけるアグリゲーションの動作
【図2】システム全体図
【図3】ネットワークスタック構造
【図4】TCPヘッダ
【図5】実施例1にかかる送信機の動作フロー
【図6】アグリゲーション監視タスクの動作フロー
【図7】TCPヘッダ
【図8】IPヘッダ
【図9】IPヘッダにおけるフラグの意味
【図10】実施例2にかかる送信機の動作フロー
【符号の説明】
【0050】
503 送信データに通信設定を施す
504 送信データに通信設定を施す
506 通信設定の判断
507 送信指示
508 アグリゲーションの実施
601 所定時間経過の判断
602 送信指示受信の判断
603 送信


【特許請求の範囲】
【請求項1】
コンピュータネットワークにおいて,上位層処理部と下位層処理部の少なくとも2層の処理構造を有し,当該処理構造に基づいてデータを送信する送信機であって,
(A)前記上位層処理部は,
(A−1)通信の相手方である受信機において,自身と同じ階層である受信機の上位層処理部によって使用されることが意図されている通信に関する設定(通信設定)を,送信データに施す通信設定手段と,
(A−2)通信設定が施された送信データを自身より下位の層に渡す送信データ伝達手段と,
を備え,
(B)前記下位層処理部は,
(B−1)自身より上位の層から渡された送信データを受信する送信データ受信手段と,
(B−2)受信した送信データを所定の領域にて保持させる送信データ保持手段と,
(B−3)前記所定の領域に保持されている送信データを受信機に向けて送信する送信手段と,
(B−4)自身である下位層処理部においてのみ管理される所定の条件が,満たされているかどうかを判断する第1の判断手段と,
(B−5)前記所定の条件が満たされていた場合,前記送信手段に送信データの送信を指示する第1の送信指示手段と,
(B−6)前記通信設定手段によって施された前記通信設定が所定の通信設定であるかどうかを判断する第2の判断手段と,
(B−7)前記通信設定が所定の通信設定であると判断された場合,前記送信手段に送信データの送信を指示する第2の送信指示手段と,
を備える送信機。
【請求項2】
前記下位層処理部はデータリンク層における処理を実行する処理部であり,
前記所定の条件は,所定時間の到来であり,
前記所定の通信設定は,前記上位層処理部において送信データの区切りを示すものである,請求項1に記載の送信機。
【請求項3】
コンピュータネットワークにおける送信機を,
上位層処理手段と,
下位層処理手段として機能させるプログラムであって,
前記上位層処理手段においては,少なくとも,
通信の相手方である受信機において,自身と同じ階層である受信機の上位層処理手段によって使用されることが意図されている通信に関する設定(通信設定)を,送信データに施し,
通信設定が施された送信データを自身より下位の層に渡す
ステップが実行され,
前記下位層処理手段においては,少なくとも,
自身より上位の層から渡された送信データを受信し,
受信した送信データを所定の領域にて保持させ,
自身である下位層処理手段においてのみ管理される所定の条件が,満たされているかどうかを判断し,
前記所定の条件が満たされていた場合,前記所定の領域に保持されている送信データを受信機に向けて送信し,
送信データに施された前記通信設定が所定の通信設定であるかどうかを判断し,
前記通信設定が所定の通信設定であると判断された場合,前記所定の領域に保持されている送信データを受信機に向けて送信する
ステップが実行されるプログラム。
【請求項4】
前記下位層処理手段はデータリンク層における処理を実行する手段であり,
前記所定の条件は,所定時間の到来であり,
前記所定の通信設定は,前記上位層処理手段において送信データの区切りを示すものである,請求項3に記載のプログラム。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate