(57)【要約】【課題】本発明に係る実施形態では、ローカルエリアネットワーク内の中間ノードが受信したネットワークデータにサービス品質を提供する方法、装置、およびシステムを提供する。【解決手段】いくつかの実施形態では、データフローに基づいてネットワークデータが分類される。そして、そのようなデータフローに基づいて、このデータフローが閾値を超えているか否かが決定される。データフローが閾値を越えている場合は、このデータフローにサービス品質が提供される。【選択図】図３
2008236742.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークにおけるサービス品質の提供方法であって、
サンプリング期間内に、１つ以上のデータフローを含む１セットのネットワークデータを受信する工程と、
上記サンプリング期間内に、上記ネットワークデータから１つ以上のデータフローを読み出す工程と、
上記読み出した１つ以上の各データフローが１つ以上のカテゴリーのうちの１つに関連付けられており、該読み出した１つ以上のデータフローを上記１つ以上のカテゴリーに分類する工程と、
上記１つ以上のカテゴリーの各カテゴリーに対して、
上記カテゴリーに関連付けられた上記１つ以上のデータフローに基づいて、上記カテゴリーの推定平均データフロー帯域幅を決定する工程と、
上記決定したカテゴリーの推定平均データフロー帯域幅が所定の閾値よりも大きい場合には、上記カテゴリーのサービス品質を要求する工程と、を含む方法。
【請求項２】
上記分類する工程は、上記読み出したデータフローの１セットのヘッダ情報に基づくものである、請求項１に記載の方法。
【請求項３】
上記ヘッダ情報は、プロトコルの種類、送信元アドレス、宛先アドレス、送信元ポート、および宛先ポートを含む、請求項２に記載の方法。
【請求項４】
上記読み出した１つ以上の各データフローがフローサイズに関連付けられ、
上記１つ以上の各カテゴリーがカテゴリーサイズに関連付けられており、
上記分類する工程は、上記読み出した各データフローの上記フローサイズを、上記読み出したデータフローに関連付けられた上記カテゴリーサイズ内に蓄積する工程をさらに含む、請求項１に記載の方法。
【請求項５】
上記読み出した１つ以上の各データフローは、ペイロードサイズに基づいてフローサイズに関連付けられる、請求項４に記載の方法。
【請求項６】
サンプリングされたサイズの合計が、上記１つ以上のカテゴリーに関連付けられた上記各カテゴリーサイズを全て蓄積したサイズに基づいており、
上記決定したカテゴリーの推定平均データフロー帯域幅は、（上記受信したネットワークデータのサイズの合計／上記サンプリング期間）×（上記カテゴリーに関連付けられた上記カテゴリーサイズ／上記サンプリングされたサイズの合計）に基づくものである、請求項４に記載の方法。
【請求項７】
上記受信したネットワークデータのサイズの合計は、パケットヘッダとパケットペイロードとを含む全パケットサイズに基づくものである、請求項６に記載の方法。
【請求項８】
上記所定の閾値は毎秒１２メガビットである、請求項１に記載の方法。
【請求項９】
１つ以上のネットワークセグメントを含むネットワークを介して１つ以上のデバイスに接続可能に構成された中間ノード装置であって、
上記中間ノード装置が上記ネットワークを介して上記１つ以上のデバイスと通信可能に構成された通信モジュールと、
サービス品質決定および処理（ＱＯＳＤＰ）モジュールと、を備え、
上記サービス品質決定および処理（ＱＯＳＤＰ）モジュールは、
サンプリング期間内に、１つ以上のデータフローを含む１セットのネットワークデータを上記ネットワークを介して受信し、
上記サンプリング期間内に、上記ネットワークデータから１つ以上のデータフローを読み出し、
上記読み出した１つ以上の各データフローが１つ以上のカテゴリーのうちの１つに関連付けられており、該読み出した１つ以上のデータフローを上記１つ以上のカテゴリーに分類し、
上記１つ以上のカテゴリーの各カテゴリーに対して、
上記カテゴリーに関連付けられた上記１つ以上のデータフローに基づいて、上記カテゴリーの推定平均データフロー帯域幅を決定し、
上記決定したカテゴリーの推定平均データフロー帯域幅が所定の閾値よりも大きい場合には、上記カテゴリーのサービス品質を要求する、中間ノード装置。
【請求項１０】
上記ネットワークデータのセットを、第１のネットワーク型から第２のネットワーク型へ処理するように構成されたネットワークアダプタ処理モジュールをさらに備えている、請求項９に記載の中間ノード装置。
【請求項１１】
上記第１のネットワーク型はイーサネット（登録商標）であり、上記第２のネットワーク型は電力線通信である、請求項１０に記載の中間ノード装置。
【請求項１２】
１つ以上のネットワークセグメントを含むネットワークと、
上記ネットワークを介してレンダリングデバイスに接続可能に構成された中間ノード装置と、を備えているシステムであって、
上記中間ノード装置は、
上記中間ノード装置が上記ネットワークを介して上記１つ以上のデバイスと通信可能に構成された通信モジュールと、
サービス品質決定および処理（ＱＯＳＤＰ）モジュールと、を備え、
上記サービス品質決定および処理（ＱＯＳＤＰ）モジュールは、
サンプリング期間内に、１つ以上のデータフローを含む１セットのネットワークデータを上記ネットワークを介して受信し、
上記サンプリング期間内に、上記ネットワークデータから１つ以上のデータフローを読み出し、
上記読み出した１つ以上の各データフローが１つ以上のカテゴリーのうちの１つに関連付けられており、該読み出した１つ以上のデータフローを上記１つ以上のカテゴリーに分類し、
上記１つ以上のカテゴリーの各カテゴリーに対して、
上記カテゴリーに関連付けられた上記１つ以上のデータフローに基づいて、上記カテゴリーの推定平均データフロー帯域幅を決定し、
上記決定したカテゴリーの推定平均データフロー帯域幅が所定の閾値よりも大きい場合には、上記カテゴリーのサービス品質を要求し、
上記レンダリングデバイスは、上記ネットワークデータのセットを受信する、システム。
【請求項１３】
上記第１のネットワーク型および上記第２のネットワーク型は、同一のネットワーク型である、請求項１２に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、共有ネットワークにおけるストリーミング視聴覚データに関するものであり、特に、ネットワーク内におけるそのようなストリーミングデータにサービス品質（quality of service; QOS）を提供することに関するものである。
【背景技術】
【０００２】
現在、デジタルコンテンツへのアクセスのように、インターネットへのアクセスがよく利用されている。例えば、ユーザは、ローカルエリアネットワーク内のテレビセットの１つに、インターネットからストリーム配信されるオンデマンドの動画（映画）を視聴できるように要求することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ネットワークでは、上記のように、ストリーミング視聴覚ソースコンテンツが伝送される。しかし、ネットワークは通常共有化されており、このような共有ネットワークを介して様々な種類のソースコンテンツが配信される。共有ネットワークを介して配信されるデータは、ウェブブラウザデータ（例えばウェブページ）、ファイル転送プロトコル（ＦＴＰ）データ、ストリーミング視聴覚データ、および制御情報を含むその他のデータを含むものである。上記のような共有ネットワークはさらに、イーサネット（登録商標）および電力線通信などの様々な技術を含む。ストリーミング視聴覚データあるいはマルチメディアデータ（特に動画）を共有ネットワークを介して視聴するユーザは、通常、それらの視聴覚データが、ある程度良好な品質で配信されることを望んでいる。従って、上記のようなストリーミングデータのためのサービス品質を提供することが大いに望まれている。
【課題を解決するための手段】
【０００４】
本発明の一形態として、ネットワークにおけるサービス品質の提供方法が提供されている。当該方法は、サンプリング期間内に、１つ以上のデータフローを含む１セットのネットワークデータを受信する工程と、上記サンプリング期間内に、上記ネットワークデータから１つ以上のデータフローを読み出す工程と、上記読み出した１つ以上の各データフローが１つ以上のカテゴリーのうちの１つに関連付けられており、該読み出した１つ以上のデータフローを上記１つ以上のカテゴリーに分類する工程と、上記１つ以上のカテゴリーの各カテゴリーに対して、上記カテゴリーに関連付けられた上記１つ以上のデータフローに基づいて、上記カテゴリーの推定平均データフロー帯域幅を決定する工程と、上記決定したカテゴリーの推定平均データフロー帯域幅が所定の閾値よりも大きい場合には、上記カテゴリーのサービス品質を要求する工程と、を含む。
【０００５】
本発明の別の形態として、１つ以上のネットワークセグメントを含むネットワークを介して１つ以上のデバイスに接続可能に構成された中間ノード装置が提供されている。当該中間ノード装置は、通信モジュールと、サービス品質決定および処理（ＱＯＳＤＰ）モジュールとを備えている。当該通信モジュールは、上記中間ノード装置が、上記ネットワークを介して上記１つ以上のデバイスと通信可能に構成されている。当該ＱＯＳＤＰモジュールは、サンプリング期間内に、上記ネットワークを介して１つ以上のデータフローを含む１セットのネットワークデータを受信し、上記サンプリング期間内に、上記ネットワークデータから１つ以上のデータフローを読み出し、上記読み出した１つ以上の各データフローが１つ以上のカテゴリーのうちの１つに関連付けられており、該読み出した１つ以上のデータフローを上記１つ以上のカテゴリーに分類し、上記１つ以上のカテゴリーの各カテゴリーに対して、上記カテゴリーに関連付けられた上記１つ以上のデータフローに基づいて、上記カテゴリーの推定平均データフロー帯域幅を決定し、上記決定したカテゴリーの推定平均データフロー帯域幅が所定の閾値よりも大きい場合には、上記カテゴリーのサービス品質を要求するように構成されている。
【０００６】
本発明の別の形態として、１つ以上のネットワークセグメントを含むネットワークと、中間ノード装置と、レンダリングデバイスとを備えているシステムが提供されている。当該中間ノード装置は、上記ネットワークを介して上記レンダリングデバイスに接続可能に構成されている。上記中間ノード装置は、通信モジュールと、サービス品質決定および処理（ＱＯＳＤＰ）モジュールとを備えている。当該通信モジュールは、上記中間ノード装置が上記ネットワークを介して上記１つ以上のデバイスと通信可能に構成されている。上記ＱＯＳＤＰモジュールは、サンプリング期間内に、上記ネットワークを介して１つ以上のデータフローを含む１セットのネットワークデータを受信し、上記サンプリング期間内に、上記ネットワークデータから１つ以上のデータフローを読み出し、上記読み出した１つ以上の各データフローが１つ以上のカテゴリーのうちの１つに関連付けられており、該読み出した１つ以上のデータフローを上記１つ以上のカテゴリーに分類し、上記１つ以上のカテゴリーの各カテゴリーに対して、上記カテゴリーに関連付けられた上記１つ以上のデータフローに基づいて、上記カテゴリーの推定平均データフロー帯域幅を決定し、上記決定したカテゴリーの推定平均データフロー帯域幅が所定の閾値よりも大きい場合には、上記カテゴリーのサービス品質を要求するように構成されている。上記レンダリングデバイスは、上記ネットワークデータのセットを受信するように構成されている。
【０００７】
本発明の上述および他の目的、特徴、および利点は、添付図面と共に以下の詳細な説明を考慮することによって、より容易に理解することができるであろう。
【発明を実施するための最良の形態】
【０００８】
添付図面をより理解するために、１００番代の参照符号（例えば１００、１５２など）が図１で最初に用いられており、２００番代の参照符号（例えば２０２、２５０など）が図２で最初に用いられている。また、以後の参照符号についても同様に用いられる。
【０００９】
本発明に係る実施形態は、一般的に、視聴覚データ、ストリーミング画像データ、ストリーミング音声データ、およびストリーミングマルチメディアデータなどの、ストリーミングソースコンテンツまたはメディアを識別することに関する。一般的にストリーミングメディアは、ソースコンテンツが連続的なリアルタイムストリームとして受信されるように、当該ソースコンテンツを転送するものである。ストリーム配信されるソースコンテンツ要素は、通常、送信側（例えばサーバ／サーバアプリケーションあるいは送信者）によって伝送され、受信側（例えばクライアント／クライアントアプリケーションまたは受信者）によって受信される。受信側またはクライアントは、通常、クライアントアプリケーション／受信側の受信バッファ内に十分なデータまたはコンテンツ要素が記憶されるとすぐに、ソースコンテンツの表示あるいは再生を開始する。クライアントアプリケーション／受信側は、通常、ストリーミングネットワークデータの受信と、そのようなストリーミングネットワークデータの表示とを同時に行う。
【００１０】
図１は、典型的なシステム１００を示す図である。システム１００では、本発明に係るいくつかの実施形態に従って、音声、視覚および／または画像データなどのストリーミング視聴覚コンテンツまたはマルチメディアデジタルコンテンツが、１つ以上のネットワークを介して伝送される。典型的な一実施形態では、ローカルエリアネットワーク（ＬＡＮ）１５０は、システム１００内の様々なノード間において帯域幅を共有している。
システム１００内のこれら様々なノードは、データの送信側または送信元と、データの受信側またはクライアントアプリケーションと、中間ノード（例えばネットワークアダプタ）とを含む。一般的に、本発明に係るネットワークアダプタは、一方のネットワーク技術から他方のネットワーク技術へとデータを変換して、タイプの異なるネットワーク間における通信を可能にする中間ノードである。さらに、本発明に係るネットワークアダプタを含む中間ノードは、通常、パーソナルコンピュータ（ＰＣ）などの汎用コンピュータの高性能なプロセッサにはアクセスしないスタンドアロン型デバイスまたはモジュールである。このようなネットワークアダプタの例として、タイプの異なるネットワークセグメント間における通信を可能にするアダプタ（ネットワークアダプタ処理モジュール）１５２、１５４、１５６、１５８が挙げられる。タイプの異なるネットワークセグメントとしては、例えばイーサネット（第１のネットワーク型）および電力線通信（ＰＬＣ;第２のネットワーク型）と、イーサネットおよび（例えば８０２．１１ｇ仕様に準拠した）無線と、イーサネットおよび超広帯域無線とが挙げられる。図１に例示されているネットワークアダプタ１５２、１５４、１５６、１５８は、一般的に、イーサネットネットワーク−ＰＬＣネットワーク１６２間の変換および通信を提供する。いくつかの実施形態では、本発明に係るスタンドアロン型ネットワークアダプタは、ＬＡＮ１５０においてタイプの異なるネットワークセグメントにデータを伝送するために、対になって配置されている。例えば、（ソースデバイス）セットトップボックス１３４などのソースデバイス、イーサネット−ＰＬＣ変換スタンドアロン型ネットワークアダプタ１５６、ＰＬＣネットワーク１６２、ＰＬＣ−イーサネット変換スタンドアロン型ネットワークアダプタ１５２、およびデジタルテレビ（ＤＴＶ）１３８などの送信先デバイスがある。なお、イーサネットは第１のネットワーク型と称され、電力線通信は第２のネットワーク型と称されている点に留意されたい。あるいは、イーサネットが第２のネットワーク型と称され、電力線通信が第１のネットワーク型と称されている場合もある。
【００１１】
また、典型的なシステム１００は、多数の家庭用電子機器をさらに備えている。このような家庭用電子機器は、セットトップボックス１３４と、ＤＴＶ１３８と、無線パーソナルコンピュータ（ＰＣ）１４２と、デジタルビデオまたは多用途ディスク（ＤＶＤ）プレーヤー１３６と、ラップトップコンピュータ１１４と、ゲートウェイおよび／またはルータ１０２と、家庭用機器／デバイス１２２と、様々なネットワークリンクまたはセグメントを介して接続される１つ以上の中間ノード（中間ノード装置）１５２、１５４、１５６、１５８とを含む。このようなネットワークセグメントは、有線であっても無線であってもよく、様々なプロトコルに対応できるようになっていてもよい。これらの様々な家庭用電子機器は、通常、互いにネットワーク接続可能なように構成されている。システム１００内でネットワーク接続可能な家庭用電子機器（レンダリングデバイス）の例としては、ユーザインターフェース（ディスプレイなど）を有するテレビおよび冷蔵庫と、ストリーミングソースコンテンツを受信できるラジオと、ネットワークを介してソースコンテンツを受信し、それらを表示できるその他のデバイスとが挙げられる。ローカルエリアネットワーク１５０は、例えば電力線通信（ＰＬＣ）ネットワーク、８０２．１１ａ無線ネットワーク、８０２．１１ｇ無線ネットワーク、８０２．１１ｂ無線ネットワーク、イーサネットネットワークなどの、１つ以上のネットワーク型に対応するように構成されている。さらにローカルエリアネットワーク１５０は、例えば衛星、ケーブル、および／または地上放送１９０を介して、あるいはインターネット１９４などの外部の広域ネットワークを介して、１つ以上の外部のソースコンテンツプロバイダ１９２、１９８と動作可能に接続されている。ＬＡＮ１５０は、通常、ゲートウェイおよび／またはルータ１０２等のエンドポイントまたはエッジノードを１つ以上介して、外部のネットワークに接続される。ソースコンテンツプロバイダ１９２および１９８は、プリエンコードされて記憶されたソースコンテンツ、および／または、生ソースコンテンツあるいはリアルタイムにエンコードされたソースコンテンツを供給する。これらのソースコンテンツは、ストリーム配信され、クライアントアプリケーション／受信側によって受信され、ユーザインターフェースに表示される。
【００１２】
いくつかの実施形態では、動画などの視聴覚（ＡＶ）データは、プリエンコードされて記憶されたオンデマンドのデータおよび／または生データを供給するソースコンテンツプロバイダ１９８から要求される。オンデマンドの動画は、通常、当該動画のほんの一部が適切なバッファ内に蓄積された後に、表示装置上に表示される。例えば、外部のネットワークまたはソース（例えばソースコンテンツプロバイダ１９２）から受信したストリーミングソースコンテンツは、セットトップボックス１３４によって受信される。セットトップボックス１３４は、例えばイーサネット−ＰＬＣ変換スタンドアロン型ネットワークアダプタ１５６、および／または、ＰＬＣ−イーサネット変換スタンドアロン型ネットワークアダプタ１５２などの１つ以上の中間ノードを介して、ストリーム配信された視聴覚動画をデジタルテレビ１３８に伝送する。そして、デジタルテレビ１３８が視聴覚動画を表示する。また、別の実施形態では、ストリーミングデータの送信元がＬＡＮ１５０内にあってもよく、この場合、例えばデジタル多用途ディスク（ＤＶＤ）の動画などの視聴覚ファイルを記憶したコンピュータ１４２から当該ストリーミングデータを受信する。コンピュータ１４２は、記憶しているＡＶファイルを、中間ノード１５６を介して中間ノード１５２へとストリーム配信した後、動作可能に接続されたデジタルテレビ１３８へとストリーム配信する。動画は、通常、適切なバッファ内に十分なＡＶデータが記憶されたとき、および、関連する他のＡＶデータをバッファが受信している間、表示装置上に表示される。
【００１３】
いくつかの実施形態では、本発明に係る中間ノードは、サービス品質（quality of service; QOS）を決定し、本明細書に記載の処理を行うように構成されているが、ネットワークアダプタとしての機能は有していなくてもよい。本発明に係る中間ノードは、一般的に、ネットワークデータをサンプリングし、一定のタイプのデータフローにＱＯＳを提供する。
【００１４】
本発明に係る実施形態では、共有ネットワーク内の中間ノードは、所定の帯域幅を通常必要とするストリーミングソースコンテンツ（特にＡＶデータまたはマルチメディアデータ）を運ぶ可能性のあるネットワークデータフローを識別する、複雑性の低い手段を備えている。さらに、本発明に係るサービス品質決定および処理モジュールにおける処理は、複雑性および消費電力が低いので、通常、本発明に係る典型的な中間ノード内には安価なプロセッサが組み込まれている。
サービス品質（ＱＯＳ）を必要とするストリーミングソースコンテンツを識別することによって、これらのソースコンテンツには、一定レベルの品質が提供されるような特別な処理が施される。これにより、ユーザの体感を向上させる。本発明に係る実施形態は、通常、外部への信号伝送または帯域外通信を行うことなく、また上記のような中間ノードを介する全てのネットワークデータまたはトラフィックをサンプリングまたは読み出すことなく、ストリーミングソースコンテンツデータ、特にＡＶおよびマルチメディアデータを潜在的に識別することが可能な典型的な中間ノード（例えばネットワークアダプタ）を提供する。
【００１５】
図２は、共有ネットワーク（ＬＡＮ）１５０上に配信され、本発明の一実施形態に従って処理されるネットワークデータ２０２を示す典型的なダイアグラム２００である。典型的なネットワークデータ２０２は、典型的な中間ノード１５２、１５４、１５６、１５８によって受信および処理される。共有ネットワーク１５０は、様々なタイプのソースコンテンツを伝送するように構成されている。ここでは例えば、ネットワークデータ２０２は、視聴覚データ、ファイル転送プロトコル（ＦＴＰ）データ、および異なる３つのウェブページデータ等、様々なタイプの多数のソースコンテンツを含むものとする。上記視聴覚（ＡＶ）ソースコンテンツは、例えばＡＶ１要素２０４、２０８、２１２、２１６、２２０、２２４などの多数のＡＶデータ要素に分割されたストリーミングソースコンテンツデータである。これらのＡＶデータ要素２０４、２０８、２１２、２１６、２２０、２２４は、全て互いに関連しており、ソースコンテンツまたはデータフローカテゴリーに関連付けられている。上記ＦＴＰソースコンテンツもまた、例えばＦＴＰ１要素２０６、２２８、２３０などの多数のＦＴＰデータ要素に分割され、多数のＦＴＰデータ要素として配信される。上記様々なウェブページソースコンテンツもまた、例えばＷＥＢ１要素２１０、２１８、ＷＥＢ２要素２１４、２２２、およびＷＥＢ３要素２２６などの多数のウェブページデータ要素として配信される。このようなウェブページデータは、例えばハイパーテキスト転送プロトコル（ＨＴＴＰ）のＧＥＴ要求に応じて配信されるソースコンテンツであってもよい。また、図示されていないが、確認メッセージ、制御データ、往復時間メッセージ（round-trip time message）や、共有ネットワーク１５０を介して配信されるその他のタイプのデータなど、様々なタイプのソースコンテンツが配信されてもよい。一般的に、ストリーミングソースコンテンツは、当業者にはよく知られているように、クライアントアプリケーションによって受信および処理されることによって、非ストリーミングソースコンテンツとは区別される。非ストリーミングソースコンテンツは、一般的には、ユーザに表示される前にその全てがダウンロードされるソースコンテンツである。例えば、ダウンロードされた動画またはＡＶデータは、ストリーミングＡＶデータとは異なる。これは、上記動画は通常、全ＡＶファイルがダウンロードされるまで再生または表示することができないからである。ウェブページは、通常は、非ストリーミングソースコンテンツであると考えられる。
【００１６】
ネットワークのネットワークセグメントを介して配信されるネットワークデータ２０２は、本発明の典型的な実施形態に係る中間ノード（中間ノード装置）２７０を介する。中間ノード（実施形態に係る中間ノード）２７０は、１つのＬＡＮセグメントから別のＬＡＮセグメントへとトラフィックを転送するために用いられる装置である。この場合、これらのＬＡＮセグメントのタイプは、同じであっても異なっていてもよい。中間ノード２７０は、ＡＶソースコンテンツを含むネットワークデータ２０２を伝送する。例えばネットワークアダプタ機能をさらに有する中間ノード２７０もまた、当該中間ノード２７０を介するデータをサンプリングし、どのデータがストリーミングソースコンテンツデータである可能性があるかを決定することができる。そして、この中間ノード２７０はまた、ストリーミングソースコンテンツである可能性があると決定されたデータに、一定レベルのサービス品質を割り当てることができる。いくつかの実施形態では、中間ノード２７０が受信したネットワークデータ２０２は、サンプリング周期または期間に基づいてサンプリングされる。例えば中間ノード２７０は、受信したネットワークデータ２０２を毎秒一回サンプリングしてもよいが、これに限らず、これより長いあるいは短い時間間隔でサンプリングしてもよい。サンプリング期間および／またはサンプリング周波数は、条件（中間ノード２７０において利用可能なリソースなど）に基づいている。中間ノード２７０は、当該ネットワークノード（中間ノード２７０）を介して伝送される様々なソースコンテンツを識別および分類するサービス品質（ＱＯＳ）決定および処理（ＱＯＳＤＰ）モジュール２５０を備えている。さらに、中間ノード２７０内に配置されたＱＯＳＤＰモジュール２５０あるいは別のモジュールは、サンプリング期間２９８内に受信したデータ要素のサイズの合計、あるいは受信したバイト数の合計２４２を決定あるいは記録する。中間ノード２７０内に配置されたＱＯＳＤＰモジュール２５０あるいは別のモジュールは、例えばサンプリング期間または周期（サンプリング期間２９８）中に、受信したバイト数の合計２４２を記録する。
【００１７】
この典型的な実施形態では、サンプリング期間２９８は、通常、開始時間２９６Ａおよび終了時間２９６Ｂを有している。さらに、サンプリング期間２９８を多数の検査区間２８２、２８４、２８６、２８８、２９０に分割することによって、ネットワークデータ２０２は、これらの検査区間２８２〜２９０においてのみサンプリングされる。これらの検査区間２８２〜２９０は、例えば毎秒３０サンプルまたはパケット、あるいは毎秒５０サンプルまたはパケットとなるように規定されている。サンプリングされたソースコンテンツ要素またはデータフローのサイズの合計は、一般的に、これらの検査区間２８２、２８４、２８６、２８８、２９０中にサンプリングされた関連要素のサイズの総和である。
【００１８】
本発明に係る実施形態は、サンプリング期間２９８が長い周期（例えば数秒）に及ぶ場合にも適用される。サンプリング期間２９８はまた、検査区間２８２〜２９０が様々に異なっていてもよいし、検査区間２８２〜２９０の間が大きく空いていてもよい。例えば、サンプリング周期２９８が５秒以上であって、検査区間が１秒目、３秒目、および５秒目において規定されており、２秒目と４秒目との間には検査区間がないようにしてもよい。また、別の実施形態では、サンプリング期間２９８が１つである場合には、このサンプリング期間２９８が１つの検査区間しか有していなくてもよく、さらにこの検査区間とサンプリング期間２９８とが同じサイズであってもよい。サンプリング期間２９８および／または検査区間２８２〜２９０を規定する手法は、上記以外にも様々あり、これらは本発明の範囲内である。
【００１９】
上述したように、ＱＯＳＤＰモジュール２５０は、サンプリング期間２９８中に受信した様々なソースコンテンツ要素を、１つ以上のカテゴリーまたはデータフロー２５２、２５８、２６０、２６２に分類するように設計されている。例えば、サンプリングされて、ＡＶ１ソースコンテンツ（要素）２０８、２１６、２２４、ＦＴＰ１ソースコンテンツ２３０、ＷＥＢ１ソースコンテンツ２１０、２１８、ＷＥＢ３ソースコンテンツ２２６の一部であると識別されたデータはグループ化され、これらサンプルのサイズの合計が図示されているように蓄積される。この例では、ＷＥＢ２データ要素２１４および２２２は、中間ノード２７０が受信したネットワークデータ２０２の一部ではあるが、典型的なサンプリング期間２９８中にはサンプリングされない。さらに、図示されている他のソースコンテンツ要素（２８２、２０４、２０６、２１２、２２０、２２８、２９０の一部）もまた、典型的なサンプリング期間２９８中にはサンプリングされない。
【００２０】
言い換えると、ＱＯＳＤＰモジュール２５０が読み出す１つ以上の各データフローがフローサイズに関連付けられ、１つ以上の各カテゴリーがカテゴリーサイズに関連付けられる。また、ＱＯＳＤＰモジュール２５０は、読み出した各データフローのフローサイズを、読み出したデータフローに関連付けられたカテゴリーサイズ内に蓄積するように構成されている。
【００２１】
いくつかの実施形態では、ソースコンテンツは、１つ以上のパケットとして伝送される。この実施形態では、ＱＯＳＤＰモジュール２５０は、サンプリング期間２９８中に中間ノード２７０が受信した１つ以上のパケット２８２、２８４、２８６、２８８、２９０を読み出し、各パケットからヘッダ情報を抽出または読み出す。当該パケットのヘッダ情報から、各パケットは、例えば当該パケットがどのデータフローに関連付けられているのかまたは関連するのかに基づいて分類される。いくつかの実施形態では、ＱＯＳＤＰモジュール２５０は、独自のパケットヘッダフィールド、例えばイーサタイプ（ＥｔｈｅｒＴｙｐｅ）、ソースインターネットプロトコル（ＩＰ）アドレス（送信元アドレス）、宛先ＩＰアドレス（宛先アドレス）、送信元ポート、および宛先ポートによって、様々なパケットを分類してもよい。イーサタイプは、通常、パケットを伝送するために適用されるプロトコルを示すフィールドである。いくつかの実施形態では、データフローは、特定の送信元から１つ以上の宛先へ配信される、相互に関連したパケットのストリームである。通常、これらのデータフローは、送信元アドレスおよび宛先アドレスが同じであると共に、シングルセッションおよび／またはマルチキャストセッションによって生じるその他共通の基準を有している。別の実施形態では、これらのパケットは、同一のソースコンテンツに関連あるいは基づいている場合、例えばサンプリングされた全てのＡＶ１パケット２０８、２１６、２２４が同一のデータフローまたはカテゴリー（ＳＴＲＥＡＭ（１）など）によってグループ化されている場合には、互いに関連している。通常、ネットワークデータ２０２を１つ以上のデータフローに分類する方法は、ネットワークデータ２０２を伝送するときに用いられるプロトコルに依存している。このような実施形態では、ＱＯＳＤＰモジュール２５０は、組み込まれた様々なロジックおよび／または処理工程を有している。このため、ＱＯＳＤＰモジュール２５０は、ネットワークデータ２０２を読み出し、特定のデータフローまたはカテゴリーに分類（ネットワークデータ２０２からのデータの解析および抽出を含む）することができる。
【００２２】
さらに、サンプリングされ、かつグループ化された典型的なＡＶ１データ（ＡＶ１パケット、ＡＶ１要素）２０８、２１６、２２４のサイズの合計またはバイト数の合計はまた、例えばカテゴリー毎のバイト変数の合計であるＳＴＲＥＡＭＢＹＴＥ（１）に蓄積または加えられる。変数ＳＴＲＥＡＭＢＹＴＥ（１）は、例えば（１番目にサンプリングされたＡＶ１パケット２０８のバイト数＋２番目にサンプリングされたＡＶ１パケット２１６のバイト数＋３番目にサンプリングされたＡＶ１パケット２２４のバイト数）の値を有している。一般的に、関連するパケットまたはソースコンテンツ要素は、共通のカテゴリーにグループ化され、これらのサイズが蓄積される。例えば、サンプリングされたＦＴＰ１パケット２３０、サンプリングされたＷＥＢ１パケット２１０、２１８、およびサンプリングされたＷＥＢ３パケット２２６は全て、例えばＳＴＲＥＡＭ（２）、ＳＴＲＥＡＭ（３）およびＳＴＲＥＡＭ（４）によって示される各カテゴリーの下に分類される。そして、これらの各カテゴリーまたはグループにおけるバイト数の合計が、例えばＳＴＲＥＡＭＢＹＴＥ（２）、ＳＴＲＥＡＭＢＹＴＥ（３）およびＳＴＲＥＡＭＢＹＴＥ（４）などの典型的な変数の下に蓄積される。いくつかの実施形態では、識別されたデータフローまたはカテゴリーの蓄積されたバイト数であるＳＴＲＥＡＭＢＹＴＥ（ｉ）は、そのデータフローまたはカテゴリーに対するサンプリング平均帯域幅の基準またはインジケータとして用いられる。また、いくつかの実施形態では、サンプリング平均帯域幅は、統計的に重要であると判断されたサンプルサイズを有することに基づいている。サンプルサイズは、従来の統計的あるいは数学的なアルゴリズム、または従来の統計的あるいは数学的な式を用いることにより、統計的に重要であると判断される。さらに、別の実施形態では、ＱＯＳＤＰモジュール２５０は、所定のサンプルサイズをサンプリングするように構成されていてもよい。この所定のサンプルサイズは、事前に設定されていても、動的に変更されるものであってもよい。また、別の実施形態では、上記式として、信頼性の試験に用いられる式が適用されてもよい。
【００２３】
いくつかの実施形態では、サンプリング周期２９８中にサンプリングされた全パケットのサイズの合計またはバイト数の合計（１つ以上のカテゴリーまたはデータフロー）２５２、２５８、２６０、２６２は、例えば本明細書においてＴＯＴＡＬ＿ＳＡＭＰＬＥＤ＿ＢＹＴＥＳ２４４と称されている（例示されている）変数またはメモリ（記憶場所）内に、保持または記録される。各パケットのバイト数は、例えばヘッダ情報およびペイロード情報を含む全パケットサイズに関連している。別の実施形態では、サンプルバイト数は、各パケットのペイロード領域のサイズのみに関連している。この例では、ＴＯＴＡＬ＿ＳＡＭＰＬＥＤ＿ＢＹＴＥＳの値は、ＳＴＲＥＡＭＢＹＴＥ（１）と、ＳＴＲＥＡＭＢＹＴＥ（２）と、ＳＴＲＥＡＭＢＹＴＥ（３）と、ＳＴＲＥＡＭＢＹＴＥ（４）とを加える（ＳＴＲＥＡＭＢＹＴＥ（１）＋ＳＴＲＥＡＭＢＹＴＥ（２）＋ＳＴＲＥＡＭＢＹＴＥ（３）＋ＳＴＲＥＡＭＢＹＴＥ（４））ことによって得られる。各カテゴリーに分類され、各カテゴリーのサンプルサイズの合計が決定されると、ＱＯＳＤＰモジュール２５０は、これらデータフローまたはカテゴリーがＱＯＳ処理の対象となるのかを決定する。
【００２４】
一般的に、ＱＯＳＤＰモジュール２５０は、ヘッダサイズとペイロードサイズとの両方を示す情報にアクセスする。いくつかの実施形態では、この情報は、パケットを直接読み出すことによって入手される。また、別の実施形態では、この情報は、ハードウェアサポート（hardware support）を介して入手してもよい。ハードウェアサポートとは、例えば物理的なパケット長を示すまたは測定するハードウェアレジスタを備えたインターフェースチップである。このようにサンプルサイズは、パケットサイズの合計に基づいていてもよいが、ペイロードパケットサイズに基づいていることが好ましい。しかし通常は、全パケットサイズが用いられることによって、ＬＡＮ１５０上における毎秒のバイト数の合計、あるいはサンプリング期間２９８中に受信したバイト数の合計が決定される。
【００２５】
図３は、本発明の一実施形態に係るハイレベルデータフローを示す、典型的な別のダイアグラム３００である。中間ノード２７０が受信した多数の様々なソースコンテンツデータまたはデータフローを含むネットワークデータ２０２は、サンプリング期間３０２毎に、ＱＯＳＤＰモジュール２５０によってサンプリングされる。例えば本明細書で説明されているＱＯＳＤＰ処理を行うタイミングあるいは長さを示すサンプリング期間２５０は、ユーザ、プログラムおよび／または製造者側によって決定される。サンプリング期間３０２はまた、ネットワークの条件または中間ノード２７０において利用可能なリソースなど、一定の条件に基づいて変更されてもよい。いくつかの実施形態では、利用可能なリソースの処理に基づくサンプリング期間３０２は、受信したネットワークデータ２０２から経時的にサンプリングされたパケットサンプル数に基づくものである。
【００２６】
本発明に係る中間ノード２７０は、ＱＯＳＤＰモジュール２５０と、中間ノードの従来の機能を有する中間ノード処理モジュール３１６とを備えている。例えば、中間ノード２７０がイーサネットとＰＬＣアダプタとを接続する場合、中間ノード処理モジュール３１６は、イーサネットとＰＬＣアダプタとを接続する従来の機能に加えて、本明細書で説明されているＱＯＳＤＰモジュール２５０の処理を行うように構成されている。通常、ＱＯＳＤＰモジュール２５０および中間ノード処理モジュール３１６は、共有メモリ、データライン、バス、専用信号経路、あるいは１つ以上のチャネル３５０を介して互いに通信を行う。さらに、ＱＯＳＤＰモジュール２５０および中間ノード処理モジュール３１６は、１セットのプログラム命令（例えばソフトウェア）としてハードウェアに内蔵されてもよいし、あるいはハードウェアとソフトウェアとの両方、すなわちファームウェアに内蔵されていてもよい。中間ノード２７０はまた、当該中間ノード２７０がネットワークを介して通信可能に構成された通信モジュール３４０など、その他のモジュールを含む。さらに、中間ノード２７０は、図示されていないが、当該中間ノード２７０の別の機能に応じた他のモジュールを含んでいてもよい。
【００２７】
ＱＯＳＤＰモジュール２５０は、サンプリングされたネットワークデータ２０２を１つ以上のカテゴリーまたはデータフローに分類し、ＱＯＳＤＰ  ＱＯＳデータ３３０として分類されたデータフローに一定レベルのＱＯＳを供給する。ＱＯＳＤＰ  ＱＯＳデータ３３０に指定されたデータ、およびＱＯＳＤＰ  ＱＯＳデータ３３０に指定されなかったデータ（すなわち非ＱＯＳＤＰデータ３２０）は、ネットワーク３６０を介して、指定の受信側またはクライアントアプリケーションに伝送される。さらに、ヘッダが抽出される、および／または、ネットワークデータ２０２が識別されるとすぐに、ＱＯＳＤＰモジュール２５０によって処理されたネットワークデータ２０２は、ＱＯＳ分類子３１８が利用できる状態となる。ＱＯＳ分類子３１８は、中間ノード処理モジュール３１６の一部として実装されている。ＱＯＳＤＰモジュール２５０はまた、ＱＯＳＤＰ  ＱＯＳデータ３３０として識別されたこれらのソースコンテンツのために、当該ソースコンテンツの特定のデータフローまたはカテゴリーに割り当てられるようにＱＯＳ（ＱＯＳ要求）３３４を要求する。
【００２８】
非ＱＯＳＤＰデータ３２０は、ＱＯＳＤＰモジュール２５０によって、本発明の実施形態に係る特別なＱＯＳ処理を行わないデータとして分類されたネットワークデータ２０２である。しかし、ネットワークデータ２０２のこれら非ＱＯＳＤＰデータ３２０は、以前のＱＯＳまたは優先処理サービスがヘッダ内に含まれたまま、中間ノード２７０、具体的にはＱＯＳＤＰモジュール２５０によって受信されている場合がある。いくつかの実施形態では、これらの非ＱＯＳＤＰデータ３２０に、ベストエフォート型サービスが供給されるようになっている。これらの非ＱＯＳＤＰデータ３２０には、通常、本発明に係るＱＯＳＤＰモジュール２５０によって処理されなかった場合に供給されるサービスと同一のサービスが供給される。従って、これらの非ＱＯＳＤＰデータ３２０には、本発明に係るいずれのＱＯＳ対応または処理も割り当てられない。このような非ＱＯＳＤＰデータ３２０に代わって、非ＱＯＳ要求がＱＯＳＤＰモジュール２５０によって伝送される。
【００２９】
図４Ａおよび図４Ｂは、本発明の一実施形態に係る典型的なＱＯＳＤＰ処理４００を示すハイレベルフローチャートである。一般的に、ＱＯＳＤＰ処理４００は、ネットワークデータのサンプリングが行われるタイミング、および／または、サンプリング期間の長さを制御するように構成されるモニタモジュール（図示せず）によってトリガーされる。いくつかの実施形態では、ＱＯＳＤＰ処理４００のモニタリングおよびトリガー機能は、ＱＯＳＤＰモジュール２５０自身の内部に組み込まれている。ＱＯＳＤＰ処理４００は、オンデマンドでトリガーされるようになっていてもよい。
【００３０】
一般的に、新しいサンプリング期間が開始されたか否か、あるいは新しいサンプリング期間をトリガーする必要があるか否かが、例えば予定時間に到達したか否かに基づいて確認される（Ｓ４０４）。ＱＯＳＤＰモジュール２５０は、このサンプリング期間中に、中間ノード処理モジュール３１６とのインターフェースの有無に関わらず、一般的には、中間ノード２７０内に設けられた適切な（複数の）インターフェースを介して、典型的な中間ノード２７０が受信したネットワークデータ２０２を読み出すか、あるいはサンプリングする（Ｓ４０８）。いくつかの実施形態では、このようなインターフェースは、ＰＨＹおよび／またはメディアアクセス制御（ＭＡＣ）レベルにある。ここでは例証のため、サンプリングされるデータはパケットであると仮定する。
【００３１】
次に、ネットワークデータ２０２がサンプリングされ、サンプリングされた各パケットのヘッダ情報が抽出される（Ｓ４１０）。サンプリングされた様々なパケットは、抽出または読み出されたヘッダ情報に基づいて、ＳＴＲＥＡＭ（ｉ）、アレイ、データ構造などの各カテゴリーまたはデータフローに、分類あるいはグループ化される（Ｓ４１２）。なお、サンプリングされた様々なパケットは、その他のデータ分類の処理方法によって分類あるいはグループ化されてもよい。さらに、サンプリングされた各パケットのバイト数が、カテゴリーに基づいて、例えば適切な変数ＳＴＲＥＡＭＢＹＴＥＳ（ｉ）内に蓄積される（Ｓ４２０）。サンプリングされたバイト数は、前述のように、ペイロードバイト数であっても、全パケットバイト数であってもよい。ネットワークデータ２０２の読み出し（Ｓ４０８）、ヘッダ情報の抽出（Ｓ４１０）、データフローまたはカテゴリーの識別（Ｓ４１２）、およびバイト数の蓄積（Ｓ４２０）は、通常、サンプリング周期の終了まで繰り返される。通常、サンプリングされたデータは、そのカテゴリーまたはデータフローの決定、およびバイト数の決定後すぐに、次の送信先（例えば、受信側あるいはネットワーク内における別のノード）に伝送される（図示せず）。サンプリング期間の終了時（Ｓ４２４において「ＹＥＳ」の場合）に、各ソースコンテンツカテゴリーまたはデータフローに対して、ＱＯＳ決定処理が行われる（Ｓ４２８）。
【００３２】
図４Ｂは、上記ＱＯＳ決定処理による典型的な処理４２８を示す図である。典型的な処理４２８は、一般的に、各カテゴリーまたはデータフローに対して計算を行って、これらソースコンテンツまたはデータフローが必要とする推定総平均帯域幅（推定平均帯域幅；推定平均データフロー帯域幅）を決定する工程を含むものである。なお、ＡＶトラフィックをインターネットプロトコル（ＩＰ）を用いてＬＡＮに伝送するように設計されたＰＬＣアダプタなど、いくつかの中間装置では、サンプリング期間中に所定の帯域幅の値を超えるネットワークデータストリームは、通常ストリーミングＡＶコンテンツである可能性が高い。
【００３３】
あらゆるストリームまたはデータフローカテゴリーに属する、例えばＢＷ（ｉ）変数として示される推定平均帯域幅は、以下のように規定される（Ｓ４３０）:
ＢＷ（ｉ）＝（サンプリング期間中に受信した総バイト数／サンプリング期間）*（ＳＴＲＥＡＭＢＹＴＥＳ（ｉ）／ＴＯＴＡＬ＿ＳＡＭＰＬＥＤ＿ＢＹＴＥＳ）
言い換えると、上記式における推定平均帯域幅は、（受信したネットワークデータ２０２のサイズの合計／サンプリング期間２９８）×（カテゴリーに関連付けられたカテゴリーサイズ／サンプリングされたサイズの合計）と規定される。
【００３４】
サンプリング期間中に実測される総平均帯域幅は、（サンプリング期間中に中間ノード２７０が受信したバイト数の合計／サンプリング周期の長さ）によって得られる。サンプリング期間中に受信した上記バイト数の合計は、上記サンプリング期間中に受信した、サンプリングされたデータおよびサンプリングされなかったデータ（例えば、サンプリング期間の開始２９６Ａと終了２９６Ｂとの間に受信した全データパケット）を含んでいる。通常、例えばヘッダおよびペイロード領域を含む受信したバイト数の合計は、サンプリング期間中に受信した全てのパケットの全パケットサイズまたはバイト数の合計であると判断されるか、あるいは当該全パケットサイズまたはバイト数の合計に基づくものである。いくつかの実施形態では、サンプリング期間中に受信したバイト数の合計は、中間ノード処理モジュール３１６の従来の処理の一部として保持される。この実施形態では、サンプリング期間中に受信したバイト数の合計は、ＱＯＳＤＰモジュール２５０によって中間ノード処理モジュール３１６からクエリーされる。
【００３５】
データフロー／カテゴリーの推定平均帯域幅ＢＷ（ｉ）が、所定の閾値であるＡＶ＿ＴＨＲＥＳＨＯＬＤよりも大きい場合（Ｓ４３２において「ＹＥＳ」である場合）には、その平均帯域幅に関連付けられたソースコンテンツまたはデータフローは、ＡＶストリームであると判断され、ＱＯＳデータ３３０であるとして割り当ておよび規定される（Ｓ４４８）。つまり、このデータフローあるいはカテゴリーに関連付けられたパケット、またはこのデータフローあるいはカテゴリーとして確認されたパケットには、例えばヘッダ情報に基づいて、可能であればＱＯＳが供給される。また、別の実施形態では、ＱＯＳＤＰモジュール２５０は、複数のサンプリング期間においてパケットをサンプリングする。これは例えば、特定のデータカテゴリーの帯域幅が平均閾値を超えているか否かを検証する（Ｓ４３２）前に、推定平均帯域幅ＢＷが一定時間保持されるようにするためである。
【００３６】
ＱＯＳＤＰモジュール２５０はまた、指定されたデータフローのために、例えば独自のパケットヘッダ情報に基づいて、ネットワークからＡＶ  ＱＯＳステータス（状態）（ＱＯＳ要求）３３４を要求する（Ｓ４４８）。上記カテゴリーまたはデータフローに関連付けられる、次に受信するネットワークデータにもまた、ＱＯＳが供給される。例えば、推定平均帯域幅ＢＷ（１）が所定のＡＶ＿ＴＨＲＥＳＨＯＬＤよりも大きく、推定平均帯域幅ＢＷ（１）がＡＶ１データ２５２に関連付けられている場合、上記データフローまたはヘッダ情報と一致するＡＶ１データパケットのＱＯＳ優先処理（ＱＯＳ要求）３３４が要求される。いくつかの実施形態では、中間ノード２７０を介するＡＶソースコンテンツのＱＯＳ要求または規格は、ＡＶデータフロー自身から識別、あるいはＡＶデータフロー自身から得られる。また、いくつかの実施形態では、本発明に係る中間ノード２７０において、例えば予約帯域幅、最大ジッタ、エラー率および／または最大待ち時間などのＱＯＳ要求が設定されることによって、ＱＯＳＤＰモジュール２５０は、そのデータフローのために要求するＱＯＳサービスのレベルを決定することができる。例えば、ＱＯＳパラメータまたは要求は、データフローまたはデータカテゴリーに基づいて事前に設定している。いくつかの実施形態では、中間ノード２７０において、１セット以上のＱＯＳパラメータが事前に規定または設定されてもよい。ＱＯＳパラメータのセットはまた、動的に変更してもよく、ユーザが設定できるようにしてもよい。また、別の実施形態では、１つ以上の条件（例えば検出されたＢＷの量）に基づいて選択および適用可能なＱＯＳパラメータが複数セット用意されてもよい。
【００３７】
いくつかの実施形態では、所定の平均閾値であるＡＶ＿ＴＨＲＥＳＨＯＬＤは、ＡＶデータのタイプに基づいている。例えば、高解像度のＡＶデータのＡＶ＿ＴＨＲＥＳＨＯＬＤは毎秒１２メガビット（Ｍｂｐｓ）に規定されており、高解像度ではない一般的なＡＶデータのＡＶ＿ＴＨＲＥＳＨＯＬＤは２Ｍｂｐｓに規定されている。これらのＡＶ＿ＴＨＲＥＳＨＯＬＤは例証のために挙げられたものであって、上記以外の値に規定され、実施されてもよい。また、いくつかの実施形態では、システム１００は、例えばユーザ予想による入力、現在のネットワークトラフィック、到着時間分布、および／または検出されたネットワーク管理トラフィックなどの一定の条件に応じて、複数のＡＶ＿ＴＨＲＥＳＨＯＬＤを有するように構成されてもよい。ＡＶ＿ＴＨＲＥＳＨＯＬＤは、例えばテーブルまたはデータベース内に記憶される、あるいはプログラムによって規定されるものである。
【００３８】
例えばＰＬＣネットワークにおけるＱＯＳ要求３３４は、ＱＯＳＤＰモジュール２５０に、データフローまたはカテゴリーの接続規格を規定させ、中間ノード２７０からのデータフローがどのように処理されるのかを規定あるいは設定するパラメータを特定させることによって実施される。ＱＯＳ要求３３４は、例えば、コマンドとしてＭＡＣおよび／またはＰＨＹ層に送られる。例えば、ＱＯＳ分類子３１８および／またはポリシーデータベースもまた、ＱＯＳ要求３３４に基づいて更新される。一方、データフローまたはカテゴリーの平均帯域幅が所定の閾値以下である場合（Ｓ４３２において「ＮＯ」である場合）には、そのデータフローに関連付けられたソースコンテンツまたはパケットに対して特別な処理は行われない。このようなデータフロー／カテゴリーは、例えば非ＡＶデータまたは非ＱＯＳＤＰデータと規定される（Ｓ４５２）ため、通常、本発明に係るＱＯＳ処理を行う必要はない。これらの非ＡＶデータは、通常、本発明に係るＱＯＳ処理が行われなかったかのように処理される。
【００３９】
典型的な上記計算において用いられた変数またはメモリは、次のサンプリング期間および次の計算に備えるために、リセットまたは消去される（Ｓ４６２および４６４）。なお、本明細書に記載のＱＯＳＤＰ処理４００は、次のサイクルにおいて繰り返し行われる。
【００４０】
本明細書に記載の処理（Ｓ４４８）によると、ＱＯＳＤＰモジュール２５０は、非ＡＶデータフローをＡＶデータと間違って識別する可能性がある。しかしこのエラーは、通常、容認または許容される。これは、本発明の一実施形態に係る典型的な中間デバイスまたは中間ノード２７０が、高帯域のストリームがＡＶストリームである可能性の非常に高いＬＡＮ設定において用いられることが期待されるからである。さらに、間違って識別されるタイプのトラフィックまたはネットワークデータ２０２にＡＶ  ＱＯＳを付与または要求することは、次に受信する他のＡＶストリームからリソースを逸脱する可能性がある。しかしこのようなリソースの逸脱は、通常、間違って識別されたデータフローの間においてのみ生じるものである。間違って識別されるデータフローの大部分は、非ＡＶデータである場合には、画像のダウンロードまたはファイルの転送などの、通常比較的短い間に生じる。これらデータフローの長さは通常数秒から数分程度であり、ＡＶストリームまたはソースコンテンツは通常これより長く、例えば数時間程度である。間違って識別されるタイプのトラフィックまたはネットワークデータ２０２にＡＶ  ＱＯＳを付与または要求するというエラーは、複数性が低くかつ通常安価である本発明に係る中間ノード２７０では許容される。このようなエラーはまた、特に、ネットワークデータ２０２を受信し、レンダリングデバイスへ潜在的に転送するように構成されたネットワーク内に中間ノード２７０が配置されている場合は、さらに軽減される。なお、上記レンダリングデバイスとしては、例えば個人的な映像を記録する、または機能の種類を表示するように構成されたデバイスが挙げられる。
【００４１】
なお、本発明に係る中間ノード装置は、上記ＱＯＳＤＰモジュールが、上記読み出したデータフローの１セットのヘッダ情報に基づいて、上記読み出した１つ以上のデータフローを分類するようにさらに構成されてもよい。
【００４２】
本発明に係る中間ノード装置は、上記ヘッダ情報が、プロトコルの種類、送信元アドレス（ソースアドレス）、宛先アドレス、送信元ポート、および宛先ポートを含むように構成されてもよい。
【００４３】
本発明に係る中間ノード装置は、上記読み出した１つ以上の各データフローがフローサイズに関連付けられ、上記１つ以上の各カテゴリーがカテゴリーサイズに関連付けられ、上記ＱＯＳＤＰモジュールは、上記読み出した各データフローの上記フローサイズが、上記読み出したデータフローに関連付けられた上記カテゴリーサイズ内に蓄積されるようにさらに構成されてもよい。
【００４４】
本発明に係る中間ノード装置は、上記読み出した１つ以上の各データフローが、ペイロードサイズに基づいてフローサイズに関連付けられるように構成されてもよい。
【００４５】
本発明に係る中間ノード装置は、ＱＯＳＤＰモジュールが、上記１つ以上のカテゴリーに関連付けられた上記各カテゴリーサイズを全て蓄積したサイズに基づいてサンプリングされた総サイズを決定すると共に、上記カテゴリーに対して決定された上記推定平均データフロー帯域幅が、（上記受信したネットワークデータのサイズの合計／上記サンプリング期間）×（上記カテゴリーに関連付けられた上記カテゴリーサイズ／上記サンプリングされたサイズの合計）に基づくようにさらに構成されてもよい。
【００４６】
本発明に係る中間ノード装置は、上記受信したネットワークデータのサイズの合計が、パケットヘッダおよびパケットペイロードを含む全パケットサイズに基づくように構成されてもよい。
【００４７】
本発明に係るシステムは、上記中間ノード装置が、上記ネットワークデータのセットを第１のネットワーク型から第２のネットワーク型へ処理するように構成されたネットワークアダプタ処理モジュールをさらに備えるように構成されてもよい。
【００４８】
本発明に係るシステムは、上記第１のネットワーク型がイーサネットであり、上記第２のネットワーク型が電力線通信であるように構成されてもよい。
【００４９】
本発明の実施形態は、中間ノードを適用するように構成されたネットワーク、システム、およびデバイスと共に用いることができる。本発明は、特定の実施形態および実施例に関連させた形で開示されている。しかし本発明は、開示されているこれら特定の実施形態に限定されることなく、本発明の別の実施形態および／または別の使用方法、明らかな変更、および本発明と同等の内容にも及ぶことについて、当業者であれば理解することができるであろう。また、本発明の多数の変形例を図示および詳述したが、本開示に基づいて、本発明の範囲内において他の変更を加えることが可能であることは、当業者には容易に明らかとなるであろう。例えば、プログラミングに関して通常の知識を備えている者であれば、本明細書に記載の典型的な処理を、記載されている内容とは異なる順番で、異なるメモリおよび変数（例えばリンクリスト）、データ構造、および／または別々の変数場所を用いて行うことができ、実施される工程に変化を加えることができる。これらは全て本発明の範囲に包含される。また、これら実施形態の具体的な特徴および形態を様々に組み合わせること、または副次的に組み合わせることが可能であり、これらもまた本発明の範囲に包含されると考えられる。従って、開示されている実施形態の様々な特徴および形態を互いに組み合わせること、あるいは置き換えることによって、開示されている発明の形態とは異なる形態を形成することができることについて理解されたい。従って、ここに開示する本発明の範囲は、具体的に開示されている上記実施形態に限定されるものではない。
【００５０】
また、以下に本発明の実施形態を添付図面に例示する。しかし、本発明の実施形態は、これら図面に示されている実施形態に限定されるものではない。
【図面の簡単な説明】
【００５１】
【図１】図１は、本発明の一実施形態に係る典型的なデータ通信システムのハイレベルブロック図である。
【図２】図２は、本発明の一実施形態に係る、サンプリング周期に現れるストリーミングネットワークデータ、およびこれらデータに対して行われる処理を示すハイレベルブロック図である。
【図３】図３は、本発明の一実施形態に従ってデータフローにサービス品質（ＱＯＳ）を割り当てる方法を示すハイレベルデータフローである。
【図４Ａ】図４Ａは、本発明の一実施形態に係るサービス品質決定および処理モジュールの典型的な処理を示す図である。
【図４Ｂ】図４Ｂは、本発明の一実施形態に係るサービス品質決定および処理モジュールの典型的な処理を示す図である。
【符号の説明】
【００５２】
１００  システム
１５２、１５４、１５６、１５８  中間ノード（中間ノード装置；ネットワークアダプタ処理モジュール）
２７０  中間ノード（中間ノード装置）
３４０  通信モジュール
２５０  サービス品質決定および処理（ＱＯＳＤＰ）モジュール
【図１】
2008236742.tif 000003
【図２】
2008236742.tif 000004
【図３】
2008236742.tif 000005
【図４Ａ】
2008236742.tif 000006
【図４Ｂ】
2008236742.tif 000007
【外国語明細書】
[TITLE OF THE INVENTION]
METHOD OF PROVIDING QUALITY OF SERVICE IN NETWORK, INTERMEDIATE NODE DEVICE, AND SYSTEM
[FIELD OF THE INVENTION]
The embodiments of the present invention relate to streaming audiovisual data in a shared network, particularly to providing quality of service to such streaming data within a network.
[BACKGROUND OF THE INVENTION]
Internet access, as well as access to digital content, is currently available. For example, consumers may request on-demand movies streamed from the Internet to one of their television sets in their local area network for viewing. 
[DISCLOSURE OF THE INVENTION]
[PROBLEMS TO BE SOLVED BY THE INVENTION]
Networks where such streaming audiovisual source contents are transported, however, are typically shared such that different source content types may be delivered via such shared networks. Data that gets delivered via this shared network may include web browser data, such as web pages, file transfer protocol (FTP) data, streaming audiovisual data, and other data, which may include control information. Furthermore, such a shared network may include varying technologies, such as Ethernet and Powerline Communication technologies. A consumer wishing to view streaming audiovisual or multimedia data, particularly movies, over a shared network is typically desirous of wanting the audiovisual data to be delivered with a certain level of quality so as to provide a decent viewing quality. Ways of providing quality of service to such streaming data are thus highly desirable.
[MEANS TO SOLVE THE PROBLEMS]
In one aspect, a method of providing quality of service in a network is provided. The method includes the steps of receiving, within a sampling period, a set of network data comprising one or more data flows; reading, from said network data, one or more data flows within said sampling period; categorizing said read one or more data flows into one or more categories, wherein each of said read one or more data flows is associated with a category from said one or more categories; and for said each category of said one or more categories: determining an estimated average data flow bandwidth for said category based on said one or more data flows associated with said category; and if said determined estimated average bandwidth for said category is greater than a defined threshold then requesting quality of service for said category.
In another aspect, an intermediate node device adapted to be connected to one or more devices via a network, comprising one or more network segments, is provided. The intermediate node device includes a communication module and a Quality of Service Determination and Processing (QOSDP) module. The communication module is adapted to enable said intermediate node device to communicate to said one or more devices via said network. The QOSDP module is adapted to: receive via said network, within a sampling period, a set of network data comprising one or more data flows; read, from said network data, one or more data flows within said sampling period; categorize said read one or more data flows into one or more categories, wherein each of said read one or more data flows is associated with a category from said one or more categories; and for said each category of said one or more categories: determine an estimated average data flow bandwidth for said category based on said one or more data flows associated with said category; and if said determined estimated average bandwidth for said category is greater than a defined threshold then request quality of service for said category.
In another aspect, a system is provided. The system includes a network comprising one or more network segments, an intermediate node device, and a rendering device. The intermediate node device is adapted to be connected to the rendering device via said network. The intermediate node device includes a communication module and a Quality of Service Determination and Processing (QOSDP) module. The communication module is adapted to enable said intermediate node device to communicate to said one or more devices via said network. The QOSDP module is adapted to: receive via said network, within a sampling period, a set of network data comprising one or more data flows; read, from said network data, one or more data flows within said sampling period; categorize said read one or more data flows into one or more categories, wherein each of said read one or more data flows is associated with a category from said one or more categories; and for said each category of said one or more categories: determine an estimated average data flow bandwidth for said category based on said one or more data flows associated with said category; and if said determined estimated average bandwidth for said category is greater than a defined threshold then request quality of service for said category. The rendering device is adapted to receive said set of network data. 
The foregoing and other objectives, features, and advantages of the invention will be more readily understood upon consideration of the following detailed description of the invention, taken in conjunction with the accompanying drawings.
[DESCRIPTION OF THE PREFERRED EMBODIMENTS]
To better understand the figures, reference numerals within the one hundred series, for example, 100 and 152, are initially introduced in FIG. 1, reference numerals in the two hundred series, for example, 202 and 250, are initially introduced in FIG. 2, and so on and so forth.
The embodiments of the present invention generally relate to identifying streaming source contents or media, such as audiovisual data, streaming visual data, streaming audio data, and streaming multimedia data. Streaming media in general is the transfer of source content so that this content may be received as a continuous real-time stream. Streamed source content elements are typically transmitted by a sender, e.g., a server/server application or sender entity, and received by a receiver, e.g., client/client application or receiver entity. The receiver or client typically may start presenting or playing back the source content as soon as the receiving client application has sufficient data or content elements stored in its receiving buffer. Typically, the client/receiver is simultaneously receiving streaming network data and presenting such streamed network data. 
FIG. 1 is a diagram of an exemplary system 100 wherein streaming audiovisual or multimedia digital contents, such as audio and/or visual/image data, are transmitted via one or more networks according to some embodiments of the invention. In this exemplary embodiment, a local area network (LAN) 150 shares bandwidth among the various nodes in the system 100. The various nodes in the system 100 may include senders or sources of data, receivers or clients of data, and intermediate nodes, such as network adapters. In general, a network adapter of the present invention is an intermediate node that converts data from one network technology to another, so as to enable communication between different network types. Furthermore, the intermediate nodes, including network adapters, of the present invention are stand-alone devices or modules that typically do not have access to powerful processors of general-purpose computers, such as Personal Computers (PCs). Examples of such network adapters may include adapters (network adapter processing module) 152, 154, 156, 158 adapted to enable communication between different types of network segments, such as between Ethernet (first network type) and Powerline Communication (PLC; second network type), Ethernet and wireless, such as conforming to the 802.11g specification, and Ethernet and ultra wideband. The network adapters 152, 154, 156, 158, exemplified in FIG. 1, provide conversion and communication between an Ethernet network and a PLC network 162, in general. In some embodiments, the stand-alone network adapters of the present invention are deployed in pairs to transfer data over different network segment types of the LAN 150. For example, there is a source device, e.g., a source device set-top box 134, an Ethernet to a PLC stand-alone network adapter 156, the PLC network 162, a PLC to Ethernet stand-alone network adapter 152, and the destination device, e.g., a digital television set (DTV) 138. It is noted that the Ethernet is termed first network type whereas Powerline Communication is termed second network type. Alternatively, the Ethernet may be termed second network type whereas Powerline Communication may be termed as first network type.
The exemplary system 100 may also include a number of consumer electronics, including a set-top box 134, a DTV 138, a wireless personal computer (PC) 142, a digital video or versatile disc (DVD) player 136, a computer laptop 114, gateways and/or routers 102, a consumer appliance/device 122, and one or more intermediate nodes (intermediate node devices) 152, 154, 156, 158 connected via various network links or segments. Such network segments may also be wired or wireless and may be adapted to support various protocols. These various consumer electronics are typically adapted to be networked with each other. Examples of consumer appliances (rendering device) that may be networked into the system 100 include televisions and refrigerators with user interfaces, including displays, radios adapted to receive streaming source contents, and any other devices adapted to receive source contents via the network and present them accordingly. The local area network 150 may be adapted to support one or more network types- e.g., power line communication (PLC) networks, 802.11a wireless networks, 802.11g wireless networks, 802.11b wireless networks, and Ethernet networks. The local area network 150 may also be operably coupled to one or more external source content providers 192, 198, for example, via satellite, cable, and/or terrestrial broadcast 190 or via an external wide area network, such as the Internet 194. Typically, the LAN 150 is coupled to external networks via one or more end-point or edge nodes, such as gateways and/or routers 102. A source content provider 192, 198 may provide pre-encoded and stored source content and/or live or real-time encoded source content to be streamed and received by a receiver/client and accordingly be presented in a user interface. 
In some embodiments, audiovisual (AV) data, such as a movie, may be requested from a source content provider 198 that provides on-demand pre-encoded and stored data and/or live data. Typically, the on-demand movie is presented on a presentation device after a small portion of the on-demand movie is stored in the appropriate buffer. For example, a streaming source content received from an external network or source (e.g. source content provider 192) may be received by a set-top box 134. The set-top box 134 then transmits the streamed audiovisual movie via one or more intermediate nodes, e.g., an Ethernet to PLC stand-alone network adapter 156 and/or a PLC to Ethernet stand-alone network adapter 152, to the digital television set 138 for presentation. In other embodiments, the source of the streaming data may be within the LAN 150 itself, for example, from a computer 142 with a stored audiovisual file, e.g., a movie on a Digital Versatile Disk (DVD). The computer 142 may stream the stored AV file via intermediate node 156, then to intermediate node 152 to the operably coupled digital television set 138. The movie is typically presented on a presentation device when sufficient AV data is stored in an appropriate buffer, and typically while the buffer is still receiving other related AV data. 
In some embodiments, the intermediate nodes of the present invention are nodes adapted to perform the quality of service (QOS) determination and processes described herein, but which do not function as network adapters. These intermediate nodes of the present invention, in general, sample the network data and accordingly provide QOS to certain types of data flows.  
For intermediate nodes in a shared network, the embodiments of the present invention provide for a low-complexity means of identifying which network data flows may potentially carry streaming source content, particularly AV data or multimedia data, that typically requires a certain bandwidth requirement. Furthermore, because the quality of service determination and processing module process of the present invention is generally of low-complexity, a low-power and typically inexpensive processor may be incorporated in the exemplary intermediate node of the present invention. By identifying these streaming source contents that may require quality of service (QOS), these source contents may accordingly be provided special handling so as to provide a certain level of quality, typically thereby enhancing a consumer’s experience. The embodiments of the present invention also provide exemplary intermediate nodes, such as network adapters, that are adapted to potentially identify streaming source content data, particularly AV and multimedia data, typically without external signaling or out-of-band communication, and without sampling or reading all network data or traffic crossing such intermediate node. 
FIG. 2 is an exemplary diagram 200 illustrating an exemplary representation of network data 202 delivered over a shared network (LAN) 150 and a manner in which network data may be processed according to an embodiment of the invention. This exemplary network data 202 may be received and processed by exemplary intermediate nodes 152, 154, 156, 158. The shared network 150 is adapted to transport various source contents with varying source content types. In this example, the network data 202 includes a number of source contents with different varying source content types, such as audiovisual data, file transfer protocol (FTP) data, and three separate web pages data. The audiovisual (AV) source content is a streaming source content data that is divided into a number of AV data elements, e.g., AV1 elements 204, 208, 212, 216, 220, 224. These AV data elements 204, 208, 212, 216, 220, 224 are all related to each other and associated with a source content or data flow category. The FTP source content is also divided and delivered as a number of FTP data elements, e.g., FTP1 elements 206, 228, 230. The various web page source contents are also delivered as a number of web page data elements, e.g., WEB1 elements 210, 218, WEB2 elements 214, 222, and WEB3 element 226. Such web page data, for example, may include source contents delivered in response, for example, to a hypertext transfer protocol (HTTP) get request. Other various source content types may also be delivered, but not shown, such as acknowledgement messages, control data, round-trip time messages, and other data types that may be delivered via a shared network 150. In general, a streaming source content is distinguished from a non-streaming source content, by the manner in which streaming source content is received and processed at the client, as known to those of ordinary skill in the art. A non-streaming source content is generally a source content that is typically downloaded in its entirety prior to being presented to a user. For example, a downloaded movie or AV data, however, is different from streaming AV data typically because the movie may not be played back or presented until the entire AV file is first downloaded. Web pages are typically considered non-streaming source contents. 
Network data 202 delivered via network segments of the network may cross an exemplary intermediate node embodiment (intermediate node device) 270 of the present invention. The intermediate node (intermediate node embodiment) 270 may be a device used to forward or transfer traffic from one LAN segment to another LAN segment, where the LAN segments may or may not be of the same type. The intermediate node 270 transports network data 202, which may include AV source content. This intermediate node 270, in addition, for example, to performing network adapter functions is also able to sample data crossing such intermediate node 270, determine which data may potentially be streaming source content data, and those determined to be potentially streaming source content be assigned a certain level of quality of service. In some embodiments, network data 202 received by such intermediate node 270 are sampled based on a sampling cycle or period. For example, the intermediate node 270 may sample network data 202 received by such intermediate node 270 once every second or other longer or shorter time interval. The duration of the sampling period and/or the frequency of the sampling period may be based on conditions, such as resources available at the intermediate node 270. The intermediate node 270 may have a Quality of Service (QOS) determination and processing (QOSDP) module 250 adapted to identify and categorize the various source contents being transported across this network node (intermediate node 270). Furthermore, the QOSDP module 250 or another module in the intermediate node 270 may also determine or keep track of the total size of received data elements or total count of received bytes 242 within a sampling period 298, e.g., keep track of the total count of received bytes 242 during that sampling period or cycle (sampling period 298). 
In this exemplary embodiment, a sampling period 298 typically has a start time 296A and an end time 296B. Furthermore, the sampling period may be divided into multiple test intervals 282, 284, 286, 288, 290, such that network data 202 are sampled only during such test intervals 282-290. These test intervals 282-290 may be defined, for example, as 30 samples or packets per second or 50 samples/packets per second. The total size of source content elements or data flows sampled generally is the summation of the sizes of related elements sampled during these test intervals 282, 284, 286, 288, 290. 
The embodiments of the present invention may also apply when a sampling period 298 is extended over a long period, for example, over several seconds. Such a sampling period 298 may also have varying and/or big gaps between test intervals 282-290. For example, a sample period 298 may extend over five seconds, wherein there are test intervals defined in the first, third, and fifth second, but no test intervals between the second and fourth second. In other embodiments, there may be one sampling period 298, wherein such a sampling period 298 contains only one test interval, and wherein that test interval is the same size as the sampling period 298. Furthermore, variations, on the manner of defining a sampling period 298 and/or defining test intervals 282-290 are expected and still be within the scope of the present invention. 
As mentioned, the QOSDP module 250 is designed to categorize the various source content elements received during a sampling period 298 into one or more categories or data flows 252, 258, 260, 262. For example, data sampled that are identified as part of AV1 source contents (elements) 208, 216, 224, FTP1 source content 230, WEB1 source contents 210, 218, and WEB3 source content 226 are accordingly grouped and their total sample sizes accumulated as shown. In this example, although WEB2 data elements 214, 222 are part of the network data 202 received by the intermediate node 270, WEB2 elements 214, 222 are not sampled during this exemplary sampling period 298. Furthermore, other source content elements (282, 204, 206, 212, 220, 228, portion of 290) are shown not sampled during this exemplary sampling period 298.  
In other words, each of one or more data flows read by the QOSDP module 250 is associated with a flow size, each of one or more categories is associated with a category size. The QOSDP module 250 is adapt to accumulate the flow size of each read data flow into the category size associated with said read data flow.
In some embodiments, a source content is transmitted as one or more packets. In this embodiment, the QOSDP module 250 reads the one or more packets 282, 284, 286, 288, 290 received at the intermediate node 270 during the sampling period 298 and accordingly extracts or reads from each packet the header information. From the packet header information, each packet is categorized, based for example, to which data flow the packet may be associated or related. In some embodiments, the QOSDP module 250 may categorize the various packets, for example, by their unique packet header fields, such as EtherType, Source Internet Protocol (IP) address (source address), Destination IP address (destination address), source Port, and Destination Port. EtherType is typically a field indicating the protocol being applied to transport the packet. In some embodiments, a data flow is a stream of correlated packets originating from a specific source and being delivered to one or more destinations. Typically, these flows have the same source and destination address, and other criteria in common, originating from a single session and/or multicast session. In other embodiments, the packets are correlated if they are based on or are associated with the same source content, e.g., all sampled AV1 packets 208, 216, 224 are grouped under the same data flow or category, e.g., represented by STREAM(1). Typically, the manner of categorizing the network data 202 to one or more data flows may depend on the protocol being employed in transmitting the network data 202. In such embodiments, the QOSDP module 250 may have the various logic and/or processes built-in so as to enable the QOSDP module 250 to read network data 202 and accordingly categorize, which may include parsing and extracting data from the network data 202, to particular data flows or categories.  
In addition, the total size or byte counts of the exemplary grouped sampled AV1 data (AV1 packets, AV1 elements) 208, 216, 224 are also accordingly accumulated or added together, for example, under a total bytes variable per category- STREAMBYTE(1). The variable STREAMBYTE(1) may contain, for example, the value of the byte counts of the first sampled AV1 packet 208 + byte counts of the second sampled AV1 packet 216 + byte counts of the third sampled AV1 packet 224. In general, related packets or source content elements are thus grouped into a common category and their sizes accumulated. For example, the sampled FTP1 packet 230, the sampled WEB1 packets 210, 218, and the sampled WEB3 226 packet are all categorized under respective categories, e.g., represented by STREAM(2), STREAM(3), and STREAM(4) categories, and their total byte counts for each category or group are also accumulated under exemplary variables, e.g., STREAMBYTE(2), STREAMBYTE(3), and STREAMBYTE(4), respectively. The accumulated byte count, STREAMBYTE(i), for the identified data flow or category, in some embodiments, may be used as a basis or indicator of the average sampled bandwidth for that data flow. Such an average sampled bandwidth, in some embodiments, may be based on having a sample size that may be deemed statistically significant. A sample size may be deemed statistically significant using conventional statistical or mathematical algorithms or formulas. In other embodiments, the QOSDP module 250 may be configured to sample a defined sample size. This defined sample size may be preconfigured and/or dynamically be changed. In other embodiments, a confidence test formula may be applied. 
In some embodiments, the total size or byte counts (one or more categories or data flows) 252, 258, 260, 262 of all sampled packets during that sample period 298 may also be maintained or kept track of, for example, in a variable or memory location exemplified and called herein as TOTAL_SAMPLED_BYTES 244. The byte count of each packet may relate to the entire packet size, which includes header and payload information, for example. In other embodiments, the sample byte counts may relate only to the size of the payload area of each packet. In this example, the value of TOTAL_SAMPLED_BYTES may be obtained by adding STREAMBYTE(1) + STREAMBYTE(2) + STREAMBYTE(3) + STREAMBYTE(4). Once categorized and total category sample size for each category is determined, the QOSDP module 250 may then determine which of these data flows or categories are then accordingly designated for QOS processing. 
In general, the QOSDP module 250 has access to information that indicates both header size and payload size. In some embodiments, this information may be obtained by directly reading the packets. In other embodiments, such information may be obtained via a hardware support, e.g., an interface chip that may have a hardware register that indicates or measures the physical packet length. A sample size thus may be based on total packet size, but preferably payload packet size. The full or entire packet size, however, is typically used to determine the total bytes per second on the LAN 150, or total bytes received in the sampling period 298.
FIG. 3 is another exemplary diagram 300 showing a high-level data flow of an embodiment of the present invention. Network data 202, which may include a number of different source content data or data flows, received by an intermediate node 270 are sampled every sampling period 302 by the QOSDP module 250. The sampling period 250, e.g., when to perform or the duration of the QOSDP process described herein, may be user-, programmatically-, and/or manufacturer-defined. The sampling period 302 may also be changed based on certain conditions, such as network conditions or resources available at the intermediate node 270. In some embodiments, the sampling period 302 may be based on the number of packets sampled from the inbound network data 202 over time, which may be based on processing resources available. 
An intermediate node 270 of the present invention may include a QOSDP module 250 and an intermediate node processing module 316 assigned to perform the conventional functions of this intermediate node. For example, if this intermediate node 270 is an Ethernet to PLC adapter, the intermediate node processing module 316 is adapted to perform conventional Ethernet to PLC adapter functions, as well as the QOSDP module 250 processes described herein. Typically, these modules 250, 316 may communicate with each other via a shared memory, a data line, a bus, dedicated signal paths, or one or more channels 350. Furthermore, these two modules may be embodied in hardware, as a set of program instructions, e.g., software, or both, i.e., firmware. Other modules may also be included, e.g., a communication module 340 adapted to enable the intermediate node 270 to communicate via the network. Other modules may also be included, not shown, which may depend on other functions of the intermediate node 270.
The QOSDP module 250 categorizes the sampled network 202 data to one or more categories or data flows, and provides some level of QOS to data flows categorized as QOSDP QOS data 330. Data designated as QOSDP QOS data 330 and those that are not, i.e., non-QOSDP data 320, are then accordingly transmitted via the network 360, so as to be transmitted to the designated receiving or client destination. Furthermore, once the header is extracted and/or network data 202 identified, network data 202 processed by the QOSDP module 250 may immediately be available to the QOS classifier 318, which may be embodied as part of the intermediate node processing module 316. For those source contents identified as QOSDP QOS data 330, the QOSDP module 250 also may request QOS (QOS request) 334 to be assigned to that particular data flow or category.
Non-QOSDP data 320 are those network data 202 that have been categorized by the QOSDP module 250 as not to be provided specialized QOS handling according to the embodiments of the present invention. These non-QOSDP data 320 of the network data 202, however, may have been received by the intermediate node 270, particularly by the QOSDP module 250, with previous QOS or priority-handling services defined in their header. In some embodiments, these non-QOSDP data 320 may have been previously designated with best effort service. These non-QOSDP data 320 are thus typically provided the same service as they would have been provided if they did not undergo processing by the QOSDP module 250 of the present invention. These non-QOSDP data 320 thus are not assigned any QOS handling or processing of the present invention. No QOS requests are transmitted by the QOSDP module 250 on behalf of such non-QOSDP data 320.  
FIGS. 4A and 4B together illustrate a high-level flowchart of an exemplary QOSDP process 400 according to an embodiment of the present invention. In general, this QOSDP process 400 may be triggered by a monitoring module, not shown, that may be adapted to control when the sampling of the network data is to occur and/or the duration of the sampling period. In some embodiments, the monitoring and the triggering of the QOSDP process are embodied within the QOSDP module itself. The QOSDP process may also be triggered on-demand.  
In general, a check is made if a new sampling period has occurred or needs to be triggered, e.g., it may be based on whether a scheduled time has arrived (step 404). During this sampling period, the QOSDP module 250, with or without interfacing with the intermediate node processing module 316, in general, reads or samples network data 202 received by this exemplary intermediate node 270 via the appropriate interface(s) provided in the intermediate node 270 (step 408). In some embodiments, such interface is at the PHY and/or media access control (MAC) level. For illustrative purposes, let us assume that the sampled data are in packets. 
The network data 202 is thus sampled and the header information of each sampled packet is then extracted (step 410). Based on the extracted or read header information, the various sampled packets are accordingly categorized or grouped into their respective categories or data flows (step 412), e.g., in a STREAM(i), in an array, in a data structure, or via other processes of categorizing such data. Furthermore, the byte count of each sampled packet is accordingly accumulated based on category (step 420), e.g., into an appropriate variable STREAMBYTES(i). Such a sampled byte count, as mentioned, may be the payload byte count or the entire packet byte count. The reading of the network data 202 (step 408), extraction of header information (step 410), identifying the data flow or category (step 412), and byte count accumulation (step 420) are typically repeated until the end of that sampling cycle. Typically, sampled data are transmitted to the next destination, e.g., receiver or another node in the network, immediately after determination of their category or data flow and their byte counts (not shown). At the end of that sampling period (step 424, “yes” branch), for each source content category or flow, a QOS determination process (step 428) is then performed.
FIG. 4B illustrates an exemplary process 428 of this QOS determination process, which in general, may include performing a calculation for each category or data flow to determine an estimated total average bandwidth (estimated average bandwidth ; estimated average data flow bandwidth) that may be required by such source content or data flow. In some intermediate devices, for example, such as PLC adapter for AV over Internet Protocol (IP) designed to transport AV traffic over a LAN, there is typically a high probability that any network data stream that exceeds a predetermined bandwidth value over the sampling period is streaming AV content. 
The estimated average bandwidth attributed to any single stream or data flow category, e.g., represented as a BW(i) variable, may be defined as (step 430):
BW(i) = (TOTAL NUMBER(#) OF BYTES RECEIVED IN SAMPLING PERIOD /
SAMPLING PERIOD) * (STREAMBYTES(i) / TOTAL_SAMPLED_BYTES)
In other words, in the expression above, the estimated average bandwidth may be defined as (a total size of the network data 202 received divided by the sampling period 298) multiplied by (the category size associated with the category divided by total sampled size).
The total average bandwidth observed during the sampling period may be obtained by dividing the total number of bytes received by the intermediate node 270 during the sampling period divided by the sample period duration. This total number of bytes received during the sampling period may include sampled and non-sampled data received during this sampling period, e.g., all data packets received between the start 296A and end 296B of the sampling period. Typically, the total number of bytes received considers or is based on the entire packet size or total byte count for all packets received in the sampling period, which may include header and payload area, for example. In some embodiments, the total number of bytes received during the sampling period may be maintained as part of the conventional processing of the intermediate node processing module 316. In this embodiment, the total number of bytes received during the sampling period may be queried by the QOSDP module 250 from the intermediate node processing module 316. 
If the estimated average bandwidth for that data flow/category, BW(i), is greater than a defined threshold, AV_THRESHOLD, (step 432, “yes” branch) the source content or data flows associated with that average bandwidth is then assumed to be an AV stream and is assigned and defined to be a QOS data 330 (step 448), meaning that packets associated or conforming to such data flow or category, e.g., based on header information, are to be accordingly provided QOS, if possible. In other embodiments, the QOSDP module 250 samples packets over several sampling periods, for example, to ensure that the BW is generally maintained for a period of time, prior to testing whether the bandwidth of a particular data category exceeds the average threshold (step 432). 
The QOSDP module 250 in addition may request AV QOS status (QOS request) 334 from the network for this designated data flow (step 448), for example, based on unique packet header information. Future incoming network data that is associated with this category or data flow may thus be accordingly provided QOS. For example, if BW(1) is greater than the defined AV_THRESHOLD and BW(1) is associated with AV1 data 252, AV1 data packets conforming to the same data flow or header information are requested QOS priority handling (QOS request) 334. In some embodiments, the QOS requirements or specification of the AV source content that crosses the intermediate node 270 may be known or be derived from the AV data flow itself. In some embodiments, the QOS requirements, e.g., reserved bandwidth, maximum jitter, error rate, and/or maximum latency period, may be configured in the intermediate node 270 of the present invention, such that the QOSDP module 250 is able to determine the level of QOS service to request for such a data flow. For example, such QOS parameters or requirements may be preconfigured, which may be based on data flows or data categories. In some embodiments, one or more sets of QOS parameters may be predefined or preconfigured in the intermediate node 270. Such a set of QOS parameters may also be dynamically changed and/or be user-configured. In other embodiments, there may be several sets of QOS parameters that may be selected or applied based on one or more conditions, e.g., the amount of BW detected. 
In some embodiments, the defined average threshold, AV_THRESHOLD, may be based on the AV data type. For example, high definition AV data may be defined to have AV_THRESHOLD of 12 megabits per second (Mbps), while regular non-high definition AV data may be defined to have AV_THRESHOLD of 2 Mbps. The values listed are for exemplification purposes. Other AV_THRESHOLD values may also be defined and implemented. In some embodiments, the system 100 may be adapted to have multiple AV_THRESHOLD(s), depending on certain conditions, such as user expectation input, current network traffic, arrival time distribution, and/or detected network management traffic. Such AV_THRESHOLDs may be stored in a table or a database or be programmatically defined, for example. 
A QOS request 334, for example, in a PLC network may be implemented by having the QOSDP module 250 define a connection specification for such a data flow or category and specifying parameters defining or configuring a manner in which such data flows coming in through the intermediate node 270 are to be handled. A QOS request 334 may be sent to the MAC and/or PHY layer as a command, for example. QOS classifiers 318 and/or policy databases, for example, may accordingly also be updated based on such QOS requests 334. On the other hand, if the average bandwidth for that data flow or category is not greater than a defined threshold (step 432, “no” branch), the source content or packets associated with that data flow are not provided any special handling, e.g., such data flow/category is defined as non-AV data or non-QOSDP data (step 452) thus typically requiring no QOS handling of the present invention. These non-AV data are typically handled as if they did not undergo the QOS processing of the present invention. 
Variables or memory locations used in this exemplary calculation may then be reset or cleared so as to prepare for the next sampling period and calculation (steps 462 and 464). The QOSDP process 400 described herein may be repeated at the next cycle.
It is possible that the QOSDP module 250 may incorrectly identify a non-AV data flow as AV data (step 448), according to the process described herein. This error, however, may typically be tolerated or acceptable due to the expectation that the exemplary intermediate device or node 270 of an embodiment of the present invention may be in a LAN configuration where there is a high probability that high bandwidth streams are AV streams. Furthermore, although granting or requesting AV QOS to an incorrect type of traffic or network data 202 may steer resources away from other subsequent or incoming AV streams, such diversion of resources typically occur only for the duration of the incorrectly identified data flow. Most of the incorrectly identified data flows, if non-AV data, are typically of relatively short duration, such as image downloads and file transfers. The duration of these data flows are typically on the order of a few seconds to a few minutes where AV streams or source contents are typically of a longer duration, such as in the order of hours. Granting or requesting QOS to an incorrect type of traffic or network data 202 is an error that may be acceptable to provide a low-complexity and/or a typically inexpensive intermediate node 270 of the present invention. Such an error may further be alleviated, particularly, if the intermediate node 270 is located in the network such that the intermediate node 270 is directed to receive and transfer network data 202 to potential rendering devices, e.g., those adapted to perform personal video recording or presenting type of functions.  
The intermediate node device of the present invention may be adapted so that said QOSDP module is further adapted to categorize said read one or more data flows based on a set of header information of said read data flow.
The intermediate node device of the present invention may be adapted so that said header information comprises a protocol type, a source address, a destination address, a source port, and a destination port.
The intermediate node device of the present invention may be adapted so that each of said read one or more data flows is associated with a flow size, wherein each of said one or more categories is associated with a category size, and wherein said QOSDP module is further adapted to accumulate said flow size of each read data flow into said category size associated with said read data flow.
The intermediate node device of the present invention may be adapted so that each of said read one or more data flows is associated with a flow size based on a payload size.
The intermediate node device of the present invention may be adapted so that the QOSDP module is further adapted to determine a total sampled size based on accumulating all of said each category size associated with said one or more categories, and wherein said determined estimated average data flow bandwidth for said category is based on (a total size of said network data received divided by said sampling period) multiplied by (said category size associated with said category divided by said total sampled size).
The intermediate node device of the present invention may be adapted so that said total size of said network data received is based on an entire packet size, comprising packet header and packet payload.
The system of the present invention may be adapted so that said intermediate node device further comprises a network adapter processing module adapted to process said set of network data from a first network type to a second network type.
The system of the present invention may be adapted so that said first network type is Ethernet and said second network type is PowerLine Communication.
Embodiments of the present invention may be used in conjunction with networks, systems, and devices that are adapted to employ intermediate nodes. Although this invention has been disclosed in the context of certain embodiments and examples, it will be understood by those of ordinary skill in the art that the present invention extends beyond the specifically disclosed embodiments to other alternative embodiments and/or uses of the invention and obvious modifications and equivalents thereof. In addition, while a number of variations of the invention have been shown and described in detail, other modifications, which are within the scope of this invention, will be readily apparent to those of ordinary skill in the art based upon this disclosure. For example, one of ordinary skill in the art of programming may perform the exemplary processes described herein in a different order, use different memory locations and variables- e.g., as linked lists, data structures, and/or separate variable locations, and/or modify the steps performed, and yet still be in the scope of the present invention. It is also contemplated that various combinations or subcombinations of the specific features and aspects of the embodiments may be made and still fall within the scope of the invention. Accordingly, it should be understood that various features and aspects of the disclosed embodiments can be combined with or substituted for one another in order to form varying modes of the disclosed invention. Thus, it is intended that the scope of the present invention herein disclosed should not be limited by the particular disclosed embodiments described above.
[BRIEF DESCRIPTIONS OF THE DRAWINGS]
The embodiments of the present invention are illustrated by way of example and not limitation in the figures of the accompanying drawings, and in which:
FIG. 1 is a high-level block diagram of an exemplary data communication system according to an embodiment of the invention;
FIG. 2 is a high-level block diagram representing streaming network data with a representation of a sampling cycle, and a process that may be performed on such data, according to an embodiment of the invention;
FIG. 3 is a high-level data flow illustrating a manner of assigning quality of service (QOS) to a data flow, according to an embodiment of the invention; and
FIGS. 4A and 4B together illustrate an exemplary process of a Quality of Service determination and processing module, according to an embodiment of the invention.
[REFERENCE NUMERALS]
100   System
152, 154, 156, 158   intermediate node (intermediate node device; network adapter processing module)
270   intermediate node (intermediate node device)
340   communication module
250   Quality of Service Determination and Processing (QOSDP) module
1.    A method of providing quality of service in a network, the method comprising the steps of:
receiving, within a sampling period, a set of network data comprising one or more data flows;
reading, from said network data, one or more data flows within said sampling period;
categorizing said read one or more data flows into one or more categories, wherein each of said read one or more data flows is associated with a category from said one or more categories; and
for said each category of said one or more categories:
determining an estimated average data flow bandwidth for said category based on said one or more data flows associated with said category; and
if said determined estimated average bandwidth for said category is greater than a defined threshold then requesting quality of service for said category.
2.    The method of claim 1, wherein the step of categorizing is based on a set of header information of said read data flow.
3.    The method of claim 2, wherein said header information comprises a protocol type, a source address, a destination address, a source port, and a destination port.
4.    The method of claim 1, wherein each of said read one or more data flows is associated with a flow size, wherein each of said one or more categories is associated with a category size, and wherein the step of categorizing further comprises accumulating said flow size of each read data flow into said category size associated with said read data flow.
5.    The method of claim 4, wherein each of said read one or more data flows is associated with a flow size based on a payload size.
6.    The method of claim 4, wherein a total sampled size is based on accumulating all of said each category size associated with said one or more categories, and wherein said determined estimated average data flow bandwidth for said category is based on 
(a total size of said network data received divided by said sampling period) multiplied by (said category size associated with said category divided by said total sampled size).
7.    The method of claim 6, wherein said total size of said network data received is based on an entire packet size, comprising packet header and packet payload.
8.    The method of claim 1, wherein said defined threshold is 12 megabits per second.
9.    An intermediate node device adapted to be connected to one or more devices via a network, comprising one or more network segments, the intermediate node device comprising:
a communication module adapted to enable said intermediate node device to communicate to said one or more devices via said network; and
a Quality of Service Determination and Processing (QOSDP) module adapted to:
receive via said network, within a sampling period, a set of network data comprising one or more data flows;
read, from said network data, one or more data flows within said sampling period;
categorize said read one or more data flows into one or more categories, wherein each of said read one or more data flows is associated with a category from said one or more categories; and
for said each category of said one or more categories:
determine an estimated average data flow bandwidth for said category based on said one or more data flows associated with said category; and
if said determined estimated average bandwidth for said category is greater than a defined threshold then request quality of service for said category.
10.   The intermediate node device of claim 9, further comprising a network adapter processing module adapted to process said set of network data from a first network type to a second network type.
11.   The intermediate node device of claim 10, wherein said first network type is Ethernet and said second network type is PowerLine Communication.
12.   A system comprising:
a network comprising one or more network segments;
an intermediate node device adapted to be connected to a rendering device via said network, the intermediate node device comprising:
a communication module adapted to enable said intermediate node device to communicate to said one or more devices via said network; and
a Quality of Service Determination and Processing (QOSDP) module adapted to:
receive via said network, within a sampling period, a set of network data comprising one or more data flows;
read, from said network data, one or more data flows within said sampling period;
categorize said read one or more data flows into one or more categories, wherein each of said read one or more data flows is associated with a category from said one or more categories; and
for said each category of said one or more categories:
determine an estimated average data flow bandwidth for said category based on said one or more data flows associated with said category; and
if said determined estimated average bandwidth for said category is greater than a defined threshold then request quality of service for said category; and 
said rendering device adapted to receive said set of network data. 
13.   The system of claim 12, wherein said first network type and the second network are identical network types.
[Abstract]The embodiments of the present invention provide for methods, devices, and systems for providing quality of service to network data that is received by an intermediate node in a local area network. In some embodiments, network data is categorized based on data flow, and based on such data flow, determining whether such flow exceeds a threshold. If the flow exceeds a threshold, such data flow is accordingly provided quality of service. 
[Representative Drawing]Figure 3
【図１】
2008236742.tif 000008
【図２】
2008236742.tif 000009
【図３】
2008236742.tif 000010
【図４Ａ】
2008236742.tif 000011
【図４Ｂ】
2008236742.tif 000012