特許第6070863号(P6070863)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ▲ホア▼▲ウェイ▼技術有限公司の特許一覧

<>
  • 特許6070863-パケット処理方法及び転送要素 図000002
  • 特許6070863-パケット処理方法及び転送要素 図000003
  • 特許6070863-パケット処理方法及び転送要素 図000004
  • 特許6070863-パケット処理方法及び転送要素 図000005
  • 特許6070863-パケット処理方法及び転送要素 図000006
  • 特許6070863-パケット処理方法及び転送要素 図000007
  • 特許6070863-パケット処理方法及び転送要素 図000008
  • 特許6070863-パケット処理方法及び転送要素 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6070863
(24)【登録日】2017年1月13日
(45)【発行日】2017年2月1日
(54)【発明の名称】パケット処理方法及び転送要素
(51)【国際特許分類】
   H04L 29/08 20060101AFI20170123BHJP
   H04L 12/741 20130101ALI20170123BHJP
【FI】
   H04L13/00 307Z
   H04L12/741
【請求項の数】21
【全頁数】21
(21)【出願番号】特願2015-555516(P2015-555516)
(86)(22)【出願日】2013年1月29日
(65)【公表番号】特表2016-506217(P2016-506217A)
(43)【公表日】2016年2月25日
(86)【国際出願番号】CN2013071088
(87)【国際公開番号】WO2014117327
(87)【国際公開日】20140807
【審査請求日】2015年9月8日
(73)【特許権者】
【識別番号】504277388
【氏名又は名称】▲ホア▼▲ウェイ▼技術有限公司
【氏名又は名称原語表記】HUAWEI TECHNOLOGIES CO.,LTD.
(74)【代理人】
【識別番号】100146835
【弁理士】
【氏名又は名称】佐伯 義文
(74)【代理人】
【識別番号】100140534
【弁理士】
【氏名又は名称】木内 敬二
(72)【発明者】
【氏名】▲ゴン▼ ▲釣▼
(72)【発明者】
【氏名】雷 文▲陽▼
(72)【発明者】
【氏名】徐 小▲飛▼
(72)【発明者】
【氏名】▲陳▼ 洪▲飛▼
【審査官】 森谷 哲朗
(56)【参考文献】
【文献】 米国特許出願公開第2003/0223364(US,A1)
【文献】 特表2001−517024(JP,A)
【文献】 特開2000−156713(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 29/08
H04L 12/741
(57)【特許請求の範囲】
【請求項1】
パケット処理方法であって、
転送要素により、インバウンドポートを介してパケットが受信されるステップと、
前記転送要素により、前記インバウンドポートに従ってポートテーブルが検索されて、第1オフセット、第1長さ、及び第1テーブルの識別子が決定されるステップと、
前記転送要素により、前記第1オフセット及び前記第1長さに従って第1キーが決定され、前記第1キーに従って前記第1テーブルの識別子によって示される第1テーブルが検索されて、第1命令が決定されるステップと、
前記転送要素により、前記第1命令に従って前記パケットが処理されるステップと
を有し、
前記第1オフセット、前記第1長さ、及び前記第1テーブルの前記識別子は、前記インバウンドポートに対応する、方法。
【請求項2】
前記転送要素により、前記第1オフセット及び前記第1長さに従って第1キーが決定され、前記第1キーに従って前記第1テーブルが検索されて、第1命令が決定される前記ステップが、
前記転送要素により、前記パケット中の第1データセグメントが取得されるステップと、
前記転送要素により、前記第1データセグメントが前記第1キーとして決定されるステップと
を含み、
前記第1データセグメントの開始位置は、前記第1オフセットに従って決定され、
前記第1データセグメントの長さは、前記第1長さである、請求項1に記載の方法。
【請求項3】
前記転送要素により、前記第1オフセット及び前記第1長さに従って第1キーが決定され、前記第1キーに従って前記第1テーブルが検索されて、第1命令が決定される前記ステップが、
前記転送要素により、メタデータ中の第2データセグメントが取得されるステップと、
前記転送要素により、前記第2データセグメントが前記第1キーとして決定されるステップと
を含み、
前記第2データセグメントの開始位置は、前記第1オフセットに従って決定され、
前記第2データセグメントの長さは、前記第1長さである、請求項1に記載の方法。
【請求項4】
前記メタデータが、前記転送要素のレジスタに格納されるか、又は
前記メタデータが、前記転送要素のメモリに格納される、請求項3に記載の方法。
【請求項5】
前記第1命令は、動作を実行するように前記転送要素に命令するために使用され、
前記動作は、
前記パケットを修正する動作と、
前記パケットのチェックサムを計算する動作と、
タデータを書き込む動作と、
タデータを読み取る動作と、
カウンタを更新する動作と、
前記パケットにCommitted Access Rate(CAR)処理を実行する動作と、
前記パケットを破棄する動作と、
前記パケットを送信する動作と、
前記パケットのベースオフセットを修正する動作と
のうちの少なくとも1つを含む、請求項1ないし4のいずれか一項に記載の方法。
【請求項6】
前記転送要素により、前記第1命令に従って前記パケットが処理される前記ステップが、
前記転送要素により、前記第1テーブルに従って、前記パケットのベースオフセット、第2オフセット、第2長さ、及び第2テーブルの識別子が決定されるステップと、
前記転送要素により、前記パケットの前記ベースオフセット、前記第2オフセット、及び前記第2長さに従って第2キーが決定され、前記第2キーに従って前記第2テーブルが検索されて、第2命令が決定されるステップと、
前記転送要素により、前記第2命令に従って前記パケットが処理されるステップと
を含み、
前記パケットの前記ベースオフセット、前記第2オフセット、前記第2長さ、及び前記第2テーブルの前記識別子は、前記第1キーに対応する、請求項1ないし4のいずれか一項に記載の方法。
【請求項7】
前記転送要素が、ルータ、スイッチ、ファイアウォール、又はロードバランサである、請求項1ないし6のいずれか一項に記載の方法。
【請求項8】
インバウンドポートを介してパケットを受信するように構成された受信回路と、
前記インバウンドポートに従ってポートテーブルを検索して、第1オフセット、第1長さ、及び第1テーブルの識別子を決定するように構成された検索ユニットと、
前記第1オフセット及び前記第1長さに従って第1キーを決定し、前記第1キーに従って前記第1テーブルの識別子によって示される第1テーブルを検索して、第1命令を決定するように構成された決定ユニットと、
前記第1命令に従って前記パケットを処理するように構成された処理ユニットと
を具備し、
前記第1オフセット、前記第1長さ、及び前記第1テーブルの前記識別子は、前記インバウンドポートに対応する、転送要素。
【請求項9】
前記検索ユニットが、
前記パケット中の第1データセグメントを取得し、
前記第1データセグメントを前記第1キーとして決定するようにさらに構成され、
前記第1データセグメントの開始位置は、前記第1オフセットに従って決定され、
前記第1データセグメントの長さは、前記第1長さである、請求項に記載の転送要素。
【請求項10】
前記検索ユニットが、
メタデータ中の第2データセグメントを取得し、
前記第2データセグメントを前記第1キーとして決定するようにさらに構成され、
前記第2データセグメントの開始位置は、前記第1オフセットに従って決定され、
前記第2データセグメントの長さは、前記第1長さである、請求項に記載の転送要素。
【請求項11】
レジスタ又はメモリをさらに具備し、
前記メタデータが、前記レジスタ又は前記メモリに格納される、請求項10に記載の転送要素。
【請求項12】
前記第1命令は、動作を実行するように転送要素に命令するために使用され、
前記動作は、
前記パケットを修正する動作と、
前記パケットのチェックサムを計算する動作と、
タデータを書き込む動作と、
タデータを読み取る動作と、
カウンタを更新する動作と、
前記パケットにCAR処理を実行する動作と、
前記パケットを破棄する動作と、
前記パケットを送信する動作と、
前記パケットのベースオフセットを修正する動作と
のうちの少なくとも1つを含む、請求項ないし11のいずれか一項に記載の転送要素。
【請求項13】
前記処理ユニットが、
前記第1テーブルに従って、前記パケットのベースオフセット、第2オフセット、第2長さ、及び第2テーブルの識別子を決定し、
前記パケットの前記ベースオフセット、前記第2オフセット、及び前記第2長さに従って第2キーを決定し、前記第2キーに従って前記第2テーブルを検索して、第2命令を決定し、
前記第2命令に従って前記パケットを処理するようにさらに構成され、
前記パケットの前記ベースオフセット、前記第2オフセット、前記第2長さ、及び前記第2テーブルの前記識別子は、前記第1キーに対応する、請求項ないし11のいずれか一項に記載の転送要素。
【請求項14】
前記転送要素が、ルータ、スイッチ、ファイアウォール、又はロードバランサである、請求項8ないし13のいずれか一項に記載の転送要素。
【請求項15】
受信回路、プロセッサ、検索エンジン、及びメモリを含む転送要素であって、
前記受信回路が、インバウンドポートを介してパケットを受信するように構成され、
前記プロセッサが、前記受信回路に接続されており、前記プロセッサは前記メモリに接続されており、かつ前記プロセッサは命令実行回路と命令メモリを含み、ここで、前記命令実行回路は、前記命令メモリに接続されており、前記命令メモリはコンピュータ命令を格納するように構成され、かつ前記命令実行回路は前記コンピュータ命令を読み取ることによって、
前記検索エンジンが、前記インバウンドポートに従ってポートテーブルを検索して、第1オフセット、第1長さ、及び第1テーブルの識別子を決定するよう、前記検索エンジンをトリガする手順と、
前記第1オフセット及び前記第1長さに従って第1キーを決定する手順と、
前記検索エンジンが、前記第1キーに従って前記第1テーブルを検索して、第1命令を決定するよう、前記検索エンジンをトリガする手順と、
前記第1命令に従って前記パケットを処理する手順と、を実行し、ここで、前記第1オフセット、前記第1長さ、及び前記第1テーブルの前記識別子は、前記インバウンドポートに対応し、かつ前記ポートテーブルは、前記メモリに格納される、
転送要素。
【請求項16】
前記検索エンジンが、前記パケット中の第1データセグメントを取得するようにさらに構成され、ここで、前記第1データセグメントの開始位置は、前記第1オフセットに従って決定され、かつ前記第1データセグメントの長さは、前記第1長さであり、
前記命令実行回路が、前記第1データセグメントを前記第1キーとして決定するようにさらに構成され、
前記プロセッサが、データメモリをさらに含み、ここで、前記データメモリは、前記命令実行回路に接続されており、かつ前記パケットは、前記データメモリに格納される、
請求項15に記載の転送要素。
【請求項17】
前記検索エンジンが、メタデータ中の第2データセグメントを取得するようにさらに構成され、ここで、前記第2データセグメントの開始位置は、前記第1オフセットに従って決定され、かつ前記第2データセグメントの長さは前記第1長さであり、
前記命令実行回路が、前記第2データセグメントを前記第1キーとして決定するようにさらに構成される、
請求項15に記載の転送要素。
【請求項18】
前記プロセッサが、レジスタをさらに含み、ここで、前記レジスタは、前記命令実行回路に接続されており、かつ前記メタデータは、前記レジスタに格納される、
請求項17に記載の転送要素。
【請求項19】
前記メタデータが、前記メモリに格納される、
請求項17に記載の転送要素。
【請求項20】
前記第1命令が、動作を実行するように前記命令実行回路に命令するために使用され、ここで、前記動作は、前記パケットを修正する動作と、前記パケットのチェックサムを計算する動作と、メタデータを書き込む動作と、メタデータを読み取る動作と、カウンタ更新動作と、前記パケットにCAR処理を実行する動作と、前記パケットを破棄する動作と、前記パケットを送信する動作と、前記パケットのベースオフセットを修正する動作とのうちの、少なくとも1つを含む、
請求項15ないし19のいずれか一項に記載の転送要素。
【請求項21】
前記命令実行回路が、
前記第1テーブルに従って、前記パケットのベースオフセット、第2オフセット、第2長さ、及び第2テーブルの識別子を決定するようにさらに構成され、ここで、前記パケットの前記ベースオフセット、前記第2オフセット、前記第2長さ、及び前記第2テーブルの前記識別子は、前記第1キーに対応し、
前記命令実行回路が、
前記パケットの前記ベースオフセット、前記第2オフセット、及び前記第2長さに従って第2キーを決定するようにさらに構成され、
前記命令実行回路が、前記検索エンジンが前記第2キーに従って前記第2テーブルを検索して、第2命令を決定するよう、前記検索エンジンをトリガするようにさらに構成され、
前記命令実行回路が、前記第2命令に従って前記パケットを処理するようにさらに構成される、
請求項15ないし19のいずれか一項に記載の転送要素。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信技術に関し、詳細には、パケット処理方法及び転送要素に関する。
【背景技術】
【0002】
従来技術において、転送要素は、パケットを受信する前に当該パケットのデータ形式を判定する必要があり、例えば、転送要素は、パケットがIP(Internet Protocol)であるか又はMPLS(Multiple Protocol Label Switching)であるかを判定して当該パケットを処理する。例えば、スイッチは、イーサネット(登録商標)パケットを受信する前に、当該イーサネットパケットが従うプロトコルがメディアアクセス制御(Media Access Control,MAC)プロトコルであると判定する必要がある。次いで、スイッチは、MACプロトコルに従ってイーサネットパケットのMACプロトコルヘッダを解析して、イーサネットパケットの宛先MACプロトコルアドレスを取得する。
【発明の概要】
【課題を解決するための手段】
【0003】
本発明の実施態様は、パケット処理方法及び転送要素を提供する。転送要素は、パケットを処理する前に当該パケットのデータ形式を解釈する必要がなく、したがって、転送要素は、さまざまなデータ形式のパケットを柔軟にサポートできる。転送要素は、新たなデータ形式をサポートする必要があるとき、ハードウェア又はソフトウェアを更新する必要なしに、当該データ形式のパケットを処理できる。
【0004】
第1態様によれば、パケット処理方法が提供され、パケット処理方法は、
転送要素により、インバウンドポートを介してパケットが受信されるステップと、
転送要素により、インバウンドポートに従ってポートテーブル(port table)が検索されて、第1オフセット(offset)、第1長さ(length)、及び第1テーブルの識別子が決定されるステップと、
転送要素により、第1オフセット及び第1長さに従って第1キー(key)が決定され、第1キーに従って第1テーブルが検索されて、第1命令(instruction)が決定されるステップと、
転送要素により、第1命令に従ってパケットが処理されるステップとを有し、ここで、第1オフセット、第1長さ、及び第1テーブルの識別子は、インバウンドポートに対応する。
【0005】
上記の技術的解決策において、転送要素は、インバウンドポートに従って第1オフセット及び第1長さを決定する。転送要素は、第1オフセット及び第1長さに従って第1キーを決定する。転送要素は、第1キーに従って第1命令を決定し、パケットを処理する。したがって、転送要素は、パケットを処理する前に当該パケットのデータ形式を解釈する必要がなく、それにより、転送要素は、さまざまなデータ形式のパケットを柔軟にサポートできる。転送要素は、新たなデータ形式をサポートする必要があるとき、ハードウェア又はソフトウェアを更新する必要なしに、当該データ形式のパケットを処理できる。
【0006】
第1態様の第1実施可能態様において、転送要素により、第1オフセット及び第1長さに従って第1キーが決定されるステップは、
転送要素により、パケット中の第1データセグメント(data segment)が取得されるステップと、
転送要素により、第1データセグメントが第1キーとして決定されるステップとを含み、ここで、第1データセグメントの開始位置は、第1オフセットに従って決定され、かつ第1データセグメントの長さは、第1長さである。
【0007】
第1態様の第2実施可能態様において、転送要素により、第1オフセット及び第1長さに従って第1キーが決定されるステップは、
転送要素により、メタデータ(met data)中の第2データセグメントが取得されるステップと、
転送要素により、第2データセグメントが第1キーとして決定されるステップとを含み、ここで、第2データセグメントの開始位置は、第1オフセットに従って決定され、かつ第2データセグメントの長さは、第1長さである。
【0008】
第1態様の第2実施可能態様に従う、第1態様の第3実施可能態様において、メタデータは、転送要素のレジスタ(register)に格納されるか、又はメタデータは、転送要素のメモリ(memory)に格納される。
【0009】
第1態様、第1態様の第1実施可能態様、第1態様の第2実施可能態様、又は第1態様の第3実施可能態様に従う、第1態様の第4実施可能態様において、第1命令は、動作を実行するように転送要素に命令するために使用され、ここで、動作は、パケットを修正する動作と、パケットのチェックサム(checksum)を計算する動作と、メタデータを書き込む動作と、メタデータを読み取る動作と、カウンタを更新する動作と、パケットにCAR(Committed Access Rate)処理を実行する動作と、パケットを破棄する動作と、パケットを送信する動作と、パケットのベースオフセット(base offset)を修正する動作とのうちの少なくとも1つを含む。
【0010】
第1態様、第1態様の第1実施可能態様、第1態様の第2実施可能態様、又は第1態様の第3実施可能態様に従う、第1態様の第5実施可能態様において、転送要素により、第1命令に従ってパケットが処理されるステップは、
転送要素により、第1テーブルに従って、パケットのベースオフセット、第2オフセット、第2長さ、及び第2テーブルの識別子が決定されるステップと、
転送要素により、パケットのベースオフセット、第2オフセット、及び第2長さに従って第2キーが決定され、第2キーに従って第2テーブルが検索されて、第2命令が決定されるステップと、
転送要素により、第2命令に従ってパケットが処理されるステップとを含み、ここで、パケットのベースオフセット、第2オフセット、第2長さ、及び第2テーブルの識別子は、第1キーに対応する。
【0011】
第2態様によれば、転送要素が提供され、転送要素は、
インバウンドポートを介してパケットを受信するように構成された受信回路と、
インバウンドポートに従ってポートテーブルを検索して、第1オフセット、第1長さ、及び第1テーブルの識別子を決定するように構成された検索ユニットと、
第1オフセット及び第1長さに従って第1キーを決定し、第1キーに従って第1テーブルを検索して、第1命令を決定するように構成された決定ユニットと、
第1命令に従ってパケットを処理するように構成された処理ユニットとを具備し、ここで、第1オフセット、第1長さ、及び第1テーブルの識別子は、インバウンドポートに対応する。
【0012】
上記の技術的解決策において、転送要素は、インバウンドポートに従って第1オフセット及び第1長さを決定する。転送要素は、第1オフセット及び第1長さに従って第1キーを決定する。転送要素は、第1キーに従って第1命令を決定し、パケットを処理する。したがって、転送要素は、パケットを処理する前に当該パケットのデータ形式を解釈する必要がなく、それにより、転送要素は、さまざまなデータ形式のパケットを柔軟にサポートできる。転送要素は、新たなデータ形式をサポートする必要があるとき、ハードウェア又はソフトウェアを更新する必要なしに、当該データ形式のパケットを処理できる。
【0013】
第2態様の第1実施可能態様において、検索ユニットは、
パケット中の第1データセグメントを取得し、
第1データセグメントを第1キーとして決定するようにさらに構成され、ここで、第1データセグメントの開始位置は、第1オフセットに従って決定され、かつ第1データセグメントの長さは、第1長さである。
【0014】
第2態様の第2実施可能態様において、検索ユニットは、
メタデータ中の第2データセグメントを取得し、
第2データセグメントを第1キーとして決定するようにさらに構成され、ここで、第2データセグメントの開始位置は、第1オフセットに従って決定され、かつ第2データセグメントの長さは、第1長さである。
【0015】
第2態様の第2実施可能態様に従う、第2態様の第3実施可能態様において、転送要素は、レジスタ又はメモリをさらに具備し、ここで、メタデータは、レジスタ又はメモリに格納される。
【0016】
第2態様、第2態様の第1実施可能態様、第2態様の第2実施可能態様、又は第2態様の第3実施可能態様に従う、第2態様の第4実施可能態様において、第1命令は、動作を実行するように転送要素に命令するために使用され、ここで、動作は、パケットを修正する動作と、パケットのチェックサムを計算する動作と、メタデータを書き込む動作と、メタデータを読み取る動作と、カウンタ更新する動作と、パケットにCAR処理を実行する動作と、パケットを破棄する動作と、パケットを送信する動作と、パケットのベースオフセットを修正する動作とのうちの少なくとも1つを含む。
【0017】
第2態様、第2態様の第1実施可能態様、第2態様の第2実施可能態様、又は第2態様の第3実施可能態様に従う、第2態様の第5実施可能態様において、処理ユニットは、
第1テーブルに従って、パケットのベースオフセット、第2オフセット、第2長さ、及び第2テーブルの識別子を決定し、
パケットのベースオフセット、第2オフセット、及び第2長さに従って第2キーを決定し、第2キーに従って第2テーブルを検索して、第2命令を決定し、
第2命令に従ってパケットを処理するようにさらに構成され、ここで、パケットのベースオフセット、第2オフセット、第2長さ、及び第2テーブルの識別子は、第1キーに対応する。
【0018】
第3態様によれば、転送要素が提供され、転送要素は、受信回路と、プロセッサと、検索エンジン(search engine)と、メモリとを具備し、ここで、
受信回路は、インバウンドポートを介してパケットを受信するように構成され、
プロセッサは、受信回路に接続されており、プロセッサは、メモリに接続されており、かつプロセッサは、命令実行回路と、命令メモリとを具備し、ここで、命令実行回路は、命令メモリに接続されており、命令メモリは、コンピュータ命令を格納するように構成され、かつ命令実行回路は、コンピュータ命令を読み取ることによって、
検索エンジンが、インバウンドポートに従ってポートテーブルを検索して、第1オフセット、第1長さ、及び第1テーブルの識別子を決定するよう、検索エンジンをトリガする手順と、
第1オフセット及び第1長さに従って第1キーを決定する手順と、
検索エンジンが、第1キーに従って第1テーブルを検索して、第1命令を決定するよう、検索エンジンをトリガする手順と、
第1命令に従ってパケットを処理する手順とを実行し、ここで、第1オフセット、第1長さ、及び第1テーブルの識別子は、インバウンドポートに対応し、かつポートテーブルは、メモリに格納される。
【0019】
第3態様の第1実施可能態様において、検索エンジンは、パケット中の第1データセグメントを取得するようにさらに構成され、ここで、第1データセグメントの開始位置は、第1オフセットに従って決定され、かつ第1データセグメントの長さは、第1長さであり、
命令実行回路は、第1データセグメントを第1キーとして決定するようにさらに構成され、かつ
プロセッサは、データメモリをさらに具備し、ここで、データメモリは、命令実行回路に接続されており、かつパケットは、データメモリに格納される。
【0020】
第3態様の第2実施可能態様において、検索エンジンは、メタデータ中の第2データセグメントを取得するようにさらに構成され、ここで、第2データセグメントの開始位置は、第1オフセットに従って決定され、かつ第2データセグメントの長さは、第1長さであり、かつ
命令実行回路は、第2データセグメントを第1キーとして決定するようにさらに構成される。
【0021】
第3態様の第2実施可能態様に従う、第3態様の第3実施可能態様において、プロセッサは、レジスタをさらに具備し、ここで、レジスタは、命令実行回路に接続されており、かつメタデータは、レジスタに格納される。
【0022】
第3態様の第2実施可能態様に従う、第3態様の第4実施可能態様において、メタデータは、メモリに格納される。
【0023】
第3態様、第3態様の第1実施可能態様、第3態様の第2実施可能態様、第3態様の第3実施可能態様、又は第3態様の第4実施可能態様に従う、第3態様の第5実施可能態様において、第1命令は、動作を実行するように命令実行回路に命令するために使用され、ここで、動作は、パケットを修正する動作と、パケットのチェックサムを計算する動作と、メタデータを書き込む動作と、メタデータを読み取る動作と、カウンタ更新する動作と、パケットにCAR処理を実行する動作と、パケットを破棄する動作と、パケットを送信する動作と、パケットのベースオフセットを修正する動作とのうちの少なくとも1つを含む。
【0024】
第3態様、第3態様の第1実施可能態様、第3態様の第2実施可能態様、第3態様の第3実施可能態様、又は第3態様の第4実施可能態様に従う、第4態様の第6実施可能態様において、命令実行回路は、第1テーブルに従って、パケットのベースオフセット、第2オフセット、第2長さ、及び第2テーブルの識別子を決定するようにさらに構成され、ここで、パケットのベースオフセット、第2オフセット、第2長さ、及び第2テーブルの識別子は、第1キーに対応し、
命令実行回路は、パケットのベースオフセット、第2オフセット、及び第2長さに従って第2キーを決定するようにさらに構成され、
命令実行回路は、検索エンジンが、第2キーに従って第2テーブルを検索して、第2命令を決定するよう、検索エンジンをトリガするようにさらに構成され、かつ
命令実行回路は、第2命令に従ってパケットを処理するようにさらに構成される。
【0025】
本発明の実施形態における又は従来技術における技術的解決策をより明瞭に説明するために、実施形態及び従来技術を説明するために必要とされる添付の図面について、以下に簡単に説明する。当然ながら、以下の説明における添付の図面は、本発明のいくつかの実施形態を示すものであり、当分野における通常の知識を有する者は、創造的労力無しに、これらの添付の図面から他の図面を導き出せよう。
【図面の簡単な説明】
【0026】
図1】本発明の一実施形態によるパケット処理方法の概略的なフロー図である。
図2】本発明の一実施形態によるパケット処理方法の概略的なフロー図である。
図3】本発明の一実施形態によるパケット処理方法の概略的なフロー図である。
図4】本発明の一実施形態によるパケット処理方法の概略的なフロー図である。
図5】本発明の一実施形態による転送要素の概略的な構成図である。
図6】本発明の一実施形態による転送要素の概略的な構成図である。
図7】本発明の一実施形態によるエントリの形式の概略図である。
図8】本発明の一実施形態によるエントリの形式の概略図である。
【発明を実施するための形態】
【0027】
本発明の実施形態の目的、技術的解決策、及び利点を明確にするために、以下では、本発明の実施形態の添付の図面を参照して本発明の実施形態の技術的解決策について明瞭かつ十分に説明する。当然ながら、記載される実施形態は、本発明の実施形態のすべてではなく、その一部に過ぎない。当分野における通常の知識を有する者が本発明の実施形態に基づいて創造的労力無しに得る他のすべての実施形態は、本発明の保護範囲内にある。
【0028】
図1は、本発明の一実施形態によるパケット処理方法の概略的なフロー図である。図1を参照すると、この方法は、以下のステップを有する。
【0029】
ステップ102:転送要素は、インバウンドポートを介してパケットを受信する。
【0030】
例えば、転送要素は、ルータ、スイッチ、ファイアウォール、又はロードバランサであってよい。
【0031】
例えば、パケットは、IPパケット、イーサネットパケット、又はMPLSパケットであってよい。
【0032】
例えば、ステップ102は、受信回路によって実行されてよい。
【0033】
ステップ104:転送要素は、インバウンドポートに従ってポートテーブルを検索して、第1オフセット、第1長さ、及び第1テーブルの識別子を決定する。ここで、第1オフセット、第1長さ、及び第1テーブルの識別子は、インバウンドポートに対応する。
【0034】
例えば、第1オフセット、第1長さ、及び第1テーブルの識別子は、インバウンドポートに一致するポートテーブルのエントリに格納される。1つ以上の第1オフセットが存在してよい。1つ以上の第1長さが存在してよい。複数のオフセットは、複数の長さと一対一の関係にある。
【0035】
例えば、第1テーブルは、MACプロトコルテーブル、アドレス解決プロトコル(Address Resolution Protocol,ARP)テーブル、FIB(Forwarding Information Base)、又はMPLSラベルテーブルであってよい。
【0036】
例えば、ステップ104は、検索エンジンによって実行されてよい。
【0037】
ステップ106:転送要素は、第1オフセット及び第1長さに従って第1キーを決定し、第1キーに従って第1テーブルを検索して、第1命令を決定する。
【0038】
例えば、第1キーは、パケット中のデータセグメントであってよい。また、第1キーは、メタデータ中のデータセグメントであってもよい。メタデータは、レジスタに格納される。
【0039】
例えば、1つ以上の第1キーが存在してよい。複数のキーは、複数のオフセットと一対一の関係にある。複数のキーは、複数の長さと一対一の関係にある。
【0040】
例えば、第1キーは、パケットだけから得られてよく、又はメタデータだけから得られてもよい。また、第1キーは、パケット及びメタデータから得られてもよい。
【0041】
例えば、ステップ106は、検索エンジン及び命令実行回路によって実行されてよい。
【0042】
ステップ108:転送要素は、第1命令に従ってパケットを処理する。
【0043】
例えば、第1命令は、SSO(Standard Setting Organization)、ONF(Open Networking Foundation)によって公開されたOpenFlowスイッチ仕様書1.3.0(OpenFlow Switch Specification 1.3.0)において規定された命令であってよい。
【0044】
例えば、ステップ108は、ネットワークプロセッサ(Network Processor,NP)によって実行されてよい。特に、ステップ108は、NP中の命令実行回路によって実行されてもよい。
【0045】
上記の技術的解決策において、転送要素は、インバウンドポートに従って第1オフセット及び第1長さを決定する。転送要素は、第1オフセット及び第1長さに従って第1キーを決定する。転送要素は、第1キーに従って第1命令を決定し、パケットを処理する。したがって、転送要素は、パケットを処理する前に当該パケットのデータ形式を解釈する必要がなく、それにより、転送要素は、さまざまなデータ形式のパケットを柔軟にサポートできる。転送要素は、新たなデータ形式をサポートする必要があるとき、ハードウェア又はソフトウェアを更新する必要なしに、当該データ形式のパケットを処理できる。
【0046】
選択的に、図1に示される方法において、転送要素により、第1オフセット及び第1長さに従って第1キーが決定されるステップは、以下のステップを含む。
【0047】
ステップ202:転送要素は、パケット中の第1データセグメントを取得する。ここで、第1データセグメントの開始位置は、第1オフセットに従って決定され、かつ第1データセグメントの長さは、第1長さである。
【0048】
ステップ204:転送要素は、第1データセグメントを第1キーとして決定する。
【0049】
ステップ202及びステップ204の詳細については、図2を参照されたい。
【0050】
例えば、第1データセグメントの開始位置が第1オフセットに従って決定されることは、特に、第1データセグメントの開始位置が第1ベースオフセットと第1オフセットとの合計を用いて識別されることであってもよい。ここで、第1ベースオフセットは0である。
【0051】
上記の技術的解決策において、第1キーは、パケットから得られる。
【0052】
選択的に、図1に示される方法において、転送要素により、第1オフセット及び第1長さに従って第1キーが決定されるステップは、以下のステップを含む。
【0053】
ステップ302:転送要素は、メタデータ中の第2データセグメントを取得する。ここで、第2データセグメントの開始位置は、第1オフセットに従って決定され、かつ第2データセグメントの長さは、第1長さである。
【0054】
ステップ304:転送要素は、第2データセグメントを第1キーとして決定する。
【0055】
ステップ302及びステップ304の詳細については、図3を参照されたい。
【0056】
例えば、第2データセグメントの開始位置が第1オフセットに従って決定されることは、特に、第2データセグメントの開始位置が第2ベースオフセットと第1オフセットとの合計を用いて識別されることであってもよい。ここで、第2ベースオフセットは0である。
【0057】
上記の技術的解決策において、第1キーは、メタデータから得られる。
【0058】
選択的に、図1に示される方法において、メタデータは、転送要素のレジスタに格納される。
【0059】
例えば、レジスタは、NP中に位置してよい。
【0060】
選択的に、図1に示される方法において、メタデータは、転送要素のメモリに格納されてよい。
【0061】
例えば、メモリは、NPに接続されていてよい。
【0062】
選択的に、図1に示される方法において、第1命令は、動作を実行するように転送要素に命令するために使用される。ここで、この動作は、パケットを修正する動作と、パケットのチェックサムを計算する動作と、メタデータを書き込む動作と、メタデータを読み取る動作と、カウンタ更新する動作と、パケットにCAR処理を実行する動作と、パケットを破棄する動作と、パケットを送信する動作と、パケットのベースオフセットを修正する動作とのうちの少なくとも1つを含む。
【0063】
例えば、パケットを修正する動作は、パケット中のデータセグメントを削除する動作、パケット中のデータセグメントを置き換える動作、又はパケット中にデータセグメントを挿入する動作であってよい。
【0064】
例えば、チェックサムは、IPチェックサム、伝送制御プロトコル(Transmission Control Protocol,TCP)チェックサム、又はユーザデータグラムプロトコル(User Datagram Protocol,UDP)チェックサムであってよい。
【0065】
選択的に、図1に示される方法において、転送要素により、第1命令に従ってパケットが処理されるステップは、以下のステップを含む。
【0066】
ステップ402:転送要素は、第1テーブルに従って、ベースオフセット、第2オフセット、第2長さ、及び第2テーブルの識別子を決定する。ここで、ベースオフセット、第2オフセット、第2長さ、及び第2テーブルの識別子は、第1キーに対応する。
【0067】
例えば、ベースオフセットは、第1ベースオフセットと第1オフセットとの合計に等しい。
【0068】
ステップ404:転送要素は、ベースオフセット、第2オフセット、及び第2長さに従って第2キーを決定し、第2キーに従って第2テーブルを検索して、第2命令を決定する。
【0069】
例えば、1つ以上の第2キーが存在してよい。複数の第2キーが存在する場合、複数のベースオフセットが存在し、複数の第2オフセットが存在し、かつ複数の第2長さが存在する。複数のベースオフセットは、複数のキーと一対一の関係にある。複数の第2オフセットは、複数のキーと一対一の関係にある。複数の第2長さは、複数のキーと一対一の関係にある。
【0070】
例えば、第2キーは、パケットだけから得られてよく、又はメタデータだけから得られてもよい。また、第2キーは、パケット及びメタデータから得られてもよい。
【0071】
ステップ406:転送要素は、第2命令に従ってパケットを処理する。
【0072】
例えば、第2命令は、ONFによって公開されたOpenFlowスイッチ仕様書1.3.0において規定された命令であってよい。
【0073】
ステップ402、ステップ404、及びステップ406の詳細については、図4を参照されたい。
【0074】
図5は、本発明の一実施形態による転送要素の概略的な構成図である。転送要素は、図1に示された方法を実行するように構成されてよい。例えば、転送要素は、ルータ、スイッチ、ファイアウォール、又はロードバランサであってよい。図5を参照すると、転送要素は、受信回路502と、検索ユニット504と、決定ユニット506と、処理ユニット508とを含む。
【0075】
受信ユニット502は、インバウンドポート介してパケットを受信するように構成される。
【0076】
例えば、パケットは、IPパケット、イーサネットパケット、又はMPLSパケットであってよい。
【0077】
検索ユニット504は、インバウンドポートに従ってポートテーブルを検索して、第1オフセット、第1長さ、及び第1テーブルの識別子を決定するように構成される。ここで、第1オフセット、第1長さ、及び第1テーブルの識別子は、インバウンドポートに対応する。
【0078】
例えば、第1オフセット、第1長さ、及び第1テーブルの識別子は、インバウンドポートに一致するポートテーブルのエントリに格納される。1つ以上の第1オフセットが存在してよい。1つ以上の第1長さが存在してよい。複数のオフセットは、複数の長さと一対一の関係にある。
【0079】
例えば、第1テーブルは、MACプロトコルテーブル、ARPテーブル、FIB、又はMPLSラベルテーブルであってよい。
【0080】
例えば、検索ユニット504は、検索エンジンであってよい。
【0081】
決定ユニット506は、第1オフセット及び第1長さに従って第1キーを決定し、第1キーに従って第1テーブルを検索して、第1命令を決定するように構成される。
【0082】
例えば、第1キーは、パケット中のデータセグメントであってよい。また、第1キーは、メタデータ中のデータセグメントであってもよい。メタデータは、レジスタに格納される。
【0083】
例えば、1つ以上の第1キーが存在してよい。複数のキーは、複数のオフセットと一対一の関係にある。複数のキーは、複数の長さと一対一の関係にある。
【0084】
例えば、第1キーは、パケットだけから得られてよく、又はメタデータだけから得られてもよい。また、第1キーは、パケット及びメタデータから得られてもよい。
【0085】
例えば、決定ユニット506は、検索エンジン及び命令実行回路であってよい。
【0086】
処理ユニット508は、第1命令に従ってパケットを処理するように構成される。
【0087】
例えば、第1命令は、ONFによって公開されたOpenFlowスイッチ仕様書1.3.0において規定された命令であってよい。
【0088】
例えば、処理ユニット508は、NPであってよく、特に、処理ユニット508は、NP中の命令実行回路であってもよい。
【0089】
上記の技術的解決策において、転送要素は、インバウンドポートに従って第1オフセット及び第1長さを決定する。転送要素は、第1オフセット及び第1長さに従って第1キーを決定する。転送要素は、第1キーに従って第1命令を決定し、パケットを処理する。したがって、転送要素は、パケットを処理する前に当該パケットのデータ形式を解釈する必要がなく、それにより、転送要素は、さまざまなデータ形式のパケットを柔軟にサポートできる。転送要素は、新たなデータ形式をサポートする必要があるとき、ハードウェア又はソフトウェアを更新する必要なしに、当該データ形式のパケットを処理できる。
【0090】
選択的に、図5に示される転送要素において、検索ユニット504は、
パケット中の第1データセグメントを取得し、
第1データセグメントを第1キーとして決定するように構成される。ここで、第1データセグメントの開始位置は、第1オフセットに従って決定され、かつ第1データセグメントの長さは、第1長さである。
【0091】
例えば、第1データセグメントの開始位置が第1オフセットに従って決定されることは、特に、第1データセグメントの開始位置が第1ベースオフセットと第1オフセットとの合計を用いて識別されることであってもよい。ここで、第1ベースオフセットは0である。
【0092】
上記の技術的解決策において、第1キーは、パケットから得られる。
【0093】
選択的に、図5に示される転送要素において、検索ユニット504は、
メタデータ中の第2データセグメントを取得し、
第2データセグメントを第1キーとして決定するように構成される。ここで、第2データセグメントの開始位置は、第1オフセットに従って決定され、かつ第2データセグメントの長さは、第1長さである。
【0094】
例えば、第2データセグメントの開始位置が第1オフセットに従って決定されることは、特に、第2データセグメントの開始位置が第2ベースオフセットと第1オフセットとの合計を用いて識別されることであってもよい。ここで、第2ベースオフセットは0である。
【0095】
上記の技術的解決策において、第1キーは、メタデータから得られる。
【0096】
選択的に、図5に示される転送要素は、レジスタ又はメモリをさらに含む。
【0097】
メタデータ、レジスタ又はメモリに格納される。
【0098】
選択的に、図5に示される転送要素において、第1命令は、動作を実行するように転送要素に命令するために使用される。ここで、この動作は、パケットを修正する動作と、パケットのチェックサムを計算する動作と、メタデータを書き込む動作と、メタデータを読み取る動作と、カウンタ更新する動作と、パケットにCAR処理を実行する動作と、パケットを破棄する動作と、パケットを送信する動作と、パケットのベースオフセットを修正する動作とのうちの少なくとも1つを含む。
【0099】
例えば、パケットを修正する動作は、パケット中のデータセグメントを削除する動作、パケット中のデータセグメントを置き換える動作、又はパケット中にデータセグメントを挿入する動作であってよい。
【0100】
例えば、チェックサムは、IPチェックサム、伝送制御プロトコルチェックサム、又はUDPチェックサムであってよい。
【0101】
選択的に、図5に示される転送要素において、処理ユニット508は、
第1テーブルに従って、パケットのベースオフセット、第2オフセット、第2長さ、及び第2テーブルの識別子を決定し、
パケットのベースオフセット、第2オフセット、及び第2長さに従って第2キーを決定し、第2キーに従って第2テーブルを検索して、第2命令を決定し、
第2命令に従ってパケットを処理するように構成される。ここで、パケットのベースオフセット、第2オフセット、第2長さ、及び第2テーブルの識別子は、第1キーに対応する。
【0102】
例えば、ベースオフセットは、第1ベースオフセットと第1オフセットとの合計に等しい。
【0103】
例えば、1つ以上の第2キーが存在してよい。複数の第2キーが存在する場合、複数のベースオフセットが存在し、複数の第2オフセットが存在し、かつ複数の第2長さが存在する。複数のベースオフセットは、複数のキーと一対一の関係にある。複数の第2オフセットは、複数のキーと一対一の関係にある。複数の第2長さは、複数のキーと一対一の関係にある。
【0104】
例えば、第2キーは、パケットだけから得られてよく、又はメタデータだけから得られてもよい。また、第2キーは、パケット及びメタデータから得られてもよい。
【0105】
例えば、第2命令は、ONFによって公開されたOpenFlowスイッチ仕様書1.3.0において規定された命令であってよい。
【0106】
図6は、本発明の一実施形態による転送要素の概略的な構成図である。転送要素は、図1に示された方法を実行するように構成されてよい。例えば、転送要素は、ルータ、スイッチ、ファイアウォール、又はロードバランサであってよい。図6を参照すると、転送要素は、インタフェース回路601と、インタフェース回路602と、メモリ(memory)603と、検索エンジン(search engine)604と、プロセッサ609とを含む。プロセッサ609は、命令実行回路605と、命令メモリ607とを含む。選択的に、プロセッサ609は、レジスタ(register)606と、データメモリ608とを含んでよい。
【0107】
受信回路601は、インバウンドポート介してパケットを受信するように構成される。
【0108】
プロセッサ609は、受信回路601に接続されており、プロセッサ609は、メモリ603に接続されており、かつプロセッサ609は、命令実行回路605と、命令メモリ607とを含む。ここで、命令実行回路605は、命令メモリ607に接続されており、命令メモリ607は、コンピュータ命令を格納するように構成され、かつ命令実行回路605は、コンピュータ命令を読み取ることによって、
検索エンジン604が、インバウンドポートに従ってポートテーブルを検索して、第1オフセット、第1長さ、及び第1テーブルの識別子を決定するよう、検索エンジン604をトリガする手順と、
第1オフセット及び第1長さに従って第1キーを決定する手順と、
検索エンジン604が、第1キーに従って第1テーブルを検索して、第1命令を決定するよう、検索エンジン604をトリガする手順と、
第1命令に従ってパケットを処理する手順とを実行し、ここで、第1オフセット、第1長さ、及び第1テーブルの識別子は、インバウンドポートに対応し、かつポートテーブルは、メモリ603に格納される。
【0109】
例えば、プロセッサ609は、クロスバー(crossbar)を用いてメモリ603に接続されていてよい。プロセッサ609は、クロスバーを用いて検索エンジン604に接続されていてよい。
【0110】
例えば、パケットは、IPパケット、イーサネットパケット、又はMPLSパケットであってよい。
【0111】
例えば、第1オフセット、第1長さ、及び第1テーブルの識別子は、インバウンドポートに一致するポートテーブルのエントリに格納される。1つ以上の第1オフセットが存在してよい。1つ以上の第1長さが存在してよい。複数のオフセットは、複数の長さと一対一の関係にある。
【0112】
図7は、ポートテーブルのエントリの形式の概略図である。図7中のインバウンドポート701、第1オフセット702、第1長さ703、及び第1テーブルの識別子704は、それぞれ、上記のインバウンドポート、第1オフセット、第1長さ、及び第1テーブルの識別子に対応する。
【0113】
例えば、第1テーブルは、MACプロトコルテーブル、ARPテーブル、FIB、又はMPLSラベルテーブルであってよい。
【0114】
例えば、第1キーは、パケット中のデータセグメントであってよい。また、第1キーは、メタデータ中のデータセグメントであってもよい。メタデータは、レジスタに格納される。
【0115】
例えば、1つ以上の第1キーが存在してよい。複数のキーは、複数のオフセットと一対一の関係にある。複数のキーは、複数の長さと一対一の関係にある。
【0116】
例えば、第1キーは、パケットだけから得られてよく、又はメタデータだけから得られてもよい。また、第1キーは、パケット及びメタデータから得られてもよい。
【0117】
例えば、第1命令は、ONFによって公開されたOpenFlowスイッチ仕様書1.3.0において規定された命令であってよい。
【0118】
上記の技術的解決策において、転送要素は、インバウンドポートに従って第1オフセット及び第1長さを決定する。転送要素は、第1オフセット及び第1長さに従って第1キーを決定する。転送要素は、第1キーに従って第1命令を決定し、パケットを処理する。したがって、転送要素は、パケットを処理する前に当該パケットのデータ形式を解釈する必要がなく、それにより、転送要素は、さまざまなデータ形式のパケットを柔軟にサポートできる。転送要素は、新たなデータ形式をサポートする必要があるとき、ハードウェア又はソフトウェアを更新する必要なしに、当該データ形式のパケットを処理できる。
【0119】
選択的に、図6に示される転送要素において、検索エンジン604は、パケット中の第1データセグメントを取得するようにさらに構成される。ここで、第1データセグメントの開始位置は、第1オフセットに従って決定され、かつ第1データセグメントの長さは、第1長さである。
【0120】
命令実行回路605は、第1データセグメントを第1キーとして決定するようにさらに構成される。
【0121】
プロセッサは、データメモリ608をさらに含む。ここで、データメモリ608は、命令実行回路605に接続されており、かつパケットは、データメモリ608に格納される。
【0122】
例えば、第1データセグメントの開始位置が第1オフセットに従って決定されることは、特に、第1データセグメントの開始位置が第1ベースオフセットと第1オフセットとの合計を用いて識別されることであってもよい。ここで、第1ベースオフセットは0である。
【0123】
上記の技術的解決策において、第1キーは、パケットから得られる。
【0124】
選択的に、図6に示される転送要素において、検索エンジン604は、メタデータ中の第2データセグメントを取得するようにさらに構成される。ここで、第2データセグメントの開始位置は、第1オフセットに従って決定され、かつ第2データセグメントの長さは、第1長さである。
【0125】
命令実行回路605は、第2データセグメントを第1キーとして決定するようにさらに構成される。
【0126】
例えば、第2データセグメントの開始位置が第1オフセットに従って決定されることは、特に、第2データセグメントの開始位置が第2ベースオフセットと第1オフセットとの合計を用いて識別されることであってもよい。ここで、第2ベースオフセットは0である。
【0127】
上記の技術的解決策において、第1キーは、メタデータから得られる。
【0128】
選択的に、図6に示される転送要素において、プロセッサ609は、レジスタ606をさらに含む。ここで、レジスタ606は、命令実行回路605に接続されており、かつメタデータは、レジスタ606に格納される。
【0129】
選択的に、図6に示される転送要素において、メタデータは、メモリ603に格納される。
【0130】
選択的に、図6に示される転送要素において、第1命令は、動作を実行するように命令実行回路に命令するために使用される。ここで、この動作は、パケットを修正する動作と、パケットのチェックサムを計算する動作と、メタデータを書き込む動作と、メタデータを読み取る動作と、カウンタ更新する動作と、パケットにCAR処理を実行する動作と、パケットを破棄する動作と、パケットを送信する動作と、パケットのベースオフセットを修正する動作とのうちの少なくとも1つを含む。
【0131】
例えば、パケットを修正する動作は、パケット中のデータセグメントを削除する動作、パケット中のデータセグメントを置き換える動作、又はパケット中にデータセグメントを挿入する動作であってよい。
【0132】
例えば、チェックサムは、IPチェックサム、TCPチェックサム、又はUDPチェックサムであってよい。
【0133】
例えば、パケットは、インタフェース回路602によって送信されてよい。
【0134】
選択的に、図6に示される転送要素において、命令実行回路605は、第1テーブルに従って、パケットのベースオフセット、第2オフセット、第2長さ、及び第2テーブルの識別子を決定するようにさらに構成される。ここで、パケットのベースオフセット、第2オフセット、第2長さ、及び第2テーブルの識別子は、第1キーに対応する。
【0135】
命令実行回路605は、パケットのベースオフセット、第2オフセット、及び第2長さに従って第2キーを決定するようにさらに構成される。
【0136】
命令実行回路605は、検索エンジン604が、第2キーに従って第2テーブルを検索して、第2命令を決定するよう、検索エンジン604をトリガするようにさらに構成される。
【0137】
命令実行回路605は、第2命令に従ってパケットを処理するようにさらに構成される。
【0138】
例えば、ベースオフセットは、第1ベースオフセットと第1オフセットとの合計に等しい。
【0139】
例えば、1つ以上の第2キーが存在してよい。複数の第2キーが存在する場合、複数のベースオフセットが存在し、複数の第2オフセットが存在し、かつ複数の第2長さが存在する。複数のベースオフセットは、複数のキーと一対一の関係にある。複数の第2オフセットは、複数のキーと一対一の関係にある。複数の第2長さは、複数のキーと一対一の関係にある。
【0140】
例えば、第2キーは、パケットだけから得られてよく、又はメタデータだけから得られてもよい。また、第2キーは、パケット及びメタデータから得られてもよい。
【0141】
例えば、第2命令は、ONFによって公開されたOpenFlowスイッチ仕様書1.3.0において規定された命令であってよい。
【0142】
例えば、第2テーブルのエントリは、第2キーと、第2命令とを含む。図8は、第2テーブルのエントリの形式の概略図である。図8中の第2キー801及び第2命令802は、それぞれ、上記の第2キー及び第2命令に対応する。
【0143】
当技術分野において通常の知識を有する者は、この明細書において開示される実施形態として記載された実施例の組合せにより、ユニット及びアルゴリズムステップが、電子的ハードウェアによって、又はコンピュータソフトウェアと電子的ハードウェアとの組合せによって実装され得ることを理解できよう。
【0144】
機能がハードウェア又はソフトウェアのいずれによって実行されるかは、技術的解決策の特定の用途又は設計制約条件によって決まる。当業者は、特定の用途毎に異なる方法を使用して、記載された機能を実施してよく、そのような実施の形態は、本発明の範囲を逸脱するものとみなされてはならない。
【0145】
簡便かつ簡潔な説明を目的として、上記のシステム、装置、及びユニットの詳細な動作プロセスについて、上記の方法の実施形態における対応するプロセスへの参照がなされてよく、その詳細はここでは繰返して説明されない、ということが当業者には明確に理解されよう。
【0146】
本出願によって提供されるいくつかの実施形態において、記載されたシステム、装置、及び方法は、別の方法で実施され得ることを理解されたい。例えば、記載された装置の実施形態は、例示に過ぎない。例えば、ユニットの分割は、論理的機能の分割に過ぎず、実際の実装の際には、他の分割が行われてよい。例えば、複数のユニット又はコンポーネントは、組み合わせられるか、又は別のシステムに一体化されてよく、また、いくつかの特徴は、無視されるか、又は実行されなくてよい。さらに、示された、又は説明された相互接続又は直接的接続又は通信接続は、いくつかのインタフェースを介して実装されてよい。装置又はユニット間の非直接的接続又は通信接続は、電子的、機械的、又はその他の形態で実装されてよい。
【0147】
分離した部分として記載されたユニットは、それが物理的な分離であってもなくてもよく、かつユニットとして記載された部分は、物理的なユニットであってもなくてもよく、1つの場所に位置していてよく、又は複数のネットワークユニットに分散されていてもよい。ユニットの一部又はすべては、実施形態の解決策の目的を達成するための実際の必要性に従って選択されてよい。
【0148】
さらに、本発明の実施形態における機能ユニットは、1つの処理ユニットに一体化されてよく、又は複数のユニットの各々が物理的に単独で存在してもよく、又は2つ以上のユニットが1つのユニットに一体化されてもよい。
【0149】
機能は、独立した製品としてソフトウェア機能ユニットの形態で実装され、販売され、使用される場合、コンピュータ読み取り可能な記憶媒体に格納されてよい。そのような理解に基づき、本発明の技術的解決策は本質的に、又は従来技術に寄与する部分は、又は技術的解決策の部分は、ソフトウェア製品の形態で実装され得る。コンピュータソフトウェア製品は、記憶媒体に格納され、本発明の実施形態として説明された方法のステップのすべて又は一部を実行するように(パーソナルコンピュータ、サーバ、又はネットワークデバイスであってよい)コンピュータデバイスに命令するためのいくつかの命令を含む。上記の記憶媒体は、USBフラッシュドライブ、リムーバブルハードディスク、ROM(Read Only Memory)、RAM(Random Access Memory)、磁気ディスク、又は光学ディスクなど、プログラムコードを格納可能な任意の媒体を含む。
【0150】
以上の記載は、本発明の特定の実施の方法に過ぎず、本発明の保護範囲を限定することを意図したものではない。本発明によって開示される技術的範囲内で当業者が容易に想到する任意の変形例又は置換例は、本発明の保護範囲内にある。したがって、本発明の保護範囲は、特許請求の範囲の保護範囲に従う。
【符号の説明】
【0151】
502 受信回路
504 検索ユニット
506 決定ユニット
508 処理ユニット
601,602 インタフェース回路
603 メモリ
604 検索エンジン
605 命令実行回路
606 レジスタ
607 命令メモリ
608 データメモリ
609 プロセッサ
701 インバウンドポート
702 第1オフセット
703 第1長さ
704 第1テーブルの識別子
801 第2キー
802 第2命令
図1
図2
図3
図4
図5
図6
図7
図8