CN114827655A - 内容存储转发方法及装置、电子设备、存储介质 - Google Patents
内容存储转发方法及装置、电子设备、存储介质 Download PDFInfo
- Publication number
- CN114827655A CN114827655A CN202210721168.6A CN202210721168A CN114827655A CN 114827655 A CN114827655 A CN 114827655A CN 202210721168 A CN202210721168 A CN 202210721168A CN 114827655 A CN114827655 A CN 114827655A
- Authority
- CN
- China
- Prior art keywords
- content
- hash value
- packet
- name identifier
- data packet
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 230000006870 function Effects 0.000 claims description 19
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000004458 analytical method Methods 0.000 claims description 3
- 238000004806 packaging method and process Methods 0.000 claims description 2
- 230000010354 integration Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Images
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/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/232—Content retrieval operation locally within server, e.g. reading video streams from disk arrays
-
- 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/901—Indexing; Data structures therefor; Storage structures
-
- 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
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2212/00—Encapsulation of packets
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种内容存储转发方法及装置、电子设备、存储介质,包括:接收命名数据网络中的兴趣包;将所述兴趣包转发给所述存储节点,以使得所述存储节点根据所述兴趣包中的名字标识的哈希值查找相应的内容,并将所述内容封装成数据包,所述数据包中包含名字标识的哈希值以及与之对应的内容;接收所述存储节点转发的所述数据包;将所述数据包转发至兴趣包端口,所述兴趣包端口为曾经接收包含与所述数据包中内容相对应的名字标识的端口;将另一数据包转发给所述存储节点,以使得所述存储节点解析所述另一数据包中的名字标识的哈希值和内容,并将所述名字标识的哈希值以及对应内容进行存储。该方法兼顾命名数据网络中转发性能与存储性能。
Description
技术领域
本申请涉及数据/网络传输技术领域,尤其涉及一种内容存储转发方法及装置、电子设备、存储介质。
背景技术
在目前的互联网中,视频点播是一种重要的网络应用。传统IP网络对于这类业务部署复杂开销大,不能高效获取视频内容。命名数据网络作为新型的下一代互联网体系结构,支持网络内缓存和多路径传输,能够支撑视频内容的高效传输。因此,这就要求交换机在实现报文转发的同时需要能够支持内容存储。
面对上述需求,目前主流技术可分为两大类:一是使用外挂式的终端模块用于存储内容;二是在交换机上使用额外的存储模块完成缓存。
在实现本发明过程中,发现现有技术至少存在如下问题:
使用外挂式的终端用于存储内容会导致转发性能受限,增加了硬件开销及部署难度,且容易因各种因素产生异常导致内容存储可靠度不够高;为提升交换机转发性能,一般需要使用数据平面开发套件,这就隔离了物理网卡与linux内核协议栈之间的通信,最终导致无法在交换机上同时实现高性能转发与可靠的内容存储。
发明内容
本申请实施例的目的是提供一种内容存储转发方法及装置、电子设备、存储介质,以解决相关技术中存在的命名数据网络中转发性能与存储性能无法兼得的技术问题。
根据本申请实施例的第一方面,提供一种内容存储转发方法,应用于可编程交换机,该方法包括:
接收命名数据网络中的兴趣包,所述兴趣包中包含名字标识的哈希值;
将所述兴趣包转发给所述存储节点,以使得所述存储节点根据所述兴趣包中的名字标识的哈希值查找相应的内容,并将所述内容封装成数据包,所述数据包中包含名字标识的哈希值以及与之对应的内容;
接收所述存储节点转发的所述数据包;
将所述数据包转发至兴趣包端口,所述兴趣包端口为曾经接收包含与所述数据包中内容相对应的名字标识的端口;
将另一数据包转发给所述存储节点,以使得所述存储节点解析所述另一数据包中的名字标识的哈希值和内容,并将所述名字标识的哈希值以及对应内容进行存储。
可选地,其中,在接收命名数据网络中的兴趣包后,还包括:
判断所述兴趣包之前是否接收到过;
如果是,则执行将所述兴趣包转发给所述存储节点的步骤;
如果否,则转发给其他可编程交换机等待网络中的其他可编程交换机来响应所述兴趣包。
根据本申请实施例的第二方面,提供一种内容存储转发方法,应用于存储节点,该方法包括:
接收可编程交换机转发的兴趣包,所述兴趣包来自命名数据网络,所述兴趣包中包含名字标识的哈希值;
根据所述兴趣包中的名字标识的哈希值查找相应的内容;
将所述内容封装成数据包后转发给所述可编程交换机,以使得所述可编程交换机将所述数据包转发给兴趣包端口,所述数据包中包含名字标识的哈希值以及与之对应的内容,所述兴趣包端口为曾经接收包含与所述数据包中内容相对应的名字标识的端口;
接收所述可编程交换机转发的另一数据包;
解析所述另一数据包中的名字标识的哈希值和内容;
将所述名字标识的哈希值以及对应内容进行存储。
可选地,其中,将所述名字标识的哈希值以及对应内容进行存储,包括:
根据存储节点预设的段大小,计算存储所述内容需要划分的段数;
根据所述段数,依次对内容进行划分,形成需要存储的每段内容;
使用预设的哈希函数计算所述每段内容的哈希值;
判断所述每段内容的哈希值与已经存储的每段内容的哈希值是否冲突,如果发生哈希冲突,则使用候选哈希函数重新计算所述每段内容的哈希值,直至不发生冲突;
将内容分段存储,分别记录所述名字标识的哈希值、内容段数、当前段号、当前段内容的哈希值、相应内容数据段,由此完成内容存储。
根据本申请实施例的第三方面,提供一种内容存储转发装置,应用于可编程交换机,该装置包括:
第一接收模块,用于接收命名数据网络中的兴趣包,所述兴趣包中包含名字标识的哈希值;
第一转发模块,用于将所述兴趣包转发给所述存储节点,以使得所述存储节点根据所述兴趣包中的名字标识的哈希值查找相应的内容,并将所述内容封装成数据包,所述数据包中包含名字标识的哈希值以及与之对应的内容;
第二接收模块,用于接收所述存储节点转发的所述数据包;
第二转发模块,用于将所述数据包转发至兴趣包端口,所述兴趣包端口为曾经接收包含与所述数据包中内容相对应的名字标识的端口;
第三转发模块,用于将另一数据包转发给所述存储节点,以使得所述存储节点解析所述另一数据包中的名字标识的哈希值和内容,并将所述名字标识的哈希值以及对应内容进行存储。
可选地,其中,在第一接收模块后,还包括:
判断模块,用于判断所述兴趣包之前是否接收到过;
第一执行模块,用于如果是,则执行将所述兴趣包转发给所述存储节点的步骤;
第二执行模块,用于如果否,则转发给其他可编程交换机等待网络中的其他可编程交换机来响应所述兴趣包。
根据本申请实施例的第四方面,提供一种内容存储转发装置,应用于存储节点,该装置包括:
第三接收模块,用于接收可编程交换机转发的兴趣包,所述兴趣包来自命名数据网络,所述兴趣包中包含名字标识的哈希值;
查找模块,用于根据所述兴趣包中的名字标识的哈希值查找相应的内容;
第四转发模块,用于将所述内容封装成数据包后转发给所述可编程交换机,以使得所述可编程交换机将所述数据包转发给兴趣包端口,所述数据包中包含名字标识的哈希值以及与之对应的内容,所述兴趣包端口为曾经接收包含与所述数据包中内容相对应的名字标识的端口;
第四接收模块,用于接收所述可编程交换机转发的另一数据包;
解析模块,用于解析所述另一数据包中的名字标识的哈希值和内容;
存储模块,用于将所述名字标识的哈希值以及对应内容进行存储。
可选地,其中,存储模块,包括:
第一计算模块,用于根据存储节点预设的段大小,计算存储所述内容需要划分的段数;
划分模块,用于根据所述段数,依次对内容进行划分,形成需要存储的每段内容;
第二计算模块,用于使用预设的哈希函数计算所述每段内容的哈希值;
判断模块,用于判断所述每段内容的哈希值与已经存储的每段内容的哈希值是否冲突,如果发生哈希冲突,则使用候选哈希函数重新计算所述每段内容的哈希值,直至不发生冲突;
存储子模块,用于将内容分段存储,分别记录所述名字标识的哈希值、内容段数、当前段号、当前段内容的哈希值、相应内容数据段,由此完成内容存储。
根据本申请实施例的第五方面,提供一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面或第二方面所述的方法。
根据本申请实施例的第六方面,提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面或第二方面所述方法的步骤。
本申请的实施例提供的技术方案可以包括以下有益效果:
由上述实施例可知,可编程交换机与存储节点之间能够接收解析、封装发送兴趣包、需要的数据包并存储相关内容,可直接从交换机上响应兴趣包中请求的内容,实现了可编程交换机上存储与转发一体,从转发与存储一体化的角度解决了命名数据网络中转发性能与存储性能无法兼得的问题,对于加速命名数据网络在实际网络中的部署有较强的现实意义。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是根据一示例性实施例示出的一种内容存储转发方法的流程图。
图2是根据一示例性实施例示出的另一种内容存储转发方法的流程图。
图3是根据一示例性实施例示出的又一种内容存储转发方法的流程图。
图4是根据一示例性实施例示出的步骤S211的流程图。
图5是根据一示例性实施例示出的一种内容存储转发装置的框图。
图6是根据一示例性实施例示出的另一种内容存储转发装置的框图。
图7是根据一示例性实施例示出的又一种内容存储转发装置的框图。
图8是根据一示例性实施例示出的存储模块211的框图。
图9是根据一示例性实施例示出的一种电子设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
图1是根据一示例性实施例示出的一种内容存储转发方法的流程图,如图1所示,该方法应用于可编程交换机中,可以包括以下步骤:
步骤S11,接收命名数据网络中的兴趣包,所述兴趣包中包含名字标识的哈希值;
步骤S13,将所述兴趣包转发给所述存储节点,以使得所述存储节点根据所述兴趣包中的名字标识的哈希值查找相应的内容,并将所述内容封装成数据包,所述数据包中包含名字标识的哈希值以及与之对应的内容;
步骤S15,接收所述存储节点转发的所述数据包;
步骤S17,将所述数据包转发至兴趣包端口,所述兴趣包端口为曾经接收包含与所述数据包中内容相对应的名字标识的端口;
步骤S19,将另一数据包转发给所述存储节点,以使得所述存储节点解析所述另一数据包中的名字标识的哈希值和内容,并将所述名字标识的哈希值以及对应内容进行存储。
由上述实施例可知,可编程交换机与存储节点之间能够接收解析、封装发送兴趣包、需要的数据包并存储相关内容,可直接从交换机上响应兴趣包中请求的内容,实现了可编程交换机上存储与转发一体。利用可编程交换机实现了命名数据网络中报文的高性能转发,从转发与存储一体化的角度解决了命名数据网络中转发性能与存储性能无法兼得的问题,对于加速命名数据网络在实际网络中的部署有较强的现实意义。
在步骤S11的具体实施中,可编程交换机接收命名数据网络中的兴趣包,所述兴趣包中包含名字标识的哈希值;
具体地,所述兴趣包由网络中一终端发出,报文结构符合命名数据网络协议栈中规定的格式。
可编程交换机收到兴趣包后,按照编程设定的解析过程解析报文,提取报文中的名字标识的哈希值,例如如果兴趣包中的名字标识为/snt/sedan/state,则在报文中提取到0x7ede。
此步骤提取了命名数据网络中兴趣包的名字标识的哈希值,用于转发兴趣包或查找存储节点上是否已经有对应内容。
在步骤S13的具体实施中,可编程交换机将所述兴趣包转发给所述存储节点,以使得所述存储节点根据所述兴趣包中的名字标识的哈希值查找相应的内容,并将所述内容封装成数据包,所述数据包中包含名字标识的哈希值以及与之对应的内容;
具体地,所述存储节点能够支持命名数据网络协议栈,依据协议栈规定的格式解析并封装兴趣包及数据包,依据内容计算相应哈希值并减少哈希冲突。
利用内核网卡接口技术,可编程交换机能够与存储节点建立通信,将所述兴趣包转发至存储节点,使得存储节点解析所述兴趣包,解析获得兴趣包中名字标识的哈希值。根据所述名字标识的哈希值,存储节点查找对应内容的哈希值,并进一步找到内容。存储节点将内容按命名数据网络协议栈封装成数据包。
该步骤用于查找存储节点上的内容,避免了兴趣包继续转发,能直接将存储节点上对应的内容响应请求了兴趣包的端口,从而实现存储与转发一体。
在步骤S15的具体实施中,可编程交换机接收所述存储节点转发的所述数据包;
具体地,数据包包含名字标识的哈希值以及对应内容。可编程交换机利用基于内核网卡接口技术建立的可编程交换机与存储节点的通信网口接收所述数据包。
该步骤将命名数据网络的优势落地实现,避免了兴趣包继续转发,直接从存储节点获取相应内容,节约网络带宽。
在步骤S17的具体实施中,可编程交换机将所述数据包转发至兴趣包端口,所述兴趣包端口为曾经接收包含与所述数据包中内容相对应的名字标识的端口;
具体地,可编程交换机通过另一内部寄存器变量获得所述兴趣包端口,将所述数据包转发至兴趣包端口。
该步骤完成了命名数据网络的优势,利用可编程交换机的存储节点直接响应兴趣包,实现存储与转发一体,同时节约网络带宽。
在步骤S19的具体实施中,可编程交换机将另一数据包转发给所述存储节点,以使得所述存储节点解析所述另一数据包中的名字标识的哈希值和内容,并将所述名字标识的哈希值以及对应内容进行存储。
具体地,由于实际网络中有多个可编程交换机节点,所述可编程交换机可能收到来自其他可编程交换机的数据包。可编程交换机将另一数据包转发给存储节点,存储节点解析相应数据包,得到名字标识的哈希值及对应内容。存储节点查找是否已经存储过所述名字标识的哈希值;如果是,则丢弃所述另一数据包;如果否,则存储所述名字标识的哈希值以及对应内容。
该步骤不断补充存储节点上存储的内容,能够在之后收到相应兴趣包时直接响应兴趣包,实现转发与存储一体,充分发挥命名数据网络的优势,节约网络带宽。
为了查找所述兴趣包是否能由可编程交换机直接响应,参考图2,在步骤S11后,还可包括:
步骤S121,判断所述兴趣包之前是否接收到过;
具体地,可编程交换机根据内部寄存器存储的变量数值判断所述兴趣包之前是否接收到过。
步骤S122,如果是,则执行将所述兴趣包转发给所述存储节点的步骤;
步骤S123,如果否,则转发给其他可编程交换机等待网络中的其他可编程交换机来响应所述兴趣包。
具体地,如果是,则利用基于内核网卡接口技术建立的可编程交换机与存储节点的通信网口向存储节点发送所述数据包,由存储节点返回数据包,完成兴趣包的响应;如果否,则表明所述可编程交换机没有存储相应内容,只能转发给其他可编程交换机等待网络中的其他可编程交换机来响应所述兴趣包。
图3是根据一示例性实施例示出的一种内容存储转发方法的流程图,如图3所示,该方法应用于存储节点中,可以包括以下步骤:
步骤S21,存储节点接收可编程交换机转发的兴趣包,所述兴趣包来自命名数据网络,所述兴趣包中包含名字标识的哈希值;
步骤S23,存储节点根据所述兴趣包中的名字标识的哈希值查找相应的内容;
步骤S25,存储节点将所述内容封装成数据包后转发给所述可编程交换机,以使得所述可编程交换机将所述数据包转发给兴趣包端口,所述数据包中包含名字标识的哈希值以及与之对应的内容,所述兴趣包端口为曾经接收包含与所述数据包中内容相对应的名字标识的端口;
步骤S27,存储节点接收所述可编程交换机转发的另一数据包;
步骤S29,存储节点解析所述另一数据包中的名字标识的哈希值和内容;
步骤S211,存储节点将所述名字标识的哈希值以及对应内容进行存储。
由上述实施例可知,可编程交换机与存储节点之间能够接收解析、封装发送兴趣包、需要的数据包并存储相关内容,可直接从交换机上响应兴趣包中请求的内容,实现了可编程交换机上存储与转发一体。利用可编程交换机实现了命名数据网络中报文的高性能转发,从转发与存储一体化的角度解决了命名数据网络中转发性能与存储性能无法兼得的问题,对于加速命名数据网络在实际网络中的部署有较强的现实意义。
步骤S21-步骤S29的详细描述请参考步骤S11-步骤S19,这里不做赘述。
在步骤S211的具体实施中,存储节点将所述名字标识的哈希值以及对应内容进行存储,参考图4,可以包括以下子步骤:
步骤S2111,根据存储节点预设的段大小,计算所述内容需要存储的内容段数;
具体地,因硬件设备等因素,无法直接存储内容,因此,需要将内容分段存储。存储节点根据解析的数据包中内容的大小,计算得到存储所述内容需要的段数,其中每段内容的大小由存储节点预设确定。该步骤将后续协助完成内容存储。
步骤S2113,使用预设的哈希函数依次计算所述每段内容的哈希值;
具体地,哈希函数是存储中常用的一种方法,用于将内容计算为一串二进制数据,例如,可将哈希值作为内容存储的地址。使用存储节点中预设的某种哈希函数,依次使用每段内容作为函数输入,得到输出数值作为每段内容的哈希值。该步骤利用哈希函数可减小存储搜索开销。
步骤S2115,依次判断所述每段内容的哈希值与已经存储的哈希值是否冲突,如果发生哈希冲突,则使用候选哈希函数重新计算所述每段内容的哈希值,直至不发生冲突;
具体地,哈希函数容易发生哈希冲突,因此需要尽量减少哈希冲突。依次判断所述每段内容的哈希值与已经存储的哈希值是否冲突,如果发生哈希冲突,则使用其他候选哈希函数重新计算所述每段内容的哈希值,直至不发生冲突。该步骤用于尽量减少哈希冲突。
步骤S2117,将内容分段存储,分别记录名字标识的哈希值、内容段数、当前段号、当前段内容的哈希值、相应内容数据段,由此完成内容存储。
具体地,存储节点依次记录名字标识的哈希值、内容段数、当前段号、当前段内容的哈希值、相应内容数据段,完成内容存储。该步骤用于存储内容,以方便后续查找内容,直接从存储节点响应兴趣包,实现存储与转发一体。
本申请利用可编程交换机实现了命名数据网络中报文的高性能转发,可利用内核网卡接口技术实现可编程交换机物理网卡与内核协议栈的通信,使得可编程交换机与存储节点能够交互通信,从而使得存储节点能够接收兴趣包、数据包,根据数据包内容更新存储,根据兴趣包内容响应请求发送数据包,从转发与存储一体化的角度解决了命名数据网络中转发性能与存储性能无法兼得的问题,对于加速命名数据网络在实际网络中的部署有较强的现实意义。
与前述的内容存储转发方法的实施例相对应,本申请还提供了内容存储转发装置的实施例。
图5是根据一示例性实施例示出的一种内容存储转发装置框图。参照图5,应用于可编程交换机,该装置包括:
第一接收模块11,用于接收命名数据网络中的兴趣包,所述兴趣包中包含名字标识的哈希值;
第一转发模块13,用于将所述兴趣包转发给所述存储节点,以使得所述存储节点根据所述兴趣包中的名字标识的哈希值查找相应的内容,并将所述内容封装成数据包,所述数据包中包含名字标识的哈希值以及与之对应的内容;
第二接收模块15,用于接收所述存储节点转发的所述数据包;
第二转发模块17,用于将所述数据包转发至兴趣包端口,所述兴趣包端口为曾经接收包含与所述数据包中内容相对应的名字标识的端口;
第三转发模块19,用于将另一数据包转发给所述存储节点,以使得所述存储节点解析所述另一数据包中的名字标识的哈希值和内容,并将所述名字标识的哈希值以及对应内容进行存储。
其中,参考图6,在第一接收模块11后,还包括:
判断模块121,用于判断所述兴趣包之前是否接收到过;
第一执行模块122,用于如果是,则执行将所述兴趣包转发给所述存储节点的步骤;
第二执行模块123,用于如果否,则转发给其他可编程交换机等待网络中的其他可编程交换机来响应所述兴趣包。
图7是根据一示例性实施例示出的一种内容存储转发装置框图。参照图7,应用于存储节点,该装置包括:
第三接收模块21,用于接收可编程交换机转发的兴趣包,所述兴趣包来自命名数据网络,所述兴趣包中包含名字标识的哈希值;
查找模块23,用于根据所述兴趣包中的名字标识的哈希值查找相应的内容;
第四转发模块25,用于将所述内容封装成数据包后转发给所述可编程交换机,以使得所述可编程交换机将所述数据包转发给兴趣包端口,所述数据包中包含名字标识的哈希值以及与之对应的内容,所述兴趣包端口为曾经接收包含与所述数据包中内容相对应的名字标识的端口;
第四接收模块27,用于接收所述可编程交换机转发的另一数据包;
解析模块29,用于解析所述另一数据包中的名字标识的哈希值和内容;
存储模块211,用于将所述名字标识的哈希值以及对应内容进行存储。
其中,参考图8,存储模块211,包括:
第一计算模块2111,用于根据存储节点预设的段大小,计算存储所述内容需要划分的段数;
划分模块2113,用于根据所述段数,依次对内容进行划分,形成需要存储的每段内容;
第二计算模块2115,用于使用预设的哈希函数计算所述每段内容的哈希值;
判断模块2117,用于判断所述每段内容的哈希值与已经存储的每段内容的哈希值是否冲突,如果发生哈希冲突,则使用候选哈希函数重新计算所述每段内容的哈希值,直至不发生冲突;
存储子模块2119,用于将内容分段存储,分别记录所述名字标识的哈希值、内容段数、当前段号、当前段内容的哈希值、相应内容数据段,由此完成内容存储。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
相应的,本申请还提供一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述的内容存储转发方法。如图9所示,为本发明实施例提供的一种内容存储转发装置所在任意具备数据处理能力的设备的一种硬件结构图,除了图9所示的处理器、内存和网络接口之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
相应的,本申请还提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如上述的内容存储转发方法。
所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是风力发电机的外部存储设备,例如所述设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、SD卡、闪存卡(Flash Card)等。进一步的,所述计算机可读存储介还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
本领域技术人员在考虑说明书及实践这里公开的内容后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (10)
1.一种内容存储转发方法,其特征在于,该方法包括:
接收命名数据网络中的兴趣包,所述兴趣包中包含名字标识的哈希值;
将所述兴趣包转发给存储节点,以使得所述存储节点根据所述兴趣包中的名字标识的哈希值查找相应的内容,并将所述内容封装成数据包,所述数据包中包含名字标识的哈希值以及与之对应的内容;
接收所述存储节点转发的所述数据包;
将所述数据包转发至兴趣包端口,所述兴趣包端口为曾经接收包含与所述数据包中内容相对应的名字标识的端口;
将另一数据包转发给所述存储节点,以使得所述存储节点解析所述另一数据包中的名字标识的哈希值和内容,并将所述名字标识的哈希值以及对应内容进行存储。
2.根据权利要求1所述的方法,其特征在于,在接收命名数据网络中的兴趣包后,还包括:
判断所述兴趣包之前是否接收到过;
如果是,则执行将所述兴趣包转发给所述存储节点的步骤;
如果否,则转发给其他可编程交换机等待网络中的其他可编程交换机来响应所述兴趣包。
3.一种内容存储转发方法,其特征在于,该方法包括:
接收可编程交换机转发的兴趣包,所述兴趣包来自命名数据网络,所述兴趣包中包含名字标识的哈希值;
根据所述兴趣包中的名字标识的哈希值查找相应的内容;
将所述内容封装成数据包后转发给所述可编程交换机,以使得所述可编程交换机将所述数据包转发给兴趣包端口,所述数据包中包含名字标识的哈希值以及与之对应的内容,所述兴趣包端口为曾经接收包含与所述数据包中内容相对应的名字标识的端口;
接收所述可编程交换机转发的另一数据包;
解析所述另一数据包中的名字标识的哈希值和内容;
将所述名字标识的哈希值以及对应内容进行存储。
4.根据权利要求3所述的方法,其特征在于,将所述名字标识的哈希值以及对应内容进行存储,包括:
根据存储节点预设的段大小,计算存储所述内容需要划分的段数;
根据所述段数,依次对内容进行划分,形成需要存储的每段内容;
使用预设的哈希函数计算所述每段内容的哈希值;
判断所述每段内容的哈希值与已经存储的每段内容的哈希值是否冲突,如果发生哈希冲突,则使用候选哈希函数重新计算所述每段内容的哈希值,直至不发生冲突;
将内容分段存储,分别记录所述名字标识的哈希值、内容段数、当前段号、当前段内容的哈希值、相应内容数据段,由此完成内容存储。
5.一种内容存储转发装置,其特征在于,该装置包括:
第一接收模块,用于接收命名数据网络中的兴趣包,所述兴趣包中包含名字标识的哈希值;
第一转发模块,用于将所述兴趣包转发给存储节点,以使得所述存储节点根据所述兴趣包中的名字标识的哈希值查找相应的内容,并将所述内容封装成数据包,所述数据包中包含名字标识的哈希值以及与之对应的内容;
第二接收模块,用于接收所述存储节点转发的所述数据包;
第二转发模块,用于将所述数据包转发至兴趣包端口,所述兴趣包端口为曾经接收包含与所述数据包中内容相对应的名字标识的端口;
第三转发模块,用于将另一数据包转发给所述存储节点,以使得所述存储节点解析所述另一数据包中的名字标识的哈希值和内容,并将所述名字标识的哈希值以及对应内容进行存储。
6.根据权利要求5所述的装置,其特征在于,在第一接收模块后,还包括:
判断模块,用于判断所述兴趣包之前是否接收到过;
第一执行模块,用于如果是,则执行将所述兴趣包转发给所述存储节点的步骤;
第二执行模块,用于如果否,则转发给其他可编程交换机等待网络中的其他可编程交换机来响应所述兴趣包。
7.一种内容存储转发装置,其特征在于,该装置包括:
第三接收模块,用于接收可编程交换机转发的兴趣包,所述兴趣包来自命名数据网络,所述兴趣包中包含名字标识的哈希值;
查找模块,用于根据所述兴趣包中的名字标识的哈希值查找相应的内容;
第四转发模块,用于将所述内容封装成数据包后转发给所述可编程交换机,以使得所述可编程交换机将所述数据包转发给兴趣包端口,所述数据包中包含名字标识的哈希值以及与之对应的内容,所述兴趣包端口为曾经接收包含与所述数据包中内容相对应的名字标识的端口;
第四接收模块,用于接收所述可编程交换机转发的另一数据包;
解析模块,用于解析所述另一数据包中的名字标识的哈希值和内容;
存储模块,用于将所述名字标识的哈希值以及对应内容进行存储。
8.根据权利要求7所述的装置,其特征在于,所述存储模块包括:
第一计算模块,用于根据存储节点预设的段大小,计算存储所述内容需要划分的段数;
划分模块,用于根据所述段数,依次对内容进行划分,形成需要存储的每段内容;
第二计算模块,用于使用预设的哈希函数计算所述每段内容的哈希值;
判断模块,用于判断所述每段内容的哈希值与已经存储的每段内容的哈希值是否冲突,如果发生哈希冲突,则使用候选哈希函数重新计算所述每段内容的哈希值,直至不发生冲突;
存储子模块,用于将内容分段存储,分别记录所述名字标识的哈希值、内容段数、当前段号、当前段内容的哈希值、相应内容数据段,由此完成内容存储。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-2中任一项所述的内容存储转发方法或3-4任一项所述的内容存储转发方法。
10.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现如权利要求1-2中任一项所述的内容存储转发方法或3-4中任一项所述的内容存储转发方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210721168.6A CN114827655B (zh) | 2022-06-24 | 2022-06-24 | 内容存储转发方法及装置、电子设备、存储介质 |
US18/092,939 US20230421500A1 (en) | 2022-06-24 | 2023-01-04 | Method and device for storing and forwarding content, electronic apparatus and storage medium using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210721168.6A CN114827655B (zh) | 2022-06-24 | 2022-06-24 | 内容存储转发方法及装置、电子设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114827655A true CN114827655A (zh) | 2022-07-29 |
CN114827655B CN114827655B (zh) | 2022-10-11 |
Family
ID=82522124
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210721168.6A Active CN114827655B (zh) | 2022-06-24 | 2022-06-24 | 内容存储转发方法及装置、电子设备、存储介质 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20230421500A1 (zh) |
CN (1) | CN114827655B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103095724A (zh) * | 2013-02-05 | 2013-05-08 | 西安电子科技大学 | 一种内容中心网络多个兴趣包压缩发送及处理的方法 |
CN104333510A (zh) * | 2014-11-24 | 2015-02-04 | 重庆邮电大学 | 命名数据网络中的标签交换转发策略 |
US20160094553A1 (en) * | 2014-09-26 | 2016-03-31 | Futurewei Technologies, Inc. | Hash-Based Forwarding In Content Centric Networks |
CN105812462A (zh) * | 2016-03-09 | 2016-07-27 | 广东技术师范学院 | 一种基于sdn的icn路由方法 |
US20170048346A1 (en) * | 2015-08-14 | 2017-02-16 | Futurewei Technologies, Inc. | Method and apparatus for pushing data in a content-centric networking (ccn) network |
US20190288874A1 (en) * | 2018-03-19 | 2019-09-19 | Cable Television Laboratories, Inc. | Content centric networking systems and methods |
CN114257560A (zh) * | 2021-12-20 | 2022-03-29 | 之江实验室 | 一种基于kni的交换机网络数据缓存实现方法 |
-
2022
- 2022-06-24 CN CN202210721168.6A patent/CN114827655B/zh active Active
-
2023
- 2023-01-04 US US18/092,939 patent/US20230421500A1/en active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103095724A (zh) * | 2013-02-05 | 2013-05-08 | 西安电子科技大学 | 一种内容中心网络多个兴趣包压缩发送及处理的方法 |
US20160094553A1 (en) * | 2014-09-26 | 2016-03-31 | Futurewei Technologies, Inc. | Hash-Based Forwarding In Content Centric Networks |
CN104333510A (zh) * | 2014-11-24 | 2015-02-04 | 重庆邮电大学 | 命名数据网络中的标签交换转发策略 |
US20170048346A1 (en) * | 2015-08-14 | 2017-02-16 | Futurewei Technologies, Inc. | Method and apparatus for pushing data in a content-centric networking (ccn) network |
CN105812462A (zh) * | 2016-03-09 | 2016-07-27 | 广东技术师范学院 | 一种基于sdn的icn路由方法 |
US20190288874A1 (en) * | 2018-03-19 | 2019-09-19 | Cable Television Laboratories, Inc. | Content centric networking systems and methods |
CN114257560A (zh) * | 2021-12-20 | 2022-03-29 | 之江实验室 | 一种基于kni的交换机网络数据缓存实现方法 |
Non-Patent Citations (2)
Title |
---|
X. ZHANG, R. LI, W. ZHAO AND R. WU: "Detection of malicious nodes in NDN VANET for Interest Packet Popple Broadcast Diffusion Attack,", 《2017 11TH IEEE INTERNATIONAL CONFERENCE ON ANTI-COUNTERFEITING, SECURITY, AND IDENTIFICATION (ASID)》 * |
冯飞等: "基于以太网的CCN路由节点实现", 《计算机应用与软件》 * |
Also Published As
Publication number | Publication date |
---|---|
US20230421500A1 (en) | 2023-12-28 |
CN114827655B (zh) | 2022-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1593041B (zh) | 具有多个首部的包的解封装和封装的方法、装置和计算机程序 | |
CN114217902A (zh) | 一种数据传输方法及装置 | |
CN113746749A (zh) | 网络连接设备 | |
CN111459418A (zh) | 一种基于rdma的键值存储系统传输方法 | |
CN102323888B (zh) | 一种无盘计算机启动加速方法 | |
CN113556413A (zh) | 一种报文处理方法及装置 | |
CN114827655B (zh) | 内容存储转发方法及装置、电子设备、存储介质 | |
CN116962348A (zh) | 一种基于域名解析的视频流量处理方法、系统及电子设备 | |
CN115037708B (zh) | 一种报文处理方法、系统、装置及计算机可读存储介质 | |
CN116346649A (zh) | 负载均衡设备的虚服务抓包方法及装置 | |
CN116567076A (zh) | 一种数据报文处理方法及相关装置 | |
US8819107B2 (en) | Relay apparatus, recording medium storing a relay program, and a relay method | |
CN111865801B (zh) | 一种基于Virtio端口传输数据的方法和系统 | |
CN112181670B (zh) | 进程间通讯方法及装置和Linux设备 | |
CN114265804A (zh) | 一种多根CPU下的PCIe交换芯片上、下游端口路由表构建方法 | |
CN117714398B (zh) | 一种数据传输系统、方法、电子设备及存储介质 | |
JPH11317783A (ja) | ヘッダ処理装置とそのヘッダ処理方法 | |
CN115002039B (zh) | 一种基于udf的流量卸载方法及系统 | |
CN115996203B (zh) | 网络流量分域方法、装置、设备和存储介质 | |
CN115296956B (zh) | 一种内核的隧道转发方法、装置、电子设备及存储介质 | |
CN113746802B (zh) | 网络功能虚拟化中的方法以及本地状态和远程状态全存储的vnf装置 | |
US11882039B1 (en) | UDF-based traffic offloading methods and systems | |
EP4102784A1 (en) | Data stream processing method and device | |
CN117579718A (zh) | 数据报文处理方法、装置、设备及存储介质 | |
KR100725921B1 (ko) | 전송 제어 프로토콜과 사용자 데이터그램 프로토콜의 소켓검색 장치 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |