(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0006】
本発明の実施例で使用される用語は、単に特定の実施例を記述する目的であり、本発明を制限するためのものではない。本発明および添付する特許請求の範囲で使用される単数形式の「一種」、「前記」および「当該」も、文脈から他の意味を明瞭で分かる場合でなければ、複数の形式を含むことを意図する。理解すべきことは、本文で使用される用語「および/または」が、1つまたは複数の関連する列挙項目を含む如何なる或いは全ての可能な組み合わせを指す。
【0007】
理解すべきことは、本発明の実施例において第1、第2、第3等という用語を用いて各種の情報を記述するが、これらの情報は、これらの用語に限定されるものではない。これらの用語は、単に同一のタイプの情報同士を区分するために用いられる。例えば、本発明の範囲を逸脱しない限り、第1情報が第2情報と呼ばれてもよく、類似的に、第2情報が第1情報と呼ばれてもよい。これは、コンテキストに依存する。例えば、ここで使用される言葉「場合」は、「・・・とき」や「・・・ときに」あるいは「特定の状況に応じて」として解釈されてもよい。
【0008】
本発明の実施例は、ネットワーク設備に適用可能なデータ伝送方法を提供する。本文では、当該ネットワーク設備におけるメイン制御ボードおよびインターフェースボードが高速インターフェースを介して接続されることを例として説明する。ラインカードおよびインターフェースボードが高速インターフェースを介して接続される場合は、これに類似するため、繰り返し説明しない。ネットワーク設備に含まれるメイン制御ボードの数は、1つまたは複数であってもよく、インターフェースボードの数は、1つまたは複数であってもよい。メイン制御ボードは、イーサネットインターフェース、PCIE(Peripheral Component Interconnect Express、高速型ペリフェラルコンポーネントインターコネクト規格)、SPI4(Serial Peripheral Interface、串行外設インターフェース)等の方式でインターフェースボードに接続されてもよく、インターフェースボードは、E1インターフェース、T1インターフェース、非同期シリアルインターフェース、同期シリアルインターフェース、AMインターフェース等方式で他の設備に接続されてもよい。通常の場合において、メイン制御ボードとインターフェースボードとの間のデータ伝送レートは、インターフェースボードと他の設備との間のデータ伝送レートより大きい。
【0009】
図1は、本発明の実施例に係るデータ伝送方法のフロー模式図である。当該データ伝送方法は、メイン制御ボードとインターフェースボードとを備えるネットワーク設備に適用する。
【0010】
ステップ101では、送信すべき第1データに対応するインターフェースボードおよび論理通路を特定する。当該論理通路が当該第1データを送信する能力を有する場合に、ヘッダ情報を当該第1データに追加して第2データを取得し、当該第2データを当該論理通路に対応するバッファ領域に記憶する。当該ヘッダ情報は、当該インターフェースボードのインターフェースボード識別子と当該論理通路の論理通路識別子とを含むが、それらに限定されない。
【0011】
一例では、「送信すべき第1データに対応するインターフェースボードおよび論理通路を特定する」過程は、送信すべき第1データについて、第1データの宛先アドレス情報(例えば、宛先IPアドレスおよび/または宛先MACアドレス等)によって転送表を検索し、当該宛先アドレス情報に対応する出力インターフェースを取得し、この出力インターフェースに対応する1つのインターフェースボードと1つの論理通路を特定することを含むが、それに限定されない。当該インターフェースボードは、第1データに対応するインターフェースボードであり、当該論理通路は、第1データに対応する論理通路である。
【0012】
一例では、送信すべき第1データに対応するインターフェースボードおよび論理通路が特定された後、当該論理通路が当該第1データを送信する能力を有するか否かを判断する。そうであれば、ヘッダ情報を当該第1データに追加して第2データを取得し、そうでなければ、当該第1データを送信せず、メモリに第1データを記憶し、当該論理通路が当該第1データを送信する能力を有してから、メモリから第1データを読み取り、当該第1データにヘッダ情報を追加して第2データを取得する。
【0013】
一例では、論理通路が第1データを送信する能力を有するか否かを判断するために、以下の方式を採用する。つまり、論理通路の余剰リソースの大きさを取得し、当該余剰リソースの大きさが第1データの長さ以上である場合に、当該論理通路が当該第1データを送信する能力を有すると特定し、当該余剰リソースの大きさが第1データの長さより小さい場合に、当該論理通路が当該第1データを送信する能力を有さないと特定する。
【0014】
更に、当該論理通路が当該第1データを送信する能力を有する場合に、当該論理通路の余剰リソースの大きさを現在の余剰リソースの大きさと第1データの長さとの差分に更新する。
【0015】
一例では、「ヘッダ情報を第1データに追加して第2データを取得する」過程は、当該インターフェースボードに対応する一意識別子(以下では、更に、インターフェースボード識別子と略称されてもよい)を特定し、当該論理通路の一意識別子(以下では、更に、論理通路識別子と略称されてもよい)を特定することを含んでもよいが、それに限定されない。その後、当該第1データにヘッダ情報を追加し、当該ヘッダ情報は、当該インターフェースボード識別子および当該論理通路識別子を含むが、それらに限定されない。ヘッダ情報が追加された第1データは、第2データと呼ばれてもよい。
【0016】
一例では、「第2データを当該論理通路に対応するバッファ領域に記憶する」過程は、論理通路のそれぞれが1つのバッファ領域に対応してもよい。しかし、複数の論理通路が同一のバッファ領域に対応してもよい。したがって、第2データが取得された後、当該第2データを当該論理通路に対応するバッファ領域に記憶する。
【0017】
ステップ102では、バッファ領域から第2データを読み取り、当該第2データのヘッダ情報からインターフェースボード識別子および論理通路識別子を取得し、当該第2データのヘッダ情報を除去して第1データを取得し、取得された第1データを当該インターフェースボード識別子に対応するインターフェースボードへ送信する。
【0018】
一例では、第2データがバッファ領域から読み取られた後、当該バッファ領域に対応する論理通路の余剰リソースの大きさを現在の余剰リソースの大きさと第1データの長さとの合計に更新する。
【0019】
一例では、論理通路が当該第1データを送信する能力を有するか否かを判断するために、論理通路のバッファ領域は、ウィンドウメカニズムを採用して実施する。例えば、論理通路は、1つの送信ウィンドウに対応してもよく、当該送信ウィンドウの長さは、当該論理通路に対応するバッファ領域の大きさと同じである。また、当該送信ウィンドウのパラメータは、ウィンドウ開始位置、ウィンドウ終了位置およびウィンドウ占用位置を含むが、それらに限定されない。当該ウィンドウ開始位置と当該ウィンドウ終了位置との間の長さは、当該送信ウィンドウの長さであり、当該ウィンドウ占用位置と当該ウィンドウ終了位置との間の長さは、当該論理通路の余剰リソースの大きさである。
【0020】
これを基に、上記「論理通路の余剰リソースの大きさを現在の余剰リソースの大きさと第1データの長さとの差分に更新する」過程は、当該ウィンドウ占用位置を当該ウィンドウ終了位置の方向へ所定長さだけ移動することを含んでもよい。
【0021】
また、上記「バッファ領域に対応する論理通路の余剰リソースの大きさを現在の余剰リソースの大きさと第1データの長さとの合計に更新する」は、当該ウィンドウ占用位置を当該ウィンドウ開始位置の方向へ所定長さだけ移動すること、または、当該ウィンドウ開始位置を当該ウィンドウ占用位置の方向へ所定長さだけ移動し、且つ当該ウィンドウ終了位置を当該ウィンドウ開始位置の移動方向へ所定長さだけ移動することを含むが、それらに限定されない。上記所定長さは、前記第1データの長さであってもよい。
【0022】
一例では、第2データがバッファ領域から読み取られた後、当該バッファ領域における当該第2データの位置を取得し、当該バッファ領域における当該第2データの位置に基づいて当該送信ウィンドウのウィンドウ開始位置を特定する。その後、当該ウィンドウ開始位置の移動長さに基づいて当該送信ウィンドウのウィンドウ終了位置を移動する。
【0023】
一例では、第2データのヘッダ情報がインターフェースボード識別子および論理通路識別子を含むため、第2データのヘッダ情報からインターフェースボード識別子および論理通路識別子を取得し、当該第2データのヘッダ情報を除去することで第1データを取得する。
【0024】
一例では、「第1データを当該インターフェースボード識別子に対応するインターフェースボードへ送信する」過程は、当該論理通路を介して第1データを当該インターフェースボードが送信するときに用いられる第1レートを取得し、第1レートに基づいて当該インターフェースボードへ第1データを送信するための第2レートを特定し、第2レートで第1データを当該インターフェースボード識別子に対応するインターフェースボードへ送信することを含む。当該第2レートは、第1レートより小さい。
【0025】
一例では、「第1レートに基づいて当該インターフェースボードへ第1データを送信するための第2レートを特定する」過程は、特徴データに基づいて当該インターフェースボードの転送方式を特定し、転送方式によって第1データを処理し、前記第1レートで送信しようとする第3データを取得し、前記第1データを処理するレートを前記第2レートとして特定することを含んでもよいが、それに限定されない。
【0026】
一例では、「特徴データに基づいて当該インターフェースボードの転送方式を特定する」前に、更に、以下のステップを含む。つまり、予め配置された基本情報表を検索し、当該論理通路識別子に対応する特徴タイプ識別子を取得し、その後、当該特徴タイプ識別子に対応する特徴データを取得する。当該基本情報表は、論理通路識別子と特徴タイプ識別子との対応関係を記録するために用いられる。
【0027】
上記技術案を基に、本発明の実施例では、複数の論理通路が同一のメイン制御ボードの処理能力を共有可能であり、且つデータを各論理通路に対応するバッファ領域に記憶し、論理通路を介してバッファ領域におけるデータを送信可能であり、メイン制御ボードとインターフェースボードとのレート不整合の問題が解決でき、インターフェースボードのパケットロス問題が回避され、QOS(Quality Of Service、サービス品質)需要を満たす。
【0028】
以下では、具体的な応用場面を組み合わせて上記技術案を詳細に説明する。
図2は、本応用場面のネットワーキング模式図である。
図2では、メイン制御ボード210、インターフェースボード231、インターフェースボード232を例として説明する。しかし、インターフェースボードの数は、より多くなってもよい。
図2において、第1速度制限装置212は、メイン制御ボード210に増設された手段であり、且つ第2速度制限装置220も増設された手段である。
【0029】
第2速度制限装置220は、メイン制御ボード内に配置されてもよく、メイン制御ボード210のそれぞれには、1つずつの第2速度制限装置220が配置され、または、第2速度制限装置220もインターフェースボード231、232内に配置されてもよく、インターフェースボード231、232のそれぞれには、1つずつの第2速度制限装置220が配置され、または、第2速度制限装置220は、メイン制御ボード210若しくはインターフェースボード231、232内に配置されず、単独で配置されてもよい。
図2では、1つの第2速度制限装置220を単独で配置することを例として説明する。
【0030】
第1速度制限装置212は、メイン制御ボード210に増設された手段であり、1つのハードウェア装置であってもよく、そのタイプについて限定しない。第2速度制限装置220がメイン制御ボード210またはインターフェースボード231、232に増設された手段である場合に、第2速度制限装置220は、1つのハードウェア装置であってもよく、第2速度制限装置220が単独で配置された場合に、第2速度制限装置220は、独立するシングルボードであってもよく、そのタイプについて限定しない。
【0031】
メイン制御ボード210は、イーサネットインターフェース、PCIE、SPI4等の方式で第2速度制限装置220に接続されてもよく、且つ第2速度制限装置220は、イーサネットインターフェース、PCIE、SPI4等の方式でインターフェースボード231/インターフェースボード232に接続されてもよい。
図2において、メイン制御ボード210と第2速度制限装置220とがイーサネットインターフェース接続であるが、イーサネットコントローラ213は、イーサネットインターフェース接続を実現するために用いられる。また、インターフェースボード231/インターフェースボード232は、E1インターフェース、T1インターフェース、非同期シリアルインターフェース、同期シリアルインターフェース、AMインターフェース等の方式で他の設備に接続されてもよい。
【0032】
メイン制御ボード210と第2速度制限装置220の接続方式は、第2速度制限装置220とインターフェースボード231/インターフェースボード232の接続方式と同じであってもよい。このように、メイン制御ボード210と第2速度制限装置220の最大データ伝送レートは、第2速度制限装置220とインターフェースボード231/インターフェースボード232の最大データ伝送レートと同じであり、何れもインターフェースボード231/インターフェースボード232と他の設備の最大データ伝送レートよりも大きくなる。
【0033】
図2に示すように、メイン制御ボード210では、プロセッサ211(例えば、中央処理装置(CPU))がバスを介して第1速度制限装置212に接続されてもよく、第1速度制限装置212がバスを介してイーサネットコントローラ213に接続されてもよい。
【0034】
図2に示すように、メイン制御ボード210は、更に論理通路を確立してもよく、当該論理通路是データの伝送通路、例えば、データの伝送方向がプロセッサ211、第1速度制限装置212、イーサネットコントローラ213、第2速度制限装置220、インターフェースボード231/インターフェースボード232での出力インターフェースであるときに、論理通路は、1つのデータ伝送通路「プロセッサ211→第1速度制限装置212→イーサネットコントローラ213→第2速度制限装置220→インターフェースボード231/インターフェースボード232での出力インターフェース」であってもよい。つまり、論理通路は、上記各デバイスを通過する。
【0035】
図2において、論理通路がインターフェースボード231、232にマークされているが、論理通路が当該インターフェースボード231、232に位置することを意味しておらず、当該論理通路の出力インターフェースが当該インターフェースボード231、232に位置することのみを意味する。論理通路の出力インターフェースは、E1インターフェース、T1インターフェース、非同期シリアルインターフェース、同期シリアルインターフェース、AMインターフェース等であってもよく、これについて限定しない。
【0036】
論理通路の出力インターフェースは、論理インターフェースであってもよく、物理インターフェースであってもよい。異なる論理通路は、異なる物理インターフェースを占用してもよく、異なる論理通路は、同じ物理インターフェースを共有してもよく、1つの論理通路は、複数の物理インターフェースを占用してもよい。例えば、論理通路241は、物理インターフェース1および物理インターフェース2を占用し、論理通路242は、物理インターフェース3を占用し、論理通路243および論理通路244は、物理インターフェース4を共有する。即ち、論理通路241のデータ伝送レートは、物理インターフェース1と物理インターフェース2とのデータ伝送レートの合計であり、論理通路242のデータ伝送レートは、物理インターフェース3のデータ伝送レートであり、論理通路243と論理通路244とのデータ伝送レートの合計は、物理インターフェース4のデータ伝送レートである。
【0037】
メイン制御ボード210は、論理通路を確立する過程に、各論理通路へバッファ領域を割り当て、論理通路とバッファ領域との対応関係を確立してもよい。
図2に示すように、論理通路241は、バッファ領域251に対応し、論理通路242は、バッファ領域252に対応し、論理通路243は、バッファ領域253に対応し、論理通路244は、バッファ領域254に対応する。当該論理通路241を介して送信される必要のあるデータは、まず、バッファ領域251にキャッシュされ、その後、バッファ領域251からデータを読み取り、最終的に当該論理通路241を介して当該データを送信する。当該論理通路242を介して送信される必要のあるデータは、まず、バッファ領域252にキャッシュされ、その後バッファ領域252からデータを読み取り、最終的に当該論理通路242を介して当該データを送信する。これをもって類推する。
【0038】
論理通路を確立する過程に、メイン制御ボード210は、需要に応じて複数の論理通路を確立してもよく、この論理通路の数について限定しない。論理通路は、「プロセッサ211→第1速度制限装置212→イーサネットコントローラ213→第2速度制限装置220→インターフェースボード231/インターフェースボード232での出力インターフェース」に対する1つの論理通路であってもよく、これについて限定しない。論理通路は、1つの出力インターフェース(インターフェースボードに位置する)に対応できればよい。論理通路を介してデータを送信する過程は、当該出力インターフェースを介してデータを送信する過程である。
【0039】
論理通路の確立が完了された後、メイン制御ボード210は、論理通路へバッファ領域を割り当て、論理通路へ1つの送信ウィンドウを配置してもよい。当該バッファ領域の大きさは、論理通路に対応する出力インターフェースのデータ伝送レートに関連し、且つ当該送信ウィンドウの長さは、当該論理通路に対応するバッファ領域の大きさと同じである。例えば、出力インターフェースのデータ伝送レートが56Kbits/sであるときに、バッファ領域の大きさおよび送信ウィンドウの長さは、何れも56Kである。
【0040】
第1速度制限装置212は、各論理通路の基本情報表を含んでもよく、且つ論理通路の基本情報は、インターフェースボード識別子、論理通路識別子、インターフェースタイプ、ウィンドウ位置情報等を含んでもよいが、それらに限定されない。論理通路のそれぞれは、1つの基本情報表に対応し、当該基本情報表の内容は、
図3Aまたは
図3Bを参照してもよく、
図3Aは、初期時点の基本情報表の例示であり、
図3Bは、ある時点の基本情報表の例示である。
【0041】
インターフェースボード識別子DownPortは、メイン制御ボードにおける、インターフェースボードに接続される下りポートの識別子であり、メイン制御ボードの下りポート番号である。当該下りポート番号は、システムにおいて統一に番号をつける。この下りポート番号に基づけば、メイン制御ボードは、どの下りポートを介してデータをインターフェースボードへ送信するかを知ることができる。
【0042】
論理通路識別子ChIDは、論理通路の一意識別子である。例えば、論理通路識別子は、インターフェースボードの所在するスロット番号(SlotID)、ポート番号(PortID)、サブ通路番号(SubChanID)を繋ぎ合わせて形成される。スロット番号は、最高4ビットを占め、16個のスロットをサポートする。ポート番号は、中間6ビットを占め、64個のポートをサポートする。サブ通路番号は、最後12位を占め、最大4096個のサブ通路をサポートする。無論、スロット番号、ポート番号、サブ通路番号を繋ぎ合わせた論理通路識別子は、1つの例示に過ぎず、これについて限定しない。
【0043】
インターフェースタイプWanTypeは、論理通路に対応するインターフェースのタイプ、例えば、POS、CE1、CPOS、AsySer(非同期シリアルインターフェース)、E1インターフェース、T1インターフェース、AMインターフェース等であり、このインターフェースタイプについて限定しない。
【0044】
ウィンドウ位置情報は、送信ウィンドウの長さWinSize、ウィンドウの左エッジLeftEdge、ウィンドウの右エッジRightEdge、現在送信データのエッジTxEdgeを含んでもよい。ウィンドウの左エッジLeftEdgeは、ウィンドウ開始位置とも呼ばれてもよい。ウィンドウの右エッジRightEdgeは、ウィンドウ終了位置と呼ばれてもよい。送信ウィンドウの長さWinSizeは、例えば、128Kバイト(即ち、0x20000)であってもよい。この値は、許容される最大長さを示す。送信ウィンドウの長さWinSizeは、論理通路に対応するバッファ領域の大きさと同じであり、ウィンドウの左エッジLeftEdgeとウィンドウの右エッジRightEdgeとの間の長さは、送信ウィンドウの長さWinSizeである。現在送信データのエッジTxEdgeは、ウィンドウ占用位置と呼ばれてもよい。次回データを送信する際、ここから累積する。例えば、ウィンドウの左エッジLeftEdgeが0であり、第1個のデータの長さが64であると仮定すれば、第1個のデータが送信された後、現在送信データのエッジTxEdgeは、64となる。第2個のデータの長さが304であると仮定すれば、第2個のデータが送信された後、現在送信データのエッジTxEdgeは、368(64+304)となる。これをもって類推する。現在送信データのエッジTxEdgeがウィンドウの左エッジLeftEdgeとウィンドウの右エッジRightEdgeとの間に位置するとき、論理通路がデータを送信する能力を有することを意味し、現在送信データのエッジTxEdgeがRightEdgeを超えたときに、論理通路がデータを送信する能力を有さないことを意味する。
【0045】
第2速度制限装置220は、各論理通路の基本情報表を含んでもよく、且つ論理通路の基本情報は、インターフェースボード識別子、論理通路識別子、インターフェースタイプ、ウィンドウ位置情報、特徴タイプ識別子等を含んでもよいが、それらに限定されない。且つ論理通路のそれぞれは、1つの基本情報表に対応する。第2速度制限装置220の基本情報表は、第1速度制限装置212の基本情報表と類似するが、相違点として、第2速度制限装置220の基本情報表に特徴タイプ識別子があり、当該特徴タイプ識別子がFeatureIDであってもよく、特徴表についてインデックスを付け、特徴表のFeatureIDに対応する。当該基本情報表の他の内容について、ここで繰り返し説明しない。
【0046】
上記応用場面において、本発明の実施例に係るデータ伝送方法は、以下のステップを含む。
【0047】
ステップaでは、第1速度制限装置212は、送信すべき第1データを受信した後、当該第1データに対応するインターフェースボードおよび論理通路を特定する。具体的に、第1データの宛先アドレス情報(例えば、宛先IPアドレスおよび/または宛先MACアドレス等)によって転送表を検索し、当該宛先アドレス情報に対応する出力インターフェースを取得する。この出力インターフェースは、1つのインターフェースボードおよび1つの論理通路に対応し、当該インターフェースボードは、第1データに対応するインターフェースボードであり、当該論理通路は、第1データに対応する論理通路である。無論、インターフェースボードおよび論理通路の情報は、プロセッサ211から通知されたものであってもよく、この特定方式について限定しない。
【0048】
ステップbでは、第1速度制限装置212は、当該論理通路が第1データを送信する能力を有するか否かを判断し、そうであれば、ステップcを実行し、そうでなければ、第1データを送信せず、メモリに第1データを記憶し、当該論理通路が第1データを送信する能力を有してから、ステップcを実行する。
【0049】
データの送信時に、第1速度制限装置212は、基本情報表におけるウィンドウ位置情報および第1データの長さに基づいて、論理通路が第1データを送信する能力を有するか否かを判断してもよい。例えば、現在送信データのエッジTxEdgeが右へ第1データの長さだけ移動された後、現在送信データのエッジTxEdgeが依然としてウィンドウの左エッジLeftEdgeとウィンドウの右エッジRightEdgeの間に存在するときに、論理通路第1データを送信する能力を有することを意味する。現在送信データのエッジTxEdgeが右へ第1データの長さだけ移動された後、現在送信データのエッジTxEdgeがウィンドウの右エッジRightEdgeを超えたときに、論理通路が第1データを送信する能力を有さないことを意味する。
【0050】
更に、論理通路が第1データを送信する能力を有するとき、第1速度制限装置212は、更に、第1データの長さと送信ウィンドウにおける現在送信データのエッジTxEdgeの位置とに基づいて、現在送信データのエッジTxEdgeの位置を調整してもよい。
【0051】
図3Cに示すように、初期化の時、ウィンドウの左エッジLeftEdgeおよび現在送信データのエッジTxEdgeは、何れも0である。
図3Dに示すように、10Kバイトのデータが送信された後、現在送信データのエッジTxEdgeは、10Kになる。
図3Eに示すように、20Kバイトのデータが送信された後、現在送信データのエッジTxEdgeは、20Kになる。データ送信完了メッセージが受信された後、データ送信完了メッセージは第2速度制限装置220がすでにバッファ領域から12Kバイトのデータを読み取ったと示した場合に、ウィンドウの左エッジLeftEdgeを例えば12Kだけ右へスライドし、ウィンドウの右エッジRightEdgeを例えば12Kだけ右へスライドし、スライド後の模式図は、
図3Fに示される。
【0052】
図4Aは、データ送信完了メッセージの模式図である。データ送信完了メッセージが受信された後、データ送信完了メッセージにおける現在送信データのエッジTxEdgeがウィンドウの左エッジLeftEdgeとウィンドウの右エッジRightEdgeとの間に位置する場合に、データ送信完了メッセージにおける現在送信データのエッジTxEdgeスライドウィンドウに基づいて、例えば、ウィンドウにおける左エッジLeftEdgeをデータ送信完了メッセージにおける現在送信データのエッジTxEdgeまで右へ移動し、ウィンドウにおける右エッジRightEdgeを対応的に右へスライドし、スライド後の左エッジLeftEdgeと右エッジRightEdgeとの間の長さは、送信ウィンドウの現在長さWinSizeである。データ送信完了メッセージにおける現在送信データのエッジTxEdgeがウィンドウの左エッジLeftEdgeとウィンドウの右エッジRightEdgeとの間に位置しない場合に、当該データ送信完了メッセージを廃棄し、ウィンドウをスライドしない。
【0053】
第1速度制限装置212が第2速度制限装置220へデータを送信したときにデータ紛失が発生しても、および/または、第2速度制限装置220が第1速度制限装置212へデータ送信完了メッセージを送信したときにデータ送信完了メッセージの紛失が発生しても、後続過程においてデータの送信に成功し且つ対応するデータ送信完了メッセージの送信に成功すると、ウィンドウは、正しくスライドできる。このように、送信リソースの紛失が発生せず、パケットロスによる送信停止は回避される。例えば、第N個のデータのウィンドウ占用位置が第N−1個のデータの長さ情報を暗示的に含むため、第N−1個のデータが紛失したときに第N個のデータに対するデータ送信完了メッセージが受信された場合に、当該データ送信完了メッセージにおける現在送信データのエッジTxEdgeに基づいてウィンドウをスライドするとき、第N個のデータの送信リソースを回収するとともに、第N−1個のデータの送信リソースも回収する。したがって、データ紛失が発生しても、および/または、データ完了メッセージの紛失が発生しても、リソースは、正しく回収できる。
【0054】
ステップcでは、第1速度制限装置212は、第1データにヘッダ情報を追加して第2データを取得し、第2データをイーサネットコントローラ213へ送信し、イーサネットコントローラ213は、第2データを第2速度制限装置220へ送信する。
【0055】
具体的に、論理通路が第1データを送信する能力を有する場合に、第1速度制限装置212は、第1データにヘッダ情報を追加して変更後のデータを取得してもよく、このデータは、第2データである。
図4Bは、第2データの模式図である。その後、第2データをイーサネットコントローラ213へ送信する。イーサネットコントローラ213が第2データを第2速度制限装置220へ送信してもよい。
【0056】
第1速度制限装置212が第1データにヘッダ情報を追加する過程に、当該ヘッダ情報は、インターフェースボード識別子、論理通路識別子、インターフェースタイプ、パケットタイプ、ウィンドウ送信エッジ、ペイロード長を含んでもよいが、それらに限定されない。第1個のデータパケットのウィンドウ占用位置は、現在送信データのデータパケット長であってもよく、第2個のデータパケットのウィンドウ占用位置は、第1個のデータパケットのウィンドウ占用位置と第2個のデータパケットの長さとの合計であってもよく、第3個のデータパケットのウィンドウ占用位置は、第2個のデータパケットのウィンドウ占用位置と第3個のデータパケットの長さとの合計であってもよい。これをもって類推する。
【0057】
第1速度制限装置212は、第2データをイーサネットコントローラ213へ送信した後、論理通路に対応するウィンドウ情報を更新してもよく、例えば、現在送信データのエッジTxEdgeを右へ第1データの長さだけ移動する。
【0058】
ステップdでは、第2速度制限装置220は、第2データを受信した後、第2データのヘッダ情報から論理通路識別子を解析し、当該第2データを当該論理通路識別子に対応するバッファ領域にキャッシュする。
【0059】
例えば、第2速度制限装置220は、第2データのヘッダ情報から解析された論理通路識別子が論理通路241であると仮定すれば、第2データを論理通路241に対応するバッファ領域251にキャッシュする。
【0060】
ステップeでは、第2データを送信する必要があるとき、第2速度制限装置220は、論理通路に対応するバッファ領域から第2データを読み取り、第2データのヘッダ情報からインターフェースボード識別子および論理通路識別子を取得し、第2データのヘッダ情報を除去して第1データを取得し、第1データを当該インターフェースボード識別子に対応するインターフェースボードへ送信する。また、当該インターフェースボードに当該論理通路識別子に対応する論理通路を介して第1データを送信するよう通知してもよい。このように、当該インターフェースボードが当該論理通路識別子に対応する論理通路を介して第1データを送信する。
【0061】
例えば、第2速度制限装置220は、バッファ領域251から第2データを読み取り、当該第2データのヘッダ情報からインターフェースボード231の識別子および論理通路241の識別子を取得し、その後、当該第2データのヘッダ情報を除去して第1データを取得し、当該第1データをインターフェースボード231へ送信し、インターフェースボード231に対して論理通路241を介して第1データを送信するよう通知する。
【0062】
第1データがインターフェースボードへ送信された後、インターフェースボードが論理通路を介して第1データを送信できるように、論理通路の識別子をインターフェースボードへ通知する必要があり、この通知メカニズムについて限定しない。例えば、インターフェースボードが当該論理通路識別子に対応する論理通路を介して第1データを送信するように、第2速度制限装置220は、論理通路識別子をインターフェースボードへ送信する。または、第2速度制限装置220は、論理通路識別子に対応する論理通路を介して、第1データをインターフェースボードへ送信する。インターフェースボードは、当該論理通路を介して第1データを受信した後、当該論理通路を介して第1データを送信する。
【0063】
第2速度制限装置220は、第1データをインターフェースボードへ送信する過程に、当該論理通路を介して第1データを当該インターフェースボードが送信するときに用いられる第1レートを先に取得し、第1レートに基づいて当該インターフェースボードへ第1データを送信するための第2レートを特定し、第2レートに基づいて第1データを当該インターフェースボードへ送信してもよい。更に、「第1レートに基づいて当該インターフェースボードへ第1データを送信するための第2レートを特定する」過程に、第2速度制限装置220は、特徴データに基づいてインターフェースボードの転送方式を特定し、前記転送方式に基づいて第1データを処理し、インターフェースボードによって第1レートで送信しようとする第3データを取得し、第3データの取得中に第1データを処理するレートを第2レートとして特定してもよい。当該第2レートは、第1レートより小さい。
【0064】
第2速度制限装置220は、更に、特徴表を記憶してもよく、当該特徴表は、データストリーム特徴を記録するために用いられ、当該データストリーム特徴は、特徴タイプ識別子(FeatureID)および特徴データを含んでもよい。当該特徴タイプ識別子は、本類特徴を表す。特徴タイプ識別子に基づいて特徴データを検索することができる。
【0065】
また、当該特徴データは、通路レート(Speed)(例えば、56Kbits/s、64Kbits/s等)、フレーム間隔(IFG)(例えば、フレーム間隔の間に挿入されたパディングワードの数であり、当該フレーム間隔が経験に応じて配置可能である)、物理層チップへ送信されたデータのブロック長BlockLen、および、物理層チップへ送信されたデータの進み量PreTxLenのうちの1つまたは任意の組み合わせを含んでもよいが、それらに限定されない。
【0066】
第2速度制限装置220は、第2データのヘッダ情報における論理通路識別子に基づいて基本情報表を検索し、当該論理通路識別子に対応する特徴タイプ識別子を取得してもよい。その後、当該特徴タイプ識別子に基づいて特徴表を検索し、当該特徴タイプ識別子に対応する特徴データを取得してもよい。これを基に、第2速度制限装置220は、上記特徴データに基づいてインターフェースボードの転送方式を特定してもよい。
【0067】
転送方式は、インターフェースボードが外へデータを送信するときに用いられる転送方式である。異なるプロトコルに対応する転送方式は、異なってもよく、同じであってもよい。この転送方式は、プロトコルタイプに関連する。例えば、HDLC(High−level Data Link Control、ハイレベルデータリンク制御プロトコル)について、HDLCデータフレームの間がフラグシーケンス(二進数が01111110)によって区切られるため、一連のデータビットの中、フラグシーケンスと同じビットの組み合わせが発生する可能性はある。この状況の発生を防止し、データに対するトランスペアレント伝送を保証するために、転送方式は、ビットパディング技術を採用し、連続する5つの「1」の後に1つの「0」を挿入してデータのトランスペアレント伝送を保証することであってもよい。無論、転送方式は、他の方式であってもよく、この転送方式について限定しない。
【0068】
インターフェースボードの転送方式が取得された後、第2速度制限装置220は、当該転送方式に基づいてシミュレーション送信を行ってもよい。具体的に、転送方式に基づいて第1データを処理し、第1レートで送信しようとする第3データを取得し、第3データの取得中に第1データを処理するレートを第2レートとして特定する。第1レートは、インターフェースボードで実際にデータを送信するレートであり、第2レートは、第2速度制限装置220で実際にデータを送信するレートである。また、第2速度制限装置220が当該転送方式に基づいてシミュレーション送信を行う過程は、リアルタイムに実施される。
【0069】
第2速度制限装置220がシミュレーション送信を採用する原因は、下記のようになる。インターフェースボードが論理通路を介してデータを送信したときに用いられた第1レートを56Kbits/sとすれば、インターフェースボードへデータを供給するレートは、56Kbits/sとなり、インターフェースボードは、データを送信する際、まず、上記転送方式を用いてデータを処理し、例えば、ビットパディング技術を用いてデータに余計な情報を追加する。そうすると、インターフェースボードから送信されたデータは、最終的に56Kbits/sよりも大きくなる(例えば、60Kbits/s)。つまり、インターフェースボードから送信されたデータにオーバフローが発生する。インターフェースボードが60Kbits/sのデータを伝送できず、56Kbits/sのデータしか伝送できないため、一部のデータが紛失してしまう。
【0070】
そこで、第2速度制限装置220は、先に、インターフェースボードが論理通路を介してデータを送信したときの第1レート、例えば、56Kbits/sを取得してもよい。その後、バッファ領域からデータを読み取り、上記転送方式を用いてデータを処理し、例えば、ビットパディング技術を用いてデータに情報を追加する。当該処理過程に、56Kbits/sでデータを送信するときにバッファ領域からデータを読み取るレートを特定し、この読取データのレートは、第2レート、例えば、52Kbits/sである。したがって、第2速度制限装置220からインターフェースボードへデータを供給するレートは、52Kbits/sである。
【0071】
このように、インターフェースボードへデータを供給するレートは、56Kbits/sではなく、52Kbits/sである。インターフェースボードは、データを送信する際、先に、上記転送方式によってデータを処理し、例えば、ビットパディング技術を用いてデータに情報を追加する。これにより、インターフェースボードから最終的に送信されたデータが56Kbits/sであり、データオーバフローが発生せず、データの紛失が防止され、インターフェースボードの効率が高められ、データ伝送品質が向上し、QOS応用が実現され、データ紛失による音声歪みや画像不鮮明等の問題が回避される。
【0072】
「論理通路を介してデータをインターフェースボードが送信するときに用いられる第1レートを取得する」過程について、特徴データから当該第1レート、例えば、特徴データにおける通路レート(Speed)を取得可能である。
【0073】
「特徴データに基づいてインターフェースボードの転送方式を特定し、当該転送方式によってデータを処理する」過程は、以下の方式を含んでもよいが、それに限定されない。つまり、特徴データがインターフェースタイプ(例えば、特徴表にインターフェースタイプが記録されている)を含む場合に、特徴データに基づいてインターフェースボードの転送方式を特定し、当該転送方式に基づいてデータを処理し、特徴データがインターフェースタイプを含まない(例えば、特徴表にインターフェースタイプが記録されていない)場合に、特徴データ、インターフェースタイプ(データのヘッダ情報から取得)に基づいてインターフェースボードの転送方式を特定し、当該転送方式に基づいてデータを処理する。例えば、フレーム間隔(IFG)、BlockLen、PreTxLen、インターフェースタイプ等のパラメータを用いてインターフェースボードの転送方式を特定し、当該転送方式によってデータを処理してもよく、この過程について限定しない。
【0074】
ステップfでは、第2速度制限装置220は、論理通路に対応するバッファ領域から第2データを読み取った後、更に、第1速度制限装置212へデータ送信完了メッセージを送信し、当該データ送信完了メッセージには、第1データの長さ(即ち、第2データからヘッダ情報を除去した後の第1データの長さ)が付加されてもよく、且つ当該データ送信完了メッセージには、上記ヘッダ情報(例えば、インターフェースボード識別子、論理通路識別子、インターフェースタイプ、パケットタイプ、ウィンドウ送信エッジ、有効ペイロード長等)が更に付加されてもよく、当該ヘッダ情報は、第2データのヘッダ情報と同じである。
【0075】
データ送信完了メッセージのヘッダ情報における現在送信データのエッジTxEdgeは、当該現在送信データのエッジTxEdgeに対応するデータを既にバッファ領域から読み取んだと表せる。
【0076】
ステップgでは、第1速度制限装置212は、データ送信完了メッセージを受信した後、当該論理通路識別子に対応する論理通路の余剰リソースの大きさを現在の余剰リソースの大きさと第1データの長さとの合計に更新する。例えば、ウィンドウ占用位置をウィンドウ開始位置の方向へ所定長さだけ移動し、または、ウィンドウ開始位置をウィンドウ占用位置の方向へ所定長さだけ移動し、ウィンドウ終了位置をウィンドウ開始位置の移動方向へ所定長さだけ移動する。上記所定長さは、第1データの長さである。
【0077】
または、バッファ領域における第2データの位置に基づいて当該送信ウィンドウにおけるウィンドウ開始位置を特定し、当該ウィンドウ開始位置の移動長さに基づいて当該送信ウィンドウのウィンドウ終了位置を移動してもよい。
【0078】
上記技術案に基づくと、本発明の実施例では、複数の論理通路は、同一のメイン制御ボードの処理能力を共有してもよく、且つデータを各論理通路に対応するバッファ領域に記憶し、論理通路を介してバッファ領域におけるデータを送信してもよく、メイン制御ボードとインターフェースボードとのレート不整合の問題を解決でき、インターフェースボードのパケットロス問題を回避し、QOS需要を満たす。また、インターフェースボードの精確速度制限が実現し、メイン制御ボードの性能が向上する。例えば、論理通路241のデータ伝送レートは、56Kbits/sであり、論理通路242のデータ伝送レートは、56Kbits/sであり、論理通路243のデータ伝送レートは、56Kbits/sであり、論理通路244のデータ伝送レートは、56Kbits/sである。そうすると、イーサネットコントローラ213のデータ伝送レートは、ある論理通路に対応する56Kbits/sではなく、224Kbits/s(=4*56Kbits/s)であってもよい。第2速度制限装置220は、56Kbits/sのデータをバッファ領域251に記憶し、56Kbits/sのデータをバッファ領域252に記憶し、56Kbits/sのデータをバッファ領域253に記憶し、56Kbits/sのデータをバッファ領域254に記憶する。データの送信中に、第2速度制限装置220は、56Kbits/sのデータを論理通路241へ送信して論理通路241に56Kbits/sのデータを送信させ、56Kbits/sのデータを論理通路242へ送信して論理通路242に56Kbits/sのデータを送信させ、56Kbits/sのデータを論理通路243へ送信して論理通路243に56Kbits/sのデータを送信させ、56Kbits/sのデータを論理通路244へ送信して論理通路244に56Kbits/sのデータを送信させる。
【0079】
上記方法と同様な出願思想に基づいて、本発明の実施例は、ネットワーク設備に適用可能なデータ伝送装置を更に提供する。
図5は、当該装置の構造図であり、当該装置は、以下のモジュールを備えてもよい。
【0080】
特定モジュール501は、送信すべき第1データに対応するインターフェースボードおよび論理通路を特定する。
【0081】
処理モジュール502は、前記論理通路が前記第1データを送信する能力を有する場合に、ヘッダ情報を前記第1データに追加して第2データを取得する。前記ヘッダ情報は、前記インターフェースボードのインターフェースボード識別子と、前記論理通路の論理通路識別子とを含む。
【0082】
記憶モジュール503は、前記第2データを前記論理通路に対応するバッファ領域に記憶する。
【0083】
読取モジュール504は、前記第2データを前記バッファ領域から読み取り、読み取られた前記第2データのヘッダ情報から、前記インターフェースボード識別子および前記論理通路識別子を取得し、読み取られた前記第2データのヘッダ情報を除去して前記第1データを取得する。
【0084】
送信モジュール505は、取得された前記第1データをインターフェースボード識別子に対応するインターフェースボードへ送信する。
【0085】
前記処理モジュール502は、更に、送信すべき前記第1データに対応するインターフェースボードおよび論理通路が前記特定モジュール501によって特定された後、前記論理通路の余剰リソースの大きさを取得し、前記余剰リソースの大きさが前記第1データの長さ以上である場合に、前記論理通路が前記第1データを送信する能力を有すると特定し、前記論理通路が前記第1データを送信する能力を有する場合に、前記論理通路の余剰リソースの大きさを当該余剰リソースの大きさと第1データの長さとの差分に更新し、第2データが読取モジュール504によってバッファ領域から読み取られた後、前記バッファ領域に対応する論理通路の余剰リソースの大きさを当該余剰リソースの大きさと第1データの長さとの合計に更新する。
【0086】
前記論理通路は、1つの送信ウィンドウに対応し、前記送信ウィンドウの長さは、前記論理通路に対応するバッファ領域の大きさと同じである。前記送信ウィンドウのパラメータは、ウィンドウ開始位置、ウィンドウ終了位置およびウィンドウ占用位置を含み、前記ウィンドウ占用位置とウィンドウ終了位置との間の長さは、前記論理通路の余剰リソースの大きさである。前記論理通路の余剰リソースの大きさを当該余剰リソースの大きさと第1データの長さとの差分に更新する過程に、前記処理モジュール502は、具体的に、前記ウィンドウ占用位置を前記ウィンドウ終了位置の方向へ所定長さだけ移動する。前記バッファ領域に対応する論理通路の余剰リソースの大きさを当該余剰リソースの大きさと第1データの長さとの合計に更新する過程に、前記処理モジュール502は、具体的に、前記ウィンドウ占用位置をウィンドウ開始位置の方向へ所定長さだけ移動し、または、前記ウィンドウ開始位置をウィンドウ占用位置の方向へ所定長さだけ移動し、且つウィンドウ終了位置を前記ウィンドウ開始位置の移動方向へ前記所定長さだけ移動する。前記所定長さは、前記第1データの長さである。
【0087】
前記送信モジュール505は、取得された第1データを前記インターフェースボード識別子に対応するインターフェースボードへ送信する過程に、具体的に、前記論理通路を介して第1データを前記インターフェースボードが送信するときに用いられる第1レートを取得し、前記第1レートに基づいて前記インターフェースボードへ第1データを送信するための第2レートを特定し、前記第2レートで取得された第1データを前記インターフェースボード識別子に対応するインターフェースボードへ送信する。前記第2レートは、前記第1レートより小さい。
【0088】
一例では、前記送信モジュール505は、前記第1レートに基づいて前記インターフェースボードへ第1データを送信するための第2レートを特定する過程に、具体的に、特徴データに基づいて前記インターフェースボードの転送方式を特定し、前記転送方式に基づいて前記第1データを処理して、第1レートで送信しようとする3データを取得し、第3データの取得中に第1データを処理するレートを第2レートとして特定する。
【0089】
本発明の実施例に係るネットワーク設備は、ハードウェア実装から言うと、ハードウェアアーキテクチャ模式図が具体的に
図6を参照してもよく、機械可読記憶媒体610およびプロセッサ620を備える。
【0090】
機械可読記憶媒体610は、命令コードを記憶する。
プロセッサ620は、機械可読記憶媒体610と通信し、機械可読記憶媒体610に記憶された前記命令コードを読み取って実行することにより、本発明の上記例示されたデータ伝送操作を実施する。
【0091】
ここで、機械可読記憶媒体は、如何なる電気的なもの、磁気的なもの、光学的なものまたは他の物理的記憶装置であってもよく、情報(例えば、実行可能な指令、データ等)を含むか記憶可能である。例えば、機械可読記憶媒体は、揮発性、不揮発性メモリまたは類似する記憶媒体であってもよい。具体的に、機械可読記憶媒体は、RAM(Random Access Memory、ランダムアクセスメモリ)、フラッシュメモリ、記憶ドライバ(例えば、ハードディスクドライバ)、ソリッド・ステート・ディスク、如何なるタイプの記憶ディスク(例えば、光ディスク、dvd等)、または、類似する記憶媒体やそれらの組み合わせであってもよい。
【0092】
本発明の実施例は、ネットワーク設備を提供する。前記ネットワーク設備は、第1速度制限装置212と、第2速度制限装置220とを更に備える。
【0093】
第1速度制限装置212は、送信すべき第1データに対応するインターフェースボードおよび論理通路を特定し、前記論理通路が前記第1データを送信する能力を有する場合に、ヘッダ情報を前記第1データに追加して第2データを取得し、前記第2データを第2速度制限装置220へ送信する。前記ヘッダ情報は、前記インターフェースボードのインターフェースボード識別子と、前記論理通路の論理通路識別子とを含む。
【0094】
第2速度制限装置220は、前記第2データが受信された後、前記第2データのヘッダ情報から論理通路識別子を取得し、前記第2データを前記論理通路識別子に対応するバッファ領域に記憶し、前記バッファ領域から第2データを読み取り、読み取られた第2データのヘッダ情報からインターフェースボード識別子および論理通路識別子を取得し、読み取られた第2データのヘッダ情報を除去して第1データを取得し、取得された第1データを前記インターフェースボード識別子に対応するインターフェースボードへ送信する。
【0095】
上記実施例で説明されるシステム、装置、モジュールまたは手段は、具体的にコンピュータチップまたは実体によって実施されてもよく、またはある機能を有する製品によって実施されてもよい。1つの典型的な実施設備は、コンピュータである。コンピュータの具体的な形式は、パソコン、ラップトップコンピュータ、携帯電話、カメラ電話、スマートフォン、PDA、メディアプレーヤー、ナビゲーション設備、電子メール送受信設備、ゲームコンソール、タブレットコンピュータ、ウェアラブル設備またはこれらの設備のうちの任意何種かの設備の組み合わせであってもよい。
【0096】
記述の便宜上、上記装置を記述する際、機能に応じて各種の手段に区分してそれぞれ記述する。無論、本発明の実施時に、各手段の機能は、同一または複数のソフトウェアおよび/またはハードウェアで実現されてもよい。
【0097】
本分野における技術者であれば理解できるように、本発明の実施例は、方法、システムまたはコンピュータプログラム製品として提供され得る。したがって、本発明は、100%ハードウェアの実施例、100%ソフトウェアの実施例、またはソフトウェアとハードウェアとを組み合わせた態様の実施例の形式を採用してもよい。また、本発明の実施例は、1つまたは複数の、コンピュータ利用可能なプログラムコードを含むコンピュータ利用可能な記憶媒体(磁気ディスクメモリ、CD−ROM、光学メモリ等を含むが、それらに限定されない)で実施されるコンピュータプログラム製品の形式を採用してもよい。
【0098】
本発明は、本発明の実施例の方法、設備(システム)およびコンピュータプログラム製品に基づくフローチャートおよび/またはブロック図を参照して記述されている。コンピュータプログラム指令にてフローチャートおよび/またはブロック図における各フローおよび/またはブロック、並びにフローチャートおよび/またはブロック図におけるフローおよび/またはブロックの組み合わせを実施可能であることは理解されるべきである。これらのコンピュータプログラム指令を汎用コンピュータ、専用コンピュータ、組み込み型処理設備または他のプログラム可能なデータ処理設備のプロセッサへ供給して1つのマシンを生成することにより、コンピュータまたは他のプログラム可能なデータ処理設備のプロセッサで実行される指令にて、フローチャートの1つのフロー若しくは複数のフローおよび/またはブロック図の1つのブロック若しくは複数のブロックにおける指定の機能を実施するための装置を発生してもよい。
【0099】
また、これらのコンピュータプログラム指令は、更に、コンピュータまたは他のプログラム可能なデータ処理設備が特定の方式で動作するようガイドできるコンピュータ可読メモリに記憶されてもよい。このように、当該コンピュータ可読メモリに記憶された指令は、指令装置を含む製品を生成し、当該指令装置は、フローチャートの1つのフロー若しくは複数のフローおよび/またはブロック図の1つのブロック若しくは複数のブロックにおける指定の機能を実現する。
【0100】
これらのコンピュータプログラム指令は、コンピュータまたは他のプログラム可能なデータ処理設備にロードされて、コンピュータまたは他のプログラム可能な設備に一連の操作ステップを実施してコンピュータで実現される処理を生成してもよい。これにより、コンピュータまたは他のプログラム可能な設備で実行される指令は、フローチャートの1つのフロー若しくは複数のフローおよび/またはブロック図の1つのブロック若しくは複数のブロックにおける指定の機能を実現するステップを提供する。
【0101】
上述したのは、本発明の好適な実施例に過ぎず、本発明を制限するためのものではない。当業者にとって、本発明は種々な変更や変形があり得る。本発明の精神および原則内でなされた如何なる変更、均等物による置換、改良等も、本発明の保護範囲内に含まれる。