JP4870819B2 - ネットワーク・トラフィック・コントローラ - Google Patents

ネットワーク・トラフィック・コントローラ Download PDF

Info

Publication number
JP4870819B2
JP4870819B2 JP2009536489A JP2009536489A JP4870819B2 JP 4870819 B2 JP4870819 B2 JP 4870819B2 JP 2009536489 A JP2009536489 A JP 2009536489A JP 2009536489 A JP2009536489 A JP 2009536489A JP 4870819 B2 JP4870819 B2 JP 4870819B2
Authority
JP
Japan
Prior art keywords
network
host
data
packet
interface controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2009536489A
Other languages
English (en)
Other versions
JP2010519785A (ja
Inventor
ラマクリッシュナン,ハリラマナザン
ホワイトヘッド,ブライアン・エイ
アザロフ,マクシム・エイ
ウィンチェスター,ニール・エイ
チーチ,ウィリアム・アール
Original Assignee
スタンダード マイクロシステムズ コーポレーション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by スタンダード マイクロシステムズ コーポレーション filed Critical スタンダード マイクロシステムズ コーポレーション
Publication of JP2010519785A publication Critical patent/JP2010519785A/ja
Application granted granted Critical
Publication of JP4870819B2 publication Critical patent/JP4870819B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/239Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
    • H04N21/2393Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/4104Peripherals receiving signals from specially adapted client devices
    • H04N21/4108Peripherals receiving signals from specially adapted client devices characterised by an identification number or address, e.g. local network address
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Description

一般に、本発明はコンピュータ・ネットワーク、特にネットワーク・デバイスのデザインに関する。
パーソナル・コンピュータ(PC)は最近、オフィスとホームの両方で広く使用される電子装置の巨大な配列の一部としてテレビ、ハイファイ・ステレオ設備、およびコンパクトディスクプレーヤに加わった。また、エレクトロニクス市場では、他の広く使用された記憶媒体を使うデバイスに加えて、アプライアンスとソリッド・ステート・メモリを使用する個人的な消費者電子機器が激増している。いくつかの、より人気がある消費者電子機器がビデオカメラ、フォトカメラ、携帯情報端末、携帯用の音楽デバイス、セットトップ・ボックスと同様に、ハイデフィニッション(HD)テレビ・システム、およびディジタルレコーダを含んでいる。このようなデバイスの激増は電子機器、パーソナル・コンピュータ、および/または、セットトップ・ボックスの間データを転送するための接続性とネットワーキングの重要性をもたらした。
また、それぞれが高速の簡単な接続を提供することを目指して、PCI(周辺装置相互接続)などの内部バスの仕様に加えて、コンピュータと外部の周辺機器を接続するための様々なインタフェイス標準が導入されてきた。そのような標準の例はまた、ファイヤラインと呼ばれたIEEE1394標準、およびUniversalSerialBus(USB)(両方の高速シリアルバスプロトコル)を含んでいる。ローカル・エリア・ネットワーク(LAN)とワイドエリアネットワーク(WAN)の両方でコンピュータを接続する最も広く使用されたネットワーク標準はイーサネットプロトコルである。より詳しく述べると、イーサネットはIEEE802.3シリーズ標準である、元々2つ以上のコンピュータステーションが一般的な配線システムを共有する手段を提供した衝突検出メソッドを有するキャリア・センス・マルチプル・アクセス(CSMA/CD)に基づいている。CSMA/CDは、メガビット範囲、すなわちMビット/秒の転送速度に達するイーサネットシステムの標準を形成している。最近のスイッチ型ベースの、および/または、ルータベースのイーサネットシステムはギガビット/範囲転送レートをサポートできる。イーサネットは、一般に共用資源を効率的に使用し、再構成し、維持することが、通常簡単であり、コストを低く維持している間、多くのメーカーとシステムに対してコンパティビリティを提供する。
しかしながら、一般に、HDテレビや、セットトップボックスやデジタル式ビデオ録画再生装置(PVRs)などのオーディオ/ビデオ(AIY)消費者娯楽システムは高品質の高解像プログラミング・コンテンツを標準ネットワーク、例えばIEEE802.3イーサネット標準、IETF(InternetEngineeringTaskForce)、および/または、RFC(Request For Comments)対応プロトコルなどを介して配信/受信するために最適化されていない。このことは広帯域のイーサネット接続に対して典型的に当てはまる。クローズドネットワーク特殊目的イーサネットスイッチを含むからオープンネットワークへの移行が、娯楽システムの発における問題の1つでありそれは、高品質/解像度のA/Vプログラミングコンテンツの配信に必要なレベルを維持しつつの移行であった。標準イーサネット・コントローラを利用して、帯域幅ローカルバス上でリアルタイム・ストリーミング・データを移動させている間に、望ましい性能水準を得ることがますます困難になっている。さらに、イーサネットネットワーク要素を使用する製品の高い価格が、手頃なコストでシステムを組み立てることを困難にしている。
デジタル衛星、ケーブルの、そして地上で専用の、特定目的の伝送システムのようなデータ伝送モデルおよび/またはアプローチを使用するとき、リアルタイムと非リアルタイムオーディオ/ビデオデータの送信に特有の複雑さは問題を提示しない。ディジタル衛星、ケーブル、および他の独占的で、専用の伝送システムは「クローズドネットワーク」であると通常考慮される。一般に、「クローズドネットワーク」は、ここでは、公衆には利用できない仕様に基づいたソリューションを意味する。その専用のソリューションは、通常個々のメーカーまたはメーカー・グループに時間と資源を提供して、望ましい性能目標を実現できる特殊なソリューションを作り上げるが、通常、そのようなソリューションは競合製品とともに共同利用されることはない。独占的で専用のソリューションの例は、ケーブルTV(CATV)ネットワーク、公衆交換電話網(PSTN)上でのディジタルビデオ放送、および/または、総合デジタル通信網(ISDN)、衛星マスター・アンテナ・テレビ(SMATV)配システムネットワークを介したディジタルビデオ放送を通常含んでいる。専用ネットワーク標準が、さまざまな物理的かつ転送のモデルのために、DVB-ETSI(欧州電気通信標準化機構)などの標準化団体の下で定義されている。総合的なコンテンツ配信システムは、ケーブルビジョン(Cable Vision)、コムキャスト(Comcast)や、ダイレクトテレビ(Direct TV)などの広帯域網プロバイダーによって通常制御される。広帯域網プロバイダーはそのようなシステムで使用される、ハードウェア、ソフトウェア、およびプロトコルを通常決める。
対照的に、「オープン」ネットワークでは、ハードウェア、ソフトウェア、および対応するプロトコルはよく知られている標準によって異なったメーカーから容易に利用可能なソリューションですべて定義される。一般に、そこでは、そのようなソリューションがお互いと共同利用できる。オープン・ネットワークは、共用ネットワークであコンテンツの配信に共用ネットワークを利用する、サービスおよびコンテンツプロバイダーが潜在的に多数存在する。前述したように、オープンネットワークの1つの実施例がIETFである。そのIETFはインターネットの操作、運用、および展開を調整して、ショートレンジミッドレンジのプロトコルおよび構造的な問題を解決すると言う目的を持つ、ネットワーク設計者、オペレータ、ベンダ、および研究者の大きくて、開いているコミュニティである。オープン・ネットワーク・プロトコルは国際標準化機構(ISO)ネットワークモデルに基づいてにされている。一般に、どんなオープン・ネットワークにも、オープン・ネットワークを介して通信している一方で、使用るネットワーク・プロトコルによる追加オーバヘッドがある。多くの、あるいは、すべての現在のソリューションで、高品質と解像度A/Vプログラミング・コンテンツの処理している間には、オープン・ネットワーク・モデルをサポートするシステム・リソース(資源)を有していない。さらに、そのようなオープン・ネットワーク上で資源の提供を管理することは通常は困難である。
広帯域A/V配信は、セットトップ・ボックス(STB)およびパーソナル・ビデオ記録(PVR)デバイスを利用する衛星およびケーブル・サービスにより歴史的に実行されてきたので、配信の基本的な方法としてイーサネットを使用するA/Vコンテンツの普及は追加の課題を提供する。現在のA/Vソリューションは、インターネットウェブサーフィン、ビデオ・オン・デマンド(VOD)アプリケーションのためのリターンパスとして料金徴収システム、そしてホームでの狭帯域A/V配信などの活動のために1〜6メガビット/秒のデータ・レートでのイーサネット接続を一般的に使用している。高品質ビデオまたはオーディオ・コンテンツをストリーミングするための帯域幅要求は実質的により高い。例えば、1つのハイデフィニッション(HD)ビデオ・ストリームを達成するために、12〜60メガビット/秒のスループットのQOSが必要である。通常、このQOSの必要性はバッファリングと待ち時間で決定される。例えば、帯域幅の増強要求は、スイッチング・ビデオ・コンテンツ・チャンネルの間の遅延時間が「チャンルサーフィンしている」間にユーザによってされたチャネル選択の間のバッファリング遅延による平均許容時間超えたときに、増強QOSを必要とする。望ましくは、A/Vデータの配信は最小遅延安定したままでなければならない。既存のイーサネットソリューションで、通常、必要な性能水準を達成するのは非常に難しい。
一般に、さらに、STBおよび他の家庭用電子機器はコストに非常に敏感である。家庭用電子機器のバルクで含まれるほとんどの埋め込みプロセッサおよびハードウェア・ビルディング・ブロックは、通常、低いコストそして限定的性能(ミップス(MIPS)として通常参照される)である。メモリアクセススピードと、CPUスピードと、そして消費電力との間のトレードオフは全く普通である。たいていのシステム・デザイナーにとっては、追加のネットワーク処理オーバヘッドを伴うオープン・ネットワークへ移行することは、CPUのバンド幅がコア・アプリケーションに対して丁度十分であるとき、この標準のイーサネットコントローラをさらに、より高価なシステムによるソリューションへの移行を必要とするかもしれない。さらに、この追加ネットワーク・オーバヘッドでは、標準イーサネット・コントローラを利用することは、特に低コスト家庭用電子機器を目標とするとき、オープン・ネットワーク・ソリューションを可能にするために必要なパフォーマンスを与えないであろう。
リアルタイムおよび非アルタイムのビデオおよびオーディオのコンテンツを共有かつオープンのネットワーク上に転送する概念はさまざまな方法で取り扱われてきた。例えば、801.11a、bおよびgなどのワイヤレスによるソリューションはシェアド・アクセス・ローカルエリア・ネットワークのために考案されてきた。また、802.3 10/100/1000ベースTツイステッド・ワイヤ対コード化ソリューションなどの有線によるソリューションが考案されてきた。また、メディアアクセスとトランスポートレベルで多数のソリューションを説明する。これらのソリューションのいくつかはイーサネット802.3、ワイヤレス802.11a、b、g、および、他のソリューション(非同期転送モード(ATM)、シンクロナス・オプティカル・ネットワーキング(SONET)などのソリューション)を使用するメディアアクセスのメソッドを含んでいる。さらに、より高いQOSを達成するために様々なメソッドがある専用のソリューションにより取り扱われてきた。
1つのアプローチは“伝送プロファイル”の概念を含んでいる。そこでは、ネットワーク・システムおよびその参加者はネットワーク・パケットの付加情報を検出することによってパスを選択する。他の場合では、仮想ローカル・エリア・ネットワーク(VLAN)タグが利用されているか、またはATMが(仮想)パス識別子を利用して実施される。いくつかのソリューションはデータバンド幅割当てを実施する。そこでは、ネットワーク・システムが構築され、高速アクセスが周波数分割多重化チャンネル上で提供され、イーサネット・フレームおよび/または他のデータについてケーブル伝送ネットワーク上の伝送または他の形式のFDM転送を可能にしている。デバイスは様々なネットワーク・パケットのためにタイムスロット割当に基づく以前に定義された周波数チャネルにおける下の、そして、上流のバンド幅を通常割り当てる。転送で、多くの現在のソリューションがインターネットプロトコル(IP)を利用する。いくつかの場合、転送制御プロトコル(TCP)などの様々なコネクション型プロトコルが採用されている。
しかしながら、ほとんどの既存のシステムは、高品質で高解像度のA/Vプログラミング・コンテンツの配信に必要な性能水準を維持できるソリューションであって、広く使用されている標準のネットワーク・プロトコル(例えば、イーサネットプロトコル)の周に構築されたオープン・ネットワーク・ソリューションを提供しない。例えば、一般に、標準イーサネット・コントローラを利用する現在のシステムは、狭帯域幅ローカルバス上でのリアルタイム・ストリーミング・データの移動を許さないので、その結果、望ましい性能水準を達成しない。
先行技術に関連する他の対応する事項は本明細書に記載されるような本願発明と先行技術を比較した後に当業者には明らかになる。
実施例の1セットでは、HD(ハイデフィニッション)ディジタル・ビデオ・システムのためにイーサネット上での安全なデジタル・ビデオ・ストリーミングを可能にするために、ネットワーク・デバイスND)を構成できる。ネットワーク・デバイス(ND)は、少なくとも2モード、コプロセッサ・モード、およびスタンドアロン・モード、の1つで作動できて、少なくとも3つの高水準機能を提供できるネットワーク・インタフェース制御(NIC)、ビデオ・ストリーミング・オフロード(VSO)、および、スタンドアロンのビデオ・ストリーミング(SVS)。NICは標準ネットワーク・アクセスの機能性を含むことができ、VSOはコプロセッサ・モードにおける高帯域幅HDビデオ・ストリームのホストCPU制御オフロードを可能にし、そして、SVSはスタンドアロン・モードでのビデオ・ストリーミングを、外部のホストCPUによる介入なしで、可能にする。ネットワーク・デバイス(ND)に関連しているソフトウエアを2つの主なカテゴリに分割することができるネットワーク・デバイス(ND)上で構成された処理ユニット上で作動するコントローラ・ファームウェア、ホストプロセッサ(CPU)のために意図するホストソフトウェア。また、ネットワーク・デバイス(ND)は、強力なマスターDMA能力を備え、メモリ・トランザクションにおけるCPUのかかわり合いを減少させることができる。
1つの実施例では、基本的なレイヤ−2 イーサネットNICアクセスはNDネットワーク・ドライバによって提供され、そのNDネットワーク・ドライバは通常のNICインターフェイスを使用し得るように構成され、NDの拡張機能は指定されたNDアプリケーション・プログラミング・インタフェイス(NAPI)を介してアクセスされ得る。VSOの機能性をシームレスに実行するために、NDは、2つのTCP/IPスタックを有し、単一のイーサネットインタフェースで同期して作動するように構成されている。2つのTCP/IPスタックがデータ・トラフィックを共有し、ホストTCP/IPスタックはマスタとして作動し、そしてND TCP/IPスタックが指定したトラフィックをアクセプトするように構成し、その結果、NDで構成されたプロセッサへいくつかのデータ処理をオフロードする。NDイーサネット・システムはホストへの通常のネットワーク・コントローラとして現れユーザは、そのコントローラからMACアドレスを得るか、または設定するためにNDイーサネット・ドライバーを構成でき、物理層リンク速度および二重モードを構成し、マルチキャスト・フィルタ設定を構成し、そしてイーサネット・レベル・スタティスティクスを獲得しかつクリアできる。
また、NDは、パス・スルー・モードで動作して、すべてのイーサネット・パケットが、いずれのパケットもNDにおいて構成されたプロセッサにインターセプトまたはトラップされることなく、ホーストに達する、ことを可能にする。パス・スルー・モードでは、いかなるIPレベル処理なしで、イーサネットフレームを直接ホーストに送る。それは、例えば、ホーストがIPアドレスを持たないとき、またはブートアップ・プロトコルを使用したいとき、有効である。
多くの近代の商用システムでは、TCP(転送制御プロトコル)オフロード・エンジンまたはメディア・オフローディングは、TCP/IPスタックを有さないがマスタとして機能しかつTCP/IPスタックを有する別のプロセッサにメディア・トラフィックをオフロードする単一のプロセッサで実施される。しかし、他のシステムではプロトコル・ヘッダーを取り除いてデータをホストプロセッサにパスさせるネットワーク終端ポイントとして機能するオフロードコプロセッサを含む。そのようなソリューションの主な欠点の1つは、ホスト・プロセッサがオペレーティング・システムの豊かな特徴をフルに利用するように動作しないということである。ホストへのトラフィックが増と、通常、パフォーマンスに不利な条件は高くなる。対照的に、既存のオペレーティング・システム構造、例えば、ホストへのトラフィックをトンネルするというリナックス・ファイヤー・ウォール・アーキテクチャの特徴を使用するようにNDを構成することで、パフォーマンスに不利な条件を無視し得るようにでき、ホストの柔軟性を損なわないでオペレーティングシステムの豊かな特徴を利用しかつNDにおいて構成されたプロセッサにトラフィックのどの部分をオフロードすべきかを動的に決定できる。
添付図面を参照して、以下の詳細な説明を読めば、本発明の上記の、および他の目的、特徴、および利点をより完全に理解できる:
図1には、1実施例による、コプロセッサモードで作動してホスト中央処理装置からオフロード・ストリーミングをするネットワーク装置(ND)で構成されたビデオ/オーディオシステムのブロックダイアグラムである。
図2には、1実施例による、ホスト中央処理装置なしのスタンドアローンで作動するNDで構成されたビデオ/オーディオシステムのブロックダイアグラムが示されている。
図3には、1実施例による、図1および2からのND用のブロックダイアグラムが示されている。
図4には、1実施例による、ND用のトラフィック管理を示すブロックダイアグラムが示されている。 図5には、1実施例による、ND用トラフィック管理ソフトウェア構造のコンテキストにおけるデータフローの1例を示すブロックダイアグラムが示されている。
図5は、1実施例によるND用のイーサネットドライバー構成を示すダイアグラムである。
図6は、1実施例によるND用のパス・スルーモード構成を示すダイアグラムである。
本発明は、様々な修正や代替が可能であるが、特定の実施例が、図面に一例として示され、本明細書に詳細に記載される。しかしながら、図面と詳細な説明に開示した本発明の特定の形態に制限するものではと言うことが理解されるべきである。添付のクレームに定義されるように、本願発明の趣旨と精神の範囲内で、すべての修正や同等物ないし代替手段を含むと解すべきである。
「“may”という語は、必須の意味ではなく、使用し得るという意味で使用されることに注意されるべきであり」、「包含」という語やその派生表現は、は「包含など」を意味する。
この明細書で、「DWORD」、または「ダブルWord」は、32ビットのサイズデータワードを参照するのに使用される。
「ローカル・システム・メモリ」または「ローカル・メモリ」は、ホストシステムで含まれている中央処理装置および/または中央コントローラに、通常埋め込まれているか、直接インターフェイスされている。
「リモート・システム・メモリ」または「リモート・メモリ」は、ホストシステムに含まれているが、中央処理装置および/または中央コントローラに埋め込まれていないか、直接インターフェイスされておらず、ホストシステムと明確に区別できるものである。リモート・メモリは、ホストシステムで含まれる場合には、周辺装置に埋め込まれたメモリであり、ホストシステムに直接インターフェイスしない追加メモリとされる。
本明細書における、「リアルタイム」、「リアルタイムのデリバリ」、「実時間動作」、および/または、「リアルタイムのストリーミング」は、同じセットの信号の入力および/または出力が、連続的に行われ、システムへの入力信号(入力信号のセット)および/または対応する出力信号が(処理遅れは別にして)連続的に処理され生成されること示す。言い換えれば、入力信号は、システムによって受け取られているレートで処理され、対応する出力信号は、平均的に見て等しいレート出力される。
単語「ポート」がソフトウェア(例えば、アプリケーションソフトウェアやドライバソフトウェア)の文脈で使用される場合や、オペレーティングシステムの文脈で使用される場合には、「ポート」は、ネットワークシステム(例えば、TCP/IPや、UDPネットワーク)における論理結合へのエンドポイントを指称する。幾つかの実施例では、参照されているポートのタイプを特定するのに、「ポートナンバー」を使用できる。例えば、TCP/IP、および/または、UDPネットワークでは、ポートNo.80はHTTPトラフィックに使用される。他の実施例では、「ポート」は1つのインタフェースマッチを入手できるカプセル化ヘッダーフィールド値の組合せを表すことができる。
本明細書で「トランスポートストリームインタフェース」(TSI)は、特に基本のストリームから得られたデータパケットストリーム、サービス情報、プライベートデータ、および/または、限定受信制御の発信のために構成された専用インターフェースを参照するのに一般的な意味では使用される。データパケットストリーム(ビデオとオーディオストリームを含むことができる)を一緒に多重して、「トランスポートストリームインタフェース」上での信のために、「転送パケット」に変換できる。
多くの近代のシステムの特性には、最適化されていないネットワーク結合および/またはインタフェース(例えばIPインターフェイス、またはイーサネットインターフェイス)がある。ストリーミング・データなどあるタイプのデータ(リアルタイムビデオおよび/または音声データを含む)が、標準ネットワーク接続(例えば、イーサネット接続)上に送られるとき、例えば、ストリーミング・データが、意図しているデスティネーション(例えば、テレビのディスプレイまたはオーディオプレーヤーなどのレンダリングデバイス)に達するように、最初に、ホストCPU、または、多くの場合、ローカルバスメモリバスまたはI/Oバスの上に転送される。また、ストリーミング・データをフォーマットしてコピーするために、ホストCPUに加えて、バンド幅獲得のための回線争奪が同じバスに結合された他の機器との間で生じ得る。しかしながら、ホストCPUによる必要とされる処理を次のように先取りできる。つまり、送られたストリーミング・データへの追加的処理、および/または、フォーマットの実行からホストCPUを解放するために、コプロセッサへのストリーミング・データのオフロードによって、および/または、専用インターフェース(例えば、トランスポートストリームインタフェース)でホストCPUまたは目標のデスティネーションにストリーミング・データを送ることで、先取りできる。さらに、ホストCPUのためのネットワークの接続性の維持が、専用インターフェースを通しての、処理、および/または、送信/受信の一方で、可能とされると、オペレーティングシステムの豊かな特徴を、ホストCPUによる完全な利用を、好ましいことに可能にできる。
幾つかの実施例では、オーディオ/映像装置(例えば、HD(ハイデフィニッション)ディジタルビデオシステム)のためにイーサネットの上で安全なデジタルビデオ・ストリーミングを可能にするために、ネットワーク・デバイス(ND)を構成できる。NDは少なくとも図2のモード(コプロセッサモード)と、図2のスタンドアローンの何れかで作動できる。
NDは少なくとも3つの高水準機能を提供できるネットワークインターフェイス制御(NIC)、ビデオ・ストリーミングオフロード(VSO)、および、スタンドアロンのビデオ・ストリーミング(SVS)。NICは標準ネットワークアクセスの機能性を含むことができる。VSOは、コプロセッサモードにおける高帯域幅HDビデオストリームのホストCPU管理状態オフロードを可能にすることができる。SVSはスタンドアローンにおけるビデオ・ストリーミングを、NDへの外部のホスト・プロセッシング装置(以下、ホストCPUと呼ぶ)の介入なしで、容認することができる。
NDに関連しているソフトウエアを2つの大範疇に分割することができるND構成された処理装置(以下に、ND CPUと呼ばれる)で実行されるファームウェア、ホストCPUでの実行を意図するホストソフトウェア
大規模なマスタ直接記憶アクセス(ダイレクトメモリアクセス)能力で、メモリトランザクション中のCPUでの処理量を抑えるために図3に示すようにNDを構成できる。
図1は、ホームネットワーク/LAN(ローカルエリアネットワーク)192、およびディジタルビデオ方式(DV)190を含むことができるホストシステム(HS)100のコンポーネントとしてコプロセッサモードで作動するND162を構成できる1つの実施例を示している。DV190は、ハイデフィニッションオーディオ/ビデオ信号を含むことができる、オーディオ/ビデオ信号を、衛星152、および/または、アンテナ154を介して受け、チューナー158を通して受信信号からトランスポートストリーム(TS)を生成するように構成された、既に現存するさまざまなDVシステム、または新たに設計されたシステム1つであり得る。TSは、TSI入力168を通してデマルチプレクシング/フィルタリングをするSOC160に提供され、TSデマルチプレクシング/フィルタリングエンジン172を経由させられるTSIポート180を通してホームネットワーク/LAN192に、フィルタされたTSが、提供される。そこで、デジタル・メディアサーバ(DMS)として機能するND162は、リモートデジタル・メディアプレーヤー(DMP)166にフィルタされたTSを提供できる。オプションで、HDディスプレイ156上にビデオフロントエンド回路174を通してフィルタされたTSのビデオ部分を表示できる。SOC160はバス178を通してチューナー158を制御するか、または構成できる。そのバスは例えば2C busである。コンフィギュレーションと利用者アクセスのためSOC160とND162をともにホストバス184結合できる。
幾つかの実施例のセットでは、ND162はHTTP(ハイパーテキスト転送プロトコル)のストリーミングのオフロードをホストシステム100に提供でき、それにより、他の任務を扱うためにメインSOC(システム・オン・チップ)160が解放される。いくつかの実施例では、SOC160上で作業しながら2つのサンプル・アプリケーションを使用するND162へHTTPストリーミングのオフロードができる。したがって、コプロセッサモードで、ND162はSOC160のコンパニオンチップとして作動できる。SOC160が、DV190のすべてのタスク(例えば、ユーザインターフェース、ビデオのデコード、PIDフィルターなど)の実行をしている間ND162は、自然なパスをネットワークの接続性に提供するために、専ら、ストリーミングおよびネットワーク機能の実行を実現できる。コプロセッサモードでは、ND162はネットワークインタフェース・コントローラ(NIC)の機能性とビデオ・ストリーミングオフロード(VSO)の機能性の両方を提供できる。
NICの機能性は、ネットワーク・コントローラに予想されたサービス(例えば、ネットワークからのパケット受信およびネットワークへのパケット送信)をイーサネットの接続186を介して提供することを含むことができる。これは、非−ストリーミング・ネットワーキング能力を含んでいるDV190デザインの補足となるもので、ウェブ閲覧などの低バンド幅非−ストリーミングネットワーク通信タスクを、SOC160がND162を利用して行えるようにする。ND162のNICの機能性は、変を必要とせずにDV190内蔵のより高レベルのネットワークアプリケーションをそれらのDV190が使用可能となすために、NICドライバーレベルの標準のOS特有のインタフェースを提供できる。
VSOの機能性はHD(ハイデフィニッション)ビデオストリーム(または、他のタイプのビデオストリーム)をイーサネット186の上に送るか、または受けて、TSIポート180,182から(又は、ポート180,182に対して)それらのストリームを向ける能力を提供できる、その結果、DMP166へのDMSの機能性、および/または、DMS164へのDMPの機能性を提示し、DMS164とDMP166をネットワーク資源として機能させる。ある実施例では、VSOの機能性は、図1ではTSI入力ポート180とTSI出力ポート182として示されHDビデオSOCsの多くで利用可能な)標準のTSIポート(例えば、MPEG2 TSIポート)の使用で、これらのストリーミングの能力を可能にすることができる。例えば、イーサネット186を介してND162でDMS164から受けたHDストリームを、TSIポート182を通してSOC160に提供できる。SOC190はデコーダ176を通してHDストリームをデコードできる、そして、HDディスプレイ156、ビデオフロントエンド回路174を介してストリームのビデオ部分を表示できる。実施例(図示してない)によっては、イーサネット186で受信されたストリーミングデータは、ND162によって、代替のポートおよび/または追加のポート(TSI180/182以外)にルーティングされ、そのポートは、ND162からSOC160への結合ではなく、ND162を他の(代替のまたは追加)対象装置例えば、デジタル・メディアのプレーヤーまたはディスプレーデバイスに結合、それでデジタル・メディアのプレーヤーまたはディスプレーデバイスが、ストリーミング・データの元の目標のデスティネーションによるストリーミングのデータを解読できるようにできる。
SOC160のかかわり合いなしでND162ですべてのストリーミングのプロトコルと内容のプロテクション処理の実行を、VSOの機能性がSOC160の上のイーサネット186とTSIポート180/182の間のシームレスブリッジを提供可能となるように、行える。実施例によっては、ND162のVSOの機能性をホストシステム100のデザインとユーザインターフェースに結び付けるためにSOC160でコマンドアンドコントロールを実施できる。しかしながら、また、SOC160とND162で共同でコマンドアンドコントロールの機能性を実施できる、そこでは、ND162はSOC160から、より自主的に機能できる。ホストシステム100のニーズに基づいてND162が実行時間の間にSOC160と協力する方法がホストシステム100の最適性能を得るように、決定できる。同時にNICの機能性とVSOの機能性を(コプロセッサモードで)利用可能にすることができ、オフロードされるストリームが進行している間、SOC160には基礎的ネットワークアクセスが容認される。
代替の実施例は、図1と同じコンポーネントを含むのでなく、そして、図1のHS100が例のシステムであることに注意するべきであり、他の可能なコンポーネントは図1に示されていたコンポーネントと全く同じ機能を実行するのではない。一般に、図1はホストシステム(例えば、HS100)例であそこでは、ネットワーク・デバイスには特定のタイプのネットワーク(例えば、イーサネット186)にインターフェイスルするネットワークインタフェースまれ、ネットワーク・デバイス(例えば、ND162)の上で、第1インタフェース(例えば、ホストバス184)と第2インタフェース(例えば、TSI入力180とTSI出力182)を構成できる。ネットワーク・デバイスは、第1インタフェースおよび第2インタフェースを介して、ホスト処理装置(例えば、主なSOC160)とインタフェースするようになし、データを交換してNDのネットワークインタフェースを通してホスト・プロセッサ・ユニットの接続性をネットワークに提供するよう構成できる。実施例の1つでは、ホスト処理装置が第1インターフェイスを通したネットワークへのアクセス、およびネットワーク・デバイスのネットワークインタフェースへのアクセスしている状態でデータが同時に第2インターフェイスから送られるのを可能にするように、ネットワーク・デバイスとホスト処理装置構成される
スト処理装置とネットワーク・デバイスとは、それぞれネットワークと結合された2つの異なったデバイスとしてネットワークから又はへとデータを受信又は送信する能力を持双方は、同じネットワークアドレスを有していても、独自にネットワークから受け取られたデータを処理できる。さらに、ホスト処理装置とネットワーク・デバイス第2インタフェースの上で相互間でデータを転送できる一方で、ネットワークから又はへとデータを受けるか又は送る能力を持つことができる。さらにもう1つの実施例では、(図示せず)チューナー158をTSI180でND162と結合できる(つまり、TSI168がTSI180と一致するよう構成してチューナー158をND162に結合する)。その結果、直接チューナー158からストリーミングのデータを受けるよう構成され、イーサネット186へのネットワークの接続性をSOC160に提供できる。
スタンドアローンでND162を、図2に示すように使用でき、ND162は、システムの主たる処理手段(またはCPU)として使用できる。スタンドアローンモードでは、外部のホストシステムへ無接続よい。ND162は、それ自身でシステムとして作動できて、ホストから受けたコマンドに依存しない。したがって、IPコンフィギュレーション・アップロード、カスタムND162パケットフィルタリング規則を加えることも必要ないが、双方ともに、コプロセッサモードにおける二重ネットワーク・スタック構成では必要とされる。スタンドアローンでは、ND162のネットワークスタックしか使用されず、コプロセッサモードとは異なってHTTPストリーミングが扱われる。したがって、ネットワーク資源としてMPEG2 TSIポートを有するHDビデオチューナー159などのビデオ情報のローカル・ソースを使用できる。ND162は、チューナー159をデジタル・メディアサーバとしてネットワークに現させるように作動できる。ND162は、内蔵のバスインタフェイス178(いくつかの実施例ではI2 Cインタフェース)を使用することでチューナー159を制御できる。
図2は、DMSだけのシステムを示すが、スタンドアローン・モードは、外部の画像復号器によるDMPの使用を可能とする。言い換えれば、ND162は、DMP166との相互運用性を可能にしつつ、DMSなどのネットワーク資源としてチューナー159利用可能とする。ND162がPIDフィルタリングを実行しない実施例では、チューナー159からのマルチプログラム・ストリームを、ND162へと入力させる前にフィルターにかける必要があり得る。スタンドアローン・モードでは、ND162はスタンドアロンビデオ・ストリーミング(SVS)の機能性を提供できコプロセッサモードが利用可能なVSOの機能性と同様、ホストSOC制御装置なしで作動するように設計されている。さらに、スタンドアローン・モードでは、ND162はコンフィギュレーションおよび制御のためにウェブベースのユーザインターフェースを実行できる。
実施例の1つでは、ホストシステムはND162とSOC160によって構成されて、ミックスモードで作動できる、スタンドアローン・モードとコプロセッサ・モードの両方の特徴のいくつかが示される。再びミックスモードでは、ND162は、図1を参照して、SOC160からホストバス184を介してコンフィギュレーション情報とコマンドを受け取ることができる。しかしながら、ミックスモードでは、SOC160はネットワークスタックなしで作動でき、ND162は、NIC機能をSOC160に提供しないように構成できる。TSI180でストリーミング・データを、ND162に送信すようにSOC160を構成でき、そのND162は、イーサネットのインタフェース/接続性186で当該ストリーミング・データをネットワークに伝えることができる。また、同様に、ネットワークからイーサネットのインタフェース/接続性186でストリーミングデータを受信しTSI182でストリーミングデータをSOC160に送信するようにND162を構成できる。当業者は、SOC160とND162の両方の様々な動作面と特性を特定したので、SOC160とND162の間の相互作用の他の様々な方法が可能であることが解るであろう。例えば、OC160へのイーサネットのインタフェース/接続性186で受信されたストリーミング・データをND162が送信できることに加えて、ND162は、追加インタフェース(図示せず)を通してND162と結合できる他の目標へのイーサネットのインタフェース/接続性186で受信されたストリーミングデータ、および/または、他のデータを送信できる。
図3は、単一ネットワーク(例えば、IPまたはイーサネット)インタフェースで、少なくとも2つのネットワークスタック(例えば、TCP/IPスタック)を同期して動作可能に構成できるND162の1つの実施例のブロックダイアグラムを示している。ND162はネットワークインタフェース、ここではイーサネットインタフェース110、プロセッサ128、および、132aと132b(これらは、まとめてストリーミング・インタフェース・コントローラ132と呼ばれる)を含むことができる。また、ND162は、バスインタフェイス102a、102dを通して様々なバスにインターフェースするように構成でき、そして、メモリトランザクションにおける、プロセッサ128のかかわり合いを減少させるために直接記憶アクセス(ダイレクトメモリアクセス)エンジン138と外部記憶装置コントローラ124を含むように構成できる。ストリーミング・インタフェース・コントローラ132が、ストリーミングのデータのソーシングおよび/またはシンクを提供するように構成できる。ストリーミングのインタフェース・コントローラは、個々に2以上のコントローラを含む。ストリーミングのインタフェース・コントローラ132の各コントローラを個々にデータをシンクまたはソーシングするように構成でき、その結果、データストリームをND162によって送るルーティング、および/または、処理法についての汎用性が提供される。ND162の内部のコンポーネントを連結するために、内部のバス126(例えば、プロセッサ128がARMプロセッサであるとのAHB(高度な高性能バス))を構成できる。ホストとの通信はホストバスインタフェイス(HBI)コントローラ136を通して行うことができ、ビルトインIRQとパワーマネージメントがモジュール140と142で提供され得る。以前に述べたように、ND162が、ホストDSPプロセッサとして動作するプロセッサ128を有するスタンドアロンのネットワークプロセッサとして機能できるか、またはビデオトラフィックのための部分的なオフロードプロセッサとしてコプロセッサモードで外部のホストプロセッサに対して機能できる。
したがって、入来または送出されるHDビデオストリームが、ネットワークとストリーミング・インタフェースポートの間でイーサネットインタフェース110とストリーミングのインタフェース・コントローラ132を使用してブリッジされるように、ND162を構成できる。ストリーミング・インタフェース・ポートでは、データストリームを受ける(シンクする)か、または伝送する(ソーシングする)。そして、各ポートは、MPEG2 TSストリームのためのDVB/ATSC/ARIB SPI仕様、MPEG2 TSストリームのためのシリアルモード、および非−TSコンテントのためのフロー制御を有する拡張パラレルモード(extended parallel mode)を含むさまざまなストリーミング・モードをサポートするよう構成できる。MPEG2 TSモードでは、単一プログラムマルチデータMPEG2 TSストリームしかサポートできない。衛星から受け取られたものなどの複数のプログラムストリームは、ND162に入るまえにPIDフィルターにかける必要がある。ネットワーク側では、ND162は、ネットワークに行くローカルなビデオストリームのためのデジタル・メディアサーバ(DMS)、または、ネットワークで利用可能なビデオストリームのためのデジタル・メディアのプレーヤー(DMP)として、出現することができる。
DMPとDMSのサポートは、2つの異なった部分にそれぞれ分割することができる。
ストリーム転送とストリーム制御とに分割できる。
ある実施例では、HTTP1.1サーバとクライアントストリーム転送を表すことができ、UPnP A/Vメディアサーバ(UPnP MS)とUPnP A/Vメディアレンダラー(UPnP MR)でストリーム制御を表すことができる。ストリーム制御は、カスタマによって開発されるか、または他のシステムホストCPUランしている)に統合されている場合に、ND162のCPU128上、または、SOC160のホストCPU上で実行される。他の実施例では、転送と管理部分の両方がND162で動できる。例えば、ND162がスタンドアローンで構成されるシステムでは、すべてのストリーミングの支援ソフトウェアがND162のCPU128で動できる。ND162のために設計された指定されたアプリケーションプログラミングインタフェイス(本明細書でNAPIと呼ばれる)の一部、およびその関連ソフトウェアにストリーム転送とストリーム制御とのインタフェースを定義することができる。(以下に詳細に説明する)。一般に、図1において、VSO機能は、主なSOC160またはチューナー158上のTSIポートと、ネットワーク(この場合イーサネット186)の間のブリッジを提供するために作動できる。
実施例の1つは、ND162に関連しているソフトウェア2つのカテゴリに分割できる。第1のカテゴリは、プロセッサ128で動作するように設計されていて、ND162の中にあるすべてのコントローラファームウェアモジュールを包含できる。ND162が高性能を実現するハードウェア能力を利用するためにコントローラファームウェアを構成できる。第2のカテゴリは、HBIコントローラ136とホストバス184(追加されているインタフェースを含む)を介してND162に結合されたホスト(DV)システム190上のすべてのソフトウェアモジュールを含むホストソフトウェアを包含できる。ホストソフトウェアは、便利でフレキシブルNAPI(アプリケーションプログラミングインタフェイス)を提供するように設計される。以前に言及した、ND162は、3つの主要機能を提供できる。NIC(ネットワークインターフェイス制御)、VSO(ビデオ・ストリーミングオフロード)、および、SVS(スタンドアロンビデオ・ストリーミング)の3つが提供でき、NICとVSOがコプロセッサモードが利用可能である
ND162のNIC機能はホストシステム190にネットワークの接続性を提供できる。さまざまな異なったネットワークの1つに対して、ホストシステム(図1のHS100などの)のコンフィギュレーションとネットワークリクワイアメントに依存する接続性があってもよい。NDNIC機能は、NDホストソフトウェアに含まれたネットワークドライバーで一部が、NDコントローラファームウェアの一部(本明細書NTC(ネットワーク・トラフィックコントローラと呼ばれるもので一部が、実施できる。全体的に見て、NTCはネットワーク(イーサネット186などの)を通して受信したデータのオフローディングを容易にするために工夫された特別なソフトウェアモジュールを含むことができる。NDNIC機能とは、NICドライバーとしてホストに現れるが(以下も参照されたい)、本明細書に使用されるように、NICドライバーによって提供され機能性のND特定の実装に言及するである。
図4は、NDNIC機能の1つの実施例を示す図である。NTC571とネットワークドライバー570はHBIドライバー572と573のを使用するHBI576を通して通信できる。HBIは、示されているようにそれぞれホストソフトウェアとコントローラファームウェアの両方の一部であるかもしれない。ネットワークドライバー570はレイヤ2の接続性をホストに提供できる。それは、イーサネット186イーサネット186から、パケットを、送るか/受けるのに、NTC571を使用できる。したがって、ホストパケットの待ち行列レイヤとして、SOC160のために明確に意図しない、オフロードされるビデオストリーム578などのような入力パケットのためのフィルタとして、NTCモジュール571を構成できる。NDNIC機能は、VSO機能と相互作用して、NDスループット資源の分担を制御して、NDNIC機能に正しいスタティスティクスを提供できる。その結果、NDNIC機能で、オフロードされたビデオストリームパケット578SOC160から見えないようにでき、したがって、RX(受信)、TX(送信)、ドロップ、および他のスタティスティクスが、従って、調整できる。NDがコプロセッサモードで作動するとき、NDNIC機能は、VSO機能と同時に作動できる。
1つの実施例では、2つのネットワークスタックに同じネットワークアドレスを共有させることによって、同時にVSO機能NDNIC機能を実行するのを達成できる。
言い換えれば、2つのネットワークスタックは、相互に異なって、単一ネットワークアドレスに対応できる。例えば、同じIPアドレスに対応する2つのIPスタックを働かすように、ND NIC機能を構成できる。その上、また、2つのIPスタックが同じ物理的なイーサネットインタフェースを同じMACアドレスと共有できる(イーサネットインタフェースがネットワークに接続するのに使用されるとき)。したがって、ND NIC機能は、NDCPU128に対応するIPスタックが一貫したステータスを有し且つSOC160のIPスタックを妨げないと言うことを、確実にするのに使用できる。VSO機能をイネーブルにするために、ホストは、フィルタリングをイネーブルにし、TCP/UDPポート競合を防ぐために追加コンフィギュレーションを行わなければならない。
コプロセッサモードにおいては、VSO機能はNDスタートアップでデフォールトによってアクティブでないかもしれない。VSO機能はホストにおけるNICコンフィギュレーションクライアントアプリケーションによってアクティブにされ得る。したがって、VSO機能の初期のコンフィギュレーション(構成)は、NICコンフィギュレーションアプリケーションを通してまたはそれと協力して遂行され得る。それはNAPIを通してインタフェースを露出でき、ホストアプリケーションNICコンフィギュレーションクライアントによって使用され得る。両方のアプリケーションにより、ホストはIPコンフィギュレーションと基本的なフィルタリング規則を適用できるだろう。VSO機能が一旦活性化されると、NTCモジュールは、オフロードされたビデオストリームに属するパケットをフィルタリングし始めトラフィックの残りはNIC機能の一部としてホストに向けられ得る。
VSO機能をイネーブルにすることの一部としてNICコンフィギュレーションクライアントを使用して追加コンフィギュレーションを行うためにホストを構成できる。追加コンフィギュレーションは、NDのダイナミックなTCP/UDPポート範囲を設定することを含むことができる。その範囲は2つのIPスタックが同じローカル・ポートで2個のソケットを開けるのを防止するために、ホストIPスタックによって使用されるポート範囲と異なって設定され得る。IPコンフィギュレーション(例えば、アドレス、マスク、ゲートウェイ)はND IPスタックの操作を構成でき、NTCはオフロードされたストリームに属するパケットのためにフィルタリングを始めることができる。実施例の1セットでは、フィルタリングはTCP/UDPポートナンバーに基づいて実行でき、各ネットワークスタックは自己に割り当てられたポートナンバーの範囲を有する。それぞれのポートナンバー、またはそれぞれのポートナンバー範囲を異なったネットワークスタックに割り当てることによって、同じネットワークアドレスにすべて対応する複数の異なったネットワークスタックは実現できる。したがって、代替の実施例は2つ以上のネットワークスタック(例えば2個以上のIPスタック)を特徴とすることができ、各ネットワークスタックは他のネットワークスタックのいずれかに対応するポートナンバーのいずれも重複しないポートナンバーまたはポートナンバーの範囲が割り当てられる。ホストCPUはこのコンフィギュレーションを、DHCPや自動IPや静的なコンフィギュレーションなどの任意の手段によって得ることができる。また、IPサービスプロトコルを扱うための規則でNTCをプログラムできる。VSOとNIC機能が一旦ともにイネーブルにされると、ホストは、ND HTTPサーバと同じポートの上でリスニング(聴取)ソケットを使用しないということを保証するように作動できる。ストリーム制御がNDCPUで実行(ラン)するとき、ストリームトランスポートにかけられたNAPI電話(コール)はローカルにルーティングされ得る。
上述したように、カーネルモジュールとユーザレベルアプリケーションとしてNDソフトウェアモジュールを実施できる。したがって、NDファームウェアは、ND NIC機能をサポートするためにオペレーティングシステムカーネルパッチ、例えばリナックスカーネルパッチを含むことができる。すなわち、NTCは基本のホストネットワーク接続性(すなわち、NIC機能)を特殊カーネルモジュールとして提供でき、その特殊カーネルモジュールは、ホスト通信とオフロード・ストリームを切り離て、ND CPUとホストCPUの両方ネットワーク接続性であって、同じネットワークアドレス、およびエクステンションによる潜在的に同じ物理的なMAC/PΗYを使用するネットワーク接続性を持ち得るよう構成される
ND VSOとNIC機能がに両方とも使用中であるときは、それらの両方がNDスループット資源を競合するので、一方の機能を他方の機能に優先させる必要があろう。従って、NIC機能に対して優先順位を持つようにND VSO機能を構成できる。これは、ビデオストリームが順位優先タスクとして扱われ、ホストトラフィックが残りのNDスループットキャパシティを使用するものと扱われ得ることを意味する。逆に、少なくとも最小のパフォーマンスレベルをNIC機能に保証するために、ND VSO機能のCPUの使用は構成可能なリミットにキャップ(抑制)され得る。
また、さらに、両方のインタフェース(すなわち、ホストバスインタフェイスとストリーミングのインタフェース)を介して同時にNDによって受け取られたデータを優先順位付けするようにNIC機能を適合させることができる。このような場合、NIC機能はどちらのデータにネットワークインタフェースへのアクセスが付与されてネットワークに伝えられるべきかを仲裁するように動作する。ホストのIPコンフィギュレーションが変化するとき、NICコンフィギュレーションクライアントアプリケーションはNDCPU上でコンフィギュレーションを同時に更新するのに使用される。
NTCそれ自体が、機能性によって3つの主要部に分割される: 即ち、トラフィック管理(TM)、イーサネットドライバーコンフィギュレーションおよび同期(EC)、および、パス・スルー(PT)モードの3つである。TMモジュールは、(される)データトラフィックを集合し、(入来る)データトラフィックを分離するように作動できる。上述したように、1つのNIC機能(ドライバー)としてホストシステムには見えるようにECモジュールを構成できる。したがって、ホストのネットワーク(例えば、イーサネット)ドライバーコンフィギュレーションに基づいて自動的にNDのためのネットワーク(例えば、イーサネット)ドライバーを構成できる。オフロードモードとは対照的にIPモードにおいては、データは、NDによって何の処理も実行されることなく、NDネットワークドライバーから直接ホストネットワークドライバーに渡される。
トラフィック管理
1セットの実施例においては、例えばリナックスネット−フィルタ/ファイヤーウォールアーキテクチャなどの既存のオペレーティングシステムカーネルを拡張し、既存のフィルタリング機能に加えて、NDに関連しているデータトラフィックフィルタリング機能を遂行し得る。したがって、ホストとNDのデータトラフィックの集合と分離を遂行するように構成され得る。図5は、ND用トラフィック管理ソフトウェア構造のコンテキストにおけるデータフローの1例を示すブロックダイアグラムを示している。示されているように、それら自身のTCP/IPスタック(それぞれ212と232)でND162とホスト160を構成できる。実施例の1セットでは、NAPIモジュール208を介してテーブル規則を設定できる。モジュール208はアプリケーションスペースで構成された別々のモジュールでよく、それぞれのモジュールは、ND162とホスト160上で構成される。カーネルと応用モジュールとしてIP−テーブル/ARP−テーブル210を設計できる。これを介して、プロトコルとポート番号に基づいてフィルタリングを遂行するためのフィルタリング規則が構成され得る。IP−テーブル/ARP−テーブル210で構成されたフィルタリング規則に従って、オーディオ/ビデオストリーム(ストリーミングアプリケーション206にND162よって、イーサネットドライバー218に関わるイーサネット接続を介して受信することができる)はフィルタリングされる。入力パケットをフィルタリングした後に、NTCにおける別のカーネルモジュールは、HBIインタフェースを通して、ND162とホスト160のためにそれぞれ構成されたHBIドライバー220と204にかかわりながら、データをホストプロセッサに供給できる。出口トラフィックでは、NTCは、イーサネットドライバー218にかかわりながら、ホストからHBIドライバー240を介してデータを読み、(必要なら)ヘッダーを調整して、データを送り出すことができる。ND162から出て行くデータトラフィックはホストから出て行くトラフィックに影響を与えることができない。特に2つのTCP/IPスタックの間の同期を維持することを目的とした1つ以上の手続きに従って動作するようにND162を構成できる。
同期を維持するために、ICMP(インターネットコントロールメッセージプロトコル)およびARP(アドレスレゾリューションプロトコル)パケットをIPスタック212と232の両方に伝えることができるが、要求に対する応答は単にNDから作り出されることができる。これらの要求に対応してホストプロセッサで作り出される応答は、応答のコピーを排除するためにフィルタアウト(無視)される。IP−テーブルとARP−テーブルコマンドで規則を設定できる。入力パケットを両方のIPスタックに送るのか、ホストIPスタックだけに送るのかはユーザのアクセス可能なオプションとして構成できる。その上、セグメントに分けられたIPパケットを再組み立て可能であるように適切にIP IDを調整できる。NDとホストプロセッサは別々のIP IDを維持できる。最終的に、ポート指定のときに競合(コリジョン)を避けるためにエフェメラルポートを構成できる。これはリナックスカーネルのポート範囲を調整することによって、実行できる。例えば、NDは、より小さなエフェメラルポート範囲[1024−4996]が割り当てられ、ホストは、より高いポート範囲[40000−60000]が割り当てられることができる。
イーサネットドライバー・コンフィギュレーション
図6は、どのよにしてNDネットワーク設定とホストネットワーク設定を、コンフィギュレーション・モードに確立できるかの1つの実施例を示している。ホストネットワークドライバー302からHBI304を介してNDネットワークドライバー308を構成できる。ユーザはホストネットワークドライバー302のためのコンフィギュレーションを設定でき、そして、次に、NDネットワークドライバー308へとすべてのコンフィギュレーションがパスされ、従って、ドライバー308は、セットされる。このコンフィギュレーションを容易にするため、実施例の1セットにおいては、カーネルパイプメカニズムを通して通信チャネルおよびメッセージングコマンドを開発できる。ネットワーク(例えば、イーサネット)ドライバーコンフィギュレーションのために以下のコマンドを実施できる。
1. Open(オープン): このコマンドは、ホストから送られ、送受信機能をイネーブルにするためにNDネットワークドライバー308を開くのを容易にする。また、MACアドレスを割り当てるか、またはそれが既にND内で割り当てられているならば、MACアドレスを得るのにこのオープンコマンドを使用できる。
2. Close(閉じる): このコマンドは、ホストから送られ、送受信機能をディスエーブルにするためにNDネットワークドライバー308を閉じる。
3. Ping(ピン): このコマンドは、NDネットワークドライバー308が生きているかどうかをホストによってチェックする使用できる。生きているNDネットワークドライバーは、ピンコマンドに応答する。
4. SetRx Filter(セットRxフィルタ): ホストは、マルチキャスト設定を構成するのにこのコマンドを使用できる。
5. Get Statisticsスタティスティクスを得る): ホストはNDネットワークドライバー308からパケットとエラーカウンタを検索するのにこのコマンドを使用できる。
6. Clear Statisticsスタティスティクスをクリア): ホストはNDネットワークドライバー308の中のスタティスティクスカウンタをクリアするのにこのコマンドを使用できる。
7. Get Link Setting(リンク設定を得る): ホストはNDネットワークドライバー308からの現在のリンク速度/二重モードを検索するのにこのコマンドを使用できる。
8. Set Link Mode(リンクモードを設定する): ホストはNDネットワークドライバー308にリンク速度/二重モードをはめ込むのにこのコマンドを使用できる。
パススルーモード
図7に示す特別なモードとしてパススルー(PT)モードを指定できる。
PTモードで、NDネットワークドライバー308からホストネットワークドライバー302へと直接にデータは通過できる。
NTC412におけるモジュールは、NDネットワークドライバー308からデータを受信して、HBIインタフェース304にそれを提供できる。同様に、NTC412を通してデータは、HBIインタフェース304からNDネットワークドライバー308へと直接に通過できる。また、図7は、データがオフロードモードで取ることができるパスを示す。それに、ND162のネットワークスタック410かかわる。PTモードでは、データはネットワークスタック410を迂回できその結果、ND162ランするよう構成されるストリーミング・アプリケーション408からの作用を受けない。
PTモードでホストシステムを動作させ得る時1つの実施例はブートアップ中である。ホストがブートするとき、ネットワークアドレス(例えば、DHCP(DynamicHostConfigurationProtocol)を通したIPアドレス)を得するのが必要であ、その場合、ND162は簡単なネットワーク・コントローラ(例えば、簡単なイーサネット・コントローラ)として作動して、すべてのデータトラフィックをホストへと通す。その結果、ホストは、すべてのトラフィックを受けて、ネットワークからネットワークアドレス(例えば、IPアドレス)を得ることができる。ホストがアドレス発見を実行した後に、ネットワークアドレスをNDに通信でき、ネットワークアドレスがNDに通信されると、NDは、PTモードから脱出して、ネットワークから受信した入力パケット、および/または、データをフィルターにかけ始める。また、デバッグ目的にPTモードを使うことができる。
単一のイーサネットインタフェースでの複数のTCP/IPスタックをさせる利点の1つは、すべてのネットワークスタックによ一のIPアドレスとMACアドレスを使用することにあり、2台以上のプロセッサ、ここではホストで構成されたプロセッサNDで構成された別のプロセッサにおいて、アプリケーションが同時動作するのを可能にし、同時に少なくともそれらのプロセッサの1つにネットワークへのアクセスが提供される。一般に、様々な規制ソフトウェアルーチンを実行するためにホストプロセッサを構成でき、さまざまなデータ集中的コードを実行するためにNDプロセッサを構成できる。例えば、UPNP(ユニバーサル・プラグ・アンド・プレイ)アプリケーションをホストにロードでき、NDストリーミング・アプリケーションをロードできNDを、ビデオデータを受信して処理するように構成できる。オフロードモードで作動するとき、ネットワークフレームに不可知のまま、OS(オペレーティングシステム)カーネル構造(例えば、リナックスファイヤーウォールアーキテクチャ)をネットワークトラフィック制御に使用できる。フィルタリングは、IPアドレスなどのどんなレベル(IPアドレス、プロトコル(TCP,UDP)および/または、ポート番号レベル)でも実行され得るフィルタリングがカーネルレベルで実行され、同じソケットバッファを使用できると、データコピーを必要とされない。したがって、NDと協力して作動するためにホストを、さまざまな商業オペレーティングシステムのどれかを使用して構成できる
当業者には、本発明の種々相の更なる修正と代替の実施例はこの説明を考慮すると明らかであるかもしれない。
従って、この説明が説明に役立つと理解されることである、唯一、そして、本発明を実施する一般的な方法を当業者に教示する目的のために、ある。
本明細書に示されて、記載された発明の帳票が、実施例として取られることであることが理解されることになっている。
プロセスを逆にすることができる、そして、本明細書に示して、記載されたものに要素と素材を置換できる、部品、すべてあるだろうとき独自に利用されていて、本発明のある特徴は本発明のこの説明の恩恵を持った後に当業者には明らかな状態で逆にすることができる。
本明細書に以下の賠償金で記載されているように、本発明の趣旨と範囲から逸脱せずに記載された要素で変更を行うことができる。

Claims (25)

  1. ホスト処理装置をネットワークとインタフェースするためのネットワーク・デバイスであって、
    前記ネットワーク・デバイスと前記ホスト処理装置との間でデータを転送するように構成された第1インタフェース・コントローラと、
    前記ネットワーク・デバイスと前記ホスト処理装置との間でデータを転送するように構成された第2インタフェース・コントローラと、
    前記ネットワーク・デバイスをネットワークとインタフェースするように構成された第1ネットワーク・インタフェース・コントローラと、そして
    コントロール・ユニットであって、
    前記第1ネットワーク・インタフェース・コントローラを介してネットワークから入来データを受け取り、当該入来データを処理し、そして、処理済み入来データを、前記第2インタフェース・コントローラを介して前記ホスト処理装置へ伝送するステップと、
    前記ホスト処理装置から送出データを前記第2インタフェース・コントローラを介して受信し、受信した送出データを処理し、そして、前記第1ネットワーク・インタフェース・コントローラを介して処理済の送出データを前記ネットワークに伝送するステップ
    の1つまたは双方のステップを実行するコントロール・ユニットと
    を備え、
    前記第1インタフェース・コントローラ、前記コントロール・ユニット、および前記第1ネットワークインタフェース・コントローラは、協働して、前記ホスト処理装置、前記第1ネットワーク・インタフェース・コントローラおよび前記第1インタフェース・コントローラを介して、前記ホスト処理装置と前記ネットワークとの間で、他のデータを転送するのを可能にするように構成され、そして
    前記ホスト処理装置と前記コントロール・ユニットは同じネットワークアドレスを共有する
    ネットワーク・デバイス。
  2. 前記第1インタフェース・コントローラは、ホストバス・インタフェース・コントローラを含み、
    前記第2インタフェース・コントローラは、ネットワーク・デバイスおよび前記ホスト処理装置間でストリーミング・データを転送する1以上のストリーミング・コントローラを含み、そして
    ネットワーク・アドレスがIPアドレスである
    ことを特徴とする請求項1に記載のネットワーク・デバイス。
  3. 前記第1インタフェース・コントローラ、前記第1ネットワークインタフェース・コントローラ、および前記コントロール・ユニットは、協働して、前記ホスト処理装置、前記第1ネットワーク・インタフェース・コントローラと前記第1インタフェース・コントローラとを介して、前記ネットワークへ、または前記ネットワークから、前記他のデータを伝送するのを可能にし、同時に、
    前記コントロール・ユニットが、前記入来データを処理し、その処理した入来データを前記第2インタフェース・コントローラを介して前記ホスト処理装置へ伝送すること、
    前記コントロール・ユニットが、前記ホスト処理装置からの送出データを前記第2インタフェース・コントローラを介して受信し、前記送出データを処理すること
    の一方または双方を行う、
    ことを特徴とする請求項1に記載のネットワーク・デバイス。
  4. 前記コントロール・ユニットは、受けた入来データの処理に、ネットワーク・スタックを使用するよう構成され、前記コントロール・ユニットにより使用される前記ネットワーク・スタックは、前記ホスト処理装置前記他のデータ伝送または受信する際に使用するネットワーク・スタックとは区別できるものである、
    ことを特徴とする請求項1に記載のネットワーク・デバイス。
  5. 前記コントロール・ユニットは、
    ローカルの処理装置と、そして
    前記ローカルの処理装置により実行可能なファームウエア命令を格納するメモリユニットと
    を備え、
    前記ローカルの処理装置は、受けた入来データ、および/または、受信した送出データを、少なくとも前記ファームウエア命令に従って処理するように構成される
    ことを特徴とする請求項1に記載のネットワーク・デバイス。
  6. 前記ネットワーク・デバイス集積回路である、ことを特徴とする請求項1に記載のネットワーク・デバイス。
  7. 前記第2インタフェース・コントローラは、前記ホスト処理装置から前記ネットワーク・デバイスへ、そして前記ネットワーク・デバイスから前記ホスト処理装置へ、データを同時に伝送するよう構成されている
    ことを特徴とする請求項1に記載のネットワーク・デバイス。
  8. コプロセッサ・ユニットと協働するホスト処理装置によって実行されるオペレーティング・システムにおいて、データパケットをルーティングし、処理する方法であって、
    第1ネットワーク・インターフェイス・コントローラを介してネットワーク・パケットを受信するステップと
    前記オペレーティング・システムのカーネルに埋め込まれた少なくとも1つのモジュールを介して構成された第1ルールに従って、前記ネットワーク・パケットをフィルタリングするステップと
    前記フィルタリングするステップに基づいて、前記ネットワーク・パケットに含まれたデータの第1部分、前記ホスト処理装置に対応する第1ネットワーク・スタックルーティングするステップと、そして
    前記フィルタリングするステップに基づいて、前記ネットワーク・パケットに含まれたデータの第2部分、前記コプロセッサ・ユニットに対応する第2ネットワーク・スタックへルーティングするステップと
    を含み、
    前記第1ネットワーク・スタックおよび前記第2ネットワーク・スタックは単一のネットワーク・アドレスを共有する
    ことを特徴とする方法。
  9. 前記ホスト処理装置が、前記ネットワーク・パケットに含まれたデータの前記第1部分を処理するステップと
    前記コプロセッサ装置が、前記ネットワーク・パケットに含まれたデータの前記第2部分を処理するステップと
    の一方または双方のステップを、さらに含む
    ことを特徴とする請求項8に記載の方法
  10. 前記コプロセッサ装置が、前記ネットワーク・パケットに含まれた前記データの前記第2部分を処理する前記ステップは、前記ネットワーク・パケットに含まれた前記データの前記第1部分ルーティングする前記ステップと同時に実施される
    ことを特徴とする請求項9に記載の方法。
  11. 前記ネットワーク・パケットに構成されるデータの前記第2部分には、
    ストリーミング・ビデオ・データと、
    ストリーミング・オーディオ・データと、
    ストリーミング・オーディオ/ビデオ・データと、そして
    画像データ
    1つ以上のデータが含まれる
    ことを特徴とする請求項8に記載の方法。
  12. 前記ネットワーク・パケットに含まれた前記データの前記ルーティングされた第2部分を、ストリーミング・インターフェイスを介して前記ホスト処理装置伝送するステップ、または
    前記ネットワーク・パケットに含まれた前記データの前記ルーティングされた第2部分をファイル・システム書き込むステップ
    の1つのステップを含む
    ことを特徴とする請求項8に記載の方法
  13. 前記ネットワーク・パケットに含まれた前記データの前記第1部分ルーティングするステップは、前記ホスト処理装置を前記コプロセッサ装置にインタフェースするよう構成されたホストバス・インタフェースを介して、前記ネットワーク・パケットに含まれた前記データの前記第1部分をルーティングするステップを含む
    ことを特徴とする請求項8に記載の方法
  14. 前記オペレーティング・システムの前記カーネルに埋め込まれた少なくとも1つのモジュールと、そして
    前記オペレーティング・システムで実行される少なくとも1つのアプリケーション・モジュールと
    を介して前記第1ルールを構成するステップを、さらに含む
    ことを特徴とする請求項8に記載の方法
  15. 前記ホスト処理装置から送出データ受信し、前記送出データを前記第1ネットワーク・インターフェイス・コントローラを介して伝送するステップと、そして
    ファイル・システムから送出データの読み出し、前記送出データを前記ネットワーク・インターフェイスを介して伝送するステップと
    の一方または双方のステップを、さらに含むことを特徴とする請求項8に記載の方法。
  16. 前記ホスト処理装置から前記送出データ受信する前記ステップは、
    前記送出データの少なくとも第1部分を、第1インタフェースを介して受信するステップと、
    前記送出データの少なくとも第2部分を、第2インタフェースを介して受信するステップ
    の一方または双方のステップを含む
    ことを特徴とする請求項15に記載の方法。
  17. 前記ネットワーク・パケットは、インターネット・コントロール・メッセージ・プロトコル(ICMP)パケットアドレスレゾリューションプロトコル(ARP)パケットの一方または双方のパケットを含み、
    前記ネットワーク・パケットがICMPパケットを含むときは、前記ICMPパケットを前記第1ネットワーク・スタックおよび前記第2ネットワーク・スタックの双方のスタックへルーティングするステップと、
    前記ネットワーク・パケットがARPパケットを含むときは、前記ARPパケットを前記第1ネットワーク・スタックおよび前記第2ネットワーク・スタックの双方のスタックへルーティングするステップと
    の一方または双方のステップを、さらに含む
    ことを特徴とする請求項8に記載の方法。
  18. 前記ネットワーク・パケットがICMPパケットを含むときは、前記コプロセッサ装置が、前記ICMPパケットに含まれる要求に対して応答を生成するステップと、
    前記ネットワーク・パケットがARPパケットを含むときは、前記コプロセッサ装置が、前記ARPパケットに含まれる要求に対して応答を生成するステップ
    の一方または双方のステップを、さらに含むことを特徴とする請求項17に記載の方法。
  19. 前記ネットワーク・パケットがICMPパケットを含むときは、前記ICMPパケットに含まれ要求に応じて前記ホスト処理装置により生成された応答をフィルタリングして、前記ICMPパケットに含まれた前記要求に応じて生成された応答の重複を除くステップと、
    前記ネットワーク・パケットがARPパケットを含むときは、前記ARPパケットに含まれ要求に応じて前記ホスト処理装置により生成された応答をフィルタリングして、前記ARPパケットに含まれた前記要求に応じて生成された応答の重複を除くステップ
    の一方または双方のステップを、さらに含む
    ことを特徴とする請求項18に記載の方法。
  20. ホスト・デバイスと、
    前記ホスト・デバイスをネットワークへ接続するためのネットワーク・デバイスであって、前記ネットワークにインタフェースする第1ネットワーク・インターフェイス・コントローラを含むネットワーク・デバイスと、
    前記ネットワーク・デバイスおよび前記ホスト・デバイス間でのデータの転送用として前記ネットワーク・デバイスを前記ホスト・デバイスに結合するホストバスと、そして
    前記ネットワーク・デバイスおよび前記ホスト・デバイス間でのストリーミング・データを転送するために前記ネットワーク・デバイスを前記ホスト・デバイスに結合するストリーミング・データ・バスと
    を備えるシステムであって、
    前記ホスト・デバイスおよび前記ネットワーク・デバイスは、協働して、ネットワーク・インタフェース・コントローラ(NIC)機能を実現するよう構成され、前記NIC機能は、前記ホスト・バスおよび前記第1ネットワーク・インターフェイス・コントローラを介しての前記ネットワークへのネットワーク接続性をホスト・デバイスに提供し
    前記NIC機能の実現において、前記ホスト・デバイスは、第1のネットワーク・スタックを使用するよう構成され、前記ネットワーク・デバイス、前記第1のネットワーク・スタックとは異なる第2のネットワーク・スタックを使用するよう構成され、そして
    前記第1ネットワーク・スタックおよび前記第2ネットワーク・スタックは、前記第1ネットワーク・インターフェイス・コントローラに対応する単一のネットワーク・アドレスを共有する
    ことを特徴とするシステム。
  21. 前記ネットワーク・デバイスは、前記ホスト・デバイスによって前記ホスト・バスおよび前記ネットワーク・インターフェイスを介して前記ネットワークへのアクセスが行われるのと同時に、ストリーミング・データを、前記ストリーミング・データ・バスを介して、前記ホスト・デバイスへ伝送する、または前記ホスト・デバイスから受信するよう構成されている
    ことを特徴とする請求項20に記載のシステム。
  22. 前記ホスト・バスに結合された追加のストリーミング・データ・バスと、
    前記追加のストリーミング・データ・バスに結合され、衛星からストリーミング情報を受信するように構成されたチューナー・デバイスであって、前記ストリーミング情報を、前記追加のストリーミング・データ・バスを介して前記ホスト・デバイスへ伝送するチューナー・デバイスと
    、さらに備える
    ことを特徴とする請求項20に記載のシステム。
  23. 前記NIC機能の実現において、前記ネットワーク・デバイスはネットワーク・デバイスのネットワーク・ドライバに従って動作し、前記ホスト・デバイスはホスト・デバイスのネットワーク・ドライバに従って動作し、
    前記ホスト・デバイスネットワーク・ドライバはユーザによって構成可能であり、
    前記ネットワーク・デバイスネットワーク・ドライバは、前記ホスト・デバイスネットワーク・ドライバのユーザによる構成に基づいて、自動的に構成される
    ことを特徴とする請求項20に記載のシステム。
  24. コプロセッサ装置と協働するホスト処理装置によって実行されるオペレーティング・システムにおいて、データパケットをルーティングし、処理する方法であって、
    送出データの第1部分を、前記ホスト処理装置に対応する第1ネットワーク・スタックから得るステップと、
    前記送出データの第2部分を、前記コプロセッサ装置に対応する第2ネットワーク・スタックから得るステップと、
    前記送出データを含むネットワーク・パケットを生成するステップであって、前記送出データの前記第1部分および前記送出データの前記第2部分前記ネットワーク・パケットにおいて配列される順序を決定するステップを含むステップと、そして
    前記ネットワーク・パケットを第1ネットワーク・インタフェース・コントローラを介してネットワークへ伝送するステップと
    を含み、
    前記第1ネットワーク・スタックおよび前記第2ネットワーク・スタックは単一のネットワーク・アドレスを共有している
    ことを特徴とする方法。
  25. 前記送出データの前記第1部分および前記送出データの前記第2部分前記ネットワーク・パケットにおいて配列される順序を決定をする前記ステップは、
    オペレーティング・システムのカーネルに埋め込まれた少なくとも1つのモジュールを介して構成された第1ルールと、そして
    前記コプロセッサ装置によって実行される命令に埋め込まれた第2ルール
    の一方または双方のルールに従って実施される
    ことを特徴とする請求項24に記載の方法。
JP2009536489A 2006-11-08 2007-11-08 ネットワーク・トラフィック・コントローラ Active JP4870819B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US86492106P 2006-11-08 2006-11-08
US60/864,921 2006-11-08
US11/928,647 US9794378B2 (en) 2006-11-08 2007-10-30 Network traffic controller (NTC)
US11/928,647 2007-10-30
PCT/US2007/084152 WO2008058254A2 (en) 2006-11-08 2007-11-08 Network traffic controller (ntc)

Publications (2)

Publication Number Publication Date
JP2010519785A JP2010519785A (ja) 2010-06-03
JP4870819B2 true JP4870819B2 (ja) 2012-02-08

Family

ID=39360977

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009536489A Active JP4870819B2 (ja) 2006-11-08 2007-11-08 ネットワーク・トラフィック・コントローラ

Country Status (4)

Country Link
US (2) US9794378B2 (ja)
JP (1) JP4870819B2 (ja)
TW (1) TWI378696B (ja)
WO (1) WO2008058254A2 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9794378B2 (en) * 2006-11-08 2017-10-17 Standard Microsystems Corporation Network traffic controller (NTC)
US20090238069A1 (en) * 2008-03-19 2009-09-24 Himax Technologies Limited Device and method for controlling program stream flow
TW201025010A (en) * 2008-12-25 2010-07-01 Jmicron Technology Corp Host system and operating method thereof
US20100215052A1 (en) * 2009-02-20 2010-08-26 Inventec Corporation Iscsi network interface card with arp/icmp resolution function
US20110075047A1 (en) * 2009-09-29 2011-03-31 Sony Corporation Firewall port selection using atsc tuner signals
US20120155360A1 (en) * 2010-12-20 2012-06-21 Lockheed Martin Corporation Negative-acknowledgment oriented reliable multicast offload engine architecture
US9985996B2 (en) * 2013-09-09 2018-05-29 Avago Technologies General Ip (Singapore) Pte. Ltd. Decoupling audio-video (AV) traffic processing from non-AV traffic processing
US9712867B2 (en) * 2013-09-16 2017-07-18 Avago Technologies General Ip (Singapore) Pte. Ltd. Application specific policy implementation and stream attribute modification in audio video (AV) media
US10133695B2 (en) * 2013-12-08 2018-11-20 Crossport Network Solutions Inc. Link system for establishing high speed network communications and file transfer between hosts using I/O device links
US10164905B2 (en) * 2014-02-06 2018-12-25 Mellanox Technologies, Ltd. Efficient management of network traffic in a multi-CPU server
CN104140046B (zh) * 2014-08-12 2016-04-27 徐州重型机械有限公司 用于起重机通信的方法和控制器、及起重机
US10341311B2 (en) * 2015-07-20 2019-07-02 Schweitzer Engineering Laboratories, Inc. Communication device for implementing selective encryption in a software defined network
US10814893B2 (en) 2016-03-21 2020-10-27 Ge Global Sourcing Llc Vehicle control system
US10805222B2 (en) 2017-05-01 2020-10-13 General Electric Company Resilient network configuration for time sensitive traffic
US11072356B2 (en) 2016-06-30 2021-07-27 Transportation Ip Holdings, Llc Vehicle control system
US11979340B2 (en) 2017-02-12 2024-05-07 Mellanox Technologies, Ltd. Direct data placement
US10516710B2 (en) 2017-02-12 2019-12-24 Mellanox Technologies, Ltd. Direct packet placement
US10210125B2 (en) 2017-03-16 2019-02-19 Mellanox Technologies, Ltd. Receive queue with stride-based data scattering
US11252464B2 (en) 2017-06-14 2022-02-15 Mellanox Technologies, Ltd. Regrouping of video data in host memory
US20180367589A1 (en) * 2017-06-14 2018-12-20 Mellanox Technologies, Ltd. Regrouping of video data by a network interface controller
US10367750B2 (en) 2017-06-15 2019-07-30 Mellanox Technologies, Ltd. Transmission and reception of raw video using scalable frame rate
US11057652B1 (en) 2019-04-30 2021-07-06 Amazon Technologies, Inc. Adjacent content classification and targeting
US10749934B1 (en) * 2019-06-19 2020-08-18 Constanza Terry Removable hardware for increasing computer download speed

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06216917A (ja) * 1992-09-17 1994-08-05 D 2 B Syst Co Ltd 多重装置消費者エレクトロニクスシステム
JP2002009869A (ja) * 2000-06-19 2002-01-11 Victor Co Of Japan Ltd ネットワークi/fカード
JP2002524005A (ja) * 1998-08-28 2002-07-30 アラクリテック・インコーポレイテッド 通信を高速化するインテリジェントネットワークインタフェース装置及びシステム
JP2004072752A (ja) * 1994-08-31 2004-03-04 At & T Corp データ送信のためのネットワークの高帯域幅データ搬送チャネルを選択する低帯域幅を用いた無線チャネル設定
JP2005502225A (ja) * 2001-04-24 2005-01-20 アイレディ コーポレーション ギガビット・イーサネット・アダプタ
JP2007150390A (ja) * 2005-11-24 2007-06-14 Matsushita Electric Ind Co Ltd 通信装置
JP2008507030A (ja) * 2004-07-14 2008-03-06 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワーク・プロトコル処理のオフロードにおいてメモリ管理をサポートする装置および方法

