(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-21
(45)【発行日】2022-07-29
(54)【発明の名称】データ処理方法、機器及びコンピュータ読み取り可能な記憶媒体
(51)【国際特許分類】
H04L 45/74 20220101AFI20220722BHJP
【FI】
H04L45/74
(21)【出願番号】P 2020558055
(86)(22)【出願日】2019-04-03
(86)【国際出願番号】 CN2019081204
(87)【国際公開番号】W WO2019201091
(87)【国際公開日】2019-10-24
【審査請求日】2020-10-19
(31)【優先権主張番号】201810356463.X
(32)【優先日】2018-04-19
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】511151662
【氏名又は名称】中興通訊股▲ふん▼有限公司
【氏名又は名称原語表記】ZTE CORPORATION
【住所又は居所原語表記】ZTE Plaza,Keji Road South,Hi-Tech Industrial Park,Nanshan Shenzhen,Guangdong 518057 China
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】王 延 松
(72)【発明者】
【氏名】胡 方 偉
(72)【発明者】
【氏名】黄 光 平
(72)【発明者】
【氏名】李 卓
(72)【発明者】
【氏名】劉 開 華
【審査官】大石 博見
(56)【参考文献】
【文献】特開2015-162686(JP,A)
【文献】特開2016-082578(JP,A)
【文献】特開2008-011448(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 45/74
(57)【特許請求の範囲】
【請求項1】
情報指向型ネットワークICNにおけるノードに適用されるデータ処理方法であって、
第1のICNパケットに対応する第1のオフセットアドレスを取得するステップと、
前記第1のオフセットアドレスによって指示される記録をクエリし、クエリ結果に従ってデータ処理を行うステップと、を含み、
前記第1のオフセットアドレスによって指示される記録は、前記第1のICNパケットに対応する第2のICNパケットがローカルに記憶されている場合、前記第2のICNパケットの記憶アドレス又は前記第2のICNパケットの転送情報を記憶することに用いられ
、
前記第1のオフセットアドレスによって指示される記録をクエリし、クエリ結果に従ってデータ処理を行う前記ステップは、
前記第1のICNパケットがInterestパケットである場合、前記第1のオフセットアドレスによって指示される記録に、前記第1のICNパケットの要求する前記Dataパケットである前記第2のICNパケットの記憶アドレスが記憶されているか否かをクエリし、前記第1のオフセットアドレスによって指示される記録に前記第2のICNパケットの記憶アドレスが記憶されていると、前記第2のICNパケットの記憶アドレスによって指示される記憶スペースから前記第2のICNパケットを読み取り、前記第1のICNパケットの転送情報に従って前記第2のICNパケットを返送するステップと、
前記第1のICNパケットがDataパケットである場合、前記第1のオフセットアドレスによって指示される記録に、前記第1のICNパケットを要求するInterestパケットである前記第2のICNパケットの転送情報が記憶されているか否かをクエリし、前記第1のオフセットアドレスによって指示される記録に前記第2のICNパケットの転送情報が記憶されていると、前記第2のICNパケットの転送情報に従って、前記第1のICNパケットを返送するステップと、を含む、データ処理方法。
【請求項2】
前記第1のICNパケットが興味Interestパケットであり、前記第1のICNに対応する第2のICNパケットが前記第1のICNパケットの要求するデータDataパケットである場合、前記第1のオフセットアドレスによって指示される記録は、前記第2のICNパケットがローカルに記憶されている場合、前記第2のICNパケットの記憶アドレスを記憶することに用いられ、
前記第1のICNパケットがDataパケットであり、前記第1のICNに対応する第2のICNパケットが前記第1のICNパケットを要求するInterestパケットである場合、前記第1のオフセットアドレスによって指示される記録は、前記第2のICNパケットがローカルに記憶されている場合、前記第2のICNパケットの転送情報を記憶することに用いられる、請求項1に記載の方法。
【請求項3】
前記第1のオフセットアドレスによって指示される記録は、さらに、前記第1のICNパケットがローカルに記憶された後、前記第1のICNパケットの記憶アドレス又は前記第1のICNパケットの転送情報を記憶することに用いられ、
前記第1のICNパケットの転送情報又は記憶アドレスを前記第1のオフセットアドレスによって指示される記録に書き込むステップをさらに含む、請求項1に記載の方法。
【請求項4】
前記第2のICNパケットに対応する第2のオフセットアドレスは前記第1のオフセットアドレスと同じであり、前記第1のオフセットアドレスによって指示される記録は、さらに、前記第1のICNパケットがローカルに記憶された後、前記第1のICNパケットの記憶アドレス又は前記第1のICNパケットの転送情報を記憶することに用いられ、
前記第1のオフセットアドレスによって指示される記録をクエリし、クエリ結果に従ってデータ処理を行う前記ステップは、
前記第1のICNパケットがInterestパケットである場合、前記第1のオフセットアドレスによって指示される記録に前記第2のICNパケットの記憶アドレスが記憶されていないと、前記第1のオフセットアドレスによって指示される記録に記憶された前記第1のICNパケットの転送情報を更新するステップと、
前記第1のICNパケットがDataパケットである場合、前記第1のオフセットアドレスによって指示される記録に前記第2のICNパケットの転送情報が記憶されていると、前記第1のICNパケットをキャッシュし、前記第1のICNパケットの記憶アドレスを前記第1のオフセットアドレスによって指示される記録に書き込むステップとをさらに含む、請求項
1に記載の方法。
【請求項5】
第3のICNパケットに対応する第3のオフセットアドレスを取得し、
前記第3のオフセットアドレスによって指示される記録をクエリし、クエリ結果に従ってデータ処理を行い、
前記第3のオフセットアドレスが前記第1のオフセットアドレスと同じである場合、前記第3のオフセットアドレスによって指示される記録をクエリし、クエリ結果に従ってデータ処理を行う前記ステップは、
前記第1のICNがInterestパケットであり、前記第3のICNパケットが前記第1のICNの要求するDataパケットであり、クエリした結果、前記第3のオフセットアドレスによって指示される記録に前記第1のICNパケットの転送情報が記憶されている場合、クエリした前記第1のICNパケットの転送情報に従って、前記第3のICNパケットを返送するステップと、
前記第1のICNがDataパケットであり、前記第3のICNパケットが前記第1のICNを要求するInterestパケットであり、クエリした結果、前記第1のオフセットアドレスによって指示される記録に前記第1のICNパケットの記憶アドレスが記憶されている場合、クエリした前記第1のICNパケットの記憶アドレスによって指示される記憶スペースから前記第1のICNパケットを読み取り、第3のICNパケットの転送情報に従って、読み取った前記第1のICNパケットを返送するステップとを含む、請求項3又は
4に記載の方法。
【請求項6】
前記第1のICNパケットに対応する第1のオフセットアドレスを取得する前記ステップは、
前記第1のICNパケットがInterestパケットである場合、前記第1のICNパケットの要求する第2のICNパケットの識別子を取得し、前記第1のICNパケットの要求する第2のICNパケットの識別子に従って前記第1のオフセットアドレスを取得するステップと、
前記第1のICNパケットがDataパケットである場合、前記第1のICNパケットの識別子を取得し、前記第1のICNパケットの識別子に従って前記第1のオフセットアドレスを取得するステップと、を含む、請求項1に記載の方法。
【請求項7】
第1のICNパケットに対応する第1のオフセットアドレスを取得する前記ステップは、
位置決め関数に従って、インデックスユニットにおいて前記第1のICNパケットに対応するフラグビットの位置を特定するステップと、
前記第1のICNパケットに対応するフラグビットの位置に従って、前記第1のオフセットアドレスを決定するステップと、を含み、
前記インデックスユニットにおけるフラグビットの値は、フラグビットに対応するInterestパケット及び/又はDataパケットがローカルに記憶されているか否かを示す、請求項1~
4、
6のいずれか1項に記載の方法。
【請求項8】
第1のICNパケットに対応する第1のオフセットアドレスを取得する前記ステップの前に、
前記第1のICNパケットを取得するステップと、
前記第1のICNパケット及び/又は前記第1のICNパケットに対応する前記第2のICNパケットがローカルに記憶されているか否かを記録する、前記第1のICNパケットの識別子とマッチングするインデックスエントリが存在するか否かを判定するステップと、
前記第1のICNパケットの識別子とマッチングするインデックスエントリが存在する場合、前記第1のICNパケットに対応する第1のオフセットアドレスを取得するステップを実行するステップと、を含む、請求項1~
4、
6のいずれか1項に記載の方法。
【請求項9】
前記第1のICNパケットがDataパケットであり、前記第2のICNパケットがInterestパケットである場合、
前記第1のICNパケットの識別子とマッチングするインデックスエントリが存在しない場合、前記第1のICNパケットを捨てるステップをさらに含む、請求項
8に記載の方法。
【請求項10】
前記第1のICNパケットがDataパケットであり、前記第2のICNパケットがInterestパケットである場合、前記第1のICNパケットの識別子とマッチングするインデックスエントリが存在するか否かを判定する前記ステップは、
位置決め関数に従って、インデックスユニットにおいて前記第1のICNパケットに対応するフラグビットの位置を特定し、前記インデックスユニットにおけるフラグビットの値が、フラグビットに対応するDataパケットがローカルに記憶されているか否かを示すステップと、
前記第1のICNパケットに対応するフラグビットの値をクエリするステップと、
前記第1のICNパケットに対応するフラグビットの値が有効である場合、前記第1のICNパケットの識別子とマッチングするインデックスエントリが存在すると判定するステップと、を含む、請求項
8に記載の方法。
【請求項11】
情報指向型ネットワークICNにおけるノードに適用されるデータ処理方法であって、
興味Interestパケット又はデータDataパケットである第1のICNパケットを取得するステップと、
位置決め関数に従って、インデックスユニットにおいて前記第1のICNパケットに対応するフラグビットの位置を特定するステップと、
前記第1のICNパケットに対応するフラグビットの位置に従って、前記第1のICNパケットに対応するフラグビットの値についてクエリ又は設定を行うステップと、を含み、
前記インデックスユニットにおけるフラグビットの値は、フラグビットに対応するInterestパケット及び/又はDataパケットがローカルに記憶されているか否かを示す、データ処理方法。
【請求項12】
位置決め関数に従って、インデックスユニットにおいて前記第1のICNパケットに対応するフラグビットの位置を特定する前記ステップは、
前記位置決め関数に従って、前記第1のICNパケットが前記インデックスユニットにマッピングする非圧縮フラグビットの位置を特定するステップと、
前記第1のICNパケットに対応する非圧縮フラグビットの位置に対して圧縮センシングを行い、前記第1のICNパケットに対応する圧縮フラグビットの位置を得るステップと、
前記第1のICNパケットに対応する圧縮フラグビットの位置を前記第1のICNに対応するフラグビットの位置とするステップと、を含み、
前記インデックスユニットにおける非圧縮フラグビットの総数が、前記インデックスユニットにおける圧縮フラグビットの総数よりも大きい、請求項
11に記載の方法。
【請求項13】
前記第1のICNパケットに対応するフラグビットの位置に従って、前記第1のICNパケットに対応するフラグビットの値について設定を行う場合、前記第1のICNパケットに対応するフラグビットの値について設定を行う前記ステップは、
前記第1のICNパケットがローカルに記憶されている場合、前記第1のICNパケットに対応するフラグビットの値を有効と設定するステップを含み、
前記第1のICNパケットに対応するフラグビットの値を有効と設定した後、前記方法は、前記インデックスユニットをほかのノードへ送信するステップをさらに含む、請求項
11又は
12に記載の方法。
【請求項14】
位置決め関数に従って、インデックスユニットにおいて前記第1のICNパケットに対応するフラグビットの位置を特定する前記ステップは、
前記第1のICNパケットが第1のDataパケットである場合、前記第1のDataパケットの識別子及び前記位置決め関数に従って、前記第1のICNパケットに対応するフラグビットの位置を特定するステップと、
前記第1のICNパケットが第2のInterestパケットであり、前記第2のInterestパケットの要求するDataパケットが第2のDataパケットである場合、前記第2のDataパケットの識別子及び前記位置決め関数に従って、前記第1のICNパケットに対応するフラグビットの位置を特定するステップと、を含む、請求項
11又は
12に記載の方法。
【請求項15】
前記第1のICNパケットに対応するフラグビットの位置に従って、前記第1のICNパケットに対応するフラグビットの値についてクエリ又は設定を行う前記ステップの後、
前記第1のICNパケットに対応するフラグビットの位置に従って、前記第1のICNパケットに対応する第1のオフセットアドレスを決定し、前記第1のオフセットアドレスによって指示される記録は、前記第1のICNパケットに対応する第2のICNパケットの転送情報又は記憶アドレスを記憶することに用いられるステップと、
前記第1のICNパケットに対応する第1のオフセットアドレスによって指示される記録をクエリし、クエリ結果に従ってデータ処理を行うステップと、をさらに含む、請求項
11に記載の方法。
【請求項16】
前記第1のICNパケットに対応するフラグビットの位置に従って、前記第1のICNパケットに対応する第1のオフセットアドレスを決定する前記ステップの前に、
前記第1のICNパケットに対応する第2のICNパケットのフラグビットが有効であるか否かを決定するステップと、
前記第1のICNパケットに対応する第2のICNパケットのフラグビットが有効である場合、前記第1のICNパケットに対応するフラグビットの位置に従って、前記第1のICNパケットに対応する第1のオフセットアドレスを決定するステップを実行するステップと、をさらに含む、請求項
15に記載の方法。
【請求項17】
位置決め関数に従って、インデックスユニットにおいて前記第1のICNパケットに対応するフラグビットの位置を特定する前記ステップの後、
第3のICNパケットを取得するステップと、
前記位置決め関数に従って、前記インデックスユニットにおいて前記第3のICNパケットに対応するフラグビットの位置を特定するステップと、
前記第3のICNパケットに対応するフラグビットの値をクエリするステップと、をさらに含む、請求項
15に記載の方法。
【請求項18】
前記位置決め関数はK個のハッシュ関数であり、前記インデックスユニットはM個のフラグビットを含み、ここで、MとKは1以上の整数であり、且つMはK以上であり、
いずれか1つのICNパケットについて、前記位置決め関数に従って、インデックスユニットにおいてICNパケットに対応するフラグビットの値を決定するステップは、
前記ICNパケット及び前記位置決め関数に従って、前記インデックスユニットのM個のフラグビットのうち前記ICNパケットに対応するK個のフラグビットの値を決定するステップを含む、請求項
11又は
12に記載の方法。
【請求項19】
情報指向型ネットワークICNに適用されるデータ処理機器であって、プロセッサと、プロセッサ上で実行可能なコンピュータプログラムを記憶するためのメモリと、を備え、
前記プロセッサは、前記コンピュータプログラムを実行すると、請求項1~
10のいずれか1項に記載のデータ処理方法のステップ、及び/又は、請求項11~
18のいずれか1項に記載のデータ処理方法のステップを実行する、データ処理機器。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、2018年4月19日に提出された、発明の名称が「データ処理方法、機器及びコンピュータ読み取り可能な記憶媒体」である中国特許出願CN201810356463.Xの優先権を主張し、その全内容が引用により本明細書に組み込まれている。
【0002】
本発明は、通信技術分野に関し、特にデータ処理方法、機器、及びコンピュータ読み取り可能な記憶媒体に関する。
【背景技術】
【0003】
情報指向型ネットワーク(Information-Centric Networking、ICN)は新しいインタネット通信システムアーキテクチャである。データコンテンツを中核とし、ユーザーのニーズをガイドとする新型インタネット通信モデルとしてのICNは、TCP/IP技術に基づく従来のネットワークアーキテクチャを完全に変化させる。このシステムアーキテクチャは、識別データに基づいて通信モデルを構築し、コンテンツ要求元によって駆動される通信モードを採用することにより、IPパケットのカプセル化構造及びアドレッシングモードを根本的に変更するものであり、モバイル通信機器のハンドオーバーに役立ち、通信遅延を低減させ、高速モバイル通信に対応できないこと、IPアドレス空間の枯渇、ネットワーク伝送効率の低下、満足のいかないセキュリティなど、従来のインタネットアーキテクチャにおける問題を解決する。
【0004】
ICNの転送プレーンで処理されるさまざまなデータには、興味(Interest)パケットとデータ(Data)パケットという2種のICNパケットが含まれ、ICNの転送プレーンは、Interestパケットの要求するDataパケットがあるか否かを検索するか、又は、Dataパケットを要求するInterestがあるか否かを検索する必要がある。
【0005】
現在、ICNネットワークでは、ICNパケットのクエリ効率が低い。
【発明の概要】
【発明が解決しようとする課題】
【0006】
上記技術的課題を解決するために、本発明の実施例では、従来技術によるICNネットワークではICNパケットのクエリ効率が低いという問題を解決するために、データ処理方法、機器及びコンピュータ読み取り可能な記憶媒体を提供することが期待される。
【課題を解決するための手段】
【0007】
上記目的を達成させるために、本発明の実施例の技術案は以下のように実現される。
【0008】
第1の態様によれば、本発明は、情報指向型ネットワークICNにおけるノードに適用されるデータ処理方法であって、第1のICNパケットに対応する第1のオフセットアドレスを取得するステップと、前記第1のオフセットアドレスによって指示される記録をクエリし、クエリ結果に従ってデータ処理を行うステップと、を含み、前記第1のオフセットアドレスによって指示される記録は、前記第1のICNパケットに対応する第2のICNパケットがローカルに記憶されている場合、前記第2のICNパケットの記憶アドレス又は前記第2のICNパケットの転送情報を記憶することに用いられる、データ処理方法を提供する。
【0009】
第2の態様によれば、本発明は、情報指向型ネットワークICNにおけるノードに適用されるデータ処理方法であって、興味Interestパケット又はデータDataパケットである第1のICNパケットを取得するステップと、位置決め関数に従って、インデックスユニットにおいて前記第1のICNパケットに対応するフラグビットの位置を特定するステップと、前記第1のICNパケットに対応するフラグビットの位置に従って、前記第1のICNパケットに対応するフラグビットの値についてクエリ又は設定を行うステップと、を含み、前記インデックスユニットにおけるフラグビットの値は、フラグビットに対応するInterestパケット及び/又はDataパケットがローカルに記憶されているか否かを示す、データ処理方法を提供する。
【0010】
第3の態様によれば、本発明は、プロセッサと、プロセッサ上で実行可能なコンピュータプログラムを記憶するためのメモリと、を備えるデータ処理機器であって、前記プロセッサは、前記コンピュータプログラムを実行すると、第1の態様のいずれか1項に記載のデータ処理方法のステップ、又は、第2の態様のいずれか1項に記載のデータ処理方法のステップを実行するデータ処理機器を提供する。
【0011】
第4の態様によれば、本発明は、データ処理プログラムが記憶されており、前記データ処理プログラムは、プロセッサにより実行されると、第1の態様のいずれか1項に記載のデータ処理方法のステップを実現し、又は、前記データ処理プログラムは、プロセッサにより実行されると、第2の態様のいずれか1項に記載のデータ処理方法のステップを実現するコンピュータ読み取り可能な記憶媒体を提供する。
【発明の効果】
【0012】
本発明の実施例では、本発明の実施例によるデータ処理方法は、第1のICNパケットに対応する第1のオフセットアドレスを取得し、第1のオフセットアドレスによって指示される記録をクエリし、クエリ結果に従ってデータ処理を行い、第1のオフセットアドレスによって指示される記録は、第1のICNパケットに対応する第2のICNパケットがローカルに記憶されている場合、第2のICNパケットの記憶アドレス又は第2のICNパケットの転送情報を記憶することに用いられ、それによって、ICNネットワークのICNパケットのクエリ効率を向上させることができる。
【図面の簡単な説明】
【0013】
【
図1A】ICN転送プレーンがInterestパケットを受信した場合の作動メカニズムの模式図である。
【
図1B】ICN転送プレーンがInterestパケットを受信した場合の検索順序の模式図である。
【
図2A】ICN転送プレーンがDataパケットを受信した場合の作動メカニズムの模式図である。
【
図2B】ICN転送プレーンがDataパケットを受信した場合の検索順序の模式図である。
【
図3】本発明の実施例データ処理方法の一例の模式的フローチャート一である。
【
図4A】本発明の実施例のノードの一例の構造模式図である。
【
図4B】本発明の実施例のノードの別の構造模式図である。
【
図5】本発明の実施例におけるデータ処理方法のインタラクションプロセスの一例の模式図である。
【
図6】本発明の実施例におけるデータ処理方法のインタラクションプロセスの別の模式図である。
【
図7A】本発明の実施例におけるデータ処理方法のインタラクションプロセスのまた別の模式図である。
【
図7B】本発明の実施例におけるデータ処理方法のインタラクションプロセスのさらに別の模式図である。
【
図7C】本発明の実施例におけるデータ処理方法のインタラクションプロセスのさらなる模式図である。
【
図8】本発明の実施例におけるデータ処理方法の別の模式的フローチャートである。
【
図9】本発明の実施例におけるデータ処理方法のまた別の模式的フローチャートである。
【
図10】本発明の実施例におけるデータ処理機器の構造模式図である。
【発明を実施するための形態】
【0014】
以下、本発明の実施例における図面を参照しながら、本発明の実施例の技術案を明瞭かつ完全に説明する。
【0015】
本発明の実施例による技術案は、ICNにおける転送プレーンのルータの構造設計の分野に適用でき、本発明の実施例によるデータ処理方法を説明する前に、本発明の実施例によるデータ処理方法の適用シナリオを一般的に説明する。
【0016】
TCP/IP技術に基づくネットワーク通信モデルに固有の欠点を根本的に解決するために、情報指向型ネットワークICNの転送プレーンには、コンテンツストア(Content Store、CS)、ペンディングインタレストテーブル(Pending Interest Table、PIT)及び転送表(Forwarding Information Base、FIB)という3種類のデータ構造が配置され、その中でも、PITは、たとえばInterestパケットの要求するDataパケットの識別子、このDataパケットを要求する要求元ノードの情報などを含むInterestパケットの転送情報を記憶することに用いられる。CSはDataパケットを記憶することに用いられる。ICNは、この3種類のデータ構造を利用してコンテンツ共有とインテリジェント転送を実現し、ネットワーク負荷を低下させ、ICNネットワークでのデータの伝送速度を高める。
【0017】
転送プレーンではCS及びPITに関する場合の作動メカニズムが極めて類似しており、
図1AはICN転送プレーンがInterestパケットを受信した場合の作動メカニズムの模式図であり、
図1BはICN転送プレーンがInterestパケットを受信した場合の検索順序の模式図であり、
図2AはICN転送プレーンがDataパケットを受信した場合の作動メカニズムの模式図であり、
図2BはICN転送プレーンがDataパケットを受信した場合の検索順序の模式図である。
【0018】
図1Aに示すように、Interestパケットが転送プレーンポートに到着した後、転送プレーンによる処理ステップには、ステップS101~ステップS106を含み得る。
【0019】
ステップS101、Interestパケットを受信する。
【0020】
ステップS102、CSを検索し、CSに該Interestパケットの要求するDataパケットが記憶されているか否かを判定し、記憶されている場合、S103を実行し、記憶されていない場合、S104を実行する。
【0021】
ステップS103、Interestパケットの転送情報に従って、該Interestパケットに対応するDataパケットを要求元ノードに送信する。
【0022】
ステップS104、PITを検索し、PITに該Interestパケットが記憶されているか否かを判定する。
【0023】
ステップS105、該Interestパケットの転送情報をPITに追加する。
【0024】
ステップS106、PITにおけるInterestパケットの転送情報を更新する。
【0025】
図1Bに示すように、転送プレーンではCS及びPITに関する場合の作動メカニズムについては、Interestパケットが転送プレーンのあるポートに到達すると、転送プレーンは、まずS102aのようにCSメモリを検索し、次に、S104aのようにPIT表を検索する。
【0026】
図2Aに示すように、Dataパケットが転送プレーンのポートに到着すると、転送プレーンによる処理ステップには、ステップS201~ステップS205を含み得る。
【0027】
ステップS201、Dataパケットを受信する。
【0028】
ステップS202、PITを検索し、PITに該Dataを要求するInterestパケットが記憶されているか否かを判定し、記憶されている場合、S203を実行し、記憶されていない場合、S205を実行する。
【0029】
ステップS203、Interestパケットの転送情報に従って、該Dataパケットを要求元ノードに送信する。
【0030】
ステップS204、CSに該Dataパケットをキャッシュする。
【0031】
ステップS205、該Dataパケットを捨てる。
【0032】
図1Bに示すように、転送プレーンではCS及びPITに関する場合の作動メカニズムについては、Dataパケットが転送プレーンに到着すると、転送プレーンは、まずPIT表を検索し、次にDataパケットをCSメモリにキャッシュする。
【0033】
このような繰り返し検索により検索の正確性が確保される反面、繰り返し検索により転送プレーンの作動性能が損なわれる。それに対して、本発明の実施例による技術案は、ICNの転送プレーンの作動中に複数のテーブルエントリにおいてデータを繰り返して検索することによる問題を解決できる。
【0034】
以下、本発明の実施例によるデータ処理方法を詳しく説明する。本発明の実施例では、InterestパケットとDataパケットはともにICNパケットと呼ぶことができ、本発明の実施例による技術案は、ノードがInterestパケット又はDataパケットのうちのいずれかのICNパケットを受信した後、対応するデータ処理を行うシナリオに適用できる。
【0035】
実施例1
本発明の実施例はデータ処理方法を提供し、本発明の実施例の実行主体はICNにおけるノードであり得る。一例として、ノードはルータである。本発明の実施例は、ノードが第1のICNパケットを受信した後、第1のICNパケットに対応する第2のICNパケットの関連情報を取得するシナリオに適用できる。
図3は、本発明の実施例におけるデータ処理方法の一例の模式的フローチャートである。
図3に示すように、本発明の実施例のステップには、ステップS301、ステップS302を含み得る。
【0036】
ステップS301、第1のICNパケットに対応する第1のオフセットアドレスを取得する。
【0037】
ステップS302、第1のICNパケットに対応する第1のオフセットアドレスによって指示される記録をクエリし、クエリ結果に従ってデータ処理を行い、第1のオフセットアドレスによって指示される記録は、第1のICNパケットに対応する第2のICNパケットがローカルに記憶されている場合、第2のICNパケットの記憶アドレス又は第2のICNパケットの転送情報を記憶することに用いられ得る。
【0038】
本発明の実施例では、まず、第1のICNパケットに対応する第1のオフセットアドレスを取得し、次に、第1のICNパケットに対応する第1のオフセットアドレスによって指示される記録をクエリし、クエリ結果に従ってデータ処理を行い、第1のオフセットアドレスによって指示される記録は、第1のICNパケットに対応する第2のICNパケットがローカルに記憶されている場合、第2のICNパケットの記憶アドレス又は第2のICNパケットの転送情報を記憶することに用いられ得、このことから分かるように、オフセットアドレスとICNパケットはマッピング関係を持っており、オフセットアドレスによって指示される記録は転送情報又は記憶アドレスであり、このようにして、第1のICNパケットがInterestパケット又はDataパケットであり、第2のICNパケットがDataパケット又はInterestパケットである場合、第1のICNパケットに基づいて第1のオフセットアドレスを見つけるだけでよく、それによって、Interestパケット又はDataパケットを受信する場合のICNにおけるノードの繰り返し検索に起因する問題を回避し、ノードの検索効率を向上させる。
【0039】
本発明の実施例では、第1のICNパケットに対応するオフセットアドレスを取得する上記ステップの前に、第1のICNパケットを受信するステップを含んでもよい。本発明の実施例では、第1のICNパケットはInterestパケットであってもよく、Dataパケットであってもよく、第1のICNパケットがInterestパケットである場合、第1のICNパケットに対応する第2のICNパケットは第1のICNパケットの要求するDataパケットであり得る。第1のICNパケットがDataパケットである場合、第1のICNパケットに対応する第2のICNパケットは第1のICNパケットを要求するInterestパケットであり得る。
【0040】
本発明の実施例では、前記第1のオフセットアドレスによって指示される記録をクエリし、クエリ結果に従ってデータ処理を行う上記ステップは、
前記第1のICNパケットがInterestパケットである場合、前記第1のオフセットアドレスによって指示される記録に、前記第1のICNパケットの要求する前記Dataパケットである前記第2のICNパケットの記憶アドレスが記憶されているか否かをクエリし、前記第1のオフセットアドレスによって指示される記録に前記第2のICNパケットの記憶アドレスが記憶されていると、前記第2のICNパケットの記憶アドレスによって指示される記憶スペースから前記第2のICNパケットを読み取り、前記第1のICNパケットの転送情報に従って前記第2のICNパケットを返送するステップ、及び/又は、前記第1のICNパケットがDataパケットである場合、前記第1のオフセットアドレスによって指示される記録に、前記第1のICNパケットを要求するInterestパケットである前記第2のICNパケットの転送情報が記憶されているか否かをクエリし、前記第1のオフセットアドレスによって指示される記録に前記第2のICNパケットの転送情報が記憶されていると、前記第2のICNパケットの転送情報に従って、前記第1のICNパケットを返送するステップを含み得る。
【0041】
本発明の実施例では、第1のICNパケットに対応する第1のオフセットアドレスを取得するステップは、以下の実施形態を取ることができる。第1のオフセットアドレスを取得する一実施形態では、第1のICNパケットがInterestパケットである場合、第1のICNパケットに対応する第1のオフセットアドレスを取得する上記ステップは、第1のICNパケットの要求するDataパケットの識別子を取得するステップと、第1のICNパケットの要求するDataパケットの識別子に従って第1のオフセットアドレスを取得するステップとを含み得る。第1のオフセットアドレスを取得する別の実施形態では、第1のICNパケットがDataパケットである場合、第1のICNパケットに対応する第1のオフセットアドレスを取得する上記ステップは、第1のICNパケットの識別子を取得するステップと、第1のICNパケットの識別子に従って第1のオフセットアドレスを取得するステップと、を含み得る。本発明の別の実施例では、第1のオフセットアドレスを取得する上記の2種類の実施形態を組み合わせて使用してもよい。なお、Interestパケットの転送情報には、要求するDataパケットの識別子が含まれてもよく、Dataパケットの識別子はDataパケット名であってもよい。一例として、Dataパケット名は「/ndn/UA/maps」などである。
【0042】
本発明の実施例では、第1のオフセットアドレスによって指示される記録は、記録表中の記録であり得、たとえば、第1のオフセットアドレスは記録表中の各記録の記憶スペースのアドレス識別子である。ノードは、第1のICNパケットを受信すると、第1のICNパケットに対応する第1のオフセットアドレスを取得することにより、第1のオフセットアドレスクエリ記録表中の記録に従って、第1のICNパケットに対応する第2のICNパケットの関連情報を把握することができ、それによって、ノードの検索効率を向上させる。
【0043】
記録表の一実施形態の例では、第1のICNパケットがInterestパケットであり、第2のICNパケットが該Interestパケットの要求するDataパケットである場合、第1のICNパケットに対応する第1のオフセットアドレスによって指示される記録は、第2のICNパケットがローカルに記憶されている場合、第2のICNパケットの記憶アドレスを記憶することに用いられ得る。例を挙げると、Interest1に対応する第1のオフセットアドレスがオフセットアドレス11であり、Interest2に対応する第1のオフセットアドレスがオフセットアドレス12であり、Interest3に対応する第1のオフセットアドレスがオフセットアドレス13であり、Interest1の要求するDataパケットがData1であり、Interest2の要求するDataパケットがData2であり、Interest3の要求するDataパケットがData3である。表1は記録表の例1である。
【0044】
【0045】
その中でも、オフセットアドレス11によって指示される記録には、Data1の記憶アドレスが記憶され、オフセットアドレス12によって指示される記録には、Data2の記憶アドレスが記憶されていてもよく、現在本ノードにInterest3に対応するData3が記憶されていないので、現在このオフセットアドレス13によって指示される記録にData3の記憶アドレスが記憶されていない可能性があり、本発明の別の実施例では、本ノードは、Data3を受信してCSにキャッシュする場合、Data3のCSでの記憶アドレスを記録表中のオフセットアドレス13によって指示される記録に記憶することができる。このような実施形態によれば、Interestパケットを受信する場合、繰り返し検索に起因する問題を回避し、ノードの検索効率を向上させることができる。
【0046】
記録表の別の実施形態の例では、第1のICNパケットがDataパケットであり、第2のICNパケットが第1のICNパケットを要求するInterestパケットである場合、第1のオフセットアドレスによって指示される記録は、第2のICNパケットがローカルに記憶されている場合、第2のICNパケットの転送情報を記憶することに用いられ得る。例を挙げると、Data1に対応する第1のオフセットアドレスがオフセットアドレス21であり、Data2に対応する第1のオフセットアドレスがオフセットアドレス22であり、Data3に対応する第1のオフセットアドレスがオフセットアドレス23であり、Data1を要求するInterestパケットがInterest1であり、Data2を要求するInterestパケットがInterest2であり、Data3を要求するInterestパケットがInterest3である。表2は記録表の例2である。
【0047】
【0048】
その中でも、オフセットアドレス21によって指示される記録には、Interest1の転送情報が記憶され、オフセットアドレス22によって指示される記録には、Interest2の転送情報が記憶されており、したがって、オフセットアドレス23によって指示される記録にInterest3の転送情報が記憶されていないと、現在ノードがInterest3を受信していないことを示す。本発明の別の実施例では、本ノードは、Interest3を受信すると、Interest3の転送情報を記録表中のオフセットアドレス13によって指示される記録に記憶することができる。このような実施形態によれば、Dataパケットを受信する場合、繰り返し検索に起因する問題を回避し、ノードの検索効率を向上させることができる。
【0049】
本発明の別の実施例では、第1のICNパケットに対応する第1のオフセットアドレスと第2のICNパケットに対応する第2のオフセットアドレスは同じであってもよく、異なってもよい。第1のICNパケットに対応する第1のオフセットアドレスと第2のICNパケットに対応する第2のオフセットアドレスが同じである場合、第1のICNパケットに対応する第1のオフセットアドレスによって指示される記録は、実際には、前記第1のICNパケットがローカルに記憶された後、前記第1のICNパケットの記憶アドレス又は前記第1のICNパケットの転送情報を記憶することにも用いられ得る。例を挙げると、記録表は以下の実施形態を取ることもできる。
【0050】
第1のICNパケットがInterestパケットであり、第2のICNパケットがDataパケットである場合、第1のオフセットアドレスによって指示される記録は、第2のICNパケットがローカルに記憶されている場合、第2のICNパケットの記憶アドレスを記憶すること、及び、第1のICNパケットがローカルに記憶されている場合、第1のICNパケットの転送情報を記憶することに用いられ得る。
【0051】
第1のICNパケットがDataパケットであり、第2のICNパケットがInterestパケットである場合、第1のオフセットアドレスによって指示される記録は、第2のICNパケットがローカルに記憶されている場合、第2のICNパケットの転送情報を記憶すること、及び、第1のICNパケットがローカルに記憶されている場合、第1のICNパケットの記憶アドレスを記憶することに用いられ得る。
【0052】
一例として、Interest1とData1は同じ第1のオフセットアドレス、即ちオフセットアドレス11に対応し、Interest2とData2は同じ第1のオフセットアドレス、即ちオフセットアドレス12に対応し、Interest3とData3は同じ第1のオフセットアドレス、即ちオフセットアドレス13に対応することができる。表3は記録表の例3であり、現在Data2もInterest3の転送情報も記憶されていない場合、記録表に記録されたコンテンツが表3に示されるとおりである。
【0053】
【0054】
なお、表3に示す記録表のように、Interestパケットに対応するDataパケットの関連情報はすべてInterestパケットに対応するオフセットアドレスによって指示される記録に記憶され、また、Dataパケットに対応するInterestパケットの関連情報もすべてDataパケットに対応するオフセットアドレスによって指示される記録に記憶されている。したがって、ノードは、Interestパケット又はDataパケットのうちのいずれかの第1のICNパケットを受信すると、同一記録表を検索することで、対応する第2のICNパケットの関連情報、たとえば転送情報、記憶アドレス又は第2のICNパケットが記憶されているかなどを取得することができる。このような実施形態によれば、InterestパケットとDataパケットのいずれを受信する場合にも、繰り返し検索に起因する問題を回避し、ノードの検索効率を向上させることができる。
【0055】
本発明の別の実施例では、第1のオフセットアドレスを取得した後、本発明の実施例のステップは、前記第1のICNパケットの転送情報又は記憶アドレスを前記第1のオフセットアドレスによって指示される記録に書き込むステップをさらに含み得る。
【0056】
例を挙げると、第1のオフセットアドレスによって指示される記録をクエリし、クエリ結果に従ってデータ処理を行う上記ステップは、前記第1のICNパケットがInterestパケットである場合、前記第1のオフセットアドレスによって指示される記録に前記第2のICNパケットの記憶アドレスが記憶されていないと、前記第1のオフセットアドレスによって指示される記録に記憶された前記第1のICNパケットの転送情報を更新するステップ、及び/又は、前記第1のICNパケットがDataパケットである場合、前記第1のオフセットアドレスによって指示される記録に前記第2のICNパケットの転送情報が記憶されていると、前記第1のICNパケットをキャッシュし、前記第1のICNパケットの記憶アドレスを前記第1のオフセットアドレスによって指示される記録に書き込むステップをさらに含み得る。
【0057】
本発明の実施例では、第1のICNパケットに対応する第1のオフセットアドレスを取得するさらなる一実施形態として、第1のオフセットアドレスを取得する上記の2種の実施形態を組み合わせて使用することができる。第1のオフセットアドレスを取得する上記実施形態を組み合わせた実施形態によって、第1のICNパケットに対応する第1のオフセットアドレスを取得すると、第1のICNパケットと第2のICNパケットが同じオフセットアドレスに対応することを確保することができる。つまり、上記組み合わせ方式で決定される第1のICNパケットに対応するオフセットアドレスと第1のICNパケットに対応する第2のICNパケットに対応する第2のオフセットアドレスは同じである。
【0058】
本発明の実施例では、上記例示的な組み合わせで第1のオフセットアドレスを決定し、第1のICNパケットと第1のICNパケットに対応する第2のICNパケットが同じ第1のオフセットアドレスに対応するため、ノードは、Interestパケット又はDataパケットのうちのいずれかの第1のICNパケットを受信すると、同一記録表を検索することで、対応する第2のICNパケットを取得することができる。
【0059】
本発明の別の実施例では、第1のICNパケットに対応する第1のオフセットアドレスを取得し、第1のICNパケットの転送情報又は記憶アドレスを第1のオフセットアドレスによって指示される記録に記憶した後、前記方法は、
第3のICNパケットに対応する第3のオフセットアドレスを取得するステップと、前記第3のオフセットアドレスによって指示される記録をクエリし、クエリ結果に従ってデータ処理を行うステップと、をさらに含み得る。
【0060】
前記第3のオフセットアドレスが前記第1のオフセットアドレスと同じである場合、前記第3のオフセットアドレスによって指示される記録をクエリし、クエリ結果に従ってデータ処理を行う前記ステップは、前記第1のICNがInterestパケットであり、前記第3のICNパケットが前記第1のICNの要求するDataパケットであり、クエリした結果、前記第3のオフセットアドレスによって指示される記録に前記第1のICNパケットの転送情報が記憶されている場合、クエリした前記第1のICNパケットの転送情報に従って、前記第3のICNパケットを返送するステップと、前記第1のICNがDataパケットであり、前記第3のICNパケットが前記第1のICNを要求するInterestパケットであり、クエリした結果、前記第1のオフセットアドレスによって指示される記録に前記第1のICNパケットの記憶アドレスが記憶されている場合、クエリした前記第1のICNパケットの記憶アドレスによって指示される記憶スペースから前記第1のICNパケットを読み取り、第3のICNパケットの転送情報に従って、読み取った前記第1のICNパケットを返送するステップと、を含み得る。
【0061】
本発明の別の実施例では、ステップS301~ステップS302の方法は、ノードのオフチップメモリにより実行することができ、関連する技術案の詳細については、ほかの実施例の説明を参照すればよい。
【0062】
これに加えて、本発明の実施例による技術案では、第1のオフセットアドレスによって指示される記録は、第1のICNパケットに対応する第2のICNパケットがローカルに記憶されている場合、第2のICNパケットの記憶アドレス又は第2のICNパケットの転送情報を記憶することに用いられるとともに、第1のICNパケットがローカルに記憶された後、第1のICNパケットの記憶アドレス又は第1のICNパケットの転送情報を記憶することに用いられ、それによって、InterestパケットとDataパケットのいずれを受信する場合にも、ICNにおけるノードの繰り返し検索に起因する問題を回避し、さらにノードの検索効率を向上させることができる。
【0063】
実施例2
上記実施例に記載のいずれか1つの方法に基づいて、本発明の実施例は、第1のICNパケットに対応する第1のオフセットアドレスを取得する一実施形態をさらに提供する。本発明の実施例では、予め設定された位置決め関数を利用して、第1のICNパケットに対応する第1のオフセットアドレスを取得することもできる。位置決め関数は、インデックスユニットにおける入力されたICNパケットに対応するフラグビットの位置の特定に用いられ得る。
【0064】
例を挙げると、第1のICNパケットに対応する第1のオフセットアドレスを取得するステップは、位置決め関数に従って、インデックスユニットにおいて第1のICNパケットに対応するフラグビットの位置を特定するステップ(1)と、第1のICNパケットに対応するフラグビットの位置に従って、第1のICNパケットに対応する第1のオフセットアドレスを決定するステップ(2)と、を含み得る。
【0065】
一例として、位置決め関数はK個のハッシュ関数であり、インデックスユニットはM個のフラグビットを含み、ノードは、第1のICNパケットを受信すると、第1のICNパケットの識別子をそれぞれK個の位置決め関数に入力することで、K個の位置を得る。この場合、第1のオフセットアドレスはMビットのアドレスであり、第1のICNパケットの識別子に従って得られたK個の位置のフラグビットの値はすべて1に設定され、K個の位置以外のフラグビットの値は0に設定される。
【0066】
たとえば、Kが3、Mが6である場合、第1のICNパケットに対応するフラグビットは2、4、5であり得る。この場合、第1のオフセットアドレスは010110であってもよく、ここで、2桁目、4桁目、5桁目は1であり、1桁目、3桁目、6桁目は0である。
【0067】
本発明の別の実施例では、インデックスユニットにおけるフラグビットの値は、フラグビットに対応するInterestパケット及び/又はDataパケットがローカルに記憶されているか否かを示す。
【0068】
実施例3
本発明の実施例は、ICNノードの構造をさらに提供する。該構造は、上記のいずれかの実施例によるデータ処理方法を実行することができる。
図4Aは本発明の実施例ノードの一例の構造模式図である。ノードには、整合圧縮型興味キャッシュ400(Pending Interest Table and Content Store via Compressed Mapping Bloom filter、CMaPIT&CS)が設置されてもよく、CMaPIT&CSは、処理能力を有するメモリとしてもよく、CMaPIT&CSは複合記憶構造としても知られており、オンチップメモリ41(On-chip memory)とオフチップメモリ(off-chip memory)42を含む。本発明の別の実施例では、オンチップメモリ41としては高速メモリ、オフチップメモリとしては低速メモリが使用される。
【0069】
本発明の実施例では、データの検索及びインデキシングを行うために、オンチップメモリ41には、圧縮型マッピングブルームフィルタ (Compressed Mapping Bloom filter、CoMBF)411が配置され、圧縮型マッピングブルームフィルタに記憶されたデータはインデックスユニットとも呼ばれる。CoMBF 411は、mビットを含む圧縮ブルームフィルタ(Compressed Bloom filter)4111、及び、jビットを含むマッピング配列(Mapping Array、MA)4112の2つの部分から構成され、MA 4112とCompressed Bloom filter 4111の構造は同じであってもよく、ともにビット配列の形式を用いることができる。本発明の別の実施例では、CoMBFは、ブルームフィルタ(Bloom filter)4113、圧縮ユニット(Compresses Unit)及びMA 4112の3つの部分から構成されてもよく、
図4Bは本発明の実施例のノードの別の構造模式図である。圧縮ユニットは、フラグビットに対するセンシング圧縮に利用できる。
【0070】
本発明の実施例では、データの更新及び削除のために、オフチップメモリ42には、CoMBF 4111に対応するカウントブルームフィルタ(counting bloom filter、CBF)421のデータ構造が設定され得る。また、オフチップメモリ42には、PITの転送情報及びDataパケットのCSメモリでの格納位置を格納するためのパケットストア(Packet Store)422が設置され、それにより、PIT表のインデックス構造とCSメモリインデックス構造が統合される。本発明の別の実施例では、Packet Storeはスタティックメモリであり得る。本発明の別の実施例では、Packet Store 222はPIT 4221とCS 4222を記憶し得る。
【0071】
本発明の実施例では、Packet StoreはPITとCS中のデータを記憶することに用いられ、第1のオフセットアドレスによって指示される記録はPIT中の記録である。
【0072】
本発明の実施例では、CoMBF 411は1個又は複数の要素の集合を表し、要素検索の基本的な機能、つまり、あるデータ要素がCoMBFに示されるデータ集合に存在するか否かを決定することを実現する。また、Compressed Bloom filter 4111のデータ圧縮機能により、ネットワークでのデータ伝送量を効果的に減少できる。ネットワークにおいてCompressed Bloom filterのビット配列を伝送することにより、ネットワークデータ伝送、データ共有機能をCoMBF 411に持たせる。
【0073】
本発明の別の実施例では、1つのInterestパケットが転送プレーンに到着すると、まず、Interestパケット名をCMaPIT&CSに入力する。次に、CoMBFにおいてInterestパケット名について正確な文字列マッチングを行う。マッチングするエントリがCoMBFに存在すると、CoMBFの出力するオフセットアドレスに従って、Packet Storeにアクセスする。次に、Packet Storeにおける対応する記録にCSメモリへのポインタが記載されているか否かをチェックする。CSメモリへのポインタがあると、Interestパケットに対応するDataパケットがCSに含まれていることを示し、この場合、Dataパケットを読み取ればよい。CSメモリへのポインタがないと、Packet Store中のこの記録のInterestパケットの転送情報を更新し、Dataパケットが到着するまで待つ。
【0074】
Dataパケットが転送プレーンに到着すると、まず、Dataパケット名をCMaPIT&CSに入力する。次に、CoMBFにおいてDataパケット名について正確な文字列マッチング操作を行う。マッチングするエントリがCoMBFに存在すると、CoMBFの出力するオフセットアドレスに従ってPacket Storeにアクセスし、対応するInterestパケットの転送情報を読み取り、Dataパケットに返送する。また、DataパケットのCSメモリでの記憶位置がPacket Storeに記録される。CoMBFにマッチングするエントリがないと、該Dataパケットを捨てる。
【0075】
実施例4
上記実施例に示すいずれかのデータ処理方法に基づいて、本発明の実施例は、データ処理方法をさらに提供し、
図5は、本発明の実施例におけるデータ処理方法のインタラクションプロセスの一例の模式図である。図示するように、本発明の実施例の実行主体はオンチップメモリとオフチップメモリであり、本発明の実施例のステップは、ステップS501~ステップS507を含み得る。
【0076】
ステップS501、オンチップメモリは第1のICNパケットを受信する。
該第1のICNパケットはInterestパケット又はDataパケットであり得る。
【0077】
ステップS502、オンチップメモリは、第1のICNパケットに対応する第1のオフセットアドレスを取得する。
第1のオフセットアドレスを取得するには、上記実施例に記載のいずれか1つの取得方式が利用できる。
【0078】
ステップS503、オンチップメモリは、第1のICNパケットに対応する第1のオフセットアドレスをオフチップメモリへ送信する。
【0079】
ステップS504、オフチップメモリは、第1のオフセットアドレスによって指示される記録をクエリする。
【0080】
ステップS505、オフチップメモリは、第1のオフセットアドレスによって指示される記録に第1のICNパケットに対応する第2のICNパケットの関連情報が存在するか否かを判定し、存在する場合、S506を実行する。
【0081】
ステップS506、オフチップメモリは第2のICNパケットの関連情報を送信する。
【0082】
ステップS507、オンチップメモリは第1のICNパケットと第2のICNパケットの関連情報に従ってデータ処理を行う。
【0083】
本発明の実施例の別の技術案の詳細及び技術的効果については、ほかの実施例の記載を参照すればよい。
【0084】
本発明の別の実施例では、ステップS502の前に、オンチップメモリは、マッチングするインデックスエントリが存在するか否かを判定し、存在する場合、第1のICNパケットに対応する第1のオフセットアドレスを取得するステップを再度実行するステップをさらに含み得る。
図6は、本発明の実施例におけるデータ処理方法のインタラクションプロセスの別の模式図である。
図6に示すように、本発明の実施例のステップは、ステップS601~ステップS608を含み得る。
【0085】
ステップS601、オンチップメモリは第1のICNパケットを受信する。
【0086】
ステップS602、オンチップメモリは、マッチングするインデックスエントリが存在するか否かを判定し、存在する場合、S603を実行する。
本発明の実施例は、マッチングするインデックスエントリが存在するか否かを判定するための2種類の実施形態を提供する。
【0087】
本発明の実施例による、マッチングするインデックスエントリが存在するか否かを判定する第1の実施形態では、前記第1のICNパケットがDataパケットであり、前記第2のICNパケットがInterestパケットである場合、前記第1のICNパケットの識別子とマッチングするインデックスエントリが存在するか否かを判定する前記ステップは、位置決め関数に従って、インデックスユニットにおいて前記第1のICNパケットに対応するフラグビットの位置を特定し、前記インデックスユニットにおけるフラグビットの値はフラグビットに対応するDataパケットがローカルに記憶されているか否かを示すステップと、前記第1のICNパケットに対応するフラグビットの値をクエリするステップと、前記第1のICNパケットに対応するフラグビットの値が有効である場合、前記第1のICNパケットの識別子とマッチングするインデックスエントリが存在すると判定するステップと、を含み得る。
【0088】
本発明の実施例による、マッチングするインデックスエントリが存在するか否かを判定する第1の実施形態では、前記第1のICNパケットがInterestパケットであり、前記第2のICNパケットが前記第1のICNパケットの要求するDataパケットである場合、前記第1のICNパケットの識別子とマッチングするインデックスエントリが存在するか否かを判定する上記ステップは、位置決め関数に従って、インデックスユニットにおいて前記第1のICNパケットに対応する前記第2のICNパケットの対応するフラグビットの位置を特定するステップと、前記第2のICNパケットに対応するフラグビットの値をクエリするステップと、前記第2のICNパケットに対応するフラグビットの値が有効である場合、前記第1のICNパケットの識別子とマッチングするインデックスエントリが存在すると判定するステップと、を含み得る。
【0089】
本発明の実施例による、マッチングするインデックスエントリが存在するか否かを判定する第2の実施形態では、インデックスエントリ表を用いて、ICNパケットに対応するインデックスエントリが存在するか否かを決定することができる。
【0090】
表4は、本発明の実施例によるインデックスエントリ表の一例である。各インデックスエントリは、たとえば、インデックスエントリの識別子、インデックスエントリに対応するInterestパケット、インデックスエントリに対応するInterestパケットがローカルに記憶されているか、インデックスエントリに対応するDataパケット、インデックスエントリに対応するDataパケットがローカルに記憶されているかなど、複数の属性を含むことができる。インデックスエントリの識別子は、インデックスエントリの番号であってもよく、インデックスエントリに対応するDataパケットとInterestパケットの組み合わせであってもよい。なお、インデックスエントリ表には、第1のICNパケットと第1のICNパケットに対応する第2のICNパケットは同じ識別子のインデックスエントリに対応することができる。つまり、DataパケットとこのDataパケットを要求するInterestパケットは同じ識別子のインデックスエントリに対応することができる。
【0091】
【0092】
表4に示すように、Data1とData1を要求するInterest1はインデックスエントリ1に対応し、Data2とData2を要求するInterest2はインデックスエントリ2に対応し、Data3とData3を要求するInterest3はインデックスエントリ3に対応し、ノードに記憶されたInterestパケットにはInterest1、Interest2があり、ノードに記憶されたDataパケットにはData2とData3がある。
【0093】
表4に示すインデックスエントリ表に基づいて、前記第1のICNパケットの識別子とマッチングするインデックスエントリが存在するか否かを判定する上記ステップは、前記第1のICNパケットがDataパケットであり、前記第2のICNパケットがInterestパケットである場合、第1のICNパケットに対応するインデックスエントリが、第2のICNパケットがローカルに記憶されていることを示すか否かを判定し、即ち、「インデックスエントリに対応するInterestパケットがローカルに記憶されているか否か」属性がYESであるか否かを判定し、YESである場合、第1のICNパケットの識別子とマッチングするインデックスエントリが存在すると判定するステップと、前記第1のICNパケットがInterestパケットであり、前記第2のICNパケットが前記第1のICNパケットの要求するDataパケットである場合、第1のICNパケットに対応するインデックスエントリが、第2のICNパケットがローカルに記憶されていることを示すか否かを判定し、即ち、「インデックスエントリに対応するDataパケットがローカルに記憶されているか否か」属性がYESであるか否かを判定し、YESである場合、第1のICNパケットの識別子とマッチングするインデックスエントリが存在すると判定するステップと、を含み得る。
【0094】
本発明の別の実施例では、上記「インデックスエントリに対応するDataパケットがローカルに記憶されているか否か」属性と「インデックスエントリに対応するInterestパケットがローカルに記憶されているか否か」属性の属性値は数値などの形で表わすことができ、たとえば、「1」又は「有効」で「YES」、「0」又は「無効」で「NO」を表す。本発明の実施例では、それについて限制しない。
【0095】
ステップS603、オンチップメモリは、第1のICNパケットに対応する第1のオフセットアドレスを取得する。
【0096】
ステップS604、オンチップメモリは、第1のICNパケットに対応する第1のオフセットアドレスをオフチップメモリへ送信する。
【0097】
ステップS605、オフチップメモリは、第1のオフセットアドレスによって指示される記録をクエリする。
【0098】
ステップS606、オフチップメモリは、第1のオフセットアドレスによって指示される記録に第1のICNパケットに対応する第2のICNパケットの関連情報が存在するか否かを判定し、存在する場合、S607を実行する。
【0099】
ステップS607、オフチップメモリは、第2のICNパケットの関連情報をオンチップメモリへ送信する。
【0100】
ステップS608、オンチップメモリは、第1のICNパケットと第2のICNパケットの関連情報に従ってデータ処理を行う。
【0101】
なお、本発明の実施例では、上記ステップS602は、ステップS603において第1のICNパケットに対応する第1のオフセットアドレスを取得することの1つのトリガー条件に相当する。即ち、第1のICNパケットの識別子とマッチングするインデックスエントリが存在するときに、第1のICNパケットに対応する第1のオフセットアドレスを取得するステップを実行する。
【0102】
インデックスエントリは、以下のようなデータであり得る。(1)第1のICNパケットがローカルに記憶されている場合、第1のICNパケットに対応するインデックスエントリに「ローカルにICN1がある」と記録される。(2)第2のICNパケットがローカルに記憶されている場合、第2のICNパケットに対応するインデックスエントリに「ローカルにICN2がある」と記録される。(3)第1のICNパケットと第2のICNパケットに対応するインデックスエントリは同じインデックスエントリである。
【0103】
本発明の別の実施例では、ICNパケットに対応するインデックスエントリは、ICNパケットの識別子に従って決定することができ、たとえば、ICNパケットの識別子に従って決定されるフラグビットの位置は、インデックスエントリ表中のインデックスエントリの識別子として機能する。
【0104】
一例として、インデックスエントリ表の構造はオフセットアドレスによって指示される記録表の構造と類似している。
【0105】
本発明の実施例では、ステップS601、S603~S608はステップS501~S507と類似している。
【0106】
本発明の実施例は、データ処理方法をさらに提供し、この方法では、第1のICNパケットがInterest1パケットであり、第1のICNパケットに対応する第2のICNパケットがData1であり得、
図7Aは本発明の実施例におけるデータ処理方法のインタラクションプロセスのまた別の模式図である。
図7Aに示すように、本発明の実施例によるデータ処理方法のステップには、ステップS7101~ステップS7109を含み得る。
【0107】
ステップS7101、オンチップメモリはInterest1を受信する。
【0108】
ステップS7102、オンチップメモリは、マッチングするインデックスエントリが存在するか否かを判定し、存在する場合、S7103を実行する。
該ステップはS602の説明を参照できる。
【0109】
ステップS7103、オンチップメモリは、Interest1に対応するオフセットアドレス11を取得する。
【0110】
ステップS7104、オンチップメモリは、Interest1に対応するオフセットアドレス11をオフチップメモリへ送信する。
【0111】
ステップS7105、オフチップメモリは、オフセットアドレス11によって指示される記録をクエリする。
【0112】
ステップS7106、オフチップメモリは、オフセットアドレス11によって指示される記録にInterest1の要求するData1の記憶アドレスが存在するか否かを判定し、存在する場合、Data1を読み取り、S7107を実行し、存在しない場合、S7109を実行する。
【0113】
ステップS7107、オフチップメモリはData1を送信する。
【0114】
ステップS7108、オンチップメモリはInterest1の転送情報に従ってData1を返送する。
【0115】
ステップS7109、オフチップメモリは、Interest1の転送情報をオフセットアドレス11によって指示される記録に書き込む。
【0116】
本発明の実施例の別の技術案の詳細及び技術的効果については、ほかの実施例の記載を参照すればよい。
【0117】
本発明の実施例は、データ処理方法をさらに提供し、この方法では、第1のICNパケットがData1パケットであり、第1のICNパケットに対応する第2のICNパケットがInterest1であり得、
図7Bは本発明の実施例におけるデータ処理方法のインタラクションプロセスのさらに別の模式図である。
図7Bに示すように、本発明の実施例によるデータ処理方法のステップには、ステップS7201~ステップS721
1を含み得る。
【0118】
ステップS7201、オンチップメモリはData1を受信する。
【0119】
ステップS7202、オンチップメモリは、マッチングするインデックスエントリが存在するか否かを判定し、存在する場合、S7203を実行し、存在しない場合、S7210を実行する。
該ステップはS602の説明を参照できる。
【0120】
ステップS7203、オンチップメモリはData1に対応するオフセットアドレス21を取得する。
【0121】
ステップS7204、オンチップメモリは、Data1に対応するオフセットアドレス21をオフチップメモリへ送信する。
【0122】
ステップS7205、オフチップメモリはオフセットアドレス21によって指示される記録をクエリする。
【0123】
ステップS7206、オフチップメモリは、オフセットアドレス21によって指示される記録にData1を要求するInterest1の転送情報が存在するか否かを判定し、存在する場合、Interest1の転送情報を読み取り、S7207とS7209を実行し、存在しない場合、S7210を実行する。
【0124】
ステップS7207、オフチップメモリはInterest1の転送情報をオンチップメモリへ送信する。
【0125】
ステップS7208、オンチップメモリはInterest1の転送情報に従ってData1を返送する。
【0126】
ステップS7209、オフチップメモリはData1をキャッシュし、Data1の記憶アドレスをオフセットアドレス21によって指示される記録に書き込む。
【0127】
ステップS7210、オフチップメモリは、Interest1の転送情報が存在しないことを示す指示情報を送信する。
【0128】
ステップS7211、オンチップメモリはData1を捨てる。
【0129】
本発明の実施例の別の技術案の詳細及び技術的効果については、ほかの実施例の記載を参照すればよい。
【0130】
図7Aに示す方法に基づいて、本発明の実施例は、データ処理方法をさらに提供し、
図7Cは本発明の実施例におけるデータ処理方法のインタラクションプロセスのさらなる模式図である。
図7Cに示すように、本発明の実施例のステップには、ステップS7301~ステップS7310を含み得る。
【0131】
ステップS7301、オンチップメモリはData1を受信する。
本発明の実施例では、該ステップは、S7109の後で実行され得る。
【0132】
ステップS7302、オンチップメモリは、マッチングするインデックスエントリが存在するか否かを判定し、存在する場合、S7303を実行し、存在しない場合、S7310を実行する。
【0133】
ステップS7303、オンチップメモリは、Data1に対応するオフセットアドレス11を取得する。
【0134】
ステップS7304、オンチップメモリは、Data1に対応するオフセットアドレス11を送信する。
【0135】
ステップS7305、オフチップメモリは、オフセットアドレス11によって指示される記録をクエリする。
【0136】
ステップS7306、オフチップメモリは、オフセットアドレス11によって指示される記録にData1を要求するInterest1の転送情報が存在するか否かを判定し、Interest1の転送情報を読み取り、S7307とS7309を実行する。
【0137】
ステップS7307、オフチップメモリはInterest1の転送情報を送信する。
【0138】
ステップS7308、オンチップメモリはInterest1の転送情報に従って、Data1を返送する。
【0139】
ステップS7309、オフチップメモリは、Data1をキャッシュし、Data1の記憶アドレスをオフセットアドレス21によって指示される記録に書き込む。
【0140】
ステップS7310、オンチップメモリはData1を捨てる。
【0141】
本発明の実施例の別の技術案の詳細及び技術的効果については、ほかの実施例の記載を参照すればよい。
【0142】
実施例5
本発明の実施例は、ローカルに記憶されているDataパケット又はInterestパケットの種類を高速で決定することで、ノードがローカルに記憶されているDataパケット又はInterestパケットを高速で把握できるようにするデータ処理方法をさらに提供し、それにより、ノードの検索効率を向上させることができる。該実施形態は、ICNネットワークにおいて本ノードに記憶されたデータを共有することにも適用できる。
【0143】
図8は、本発明の実施例におけるデータ処理方法の別の模式的フローチャートである。
図8に示すように、本発明の実施例のステップには、ステップS801~ステップS803を含み得る。
【0144】
ステップS801、第1のICNパケットを取得する。
第1のICNパケットは興味Interestパケット又はデータDataパケットである。
【0145】
ステップS802、位置決め関数に従って、インデックスユニットにおいて第1のICNパケットに対応するフラグビットの位置を特定する。
【0146】
ステップS803、第1のICNパケットに対応するフラグビットの位置に従って、第1のICNパケットに対応するフラグビットの値についてクエリ又は設定を行う。
インデックスユニットにおけるフラグビットの値は、フラグビットに対応するInterestパケット及び/又はDataパケットがローカルに記憶されているか否かを示す。
【0147】
本発明の実施例では、ノードは、ICNパケットを受信しICNパケットの関連情報を記憶した後、インデックスユニットにおける該ICNパケットに対応するフラグビットを有効と設定することができる。例を挙げると、第1のICNパケットに対応するフラグビットの位置に従って、第1のICNパケットに対応するフラグビットの値についてクエリ又は設定を行う上記ステップは、第1のICNパケットがローカルに記憶されている場合、第1のICNパケットに対応するフラグビットの値を有効と設定するステップを含み得る。一例として、S7109、S7209又はS7309の後に、ICNパケットに対応するフラグビットの値を有効と設定することができる。本発明の別の実施例では、ノードが有効になるときにいくつかのDataデータを記憶していると、ノードが有効になるときに、これらDataパケットに対応するフラグビットを有効とすることができる。
【0148】
本発明の実施例では、位置決め関数は、インデックスユニットにおいていずれかのICNパケットに対応するフラグビットの位置を特定することができる。一例として、ICNパケットの識別子に従ってインデックスユニットにおいてICNパケットに対応するフラグビットの位置を特定する。たとえば、ICNパケットがInterestパケットである場合、Interestパケットの要求するDataパケットの名に従ってインデックスユニットにおいて該Interestパケットに対応するフラグビットの位置を特定することができる。ICNパケットがDataパケットである場合、Dataパケット名に従ってインデックスユニットにおいて該Dataパケットに対応するフラグビットの位置を特定することができる。例を挙げると、位置決め関数は、K個のハッシュ関数であり、ICNパケットの識別子のそれぞれがK個のハッシュ関数に入力されると、K個の結果が得られ、一例として、K個の結果はK個の「1」であるか、K個の結果は1個の「0」とK-1個の「1」であるか、K個の結果は1個の「10」、1個の「11」及びK-2個の「00」などである。本発明の別の実施例では、K個の結果は、対応するK個の位置決め関数の順序に従って並べられてM桁の2進数とすることができ、該M桁の2進数は記録表へのオフセットアドレスとすることができる。
【0149】
本発明の実施例では、インデックスユニットは、たとえばビット配列であり、1つのICNパケットがインデックスユニットにおける1つのビット又は複数のビットに対応することができ、つまり、インデックスユニットにおいてICNパケットに対応するフラグビットは1つ又は複数のビットである。一例として、ICNパケットに対応するビットの値が1である場合、ICNに対応するフラグビットを有効と決定し、ICNパケットに対応するビットの値がすべて0ではない場合、ICNパケットに対応するフラグビットを無効と決定する。
【0150】
本発明の別の実施例では、フラグビットの数を減らし、さらにインデックスユニットの記憶スペース及びネットワークで共有するために伝送すべきインデックスユニットの伝送データ量を減少させるために、圧縮フラグビットを各ICNパケットに対応するフラグビットとする実施形態を取ってもよい。
【0151】
例を挙げると、位置決め関数に従って、インデックスユニットにおいて前記第1のICNパケットに対応するフラグビットの位置を特定する上記ステップは、まず、前記位置決め関数に従って、前記第1のICNパケットが前記インデックスユニットにマッピングする非圧縮フラグビットの位置を特定するステップと、次に、前記第1のICNパケットに対応する非圧縮フラグビットの位置に対して圧縮センシングを行い、前記第1のICNパケットに対応する圧縮フラグビットの位置を得るステップと、前記第1のICNパケットに対応する圧縮フラグビットの位置を前記第1のICNに対応するフラグビットの位置とするステップとによって実施されてもよく、インデックスユニットにおける非圧縮フラグビットの総数が、前記インデックスユニットにおける圧縮フラグビットの総数よりも大きい。本発明の別の実施例では、非圧縮フラグビットの総数はM桁、たとえば32桁であってもよく、圧縮フラグビットの総数はN桁、たとえば18桁であってもよい。
【0152】
本発明の実施例では、本ノードに記憶されたDataパケット又はInterestパケットの情報の種類をICNネットワーク中のほかのノードへ共有するために、第1のICNパケットに対応するフラグビットの位置に従って、前記第1のICNパケットに対応するフラグビットの値についてクエリ又は設定を行う前記ステップの後、前記方法は、インデックスユニットをほかのノードへ送信するステップをさらに含み得る。
【0153】
本発明の別の実施例では、フラグビットはオンチップメモリに記憶され、一例として、オンチップメモリのCompressed Bloom filter中のビット配列の各ビットをノードに記憶されたICNパケットに対応するフラグビットとする。この場合、インデックスユニットをほかのノードへ送信する上記ステップは、Compressed Bloom filter中のビット配列をほかのノードへ送信するステップを含み得る。つまり、転送プレーンがCS中のキャッシュ情報を共有する必要があるときに、オンチップメモリにおけるCompressed Bloom filterのビット配列をネットワークへ伝送すれば、情報の共有を実現できる。
【0154】
本発明の実施例では、位置決め関数に従って、インデックスユニットにおいて第1のICNパケットに対応するフラグビットの位置を特定する上記ステップは、第1のICNパケットが第1のDataパケットである場合、第1のDataパケットの識別子及び位置決め関数に従って、第1のICNパケットに対応するフラグビットの位置を特定するステップと、第1のICNパケットが第2のInterestパケットであり、第2のInterestパケットの要求するDataパケットが第2のDataパケットである場合、第2のDataパケットの識別子及び前記位置決め関数に従って、第1のICNパケットに対応するフラグビットの位置を特定するステップとによって実施できる。
【0155】
本発明の別の実施例では、前記第1のICNパケットに対応するフラグビットの位置に従って、前記第1のICNパケットに対応するフラグビットの値についてクエリ又は設定を行う上記ステップの後、前記方法は、前記第1のICNパケットに対応するフラグビットの位置に従って、前記第1のICNパケットに対応する第1のオフセットアドレスを決定し、前記第1のオフセットアドレスによって指示される記録は前記第1のICNパケットに対応する第2のICNパケットの転送情報又は記憶アドレスを記憶することに用いられるステップと、次に、前記第1のICNパケットに対応する第1のオフセットアドレスによって指示される記録をクエリし、クエリ結果に従ってデータ処理を行うステップと、をさらに含み得る。第1のICNパケットに対応する第1のオフセットアドレスによって指示される記録をクエリし、クエリ結果に従ってデータ処理を行うステップの実施形態については、本発明のほかの実施例における関連説明を参照すればよい。
【0156】
本発明の別の実施例では、第1のICNパケットに対応するフラグビットの位置に従って、第1のICNパケットに対応する第1のオフセットアドレスを決定する上記ステップの前に、前記方法は、第1のICNパケットに対応する第2のICNパケットのフラグビットが有効であるか否かを判定するステップと、第1のICNパケットに対応する第2のICNパケットのフラグビットが有効である場合、第1のICNパケットに対応するフラグビットの位置に従って、第1のICNパケットに対応する第1のオフセットアドレスを決定するステップを実行するステップと、をさらに含み得る。
【0157】
なお、ノードが第1のICNパケットを受信すると、インデックスユニット中の第2のICNパケットに対応するフラグビットの値をクエリすることにより、ノードに第2のICNパケットが記憶されている可能性があるか否かを予備判定し、第2のICNパケットが存在する可能性がある場合、第2のICNパケットに対応するフラグビットの値に従ってオフセットアドレスを決定し、オフセットアドレスによって指示される記録表はオフチップメモリに記憶され、オフセットアドレスによって指示される記録をクエリし、クエリ結果に従ってデータ処理を行う。
【0158】
上記アルゴリズムの説明から明らかなように、CMaPIT&CS記憶構造を使用すると、名称データの検索を効果的に簡素化させ、オンチップメモリ中のインデックス構造の検索頻度及びオフチップメモリのうちの低速メモリへのアクセス回数を減少させることができる。
【0159】
上記実施例に基づいて、本発明の実施例は、データ処理方法をさらに提供し、
図9は本発明の実施例におけるデータ処理方法のまた別の模式的フローチャートである。位置決め関数に従って、インデックスユニットにおいて第1のICNパケットに対応するフラグビットの位置を特定する上記ステップの後、本発明の実施例の方法には、ステップS901~ステップS908を含み得る。
【0160】
ステップS901、第1のICNパケットを取得する。
該ステップはS801と類似している。
【0161】
ステップS902、位置決め関数に従って、インデックスユニットにおいて第1のICNパケットに対応するフラグビットの位置を特定する。
該ステップはS802と類似している。
【0162】
ステップS903、第1のICNパケットに対応するフラグビットの位置に従って、第1のICNパケットに対応するフラグビットの値について設定を行う。
該ステップはS803と類似している。
【0163】
ステップS904、第3のICNパケットを取得する。
第3のICNパケットはInterestパケットであってもよく、Dataパケットであってもよい。
【0164】
ステップS905、位置決め関数に従って、インデックスユニットにおいて第3のICNパケットに対応するフラグビットの位置を特定する。
【0165】
本発明の実施例では、位置決め関数はK個のハッシュ関数であってもよく、この場合、インデックスユニットにおいて第3のICNパケットに対応するフラグビットの位置を特定する上記ステップは以下の実施形態を取ることができる。例を挙げると、ICNパケットの識別子がK個のハッシュ関数に入力され、K個のハッシュ関数の計算結果がK個のハッシュ関数の順序に従って並べられて2進数とすることができ、2進数のビットの値が1であるビットの位置をインデックスユニットにおいてICNパケットに対応するフラグビットの位置とする。
【0166】
ステップS906、第3のICNパケットに対応するフラグビットの値をクエリする。
【0167】
本発明の実施例では、位置決め関数に従って、インデックスユニットにおいて第3のICNパケットに対応するフラグビットの位置を特定する上記ステップの後、本発明の実施例の方法は、ステップS907とステップS908をさらに含み得る。
【0168】
ステップS907、第3のICNパケットに対応するフラグビットの位置に従って、第3のICNパケットに対応する第2のオフセットアドレスを決定する。
【0169】
ステップS908、第3のICNパケットに対応する第2のオフセットアドレスによって指示される記録をクエリし、クエリ結果に従ってデータ処理を行う。
第2のオフセットアドレスによって指示される記録は、第3のICNパケットに対応する第4のICNパケットの転送情報又は記憶アドレスを記憶することに用いられ得る。
【0170】
本発明の実施例では、第3のICNパケットがDataパケットである場合、位置決め関数に従って、インデックスユニットにおいて第3のICNパケットに対応するフラグビットを決定する上記ステップは、位置決め関数及び第3のICNパケットの識別子に従って、第3のICNパケットに対応するフラグビットを決定するステップを含んでもよく、この場合、第3のICNパケットに対応するフラグビットの値をクエリする上記ステップは、インデックスユニットにおいて第3のICNパケットに対応するフラグビットの位置の値が有効であるか否かをクエリするステップと、有効である場合、第3のICNパケットの識別子に従って、第3のICNパケットに対応する第2のオフセットアドレスを取得するステップと、さらに、第2のオフセットアドレスによって指示される記録に前記第3のICNパケットを要求するInterestパケットの転送情報が記憶されている場合、前記第3のICNパケットを要求するInterestパケットの転送情報に従って、前記第3のICNパケットを返送するステップと、を含んでもよい。
【0171】
本発明の実施例では、第3のICNパケットがInterestパケットである場合、第2のオフセットアドレスを取得する上記ステップは、位置決め関数及び第3のICNパケットの要求するDataパケットの識別子に従って、第3のICNパケットに対応するフラグビットを決定するステップを含んでもよく、この場合、第3のICNパケットに対応するフラグビットの値をクエリする上記ステップは、インデックスユニットにおいて第3のICNパケットに対応するフラグビットの位置の値が有効であるか否かをクエリするステップと、有効である場合、第3のICNパケットの識別子に従って、第3のICNパケットに対応する第2のオフセットアドレスを取得するステップと、さらに、第2のオフセットアドレスによって指示される記録に第3のICNパケットの要求するDataパケットの記憶アドレスが記憶されている場合、第3のICNパケットの要求するDataパケットの記憶アドレスから第3のICNパケットの要求するDataパケットを読み取り、第3のICNパケットの転送情報に従って、第3のICNパケットの要求するDataパケットを返送するステップとを含んでもよい。
【0172】
なお、本実施例では、ほかの実施例と同じステップや概念の解釈については、ほかの実施例の記載を参照すればよい。本発明の実施例のほかの技術的効果については、ほかの実施例の記載を参照すればよく、ここで詳しく説明しない。
【0173】
実施例6
以下、本発明の実施例によるデータ処理方法を例示的に説明する。
【0174】
一例では、CMaPIT&CS記憶構造においてInterestパケットを検索する処理プロセスは、以下のとおりである。
【0175】
該記憶構造では、K=3個のハッシュ関数が設定され、CoMBFデータ構造中のBloom filterのサイズが32ビットに設定され、Compressed Unitのサイズが18ビットに設定され、さらに、Compressed Unitが6等分されている。それに対応するマッピング配列MAが6ビットに設定され、つまり、該記憶構造は、Packet Storeにおいて26個の要素を記憶することができる。なお、圧縮ユニットの等分数とマッピング配列のビット数が同じでなければならない。
【0176】
このようなシステムにおいて、/ndn/UA/videos及び/ndn/UA/mapsと命名される2つのInterestパケットは順次記憶構造に入力される。Interestパケットが入力されるたびに、マッピング配列MAは全0状態に初期化される。なお、/ndn/UA/videos及び/ndn/UA/mapsと命名される2つのInterestパケットは、2つのInterestパケットの要求するDataパケットの名称がそれぞれ/ndn/UA/videosと/ndn/UA/mapsであることを意味する。
【0177】
一番目のInterestパケットが入力されるとき、まず、Interestパケットの名称/ndn/UA/videosがCMaPIT&CS記憶構造に入力され、Bloom filter中の第6ビット、第14ビット、第20ビットがハッシュマッピングされ、且つこの3つのビットはすべて1であり、つまり、Interestパケットが該構造に存在することを示す。圧縮センシング後、Compressed Unitの第2部分、第4部分、第5部分にハッシュマッピングが存在するため、マッピング配列MAの第2ビット、第4ビット、第5ビットの数値が1に設定され、ほかの位置の数値が0に設定される。最終的に得られたマッピング配列MAの値は010110であり、即ち、InterestパケットのPacket Storeでのオフセットアドレスは010110である。次に、検出した結果、Packet Storeの対応する記録にCSメモリへのポインタが記載されており、即ち、一番目のInterestパケットに対応するDataパケットが存在し、最後に、該Dataパケットを読み取る。なお、Packet Storeの対応する記録とは、オフセットアドレスによって指示される記録表中の記録である。
【0178】
同様に、/ndn/UA/mapsと命名されるInterestパケットも該記憶構造に存在し、そのPacket Storeでのオフセットアドレスが110100である。次に、検出した結果、Packet Storeの対応する記録にはCSメモリへのポインタが記載されておらず、即ち二番目のInterestパケットに対応するDataパケットが存在せず、最後に、該記録のInterestパケットの転送情報を更新し、Dataパケットが到着するまで待つ。
【0179】
別の例では、CMaPIT&CS記憶構造においてDataパケットを検索する処理プロセスは以下のとおりである。
【0180】
該記憶構造では、K=3個のハッシュ関数が使用され、CoMBFデータ構造中のBloom filterのサイズが32ビットに設定され、Compressed Unitのサイズが18ビットに設定され、さらにCompressed Unitが6等分されている。それに対応するマッピング配列MAが6ビットに設定され、したがって、該記憶構造は、Packet Storeにおいて26個の要素を記憶することができる。
【0181】
このようなシステムにおいて、/ndn/UA/maps及び/TJU/videosと命名される2つのDataパケットは順次入力される。Dataパケットを入力するたびに、マッピング配列MAは全0状態に初期化される。なお、/ndn/UA/maps及び/TJU/videosと命名される2つのDataパケットは、この2つのDataパケットの名称がそれぞれ/ndn/UA/mapsと/TJU/videosであることを意味する。
【0182】
一番目のDataパケットが入力されるとき、まず、Dataパケットの名称/ndn/UA/mapsがCMaPIT&CS記憶構造に入力され、Bloom filter中の第2ビット、第5ビット、第16ビットがハッシュマッピングされ、且つこの3つのビットはすべて1であり、つまり、Dataパケットが該構造に存在することを示す。圧縮センシング後、Compressed Unitの第1部分、第2部分、第4部分にハッシュマッピングが存在するため、マッピング配列MAの第1ビット、第2ビット、第4ビットの数値が1に設定され、ほかの位置の数値が0に設定される。最終的に得られたマッピング配列MAの値は110100であり、即ち、DataパケットのPacket Storeでのオフセットアドレスは110100である。次に、検出した結果、Packet Storeの対応する記録に、対応するInterestパケットの転送情報が記載されており、該転送情報に従って該Dataパケットを返送する。また、Packet Storeには、該DataパケットのCSメモリでの記憶位置を記録する。同様に、/TJU/videosと命名されるDataパケットは、Bloom filterの第1ビット、第7ビット、第21ビットでハッシュマッピングされるが、この3つのビットはすべて1ではなく、即ち、CoMBFにはマッチング記録がなく、したがって、該Dataパケットを捨てる。なお、Packet Storeの対応する記録とは、オフセットアドレスによって指示される記録表中の記録である。
【0183】
なお、本実施例では、ほかの実施例と同じステップや概念の解釈については、ほかの実施例の記載を参照すればよい。本発明の実施例のほかの技術的効果については、ほかの実施例の記載を参照すればよく、ここで詳しく説明しない。
【0184】
本発明の実施例は、PIT表とCSメモリインデキシングを組み合わせて、即ち、CoMBFを利用して、統一した複合記憶構造CMaPIT&CSを構築し、それをインデキシング結果と呼ぶこともできる。データの直接インデキシングと共有が可能である高効率データ構造CoMBFを構築することにより、CMaPIT&CSはデータパケットの処理における転送プレーンの検索を減少させ、検索性能を向上させることができる。さらに、転送プレーンの記憶消費を低減させ、名称データの検索速度を向上させ、検索性能を高める。
【0185】
本発明の実施例は、データ処理機器1000をさらに提供する。
図10は、本発明の実施例におけるデータ処理機器の構造模式図である。
図10に示すように、該機器は、プロセッサ1001と、プロセッサ上で実行可能なコンピュータプログラムを記憶するためのメモリ1002と、を備える。
【0186】
プロセッサ1001は、前記コンピュータプログラムを実行すると、
図3~
図7Cのいずれかに示すデータ処理方法のステップ、及び/又は、
図8~
図9のいずれかに示すデータ処理方法のステップを実行する。
【0187】
本発明の実施例では、データ処理機器1000は、インタフェース1003やバス1004などをさらに含んでもよく、インタフェース1003は、ICNパケットの受送信又はインデックスユニットの送信に用いられ、バス1004はプロセッサ1001、メモリ1002とインタフェース1003との間のデータの交換に用いられる。
【0188】
本発明の実施例では、データ処理機器は、ICNネットワークにおけるノードに配置されてもよく、一例として、中間ノードに配置されてもよいし、両端ノードに配置されてもよい。本発明の別の実施例では、データ処理機器はルータ又は端末であり得る。
【0189】
なお、本実施例では、ほかの実施例と同じステップや概念の解釈については、ほかの実施例の記載を参照すればよく、ここで詳しく説明しない。本発明の実施例のほかの技術的効果については、ほかの実施例の記載を参照すればよく、ここで詳しく説明しない。
【0190】
本発明の実施例は、コンピュータ読み取り可能な記憶媒体をさらに提供し、前記コンピュータ読み取り可能な記憶媒体には、データ処理プログラムが記憶されており、前記データ処理プログラムは、プロセッサにより実行されると、上記実施例に示すデータ処理方法のステップを実現する。
【0191】
なお、本実施例では、ほかの実施例と同じステップや概念の解釈については、ほかの実施例の記載を参照すればよく、ここで詳しく説明しない。本発明の実施例のほかの技術的効果については、ほかの実施例の記載を参照すればよく、ここで詳しく説明しない。
【0192】
実際の用途では、上記実施例における受信ユニット、取得ユニット、処理ユニット、及び送信ユニットはすべて、無線データ送信機器の中央処理ユニット(Central Processing Unit、CPU)、マイクロプロセッサ(Micro Processor Unit、MPU)、デジタルシグナルプロセッサ(Digital Signal Processor、DSP)、又はフィールドプログラマブルゲートアレイ(Field Programmable Gate Array、FPGA)などによって実現することができる。
【0193】
当業者が理解できるように、本発明の実施例は、方法、システム、又はコンピュータプログラム製品として提供され得る。したがって、本発明は、ハードウェアの実施例、ソフトウェアの実施例、又はソフトウェアとハードウェアを組み合わせた実施例の形を採用することができる。さらに、本発明は、コンピュータ使用可能なプログラムコードを含む1つ又は複数のコンピュータ使用可能な記憶媒体(磁気ディスク記憶装置、光記憶装置などを含むが、これらに限定されない)上に実現され得るコンピュータプログラム製品の形を採用することができる。
【0194】
本発明は、本発明の実施例による方法、機器(システム)、及びコンピュータプログラム製品のフローチャート及び/又はブロック図を参照しながら説明される。なお、フローチャート及び/又はブロック図の各プロセス及び/又はブロック、ならびにフローチャート及び/又はブロック図のプロセス及び/又はブロックの組み合わせは、コンピュータプログラム命令によって実現できる。これらのコンピュータプログラム命令は、汎用コンピュータ、専用コンピュータ、組み込みプロセッサ、又はその他のプログラム可能なデータ処理機器のプロセッサに提供してマシンを生成し、それにより、コンピュータ又はその他のプログラム可能なデータ処理機器のプロセッサによって実行される命令を通じて、フローチャートの1つ又は複数のプロセス及び/又はブロック図の1つのブロック又は複数のブロックで指定された機能を実現する装置が構成される。
【0195】
これらのコンピュータプログラム命令はまた、コンピュータ又は他のプログラム可能なデータ処理機器を特定の方法で作動するように案内することができるコンピュータ読み取り可能なメモリに格納でき、このコンピュータ読み取り可能なメモリに格納された命令は、命令機器を含む製造品を生成し、この命令機器は、フローチャートの1つのプロセス又は複数のプロセス、及び/又はブロック図の1つのブロック又は複数のブロックで指定された機能を実現する。
【0196】
これらのコンピュータプログラム命令は、コンピュータ又は他のプログラム可能なデータ処理機器にロードすることもでき、これにより、一連の操作ステップがコンピュータ又は他のプログラム可能な機器で実行され、コンピュータにより実現される処理が生成され、このようにして、コンピュータ又は他のプログラム可能な機器で実行される命令は、フローチャートの1つ又は複数のプロセス、及び/又はブロック図の1つ又は複数のブロックで指定された機能を実現するためのステップを提供する。
【0197】
以上は、本発明の好ましい実施例に過ぎず、本発明の保護範囲を限定するものではない。