本出願の実施形態は、ネットワークリソースに対して洗練された管理を実施し、ネットワークリソース割り当ての合理性を高めるためのパケット処理方法および装置、デバイス、ならびにシステムを提供する。
第1の態様によると、本出願はパケット処理方法を提供する。方法はネットワークシステムに適用でき、ネットワークシステムは入口ノードと出口ノードとを含む。入口ノードは、アプリケーションプログラムからパケットを転送するために使用される経路上の最初のノードであり、入口ノードはデバイス、例えばルーター(router)またはスイッチ(switch)であってよい。出口ノードは、アプリケーションプログラムからパケットを転送するために使用される経路上の最後のノードであり、出口ノードはデバイス、例えばルーター(router)またはスイッチ(switch)であってよい。経路は、トラフィックエンジニアリング(traffic engineer、TE)トンネル、またはセグメントルーティング(segment routing、SR)ポリシー(policy)など、様々なタイプのトンネルであってよい。パケットは、入口ノードと出口ノードの間の経路を通じて送信先ノードに到達する。パケット処理方法は以下のステップを含んでよい。第一に、入口ノードはパケットを取得し、パケットに対応するアプリケーションプログラムの特徴情報を取得する。アプリケーションプログラムの特徴情報は、アプリケーションプログラムの識別情報とネットワーク性能要件情報のうち、少なくともいずれか1つを含む。識別情報はアプリケーションプログラムを識別するために用いられる。「アプリケーションプログラムを識別する」の「識別する」は、アプリケーションプログラムを一意に識別することを意味してよく、あるいはアプリケーションプログラムのタイプを識別することを意味してよい。アプリケーションプログラムのネットワーク性能要件情報は、帯域幅(bandwidth)情報、レイテンシ(latency)情報、レイテンシジッター(jitter)情報、パケット損失(packet loss)情報、信頼性(reliability)情報、およびセキュリティ(security)情報など、1つ以上の情報として表されてよい。第二に、入口ノードは、アプリケーションプログラムの特徴情報に基づいて入口ノードと出口ノードの間の経路を決定する。通常、入口ノードは、アプリケーションプログラムの特徴情報、および、アプリケーションプログラムの特徴情報と、入口ノードと出口ノードの間の経路との間のマッピング関係に
基づいて、入口ノードと出口ノードの間の経路を決定する。最後に、入口ノードは、入口ノードと出口ノードの間の経路を通じてパケットを転送する。
従来は、パケットのクインタプル情報(IP送信先アドレス、IP送信元アドレス、トランスポート層送信元ポート、トランスポート層送信先ポート、およびプロトコル種別)に基づいてトラフィック要件を満たす経路がマッチされる。具体的に述べると、同じクインタプル情報を有するパケットは同じ経路にマッチする。しかし、同じクインタプルを有するパケットは多数あり得、経路に対するトラフィック要件はパケットによって異なる場合がある。したがって、クインタプル情報に基づいて実施される従来のトラフィックスケジューリングソリューションの管理粒度は比較的粗く、ネットワークリソース割り当ての合理性は乏しい。同じクインタプルを有するパケットは、複数のアプリケーションプログラムのパケットを含み得る。したがって、本出願では、別々のアプリケーションプログラムからのパケットについてネットワーク性能に一致する経路をマッチさせるため、アプリケーションプログラムレベルに基づくトラフィックスケジューリングが行われる。従来のソリューションと比べて、トラフィックスケジューリングソリューションの管理粒度はより細かい。これは、ネットワークリソースに対して洗練された管理を実施し、ネットワークリソース割り当ての合理性を高める。
可能な一実装において、パケットがインターネットプロトコルバージョン6(Internet Protocol version 6、IPv6)パケットである場合、アプリケーションプログラムの特徴情報は、IPv6パケットのIPv6拡張ヘッダーまたは送信先アドレスの中で運ばれる。アプリケーションプログラムの特徴情報がIPv6パケットのIPv6拡張ヘッダーに封入されるため、IPv6拡張ヘッダーの様々な利点が便利に利用される。例えば、TLVフィールド内の値の形式は柔軟に設定でき、ネットワークデバイスと入口ノードは特徴情報を直接読み取ることができ、入口ノードから出口ノードへの経路上のネットワークノードも情報を読み取ることができる。加えて、アプリケーションプログラムの特徴情報がIPv6パケットの送信先アドレスに封入されるため、入口ノードは、パケットの中のアプリケーションプログラムの特徴情報を効率的かつ迅速に取得できる。
可能な一実装において、IPv6パケットのIPv6拡張ヘッダーは、IPv6拡張ヘッダー内のタイプ・長さ・値(type-length-value、TLV)フィールド、およびセグメントルーティングヘッダー(segment routing header、SRH)内のセグメント識別子(segment identifier、SID)のうち、少なくともいずれか1つを含む。セグメントルーティングヘッダーのセグメント識別子を用いることによってアプリケーションプログラムの特徴情報が封入されるため、情報を直接抽出してIPv6パケットの送信先アドレスの中に入れることができ、入口ノードは、パケットの中のアプリケーションプログラムの特徴情報を効率的かつ迅速に取得する。
可能な一実装において、IPv6拡張ヘッダー内のTLVフィールド内の値の形式は、セグメント識別子形式であってよい。入口ノードがIPv6拡張ヘッダー内のTLVフィールドからアプリケーションプログラムの特徴情報を抽出することを可能にするため、入口ノードは、IPv6拡張ヘッダー内のTLVフィールド内の値の形式を、例えばセグメント識別子形式を、プロトコルによる通知方式で知り、その形式に基づいてアプリケーションプログラムの特徴情報を読み取ることができる。
可能な一実装において、IPv6拡張ヘッダー内のTLVフィールドは、ホップ・バイ・ホップ・オプション(hop-by-hop option)TLVフィールド、送信先オプション(destination option)TLVフィールド、およびSRH内のTLVフィールドのうち、少なくともいずれか1つを含む。
加えて、パケットに対応するアプリケーションプログラムの特徴情報を取得する下記3通りの実装があり得る。
可能な一実装においては、アプリケーションプログラムの特徴情報は、パケットの中で運ばれる。
この場合、パケットに対応するアプリケーションプログラムの特徴情報を取得するステップは、パケットから、パケットに対応するアプリケーションプログラムの特徴情報を抽出するステップを含む。この実装では、ネットワークがアプリケーションプログラムの特徴情報を直接認識でき、特徴情報を取得する効率は比較的高い。
別の可能な一実装において、パケットに対応するアプリケーションプログラムの特徴情報を取得するステップは、パケットに対応するアプリケーションプログラムの特徴情報を取得するため、パケットを解析するステップを含む。この実装では、パケットがアプリケーションプログラムの特徴情報を運ばないが、パケットを解析することによって取得される必要がある。利点は、既存のパケットを修正する必要がないことである。
さらに別の可能な一実装においては、パケットがアプリケーションプログラムに対応するサービス情報を運ぶことができ、このサービス情報は、アプリケーションプログラムが属するサービスに関する情報である。
この場合、パケットに対応するアプリケーションプログラムの特徴情報を取得するステップは、サービス情報に基づいて、パケットに対応するアプリケーションプログラムの特徴情報を決定するステップを含む。いくつかの適用シナリオでは、パケットがサービス情報を運ぶ。したがって、アプリケーションプログラムの特徴情報がサービス情報に基づいて決定される場合は、元のパケットを修正する必要がない。
勿論、前述した3通りの可能な実装ソリューションは本出願の技術的なソリューションを制限するものではなく、当業者なら実際の状況を踏まえて技術的なソリューションを設計できる。
加えて、可能な一実装において、アプリケーションプログラムの特徴情報がアプリケーションプログラムのネットワーク性能要件情報である場合、入口ノードがアプリケーションプログラムのネットワーク性能要件情報を取得することは、入口ノードがパケットに基づいてアプリケーションプログラムの識別情報を取得することを含み得る。入口ノードは、識別情報に基づいてアプリケーションプログラムのネットワーク性能要件情報を決定する。入口ノードがパケットに基づいてアプリケーションプログラムの識別情報を取得する実装については、アプリケーションプログラムの特徴情報を取得する上記の実装を参照されたい。ここでは詳細を繰り返し説明しない。アプリケーションプログラムのネットワーク性能要件情報に基づいて、入口ノードと出口ノードの間のマッチする経路を得ることができる。これは、アプリケーションプログラムレベルに基づくトラフィックスケジューリングを実施し、ネットワークリソース割り当ての合理性を高める。
可能な一実装において、アプリケーションプログラムの特徴情報は、アプリケーションプログラムに対応するユーザー識別子をさらに含み、ユーザー識別子は、アプリケーションプログラムに対応するユーザーを識別するため使用される。アプリケーションプログラムの特徴情報にユーザー識別子を加えることによって、パケットに対応する特定のユーザーを識別でき、後ほど、アプリケーションプログラムの識別情報および/またはアプリケーションプログラムのネットワーク性能要件情報にユーザー識別子を組み合わせることによって、入口ノードと出口ノードの間の経路が決定される。これは、ネットワークリソースに対してより洗練された管理を実施し、ネットワークリソース割り当ての適切性を高める。
可能な一実装において、方法は、入口ノードが、アプリケーションプログラムの特徴情報と、入口ノードと出口ノードの間の経路との間のマッピング関係を記憶することをさらに含む。こうして、入口ノードは、パケットに対応するアプリケーションプログラムの特徴情報とマッピング関係とに基づいて、入口ノードと出口ノードの間の経路を決定できる。
要するに、アプリケーションプログラムの特徴情報と、入口ノードと出口ノードの間の経路との間のマッピング関係は、
アプリケーションプログラムの識別情報と、入口ノードと出口ノードの間の経路との間のマッピング関係、アプリケーションプログラムのネットワーク性能要件情報と、入口ノードと出口ノードの間の経路との間のマッピング関係、アプリケーションプログラムの識別情報と、アプリケーションプログラムのネットワーク性能要件情報と、入口ノードと出口ノードの間の経路との間のマッピング関係、ユーザー識別子と、アプリケーションプログラムの識別情報と、入口ノードと出口ノードの間の経路との間のマッピング関係、ユーザー識別子と、アプリケーションプログラムのネットワーク性能要件情報と、入口ノードと出口ノードの間の経路との間のマッピング関係、またはユーザー識別子と、アプリケーションプログラムの識別情報と、アプリケーションプログラムのネットワーク性能要件情報と、入口ノードと出口ノードの間の経路との間のマッピング関係のうち、いずれか1つを含む。
可能な一実装において、入口ノードが、アプリケーションプログラムの特徴情報、および、アプリケーションプログラムの特徴情報と、入口ノードと出口ノードの間の経路との間のマッピング関係に基づいて、入口ノードと出口ノードの間の経路を決定することは、入口ノードが、アプリケーションプログラムの特徴情報、および、アプリケーションプログラムの特徴情報と、入口ノードと出口ノードの間の経路との間のマッピング関係に基づいて、アプリケーションプログラムの特徴情報にマッチする経路を選択することを含む。あるいは、入口ノードは、アプリケーションプログラムの特徴情報にマッチする経路が見つからない場合に、出口ノードへの経路を生成する。換言すると、アプリケーションプログラムの特徴情報にマッチするマッピング関係を入口ノードが記憶しようがしまいが、入口ノードと出口ノードの間の対応する経路は決定できる。
入口ノードが出口ノードへの経路を生成できる2通りの可能な実装があり得る。
可能な一実装においては、入口ノードが、ネットワークシステムの取得したトポロジ情報に基づいて、アプリケーションプログラムの特徴情報に対応する経路を生成する。この手法は、経路計算機能を持つ入口ノードに適用可能である。
別の可能な一実装においては、入口ノードが、コントローラへ経路取得要求を送信し、経路取得要求がアプリケーションプログラムの特徴情報を運ぶ。コントローラは、経路取得要求に基づいて、アプリケーションプログラムの特徴情報に対応する経路を生成する。入口ノードは、経路取得要求に基づいてコントローラによって生成され、アプリケーションプログラムの特徴情報に対応する経路を受信する。この実装は、経路計算機能を持たない入口ノードに適用可能である。
勿論、前述した2通りの可能な実装ソリューションは本出願の技術的なソリューションを制限するものではなく、当業者なら実際の状況を踏まえて技術的なソリューションを設計できる。
さらに、出口ノードへの経路を生成した後、入口ノードは、生成された経路とアプリケーションプログラムの特徴情報との対応関係を、アプリケーションプログラムの特徴情報と、入口ノードと出口ノードの間の経路との間のマッピング関係に加えることができるため、次回、入口ノードは、経路を再度計算する代わりに、生成されたマッピング関係に基づいてパケット転送を直接誘導する。
実際の適用では、アプリケーションプログラムのトラフィックが時間の経過にともない変化することがある。したがって、アプリケーションプログラムの変化したトラフィックに適応するため、入口ノードと出口ノードの間の対応する経路も相応に変化するべきである。したがって、可能な一実装において、方法は、分析結果を得るため、入口ノードが、アプリケーションプログラムの識別情報によって識別されるアプリケーションプログラムのトラフィックを分析することをさらに含む。入口ノードは、分析結果に基づいて、アプリケーションプログラムのパケットに対応する入口ノードと出口ノードの間の経路を調整する。
加えて、入口ノードを経路上の次ホップノードに接続するインターフェイスは1つ以上のキューに対応し得、キューがサポートするネットワーク性能はキューによって異なる場合がある。入口ノードからパケットが送信されるときに、対応するネットワーク性能を享受できるようにするため、入口ノードが入口ノードと出口ノードの間の経路を通じてパケットを転送することは、入口ノードが、アプリケーションプログラムの特徴情報に基づいて、アプリケーションプログラムの特徴情報に対応するキューを決定し、パケットをキューに加え、入口ノードと出口ノードの間の経路を通じてキュー内のパケットを転送することを含む。パケット転送過程でネットワーク性能の一貫性を保証するため、アプリケーションプログラムの特徴情報に対応するキューのネットワーク性能は、対応する経路のネットワーク性能にマッチできる。
相応に、方法は、入口ノードが、アプリケーションプログラムの特徴情報とキューとのマッピング関係を記憶することをさらに含む。入口ノードが、アプリケーションプログラムの特徴情報に基づいて、アプリケーションプログラムの特徴情報に対応するキューを決定することは、入口ノードが、アプリケーションプログラムの特徴情報、および、アプリケーションプログラムの特徴情報とキューとのマッピング関係に基づいて、キューを決定することを含む。
要するに、アプリケーションプログラムの特徴情報とキューとのマッピング関係は、アプリケーションプログラムの識別情報とキューとのマッピング関係、アプリケーションプログラムのネットワーク性能要件情報とキューとのマッピング関係、アプリケーションプログラムの識別情報と、アプリケーションプログラムのネットワーク性能要件情報と、キューとのマッピング関係、ユーザー識別子と、アプリケーションプログラムの識別情報と、キューとのマッピング関係、ユーザー識別子と、アプリケーションプログラムのネットワーク性能要件情報と、キューとのマッピング関係、またはユーザー識別子と、アプリケーションプログラムの識別情報と、アプリケーションプログラムのネットワーク性能要件情報と、キューとのマッピング関係のうち、いずれか1つを含む。
実際の適用では、アプリケーションプログラムのトラフィックが時間の経過にともない変化することがある。したがって、アプリケーションプログラムの変化したトラフィックに適応するため、対応するキューも相応に変化するべきである。したがって、可能な一実装において、方法は、分析結果を得るため、入口ノードが、アプリケーションプログラムの識別情報によって識別されるアプリケーションプログラムのトラフィックを分析することをさらに含む。入口ノードは、分析結果に基づいて、アプリケーションプログラムのパケットが加えられるキューを調整する。
第2の態様によると、本出願はパケット処理方法をさらに提供する。方法はネットワークシステムに適用でき、ネットワークシステムは、ネットワークデバイスと、入口ノードと、出口ノードとを含む。ネットワークデバイスは、例えば、ゲートウェイ、ネットワークアダプタ、アクセスデバイス、ルーター、またはスイッチであってよい。パケットは、入口ノードと出口ノードの間の経路を通じて送信先ノードに到達する。パケット処理方法は以下のステップを含む。第一に、ネットワークデバイスはパケットを取得し、パケットに対応するアプリケーションプログラムの特徴情報を取得する。アプリケーションプログラムの特徴情報は、アプリケーションプログラムの識別情報とネットワーク性能要件情報のうち、少なくともいずれか1つを含む。識別情報はアプリケーションプログラムを識別するために用いられる。アプリケーションプログラムの特徴情報の具体的な説明については、上記の説明を参照されたい。ここでは詳細を繰り返し説明しない。第二に、ネットワークデバイスは、アプリケーションプログラムの特徴情報を運ぶパケットを入口ノードへ送信する。アプリケーションプログラムの特徴情報は、パケットを転送するため、入口ノードから出口ノードまでの経路を決定するために入口ノードによって使用される。ネットワークデバイスがアプリケーションプログラムの特徴情報を運ぶパケットを入口ノードへ送信するので、入口ノードは、アプリケーションプログラムの特徴情報に基づいて、入口ノードと出口ノードの間の対応する経路を決定できる。これは、アプリケーションプログラムレベルに基づくトラフィックスケジューリングを実施し、ネットワークリソース割り当ての合理性を高める。
可能な一実装において、パケットがインターネットプロトコルバージョン6 IPv6パケットである場合、アプリケーションプログラムの特徴情報は、IPv6パケットのIPv6拡張ヘッダーまたは送信先アドレスの中で運ばれる。
可能な一実装において、IPv6パケットのIPv6拡張ヘッダーは、IPv6拡張ヘッダー内のタイプ・長さ・値TLVフィールド、および/またはセグメントルーティングヘッダーSRH内のセグメント識別子SIDのうち、少なくともいずれか1つを含む。
可能な一実装において、IPv6拡張ヘッダー内のTLVフィールドは、hop-by-hop option TLVフィールド、destination option TLVフィールド、およびSRH内のTLVフィールドのうち、少なくともいずれか1つを含む。
可能な一実装において、ネットワークデバイスによって取得されるパケットはIPv6パケットであり、IPv6パケットのIPv6拡張ヘッダー内のTLVフィールドは、セグメント識別子形式でアプリケーションプログラムの特徴情報を運ぶ。相応に、ネットワークデバイスがパケットに対応するアプリケーションプログラムの特徴情報を取得することは、ネットワークデバイスがIPv6拡張ヘッダーからアプリケーションプログラムの特徴情報を抽出することを含む。ネットワークデバイスがアプリケーションプログラムの特徴情報を運ぶパケットを入口ノードへ送信することは、ネットワークデバイスがアプリケーションプログラムの特徴情報を運ぶIPv6パケットの送信先アドレスを入口ノードへ送信することを含む。送信先アドレスからの情報抽出はIPv6拡張ヘッダーからの情報抽出より速いため、入口ノードによってアプリケーションプログラムの特徴情報を抽出する効率は上がる。
可能な一実装においては、ネットワークデバイスがパケットに対応するアプリケーションプログラムの特徴情報を取得する下記3通りの実装があり得る。
可能な一実装において、ネットワークデバイスがパケットに対応するアプリケーションプログラムの特徴情報を取得することは、ネットワークデバイスが、アプリケーションプログラムの特徴情報を取得するため、パケットを解析することを含む。この実装では、パケットがアプリケーションプログラムの特徴情報を運ばないが、パケットを解析することによって取得される必要がある。利点は、既存のパケットを修正する必要がないことである。
別の可能な一実装において、ネットワークデバイスによって入口ノードへ送信されるパケットの中で運ばれるアプリケーションプログラムの特徴情報が、アプリケーションプログラムのネットワーク性能要件情報を含み、ネットワークデバイスによって取得されるパケットが、アプリケーションプログラムの識別情報を含む場合、ネットワークデバイスがパケットに対応するアプリケーションプログラムの特徴情報を取得することは、ネットワークデバイスが、パケットから、パケットに対応するアプリケーションプログラムの識別情報を抽出することを含む。ネットワークデバイスは、識別情報に基づいて、アプリケーションプログラムのネットワーク性能要件情報を決定する。この実装では、ネットワークがアプリケーションプログラムの特徴情報を直接認識でき、特徴情報を取得する効率は比較的高い。
別の可能な一実装において、ネットワークデバイスによって取得されるパケットが、アプリケーションプログラムのサービス情報を含み、サービス情報が、アプリケーションプログラムが属するサービスに関する情報である場合、ネットワークデバイスがパケットに対応するアプリケーションプログラムの特徴情報を取得することは、ネットワークデバイスが、アプリケーションプログラムのサービス情報に基づいて、アプリケーションプログラムに対応する特徴情報を決定することを含む。いくつかの適用シナリオでは、パケットがサービス情報を運ぶ。したがって、アプリケーションプログラムの特徴情報がサービス情報に基づいて決定される場合は、元のパケットを修正する必要がない。
勿論、前述した3通りの可能な実装ソリューションは本出願の技術的なソリューションを制限するものではなく、当業者なら実際の状況を踏まえて技術的なソリューションを設計できる。
可能な一実装において、アプリケーションプログラムの特徴情報は、アプリケーションプログラムのユーザー識別子をさらに含む。アプリケーションプログラムの特徴情報にユーザー識別子を加えることによって、パケットに対応する特定のユーザーを識別でき、つぎにの分析が容易になる。
第3の態様によると、本出願はパケット処理方法をさらに提供する。方法はネットワークシステムに適用され、ネットワークシステムは入口ノードと出口ノードとを含む。入口ノードは端末デバイスからパケットを受信し、パケットは入口ノードと出口ノードの間の経路を通じて送信先ノードに到達する。方法は以下のステップを含む。第一に、端末デバイスがアプリケーションプログラムの特徴情報を取得する。アプリケーションプログラムの特徴情報は、アプリケーションプログラムの識別情報とネットワーク性能要件情報のうち、少なくともいずれか1つを含む。識別情報はアプリケーションプログラムを識別するために用いられる。第二に、端末デバイスはアプリケーションプログラムに対応するパケットを生成する。パケットはアプリケーションプログラムの特徴情報を運び、アプリケーションプログラムの特徴情報は、パケットを送信先ノードへ転送するため、入口ノードと出口ノードの間の経路を決定するために入口ノードによって使用される。最後に、端末デバイスは、ネットワークシステムを使用してアプリケーションプログラムに対応するパケットを送信先ノードへ送信する。本出願の本実施形態において、端末デバイスによって生成されるパケットはアプリケーションプログラムの特徴情報を運ぶので、アプリケーションプログラムの特徴情報は、パケットを送信先ノードへ転送するため、入口ノードから出口ノードまでの経路を決定するために入口ノードによって使用される。クインタプル情報に基づいてトラフィック要件を満たす経路がマッチされる従来の技術的なソリューションと比べて、本出願の本実施形態では、アプリケーションプログラムレベルに基づくトラフィックスケジューリングソリューションの管理粒度がより細かく、ネットワークリソース割り当ての合理性が高められることが分かる。
可能な一実装において、パケットがインターネットプロトコルバージョン6 IPv6パケットである場合、アプリケーションプログラムの特徴情報は、IPv6パケットのIPv6拡張ヘッダーまたは送信先アドレスの中で運ばれる。
可能な一実装において、IPv6パケットのIPv6拡張ヘッダーは、IPv6拡張ヘッダー内のタイプ・長さ・値TLVフィールド、および/またはセグメントルーティングヘッダーSRH内のセグメント識別子SIDのうち、少なくともいずれか1つを含む。
可能な一実装において、IPv6拡張ヘッダー内のTLVフィールドは、hop-by-hop option TLVフィールド、destination option TLVフィールド、およびSRH内のTLVフィールドのうち、少なくともいずれか1つを含む。
可能な一実装において、IPv6拡張ヘッダー内のTLVフィールド内の値の形式は、セグメント識別子形式である。
第4の態様によると、パケット処理装置が提供される。装置はネットワークシステムで使用され、ネットワークシステムは入口ノードと出口ノードとを含む。パケットは、入口ノードと出口ノードの間の経路を通じて送信先ノードに到達する。入口ノードはパケット処理装置である。パケット処理装置は、パケットを受信し、パケットに対応するアプリケーションプログラムの特徴情報を取得するように構成された取得ユニットであって、アプリケーションプログラムの特徴情報は、アプリケーションプログラムの識別情報とネットワーク性能要件情報のうち、少なくともいずれか1つを含み、識別情報がアプリケーションプログラムを識別するために用いられる、取得ユニットと、アプリケーションプログラムの特徴情報、および、アプリケーションプログラムの特徴情報と、入口ノードと出口ノードの間の経路との間のマッピング関係に基づいて、入口ノードと出口ノードの間の経路を決定するように構成された経路決定ユニットと、入口ノードと出口ノードの間の経路を通じてパケットを転送するように構成された転送ユニットとを含む。
可能な一実装において、パケットがインターネットプロトコルバージョン6 IPv6パケットである場合、アプリケーションプログラムの特徴情報は、IPv6パケットのIPv6拡張ヘッダーまたは送信先アドレスの中で運ばれる。
可能な一実装において、IPv6パケットのIPv6拡張ヘッダーは、IPv6拡張ヘッダー内のタイプ・長さ・値TLVフィールド、およびセグメントルーティングヘッダーSRH内のセグメント識別子SIDのうち、少なくともいずれか1つを含む。
可能な一実装において、IPv6拡張ヘッダー内のTLVフィールドは、hop-by-hop option TLVフィールド、destination option TLVフィールド、およびSRH内のTLVフィールドのうち、少なくともいずれか1つを含む。
可能な一実装において、アプリケーションプログラムの特徴情報はパケットの中で運ばれ、
パケットに対応するアプリケーションプログラムの特徴情報を取得するステップは、パケットから、パケットに対応するアプリケーションプログラムの特徴情報を抽出するステップを含む。
可能な一実装において、パケットに対応するアプリケーションプログラムの特徴情報を取得するステップは、パケットに対応するアプリケーションプログラムの特徴情報を取得するため、パケットを解析するステップを含む。
可能な一実装において、パケットが、アプリケーションプログラムに対応するサービス情報を運び、サービス情報が、アプリケーションプログラムが属するサービスに関する情報である場合、パケットに対応するアプリケーションプログラムの特徴情報を取得するステップは、
サービス情報に基づいて、パケットに対応するアプリケーションプログラムの特徴情報を決定するステップを含む。
可能な一実装において、アプリケーションプログラムの特徴情報がアプリケーションプログラムのネットワーク性能要件情報を含む場合、アプリケーションプログラムのネットワーク性能要件情報を取得するステップは、パケットに基づいてアプリケーションプログラムの識別情報を取得するステップと、識別情報に基づいてアプリケーションプログラムのネットワーク性能要件情報を決定するステップとを含む。
可能な一実装において、アプリケーションプログラムの特徴情報は、アプリケーションプログラムに対応するユーザー識別子をさらに含み、ユーザー識別子は、アプリケーションプログラムに対応するユーザーを識別するため使用される。
可能な一実装において、装置は、アプリケーションプログラムの特徴情報と、入口ノードと出口ノードの間の経路との間のマッピング関係を記憶するように構成された第1の記憶ユニットをさらに含み、
アプリケーションプログラムの特徴情報と、入口ノードと出口ノードの間の経路との間のマッピング関係は、アプリケーションプログラムの識別情報と、入口ノードと出口ノードの間の経路との間のマッピング関係、アプリケーションプログラムのネットワーク性能要件情報と、入口ノードと出口ノードの間の経路との間のマッピング関係、アプリケーションプログラムの識別情報と、アプリケーションプログラムのネットワーク性能要件情報と、入口ノードと出口ノードの間の経路との間のマッピング関係、ユーザー識別子と、アプリケーションプログラムの識別情報と、入口ノードと出口ノードの間の経路との間のマッピング関係、ユーザー識別子と、アプリケーションプログラムのネットワーク性能要件情報と、入口ノードと出口ノードの間の経路との間のマッピング関係、またはユーザー識別子と、アプリケーションプログラムの識別情報と、アプリケーションプログラムのネットワーク性能要件情報と、入口ノードと出口ノードの間の経路との間のマッピング関係を含む。
可能な一実装において、経路決定ユニットは、アプリケーションプログラムの特徴情報、および、アプリケーションプログラムの特徴情報と、入口ノードと出口ノードの間の経路との間のマッピング関係に基づいて、アプリケーションプログラムの特徴情報にマッチする経路を選択するか、または、アプリケーションプログラムの特徴情報にマッチする経路が見つからない場合に、出口ノードへの経路を生成するように構成される。
可能な一実装において、転送ユニットは、アプリケーションプログラムの特徴情報に基づいて、アプリケーションプログラムの特徴情報に対応するキューを決定し、パケットをキューに加え、入口ノードと出口ノードの間の経路を通じてキュー内のパケットを転送するように構成される。
可能な一実装において、装置は、アプリケーションプログラムの特徴情報とキューとのマッピング関係を記憶するように構成された第2の記憶ユニットと、アプリケーションプログラムの特徴情報、および、アプリケーションプログラムの特徴情報とキューのマッピング関係に基づいて、キューを決定するように構成されたキュー決定ユニットとをさらに含む。
可能な一実装において、アプリケーションプログラムの特徴情報とキューとのマッピング関係は、アプリケーションプログラムの識別情報とキューとのマッピング関係、アプリケーションプログラムのネットワーク性能要件情報とキューとのマッピング関係、アプリケーションプログラムの識別情報と、アプリケーションプログラムのネットワーク性能要件情報と、キューとのマッピング関係、ユーザー識別子と、アプリケーションプログラムの識別情報と、キューとのマッピング関係、ユーザー識別子と、アプリケーションプログラムのネットワーク性能要件情報と、キューとのマッピング関係、またはユーザー識別子と、アプリケーションプログラムの識別情報と、アプリケーションプログラムのネットワーク性能要件情報と、キューとのマッピング関係を含む。
第5の態様によると、本出願はパケット処理装置をさらに提供する。装置はネットワークシステムで使用され、ネットワークシステムは、ネットワークデバイスと、入口ノードと、出口ノードとを含む。パケットは、入口ノードと出口ノードの間の経路を通じて送信先ノードに到達する。ネットワークデバイスはパケット処理装置である。パケット処理装置は、パケットを受信し、パケットに対応するアプリケーションプログラムの特徴情報を取得するように構成された取得ユニットであって、アプリケーションプログラムの特徴情報は、アプリケーションプログラムの識別情報とネットワーク性能要件情報のうち、少なくともいずれか1つを含み、識別情報は、アプリケーションプログラムを識別するために用いられる、取得ユニットと、アプリケーションプログラムの特徴情報を運ぶパケットを入口ノードへ送信するように構成された送信ユニットであって、アプリケーションプログラムの特徴情報は、パケットを転送するため、入口ノードと出口ノードの間の経路を決定するために入口ノードによって使用される、送信ユニットとを含む。
可能な一実装において、パケットがインターネットプロトコルバージョン6 IPv6パケットである場合、アプリケーションプログラムの特徴情報は、ネットワークデバイスによって入口ノードへ送信されるIPv6パケットのIPv6拡張ヘッダーまたは送信先アドレスの中で運ばれる。
可能な一実装において、IPv6パケットのIPv6拡張ヘッダーは、IPv6拡張ヘッダー内のタイプ・長さ・値TLVフィールド、および/またはセグメントルーティングヘッダーSRH内のセグメント識別子SIDのうち、少なくともいずれか1つを含む。
可能な一実装において、IPv6拡張ヘッダー内のTLVフィールドは、hop-by-hop option TLVフィールド、destination option TLVフィールド、およびSRH内のTLVフィールドのうち、少なくともいずれか1つを含む。
可能な一実装において、取得ユニットによって取得されるIPv6パケットのIPv6拡張ヘッダー内のTLVフィールドは、セグメント識別子形式でアプリケーションプログラムの特徴情報を運び、
パケットに対応するアプリケーションプログラムの特徴情報を取得するステップは、IPv6拡張ヘッダーからアプリケーションプログラムの特徴情報を抽出するステップを含み、アプリケーションプログラムの特徴情報を運ぶパケットを入口ノードへ送信するステップは、アプリケーションプログラムの特徴情報を運ぶIPv6パケットの送信先アドレスを入口ノードへ送信するステップを含む。
可能な一実装において、パケットに対応するアプリケーションプログラムの特徴情報を取得するステップは、アプリケーションプログラムの特徴情報を取得するため、パケットを解析するステップを含む。
可能な一実装において、送信ユニットによって入口ノードへ送信されるパケットの中で運ばれるアプリケーションプログラムの特徴情報が、アプリケーションプログラムのネットワーク性能要件情報を含み、取得ユニットによって取得されるパケットが、アプリケーションプログラムの識別情報を含む場合、パケットに対応するアプリケーションプログラムの特徴情報を取得するステップは、
パケットから、パケットに対応するアプリケーションプログラムの識別情報を抽出するステップと、識別情報に基づいて、アプリケーションプログラムのネットワーク性能要件情報を決定するステップとを含む。
可能な一実装において、取得ユニットによって取得されるパケットが、アプリケーションプログラムのサービス情報を含み、サービス情報が、アプリケーションプログラムが属するサービスに関する情報である場合、パケットに対応するアプリケーションプログラムの特徴情報を取得するステップは、
アプリケーションプログラムのサービス情報に基づいて、アプリケーションプログラムに対応する特徴情報を決定するステップを含む。
可能な一実装において、アプリケーションプログラムの特徴情報は、アプリケーションプログラムに対応するユーザー識別子をさらに含む。
第6の態様によると、本出願は端末デバイスをさらに提供する。端末デバイスはネットワークシステムで使用され、ネットワークシステムは入口ノードと出口ノードとを含む。入口ノードは端末デバイスからパケットを受信し、パケットは入口ノードと出口ノードの間の経路を通じて送信先ノードに到達する。端末デバイスは、アプリケーションプログラムの特徴情報を取得するように構成された取得ユニットであって、アプリケーションプログラムの特徴情報は、アプリケーションプログラムの識別情報とネットワーク性能要件情報のうち、少なくともいずれか1つを含み、識別情報がアプリケーションプログラムを識別するために用いられる、取得ユニットと、アプリケーションプログラムに対応するパケットを生成するように構成されたパケット生成ユニットであって、パケットがアプリケーションプログラムの特徴情報を運び、アプリケーションプログラムの特徴情報は、パケットを送信先ノードへ転送するため、入口ノードと出口ノードの間の経路を決定するために入口ノードによって使用される、パケット生成ユニットと、ネットワークシステムを使用してアプリケーションプログラムに対応するパケットを送信先ノードへ送信するように構成された送信ユニットとを含む。
可能な一実装において、パケットがインターネットプロトコルバージョン6 IPv6パケットである場合、アプリケーションプログラムの特徴情報は、IPv6パケットのIPv6拡張ヘッダーまたは送信先アドレスの中で運ばれる。
可能な一実装において、IPv6パケットのIPv6拡張ヘッダーは、IPv6拡張ヘッダー内のタイプ・長さ・値TLVフィールド、および/またはセグメントルーティングヘッダーSRH内のセグメント識別子SIDのうち、少なくともいずれか1つを含む。
可能な一実装において、IPv6拡張ヘッダー内のTLVフィールドは、hop-by-hop option TLVフィールド、destination option TLVフィールド、およびSRH内のTLVフィールドのうち、少なくともいずれか1つを含む。
可能な一実装において、IPv6拡張ヘッダー内のTLVフィールド内の値の形式は、セグメント識別子形式である。
第7の態様によると、本出願は入口ノードをさらに提供する。入口ノードはネットワークシステムで使用され、ネットワークシステムは入口ノードと出口ノードとを含む。パケットは、入口ノードと出口ノードの間の経路を通じて送信先ノードに到達する。入口ノードはメモリーとプロセッサとを含む。メモリーは、命令を記憶するように構成され、プロセッサは、入口ノードによって行われるパケット処理方法を行うため、メモリー内の命令を実行するように構成される。
第8の態様によると、本出願はネットワークデバイスをさらに提供し、ネットワークデバイスはメモリーとプロセッサとを含む。メモリーは、命令を記憶するように構成され、プロセッサは、ネットワークデバイスによって行われるパケット処理方法を行うため、メモリー内の命令を実行するように構成される。
第9の態様によると、本出願は端末デバイスをさらに提供し、端末デバイスはメモリーとプロセッサとを含む。メモリーは、命令を記憶するように構成され、プロセッサは、端末デバイスによって行われるパケット処理方法を行うため、メモリー内の命令を実行するように構成される。
第10の態様によると、本出願はネットワークシステムをさらに提供し、ネットワークシステムは入口ノードと出口ノードとを含む。パケットは、入口ノードと出口ノードの間の経路を通じて送信先ノードに到達する。入口ノードは、入口ノードとして使用されるパケット処理装置である。
第11の態様によると、本出願はネットワークシステムをさらに提供し、ネットワークシステムは、ネットワークデバイスと、入口ノードと、出口ノードとを含む。パケットは、入口ノードと出口ノードの間の経路を通じて送信先ノードに到達する。ネットワークデバイスは、ネットワークデバイスとして使用されるパケット処理装置である。
入口ノードは、ネットワークデバイスによって送信されるパケットを受信し、パケットに対応するアプリケーションプログラムの特徴情報を取得し、アプリケーションプログラムの特徴情報に基づいて入口ノードと出口ノードの間の経路を決定し、入口ノードと出口ノードの間の経路を通じてパケットを転送するように構成される。
第12の態様によると、本出願はネットワークシステムをさらに提供し、ネットワークシステムは、端末デバイスと、入口ノードと、出口ノードとを含む。パケットは、入口ノードと出口ノードの間の経路を通じて送信先ノードに到達する。端末デバイスは、端末デバイスとして使用されるパケット処理装置である。
入口ノードは、ネットワークデバイスによって送信されるパケットを受信し、パケットに対応するアプリケーションプログラムの特徴情報を取得し、アプリケーションプログラムの特徴情報に基づいて入口ノードと出口ノードの間の経路を決定し、入口ノードと出口ノードの間の経路を通じてパケットを転送するように構成される。
第13の態様によると、本出願は命令を含むコンピュータ可読記憶媒体をさらに提供する。命令がコンピュータで実行されると、コンピュータは方法を行うことが可能となる。
第14の態様によると、本出願はチップをさらに提供する。チップは入口ノード内に配置され、ネットワークシステムで使用される。ネットワークシステムは入口ノードと出口ノードとを含む。パケットは、入口ノードと出口ノードの間の経路を通じて送信先ノードに到達する。チップはプロセッサとインターフェイス回路とを含む。インターフェイス回路は、コード命令を受信し、コード命令をプロセッサへ伝送するように構成される。プロセッサは、入口ノードによって行われる方法を行うため、コード命令を実行するように構成される。
第15の態様によると、本出願はチップをさらに提供する。チップはネットワークデバイス内に配置され、ネットワークシステムで使用される。ネットワークシステムは、ネットワークデバイスと、入口ノードと、出口ノードとを含む。パケットは、入口ノードと出口ノードの間の経路を通じて送信先ノードに到達する。チップはプロセッサとインターフェイス回路とを含む。インターフェイス回路は、コード命令を受信し、コード命令をプロセッサへ伝送するように構成される。プロセッサは、ネットワークデバイスによって行われる方法を行うため、コード命令を実行するように構成される。
第16の態様によると、本出願はチップをさらに提供する。チップは端末デバイス内に配置され、ネットワークシステムで使用される。ネットワークシステムは入口ノードと出口ノードとを含む。入口ノードは端末デバイスからパケットを受信し、パケットは入口ノードと出口ノードの間の経路を通じて送信先ノードに到達する。チップはプロセッサとインターフェイス回路とを含む。インターフェイス回路は、コード命令を受信し、コード命令をプロセッサへ伝送するように構成される。プロセッサは、端末デバイスによって行われる方法を行うため、コード命令を実行するように構成される。
ネットワークリソースに対して洗練された管理を実施し、ネットワークリソース割り当ての合理性を高めるため、本出願の実施形態は、パケット処理方法および装置、デバイス、ならびにシステムを提供する。
図1は、本出願の一実施形態によるネットワークシステムを示す。ネットワークシステムは、端末デバイス101と、入口ノード102と、出口ノード103とを含む。端末デバイス101は入口ノード102に接続され、入口ノード102は出口ノード103に接続されている。この「接続」は直接的な接続であってよく、あるいは間接的な接続であってもよい。特に、入口ノード102と出口ノード103との接続の場合は、入口ノード102と出口ノード103の間に別のノードがあってもよい。
端末デバイス101は、例えば、携帯電話機、またはパーソナルコンピュータ(personal computer、PC)、例えば、タブレットパーソナルコンピュータ(tablet personal computer、Tablet PC)、ノートブックコンピュータ、ウルトラモバイルパーソナルコンピュータ、または個人用デジタル補助装置であってよい。端末デバイス101にはアプリケーションプログラム(application program、APP)がインストールされる。アプリケーションソフトウェア(application software、APP)とも呼ばれるアプリケーションプログラムは、1つ以上の特定のタスクを完遂するコンピュータプログラムであり、通常はユーザーとやり取りする必要がある。本出願の実施形態において、アプリケーションプログラムは、例えば、ゲーム、ビデオ、電子メール、インスタントメッセージング、交通情報、天気予報などに関係するAPPであってよい。
入口ノード102は、アプリケーションプログラムからパケットを転送するために使用される経路上の最初のノードであり、入口ノード102はデバイス、例えばルーター(router)またはスイッチ(switch)であってよい。出口ノード103は、アプリケーションプログラムからパケットを転送するために使用される経路上の最後のノードであり、出口ノード103はデバイス、例えばルーター(router)またはスイッチ(switch)であってよい。本出願の実施形態において、パケットは、入口ノード102と出口ノード103の間の経路を通じて送信先ノードに到達する。送信先ノードと出口ノード103は同じノードであってよく、あるいは別々のノードであってもよい。入口ノード102と出口ノード103の間の経路上には、入口ノード102と出口ノード103に加えて、別の中間ノードがある場合とない場合がある。
本出願の実施形態において、経路は、トンネル、またはセグメントルーティング(segment routing、SR)ポリシー(policy)を含み得る。トンネルは、ノードによって形成される経路である、および/または入口ノードから出口ノードへのリンクである。トンネルはトンネル、例えばトラフィックエンジニアリング(traffic engineer、TE)トンネルを含み、TEトンネルは、具体的にはセグメントルーティング(segment routing、SR)ネットワーク実装トラフィックエンジニアリング(traffic engineer、TE)トンネルであってよい。TEトンネルが別の技術を使用して実装されるトラフィックエンジニアリング(traffic engineer、TE)トンネルであってもよいことがわかるであろう。トンネルの具体的な実装は本出願で限定されない。1つのトンネルは1つの経路を通常含む。SR policyは、入口ノードと、出口ノードと、入口ノードから出口ノードまでの経路の属性とを規定する。1つのSR policyは1つ以上の経路を含み得る。複数の経路がある場合、複数の経路は同じネットワーク性能をサポートする経路であり、複数の経路は負荷分散を行うために使用されてよい。
図2は、本出願の一実施形態による図1に示されたネットワークシステムに基づいて提供されるパケット処理方法の概略図である。
S201:端末デバイス101は入口ノード102へパケットを送信する。
本出願の本実施形態において、端末デバイス101によって入口ノード102へ送信される、アプリケーションプログラムに対応するパケットは、例えばインターネットプロトコルバージョン4(Internet Protocol version 4、IPv4)パケットであってよく、あるいはインターネットプロトコルバージョン6(Internet Protocol version 6、IPv6)パケットであってよい。パケットがIPv6パケットである場合、パケットは、具体的にはIPv6パケット内のセグメンテーションルーティングバージョン6(segment routing version 6、SRv6)パケットであってよい。
端末デバイス101によって入口ノード102へ送信される、アプリケーションプログラムに対応するパケットは、アプリケーションプログラムの特徴情報を運んでもよく、あるいはアプリケーションプログラムの特徴情報を運ばなくてもよい。アプリケーションプログラムの特徴情報を運ぶ必要がある場合は、情報漏洩のリスクを軽減するため、特徴情報を運ぶ前に、端末デバイス101がアプリケーションプログラムの特徴情報を暗号化してよい。相応に、パケットからアプリケーションプログラムの特徴情報を抽出した後は、入口ノード102が特徴情報を復号する必要があり、つぎに、次のアクションを行う必要がある。
本出願の本実施形態において、アプリケーションプログラムの特徴情報は、アプリケーションプログラムの識別情報とネットワーク性能要件情報のうち、少なくともいずれか1つを含む。「含む」は、直接的な包含を、または間接的な包含を意味し得ることに注意されたい。直接的な包含は、アプリケーションプログラムの特徴情報は、少なくともアプリケーションプログラムの識別情報を、および/またはアプリケーションプログラムのネットワーク性能要件情報を含むことを意味する。間接的な包含は、アプリケーションプログラムの特徴情報が少なくとも1つのインデックスを含む場合があり、このインデックスが、アプリケーションプログラムの識別情報を、および/またはアプリケーションプログラムのネットワーク性能要件情報を示すために使用されることを意味する。例えば、アプリケーションプログラムの識別情報は、および/またはアプリケーションプログラムのネットワーク性能要件情報は、比較的多数のビットを通常含む。したがって、パケットの合計長を減らしてネットワーク伝送リソースを節約するため、ビットが比較的少量のインデックスが代わりに使用されてよい。例えば、アプリケーションプログラムの識別情報および/またはアプリケーションプログラムのネットワーク性能要件情報を示すためにインデックス「001」が使用されてよく、別のアプリケーションプログラムの識別情報および/または別のアプリケーションプログラムのネットワーク性能要件情報を示すためにインデックス「002」が使用されてよい。説明を簡単にするため、以下で述べる「特徴情報は含む」の「含む」はこの意味を持ち、関連する部分で詳細は繰り返し説明されない。
識別情報はアプリケーションプログラムを識別するために用いられる。「アプリケーションプログラムを識別する」の「識別する」は一意な識別を意味してよい。換言すると、それぞれのアプリケーションプログラムは別々の識別情報を有する。例えば、識別情報はプロトコル特徴コードであり、またはアプリケーションプログラムのアプリケーション特徴コード(attribute code)である。説明を簡単にするため、以降の例では、アプリケーションプログラムの識別情報がAPP IDと表される。加えて、「アプリケーションプログラムを識別する」の「識別する」は、アプリケーションプログラムのタイプを識別することを意味してもよい。換言すると、識別情報はアプリケーションプログラムのタイプを含んでよい。同じタイプのアプリケーションプログラムは同じ識別情報に対応する。例えば、ゲームタイプのアプリケーションプログラムは同じ識別情報に対応する。
アプリケーションプログラムのネットワーク性能要件情報は、ある1つのアプリケーションプログラムのネットワーク性能要件を、またはネットワークシステムのアプリケーションプログラムのタイプを示す。例えば、アプリケーションプログラムのネットワーク性能要件情報は、帯域幅(bandwidth)情報、レイテンシ(latency)情報、レイテンシジッター(jitter)情報、パケット損失(packet loss)情報、信頼性(reliability)情報、およびセキュリティ(security)情報など、1つ以上の情報として表されてよい。アプリケーションプログラムのネットワーク性能要件情報は、情報の、例えば帯域幅情報またはレイテンシ情報の、特定の値の形で表されてよく(例えば、最小帯域幅、またはレイテンシ上限)、情報を、例えば帯域幅情報またはレイテンシ情報を、表すサービスレベル協定(service level agreement、SLA)であってよく、あるいは経路計算アルゴリズムの経路属性であってよい。SLAは多次元ネットワーク性能要件を指定する。例えば、帯域幅は150 Mであり、レイテンシ上限は5 msであり、レイテンシジッターは+/-2 msである。経路属性は色(color)で表されてよい。例えば、赤はアプリケーションプログラムのネットワーク性能要件情報が高帯域幅であることを示し、青はアプリケーションプログラムのネットワーク性能要件情報が低レイテンシであることを示す。SLAも色(color)で表されてよい。例えば、赤いSLAは高帯域幅と低レイテンシを示し、あるいは青いSLAは低帯域幅を表す。本出願の実施形態において、「高」と「低」は相対的な用語であり、どの値が「高」でありどの値が「低」であるかは当業者によって決定される。
本出願の本実施形態において、アプリケーションプログラムの特徴情報がパケットの中で運ばれ、パケットがIPv6パケットである場合、アプリケーションプログラムの特徴情報は、IPv6パケットのIPv6拡張ヘッダー(extension header、EH)または送信先アドレスの中で運ばれうる。
IPv6パケットのIPv6拡張ヘッダーは、IPv6拡張ヘッダー(extension header、EH)内のタイプ・長さ・値(type-length-value、TLV)フィールド、およびセグメントルーティングヘッダー(segment routing header、SRH)内のセグメント識別子(segment identification、SID)などのうち、少なくともいずれか1つを含む。換言すると、アプリケーションプログラムの特徴情報はIPv6パケットのTLVフィールドの中で運ばれうる。IPv6パケットが具体的にSRv6パケットである場合は、アプリケーションプログラムの特徴情報は、SRv6パケットのTLVフィールドのみならず、SRv6パケットのSRH内のSIDの中でも運ばれうる。
TLVフィールド内のタイプTはTLVのタイプを規定する。本出願の本実施形態において、TLVのタイプはアプリケーションプログラムの特徴情報を運ぶTLVである。TLVフィールド内の長さLはTLV内の値Vの長さを示す。TLVフィールド内の値Vはアプリケーションプログラムの特徴情報である。TLV値の長さは128ビットであってよい。
TLV値の形式は、例えば、SID形式であってよい。SID形式は、ロケータ(locator)フィールドと、関数(function)フィールドと、引数(argument)フィールドとを含む。引数フィールドは、アプリケーションプログラムの特徴情報を収容するために使用される。ロケータフィールドはxビットを占め、関数フィールドはyビットを占める。TLV値の合計長が128ビットであると仮定すると、アプリケーションプログラムの特徴情報を収容するフィールドは128-x-yビットを占める。勿論、TLVフィールドはアプリケーションプログラムの特徴情報だけを含んでよく、他の情報は含まない。
IPv6拡張ヘッダー内のTLVフィールドは、ホップ・バイ・ホップ・オプション(hop-by-hop option)TLVフィールド、送信先オプション(destination option)TLVフィールド、SRH内のTLVフィールドなどのうち、少なくともいずれか1つを含む。換言すると、アプリケーションプログラムの特徴情報は、IPv6パケットのHop-by-Hop option TLVフィールドおよび/またはdestination option TLVフィールドの中で運ばれうる。IPv6パケットが具体的にSRv6パケットである場合は、アプリケーションプログラムの特徴情報は、前述したタイプのSRv6パケットのTLVフィールドのみならず、SRv6パケットのSRH内のSIDの中でも運ばれうる。
特徴情報がSRH内のSIDの中で運ばれる場合は、SID内の機能(Function)フィールドの中で読み取りインジケータがさらに運ばれてもよく、この読み取りインジケータは、SID内で特徴情報を読み取ることを指示するために使用される。
S202:入口ノード102は端末デバイス101からパケットを受信し、パケットに対応するアプリケーションプログラムの特徴情報を取得する。
本出願の本実施形態においては、入口ノード102がパケットに対応するアプリケーションプログラムの特徴情報を取得する3通りの実装があり得る。
一実装では、端末デバイス101から入口ノード102によって受信されるパケットがアプリケーションプログラムの運んでいる場合に、入口ノード102は、パケットからアプリケーションプログラムの特徴情報を抽出できる。
具体的に述べると、入口ノード102は、プロトコルによる、例えば、インテリアゲートウェイプロトコル(Interior Gateway Protocol、IGP)、ボーダーゲートウェイプロトコル(Border Gateway Protocol、BGP)、または経路計算要素通信プロトコル(Path Computation Element Communication Protocol、PCEP)による、通知方式で、アプリケーションプログラムの特徴情報を抽出できる。例えば、アプリケーションプログラムの特徴情報はTLVフィールドに収容され、具体的な形式は、例えば、SID形式である。この場合、コントローラは、前述のプロトコルに基づいて、アプリケーションプログラムの特徴情報の解析された形式がSID形式であることを、入口ノード102に通知できる。入口ノード102は、通知の後に、SID形式に基づいて、TLVフィールドに収容されたアプリケーションプログラムの特徴情報を読み取ることができる。
別の一実装において、端末デバイス101から入口ノード102によって受信されるパケットがアプリケーションプログラムの特徴情報を運ばない。この場合、入口ノード102はパケットを解析することでアプリケーションプログラムの特徴情報を取得できる。解析手段は、例えば、ディープパケット検査(deep packet inspection、DPI)である。
さらに別の一実装において、端末デバイス101から入口ノード102によって受信されるパケットがサービス情報を運ぶ。サービス情報は、アプリケーションプログラムが属するサービスに関する情報であり、例えば、カスタマ仮想ローカルエリアネットワーク(customer virtual lan、C-VLAN)に関する情報であり、またはサービス仮想ローカルエリアネットワーク(service virtual lan、S-VLAN)に関する情報である。
端末デバイス101から入口ノード102によって受信されるパケットがIPv6パケットである場合に、前述した3通りの方法のいずれか1つを用いることでアプリケーションプログラムの特徴情報を取得できることに注意されたい。端末デバイス101から入口ノード102によって受信されるパケットがIPv4パケットである場合は、前述した2番目の方法を用いることでアプリケーションプログラムの特徴情報を取得できる。
勿論、前述した3通りの可能な実装は本出願の技術的なソリューションを制限するものではなく、当業者なら実際の状況を踏まえて技術的なソリューションを設計できる。
例えば、入口ノード102が取得する必要のある、パケットに対応するアプリケーションプログラムの特徴情報が、アプリケーションプログラムのネットワーク性能要件情報であるなら、前述した3通りの実装における取得に加え、入口ノード102はまず、パケットに基づいてアプリケーションプログラムの識別情報を取得でき、つぎに、アプリケーションプログラムの識別情報とアプリケーションプログラムのネットワーク性能要件情報との予め記憶されたマッピング関係に基づいて、アプリケーションプログラムの識別情報に対応するアプリケーションプログラムのネットワーク性能要件情報を決定できる。入口ノード102は、前述した3通りの実装において、パケットに基づいてアプリケーションプログラムの識別情報を取得できる。
表1は、アプリケーションプログラムの識別情報とアプリケーションプログラムのネットワーク性能要件情報とのマッピング関係の例示的な表である。
S203:入口ノード102は、アプリケーションプログラムの特徴情報、および、アプリケーションプログラムの特徴情報と、入口ノード102と出口ノード103の間の経路との間のマッピング関係に基づいて、入口ノード102と出口ノード103の間の経路を決定し、入口ノード102と出口ノード103の間の経路を通じてパケットを転送する。
本出願の本実施形態において、入口ノード102と出口ノード103の間の経路は、入口ノード102から出口ノード103までに2つの隣接ノード間のリンクを含む。例えば、パケットは、入口ノードから、すなわちノードAから、出発し、ノードB、ノードC、およびノードDを相次いで通過し、出口ノードに、すなわちノードEに、到達する。この場合、ノードAからノードEまでの経路は、ノードAからノードBまでのリンクと、ノードBからノードCまでのリンクと、ノードCからノードDまでのリンクと、ノードDからノードEまでのリンクとを含む。
実際の適用では、入口ノード102と出口ノード103の間の経路がセグメント識別子リスト(SID list)を使用して表されてよい。このセグメント識別子リストは少なくとも1つのセグメント識別子を含み、2つの隣接ノード間のリンクを、またはノードそのものを、識別するために、1つのセグメント識別子が使用される。
セグメント識別子は、2つの隣接ノード間のリンクを識別するために用いられる。例えば、ノードAからノードEまでの経路に対応するSID listは、SID 1と、SID 2と、SID 3と、SID 4とを含む。SID 1はノードAからノードBまでのリンクを識別するために用いられ、SID 2はノードBからノードCまでのリンクを識別するために用いられ、SID 3はノードCからノードでまでのリンクを識別するために用いられ、SID 4はノードDからノードEまでのリンクを識別するために用いられる。
セグメント識別子は、ノードそのものを識別するために用いられる。例えば、ノードAからノードEまでの経路に対応するSID listは、SID 1’と、SID 2’と、SID 3’と、SID 4’と、SID 5’とを含む。SID 1’はノードAを識別するために用いられ、SID 2’はノードBを識別するために用いられ、SID 3’はノードCを識別するために用いられ、SID 4’はノードDを識別するために用いられ、SID 5’はノードEを識別するために用いられる。
本出願の本実施形態において、入口ノード102から出発して同じ送信先ノードに到達するパケットは、入口ノード102と出口ノード103の間の複数の経路に対応し得る。経路がサポートするネットワーク性能は経路によって異なる。例えば、経路によってサポートされるネットワーク性能は、帯域幅、レイテンシ、セキュリティ、およびジッターのいずれか1つ以上を含む。したがって、入口ノード102は、アプリケーションプログラムの特徴情報と経路との間のマッピング関係を事前に取得し記憶することができる。入口ノード102は、パケットを取得した後に、経路を通じてアプリケーションプログラムのパケットを転送するため、パケットに対応するアプリケーションプログラムの特徴情報とマッピング関係とに基づいて、入口ノード102と出口ノード103の間の経路を決定する。これは、アプリケーションプログラムレベルでトラフィックスケジューリングを実施し、ネットワークリソースに対して洗練された管理を実施する。
例えば、パケットが入口ノードから送信先ノードにかけて経路1と経路2とに対応し、経路1は高帯域幅のネットワーク性能要件を満たすことができ、経路2は低レイテンシのネットワーク性能要件を満たすことができると仮定する。入口ノード102は、アプリケーションプログラム1の特徴情報と経路1とのマッピング関係と、アプリケーションプログラム2の特徴情報と経路2とのマッピング関係を予め確立できる。入口ノード102は、パケット1と、パケット1に対応するアプリケーションプログラム1の特徴情報とを取得した後に、アプリケーションプログラム1の特徴情報に基づいて、対応する経路が経路1であると決定する。したがって、入口ノード102は経路1を通じてパケット1を転送できる。入口ノード102は、パケット2と、パケット2に対応するアプリケーションプログラム2の特徴情報とを取得した後に、アプリケーションプログラム2の特徴情報に基づいて、対応する経路が経路2であると決定する。したがって、入口ノード102は経路2を通じてパケット2を転送できる。
上述したように、アプリケーションプログラムの特徴情報は、少なくともアプリケーションプログラムの識別情報とアプリケーションプログラムのネットワーク性能要件情報とを含み得る。したがって、アプリケーションプログラムの特徴情報と、入口ノードと出口ノードの間の経路との間のマッピング関係は、アプリケーションプログラムの識別情報と、入口ノードと出口ノードの間の経路との間のマッピング関係、アプリケーションプログラムのネットワーク性能要件情報と、入口ノードと出口ノードの間の経路との間のマッピング関係、またはアプリケーションプログラムの識別情報と、アプリケーションプログラムのネットワーク性能要件情報と、入口ノードと出口ノードの間の経路との間のマッピング関係を含み得る。
例えば、表2を参照されたい。表2は、アプリケーションプログラムの識別情報と、入口ノードと出口ノードの間の経路との間のマッピング関係の例示的な表である。
入口ノード102は、表2に示されたマッピング関係を確立し記憶することができ、つぎに、パケットに対応するアプリケーションプログラムの取得したIDに基づいて、入口ノード102と出口ノード103の間の対応する経路を決定することができる。
別の一例として、表3を参照されたい。表3は、アプリケーションプログラムのネットワーク性能要件情報と経路との間のマッピング関係の例示的な表である。
入口ノード102は、表3に示されたマッピング関係を確立し記憶することができ、つぎに、パケットに対応するアプリケーションプログラムのネットワーク性能要件情報に基づいて、入口ノード102と出口ノード103の間の対応する経路を決定することができる。
表4は、アプリケーションプログラムの識別情報と、アプリケーションプログラムのネットワーク性能要件情報と、経路との間のマッピング関係の例示的な表である。
入口ノード102は、表4に示されたマッピング関係を確立し記憶することができ、つぎに、パケットに対応するアプリケーションプログラムの取得したIDと、アプリケーションプログラムの取得したネットワーク性能要件情報とに基づいて、入口ノード102と出口ノード103の間の対応する経路を決定することができる。
入口ノード102に記憶される、アプリケーションプログラムのネットワーク性能要件情報と、入口ノード102と出口ノード103の間の経路との間のマッピング関係において、アプリケーションプログラムのネットワーク性能要件情報が2つの意味を持ち得ることに注意されたい。ひとつは、ネットワーク性能に対するアプリケーションプログラムの要件として反映できる。もうひとつは、入口ノード102と出口ノード103の間の経路によって満たすことができるネットワーク性能として反映でき、ネットワーク性能は、パケットに基づいて取得されるアプリケーションプログラムのネットワーク性能要件にマッチする。
例えば、アプリケーションプログラムのネットワーク性能要件が帯域幅>20 Mbit/sであり、入口ノード102と出口ノード103の間の対応する経路によって満たすことができる帯域幅性能は、帯域幅>15 Mbit/sであると仮定する。この場合、入口ノード102に記憶される、アプリケーションプログラムのネットワーク性能要件情報と、入口ノード102と出口ノード103の間の経路との間のマッピング関係は、帯域幅>20 Mbit/sと経路との間のマッピング関係として表すことができ、あるいは、帯域幅>15 Mbit/sと経路との間のマッピング関係として表すことができる。入口ノード102に記憶される、アプリケーションプログラムのネットワーク性能要件情報と入口ノード102と出口ノード103の間の経路との間のマッピング関係が、帯域幅>15 Mbit/sと経路との間のマッピング関係として表される場合は、アプリケーションプログラムのネットワーク性能要件情報が、すなわち帯域幅>20 Mbit/sが、パケットに基づいて取得されるときに、帯域幅>20 Mbit/sは帯域幅>15 Mbit/sの範囲内であるため、帯域幅>15 Mbit/sと経路との間のマッピング関係をマッチできる。アプリケーションプログラムのネットワーク性能要件情報にマッチする経路がさらに決定される。
勿論、入口ノード102によって取得されるパケットの送信先アドレスが、入口ノード102によって決定される、入口ノード102と出口ノード103の間の経路に対応する送信先ノードのアドレスと同じであることがわかるであろう。
特徴情報に対応する1つ以上の経路があり得ることに注意されたい。複数の経路がある場合、それらの複数の経路は同じネットワーク性能をサポートする。換言すると、複数の経路は冗長経路である。この場合は、パケットを転送するため、複数の経路から1つの経路が選択されてよく、あるいは負荷分散が行われてよい。
入口ノード102によって取得される、パケットに対応するアプリケーションプログラムの特徴情報は、アプリケーションプログラムの識別情報であり、入口ノード102に記憶される、アプリケーションプログラムの特徴情報と、入口ノード102と出口ノード103の間の経路との間のマッピング関係が、表3、表4、または表5に示されたマッピング関係である場合に、入口ノード102が、パケットから取得されるアプリケーションプログラムの識別情報に基づいて表1を検索することによってアプリケーションプログラムのマッチしたネットワーク性能要件情報を取得でき、つぎに、表3、表4、または表5に従って入口ノード102と出口ノード103の間の対応する経路を決定できることがわかるであろう。
加えて、入口ノード102に予め記憶される、アプリケーションプログラムの特徴情報と経路との間のマッピング関係は、経路が取得された後に、経路によってサポートされるネットワーク性能に基づいて生成される、アプリケーションプログラムの特徴情報と経路との間のマッピング関係であってよい。ネットワークの取得されたトポロジ情報に基づいて入口ノード102によって経路が確立される場合に、入口ノード102が、経路によってサポートされるネットワーク性能に基づいて、アプリケーションプログラムの特徴情報と経路との間のマッピング関係を生成することがわかるであろう。経路を確立するために使用される経路情報が入口ノード102によってコントローラから取得される場合は、コントローラが経路とアプリケーションプログラムの特徴情報とのマッピング関係を入口ノード102に引き渡すことができ、入口ノードはマッピング関係を記憶する。あるいは、別の一実装において、コントローラが経路とアプリケーションプログラムの特徴情報とのマッピング関係を入口ノード102に引き渡さない場合は、入口ノード102が、経路によってサポートされるネットワーク性能に基づいて、アプリケーションプログラムの特徴情報と経路との間のマッピング関係を生成できる。経路を確立するため、入口ノード102がコントローラと通信するプロセスについては、以下の具体的な説明を参照されたい。
別の一実装において、入口ノード102に記憶される、アプリケーションプログラムの特徴情報と経路との間のマッピング関係は、動的に更新されてよい。例えば、入口ノード102がパケットを取得した後に、パケットに対応するアプリケーションプログラムの特徴情報に基づいて対応するマッピング関係が見つからない場合は、換言すると、マッチする経路が見つからない場合は、入口ノード102が、パケットの中にあるアプリケーションプログラムの特徴情報にマッチする経路を動的に取得し、経路とアプリケーションプログラムの特徴情報とのマッピング関係を確立し、このマッピング関係を記憶することができ、例えば、このマッピング関係を、パケットが後ほど取得されるときに使用するため既存のマッピング関係に追加することができる。
入口ノード102によって動的に取得される経路と、アプリケーションプログラムの特徴情報にマッチする経路が、入口ノード102によって生成されてよいこと、あるいは入口ノード102に接続されたコントローラによって生成されてよいことに注意されたい。コントローラは、例えば、ソフトウェア定義ネットワーキング(software defined network、SDN)コントローラであってよい。
経路が入口ノード102によって生成される場合は、入口ノード102がネットワークシステムのトポロジ情報を取得し、ネットワークシステムのトポロジ情報に基づいて、特徴情報に対応する経路を生成することができる。経路が入口ノード102に接続されたコントローラによって生成される場合は、入口ノード102がコントローラへ経路取得要求を送信でき、経路取得要求は特徴情報を運ぶ。勿論、経路取得要求は経路計算に使用されるその他の情報を、例えば、パケットの送信先アドレスを、さらに含んでよい。コントローラは、経路取得要求を受信した後に、ネットワークシステムのトポロジ情報と、パケットの送信先アドレスと、経路計算に使用されるその他情報を取得し、特徴情報に対応する経路を生成し、経路を入口ノード102に引き渡すことができる。入口ノード102は経路を受信し、特徴情報と経路との間のマッピング関係を確立し、記憶する。
加えて、本出願の本実施形態においては、アプリケーションプログラムの識別情報および/またはネットワーク性能要件情報に加えて、特徴情報はアプリケーションプログラムに対応するユーザー識別子をさらに含んでよい。ユーザー識別子は、アプリケーションプログラムに対応するユーザーを、例えば、アプリケーションプログラムを使用するユーザーを、識別するため使用される。ユーザー識別子は、ユーザーのユーザー名などの情報を含んでよい。
端末デバイス101によって入口ノード102へ送信されるパケットが特徴情報にユーザー識別子を運ぶ場合に、パケットがIPv6パケットなら、ユーザー識別子はIPv6パケットのIPv6拡張ヘッダー内のTLVフィールドの中で運ばれ、具体的には、ホップ・バイ・ホップ・オプション(Hop-by-Hop option)TLVフィールド、送信先オプション(destination option)TLVフィールドなどの中で運ばれうる。パケットがSRv6パケットなら、ユーザー識別子は、Hop-by-Hop option TLVフィールド、destination option TLVフィールドなどの中で運ばれることに加え、SRv6パケットのSRH内のTLVフィールドに、またはSRv6パケットのSRH内のSIDの中で運ばれてもよい。
相応に、入口ノード102は、ユーザー識別子と、他の2つの特徴情報のうちの少なくともいずれか一方と、経路との間のマッピング関係を予め確立し、つぎに、マッピング関係と、ユーザー識別子と、パケットに基づいて取得される他の2つの特徴情報のうちの少なくともいずれか一方とに基づいて、対応する経路を取得することができる。
表5は、ユーザー識別子と、アプリケーションプログラムの識別情報と、アプリケーションプログラムのネットワーク性能要件情報と、経路との間のマッピング関係の例示的な表である。
あるいは、対応するアプリケーションプログラムのネットワーク性能要件情報が識別情報に基づいて決定される場合は、識別情報とユーザー識別子とに基づいて対応するアプリケーションプログラムのネットワーク性能要件情報が決定されてよい。
加えて、上述したように、実際の適用では、アプリケーションプログラムの識別情報を、および/またはアプリケーションプログラムのネットワーク性能要件情報を示すためにインデックスが用いられてよい。具体的な一実装において、インデックスはユーザー識別子を示すためにさらに用いられてよい。すなわち、表5内のAPP ID、アプリケーションプログラムのネットワーク性能要件情報、およびユーザー識別子は、1つ以上のインデックスに置き換えられてよい。
通常、アプリケーションプログラムの特徴情報と、入口ノード102と出口ノード103の間の経路との間のマッピング関係は、
アプリケーションプログラムの識別情報と、入口ノード102と出口ノード103の間の経路との間のマッピング関係、
アプリケーションプログラムのネットワーク性能要件情報と、入口ノード102と出口ノード103の間の経路との間のマッピング関係、
アプリケーションプログラムの識別情報と、アプリケーションプログラムのネットワーク性能要件情報と、入口ノード102と出口ノード103の間の経路との間のマッピング関係、
ユーザー識別子と、アプリケーションプログラムの識別情報と、入口ノード102と出口ノード103の間の経路との間のマッピング関係、
ユーザー識別子と、アプリケーションプログラムのネットワーク性能要件情報と、入口ノード102と出口ノード103の間の経路との間のマッピング関係、または
ユーザー識別子と、アプリケーションプログラムの識別情報と、アプリケーションプログラムのネットワーク性能要件情報と、入口ノード102と出口ノード103の間の経路との間のマッピング関係のうち、いずれか1つを含む。
要するに、従来は、パケットのクインタプル情報(IP送信先アドレス、IP送信元アドレス、トランスポート層送信元ポート、トランスポート層送信先ポート、およびプロトコル種別)に基づいてトラフィック要件を満たす経路がマッチされる。具体的に述べると、同じクインタプル情報を有するパケットは同じ経路にマッチする。しかし、同じクインタプルを有するパケットは多数あり得、経路に対するトラフィック要件はパケットによって異なる場合がある。したがって、クインタプル情報に基づいて実施される従来のトラフィックスケジューリングソリューションの管理粒度は比較的粗く、ネットワークリソース割り当ての合理性は乏しい。同じクインタプルを有するパケットは、複数のアプリケーションプログラムのパケットを含み得る。したがって、本出願の本実施形態では、別々のアプリケーションプログラムからのパケットについてネットワーク性能に一致する経路をマッチさせるため、アプリケーションプログラムレベルに基づくトラフィックスケジューリングが行われる。従来のソリューションと比べて、トラフィックスケジューリングソリューションの管理粒度はより細かい。これは、ネットワークリソースに対して洗練された管理を実施し、ネットワークリソース割り当ての合理性を高める。例えば、アプリケーションプログラムAが高帯域幅と低レイテンシのネットワーク性能を要求する場合は、ネットワーク性能をサポートする経路をアプリケーションプログラムAのために生成でき、アプリケーションプログラムAからのパケットはネットワーク性能をサポートする経路を通じて転送される。アプリケーションプログラムBのトラフィックが比較的小さい場合は、比較的低い帯域幅が必要になるかもしれない。この場合は、アプリケーションプログラムBからのパケットを転送するため、比較的低い帯域幅をサポートする経路をアプリケーションプログラムBのために生成できる。こうして、ネットワークリソースをより合理的に割り当てることができる。
図1に示された実施形態では、ネットワークシステムが、端末デバイスと、入口ノードと、出口ノードとを含む。別の一実施形態では、ネットワークシステムがネットワークデバイスをさらに含んでもよい。
図3は、本出願の一実施形態による別のネットワークシステムの構造ブロック図である。図3で、ネットワークシステムは、端末デバイス301と、ネットワークデバイス302と、入口ノード303と、出口ノード304とを含む。端末デバイス301はネットワークデバイス302に接続され、ネットワークデバイス302は入口ノード303に接続され、入口ノード303は出口ノード304に接続されている。
ネットワークデバイス302は、例えば、ゲートウェイ、ネットワークアダプタ、アクセスデバイス、ルーター、またはスイッチであってよい。アクセスデバイスは、デジタル加入者回線アクセス多重化装置(digital subscriber line access multiplexer、DSLAM)、光ネットワーク端末(optical network terminal、ONT)、光回線端末(optical line terminal、OLT)、顧客宅内機器(customer premises equipment、CPE)などを含み得る。
端末デバイス301、入口ノード303、および出口ノード304については、端末デバイス101、入口ノード102、および出口ノード103の上記の説明をそれぞれ参照されたい。ここでは詳細を繰り返し説明しない。
図4は、図3に示されたネットワークシステムに基づいて提供されるパケット処理方法の概略図である。
S401:端末デバイス301はネットワークデバイス302へパケットを送信する。
S401で端末デバイスによって送信される内容は、S201で端末デバイスによって送信される内容と同じであり、いずれもパケットであるが、端末デバイスがパケットを送信する相手先は異なる。S201で端末デバイス101がパケットを送信する相手先は入口ノード102であるが、S401で端末デバイス301がパケットを送信する相手先はネットワークデバイス302である。したがって、本出願の本実施形態ではS401を詳しく説明しない。パケットの関連内容については、S201を参照されたい。
S402:ネットワークデバイス302は端末デバイス301からパケットを受信し、パケットに基づいて、パケットに対応するアプリケーションプログラムの特徴情報を取得する。
S402はS202と基本的に同じであり、ステップの実行主体だけが異なる。ステップS202の実行主体は入口ノード102であるが、ステップS402の実行主体はネットワークデバイス302である。加えて、S202で入口ノード102によって受信されるパケットは、端末デバイス101からのものである。同様に、S402でネットワークデバイス302によって受信されるパケットは、端末デバイス301からのものである。したがって、本出願の本実施形態ではS402を詳しく説明しない。関連内容については、S202を参照されたい。
加えて、パケットに基づいて、パケットに対応するアプリケーションプログラムの特徴情報を取得する3通りの手法が上述されていることに注意されたい。図4に示された実施形態で、端末デバイス301からネットワークデバイス302によって受信されるパケットがIPv6パケットなら、ネットワークデバイス302は最後の2つの手法でアプリケーションプログラムの特徴情報を取得できる。端末デバイス301からネットワークデバイス302によって受信されるパケットがIPv4パケットなら、ネットワークデバイス302は、前述した2番目の手法で、すなわちパケット解析手法で、アプリケーションプログラムの特徴情報を取得できる。
S403:ネットワークデバイス302は、アプリケーションプログラムの特徴情報を運ぶパケットを入口ノード303へ送信する。
本出願の本実施形態において、端末デバイス301からネットワークデバイス302によって受信されるパケットがアプリケーションプログラムの特徴情報を運び、パケットがIPv6パケットである場合は、上記の説明に従い、アプリケーションプログラムの特徴情報はIPv6パケットのIPv6拡張ヘッダーの中で運ばれうる。アプリケーションプログラムの特徴情報がセグメント識別子形式でIPv6パケットのIPv6拡張ヘッダー内のTLVフィールドの中で運ばれる場合は、ネットワークデバイス302は、セグメント識別子形式でIPv6拡張ヘッダー内のTLVフィールドの中で運ばれるアプリケーションプログラムの特徴情報を抽出し、IPv6パケットの送信先アドレスに特徴情報を入れることができる。こうして、入口ノード303は、IPv6パケットから特徴情報を抽出するときに、送信先アドレスから特徴情報を抽出できる。送信先アドレスからの情報抽出はIPv6拡張ヘッダー内のTLVフィールドからの情報抽出より速いため、入口ノード303によってアプリケーションプログラムの特徴情報を抽出する効率は上がる。勿論、アプリケーションプログラムの特徴情報がセグメント識別子形式でSRv6パケットのSRH内のSIDの中で運ばれる場合は、ネットワークデバイス302は、セグメント識別子形式でSIDの中で運ばれるアプリケーションプログラムの特徴情報を抽出し、SRv6パケットの送信先アドレスに特徴情報を入れることができる。
端末デバイス301からネットワークデバイス302によって受信されるパケットがIPv4パケットである場合、ネットワークデバイス302は、IPv4パケットを解析することでアプリケーションプログラムの特徴情報を取得し、つぎに、IPv4パケットをSRv6パケットの中に封入し、SRv6パケットのTLVフィールドの中で、またはSRv6パケットのSRH内のセグメント識別子SIDの中で、アプリケーションプログラムの特徴情報が運ばれることを可能にすることができる。SRv6パケットのTLVフィールドは、hop-by-hop option TLVフィールド、destination option TLVフィールド、およびSRH内のTLVフィールドを含み得る。
S404:入口ノード303はネットワークデバイス302からパケットを受信し、パケットからアプリケーションプログラムの特徴情報を抽出する。
具体的に述べると、入口ノード303は、プロトコルによる、例えば、インテリアゲートウェイプロトコル(Interior Gateway Protocol、IGP)、ボーダーゲートウェイプロトコル(Border Gateway Protocol、BGP)、または経路計算要素通信プロトコル(Path Computation Element Communication Protocol、PCEP)による、通知方式で、パケットからアプリケーションプログラムの特徴情報を抽出できる。プロトコルによる通知の内容は、パケットにおけるアプリケーションプログラムの特徴情報の収容形式であってよく、例えば、SID形式であってよい。入口ノード303は、形式に従ってアプリケーションプログラムの特徴情報を抽出できる。
S405:入口ノード303は、特徴情報、および、アプリケーションプログラムの特徴情報と、入口ノード303と出口ノード304の間の経路との間のマッピング関係に基づいて、入口ノード303と出口ノード304の間の経路を決定し、入口ノード303と出口ノード304の間の経路を通じてパケットを転送する。
S405はS203と基本的に同じであり、ここでは詳細を繰り返し説明しない。関連内容については、上記の説明を参照されたい。
要するに、図4に示されたパケット処理方法と図2に示されたパケット処理方法の違いは、ネットワークシステムにネットワークデバイス302が加えられ、ネットワークデバイス302が入口ノード303の一部の機能を担うことにある。具体的に述べると、図4に示されたパケット処理方法では、ネットワークデバイス302が、パケットに基づいて、パケットに対応するアプリケーションプログラムの特徴情報を取得するが、図2に示されたパケット処理方法では、このステップが入口ノード102によって行われる。したがって、ネットワークデバイス302はアプリケーションプログラムの特徴情報を入口ノード303へ相応に送信する必要がある。
加えて、上述したように、本実施形態の入口ノード303は図2の入口ノード102と同じであってよい。図2に示されたパケット処理方法では、アプリケーションプログラムの特徴情報がアプリケーションプログラムのネットワーク性能要件情報である場合に、入口ノード102はまず、パケットに基づいてアプリケーションプログラムの識別情報を取得し、つぎに、アプリケーションプログラムの識別情報とネットワーク性能要件情報との予め記憶されたマッピング関係に基づいて、アプリケーションプログラムの識別情報に対応するアプリケーションプログラムのネットワーク性能要件情報を決定することができる。入口ノード303によって取得される、パケットに対応するアプリケーションプログラムの特徴情報は、アプリケーションプログラムの識別情報であり、入口ノード303に記憶される、アプリケーションプログラムの特徴情報と、入口ノード303と出口ノード304の間の経路との間のマッピング関係が、表3、表4、または表5に示された前述のマッピング関係である場合に、入口ノード303が、パケットから取得されるアプリケーションプログラムの識別情報に基づいて、表1を検索することによって、アプリケーションプログラムのマッチするネットワーク性能要件情報を取得でき、つぎに、表3、表4、または表5に従って入口ノード303と出口ノード304の間の対応する経路を決定できることがわかるであろう。
したがって、図3に示されたネットワークシステムに基づき、別の一実装においては、S402、S403、およびS404が、S402’、S403’、およびS404’にそれぞれ置き換えられてよい。
S402’:ネットワークデバイス302は端末デバイス301からパケットを受信し、パケットに基づいてアプリケーションプログラムの識別情報を取得する。
ネットワークデバイス302がパケットに基づいてアプリケーションプログラムの識別情報を取得する手法は、入口ノード102がアプリケーションプログラムの識別情報を取得する前述の3つの手法と同様であり、ここでは詳細を繰り返し説明しない。
S403’:ネットワークデバイス302は、アプリケーションプログラムの識別情報を運ぶパケットを入口ノード303へ送信する。
S404’:入口ノード303はネットワークデバイス302からパケットを受信し、パケットの中にあるアプリケーションプログラムの識別情報、ならびに入口ノード303に記憶されたアプリケーションプログラムの識別情報とアプリケーションプログラムのネットワーク性能要件情報とのマッピング関係に基づいて、識別情報に対応するネットワーク性能要件を決定する。
図3に示されたネットワークシステムに基づき、さらに別の一実装においては、ネットワークデバイス302が端末デバイス301からのパケットを処理しなくてよく、パケットを入口ノード303へ直接転送する。この場合、入口ノード303によって行われるステップは、図2に示されたパケット処理方法で入口ノード102によって行われるステップと基本的に同じである。したがって、ここでは詳細を繰り返し説明しない。
加えて、上述したように、特徴情報はユーザー識別子をさらに含んでよい。図3に示されたネットワークシステムに基づくパケット処理方法におけるユーザー識別子の処理については、上記の説明を参照されたい。ここでは詳細を繰り返し説明しない。
本出願の本実施形態における具体的な一実装においては、入口ノード102にて、または入口ノード303にて、予めアプリケーションプログラムの特徴情報とキューとのマッピング関係がさらに確立されてよい。入口ノードによって決定され、パケットを転送するために使用される経路は、入口ノードと次ホップノードの間の経路を含む。入口ノードを次ホップノードに接続するインターフェイスは1つ以上のキューに対応し得、キューがサポートするネットワーク性能はキューによって異なる場合がある。例えば、キューによってサポートされるネットワーク性能は、相対的優先転送(assured forwarding、AF)、完全優先転送(expedited forwarding、EF)、ベストエフォート(best effort、BE)などを含み得る。AFキューは、ネットワークによって送信されるサービストラフィックが最低限保証された帯域幅を超過しない場合に、キューにおいて比較的低いパケット損失率を保証できる。EFキューは、低レイテンシを要求して低帯域幅を占めるパケットを、例えば、音声パケットを、転送するために使用される。BEキューは、AFキューとEFキューに当てはまらないパケットを転送するために使用される。
パケットが、経路を通るのみならず、キューを使用することによって、入口ノードから送信されるときに、対応するネットワーク性能を享受できるようにするため、同じ特徴情報に対応するキューによってサポートされるネットワーク性能は、対応する経路によってサポートされるネットワーク性能にマッチできる。したがって、入口ノードは、パケットに基づいて取得される特徴情報、および特徴情報とキューとのマッピング関係に基づいて、対応するキューを決定し、パケットをキューに加え、特徴情報に対応する経路を通じてパケットを転送することができる。
例えば、入口ノードAとノードBとを接続するインターフェイスは2つのキューに対応してよく、2つのキューはそれぞれキュー1とキュー2である。キュー1はAFキューであり、キュー2はEFキューである。入口ノードAとノードBの間の経路に対応するネットワーク性能は高帯域幅であり、例えば帯域幅>20 Mbit/sである。したがって、ノードAはキュー1にパケットを加えることができる。
勿論、アプリケーションプログラムの特徴情報に対応するキューが決定される場合に、キューによってサポートされる性能に加えて、別のルールに従って、キューが決定されてよいことがわかるであろう。これは本出願の本実施形態で限定されず、例えば、複数のキューのうちのいずれか1つが選択される。
具体的に述べると、アプリケーションプログラムの特徴情報とキューとのマッピング関係は、
アプリケーションプログラムの識別情報とキューとのマッピング関係、
アプリケーションプログラムのネットワーク性能要件情報とキューとのマッピング関係、
アプリケーションプログラムの識別情報と、アプリケーションプログラムのネットワーク性能要件情報と、キューとのマッピング関係、
ユーザー識別子と、アプリケーションプログラムの識別情報と、キューとのマッピング関係、
ユーザー識別子と、アプリケーションプログラムのネットワーク性能要件情報と、キューとのマッピング関係、または
ユーザー識別子と、アプリケーションプログラムの識別情報と、アプリケーションプログラムのネットワーク性能要件情報と、キューとのマッピング関係のうち、いずれか1つを含み得る。
例えば、表6を参照されたい。表6は、ユーザー識別子と、アプリケーションプログラムの識別情報と、アプリケーションプログラムのネットワーク性能要件情報と、キューとのマッピング関係の例示的な表である。
本出願の本実施形態において、アプリケーションプログラムのトラフィックが変わる場合、これはアプリケーションプログラムのネットワーク性能要件も変わることを意味する。したがって、アプリケーションプログラムのパケットが加えられるキューは調整される。
具体的に述べると、入口ノード102または入口ノード303は、アプリケーションプログラムの識別情報によって識別されるアプリケーションプログラムのトラフィックを分析することで分析結果を得、つぎに、分析結果に基づいて、アプリケーションプログラムのパケットが加えられるキューを調整することができる。
パケットトラフィックが分析されるときには、具体的に述べると、アプリケーションプログラムの同じ識別情報を有する複数のパケットのトラフィックが監視され分析されるときには、トラフィック特徴情報が抽出され、例えば、トラフィック量、パケット長情報、プロトコル情報、ポートトラフィック情報、または伝送制御プロトコル(Transmission Control Protocol、TCP)フラグ情報が抽出され、アプリケーションプログラムの新たなネットワーク性能要件を決定するために、トラフィック特徴情報に基づいてトラフィックの変化が分析され、つぎに、新たなネットワーク性能要件に基づいてマッチするキューが再決定される。
例えば、入口ノードはアプリケーションプログラムAのパケットのトラフィックを分析し、アプリケーションプログラムAのトラフィックが減少していることに気づく。アプリケーションプログラムAに対応するキューがAFキューであると仮定すると、入口ノードは、入口ノードの伝送リソースを合理的に割り当てるため、アプリケーションプログラムAのキューをBEキューに変更できる。
同様に、入口ノードはさらに、アプリケーションプログラムのトラフィックの分析結果に基づいて、アプリケーションプログラムのパケットに対応する入口ノードと出口ノードの間の経路を調整できる。
例えば、アプリケーションのトラフィックが増える場合は、アプリケーションプログラムに対応する入口ノードと出口ノードの間の経路を、トラフィックに間に合う帯域幅を有する経路に変更できる。
例えば、アプリケーションプログラムの元のトラフィックは8 Mbit/sであり、アプリケーションプログラムの特徴情報に基づいて決定される入口ノードと出口ノードの間の経路の帯域幅は10 Mbit/sである。アプリケーションプログラムのトラフィックが15 Mbit/sになると、入口ノードと出口ノードの間の経路を、20 Mbit/sの帯域幅に間に合う経路に再決定できる。
入口ノードが、アプリケーションプログラムのトラフィックの分析結果に基づいて、アプリケーションプログラムのパケットに対応する入口ノードと出口ノードの間の経路を調整する技術的手段が、図2および図4に示された実施形態に適用可能であることに注意されたい。したがって、入口ノード102および入口ノード303は、アプリケーションプログラムのトラフィックの分析結果に基づいて、アプリケーションプログラムのパケットに対応する入口ノードと出口ノードの間の経路を調整できる。
図5は、本出願の一実施形態によるパケット処理方法を示す。方法はネットワークシステムに適用でき、ネットワークシステムは入口ノードと出口ノードとを含んでよい。入口ノードは端末デバイスからパケットを受信し、パケットは入口ノードと出口ノードの間の経路を通じて送信先ノードに到達する。本出願の本実施形態において、入口ノードは入口ノード102または入口ノード303であってよく、出口ノードは出口ノード103または出口ノード304であってよい。
パケット処理方法は以下のステップを含んでよい。
S501:端末デバイスはアプリケーションプログラムの特徴情報を取得する。
本出願の本実施形態において、アプリケーションプログラムの特徴情報は、アプリケーションプログラムの識別情報とネットワーク性能要件情報のうち、少なくともいずれか1つを含む。識別情報はアプリケーションプログラムを識別するために用いられる。アプリケーションプログラムの識別情報とアプリケーションプログラムのネットワーク性能要件情報の関連説明については、上記の説明を参照されたい。ここでは詳細を繰り返し説明しない。
本出願の本実施形態においては、端末デバイスにアプリケーションプログラムがインストールされた後に、アプリケーションプログラムの識別情報を端末デバイスに記憶できる。したがって、アプリケーションプログラムの特徴情報がアプリケーションプログラムの識別情報を含む場合は、端末デバイスはアプリケーションプログラムの識別情報の記憶アドレスに基づいてアプリケーションプログラムの識別情報を取得できる。端末デバイスは、構成を通じてアプリケーションプログラムのネットワーク性能要件情報を取得できる。
加えて、ユーザーがアプリケーションプログラムにログインするときには、ログインのためにユーザー識別子が通常要求され、このユーザー識別子は端末デバイスに記憶できる。アプリケーションプログラムの特徴情報がユーザー識別子をさらに含む場合は、端末デバイスは、端末デバイスにおけるユーザー識別子の記憶アドレスに基づいてユーザー識別子を取得できる。
S502:端末デバイスはアプリケーションプログラムに対応するパケットを生成し、パケットはアプリケーションプログラムの特徴情報を運ぶ。
アプリケーションプログラムの特徴情報は、パケットを送信先ノードへ転送するため、入口ノードと出口ノードの間の経路を決定するために入口ノードによって使用される。
本出願の本実施形態において、端末デバイスによって生成されるパケットがIPv6パケットである場合、アプリケーションプログラムの特徴情報は、IPv6パケットのIPv6拡張ヘッダーまたは送信先アドレスの中で運ばれうる。具体的に述べると、IPv6パケットのIPv6拡張ヘッダーは、IPv6拡張ヘッダー内のTLVフィールド、およびセグメントルーティングヘッダーSRH内のセグメント識別子SIDのうち、少なくともいずれか1つを含む。IPv6拡張ヘッダー内のTLVフィールドは、hop-by-hop option TLVフィールド、destination option TLVフィールド、およびSRH内のTLVフィールドのうち、少なくともいずれか1つを含む。これらのフィールドの関連説明については、上記の説明を参照されたい。ここでは詳細を繰り返し説明しない。
加えて、IPv6拡張ヘッダー内のTLVフィールド内の値の形式は、セグメント識別子形式であってよい。具体的な理由については、上記の説明を参照されたい。ここでは詳細を繰り返し説明しない。
S503:端末デバイスはアプリケーションプログラムに対応するパケットを入口ノードへ送信する。
本出願の本実施形態において、端末デバイスはアプリケーションプログラムに対応するパケットをネットワークシステム内の入口ノードへ直接送信してよく、あるいは端末デバイスは最初にパケットをネットワークデバイスへ送信してよく、つぎに、ネットワークデバイスが入口ノードへパケットを伝送し、入口ノードはアプリケーションプログラムに対応するパケットを送信先ノードへ伝送する。入口ノードは入口ノード102または入口ノード303であってよく、ネットワークデバイスはネットワークデバイス302であってよい。
S504:入口ノードは端末デバイスからパケットを受信し、パケットに対応するアプリケーションプログラムの特徴情報を取得し、つぎに、アプリケーションプログラムの特徴情報、および、アプリケーションプログラムの特徴情報と、入口ノードと出口ノードの間の経路との間のマッピング関係に基づいて、入口ノードと出口ノードの間の経路を決定し、入口ノードと出口ノードの間の経路を通じてパケットを転送する。
加えて、上述したように、図2に示されたパケット処理方法では、アプリケーションプログラムの特徴情報がアプリケーションプログラムのネットワーク性能要件情報である場合に、入口ノードはまず、パケットに基づいてアプリケーションプログラムの識別情報を取得し、つぎに、アプリケーションプログラムの識別情報とネットワーク性能要件情報との予め記憶されたマッピング関係に基づいて、アプリケーションプログラムの識別情報に対応するアプリケーションプログラムのネットワーク性能要件情報を決定することができる。入口ノードによって取得される、パケットに対応するアプリケーションプログラムの特徴情報が、アプリケーションプログラムの識別情報であり、入口ノードに記憶される、アプリケーションプログラムの特徴情報と、入口ノードと出口ノードの間の経路との間のマッピング関係が、表3、表4、または表5に示されたマッピング関係である場合に、入口ノードが、パケットから取得されるアプリケーションプログラムの識別情報に基づいて、表1を検索することによって、アプリケーションプログラムのマッチするネットワーク性能要件情報を取得でき、つぎに、表3、表4、または表5に従って入口ノードと出口ノードの間の対応する経路を決定できることがわかるであろう。
本出願の本実施形態において、端末デバイスによって生成されるパケットはアプリケーションプログラムの特徴情報を運ぶので、アプリケーションプログラムの特徴情報は、パケットを送信先ノードへ転送するため、入口ノードから出口ノードまでの経路を決定するために入口ノードによって使用される。クインタプル情報に基づいてトラフィック要件を満たす経路がマッチされる従来の技術的なソリューションと比べて、本出願の本実施形態では、アプリケーションプログラムレベルに基づくトラフィックスケジューリングソリューションの管理粒度がより細かく、ネットワークリソース割り当ての合理性が高められることが分かる。
相応に、図6を参照されたい。本出願の一実施形態はパケット処理装置500をさらに提供する。装置はネットワークシステム内の入口ノードで使用されてよく、入口ノードは、図2に示された入口ノード102の機能を、または図4に示された入口ノード303の機能を実行できる。ネットワークシステムは出口ノードをさらに含み、パケットは入口ノードと出口ノードの間の経路を通じて送信先ノードに到達する。
パケット処理装置は、取得ユニット501と、経路決定ユニット502と、転送ユニット503とを含む。取得ユニット501は、図2に示された実施形態のS202を、または図4に示された実施形態のS404を、行うように構成される。経路決定ユニット502と転送ユニット503は、図2に示された実施形態のS203を、または図4に示された実施形態のS405を、行うように構成される。
取得ユニット501は、パケットを受信し、パケットに対応するアプリケーションプログラムの特徴情報を取得するように構成される。アプリケーションプログラムの特徴情報は、アプリケーションプログラムの識別情報とアプリケーションプログラムのネットワーク性能要件情報のうち、少なくともいずれか1つを含む。識別情報はアプリケーションプログラムを識別するために用いられ、アプリケーションプログラムのネットワーク性能要件情報は、アプリケーションプログラムのネットワーク性能要件を示すために使用される。
経路決定ユニット502は、アプリケーションプログラムの特徴情報、および、アプリケーションプログラムの特徴情報と、入口ノードと出口ノードの間の経路との間のマッピング関係に基づいて、入口ノードと出口ノードの間の経路を決定するように構成される。
転送ユニット503は、入口ノードと出口ノードの間の経路を通じてパケットを転送するように構成される。
パケット処理装置は、前述した方法の実施形態で、入口ノード102の機能を、または入口ノード303の機能を実行できる。具体的な実行ステップについては、前述した方法の実施形態を参照されたい。ここでは詳細を繰り返し説明しない。
相応に、図7を参照されたい。本出願の一実施形態はパケット処理装置600をさらに提供する。装置はネットワークシステム内のネットワークデバイスで使用されてよく、ネットワークデバイスは、図4に示されたネットワークデバイス302の機能を実行できる。ネットワークシステムは入口ノードと出口ノードをさらに含み、パケットは入口ノードと出口ノードの間の経路を通じて送信先ノードに到達する。
パケット処理装置は、取得ユニット601と送信ユニット602とを含む。取得ユニット601は、図4に示された実施形態のS402を行うように構成され、送信ユニット602は、図4に示された実施形態のS403を行うように構成される。
取得ユニット601は、パケットを受信し、パケットに対応するアプリケーションプログラムの特徴情報を取得するように構成される。アプリケーションプログラムの特徴情報は、アプリケーションプログラムの識別情報とアプリケーションプログラムのネットワーク性能要件情報のうち、少なくともいずれか1つを含む。識別情報はアプリケーションプログラムを識別するために用いられ、アプリケーションプログラムのネットワーク性能要件情報は、アプリケーションプログラムのネットワーク性能要件を示すために用いられる。
送信ユニット602は、アプリケーションプログラムの特徴情報を運ぶパケットを入口ノードへ送信するように構成される。
パケット処理装置は、前述した方法の実施形態でネットワークデバイス302の機能を実行できる。具体的な実行ステップについては、前述した方法の実施形態を参照されたい。ここでは詳細を繰り返し説明しない。
相応に、図8を参照されたい。本出願の一実施形態は端末デバイス700をさらに提供する。端末デバイス700は、図2に示された端末デバイス101の機能を、または図4に示された端末デバイス301の機能を実行できる。
端末デバイス700は、取得ユニット701と、パケット生成ユニット702と、送信ユニット703とを含む。取得ユニット701は、図5に示された実施形態のS501を行うように構成され、パケット生成ユニット702は図5に示された実施形態のS502を行うように構成され、送信ユニット703は図5に示された実施形態のS503を行うように構成される。
取得ユニット701は、アプリケーションプログラムの特徴情報を取得するように構成される。アプリケーションプログラムの特徴情報は、アプリケーションプログラムの識別情報とアプリケーションプログラムのネットワーク性能要件情報のうち、少なくともいずれか1つを含む。識別情報はアプリケーションプログラムを識別するために用いられる。
パケット生成ユニット702は、アプリケーションプログラムに対応するパケットを生成するように構成される。パケットはアプリケーションプログラムの特徴情報を運び、アプリケーションプログラムの特徴情報は、パケットを送信先ノードへ転送するため、入口ノードと出口ノードの間の経路を決定するために入口ノードによって使用される。
送信ユニット703は、ネットワークシステムを使用してアプリケーションプログラムに対応するパケットを送信先ノードへ送信するように構成される。
端末デバイス700は、前述した方法の実施形態で、端末デバイス101の機能を、または端末デバイス301の機能を実行できる。具体的な実行ステップについては、前述した方法の実施形態を参照されたい。ここでは詳細を繰り返し説明しない。
図9を参照し、本出願の一実施形態は入口ノード800を提供する。入口ノード800は、図1から図5に示された実施形態で入口ノードの機能を実行できる。入口ノードは、メモリー801と、プロセッサ802と、通信インターフェイス803とを含む。
メモリー801は、命令を記憶するように構成される。図6に示された実施形態が実施され、図6の実施形態で説明されているユニットがソフトウェアを使用して実装される場合は、図6の取得ユニット501、経路決定ユニット502、および転送ユニット503の機能を行うのに必要なソフトウェアまたはプログラムコードがメモリー801に記憶される。
プロセッサ802は、図2に示された実施形態の入口ノード102に、または図4に示された実施形態の入口ノード303に、適用されるパケット処理方法を行うため、メモリー801内の命令を実行するように構成される。
通信インターフェイス803は、通信を行うように構成される。
メモリー801とプロセッサ802と通信インターフェイス803は、バス804を通じて相互に接続される。バス804は、ペリフェラルコンポーネントインターコネクト(peripheral component interconnect、略してPCI)バス、拡張業界標準アーキテクチャ(extended industry standard architecture、略してEISA)バスなどであってよい。バスは、アドレスバス、データバス、制御バスなどに分類できる。表現を簡単にするため、図9ではバスを表すために太い線が1本だけ用いられているが、これはバスが1つしかないことを、または1種類のバスしかないことを意味しない。
具体的な一実施形態において、プロセッサ802は、パケットを取得し、パケットに対応するアプリケーションプログラムの特徴情報を取得し、アプリケーションプログラムの特徴情報、および、アプリケーションプログラムの特徴情報と、入口ノードと出口ノードの間の経路との間のマッピング関係に基づいて、入口ノードと出口ノードの間の経路を決定するように構成される。アプリケーションプログラムの特徴情報は、アプリケーションプログラムの識別情報とアプリケーションプログラムのネットワーク性能要件情報のうち、少なくともいずれか1つを含む。識別情報はアプリケーションプログラムを識別するために用いられる。プロセッサ802の詳しい処理プロセスについては、図2に示された実施形態のS202およびS203の詳しい説明、ならびに図4に示された実施形態のS404およびS405の詳しい説明を参照されたい。ここでは詳細を繰り返し説明しない。
通信インターフェイス803は、入口ノードと出口ノードの間の経路を通じてパケットを転送するように構成される。具体的なプロセスについては、図2に示された実施形態のS203の詳しい説明、ならびに図4に示された実施形態のS405の詳しい説明を参照されたい。ここでは詳細を繰り返し説明しない。
図10を参照し、本出願の一実施形態はネットワークデバイス900を提供する。ネットワークデバイスは、図4および図5に示された実施形態でネットワークデバイスの機能を実行できる。ネットワークデバイス900は、メモリー901と、プロセッサ902と、通信インターフェイス903とを含む。
メモリー901は、命令を記憶するように構成される。図7に示された実施形態が実施され、図7の実施形態で説明されているユニットがソフトウェアを使用して実装される場合は、図7の取得ユニット601および送信ユニット602の機能を行うのに必要なソフトウェアまたはプログラムコードがメモリー901に記憶される。
プロセッサ902は、図4に示された実施形態のネットワークデバイス302に適用されるパケット処理方法を行うため、メモリー901内の命令を実行するように構成される。
通信インターフェイス903は、端末デバイスおよび入口ノードと通信するように構成される。
メモリー901とプロセッサ902と通信インターフェイス903は、バス904を通じて相互に接続される。バス904は、ペリフェラルコンポーネントインターコネクト(peripheral component interconnect、略してPCI)バス、拡張業界標準アーキテクチャ(extended industry standard architecture、略してEISA)バスなどであってよい。バスは、アドレスバス、データバス、制御バスなどに分類できる。表現を簡単にするため、図10ではバスを表すために太い線が1本だけ用いられているが、これはバスが1つしかないことを、または1種類のバスしかないことを意味しない。
具体的な一実施形態において、プロセッサ902は、パケットを取得し、パケットに対応するアプリケーションプログラムの特徴情報を取得するように構成される。アプリケーションプログラムの特徴情報は、アプリケーションプログラムの識別情報とネットワーク性能要件情報のうち、少なくともいずれか1つを含む。識別情報はアプリケーションプログラムを識別するために用いられる。プロセッサ902の詳しい処理プロセスについては、図4に示された実施形態のS402およびS403の詳しい説明を参照されたい。ここでは詳細を繰り返し説明しない。
通信インターフェイス903は、アプリケーションプログラムの特徴情報を運ぶパケットを入口ノードへ送信するように構成される。アプリケーションプログラムの特徴情報は、パケットを転送するため、入口ノードと出口ノードの間の経路を決定するために入口ノードによって使用される。具体的なプロセスについては、図4に示された実施形態のS403の詳しい説明を参照されたい。ここでは詳細を繰り返し説明しない。
図11を参照し、本出願の一実施形態は端末デバイス1000を提供する。端末デバイスは、図2に示された実施形態の端末デバイス101の機能を、または図4に示された実施形態の端末デバイス301の機能を実行できる。端末デバイス1000は、メモリー1001と、プロセッサ1002と、通信インターフェイス1003とを含む。
メモリー1001は、命令を記憶するように構成される。図8に示された実施形態が実施され、図8の実施形態で説明されているユニットがソフトウェアを使用して実装される場合は、図8の取得ユニット701、パケット生成ユニット702、および送信ユニット703の機能を行うのに必要なソフトウェアまたはプログラムコードがメモリー1001に記憶される。
プロセッサ1002は、図4に示された実施形態の端末デバイス301に適用されるパケット処理方法を行うため、メモリー1001内の命令を実行するように構成される。
通信インターフェイス1003は、ネットワークデバイスまたは入口ノードと通信するように構成される。
メモリー1001とプロセッサ1002と通信インターフェイス1003は、バス1004を通じて相互に接続される。バス1004は、ペリフェラルコンポーネントインターコネクト(peripheral component interconnect、略してPCI)バス、拡張業界標準アーキテクチャ(extended industry standard architecture、略してEISA)バスなどであってよい。バスは、アドレスバス、データバス、制御バスなどに分類できる。表現を簡単にするため、図11ではバスを表すために太い線が1本だけ用いられているが、これはバスが1つしかないことを、または1種類のバスしかないことを意味しない。
具体的な一実施形態において、プロセッサ1002は、アプリケーションプログラムの特徴情報を取得するように構成される。アプリケーションプログラムの特徴情報は、アプリケーションプログラムの識別情報とネットワーク性能要件情報のうち、少なくともいずれか1つを含む。識別情報はアプリケーションプログラムを識別するために用いられる。端末デバイス1000はアプリケーションプログラムに対応するパケットを生成する。パケットはアプリケーションプログラムの特徴情報を運び、アプリケーションプログラムの特徴情報は、パケットを送信先ノードへ転送するため、入口ノードと出口ノードの間の経路を決定するために入口ノードによって使用される。
プロセッサ1002の詳しい処理プロセスについては、図5に示された実施形態のS501およびS502の詳しい説明を参照されたい。ここでは詳細を繰り返し説明しない。
通信インターフェイス1003は、ネットワークシステムを使用してアプリケーションプログラムに対応するパケットを送信先ノードへ送信するため、端末デバイスによって使用される。具体的なプロセスについては、図5に示された実施形態のS503の詳しい説明を参照されたい。ここでは詳細を繰り返し説明しない。
メモリー801、メモリー901、およびメモリー1001の各々は、ランダムアクセスメモリー(random-access memory、RAM)、フラッシュメモリー(flash memory)、読み取り専用メモリー(read only memory、ROM)、消去可能プログラム可能読み取り専用メモリー(erasable programmable read only memory、EPROM)、電気的消去可能プログラム可能読み取り専用メモリー(electrically erasable programmable read only memory、EEPROM)、レジスタ(register)、ハードディスク、リムーバブルハードディスク、CD-ROM、または当業者に知られている他の何らかの形態の記憶媒体であってよい。
プロセッサ802、プロセッサ902、およびプロセッサ1002の各々は、例えば、中央処理装置(central processing unit、CPU)、汎用プロセッサ、デジタルシグナルプロセッサ(digital signal processor、DSP)、特定用途向け集積回路(application-specific integrated circuit、ASIC)、フィールドプログラマブルゲートアレイ(field programmable gate array、FPGA)もしくは別のプログラム可能論理デバイス、トランジスタ論理デバイス、ハードウェアコンポーネント、またはこれらの任意の組み合わせであってよい。プロセッサは、本出願で開示されている内容を参照して説明されている様々な例示的な論理ブロック、モジュール、および回路を実施または実行できる。あるいは、プロセッサは、計算機能を実施するプロセッサの組み合わせであってよく、例えば、1つ以上のマイクロプロセッサの組み合わせ、またはDSPとマイクロプロセッサとの組み合わせであってよい。
通信インターフェイス803、通信インターフェイス903、および通信インターフェイス1003の各々は、例えば、インターフェイスカードであってよく、イーサネット(Ethernet)インターフェイスまたは非同期転送モード(asynchronous transfer mode、ATM)インターフェイスであってよい。
本出願の一実施形態はチップをさらに提供する。チップは入口ノード内に配置され、ネットワークシステムで使用される。ネットワークシステムは入口ノードと出口ノードとを含み、パケットは入口ノードと出口ノードの間の経路を通じて送信先ノードに到達する。チップはプロセッサとインターフェイス回路とを含む。
インターフェイス回路は、コード命令を受信し、コード命令をプロセッサへ伝送するように構成される。
プロセッサは、図2に示された実施形態の入口ノード102に、または図4に示された実施形態の入口ノード303に、適用されるパケット処理方法を行うため、コード命令を実行するように構成される。
具体的な一実施形態において、プロセッサは、パケットを取得し、パケットに対応するアプリケーションプログラムの特徴情報を取得し、アプリケーションプログラムの特徴情報、および、アプリケーションプログラムの特徴情報と、入口ノードと出口ノードの間の経路との間のマッピング関係に基づいて、入口ノードと出口ノードの間の経路を決定するように構成される。アプリケーションプログラムの特徴情報は、アプリケーションプログラムの識別情報とアプリケーションプログラムのネットワーク性能要件情報のうち、少なくともいずれか1つを含む。識別情報はアプリケーションプログラムを識別するために用いられる。プロセッサの詳しい処理プロセスについては、図2に示された実施形態のS202およびS203の詳しい説明、ならびに図4に示された実施形態のS404およびS405の詳しい説明を参照されたい。ここでは詳細を繰り返し説明しない。
本出願の一実施形態はチップをさらに提供する。チップはネットワークデバイス内に配置され、ネットワークシステムで使用される。ネットワークシステムは、ネットワークデバイスと、入口ノードと、出口ノードとを含む。パケットは、入口ノードと出口ノードの間の経路を通じて送信先ノードに到達する。チップはプロセッサとインターフェイス回路とを含む。
インターフェイス回路は、コード命令を受信し、コード命令をプロセッサへ伝送するように構成される。
プロセッサは、図4に示された実施形態のネットワークデバイス302に適用されるパケット処理方法を行うため、コード命令を実行するように構成される。
具体的な一実施形態において、プロセッサは、パケットを取得し、パケットに対応するアプリケーションプログラムの特徴情報を取得するように構成される。アプリケーションプログラムの特徴情報は、アプリケーションプログラムの識別情報とネットワーク性能要件情報のうち、少なくともいずれか1つを含む。識別情報はアプリケーションプログラムを識別するために用いられる。
本出願の一実施形態はチップをさらに提供する。チップは端末デバイス内に配置され、ネットワークシステムで使用される。ネットワークシステムは入口ノードと出口ノードとを含む。入口ノードは端末デバイスからパケットを受信し、パケットは入口ノードと出口ノードの間の経路を通じて送信先ノードに到達する。チップはプロセッサとインターフェイス回路とを含む。
インターフェイス回路は、コード命令を受信し、コード命令をプロセッサへ伝送するように構成される。
プロセッサは、図4に示された実施形態の端末デバイス301に適用されるパケット処理方法を行うため、コード命令を実行するように構成される。
具体的な一実施形態において、プロセッサは、アプリケーションプログラムの特徴情報を取得するように構成される。アプリケーションプログラムの特徴情報は、アプリケーションプログラムの識別情報とネットワーク性能要件情報のうち、少なくともいずれか1つを含む。識別情報はアプリケーションプログラムを識別するために用いられる。端末デバイスはアプリケーションプログラムに対応するパケットを生成する。パケットはアプリケーションプログラムの特徴情報を運び、アプリケーションプログラムの特徴情報は、パケットを送信先ノードへ転送するため、入口ノードと出口ノードの間の経路を決定するために入口ノードによって使用される。
本出願の一実施形態はネットワークシステムをさらに提供する。ネットワークシステムは入口ノードと出口ノードとを含み、パケットは入口ノードと出口ノードの間の経路を通じて送信先ノードに到達する。ネットワークシステム内の入口ノードは、図2に示された実施形態で入口ノード102の処理ステップを行うことができ、あるいは相応に、ネットワークシステム内の入口ノードは、図6に示された実施形態のパケット処理装置500である。
本出願の一実施形態はネットワークシステムをさらに提供する。ネットワークシステムは、ネットワークデバイスと、入口ノードと、出口ノードとを含む。パケットは、入口ノードと出口ノードの間の経路を通じて送信先ノードに到達する。ネットワークシステム内のネットワークデバイスは、図4に示された実施形態でネットワークデバイス302の処理ステップを行うことができ、あるいは相応に、ネットワークシステム内のネットワークデバイスは、図7に示された実施形態のパケット処理装置600である。ネットワークシステム内の入口ノードは、図4に示された実施形態で入口ノード303の処理ステップを行う。
具体的に述べると、入口ノードは、ネットワークデバイスによって送信されるパケットを受信し、パケットに対応するアプリケーションプログラムの特徴情報を取得し、アプリケーションプログラムの特徴情報に基づいて入口ノードと出口ノードの間の経路を決定し、入口ノードと出口ノードの間の経路を通じてパケットを転送するように構成される。
本出願の一実施形態はネットワークシステムをさらに提供する。ネットワークシステムは、端末デバイスと、入口ノードと、出口ノードとを含む。パケットは、入口ノードと出口ノードの間の経路を通じて送信先ノードに到達する。ネットワークシステム内の端末デバイスは、図5に示された実施形態で端末デバイスの処理ステップを行うことができ、あるいは相応に、ネットワークシステム内の端末デバイスは、図8に示された実施形態の端末デバイス700である。ネットワークシステム内の入口ノードは、図5に示された実施形態で入口ノードの処理ステップを行う。
具体的に述べると、入口ノードは、ネットワークデバイスによって送信されるパケットを受信し、パケットに対応するアプリケーションプログラムの特徴情報を取得し、アプリケーションプログラムの特徴情報に基づいて入口ノードと出口ノードの間の経路を決定し、入口ノードと出口ノードの間の経路を通じてパケットを転送するように構成される。
本出願の一実施形態は、命令を含むコンピュータ可読記憶媒体をさらに提供する。これらの命令がコンピュータで実行されると、コンピュータは、入口ノード800に適用されるパケット処理方法を行うことが可能となる。
本出願の一実施形態は、命令を含むコンピュータ可読記憶媒体をさらに提供する。これらの命令がコンピュータで実行されると、コンピュータは、ネットワークデバイス900に適用されるパケット処理方法を行うことが可能となる。
本出願の一実施形態は、命令を含むコンピュータ可読記憶媒体をさらに提供する。これらの命令がコンピュータで実行されると、コンピュータは、端末デバイス1000に適用されるパケット処理方法を行うことが可能となる。
本出願の明細書と請求項と添付の図面で、用語「第1(first)」、「第2(second)」、「第3(third)」、「第4(fourth)」など(存在する場合)は、同様の物を区別することを意図しており、必ずしも特定の順序や順番を示すものではない。このように用語を用いて記述されたデータは適切な状況で交換可能であり、本書で説明されている実施形態が本書で図示または説明されている順序とは別の順序で実施できることを理解されたい。加えて、用語「含む(include)」、「含む(contain)」、およびその他の変形は、非排他的な包含を網羅することを意味する。例えば、ステップまたはユニットの列挙を含むプロセス、方法、システム、製品、またはデバイスは、必ずしもそれらのステップまたはユニットに限定されず、明示的に列挙されていない他のステップまたはユニットを、あるいはそのようなプロセス、方法、システム、製品、またはデバイスに固有の他のステップまたはユニットを、含み得る。
簡便かつ簡潔な説明のため、前述のシステム、装置、およびユニットの詳しい作業プロセスについては、前述の方法の実施形態の対応するプロセスを参照すべきことは、当業者によって明確に理解されよう。ここでは詳細を繰り返し説明しない。
本出願で提供されるいくつかの実施形態において、開示されているシステム、装置、および方法を別のやり方で実現できることを理解されたい。例えば、説明されている装置の実施形態は一例に過ぎない。例えば、ユニットへの分割は論理的なサービスの分割に過ぎず、実際の実装では別の分割であってもよい。例えば、複数のユニットやコンポーネントが組み合わされてよく、あるいは別のシステムに組み込まれてもよく、一部の機能は無視されてもよく、あるいは行われなくてもよい。加えて、表示もしくは論述されている相互結合、直接結合、または通信接続は、何らかのインターフェイスを通じて実装されてよい。装置またはユニット間の間接的な結合または通信接続は、電子的形態、機械的形態、またはその他の形態で実装されてよい。
別々の部分として説明されているユニットは物理的に分離されていてもいなくてもよく、また、ユニットとして表示されている部分は物理的なユニットであってもなくてもよく、1箇所に置かれてもよく、あるいは複数のネットワークユニットに分散されてもよい。各実施形態のソリューションの目的を達成するため、実際の要件に基づいてユニットの一部または全部が選ばれてよい。
加えて、本出願の実施形態のサービスユニットは、1つの処理ユニットに統合されてよく、あるいは各ユニットは物理的に単独で存在してよく、あるいは2つ以上のユニットが1つのユニットに統合される。統合ユニットはハードウェアの形で実装されてよく、あるいはソフトウェアサービスユニットの形で実装されてもよい。
統合ユニットがソフトウェアサービスユニットの形で実装され、独立した製品として販売もしくは使用される場合は、統合ユニットがコンピュータ可読記憶媒体に記憶されてよい。そうした理解に基づき、本出願の技術的なソリューションは本質的に、または現在の技術に寄与する部分は、または技術的なソリューションの全部または一部は、コンピュータソフトウェア製品の形で実装されてよい。コンピュータソフトウェア製品は記憶媒体に記憶され、本出願の実施形態で説明されている方法のステップの全部または一部を行うことをコンピュータデバイス(パーソナルコンピュータ、サーバー、またはネットワークデバイスであってよい)に命令するいくつかの命令を含む。前述の記憶媒体は、例えばUSBフラッシュドライブ、リムーバブルハードディスク、読み取り専用メモリー(ROM、Read-Only Memory)、ランダムアクセスメモリー(RAM、Random Access Memory)、磁気ディスク、または光ディスクなど、プログラムコードを記憶できる何らかの媒体を含む。
当業者なら、前述した1つ以上の例において、本発明で説明されているサービスが、ハードウェア、ソフトウェア、ファームウェア、またはこれらの任意の組み合わせで実装され得ることに気づくはずである。本発明で説明されているサービスがソフトウェアによって実装される場合は、前述のサービスがコンピュータ可読媒体に記憶されてよく、あるいはコンピュータ可読媒体において1つ以上の命令またはコードとして伝送されてもよい。コンピュータ可読媒体はコンピュータ記憶媒体と通信媒体を含み、通信媒体は、コンピュータプログラムがある1つの場所から別の場所へ伝送されることを可能にする何らかの媒体を含む。記憶媒体は、汎用または専用コンピュータにとってアクセス可能な何らかの利用可能な媒体であってよい。
上記の特定の実装では、本発明の目的、技術的なソリューション、および利点がさらに詳しく説明されている。上記の説明が本発明の特定の実装に過ぎないことを理解されたい。
上記の実施形態は、本出願を限定することではなく、本出願の技術的なソリューションを説明することを意図しているに過ぎない。上記の実施形態を参照して本出願が詳しく説明されているが、当業者なら、本出願の実施形態の技術的なソリューションの範囲から逸脱することなく、上記の実施形態で説明されている技術的なソリューションに変更を加えることができること、あるいはそのいくつかの技術的特徴に等価な代替を行うことができることを理解するはずである。