(57)【特許請求の範囲】
【請求項１】
ルータでの通信のための方法であって、前記方法は、
ローカルエリアネットワーク（ＬＡＮ）のソースノードから前記ＬＡＮに結合されたルータにネットワークプロトコルスタック処理をオフロードすることを備え、ネットワークプロトコルスタック処理をオフロードすることが、
前記ルータの第１の入力において前記ソースノードから第１のデータを受信することと、ここにおいて、前記第１のデータは、前記ルータに結合されたワイドエリアネットワーク（ＷＡＮ）上の各ノードおよび前記ＬＡＮ上の各ノードへの通信に好適でない第１のフォーマットである、
前記ルータのネットワークプロトコルスタックにおいて前記第１のデータを処理して、第２のフォーマットの第２のデータを生成することと、ここにおいて、前記第２のフォーマットは、前記ＷＡＮへの通信に好適である、
前記ＷＡＮに前記第２のデータを通信することと
を含む、方法。
【請求項２】
前記ルータの前記第１の入力において前記ＬＡＮから前記第１のデータを受信することが、前記ＷＡＮを介したトランスポートのためのヘッダ情報を含まないフォーマットの前記第１のデータを受信することを含み、
前記ルータの前記ネットワークプロトコルスタックにおいて前記第１のデータを処理して、前記ＷＡＮへの通信に好適である前記第２のフォーマットの第２のデータを生成することが、トランスポートレイヤヘッダを前記第１のデータに付加することを含む
請求項１に記載の方法。
【請求項３】
前記ルータの第２の入力において前記ＷＡＮから第３のデータを受信することと、ここで、前記第３のデータは前記第２のフォーマットである、
前記ルータから前記ソースノードに前記第３のデータをルーティングすることと
をさらに備える、請求項１に記載の方法。
【請求項４】
前記ネットワークプロトコルスタック処理をオフロードすることが、
前記ルータにおいて前記ＷＡＮからパケットを受信したことに応答して、前記ルータの前記ネットワークプロトコルスタックにおいて肯定応答を生成することと、
前記ＷＡＮに前記肯定応答を通信することと
を備える、請求項１に記載の方法。
【請求項５】
前記ネットワークプロトコルスタック処理をオフロードすることが、
前記ルータの前記ネットワークプロトコルスタックにおいて、前記第１のデータの受信の肯定応答が第１の時間量中で受信されなかったと判断したことに応答して、前記第２のデータを通信すること
を備える、請求項１に記載の方法。
【請求項６】
前記第２のデータを生成することが、前記第１のデータに基づいてパケットを形成することを備え、前記ルータから前記ＷＡＮに前記パケットの複数のコピーを通信することをさらに備える、請求項１に記載の方法。
【請求項７】
前記ルータの前記ネットワークプロトコルスタックがＴＣＰ／ＩＰスタックを備える、請求項１に記載の方法。
【請求項８】
前記ルータの前記ネットワークプロトコルスタックがＵＤＰスタックを備える、請求項１に記載の方法。
【請求項９】
ルータであって、
ローカルエリアネットワーク（ＬＡＮ）に結合されるように構成された第１の入力と、
前記ＬＡＮのソースノードからネットワークプロトコルスタック処理をオフロードするように構成されたプロセッサと
を備え、
前記プロセッサが、
前記ルータの第１の入力において前記ソースノードから第１のデータを受信することと、ここにおいて、前記第１のデータは、前記ルータに結合されたワイドエリアネットワーク（ＷＡＮ）上の各ノードおよび前記ＬＡＮ上の各ノードへの通信に好適でない第１のフォーマットである、
前記ルータのネットワークプロトコルスタックにおいて前記第１のデータを処理して、第２のフォーマットの第２のデータを生成することであって、前記第２のフォーマットは、前記ＷＡＮへの通信に好適である、
前記ＷＡＮに前記第２のデータを通信することと
を行うようにさらに構成された
ルータ。
【請求項１０】
前記ＷＡＮへの通信に好適でない前記第１のフォーマットが、前記ＷＡＮを介したトランスポートのためのヘッダ情報を含まないフォーマットを備える請求項９に記載のルータ。
【請求項１１】
前記プロセッサは、
前記ルータの第２の入力において前記ＷＡＮから第３のデータを受信することと、ここで、前記第３のデータは前記第２のフォーマットである、
前記ルータから前記ＷＡＮに前記第３のデータをルーティングすることと
を行うためのものである、請求項９に記載のルータ。
【請求項１２】
前記プロセッサは、
前記ルータの前記ＷＡＮからパケットを受信したことに応答して、前記ルータの前記ネットワークプロトコルスタックにおいて肯定応答を生成することと、
前記ＷＡＮに前記肯定応答を通信することと
によって、前記ネットワークプロトコルスタック処理をオフロードするためのものである、請求項９に記載のルータ。
【請求項１３】
前記プロセッサは、
前記ルータの前記ネットワークプロトコルスタックにおいて、前記第１のデータの受信の肯定応答が第１の時間量中で受信されなかったと判断したことに応答して、前記第２のデータを通信すること
によって前記ネットワークプロトコルスタック処理をオフロードするためのものである、請求項９に記載のルータ。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本出願は、２０１１年４月１３日に出願された米国特許出願第１３／０８６，０００号の優先権の利益を主張する。
【０００２】
本開示は、コンピュータネットワークに関し、より詳細には、コンピュータネットワークのためのルーティングデバイスに関する。
【背景技術】
【０００３】
コンピュータはますます、通信ネットワークを介して他のコンピュータと通信している。ネットワークは、コンピュータが、コンピュータによって個々に実行され得ない様々なサービスを提供することを可能にする。たとえば、コンピュータの集合は、ユーザがコンピュータ間で共有される共通のゲーム環境において競争する、オンラインゲームにユーザが参加することを可能にすることができる。しかしながら、コンピュータによって通信ネットワークに通信される情報の量が増加するにつれて、コンピュータリソースはストレスを受け、情報転送において望ましくない遅延を引き起こすことがある。これによりユーザエクスペリエンスが不十分になることがある。たとえば、ユーザはネットワークラグを経験することがあり、ネットワークによって転送された情報がコンピュータによって十分な速度で処理されず、したがって、ユーザは情報転送における遅延を知覚することが可能である。さらに、ネットワークラグおよび他のネットワーク転送問題が、ゲームアプリケーション、ボイス通信アプリケーションなど、多種多様なアプリケーションに影響を及ぼすことがある。
【発明の概要】
【０００４】
いくつかの実施形態では、方法は、ローカルエリアネットワーク（ＬＡＮ）のソースノードからＬＡＮに結合されたルータにネットワークプロトコルスタック処理をオフロードすることを備える。
【０００５】
いくつかの実施形態では、ネットワークプロトコルスタック処理をオフロードすることは、ルータの第１の入力においてＬＡＮから第１のデータの受信することであって、第１のデータが、ルータに結合されたワイドエリアネットワークへの通信に好適でない第１のフォーマットである、受信することと、第２のフォーマットの第２のデータを判断するために、ルータのネットワークプロトコルスタックにおいて第１のデータを処理することであって、第２のフォーマットがワイドエリアネットワークへの通信に好適である、処理することと、ワイドエリアネットワークに第２のデータを通信することとを備える。
【０００６】
いくつかの実施形態では、本方法は、ルータの第２の入力においてワイドエリアネットワークから第３のデータを受信することであって、第３のデータが第２のフォーマットである、受信することと、ルータからワイドエリアネットワークに第３のデータをルーティングすることとをさらに備える。
【０００７】
いくつかの実施形態では、ネットワークプロトコルスタック処理をオフロードすることは、ルータにおいてワイドエリアネットワークからパケットを受信したことに応答して、ルータにおいて実行されるネットワークプロトコルスタックにおいて肯定応答を生成することと、ワイドエリアネットワークに肯定応答を通信することとを備える。
【０００８】
いくつかの実施形態では、ネットワークプロトコルスタック処理をオフロードすることは、ルータにおいて実行されるネットワークプロトコルスタックにおいて、第１のデータの受信の肯定応答が第１の時間量中で受信されなかったと判断したことに応答して、第２のデータを再通信することを備える。
【０００９】
いくつかの実施形態では、第２のデータを判断することが、第１のデータに基づいて第１のパケットを形成することを備え、ルータからワイドエリアネットワークにパケットの複数のコピーを通信することをさらに備える。
【００１０】
いくつかの実施形態では、ルータのネットワークプロトコルスタックはＴＣＰ／ＩＰスタックを備える。
【００１１】
いくつかの実施形態では、ルータのネットワークプロトコルスタックはＵＤＰスタックを備える。
【００１２】
いくつかの実施形態では、方法は、ルータにおいて第１のデータを受信することと、第１のデータがローカルエリアネットワーク（ＬＡＮ）のノードにターゲッティングされていると判断したことに応答して、ＬＡＮのノードにルーティングするのためにローカルエリアネットワークに第１のデータの第１の数のコピーを送ることと、第１のデータがワイドエリアネットワーク（ＷＡＮ）のノードにターゲッティングされていると判断したことに応答して、ＷＡＮのノードにルーティングするためにワイドエリアネットワークに第１のデータの第２の数のコピーを送ることとを備える。
【００１３】
いくつかの実施形態では、本方法は、ルータにおいてＬＡＮから第２のデータを受信することであって、第２のデータがＷＡＮへの通信に好適でない第１のフォーマットである、受信することと、第２のフォーマットの第３のデータを判断するために、ルータのネットワークプロトコルスタックにおいて第１のデータを処理することであって、第２のフォーマットがＷＡＮへの通信に好適である、処理することと、ＷＡＮに第２のデータを通信することとをさらに備える。
【００１４】
いくつかの実施形態では、本方法は、ルータにおいてワイドエリアネットワークから第３のデータを受信することであって、第３のデータが第２のフォーマットである、受信することと、ルータからＷＡＮに第３のデータをルーティングすることとをさらに備える。
【００１５】
いくつかの実施形態では、本方法は、ルータにおいてＷＡＮからパケットを受信したことに応答して、ルータにおいて実行されるネットワークプロトコルスタックにおいて肯定応答を生成することと、ワイドエリアネットワークに肯定応答を通信することとをさらに備える。
【００１６】
いくつかの実施形態では、本方法は、ルータにおいて実行されるネットワークプロトコルスタックにおいて、第１のデータの受信の肯定応答が第１の時間量中で受信されなかったと判断したことに応答して、第２のデータを再通信することをさらに備える。
【００１７】
いくつかの実施形態では、ルータのネットワークプロトコルスタックはＴＣＰ／ＩＰスタックを備える。
【００１８】
いくつかの実施形態では、ルータのネットワークプロトコルスタックはＵＤＰスタックを備える。
【００１９】
いくつかの実施形態では、ルータは、ローカルエリアネットワーク（ＬＡＮ）に結合されるように構成された入力と、ＬＡＮのソースノードからネットワークプロトコルスタック処理をオフロードするように構成されたプロセッサとを備える。
【００２０】
いくつかの実施形態では、プロセッサは、ルータの第１の入力においてＬＡＮから第１のデータの受信することであって、第１のデータが、ルータに結合されたワイドエリアネットワークへの通信に好適でない第１のフォーマットである、受信することと、第２のフォーマットの第２のデータを判断するために、ルータのネットワークプロトコルスタックにおいて第１のデータを処理することであって、第２のフォーマットがワイドエリアネットワークへの通信に好適である、処理することと、ワイドエリアネットワークに第２のデータを通信することとによって、ネットワークプロトコルスタック処理をオフロードするためのものである。
【００２１】
いくつかの実施形態では、プロセッサは、ルータの第２の入力においてワイドエリアネットワークから第３のデータを受信することであって、第３のデータが第２のフォーマットである、受信することと、ルータからワイドエリアネットワークに第３のデータをルーティングすることとのためのものである。
【００２２】
いくつかの実施形態では、プロセッサは、ルータにおいてワイドエリアネットワークからパケットを受信したことに応答して、ルータにおいて実行されるネットワークプロトコルスタックにおいて肯定応答を生成することと、ワイドエリアネットワークに肯定応答を通信することとのためのものである。
【００２３】
いくつかの実施形態では、プロセッサは、ルータにおいて実行されるネットワークプロトコルスタックにおいて第１のデータの受信の肯定応答が第１の時間量中で受信されなかったと判断したことに応答して、第２のデータを再通信することによってネットワークプロトコルスタック処理をオフロードするためのものである。
【００２４】
添付の図面を参照することによって、本開示はより良く理解され、本開示の多数の特徴および利点が当業者に明らかになろう。
【図面の簡単な説明】
【００２５】
【図１】本開示の一実施形態による、通信ネットワークのブロック図。
【図２】本開示の一実施形態による、ルータのブロック図。
【図３】本開示の一実施形態による、通信システムのブロック図。
【図４】本開示の一実施形態による、ネットワークプロトコルスタックのブロック図。
【図５】本開示の一実施形態による、図１のルータの動作を示す流れ図。
【図６】本開示の一実施形態による、図１のルータにおいて通信を管理する方法の流れ図。
【発明を実施するための形態】
【００２６】
図１〜図６に、ネットワークに接続されたワイドエリアネットワークから受信したデータとは別様に、ネットワークに結合されたローカルエリアネットワークから受信したデータを処理するようにルータを構成することによって、通信ネットワークの通信効率を改善するための技法を示す。特に、ルータは、ワイドエリアネットワークから受信したデータを正常に処理しながら、ルータにとってローカルなネットワークプロトコルスタックにおいて、ローカルエリアネットワークから受信したデータを処理することができる。データのソースからルータにスタック処理をオフロードすることは、受信したデータに基づくパケットとパケットの宛先からの肯定応答との両方が進まなければならないネットワークホップの数を低減し、それによって通信レイテンシを低減する。さらに、ルータにスタック処理をオフロードすることは、データソースにおける処理負荷を低減することができる。さらに、ルータは、ローカルエリアおよびワイドエリアトラフィックのために異なるサービス品質または他の処理プロトコルを実装することができる。たとえば、ルータは、ローカルエリアネットワークにおける宛先にデータの複数のコピーを通信し、それによって、宛先が肯定応答を送る必要を低減または除去し、したがってレイテンシを低減することによって、ローカルエリアネットワークに関して比較的低いレイテンシを利用することができる。
【００２７】
本明細書で使用するネットワークプロトコルスタックは、１つまたは複数のコンピュータアプリケーションによって与えられた生データをトランスポート可能データに変換する機能のセットを指す。トランスポート可能データおよびトランスポート可能パケットは、ワイドエリアネットワークを介して通信され得るデータを指す。ネットワークプロトコルスタックは、コンピュータネットワークのルータおよび他のスイッチングデバイスを介した送信に好適であるフォーマットに生データを変換する。たとえば、生データは、データストリームを介して基本パケット化形態でアプリケーションによって与えられ得る。ネットワークプロトコルスタックは、データストリームから生データを抽出し、生データを１つまたは複数のトランスポート可能パケットにフォーマットし、トランスポート可能パケットに任意のヘッダまたは他の情報を付加し、トランスポート可能パケットを通信のためにネットワークに与える。
【００２８】
図１に、本開示の一実施形態による通信ネットワーク１００を示す。通信ネットワーク１００は、ローカルエリアネットワーク（ＬＡＮ）１０１と、ルータ１０２と、ワイドエリアネットワーク（ＷＡＮ）１２０とを含む。本明細書で使用するＬＡＮは、家庭、学校、コンピュータラボラトリまたはオフィスビルなどの限定された地理的エリア中のコンピュータおよびデバイスを接続するコンピュータネットワークを指す。ＷＡＮは、広いエリアをカバーし、都市圏、地域、または国の境界を横断するコンピュータネットワークを指す。したがって、ＬＡＮ１０１およびＷＡＮ１２０はそれぞれ、通信ネットワーク１００を介して通信するように構成されたサーバ、ルータ、および他のコンピュータデバイスを含む。ルータおよび他のスイッチングデバイスは、各パケット中に含まれるアドレス情報に従って、受信したパケットを他のネットワークノードにルーティングすることによって、ＬＡＮ１０１およびＷＡＮ１２０のための通信バックボーンを形成する。通信のためにネットワークからデータを受信するか、またはネットワークにデータを送ることができるネットワーク中の各ポイントをネットワークノードと呼ぶ。したがって、各ネットワークノードは、１つまたは複数のルータ、サーバ、コンピュータデバイスなど、またはそれらの任意の組合せを含むことができる。通信のためのデータを発信するか、またはデータのターゲット宛先であるネットワークノードをそのデータに関するエンドポイントと呼ぶ。
【００２９】
ルータ１０２は、ＬＡＮ１０１とＷＡＮ１２０の両方からデータを受信し、ＬＡＮ１０１中のノードおよびＷＡＮ１２０中のネットワークノードを含む他のネットワークノードにデータを通信するように構成されたルータデバイスである。ＬＡＮ１０１のネットワークノードから受信されたデータを説明のためにＬＡＮ側トラフィックと呼び、ＷＡＮのネットワークノードから受信されたデータをＷＡＮ側トラフィックと呼ぶ。ルータ１０２は、地理的にＬＡＮ１０１のノードの近くに位置する。たとえば、ルータ１０２は、家屋またはオフィスビルなど、ＬＡＮ１０１のネットワークノードと同じ建築物中に位置し得る。したがって、ルータ１０２のＬＡＮ側トラフィックは、一般にＷＡＮ側トラフィックよりも小さいレイテンシを有する。すなわち、ＬＡＮ側トラフィックは、一般にルータ１０２に達するまでの時間がＷＡＮ側トラフィックよりも短い。
【００３０】
ルータ１０２は、ＷＡＮ側トラフィックとは別様にＬＡＮ側トラフィックを処理することによって、ＬＡＮ側トラフィックの比較的小さいレイテンシを利用することができる。たとえば、ＬＡＮ側トラフィックは、ＷＡＮ１２０を介したルーティングに好適でない基本パケット化データストリーム中で与えられ得る。ルータ１０２は、ローカルで実行されるネットワークプロトコルスタックにおいてＬＡＮ側トラフィックを処理して、ＬＡＮ側トラフィックを、ＷＡＮ１２０を介した通信に好適であるフォーマットに配置し、処理されたトラフィックを正常にルーティングすることができる。さらに、ルータ１０２は、ＷＡＮ１２０のノードにターゲッティングされているＷＡＮ側トラフィックを正常にルーティングすることができる。ＬＡＮ１０１のノードにターゲッティングされているＷＡＮ側トラフィックの場合、ルータ１０２は、ＷＡＮ１２０を介した通信に好適でないデータストリームを形成するために、ローカルで実行されるネットワークプロトコルスタックを介してトラフィックを処理し、ターゲットネットワークノードにデータストリームを与えることができる。したがって、ルータ１０２は、従来は個々のノードにおいて実行されるネットワークプロトコルスタック機能をＬＡＮ１０１のノードのために実行することができる。ルータ１０２にネットワークプロトコルスタック機能をオフロードすることによって、ＬＡＮ１０１の各ノードにおける処理が簡略化される。
【００３１】
さらに、ルータ１０２にスタック処理機能をオフロードすることは、ＬＡＮ１０１から受信した情報に基づくパケットについてのネットワークホップの数を少なくとも１ホップだけ低減し、それによってネットワークレイテンシを低減する。特に、いくつかの通信プロトコルの場合、パケットが受信されたという肯定応答をパケットの宛先が送るのを指定された時間量の間待つことによって、ネットワークプロトコルスタックは通信信頼性を改善する。指定された（所定またはプログラマブルのいずれかの）時間期間内に肯定応答が受信されない場合、ネットワークプロトコルスタックは受信したパケットを再送信する。同様に、ネットワークプロトコルスタックは、パケットを受信したことに応答してパケットソースに肯定応答を送ることを担当することができる。図１の図示の実施形態では、ルータ１０２のネットワークプロトコルスタックは、肯定応答を送ることと、ＬＡＮ１０１から受信したデータのパケットを再送信することの両方を管理する。ネットワークホップに関して、ルータ１０２は宛先により近接しているので、ルータにおけるネットワークプロトコルスタックは、ＬＡＮ１０１のノードよりも迅速に肯定応答を受信および送信することができ、通信レイテンシは低減され得る。
【００３２】
さらに、いくつかの実施形態では、パケットがそれのターゲット宛先において受信されたという肯定応答を待つのではなく、ＬＡＮ１０１中の宛先にパケットの複数のコピーを送ることによって、通信信頼性が改善され得る。ＷＡＮ１２０中の宛先にターゲッティングされているパケットの場合、ルータ１０２から複数のパケットを送ることは、相対的レイテンシおよび帯域幅問題により、実現可能でないか、または望ましくないことがある。しかしながら、ＬＡＮ１０１中の宛先にターゲッティングされている情報は、ＷＡＮ１２０上で情報が通信されるよりも迅速にルータ１０２から通信される。したがって、ルータ１０２におけるネットワークプロトコルスタックにおいて、パケットがＬＡＮ１０１のノードにターゲッティングされていると判断したことに応答して、ルータ１０２は、宛先ノードに各パケットの複数のコピーを送ることができる。これは、宛先ノードからの肯定応答を待つ必要を低減または除去し、それによって通信レイテンシを低減することができる。ルータ１０２におけるネットワークプロトコルスタックは、ＴＣＰ／ＩＰ、ＵＤＰなど、１つまたは複数の通信プロトコルに準拠することができる。
【００３３】
別の実施形態では、ルータ１０２は、ＷＡＮ側トラフィックの場合とは異なるサービス品質または他の処理機能をＬＡＮ側トラフィックに与えることができる。たとえば、ターゲット宛先にデータの複数のコピーを送ることによって、通信のロバストネスが改善され得る。しかしながら、複数のコピーを作成することは、ＷＡＮ側トラフィックなど、高いレイテンシトラフィックの場合、実現可能でないことがある。したがって、ルータ１０２は、ＷＡＮ側トラフィックを介して与えられるデータのコピーよりも多い、ＬＡＮ側トラフィックを介して与えられるデータのコピーを送ることができる。たとえば、ＬＡＮ側トラフィックに関連する各パケットについて（パケットは、ＬＡＮ１０１のノードによって与えられるか、またはルータ１０２のローカルで実行されるネットワークプロトコルスタックによって形成される）、ルータ１０２は、ターゲットネットワークノードにパケットのＮ個のコピーを送ることができ、Ｎは整数である。対照的に、ＷＡＮ側トラフィックに関連するパケットの場合、ルータ１０２は、ターゲットネットワークノードにパケットのＭ個のコピーを送ることができ、Ｍは整数である。一実施形態では、ＭはＮよりも小さい。
【００３４】
図２を参照すると、本開示の一実施形態によるルータ１０２のブロック図が示されている。ルータ１０２は、トランスポート可能パケットと生データの両方の受信およびルーティングを可能にするためのいくつかのモジュールを含む。特に、図１の図示の例では、ルータ１０２は、プロセッサ２０４と、パケットバッファ２０６と、スイッチングファブリック２１０と、データ接続２１５〜２１７とを含む。データ接続は、ローカルエリアデータ接続２１５と、ワイドエリアネットワークデータ接続２１６および２１７とを含む。ワイドエリアネットワーク接続２１６および２１７の各々は、ワイドエリアネットワーク１２０のノードからのパケットの受信とワイドエリアネットワーク１２０のノードへのパケットの通信の両方を可能にするネットワークへの入出力接続である。特に、ワイドエリアネットワークデータ接続２１６および２１７の各々は、ワイドエリアネットワーク１２０中に含まれるノードの異なるサブセットに接続される。したがって、１つのネットワーク接続においてパケットを受信し、別のネットワーク接続を介してパケットを送信することによって、ルータ１０２は、ノードの１つのサブセットから別のサブセットにパケットを通信する。ローカルエリアデータ接続２１５は、ローカルエリアネットワーク１０１に接続され、ワイドエリアネットワーク１２０を介したトランスポートに好適でない生データを送信または受信することができる。たとえば、生データは、ネットワークを介したトランスポートのために適切なヘッダ情報を含まないことがある。さらに、生データは、ネットワークを介した通信を可能にするフォーマットで編成されないことがある。
【００３５】
スイッチングファブリック２１０は、ルータ１０２のモジュール間でトランスポート可能パケットをルーティングする通信バックボーンである。スイッチングファブリックは、与えられたトランスポート可能パケットをルータ１０２のどのモジュールが受信すべきであるかを示す制御シグナリングを受信する。したがって、スイッチングファブリック２１０は、ルータ１０２によるトランスポート可能パケットの受信、記憶、およびプロビジョンを可能にする。
【００３６】
パケットバッファ２０６は、ランダムアクセスメモリ（ＲＡＭ）、不揮発性メモリ、または受信したトランスポート可能パケットを記憶する他のメモリなど、メモリ構造である。パケットバッファ２０６は、個々にアドレス指定可能なロケーションにおいてトランスポート可能パケットを記憶することができ、それにより、パケットバッファ２０６は、受信した制御シグナリングに基づいてトランスポート可能パケットをアドレス指定可能なロケーションにおいて記憶するか、または取り出す。制御シグナリングは、パケットバッファ２０６へのアクセス要求が読取りアクセスであるか書込みアクセスであるかを示し、アクセスに関連するロケーションのアドレスを示す。それに応答して、パケットバッファ２０６は、書込みアクセスの場合、受信したトランスポート可能パケットを示されたロケーションにおいて記憶し、読取りアクセスの場合、示されたロケーションにおいて記憶されたパケットを取り出す。
【００３７】
プロセッサ２０４は、ルータ１０２の動作を制御するように動作可能なモジュールである。したがって、プロセッサ２０４は、汎用または特定用途向けプロセッサ、状態機械を実装するための１つまたは複数の論理モジュールなど、またはそれらの任意の組合せであり得る。ルータ１０２の動作を制御するために、プロセッサ２０４は、ルータ１０２において受信したパケットを監視し、各パケットに関連するアドレス情報に基づいて受信したパケットの記憶とルーティングとを可能にするための制御シグナリングを与える。プロセッサ２０４はまた、トランスポート可能パケットと生データとの間で変換するためにネットワークプロトコルスタックを実行することができる。
【００３８】
例示のために、動作中、ワイドエリアネットワークデータ接続２１６および２１７のうちの１つにおいてトランスポート可能パケットが受信される。パケットを受信したことに応答して、プロセッサ２０４は、パケットがパケットバッファ２０６に与えられるように、スイッチングファブリック２１０に制御シグナリングを与える。プロセッサ２０４はまた、受信したパケットがプロセッサ２０４によって示されたアドレスにおいて記憶されるように、パケットバッファ２０６に制御シグナリングを与える。プロセッサ２０４はまた、パケットバッファ２０６からパケットを取り出し、パケット中に含まれる宛先アドレス情報を分析し、宛先アドレスによって示されたワイドエリアネットワークデータ接続２１６および２１７のうちの１つにパケットが与えられるようにスイッチングファブリック２１０を制御するための制御シグナリングを与えることができる。特に、プロセッサ２０４は、ルータ１０２に接続されたネットワークノードの各サブセットに関連する宛先アドレス範囲を示す１つまたは複数のルーティングテーブル（図示せず）にアクセスすることができる。アドレスによって示されるノードのサブセットに基づいて、ルータ制御モジュールは、ノードの示されたサブセットに関連するワイドエリアネットワークデータ接続２１６および２１７のうちの１つにパケットを与えるために、スイッチングファブリック２１０を制御することができる。
【００３９】
さらに、プロセッサ２０４は、ローカルエリアネットワークデータ接続２１５から生データを受信し、生データをトランスポート可能パケットに変換するためにネットワークプロトコルスタックを実行することができる。次いで、プロセッサ２０４は、通信のためのパケットバッファ２０６においてトランスポート可能パケットを記憶する。さらに、プロセッサ２０４は、パケットバッファ２０６において記憶されたトランスポート可能パケットがＬＡＮ１０１のネットワークノードにターゲッティングされていると判断し、それに応答して、トランスポート可能データパケットを生データに変換するためにネットワークプロトコルスタックを採用することができる。プロセッサ２０４は、ＬＡＮ１０１のターゲットネットワークノードに通信するための生データをローカルエリアネットワークデータ接続２１５に与える。
【００４０】
トランスポート可能パケットへの生データの変換に加えて、プロセッサ２０４において実行するネットワークプロトコルスタックは、ローカルエリアネットワーク接続２１５を介して受信したデータから形成されたトランスポート可能パケットについて、フロー制御およびネットワークプロトコルスタックに関連する他の機能を含む他の機能を実行することができる。たとえば、プロセッサ２０４において実行されるネットワークプロトコルスタックは、ＷＡＮ１２０から受信され、ＬＡＮ１０１にターゲッティングされているパケットのための肯定応答を生成すること、パケットを再送すべきか宛先に別のパケットを送るべきかを判断するためにパケット宛先からの肯定応答を待つことなど、通信信頼性機能を管理することができる。さらに、プロセッサ２０４におけるネットワークプロトコルスタックは、ＬＡＮ１０１におけるノードにターゲッティングされているパケットのための肯定応答を採用する代わりに、各パケットの複数のコピーを送り、それによって通信レイテンシを低減することができる。したがって、プロセッサ２０４は、ローカルエリアネットワーク接続２１５に接続されたコンピュータデバイスのためのネットワークプロトコルスタックプロキシとして機能する。
【００４１】
図３に、本開示の一実施形態による図１のルータ１０２を組み込んだ通信システム３００を示す。通信システム３００はまた、ＷＡＮ１２０とＬＡＮ１０１とを含む。ＬＡＮ１０１は、それぞれルータ１０２に接続されたコンピュータデバイス３３０および３３１を含む。コンピュータデバイス３３０および３３１の各々はアプリケーションを実行する。たとえば、コンピュータデバイス３３０はアプリケーション３４０を実行する。
【００４２】
図示の実施形態では、コンピュータデバイス３３０および３３１はそれぞれルータ１０２のＬＡＮ１０１に接続され、ＷＡＮ１２０はＷＡＮ接続２１６および２１７に接続されていると仮定する。コンピュータデバイス３３０は、アプリケーション３４０から生データを受信し、受信した生データをルータ１０２への接続を介して通信され得るフォーマットに処理し、変換された生データをルータ１０２に通信するルータインターフェースプロトコルスタック３４１を実行する。ルータインターフェースプロトコルスタック３４１は、受信したデータをトランスポート可能パケットに変換しない。したがって、ルータ１０２におけるプロセッサ２０４は、ルータインターフェースプロトコルスタックによって与えられた生データをトランスポート可能データパケットに変換するネットワークプロトコルスタック３５０を実行する。さらに、ネットワークプロトコルスタック３５０は、コンピュータデバイス３３０にターゲッティングされているトランスポート可能パケットを生データに変換し、生データをルータインターフェースプロトコルスタック３４１に与える。それに応答して、ルータインターフェースプロトコルスタック３４１は、受信したデータを、アプリケーション３４０によって処理され得るフォーマットに変換する。一実施形態では、ルータインターフェースプロトコルスタックは、コンピュータデバイス３３０のネットワークインターフェースカード（ＮＩＣ）など、ネットワークインターフェースデバイスによって実行される。
【００４３】
さらに、ネットワークプロトコルスタック３５０は、コンピュータデバイス３３０のためにフロー制御および他のネットワークプロトコルスタック機能を実行する。これはコンピュータデバイス３３０における処理負荷を低減し、それによってネットワークラグおよび他の通信問題を低減する。
【００４４】
図４に、本開示の一実施形態によるネットワークプロトコルスタック４００を示す。ネットワークプロトコルスタック４００は、トランスポートレイヤ４２２と、インターネットレイヤ４２４と、リンクレイヤ４２６とを含み、各々がネットワークプロトコルスタック４００のための関連する機能を実行する。特に、ネットワークプロトコルスタック４００は、アプリケーションレイヤ４２０において実行するアプリケーションを用いて情報を通信する。図示の実施形態では、アプリケーションレイヤ４２０は、図３のコンピュータデバイス３３０など、エンドポイントにおいて実行される。トランスポートレイヤ４２２、インターネットレイヤ４２４、およびリンクレイヤ４２６は、ルータ１０２のプロセッサ２０４においてそれぞれ実行され、それによってエンドポイントからこれらの機能をオフロードする。
【００４５】
図５に、本開示の一実施形態によるルータ１０２の動作を示す流れ図を示す。ブロック５３０において、データ接続２１５〜２１７において情報を受信する。ＷＡＮ接続２１６および２１７のうちの１つにおいて情報を受信し、情報がトランスポート可能パケットである場合、ブロック５３４において、ルータ１０２は、ターゲットネットワークノードにトランスポート可能パケットをルーティングする。ＬＡＮ接続２１５において情報を受信した場合、ブロック５３２において、ルータ１０２は、ネットワークプロトコルスタックに受信した生データを与える。ネットワークプロトコルスタック５３２は、受信した生データをトランスポート可能パケットに変換し、ブロック５３４において、トランスポート可能パケットをターゲットネットワークノードにルーティングする。
【００４６】
図６に、本開示の一実施形態による、ルータ１０２において通信を管理する方法の流れ図を示す。ブロック６０２において、ルータは、データ接続２１５〜２１７のうちの１つから通信されるべきデータを受信する。ブロック６０４において、ルータ１０２は、受信したデータがＬＡＮ１０１のノードにターゲッティングされているのかＷＡＮ１２０のノードにターゲッティングされているのかを判断する。この判断は、たとえば、データがそれを介して受信される特定のデータ接続に基づいて行われ得る。データがＬＡＮ１０１のノードにターゲッティングされている場合、ルータ１０２は、パケットを形成するためにローカルで実行されるネットワークプロトコルスタックにおいてデータを処理し、ブロック６０６において、通信のために各パケットのＮ個のコピーを作成し、Ｎは整数である。ブロック６０８において、ルータ１０２は、ＬＡＮ１０１のターゲットネットワークノードに各パケットのＮ個のコピーを送る。ブロック６０４において、ルータ１０２が、受信したデータがＷＡＮ１２０のノードにターゲッティングされていると判断した場合、方法フローはブロック６１０に進み、ルータ１０２は各受信したパケットのＭ個のコピーを作成し、ＭはＮとは異なる整数である。ブロック６１２において、ルータ１０２は、ターゲットネットワークノードにＭ個のコピーをルーティングする。一実施形態では、Ｍは１に等しく、ルータ１０２は、受信したパケットのコピーを作成せず、むしろ、コピーを作成することなしにターゲットノードに各パケットをルーティングする。
【００４７】
上記で開示した主題は、例示的であり、限定的でないと考えられるべきであり、添付の特許請求の範囲は、本発明の真の趣旨および範囲内に入るすべてのそのような修正、拡張および他の実施形態をカバーするものとする。したがって、本発明の範囲は、以下の特許請求の範囲およびそれらの均等物の最も広い許可される解釈によって、法律によって許される最大の範囲に判断されるべきであり、上記の詳細な説明によって制限または限定されるべきでない。
以下に、本件の出願当初の特許請求の範囲を付記する。
［Ｃ１］
ローカルエリアネットワーク（ＬＡＮ）処理のソースノードから前記ＬＡＮに結合されたルータにネットワークプロトコルスタック処理をオフロードすること
を備える、方法。
［Ｃ２］
前記ネットワークプロトコルスタック処理をオフロードすることが、
前記ルータの第１の入力においてＬＡＮから第１のデータを受信することであって、前記第１のデータが、前記ルータに結合されたワイドエリアネットワークへの通信に好適でない第１のフォーマットである、受信することと、
第２のフォーマットの第２のデータを判断するために、前記ルータのネットワークプロトコルスタックにおいて前記第１のデータを処理することであって、前記第２のフォーマットが前記ワイドエリアネットワークへの通信に好適である、処理することと、
前記ワイドエリアネットワークに前記第２のデータを通信すること
を備える、請求項１に記載の方法。
［Ｃ３］
前記ルータの第２の入力において前記ワイドエリアネットワークから第３のデータを受信することであって、前記第３のデータが前記第２のフォーマットである、受信することと、
前記ルータから前記ワイドエリアネットワークに前記第３のデータをルーティングすることと
をさらに備える、請求項２に記載の方法。
［Ｃ４］
前記ネットワークスタック処理をオフロードすることが、
前記ルータにおいて前記ワイドエリアネットワークからパケットを受信したことに応答して、前記ルータにおいて実行されるネットワークプロトコルスタックにおいて肯定応答を生成することと、
前記ワイドエリアネットワークに前記肯定応答を通信することと
を備える、請求項２に記載の方法。
［Ｃ５］
前記ネットワークスタック処理をオフロードすることが、
前記ルータにおいて実行されるネットワークプロトコルスタックにおいて、前記第１のデータの受信の肯定応答が第１の時間量中で受信されなかったと判断したことに応答して、前記第２のデータを再通信すること
を備える、請求項２に記載の方法。
［Ｃ６］
前記第２のデータを判断することが、前記第１のデータに基づいて第１のパケットを形成することを備え、前記ルータから前記ワイドエリアネットワークに前記パケットの複数のコピーを通信することをさらに備える、請求項２に記載の方法。
［Ｃ７］
前記ルータの前記ネットワークプロトコルスタックがＴＣＰ／ＩＰスタックを備える、請求項１に記載の方法。
［Ｃ８］
前記ルータの前記ネットワークプロトコルスタックがＵＤＰスタックを備える、請求項１に記載の方法。
［Ｃ９］
ルータにおいて第１のデータを受信することと、
前記第１のデータが前記ローカルエリアネットワーク（ＬＡＮ）のノードにターゲッティングされていると判断したことに応答して、前記ＬＡＮの前記ノードにルーティングするのために前記ローカルエリアネットワークに前記第１のデータの第１の数のコピーを送ることと、
前記第１のデータがワイドエリアネットワーク（ＷＡＮ）のノードにターゲッティングされていると判断したことに応答して、前記ＷＡＮの前記ノードにルーティングするために前記ワイドエリアネットワークに前記第１のデータの第２の数のコピーを送ることと
を備える、方法。
［Ｃ１０］
前記ルータにおいて前記ＬＡＮから前記第２のデータを受信することであって、前記第２のデータが、前記ＷＡＮへの通信に好適でない第１のフォーマットである、受信することと、
第２のフォーマットの第３のデータを判断するために、前記ルータのネットワークプロトコルスタックにおいて前記第１のデータを処理することであって、前記第２のフォーマットが前記ＷＡＮへの通信に好適である、処理することと、
前記ＷＡＮに前記第２のデータを通信すること
をさらに備える、請求項９に記載の方法。
［Ｃ１１］
前記ルータにおいて前記ワイドエリアネットワークから第３のデータを受信することであって、前記第３のデータが前記第２のフォーマットである、受信することと、
前記ルータから前記ＷＡＮに前記第３のデータをルーティングすることと
をさらに備える、請求項１０に記載の方法。
［Ｃ１２］
前記ルータにおいて前記ＷＡＮからパケットを受信したことに応答して、前記ルータにおいて実行されるネットワークプロトコルスタックにおいて肯定応答を生成することと、
前記ワイドエリアネットワークに前記肯定応答を通信することと
をさらに備える、請求項１０に記載の方法。
［Ｃ１３］
前記ルータにおいて実行される前記ネットワークプロトコルスタックにおいて、前記第１のデータの受信の肯定応答が第１の時間量中で受信されなかったと判断したことに応答して、前記第２のデータを再通信することを
さらに備える、請求項１０に記載の方法。
［Ｃ１４］
前記ルータの前記ネットワークプロトコルスタックがＴＣＰ／ＩＰスタックを備える、請求項１０に記載の方法。
［Ｃ１５］
前記ルータの前記ネットワークプロトコルスタックがＵＤＰスタックを備える、請求項１０に記載の方法。
［Ｃ１６］
ローカルエリアネットワーク（ＬＡＮ）に結合されるように構成された入力と、
前記ＬＡＮのソースノードからネットワークプロトコルスタック処理をオフロードするように構成されたプロセッサと
を備える、ルータ。
［Ｃ１７］
前記プロセッサは、
前記ルータの第１の入力においてＬＡＮから第１のデータを受信することであって、前記第１のデータが、前記ルータに結合されたワイドエリアネットワークへの通信に好適でない第１のフォーマットである、受信することと、
第２のフォーマットの第２のデータを判断するために、前記ルータのネットワークプロトコルスタックにおいて前記第１のデータを処理することであって、前記第２のフォーマットが前記ワイドエリアネットワークへの通信に好適である、処理することと、
前記ワイドエリアネットワークに前記第２のデータを通信することと
によって、前記ネットワークプロトコルスタック処理をオフロードするためのものである、請求項１６に記載のルータ。
［Ｃ１８］
前記プロセッサは、
前記ルータの第２の入力において前記ワイドエリアネットワークから第３のデータを受信することであって、前記第３のデータが前記第２のフォーマットである、受信することと、
前記ルータから前記ワイドエリアネットワークに前記第３のデータをルーティングすることと
のためのものである、請求項１７に記載のルータ。
［Ｃ１９］
前記プロセッサは、
前記ルータにおいて前記ワイドエリアネットワークからパケットを受信したことに応答して、前記ルータにおいて実行されるネットワークプロトコルスタックにおいて肯定応答を生成することと、
前記ワイドエリアネットワークに前記肯定応答を通信することと
によって、前記ネットワークプロトコルスタック処理をオフロードするためのものである、請求項１７に記載のルータ。
［Ｃ２０］
前記プロセッサは、
前記ルータにおいて実行されるネットワークプロトコルスタックにおいて、前記第１のデータの受信の肯定応答が第１の時間量中で受信されなかったと判断したことに応答して、前記第２のデータを再通信すること
によって前記ネットワークプロトコルスタック処理をオフロードするためのものである、請求項１７に記載のルータ。
【図１】
0005815838.tif 000002
【図２】
0005815838.tif 000003
【図４】
0005815838.tif 000004
【図５】
0005815838.tif 000005
【図６】
0005815838.tif 000006
【図３】
0005815838.tif 000007