Family Cites Families (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6108713A (en) * 1997-02-11 2000-08-22 Xaqti Corporation Media access control architectures and network management systems
CA2206737C (fr) * 1997-03-27 2000-12-05 Bull S.A. Architecture en reseau de machine informatique
US6314525B1 (en) * 1997-05-13 2001-11-06 3Com Corporation Means for allowing two or more network interface controller cards to appear as one card to an operating system
US7167927B2 (en) * 1997-10-14 2007-01-23 Alacritech, Inc. TCP/IP offload device with fast-path TCP ACK generating and transmitting mechanism
US6434620B1 (en) * 1998-08-27 2002-08-13 Alacritech, Inc. TCP/IP offload network interface device
US7174393B2 (en) * 2000-12-26 2007-02-06 Alacritech, Inc. TCP/IP offload network interface device
US6226680B1 (en) * 1997-10-14 2001-05-01 Alacritech, Inc. Intelligent network interface system method for protocol processing
US7284070B2 (en) * 1997-10-14 2007-10-16 Alacritech, Inc. TCP offload network interface device
US6687758B2 (en) * 2001-03-07 2004-02-03 Alacritech, Inc. Port aggregation for network connections that are offloaded to network interface devices
US6208649B1 (en) * 1998-03-11 2001-03-27 Cisco Technology, Inc. Derived VLAN mapping technique
US6167047A (en) * 1998-05-18 2000-12-26 Solidum Systems Corp. Packet classification state machine
US6765901B1 (en) * 1998-06-11 2004-07-20 Nvidia Corporation TCP/IP/PPP modem
US6625654B1 (en) 1999-12-28 2003-09-23 Intel Corporation Thread signaling in multi-threaded network processor
US20020105972A1 (en) * 2000-03-03 2002-08-08 Richter Roger K. Interprocess communications within a network node using switch fabric
US7500143B2 (en) * 2000-05-05 2009-03-03 Computer Associates Think, Inc. Systems and methods for managing and analyzing faults in computer networks
US6681258B1 (en) * 2000-05-31 2004-01-20 International Business Machines Corporation Facility for retrieving data from a network adapter having a shared address resolution table
US7120697B2 (en) * 2001-05-22 2006-10-10 International Business Machines Corporation Methods, systems and computer program products for port assignments of multiple application instances using the same source IP address
US7089335B2 (en) * 2000-10-30 2006-08-08 Microsoft Corporation Bridging multiple network segments and exposing the multiple network segments as a single network to a higher level networking software on a bridging computing device
US7379475B2 (en) * 2002-01-25 2008-05-27 Nvidia Corporation Communications processor
WO2002059757A1 (en) 2001-01-26 2002-08-01 Iready Corporation Communications processor
US6526440B1 (en) * 2001-01-30 2003-02-25 Google, Inc. Ranking search results by reranking the results based on local inter-connectivity
US6996779B2 (en) * 2001-04-20 2006-02-07 General Instrument Corporation Graphical user interface for a transport multiplexer
US7274706B1 (en) * 2001-04-24 2007-09-25 Syrus Ziai Methods and systems for processing network data
US7124293B2 (en) * 2001-06-29 2006-10-17 Intel Corporation Intelligently determining which traffic streams to offload efficiently
US7356245B2 (en) * 2001-06-29 2008-04-08 International Business Machines Corporation Methods to facilitate efficient transmission and playback of digital information
KR100385996B1 (ko) * 2001-09-05 2003-06-02 삼성전자주식회사 하나의 NIC(Network InterfaceCard)에 복수개의 IP 어드레스를 할당하는 방법 및이에 적합한 장치
US7145914B2 (en) * 2001-12-31 2006-12-05 Maxxan Systems, Incorporated System and method for controlling data paths of a network processor subsystem
US7496689B2 (en) * 2002-04-22 2009-02-24 Alacritech, Inc. TCP/IP offload device
US7007103B2 (en) * 2002-04-30 2006-02-28 Microsoft Corporation Method to offload a network stack
US7606890B1 (en) * 2002-06-04 2009-10-20 Rockwell Automation Technologies, Inc. System and methodology providing namespace and protocol management in an industrial controller environment
US7224692B2 (en) * 2002-09-04 2007-05-29 Broadcom Corporation System and method for fault tolerant TCP offload
US7346701B2 (en) * 2002-08-30 2008-03-18 Broadcom Corporation System and method for TCP offload
US7313623B2 (en) * 2002-08-30 2007-12-25 Broadcom Corporation System and method for TCP/IP offload independent of bandwidth delay product
US7936766B2 (en) * 2002-09-20 2011-05-03 Wind River Systems, Inc. System and method for separating logical networks on a dual protocol stack
US20040073716A1 (en) * 2002-10-14 2004-04-15 Boom Douglas D. System, device and method for media data offload processing
US7069312B2 (en) * 2002-12-06 2006-06-27 Microsoft Corporation Network location signature for disambiguating multicast messages in dual-IP stack and/or multi-homed network environments
US7324540B2 (en) * 2002-12-31 2008-01-29 Intel Corporation Network protocol off-load engines
US7184445B2 (en) * 2003-02-12 2007-02-27 Silverback Systems Inc. Architecture and API for of transport and upper layer protocol processing acceleration
US20050021680A1 (en) * 2003-05-12 2005-01-27 Pete Ekis System and method for interfacing TCP offload engines using an interposed socket library
US7991918B2 (en) * 2003-06-05 2011-08-02 Nvidia Corporation Transmitting commands and information between a TCP/IP stack and an offload unit
US7420931B2 (en) * 2003-06-05 2008-09-02 Nvidia Corporation Using TCP/IP offload to accelerate packet filtering
EP1503558A1 (de) * 2003-08-01 2005-02-02 Siemens Aktiengesellschaft Verbindung von Teilnehmern in hybriden Kommunikationsnetzen
US7275152B2 (en) * 2003-09-26 2007-09-25 Intel Corporation Firmware interfacing with network protocol offload engines to provide fast network booting, system repurposing, system provisioning, system manageability, and disaster recovery
US20050097242A1 (en) * 2003-10-30 2005-05-05 International Business Machines Corporation Method and system for internet transport acceleration without protocol offload
US20050100023A1 (en) * 2003-11-07 2005-05-12 Buckwalter Paul B. Isochronous audio network software interface
US7602794B2 (en) * 2003-11-13 2009-10-13 Intel Corporation Implementation of control plane protocols and networking stacks in a distributed network device
US8493839B2 (en) * 2003-11-20 2013-07-23 Hewlett-Packard Development Company, L.P. Method and system of teamed network adapters with offloaded connections
EP1538803A1 (en) 2003-12-04 2005-06-08 Alcatel Host for coupling to an IP Network
US6996070B2 (en) * 2003-12-05 2006-02-07 Alacritech, Inc. TCP/IP offload device with reduced sequential processing
US20050188074A1 (en) * 2004-01-09 2005-08-25 Kaladhar Voruganti System and method for self-configuring and adaptive offload card architecture for TCP/IP and specialized protocols
TWI236257B (en) * 2004-02-17 2005-07-11 Admtek Inc Network device and its data transmission method
US7949792B2 (en) * 2004-02-27 2011-05-24 Cisco Technology, Inc. Encoding a TCP offload engine within FCP
TWI239734B (en) * 2004-03-02 2005-09-11 Ind Tech Res Inst Full hardware based TCP/IP traffic offload engine (TOE) device and method thereof
US7668165B2 (en) * 2004-03-31 2010-02-23 Intel Corporation Hardware-based multi-threading for packet processing
WO2005114504A2 (en) * 2004-05-13 2005-12-01 Sun Microsystems, Inc. Method and apparatus for executing event driven simulations
US7493427B2 (en) * 2004-07-14 2009-02-17 International Business Machines Corporation Apparatus and method for supporting received data processing in an offload of network protocol processing
US7533176B2 (en) * 2004-07-14 2009-05-12 International Business Machines Corporation Method for supporting connection establishment in an offload of network protocol processing
US8281031B2 (en) * 2005-01-28 2012-10-02 Standard Microsystems Corporation High speed ethernet MAC and PHY apparatus with a filter based ethernet packet router with priority queuing and single or multiple transport stream interfaces
US7941569B2 (en) * 2005-02-24 2011-05-10 Hewlett-Packard Development Company, L.P. Input/output tracing in a protocol offload system
US7586936B2 (en) 2005-04-01 2009-09-08 International Business Machines Corporation Host Ethernet adapter for networking offload in server environment
US7697434B1 (en) * 2005-04-22 2010-04-13 Sun Microsystems, Inc. Method and apparatus for enforcing resource utilization of a container
US8713180B2 (en) * 2005-06-22 2014-04-29 Cisco Technology, Inc. Zero-copy network and file offload for web and application servers
US7949766B2 (en) * 2005-06-22 2011-05-24 Cisco Technology, Inc. Offload stack for network, block and file input and output
US8064459B2 (en) * 2005-07-18 2011-11-22 Broadcom Israel Research Ltd. Method and system for transparent TCP offload with transmit and receive coupling
KR100652964B1 (ko) * 2005-08-25 2006-12-01 삼성전자주식회사 듀얼스택 네트워크 기기 및 그 브로드캐스트 방법
US20070088874A1 (en) * 2005-10-14 2007-04-19 Hewlett-Packard Development Company, L.P. Offload engine as processor peripheral
US20070162639A1 (en) * 2005-11-30 2007-07-12 Chu Hsiao-Keng J TCP-offload-engine based zero-copy sockets
KR100738339B1 (ko) * 2005-12-01 2007-07-12 한국전자통신연구원 인터넷 프로토콜 오프로드의 패킷 전송 장치 및 방법
US20070239897A1 (en) * 2006-03-29 2007-10-11 Rothman Michael A Compressing or decompressing packet communications from diverse sources
US20070233886A1 (en) * 2006-04-04 2007-10-04 Fan Kan F Method and system for a one bit TCP offload
US20070255866A1 (en) * 2006-05-01 2007-11-01 Eliezer Aloni Method and system for a user space TCP offload engine (TOE)
US7596628B2 (en) * 2006-05-01 2009-09-29 Broadcom Corporation Method and system for transparent TCP offload (TTO) with a user space library
US9794378B2 (en) * 2006-11-08 2017-10-17 Standard Microsystems Corporation Network traffic controller (NTC)
US7773546B2 (en) * 2006-11-21 2010-08-10 Broadcom Corporation System and method for a software-based TCP/IP offload engine for digital media renderers
US7849214B2 (en) * 2006-12-04 2010-12-07 Electronics And Telecommunications Research Institute Packet receiving hardware apparatus for TCP offload engine and receiving system and method using the same
US11405969B2 (en) * 2010-09-29 2022-08-02 International Business Machines Corporation Enabling interface aggregation of mobile broadband network interfaces

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06216917A (ja) * 1992-09-17 1994-08-05 D 2 B Syst Co Ltd 多重装置消費者エレクトロニクスシステム
JP2004072752A (ja) * 1994-08-31 2004-03-04 At & T Corp データ送信のためのネットワークの高帯域幅データ搬送チャネルを選択する低帯域幅を用いた無線チャネル設定
JP2002524005A (ja) * 1998-08-28 2002-07-30 アラクリテック・インコーポレイテッド 通信を高速化するインテリジェントネットワークインタフェース装置及びシステム
JP2002009869A (ja) * 2000-06-19 2002-01-11 Victor Co Of Japan Ltd ネットワークi/fカード
JP2005502225A (ja) * 2001-04-24 2005-01-20 アイレディ コーポレーション ギガビット・イーサネット・アダプタ
JP2008507030A (ja) * 2004-07-14 2008-03-06 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワーク・プロトコル処理のオフロードにおいてメモリ管理をサポートする装置および方法
JP2007150390A (ja) * 2005-11-24 2007-06-14 Matsushita Electric Ind Co Ltd 通信装置

Also Published As

Publication number Publication date
WO2008058254A3 (en) 2008-12-04
TW200839535A (en) 2008-10-01
US9794378B2 (en) 2017-10-17
US10749994B2 (en) 2020-08-18
TWI378696B (en) 2012-12-01
US20180041785A1 (en) 2018-02-08
WO2008058254A2 (en) 2008-05-15
US20080109562A1 (en) 2008-05-08
JP2010519785A (ja) 2010-06-03

Similar Documents

Publication Publication Date Title
JP4870819B2 (ja) ネットワーク・トラフィック・コントローラ
US8880728B2 (en) High speed ethernet MAC and PHY apparatus with a filter based ethernet packet router with priority queuing and single or multiple transport stream interfaces
TW499810B (en) DSL modem with management capability
US8259761B2 (en) Method and system for managing multimedia traffic over ethernet
US10439862B2 (en) Communication terminal with multiple virtual network interfaces
US6925518B2 (en) Bridging system for interoperation of remote groups of devices
CA2612024C (en) System and method for routing signals intended for one device through another device connected to a shared access network
JP2000032016A (ja) デジタル信号受信機、ネットワ―ク及びトランスポ―トストリ―ム送信方法
CN105052081A (zh) 通信流量处理架构和方法
EP2606620B1 (en) Method and apparatus for transmitting and receiving data based on secured path bandwidth in network established by using audio/video interface
US20220086260A1 (en) USB to Coax Bridge
WO2008120960A1 (en) Network bridge apparatus and communication method using the same
KR20110119526A (ko) Av 인터페이스를 통해 이더넷 데이터를 전송하는 방법 및 장치
JP2009088962A (ja) 通信アダプタ、通信装置および通信方法
WO2021008530A1 (zh) 实现光网络单元和机顶盒融合的片上系统
US8898716B2 (en) Method and apparatus for designing a communication mechanism between embedded cable modem and embedded set-top box
WO2012094285A1 (en) Apparatus and method for multi-device routing in a gateway
WO2010134145A1 (ja) データ通信装置、ホームネットワークシステム、データ通信方法、プログラム、及び集積回路
KR20050027266A (ko) 버스 구조 네트워크 상에서 통신을 수행하는 방법 및디바이스

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110422

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110517

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110817

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111101

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111117

R150 Certificate of patent or registration of utility model

Ref document number: 4870819

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141125

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250