CN110399539A - 一种数据处理方法、设备和计算机可读存储介质 - Google Patents
一种数据处理方法、设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN110399539A CN110399539A CN201810356463.XA CN201810356463A CN110399539A CN 110399539 A CN110399539 A CN 110399539A CN 201810356463 A CN201810356463 A CN 201810356463A CN 110399539 A CN110399539 A CN 110399539A
- Authority
- CN
- China
- Prior art keywords
- packet
- icn
- icn packet
- flag bit
- offset address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/302—Route determination based on requested QoS
- H04L45/306—Route determination based on the nature of the carried application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9032—Query formulation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种数据处理方法,所述方法包括:获取第一ICN包对应的第一偏移地址;查询所述第一偏移地址指向的记录,根据查询结果进行数据处理;其中,所述第一偏移地址指向的记录用于在本地存储有所述第一ICN包对应的第二ICN包时存储所述第二ICN包的存储地址或所述第二ICN包的转发信息。本发明实施例同时还公开了一种数据处理设备和计算机可读存储介质。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种数据处理方法、设备、和计算机可读存储介质。
背景技术
信息中心网络(Information-Centric Networking,ICN)是一种全新的互联网通信体系架构。作为一种以数据内容为核心、用户需求为导向的新型互联网通信模型,ICN彻底打破了现有基于TCP/IP技术的网络架构。该体系架构将通信模型建立在标识数据的基础之上,通过采用内容请求者驱动的通信模式,从根本上改变了IP包的封装结构和寻址方式,有利于移动通信设备跨区切换,降低通信时延,解决了传统互联网架构下无法应对高速移动通信、IP地址空间耗尽、网络传输效率低、安全性差等问题。
ICN的转发平面处理的多种数据中包括兴趣(Interest)包和数据(Data)包这两种ICN包,ICN的转发平面需要检索是否有Interest包所请求的Data包,或者,检索是否有请求Data包的Interest。
目前,ICN网络中ICN包的查询效率较低。
发明内容
为解决上述技术问题,本发明实施例期望提供一种数据处理方法、设备和计算机可读存储介质,解决现有技术中ICN网络中ICN包的查询效率低的问题。
为达到上述目的,本发明实施例的技术方案是这样实现的:
第一方面,本发明提供一种数据处理方法,应用于信息中心网络ICN中的节点,所述方法包括:
获取第一ICN包对应的第一偏移地址;
查询所述第一偏移地址指向的记录,根据查询结果进行数据处理;
其中,所述第一偏移地址指向的记录用于在本地存储有所述第一ICN包对应的第二ICN包时存储所述第二ICN包的存储地址或所述第二ICN包的转发信息。
第二方面,本发明提供一种数据处理方法,应用于信息中心网络ICN中的节点,所述方法包括:
获取第一ICN包,所述第一ICN包为兴趣Interest包或数据Data包;
根据定位函数,确定所述第一ICN包在索引单元中对应的标志位的位置;
根据所述第一ICN包对应的标志位的位置,查询或者设置所述第一ICN包对应的标志位的值;
其中,所述索引单元中的标志位的值用于表示本地是否存储有标志位对应的Interest包和/或Data包。
第三方面,本发明提供一种数据处理设备,所述设备包括处理器和用于存储能够在处理器上运行的计算机程序的存储器,
其中,所述处理器用于运行所述计算机程序时,执行第一方面任一所述数据处理方法的步骤,或者,执行第二方面任一所述数据处理方法的步骤。
第四方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质上存储有数据处理程序,所述数据处理程序被处理器执行时实现第一方面任一所述数据处理方法的步骤,或者,所述数据处理程序被处理器执行时实现第二方面任一所述数据处理方法的步骤。
本发明的实施例中,本发明实施例提供的数据处理方法,通过获取第一ICN包对应的第一偏移地址;查询第一偏移地址指向的记录,根据查询结果进行数据处理;其中,第一偏移地址指向的记录用于在本地存储有第一ICN包对应的第二ICN包时存储第二ICN包的存储地址或第二ICN包的转发信息,能够提高ICN网络中ICN包的查询效率。
附图说明
图1A为ICN转发平面在收到Interest包时的工作机制的示意图;
图1B为ICN转发平面在收到Interest包时的检索顺序的示意图;
图2A为ICN转发平面在收到Data包时的工作机制示意图;
图2B为ICN转发平面在收到Data包时的检索顺序的示意图;
图3为本发明实施例数据处理方法的流程示意图一;
图4A为本发明实施例节点的结构示意图一。;
图4B为本发明实施例节点的结构示意图二。
图5为本发明实施例数据处理方法的交互流程示意图一;
图6为本发明实施例数据处理方法的交互流程示意图二;
图7A为本发明实施例数据处理方法的交互流程示意图三;
图7B为本发明实施例数据处理方法的交互流程示意图四;
图7C为本发明实施例数据处理方法的交互流程示意图五;
图8为本发明实施例数据处理方法的流程示意图二;
图9为本发明实施例数据处理方法的流程示意图三;
图10为本发明实施例数据处理设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
本发明实施例提供的技术方案可应用于位于ICN中的转发平面的路由器的结构设计领域,在介绍本发明实施例提供的数据处理方法之前,先对本发明实施例提供的数据处理方法的应用场景进行总体说明。
为了从根本上解决了基于TCP/IP技术的网络通信模型的先天不足,信息中心网络ICN的转发平面上可以部署三种数据结构:内容存储池(Content Store,CS)、请求状态表(Pending Interest Table,PIT)和转发表(Forwarding Information Base,FIB),其中,PIT用于存储Interest包的转发信息,转发信息例如可以包括该Interest包请求的Data包的标识、请求该Data包的请求方节点的信息等。CS用于存储Data包。ICN利用这三种数据结构实现内容共享和智能转发,降低网络负载,提高数据在ICN网络中的传输速率。
转发平面涉及CS与PIT的工作机制十分接近,图1A为ICN转发平面在收到Interest包时的工作机制的示意图;图1B为ICN转发平面在收到Interest包时的检索顺序的示意图;图2A为ICN转发平面在收到Data包时的工作机制示意图;图2B为ICN转发平面在收到Data包时的检索顺序的示意图。
如图1A所示,Interest包到达转发平面的端口后转发平面的处理步骤可以包括:
步骤S101,接收Interest包。
步骤S102,检索CS,判断CS中是否存储有该Interest包请求的Data包,若是,执行S103,若否,执行S104。
步骤S103,根据Interest包的转发信息,将该Interest包对应的Data包发送给请求方节点。
步骤S104,检索PIT,判断在PIT中是否存储有该Interest包。
步骤S105,将该Interest包的转发信息加入PIT。
步骤S106,更新PIT中的Interest包的转发信息。
如图1B所示,在转发平面中涉及CS和PIT的工作机制中,在Interest包到达转发平面的某个端口后,转发平面首先会检索CS存储器,参见S102a,其次检索PIT表,参见S104a。
如图2A所示,Data包到达转发平面的端口后转发平面的处理步骤可以包括:
步骤S201,接收Data包。
步骤S202,检索PIT,判断在PIT中是否存储有请求该Data的Interest包,若是,执行S203,若否,执行S205。
步骤S203,根据Interest包的转发信息,根据Interest包的转发信息,将该Data包发送给请求方节点。
步骤S204,在CS中,缓存该Data包。
步骤S205,丢弃该Data包。
如图1B所示,在转发平面中涉及CS和PIT的工作机制中,在Data包到达转发平面后,转发平面首先检索PIT表,然后在CS存储器中缓存Data包。
这种重复检索的过程保证了检索的准确性,但反复的检索过程会影响转发平面的工作性能。对此,本发明实施例提供的技术方案可解决ICN的转发平面在工作过程中需要在多个表项中反复检索数据所带来的问题。
下面对本发明实施例提供的数据处理方法进行详细说明。在本发明实施例中,Interest包和Data包均可以称为ICN包,本发明实施例提供的技术方案可应用于节点接收到Interest包或者Data包中任意一种ICN包后进行相应数据处理的场景。
实施例一
本发明实施例提供一种数据处理方法,本发明实施例的执行主体可以为ICN中的节点。示例性的,节点可以为路由器。本发明实施例可应用于节点在接收到第一ICN包后,获取第一ICN包对应的第二ICN包的相关信息的场景。图3为本发明实施例数据处理方法的流程示意图一。如图3所示,本发明实施例的步骤可以包括:
步骤S301,获取第一ICN包对应的第一偏移地址。
步骤S302,查询第一ICN包对应的第一偏移地址指向的记录,根据查询结果进行数据处理,其中,第一偏移地址指向的记录可以用于在本地存储有第一ICN包对应的第二ICN包时存储第二ICN包的存储地址或第二ICN包的转发信息。
在本发明实施例中,通过首先获取第一ICN包对应的第一偏移地址,然后查询第一ICN包对应的第一偏移地址指向的记录,根据查询结果进行数据处理,其中,第一偏移地址指向的记录可以用于在本地存储有第一ICN包对应的第二ICN包时存储第二ICN包的存储地址或第二ICN包的转发信息;由此可以看出,偏移地址与ICN包之间具有映射关系,而偏移地址指向的记录为转发信息或存储地址,这样,当第一ICN包为Interest包或Data包,第二ICN包为Data包或Interest包时,只需要根据第一ICN包查找到第一偏移地址,可以避免在接收到Interest包或Data包时,ICN中的节点重复检索带来的问题,从而提高节点的检索效率。
在本发明实施例中,在上述获取第一ICN包对应的偏移地址之前,可以包括:接收第一ICN包。在本发明实施例中,第一ICN包可以为Interest包,也可以是Data包,若第一ICN包为Interest包,第一ICN包对应的第二ICN包可以为第一ICN包请求的Data包。若第一ICN包为Data包,第一ICN包对应的第二ICN包可以为请求第一ICN包的Interest包。
在本发明实施例中,上述查询所述第一偏移地址指向的记录,根据查询结果进行数据处理,可以包括:
若所述第一ICN包为Interest包,查询所述第一偏移地址指向的记录是否存储有所述第二ICN包存储地址,所述第二ICN包为所述第一ICN包请求的所述Data包;若所述第一偏移地址指向的记录中存储有所述第二ICN包的存储地址,从所述第二ICN包的存储地址指向的存储空间中读取所述第二ICN包,并根据所述第一ICN包的转发信息回传所述第二ICN包;和/或,
若所述第一ICN包为Data包,查询所述第一偏移地址指向的记录是否存储有所述第二ICN包的转发信息,所述第二ICN包为请求所述第一ICN包请求的Interest包;若所述第一偏移地址指向的记录中存储有所述第二ICN包的转发信息,根据所述第二ICN包的转发信息,回传所述第一ICN包。
在本发明实施例中,获取第一ICN包对应的第一偏移地址,可以采用以下实施方式。在获取第一偏移地址的一种实施方式中,若第一ICN包为Interest包,上述获取第一ICN包对应的第一偏移地址,可以包括:获取第一ICN包请求的Data包的标识;根据第一ICN包请求的Data包的标识获取第一偏移地址。在获取第一偏移地址的另一种实施方式中,若第一ICN包为Data包,上述获取第一ICN包对应的第一偏移地址,可以包括:获取第一ICN包的标识;根据第一ICN包的标识获取第一偏移地址。在本发明其他实施例中,上述两种获取第一偏移地址的实施方式也可以组合使用。需要说明的是,Interest包的转发信息中可以包含所请求的Data包的标识,Data包的标识可以为Data包的名称。示例性的,Data包的名称可以为“/ndn/UA/maps”等。
在本发明实施例中,第一偏移地址指向的记录可以为记录表中的记录,例如,第一偏移地址可以为记录表中的各个记录的存储空间的地址标识。当节点接收到第一ICN包后,通过获取第一ICN包对应的第一偏移地址,根据第一偏移地址查询记录表中的记录,就可以获悉第一ICN包对应的第二ICN包的相关信息,从而可以提高节点的检索效率。
在记录表的一种实施方式的示例中,若第一ICN包为Interest包,第二ICN包为该Interest包请求的Data包,则第一ICN包对应的第一偏移地址指向的记录可以用于在本地存储有第二ICN包时存储第二ICN包的存储地址。举例来说,Interest1对应的第一偏移地址可以为偏移地址11,Interest2对应的第一偏移地址可以为偏移地址12,Interest3对应的第一偏移地址可以为偏移地址13,Interest1请求的Data包为Data1,Interest2请求的Data包为Data2,Interest3请求的Data包为Data3。表1为记录表的示例1。
表1
其中,偏移地址11指向的记录中可以存储有Data1的存储地址,偏移地址12指向的记录中可以存储有Data2的存储地址,由于本节点当前未存储有Interest3对应的Data3,因此偏移地址13指向的记录中当前可能未存储有Data3的存储地址,在本发明其他实施例中,当本节点接收到Data3并在CS中缓存Data3时,可以将Data3在CS中的存储地址存储在记录表中偏移地址13指向的记录中。采用这种实施方式,在接收到Interest包时可以避免重复检索带来的问题,提高节点的检索效率。
在记录表的另一种实施方式的示例中,若第一ICN包为Data包,第二ICN包为请求第一ICN包的Interest包,则第一偏移地址指向的记录可以用于在本地存储有第二ICN包时存储第二ICN包的转发信息。举例来说,Data1对应的第一偏移地址可以为偏移地址21,Data2对应的第一偏移地址可以为偏移地址22,Data3对应的第一偏移地址可以为偏移地址23,请求Data1的Interest包为Interest1,请求Data2的Interest包为Interest2,请求Data3的Interest包为Interest3。表2为记录表的示例2。
表2
偏移地址 | Interest包的转发信息 |
偏移地址21 | Interest1的转发信息 |
偏移地址22 | Interest2的转发信息 |
偏移地址23 | - |
其中,偏移地址21指向的记录中存储有Interest1的转发信息,偏移地址22指向的记录中存储有Interest2的转发信息,由于,因此,偏移地址23指向的记录中未存储有Interest3的转发信息,可以表示节点当前未接收到Interest3。在本发明其他实施例中,当本节点接收到Interest3时,可以将Interest3的转发信息存储在记录表中偏移地址13指向的记录中。采用这种实施方式,在接收到Data包时可以避免重复检索带来的问题,提高节点的检索效率。
在本发明其他实施例中,第一ICN包对应的第一偏移地址与第二ICN包对应的第二偏移地址相同可以相同。在第一ICN包对应的第一偏移地址与第二ICN包对应的第二偏移地址相同时,第一ICN包对应的第一偏移地址指向的记录实际上还可以用于在本地存储所述第一ICN包后存储所述第一ICN包的存储地址或所述第一ICN包的转发信息。举例来说,记录表还可以采用以下实施方式。
当第一ICN包为Interest包,第二ICN包为Data包时,第一偏移地址指向的记录可以用于在本地存储有第二ICN包时存储第二ICN包的存储地址,以及,用于在本地存储有第一ICN包时存储第一ICN包的转发信息。
当第一ICN包为Data包,第二ICN包为Interest包时,第一偏移地址指向的记录可以用于在本地存储有第二ICN包时存储第二ICN包的转发信息,以及,用于在本地存储有第一ICN包时存储第一ICN包的存储地址。
示例性地,Interest1和Data1可以对应相同的第一偏移地址,即偏移地址11,Interest2和Data2可以对应相同的第一偏移地址,即偏移地址12,Interest3和Data3可以对应相同的第一偏移地址,即偏移地址13。表3为记录表的示例3,在当前未存储有Data2,并且也未存储Interest3的转发信息时,记录表所记录的内容可以如表3所示。
表3
偏移地址 | Interest包的转发信息 | Data包在CS中的存储地址 |
偏移地址11 | Interest1的转发信息 | Data1的存储地址 |
偏移地址12 | Interest2的转发信息 | - |
偏移地址13 | - | Data3的存储地址 |
需要说明的是,在如表3所示的记录表中,Interest包对应的Data包的相关信息均存储在Interest包对应的偏移地址指向的记录中,同时,Data包对应的Interest包的相关信息也均存储在Data包对应的偏移地址指向的记录中。因此,节点在接收到Interest包或Data包任一种第一ICN包时,可以通过检索同一记录表获得对应的第二ICN包的相关信息,如转发信息、存储地址或者是否存储第二ICN包等。采用这种实施方式,在接收到Interest包和Data包时均可以避免重复检索带来的问题,提高节点的检索效率。
在本发明其他实施例中,在获取第一偏移地址之后,本发明实施例的步骤还可以包括:将所述第一ICN包的转发信息或者存储地址写入所述第一偏移地址指向的记录。
举例来说,上述查询第一偏移地址指向的记录,根据查询结果进行数据处理,还可以包括:
在所述第一ICN包为Interest包时,若所述第一偏移地址指向的记录中未存储有所述第二ICN包的存储地址,则更新所述第一偏移地址指向的记录中存储的所述第一ICN包的转发信息;和/或,
在所述第一ICN包为Data包时,若所述第一偏移地址指向的记录中存储有所述第二ICN包的转发信息,则缓存所述第一ICN包,并将所述第一ICN包的存储地址写入所述第一偏移地址指向的记录。
在本发明实施例中,可以采用上述两种获取第一偏移地址的实施方式的组合作为获取第一ICN包对应的第一偏移地址的又一种实施方式。采用上述获取第一偏移地址的实施方式的组合的实施方式来获取第一ICN包对应的第一偏移地址,可以确保第一ICN包与第二ICN包对应相同的偏移地址。也就是说,根据上述组合方式确定的第一ICN包对应的偏移地址与第一ICN包对应的第二ICN包所对应的第二偏移地址。
在本发明实施例中,采用上述示例的组合来确定第一偏移地址,由于第一ICN包和第一ICN包对应的第二ICN包对应相同的第一偏移地址,因此,节点在接收到Interest包或Data包任一种第一ICN包时,可以通过检索同一记录表获得对应的第二ICN包。
在本发明其他实施例中,在获取第一ICN包对应的第一偏移地址,并将第一ICN包的转发信息或者存储地址存入第一偏移地址指向的记录后,所述方法还可以包括以下步骤:
获取第三ICN包对应的第三偏移地址;
查询所述第三偏移地址指向的记录,根据查询结果进行数据处理;
其中,在所述第三偏移地址与所述第一偏移地址相同时,所述查询所述第三偏移地址指向的记录,根据查询结果进行数据处理,可以包括:
若所述第一ICN为Interest包,所述第三ICN包为所述第一ICN请求的Data包,查询到所述第三偏移地址指向的记录中存储有所述第一ICN包的转发信息,并根据查询到的所述第一ICN包的转发信息,回传所述第三ICN包;
若所述第一ICN为Data包,所述第三ICN包为请求所述第一ICN请求的Interest包,查询到所述第一偏移地址指向的记录中存储有所述第一ICN包的存储地址,从查询到的所述第一ICN包的存储地址所指向的存储空间中读取所述第一ICN包,并根据第三ICN包的转发信息,回传读取到的所述第一ICN包
在本发明其他实施例中,步骤S301至步骤S302的方法可以由节点中的片外存储器执行,相关技术方案细节可参见其他实施例中的描述。
不仅如此,本发明实施例提供的技术方案,在第一偏移地址指向的记录用于在本地存储有第一ICN包对应的第二ICN包时存储第二ICN包的存储地址或第二ICN包的转发信息,并同时用于在本地存储第一ICN包后存储第一ICN包的存储地址或第一ICN包的转发信息,可以使得在接收到Interest包和Data包时均可以避免ICN中的节点重复检索带来的问题,进而提高节点的检索效率。
实施例二
在上述实施例所示任一方法的基础上,本发明实施例还提供获取第一ICN包对应的第一偏移地址的一种实施方式。在本发明实施例中,还可以利用预设的定位函数,来获取第一ICN包对应的第一偏移地址。其中,定位函数可以用于确定输入的ICN包在索引单元中对应的标志位的位置。
举例来说,获取第一ICN包对应的第一偏移地址的步骤可以包括:
(1)根据定位函数,确定第一ICN包在索引单元中对应的标志位的位置。
(2)根据第一ICN包对应的标志位的位置,确定第一ICN包对应的第一偏移地址。
示例性的,定位函数可以为K个哈希函数,索引单元可以包括M个标志位,节点在接收到第一ICN包后,将第一ICN包的标识分别输入K个定位函数,可得到K个位置。则第一偏移地址可以为一个M位的地址,其中,根据第一ICN包的标识得到的K个位置的标志位的值均设置为1,除K个位置之外的标志位的值设置为0。
例如,K为3,M为6时,第一ICN包对应的标志位可以为2、4、5。则第一偏移地址可以为010110,其中,第2、4、5位为1,第1、3、6位为0。
在本发明其他实施例中,索引单元中的标志位的值可以用于表示本地是否存储有标志位对应的Interest包和/或Data包。
实施例三
本发明实施例还提供一种ICN节点的结构。该结构可用于执行上述任一实施例提供的数据处理方法。图4A为本发明实施例节点的结构示意图一。其中,节点中可以设置整合压缩型兴趣缓存400(Pending Interest Table and Content Store via CompressedMapping Bloom filter,CMaPIT&CS),CMaPIT&CS可以是具有处理能力的存储器,CMaPIT&CS也可以称为联合存储结构,其中包括片内存储单元41(On-chip memory)和片外存储单元(off-chip memory)42。在本发明其他实施例中,片内存储单元41可以使用高速存储器,片外存储单元可以使用低速存储器。
在本发明实施例中,片内存储单元41上可以部署一个压缩型可定位布隆过滤器(Compressed Mapping Bloom filter,CoMBF)411来实现数据检索及索引,压缩型可定位布隆过滤器中存储的数据也可以称为索引单元。CoMBF 411可以由两部分组成:一个包含m比特的压缩布隆过滤器(Compressed Bloom filter)4111,以及,一个含有j比特的定位数组(Mapping Array,MA)4112,其中,MA 4112与Compressed Bloom filter 4111的结构可以相同,都可以采用比特数组的形式。在本发明其他实施例中,CoMBF也可以由布隆滤波器(Bloom filter)4113、压缩单元(Compresses Unit)和MA 4112三部分组成,图4B为本发明实施例节点的结构示意图二。其中,压缩单元可以用于实现对标志位的感知压缩。
在本发明实施例中,片外存储单元42上可以部署一个与CoMBF 4111对应的计数布隆过滤器(counting bloom filter,CBF)421数据结构,以实现数据的更新和删除。另外,片外存储单元42上还可以部署一个包存储器(Packet Store)422来存放PIT的转发信息以及Data包在CS存储器中的存放位置,以实现PIT表索引结构与CS存储器索引结构的整合。在本发明其他实施例中,Packet Store可以为静态存储器。在本发明其他实施例中,PacketStore 222可以存储PIT 4221和CS 4222。
在本发明实施例中,Packet Store可以用于存储PIT和CS中的数据,第一偏移地址指向的记录可以为PIT中的记录。
在本发明实施例中,CoMBF 411可以表示一个含有n个元素的集合S,其中S={x1,x2,x3,...,xn},用于实现元素检索的基本功能,即确定一个数据元素是否在CoMBF所表示的数据集合中。同时,Compressed Bloom filter 4111的数据压缩功能,可有效降低网络中的数据传输量。通过在网络中传输Compressed Bloom filter的比特数组,可以使得CoMBF411具备网络数据传输、数据共享功能。
在本发明其他实施例中,当一个Interest包到达转发平面时,可以首先将Interest包的名称输入CMaPIT&CS。然后在CoMBF中对Interest包的名称进行精确字符串匹配。如果在CoMBF中有匹配条目,则根据CoMBF输出的偏移地址,访问Packet Store。随后,检查Packet Store中相应记录是否记载了指向CS存储器的指针。如果有指向CS存储器的指针,说明在CS中包含与Interest包对应的Data包,则读取Data包即可。如果没有指向CS存储器的指针,则更新Packet Store中该记录的Interest包转发信息,等待Data包的到来。
当Data包到达转发平面时,首先将Data包的名称输入CMaPIT&CS。随后,在CoMBF中对Data包的名称进行精确字符串匹配操作。如果在CoMBF中有匹配条目,则根据CoMBF输出的偏移地址访问Packet Store,读取相应Interest包的转发信息,回传Data包。同时,在Packet Store中记录Data包在CS存储器中的存储位置。如果在CoMBF中没有匹配条目,则直接丢弃该Data包。
实施例四
在上述实施例所示任一数据处理方法的基础上,本发明实施例还提供一种数据处理方法,图5为本发明实施例数据处理方法的交互流程示意图一。如图所示,本发明实施例的执行主体可以为片内存储单元和片外存储单元,本发明实施例的步骤可以包括:
步骤S501,片内存储单元接收第一ICN包。
其中,该第一ICN包可以是Interest包或者Data包。
步骤S502,片内存储单元获取第一ICN包对应的第一偏移地址。
其中,获取第一偏移地址可以采用上述实施例所述的任一获取方式。
步骤S503,片内存储单元向片外存储单元发送第一ICN包对应的第一偏移地址。
步骤S504,片外存储单元查询第一偏移地址指向的记录。
步骤S505,片外存储单元判断第一偏移地址指向的记录中是否存在第一ICN包对应的第二ICN包的相关信息,若存在,执行S506。
步骤S506,片外存储单元发送第二ICN包的相关信息。
步骤S507,片内存储单元根据第一ICN包和第二ICN包的相关信息进行数据处理。
本发明实施例的其他技术方案细节和技术效果可参见其他实施例中的描述。
在本发明其他实施例中,在步骤S502之前,还可以包括片内存储单元判断是否存在匹配的索引条目,若存在,再执行获取第一ICN包对应的第一偏移地址的步骤。图6为本发明实施例数据处理方法的交互流程示意图二。如图6所示,本发明实施例的步骤可以包括:
步骤S601,片内存储单元接收第一ICN包。
步骤S602,片内存储单元判断是否存在匹配的索引条目,若存在,执行S603。
其中,本发明实施例提供两种判断是否存在匹配的索引条目的实施方式。
在本发明实施例提供的第一种判断是否存在匹配的索引条目的实施方式中,若所述第一ICN包为Data包,所述第二ICN包为Interest包,则所述判断是否存在与所述第一ICN包的标识相匹配的索引条目,可以包括:根据定位函数,确定所述第一ICN包在索引单元中对应的标志位的位置,其中,所述索引单元中的标志位的值用于表示本地是否存储有标志位对应的Data包;查询所述第一ICN包对应的标志位的值;若所述第一ICN包对应的标志位的值为有效,确定存在与所述第一ICN包的标识相匹配的索引条目。
在本发明实施例提供的第一种判断是否存在匹配的索引条目的实施方式中,若所述第一ICN包为Interest包,所述第二ICN包为所述第一ICN包所请求的Data包,则上述判断是否存在与所述第一ICN包的标识相匹配的索引条目,可以包括:根据定位函数,确定所述第一ICN包对应的所述第二ICN包在索引单元中对应的标志位的位置;查询所述第二ICN包对应的标志位的值;若所述第二ICN包对应的标志位的值为有效,确定存在与所述第一ICN包的标识相匹配的索引条目。
在本发明实施例提供的第二种判断是否存在匹配的索引条目的实施方式中,可以采用索引条目表来确定是否存在ICN包对应的索引条目。
表4为本发明实施例提供的索引条目表的一示例。其中,每条索引条目可以包括多个属性,如索引条目的标识、索引条目对应的Interest包、本地是否存储有索引条目对应的Interest包、索引条目对应的Data包,本地是否存储有索引条目对应的Data包等属性。其中,索引条目的标识可以为索引条目的编号,也可以是索引条目对应的Data包与Interest包的组合。需要说明的是,在索引条目表中,第一ICN包和第一ICN包对应的第二ICN包可以对应相同标识的索引条目。也就是说,Data包和请求该Data包的Interest包可以对应相同标识的索引条目。
表4
如表4所示,Data1和请求Data1的Interest1可以对应索引条目1,Data2和请求Data2的Interest2可以对应索引条目2,Data3和请求Data3的Interest3可以对应索引条目3,节点存储的Interest包有Interest1、Interest2,节点存储的Data包有Data2和Data3。
基于表4所示例的索引条目表,上述判断是否存在与所述第一ICN包的标识相匹配的索引条目,可以包括:
若所述第一ICN包为Data包,所述第二ICN包为Interest包,判断第一ICN包对应的索引条目是否表示本地存储有第二ICN包,即判断“本地是否存储有索引条目对应的Interest包”属性是否为是,若是,则确定存在与第一ICN包的标识相匹配的索引条目。
若所述第一ICN包为Interest包,所述第二ICN包为所述第一ICN包所请求的Data包,判断第一ICN包对应的索引条目是否表示本地存储有第二ICN包,即判断“本地是否存储有索引条目对应的Data包”属性是否为是,若是,则确定存在与第一ICN包的标识相匹配的索引条目。
在本发明其他实施例中,上述“本地是否存储有索引条目对应的Data包”属性和“本地是否存储有索引条目对应的Interest包”属性的属性值可以采用数值等形式表示,例如,可以采用“1”或者“有效”表示“是”,“0”或者“无效”表示“否”。本发明实施例对此不作限制。
步骤S603,片内存储单元获取第一ICN包对应的第一偏移地址。
步骤S604,片内存储单元向片外存储单元发送第一ICN包对应的第一偏移地址。
步骤S605,片外存储单元查询第一偏移地址指向的记录。
步骤S606,片外存储单元判断第一偏移地址指向的记录中是否存在第一ICN包对应的第二ICN包的相关信息,若存在,执行S607。
步骤S607,片外存储单元向片内存储单元发送第二ICN包的相关信息。
步骤S608,片内存储单元根据第一ICN包和第二ICN包的相关信息进行数据处理。
在本发明实施例中,需要说明的是,上述步骤S602相当于是步骤S603中获取第一ICN包对应的第一偏移地址的一种触发条件。即,可以在存在第一ICN包的标识相匹配的索引条目时执行获取第一ICN包对应的第一偏移地址的步骤。
索引条目可以是这样一种数据:(1)若本地存储有第一ICN包,则第一ICN包对应的索引条目记录“本地有ICN1”,(2)若本地存储有第二ICN包,则第二ICN包对应的索引条目记录“本地有ICN2”,(3)第一ICN包和第二ICN包对应的索引条目是同一个索引条目。
在本发明其他实施例中,ICN包对应的索引条目可以根据ICN包的标识确定,例如,根据ICN包的标识确定的标志位的位置作为索引条目表中索引条目的标识。
示例性的,索引条目表的结构可以与偏移地址指向的记录表的结构相似。
在本发明实施例中,步骤S601、S603至S608与步骤S501至S507类似。
本发明实施例还提供一种数据处理方法,其中,第一ICN包可以为Interest1包,第一ICN包对应的第二ICN包可以为Data1,图7A为本发明实施例数据处理方法的交互流程示意图三。如图7A所示,本发明实施例提供的数据处理方法的步骤可以包括:
步骤S7101,片内存储单元接收Interest1。
步骤S7102,片内存储单元判断是否存在匹配的索引条目,若存在,执行S7103。
其中,该步骤可参考S602的说明。
步骤S7103,片内存储单元获取Interest1对应的偏移地址11。
步骤S7104,片内存储单元向片外存储单元发送Interest1对应的偏移地址11。
步骤S7105,片外存储单元查询偏移地址11指向的记录。
步骤S7106,片外存储单元判断偏移地址11指向的记录中是否存在Interest1请求的Data1的存储地址,若存在,读取Data1,执行S7107,若不存在,执行S7109。
步骤S7107,片外存储单元发送Data1。
步骤S7108,片内存储单元根据Interest1的转发信息,回传Data1。
步骤S7109,片外存储单元将Interest1的转发信息写入偏移地址11指向的记录中。
本发明实施例的其他技术方案细节和技术效果可参见其他实施例中的描述。
本发明实施例还提供一种数据处理方法,其中,第一ICN包可以为Data1包,第一ICN包对应的第二ICN包可以为Interest1,图7B为本发明实施例数据处理方法的交互流程示意图四。如图7B所示,本发明实施例提供的数据处理方法的步骤可以包括:
步骤S7201,片内存储单元接收Data1。
步骤S7202,片内存储单元判断是否存在匹配的索引条目,若存在,执行S7203,若不存在,执行S7210。
其中,该步骤可参考S602的说明。
步骤S7203,片内存储单元获取Data1对应的偏移地址21。
步骤S7204,片内存储单元向片外存储单元发送Data1对应的偏移地址21。
步骤S7205,片外存储单元查询偏移地址21指向的记录。
步骤S7206,片外存储单元判断偏移地址21指向的记录中是否存在请求Data1的Interest1的转发信息,若存在,读取Interest1的转发信息,执行S7207和S7209,若不存在,执行S7210。
步骤S7207,片外存储单元向片内存储单元发送Interest1的转发信息。
步骤S7208,片内存储单元根据Interes1的转发信息,回传Data1。
步骤S7209,片外存储单元缓存Data1,并将Data1的存储地址写入偏移地址21指向的记录中
步骤S7209,片外存储单元发送用于指示不存在Interest1的转发信息的指示信息。
步骤S7210,片内存储单元丢弃Data1。
本发明实施例的其他技术方案细节和技术效果可参见其他实施例中的描述。
在图7A所示方法的基础上,本发明实施例还提供一种数据处理方法,图7C为本发明实施例数据处理方法的交互流程示意图五。如图7C所示,本发明实施例的步骤可以包括:
步骤S7301,片上存储单元接收Data1。
在本发明实施例中,该步骤可以在S7109之后执行。
步骤S7302,片上存储单元判断是否存在匹配的索引条目,若存在,执行S7303,若不存在,执行S7310。
步骤S7303,片上存储单元获取Data1对应的偏移地址11。
步骤S7304,片上存储单元发送Data1对应的偏移地址11。
步骤S7305,片外存储单元查询偏移地址11指向的记录。
步骤S7306,片外存储单元确定偏移地址11指向的记录中是否存在请求Data1的Interest1的转发信息,读取Interest1的转发信息,执行S7307和S7309。
步骤S7307,片外存储单元发送Interest1的转发信息。
步骤S7308,片上存储单元根据Interes1的转发信息,回传Data1。
步骤S7309,片外存储单元缓存Data1,并将Data1的存储地址写入偏移地址21指向的记录中。
步骤S7310,片内存储单元丢弃Data1。
本发明实施例的其他技术方案细节和技术效果可参见其他实施例中的描述。
实施例五
本发明实施例还提供一种数据处理方法,可以用于快速确定本地存储有哪些Data包或者Interest包,从而可以使得节点能够快速获悉本地存储的Data包或者Interest包,进而提高节点的检索效率。该实施方式还可以用于在ICN网络中共享本节点上存储的数据。
图8为本发明实施例数据处理方法的流程示意图二。如图8所示,本发明实施例的步骤可以包括:
步骤S801,获取第一ICN包。
其中,第一ICN包为兴趣Interest包或数据Data包。
步骤S802,根据定位函数,确定第一ICN包在索引单元中对应的标志位的位置。
步骤S803,根据第一ICN包对应的标志位的位置,查询或者设置第一ICN包对应的标志位的值。
其中,索引单元中的标志位的值用于表示本地是否存储有标志位对应的Interest包和/或Data包。
在本发明实施例中,当节点在接收到ICN包并存储了ICN包的相关信息之后,可以将索引单元中该ICN包对应的标志位设置为有效。举例来说,上述根据第一ICN包对应的标志位的位置,查询或者设置第一ICN包对应的标志位的值,可以包括:在本地存储有第一ICN包时,将第一ICN包对应的标志位的值设置为有效。示例性的,可以在S7109、S7209或者S7309之后将ICN包对应的标志位的值设置为有效。在本发明其他实施例中,当节点在启用时已经存储有一些Data数据时,可以在启用节点时就设置这些Data包对应的标志位为有效。
在本发明实施例中,定位函数可以用于确定任一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位的二进制数,该M位的二进制数可以作为指向记录表中的偏移地址。
在本发明实施例中,索引单元例如可以为比特数组,其中,一个ICN包可以对应索引单元中的一个比特位或者多个比特位,则ICN包在索引单元中对应的标志位即一个或者多个比特位。示例性的,可以将ICN包对应的比特位的值为1时,确定ICN对应的标志位为有效,可以将ICN包对应的比特位的值不全为0时,确定ICN包对应的标志位为无效。
在本发明其他实施例中,为了减少标志位的数量,以减小索引单元的存储空间以及在网络共享时需要传输的索引单元的传输数据量,还可以采用压缩标志位作为各个ICN包对应的标志位的实施方式。
举例来说,上述根据定位函数,确定所述第一ICN包在索引单元中对应的标志位的位置,还可以采用以下步骤实施:首先根据所述定位函数,确定所述第一ICN包在所述索引单元中映射的非压缩标志位的位置;然后对所述第一ICN包对应的非压缩标志位的位置进行压缩感知,得到所述第一ICN包对应的压缩标志位的位置;再将所述第一ICN包对应的压缩标志位的位置作为所述第一ICN对应的标志位的位置;其中,索引单元中的非压缩标志位的总数大于所述索引单元中压缩标志位的总数。在本发明其他实施例中,非压缩标志位的总数可以为M位,例如32位,压缩标志位的总数可以为N位,例如18位。
在本发明实施例中,为了向ICN网络中的其他节点共享本节点中存储了哪些Data包或者存储了哪些Interest包的信息,在根据所述第一ICN包对应的标志位的位置,查询或者设置所述第一ICN包对应的标志位的值之后,所述方法还可以包括:
向其他节点发送索引单元。
在本发明其他实施例中,标志位可以存储在片内存储单元中,示例性的,可以将片内存储单元的Compressed Bloom filter中的比特数组的各个比特位作为节点存储的ICN包所对应的标志位。则上述向其他节点发送索引单元可以包括:向其他节点发送Compressed Bloom filter中的比特数组。也就是说,在转发平面需要共享CS中的缓存信息时,向网络中传输片内存储单元中Compressed Bloom filter的比特数组即可完成信息的共享。
在本发明实施例中,上述根据定位函数,确定第一ICN包在索引单元中对应的标志位的位置,可以采用以下步骤实施:
若第一ICN包为第一Data包,根据第一Data包的标识和定位函数,确定第一ICN包对应的标志位的位置;
若第一ICN包为第二Interest包,第二Interest包所请求的Data包为第二Data包,根据第二Data包的标识和所述定位函数,确定第一ICN包对应的标志位的位置。
在本发明其他实施例中,在上述根据所述第一ICN包对应的标志位的位置,查询或者设置所述第一ICN包对应的标志位的值之后,所述方法还可以包括:
根据所述第一ICN包对应的标志位的位置,确定所述第一ICN包对应的第一偏移地址,其中,所述第一偏移地址指向的记录用于存储所述第一ICN包对应的第二ICN包的转发信息或者存储地址;之后,查询所述第一ICN包对应的第一偏移地址指向的记录,根据查询结果进行数据处理。其中,查询第一ICN包对应的第一偏移地址指向的记录,根据查询结果进行数据处理的步骤的实施方式可以参见本发明其他实施例中的相关描述。
在本发明其他实施例中,在上述根据第一ICN包对应的标志位的位置,确定第一ICN包对应的第一偏移地址之前,所述方法还可以包括:
确定第一ICN包对应的第二ICN包的标志位是否为有效;
若第一ICN包对应的第二ICN包的标志位为有效,执行根据第一ICN包对应的标志位的位置,确定第一ICN包对应的第一偏移地址的步骤。
需要说明的是,当节点接收到第一ICN包之后,可以通过查询索引单元中第二ICN包对应的标志位的值,先初步确认节点是否可能存储有第二ICN包,若可能存在第二ICN包,再根据第二ICN包对应的标志位的值确定偏移地址,偏移地址指向的记录表存储在片外存储单元中,查询偏移地址指向的记录,进而根据查询结果进行数据处理。
通过上述算法描述可以发现,使用CMaPIT&CS存储结构可有效简化名称数据的检索过程,降低片内存储单元中的索引结构的检索频率以及片外存储单元中的慢速存储器的访问次数。同时还可以清晰地观察到,在CMaPIT&CS中,无论Interest包还是Data包,检索时间复杂度都由CoMBF决定,其时间复杂度为O(1)。
在上述实施例的基础上,本发明实施例还提供一种数据处理方法,图9为本发明实施例数据处理方法的流程示意图三。在上述根据定位函数,确定第一ICN包在索引单元中对应的标志位的位置之后,本发明实施例的方法还可以包括以下步骤:
步骤S901,获取第一ICN包。
其中,该步骤与S801类似。
步骤S902,根据定位函数,确定第一ICN包在索引单元中对应的标志位的位置。
其中,该步骤与S802类似。
步骤S903,根据第一ICN包对应的标志位的位置,设置第一ICN包对应的标志位的值。
其中,该步骤与S803类似。
步骤S904,获取第三ICN包。
其中,第三ICN包可以是Interest包也可以是Data包。
步骤S905,根据定位函数,确定第三ICN包在索引单元中对应的标志位的位置。
在本发明实施例中,定位函数可以为K个哈希函数,则上述确定第三ICN包在索引单元中对应的标志位的位置可以采用以下实施方式。举例来说,可以将ICN包的标识输入K个哈希函数,将K个哈希函数的计算结果按照K个哈希函数的顺序排成二进制数,将二进制数中比特位的值为1的比特位的位置作为ICN包在索引单元中对应的标志位的位置。
步骤S906,查询第三ICN包对应的标志位的值。
在本发明实施例中,在上述根据定位函数,确定第三ICN包在索引单元中对应的标志位的位置之后,本发明实施例的方法还可以包括:
步骤S907,根据第三ICN包对应的标志位的位置,确定第三ICN包对应的第二偏移地址。
步骤S908,查询第三ICN包对应的第二偏移地址指向的记录,根据查询结果进行数据处理。
其中,第二偏移地址指向的记录可用于存储第三ICN包对应的第四ICN包的转发信息或者存储地址。
在本发明实施例中,若第三ICN包为Data包,上述根据定位函数,确定第三ICN包在索引单元中对应的标志位,可以包括:根据定位函数和第三ICN包的标识,确定第三ICN包对应的标志位;对应地,上述查询第三ICN包对应的标志位的值,可以包括:查询索引单元中第三ICN包对应的标志位的位置的值是否为有效;若为有效,根据第三ICN包的标识,获取第三ICN包对应的第二偏移地址;进一步地,若第二偏移地址所指向的记录中存储有请求所述第三ICN包的Interest包的转发信息,根据请求所述第三ICN包的Interest包的转发信息,回传所述第三ICN包。
在本发明实施例中,若第三ICN包为Interest包;上述获取第二偏移地址,可以包括:根据定位函数和第三ICN包请求的Data包的标识,确定第三ICN包对应的标志位;对应地,上述查询第三ICN包对应的标志位的值,可以包括:查询索引单元中第三ICN包对应的标志位的位置的值是否为有效;若为有效,根据第三ICN包的标识,获取第三ICN包对应的第二偏移地址;进一步地,若第二偏移地址所指向的记录中存储有第三ICN包请求的Data包的存储地址,从第三ICN包请求的Data包的存储地址中读取第三ICN包请求的Data包,并根据第三ICN包的转发信息,回传第三ICN包请求的Data包。
需要说明的是,本实施例中与其它实施例中相同步骤或者概念的解释,可以参照其它实施例中的描述。本发明实施例的其他技术效果可参考其他实施例中的描述,此处不再赘述。
实施例六
下面对本发明实施例提供的数据处理方法进行举例说明。
在一示例中,在CMaPIT&CS存储结构中检索Interest包的处理过程可以如下所述:
在该存储结构中,设置K=3个哈希函数,CoMBF数据结构中的Bloom filter的大小被设置为32比特,Compressed Unit的大小被设置为18比特,同时Compressed Unit被均等的分为6份。与之相对应的定位数组MA被设置为6比特,也就是说,该存储结构可在PacketStore中存储26个元素。需要说明的是,压缩单元均等的分数与定位数组的比特位数需要相同。
在这个系统中,命名为/ndn/UA/videos和/ndn/UA/maps的两个Interest包依次输入存储结构。其中,每次Interest包输入前,定位数组MA都会被初始化为全0状态。需要说明的是,命名为/ndn/UA/videos和/ndn/UA/maps的两个Interest包表示的含义是,两个Interest包请求的Data包的名称分别为/ndn/UA/videos和/ndn/UA/maps。
当第一个Interest包输入时,首先将Interest包的名称/ndn/UA/videos输入CMaPIT&CS存储结构中,Bloom filter中的第6、14、20比特位被哈希映射,且这三个比特位均为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的相应记录是指偏移地址指向的记录表中的记录。
同理,命名为/ndn/UA/maps的Interest包也存在于该存储结构中,其在PacketStore中的偏移地址为110100。随后检查Packet Store的相应记录没有记载指向CS存储器的指针,即不存在第二个Interest包对应的Data包,最后更新该记录的Interest包的转发信息,等待Data包的到来。
在另一示例中,在CMaPIT&CS存储结构中检索Data包的处理过程可以如下所述:
在该存储结构中,使用K=3个哈希函数,CoMBF数据结构中的Bloom filter的大小被设置为32比特,Compressed Unit的大小被设置为18比特,同时Compressed Unit被均等的分为6份。与之相对应的定位数组MA被设置为6比特,因此该存储结构可在Packet Store中存储26个元素。
在这个系统中,命名为/ndn/UA/maps和/TJU/videos的两个Data包依次输入。每次Data包输入前,定位数组MA都会被初始化为全0状态。需要说明的是,命名为/ndn/UA/maps和/TJU/videos的两个Data包表示的含义是,这两个Data包的名称分别为/ndn/UA/maps和/TJU/videos。
当第一个Data包输入时,首先将Data包的名称/ndn/UA/maps输入CMaPIT&CS存储结构中,Bloom filter中的第2、5、16比特位被哈希映射,且这三个比特位均为1,即表示Data包存在于该结构中。经过压缩感知,Compressed Unit的第1、2、4部分存在哈希映射,因此定位数组MA的第1、2、4比特位的数值将被设定为1,其他位置数值为0。最终得到定位数组MA的值为110100,即Data包在Packet Store中的偏移地址为110100。随后,检查PacketStore的相应记录记载了相应Interest包的转发信息,根据该转发信息回传该Data包。同时,在Packet Store中记录该Data包在CS存储器中的存储位置。同理,命名为/TJU/videos的Data包在Bloom filter中的第1、7、21比特位被哈希映射,但这三个比特位不全为1,即在CoMBF中没有匹配记录,因此直接丢弃该Data包。需要说明的是,Packet Store的相应记录是指偏移地址指向的记录表中的记录。
需要说明的是,本实施例中与其它实施例中相同步骤或者概念的解释,可以参照其它实施例中的描述。本发明实施例的其他技术效果可参考其他实施例中的描述,此处不再赘述。
本发明实施例将PIT表与CS存储器索引整合在一起,即利用CoMBF构建统一的联合存储结构CMaPIT&CS,也可以称为索引结果。通过部署能够直接索引与共享数据的高效数据结构CoMBF,使得CMaPIT&CS能够减少转发平面在处理数据包时的检索次数,提高检索性能。同时,进一步降低转发平面的存储消耗,提高名称数据的检索速度,提高检索性能。
本发明实施例还提供一种数据处理设备1000。图10为本发明实施例数据处理设备的结构示意图。如图10所示,该设备包括处理器1001和用于存储能够在处理器上运行的计算机程序的存储器1002。
其中,处理器1001用于运行所述计算机程序时,执行图3至图7C任一所示数据处理方法的步骤,和/或,图8至图9任一所示数据处理方法的步骤。
在本发明实施例中,数据处理设备1000还可以包括接口1003和总线1004等,其中,接口1003可以用于接收或者发送ICN包或者发送索引单元,总线1004用于处理器1001、存储器1002和接口1003之间数据交互。
在本发明实施例中,数据处理设备可以位于ICN网络中的节点上,示例性的,可以位于中间节点,也可以位于终端节点。在本发明其他实施例中,数据处理设备可以是路由器或者终端。
需要说明的是,本实施例中与其它实施例中相同步骤或者概念的解释,可以参照其它实施例中的描述,此处不再赘述。本发明实施例的其他技术效果可参考其他实施例中的描述,此处不再赘述。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有数据处理程序,所述数据处理程序被处理器执行时实现上述实施例所示数据处理方法的步骤。
需要说明的是,本实施例中与其它实施例中相同步骤或者概念的解释,可以参照其它实施例中的描述,此处不再赘述。本发明实施例的其他技术效果可参考其他实施例中的描述,此处不再赘述。
在实际应用中,上述实施例中涉及的接收单元、获取单元、处理单元和发送单元均可由位于无线数据发送设备中的中央处理器(Central Processing Unit,CPU)、微处理器(Micro Processor Unit,MPU)、数字信号处理器(Digital Signal Processor,DSP)或现场可编程门阵列(Field Programmable Gate Array,FPGA)等实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (24)
1.一种数据处理方法,其特征在于,应用于信息中心网络ICN中的节点,所述方法包括:
获取第一ICN包对应的第一偏移地址;
查询所述第一偏移地址指向的记录,根据查询结果进行数据处理;
其中,所述第一偏移地址指向的记录用于在本地存储有所述第一ICN包对应的第二ICN包时存储所述第二ICN包的存储地址或所述第二ICN包的转发信息。
2.根据权利要求1所述的方法,其特征在于,
若所述第一ICN包为兴趣Interest包,所述第一ICN对应的第二ICN包为所述第一ICN包请求的数据Data包,则所述第一偏移地址指向的记录用于在本地存储有所述第二ICN包时存储所述第二ICN包的存储地址;
若所述第一ICN包为Data包,所述第一ICN对应的第二ICN包为请求所述第一ICN包的Interest包,则所述第一偏移地址指向的记录用于在本地存储有所述第二ICN包时存储所述第二ICN包的转发信息。
3.根据权利要求1所述的方法,其特征在于,所述第一偏移地址指向的记录还用于在本地存储所述第一ICN包后存储所述第一ICN包的存储地址或所述第一ICN包的转发信息;
所述方法还包括:将所述第一ICN包的转发信息或者存储地址写入所述第一偏移地址指向的记录。
4.根据权利要求1所述的方法,其特征在于,所述查询所述第一偏移地址指向的记录,根据查询结果进行数据处理,包括:
若所述第一ICN包为Interest包,查询所述第一偏移地址指向的记录是否存储有所述第二ICN包存储地址,所述第二ICN包为所述第一ICN包请求的所述Data包;若所述第一偏移地址指向的记录中存储有所述第二ICN包的存储地址,从所述第二ICN包的存储地址指向的存储空间中读取所述第二ICN包,并根据所述第一ICN包的转发信息回传所述第二ICN包;
若所述第一ICN包为Data包,查询所述第一偏移地址指向的记录是否存储有所述第二ICN包的转发信息,所述第二ICN包为请求所述第一ICN包请求的Interest包;若所述第一偏移地址指向的记录中存储有所述第二ICN包的转发信息,根据所述第二ICN包的转发信息,回传所述第一ICN包。
5.根据权利要求4所述的方法,其特征在于,所述第二ICN包对应的第二偏移地址与所述第一偏移地址相同,所述第一偏移地址指向的记录还用于在本地存储所述第一ICN包后存储所述第一ICN包的存储地址或所述第一ICN包的转发信息;
则所述查询所述第一偏移地址指向的记录,根据查询结果进行数据处理,还包括:
在所述第一ICN包为Interest包时,若所述第一偏移地址指向的记录中未存储有所述第二ICN包的存储地址,则更新所述第一偏移地址指向的记录中存储的所述第一ICN包的转发信息;
在所述第一ICN包为Data包时,若所述第一偏移地址指向的记录中存储有所述第二ICN包的转发信息,则缓存所述第一ICN包,并将所述第一ICN包的存储地址写入所述第一偏移地址指向的记录。
6.根据权利要求3或5所述的方法,其特征在于,
获取第三ICN包对应的第三偏移地址;
查询所述第三偏移地址指向的记录,根据查询结果进行数据处理;
其中,在所述第三偏移地址与所述第一偏移地址相同时,所述查询所述第三偏移地址指向的记录,根据查询结果进行数据处理,包括:
若所述第一ICN为Interest包,所述第三ICN包为所述第一ICN请求的Data包,查询到所述第三偏移地址指向的记录中存储有所述第一ICN包的转发信息,并根据查询到的所述第一ICN包的转发信息,回传所述第三ICN包;
若所述第一ICN为Data包,所述第三ICN包为请求所述第一ICN请求的Interest包,查询到所述第一偏移地址指向的记录中存储有所述第一ICN包的存储地址,从查询到的所述第一ICN包的存储地址所指向的存储空间中读取所述第一ICN包,并根据第三ICN包的转发信息,回传读取到的所述第一ICN包。
7.根据权利要求1所述的方法,其特征在于,所述获取所述第一ICN包对应的第一偏移地址,包括:
若所述第一ICN包为Interest包,获取所述第一ICN包请求的第二ICN包的标识,根据所述第一ICN包请求的第二ICN包的标识获取所述第一偏移地址;
若所述第一ICN包为Data包,获取所述第一ICN包的标识,根据所述第一ICN包的标识获取所述第一偏移地址。
8.根据权利要求1-5,7任一所述的方法,其特征在于,所述获取第一ICN包对应的第一偏移地址,包括:
根据定位函数,确定所述第一ICN包在索引单元中对应的标志位的位置;
根据所述第一ICN包对应的标志位的位置,确定所述第一偏移地址;
其中,所述索引单元中的标志位的值用于表示本地是否存储有标志位对应的Interest包和/或Data包。
9.根据权利要求1-5,7任一所述的方法,其特征在于,在所述获取第一ICN包对应的第一偏移地址之前,包括:
获取所述第一ICN包;
判断是否存在与所述第一ICN包的标识相匹配的索引条目,所述索引条目用于记录本地是否存储有所述第一ICN包和/或所述第一ICN包对应的所述第二ICN包;
若存在与所述第一ICN包的标识相匹配的索引条目,执行所述获取第一ICN包对应的第一偏移地址的步骤。
10.根据权利要求9所述的方法,其特征在于,若所述第一ICN包为Data包,所述第二ICN包为Interest包,所述方法还包括:
若不存在与所述第一ICN包的标识相匹配的索引条目,则丢弃所述第一ICN包。
11.根据权利要求9所述的方法,其特征在于,若所述第一ICN包为Data包,所述第二ICN包为Interest包,则所述判断是否存在与所述第一ICN包的标识相匹配的索引条目,包括:
根据定位函数,确定所述第一ICN包在索引单元中对应的标志位的位置,其中,所述索引单元中的标志位的值用于表示本地是否存储有标志位对应的Data包;
查询所述第一ICN包对应的标志位的值;
若所述第一ICN包对应的标志位的值为有效,确定存在与所述第一ICN包的标识相匹配的索引条目。
12.根据权利要求9所述的方法,其特征在于,若所述第一ICN包为Interest包,所述第二ICN包为所述第一ICN包所请求的Data包,则所述判断是否存在与所述第一ICN包的标识相匹配的索引条目,包括:
根据定位函数,确定所述第一ICN包对应的所述第二ICN包在索引单元中对应的标志位的位置;
查询所述第二ICN包对应的标志位的值;
若所述第二ICN包对应的标志位的值为有效,确定存在与所述第一ICN包的标识相匹配的索引条目。
13.一种数据处理方法,其特征在于,应用于信息中心网络ICN中的节点,所述方法包括:
获取第一ICN包,所述第一ICN包为兴趣Interest包或数据Data包;
根据定位函数,确定所述第一ICN包在索引单元中对应的标志位的位置;
根据所述第一ICN包对应的标志位的位置,查询或者设置所述第一ICN包对应的标志位的值;
其中,所述索引单元中的标志位的值用于表示本地是否存储有标志位对应的Interest包和/或Data包。
14.根据权利要求13所述的方法,其特征在于,所述根据定位函数,确定所述第一ICN包在索引单元中对应的标志位的位置,包括:
根据所述定位函数,确定所述第一ICN包在所述索引单元中映射的非压缩标志位的位置;
对所述第一ICN包对应的非压缩标志位的位置进行压缩感知,得到所述第一ICN包对应的压缩标志位的位置;
将所述第一ICN包对应的压缩标志位的位置作为所述第一ICN对应的标志位的位置;
其中,所述索引单元中的非压缩标志位的总数大于所述索引单元中压缩标志位的总数。
15.根据权利要求13或14所述的方法,其特征在于,所述根据所述第一ICN包对应的标志位的位置,设置所述第一ICN包对应的标志位的值,包括:在本地存储有所述第一ICN包时,将所述第一ICN包对应的标志位的值设置为有效;
在将所述第一ICN包对应的标志位的值设置为有效之后,所述方法还包括:向其他节点发送所述索引单元。
16.根据权利要求13或14所述的方法,其特征在于,所述根据定位函数,确定所述第一ICN包在索引单元中对应的标志位的位置,包括:
若所述第一ICN包为第一Data包,根据所述第一Data包的标识和所述定位函数,确定所述第一ICN包对应的标志位的位置;
若所述第一ICN包为第二Interest包,所述第二Interest包所请求的Data包为第二Data包,根据所述第二Data包的标识和所述定位函数,确定所述第一ICN包对应的标志位的位置。
17.根据权利要求13所述的方法,其特征在于,在所述根据所述第一ICN包对应的标志位的位置,查询或者设置所述第一ICN包对应的标志位的值之后,所述方法还包括:
根据所述第一ICN包对应的标志位的位置,确定所述第一ICN包对应的第一偏移地址,其中,所述第一偏移地址指向的记录用于存储所述第一ICN包对应的第二ICN包的转发信息或者存储地址;
查询所述第一ICN包对应的第一偏移地址指向的记录,根据查询结果进行数据处理。
18.根据权利要求17所述的方法,其特征在于,在所述根据所述第一ICN包对应的标志位的位置,确定所述第一ICN包对应的第一偏移地址之前,所述方法还包括:
确定所述第一ICN包对应的第二ICN包的标志位是否为有效;
若所述第一ICN包对应的第二ICN包的标志位为有效,执行根据所述第一ICN包对应的标志位的位置,确定所述第一ICN包对应的第一偏移地址的步骤。
19.根据权利要求17所述的方法,其特征在于,在所述根据定位函数,确定所述第一ICN包在索引单元中对应的标志位的位置之后,所述方法还包括:
获取第三ICN包;
根据所述定位函数,确定所述第三ICN包在所述索引单元中对应的标志位的位置;
查询所述第三ICN包对应的标志位的值。
20.根据权利要求19所述的方法,其特征在于,在所述根据所述定位函数,确定所述第三ICN包在所述索引单元中对应的标志位的位置之后,所述方法还包括:
根据所述第三ICN包对应的标志位的位置,确定所述第三ICN包对应的第二偏移地址,所述第二偏移地址指向的记录用于存储所述第三ICN包对应的第四ICN包的转发信息或者存储地址;
查询所述第三ICN包对应的第二偏移地址指向的记录,根据查询结果进行数据处理。
21.根据权利要求13或14所述的方法,其特征在于,所述定位函数为K个哈希函数,所述索引单元包括M个标志位,其中,M和K为大于或者等于1的整数,且M大于或者等于K;
对于任一ICN包,所述根据定位函数,确定ICN包在索引单元中对应的标志位的值,包括:
根据所述ICN包和所述定位函数,在所述索引单元的M个标志位中确定所述ICN包对应的K个标志位的值。
22.根据权利要求21所述的方法,其特征在于,在所述根据定位函数,确定所述第一ICN包在索引单元中对应的标志位的值之后,所述方法还包括:
根据所述K个标志位的位置和值确定所述第一ICN包对应的K位偏移地址。
23.一种应用于信息中心网络ICN的数据处理设备,其特征在于,所述设备包括处理器和用于存储能够在处理器上运行的计算机程序的存储器;
其中,所述处理器用于运行所述计算机程序时,执行权利要求1至12中任一项所述的数据处理方法的步骤,和/或,执行权利要求13至22中任一项所述的数据处理方法的步骤。
24.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有报文转发程序,所述报文转发程序被处理器执行时实现如权利要求1至12中任一项所述的数据处理方法的步骤,和/或,如权利要求13至22中任一项所述的数据处理方法的步骤。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810356463.XA CN110399539A (zh) | 2018-04-19 | 2018-04-19 | 一种数据处理方法、设备和计算机可读存储介质 |
PCT/CN2019/081204 WO2019201091A1 (zh) | 2018-04-19 | 2019-04-03 | 一种数据处理方法、设备和计算机可读存储介质 |
KR1020207030227A KR102428429B1 (ko) | 2018-04-19 | 2019-04-03 | 데이터 처리 방법, 데이터 처리 장치 및 컴퓨터 판독 가능한 저장 매체 |
EP19788847.2A EP3770767B1 (en) | 2018-04-19 | 2019-04-03 | Data processing method and device, and computer readable storage medium |
US17/048,809 US11489765B2 (en) | 2018-04-19 | 2019-04-03 | Data processing method and device, and computer readable storage medium |
JP2020558055A JP7109583B2 (ja) | 2018-04-19 | 2019-04-03 | データ処理方法、機器及びコンピュータ読み取り可能な記憶媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810356463.XA CN110399539A (zh) | 2018-04-19 | 2018-04-19 | 一种数据处理方法、设备和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110399539A true CN110399539A (zh) | 2019-11-01 |
Family
ID=68239381
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810356463.XA Pending CN110399539A (zh) | 2018-04-19 | 2018-04-19 | 一种数据处理方法、设备和计算机可读存储介质 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11489765B2 (zh) |
EP (1) | EP3770767B1 (zh) |
JP (1) | JP7109583B2 (zh) |
KR (1) | KR102428429B1 (zh) |
CN (1) | CN110399539A (zh) |
WO (1) | WO2019201091A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220255867A1 (en) * | 2019-05-02 | 2022-08-11 | Intel Corporation | Enabling quality of service (qos) in information centric networking (icn) |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4732972B2 (ja) | 2006-06-30 | 2011-07-27 | 株式会社エヌ・ティ・ティ・ドコモ | アドホックネットワーク、ノード、経路制御方法、及び経路制御プログラム |
KR101688857B1 (ko) * | 2010-05-13 | 2016-12-23 | 삼성전자주식회사 | 컨텐츠 중심 네트워크(ccn)에서 단말 및 허브의 통신 방법 및 컨텐츠 중심 네트워크를 위한 단말 |
EP2562978B1 (en) | 2011-08-12 | 2014-10-08 | Alcatel Lucent | Content router of a content centric network |
JP6190288B2 (ja) | 2014-02-25 | 2017-08-30 | 日本電信電話株式会社 | キャッシュ制御装置及び方法及びプログラム |
US9386118B2 (en) | 2014-10-09 | 2016-07-05 | Fujitsu Limited | Online progressive content placement in a content centric network |
CN105072030B (zh) * | 2015-07-02 | 2019-01-15 | 哈尔滨工程大学 | 一种基于内容聚类的命名数据网络路由系统及其聚类查询方法 |
US10033639B2 (en) * | 2016-03-25 | 2018-07-24 | Cisco Technology, Inc. | System and method for routing packets in a content centric network using anonymous datagrams |
CN105704032B (zh) * | 2016-04-13 | 2019-03-01 | 北京邮电大学 | 一种兴趣包转发方法及装置 |
CN106506719B (zh) * | 2016-11-07 | 2019-06-14 | 北京邮电大学 | 命名数据网络中分发策略的配置方法及配置系统 |
CN107908357B (zh) * | 2017-10-13 | 2020-08-21 | 天津大学 | 命名数据网转发平面pit存储结构及其数据检索方法 |
-
2018
- 2018-04-19 CN CN201810356463.XA patent/CN110399539A/zh active Pending
-
2019
- 2019-04-03 EP EP19788847.2A patent/EP3770767B1/en active Active
- 2019-04-03 US US17/048,809 patent/US11489765B2/en active Active
- 2019-04-03 WO PCT/CN2019/081204 patent/WO2019201091A1/zh unknown
- 2019-04-03 KR KR1020207030227A patent/KR102428429B1/ko active IP Right Grant
- 2019-04-03 JP JP2020558055A patent/JP7109583B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
EP3770767A1 (en) | 2021-01-27 |
JP7109583B2 (ja) | 2022-07-29 |
WO2019201091A1 (zh) | 2019-10-24 |
US20210168069A1 (en) | 2021-06-03 |
KR20200135451A (ko) | 2020-12-02 |
EP3770767A4 (en) | 2021-04-21 |
JP2021519038A (ja) | 2021-08-05 |
KR102428429B1 (ko) | 2022-08-02 |
EP3770767B1 (en) | 2023-07-12 |
US11489765B2 (en) | 2022-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104054068B (zh) | 用于远程桌面协议的改进的带宽优化 | |
CN104901997B (zh) | 用于内容中心网络中的直接存储装置存取的系统和方法 | |
CN105812351B (zh) | 实现会话共享的方法和系统 | |
CN108696895A (zh) | 资源获取方法、装置及系统 | |
CN107079060A (zh) | 用于运营商级nat优化的系统和方法 | |
CN111241138B (zh) | 数据匹配方法及装置 | |
CN107948324A (zh) | 请求传输系统、方法、装置及存储介质 | |
JP2004172917A (ja) | パケット検索装置及びそれに用いるパケット処理検索方法並びにそのプログラム | |
CN107832343B (zh) | 一种基于位图的mbf数据索引结构对数据快速检索的方法 | |
CN106790762A (zh) | 域名解析方法和装置 | |
CN107506396A (zh) | 一种数据缓存初始化方法、移动终端以及计算机可读存储介质 | |
CN107908357A (zh) | 命名数据网转发平面pit存储结构及其数据检索方法 | |
CN108536617A (zh) | 缓存管理方法、介质、系统和电子设备 | |
CN109242458A (zh) | 基于区块链的信息管理方法及相关设备 | |
CN110399539A (zh) | 一种数据处理方法、设备和计算机可读存储介质 | |
TWI735633B (zh) | 資料傳輸的方法、設備、裝置及系統 | |
CN114793223A (zh) | Dns记录的存储方法、装置、存储介质及电子设备 | |
WO2019242374A1 (zh) | 数据结构、数据索引方法、装置及设备、存储介质 | |
EP4136809B1 (en) | Distributed flow processing and flow cache | |
CN110460528A (zh) | 命名数据网转发平面的fib存储结构及其使用方法 | |
CN108021674A (zh) | 一种同步云端仿真数据的多级缓存传输加速系统 | |
CN110851658B (zh) | 树形索引数据结构、内容存储池、路由器及树形索引方法 | |
CN111988195B (zh) | 用于分组测试的应答方案确定方法、装置、设备及介质 | |
CN109428822A (zh) | 一种名字查找方法和网络设备 | |
CN110247996A (zh) | 基于智慧课堂的可配置缓存系统的无线路由装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |