CN103747083B - 一种基于ccn的内容推送方法 - Google Patents
一种基于ccn的内容推送方法 Download PDFInfo
- Publication number
- CN103747083B CN103747083B CN201410002223.1A CN201410002223A CN103747083B CN 103747083 B CN103747083 B CN 103747083B CN 201410002223 A CN201410002223 A CN 201410002223A CN 103747083 B CN103747083 B CN 103747083B
- Authority
- CN
- China
- Prior art keywords
- pit
- content
- bag
- interest
- interest bag
- 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.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种基于CCN的内容推送方法,内容推送者主动发起通信,无需用户请求就可以将内容直接推送给接收用户,无需多次交互,通过一条特定兴趣包的触发,即可建立多个内容的反向推送路径,大大减少了通信延时与链路负载。本发明可以应用于众多应用场景中,例如现在经常使用的微博、大文件传送、股票、天气预报等,丰富了CCN网络的实际应用。
Description
技术领域
本发明属于计算机网络技术领域,具体涉及一种基于CCN的内容推送方法。
背景技术
随着互联网上应用的不断发展变化,基于TCP/IP的现有互联网也逐渐暴露出许多的不适应,当前,互联网上主要暴露出的问题有:不安全、移动性差、可靠性差、灵活性差。互联网的可扩展性和有效的内容分发问题已经引起了覆盖网(Overlay Network)和内容分发网络(Content Delivery Network)学者们的研究热潮。互联网正逐步由主机中心向内容中心转变。CCN(content centric network,内容中心网络)是目前较为主流的研究方向。
发明内容
为克服上述现有技术的不足,本发明提出了一种基于CCN的内容推送方法,从而有效地提升CCN网络的性能,其特征在于:
推送方构造特定兴趣包并发送该特定兴趣包;
中间节点解析兴趣包,并判断兴趣包中是否包含PIT特定字段;
中间节点如果检测到PIT特定字段,则修改PIT条目;
中间节点修改端口,建立反向PIT;
中间节点按照FIB路由将所述特定兴趣包转发到下一个节点;
接收方建立反向PIT;
推送方触发兴趣包查询PIT匹配条目;
推送方将内容从PIT中记录的端口中转发。
优选地,如果所述判断兴趣包中是否包含PIT特定字段的结果为否,则按照正常CCN流程继续处理。
优选地,所述正常CCN流程具体为:
当请求方需要请求内容时,主动发送兴趣包;中间节点收到兴趣包后会依次查询内容缓存(CS)、PIT和FIB;
如果CS中没有请求方所请求的内容,中间节点在PIT上记录接收兴趣包的端口号;
中间节点根据FIB转发该兴趣包;每个兴趣包有一个随机数(nonce);每一个CCN节点在接收到兴趣包时,判断兴趣包的名称,当接收到一个同名称但不同nonce的兴趣包,CCN在PIT中添加该兴趣包进来的端口;如果接到的兴趣包名称与nonce二者均相同,则CCN节点将丢弃该重复兴趣包;
内容源接收到兴趣包后查找自己的CS,如果CS中存在请求方所请求的内容,则根据PIT记录的端口信息按原路径;经由中间节点回转该内容;
内容经过的中间节点将内容副本缓存在本地CS中。
优选地,所构造的特定兴趣包中包含内容接收方名称、需要推送的分片数量及起始分片号以及内容名中的一个或多个。
优选地,所述中间节点如果检测到PIT特定字段,则修改PIT条目进一步包括:去掉前面PIT标志位以及最后一个表示PIT数量的组件;
构建若干个新的连续的兴趣包;
查找兴趣包的转发端口,将兴趣包转发端口添加到PIT条目中;
添加完成PIT条目后,不转发该若干个兴趣包,直接将兴趣包丢弃。
优选地,所述推送方将内容从PIT中记录的端口中转发进一步包括:
查找完CS找到匹配内容后,直接按照建立的PIT来进行内容的转发。
优选地,所述中间节点按照FIB路由将所述特定兴趣包转发到下一个节点进一步包括:
中间节点转发特定兴趣包,直到到达内容的接收方才停止转发。
优选地,中间节点对于添加反向PIT时构建的若干个兴趣包不转发,在反向PIT建立后即丢弃。
优选地,所述接收方建立反向PIT具体为:
当特定兴趣包到达接收方时,接收方建立PIT,名字前缀同中间节点处理一致,但PIT端口号为接收方本地端口号;
当数据包到达用户B时,查找PIT端口为本地端口,将不会继续转发内容而是直接存储在本地CS中。
优选地,所述反向PIT,是将PIT中的incoming face和outgoing face对调放置。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。
附图说明
图1示出了CCN协议栈模型;
图2示出了CCN包格式;
图3示出了CCN节点间通信流程图;
图4示出了根据本发明的一个实施例的在CCN中实现内容推送的流程图。
具体实施方式
为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的一种基于CCN的内容推送方法其具体实施方式、特征及其功效,详细说明如后。在下述说明中,不同的“一实施例”或“实施例”指的不一定是同一实施例。此外,一或多个实施例中的特定特征、结构、或特点可由任何合适形式组合。
图1示出了CCN协议栈的模型。基于CCN的协议栈结构与基于TCP/IP的协议栈结构类似,都是沙漏模型。其中最大的不同是,使用Content chunk (内容块)协议代替了IP协议。从网络的角度看,即在网络中对数据命名代替对物理实体命名。另外,在网络中内建存储功能,用来缓存经过的数据包,用以加快其他用户访问缓存数据包的响应时间,同时可减少网络中的流量。
CCN通信由数据消费者驱动,数据可以进行块级传输。CCN中包含两种类型的包:兴趣包(Interest Packet)和数据包(Data Packet)。图2示出了CCN的包格式。兴趣包(Interest Packet)包括指内容名(Content Name),用于唯一标识内容;选择器(Selector),包含一些可选参数,用于确定兴趣包的处理方法,例如Scope=0,则兴趣包不能向本主机的其他应用程序转发,而Scope=1则不能向发起兴趣包的主机转发;随机数(Nonce),用于唯一标识兴趣包,避免重复。数据包包括,内容名(Content Name),用于唯一标识内容名;签名(Signature),用于唯一标识内容来源及内容名;签名信息(Signed Info),包含时间,密钥等信息,用于对内容参数进行设置;数据(Data)指真正传输的数据内容。需要相关内容的用户根据自身的FIB通过节点向多个方向通过兴趣包发出请求,任何收到这个请求的节点如果有能够满足该请求的内容,则通过数据包向请求节点发送响应数据。这种对应关系是建立在对内容进行标识的基础上,即每个内容都有一个具体的标识。兴趣包和数据包的位置无关,在一个广播介质上,有同样内容需求的请求可以分享相同的内容和网络传输,从而节省了网络资源,提高了网络传输效率。
内容的标识,其实就是CCN的地址。这种标识是结构化的,通常由几个组件(也即component)组成,其中各个组件之间由/分隔通过这种结构化的地址,可以利用类似于IP地址前缀机制来迅速定位所需要的信息。例如/catr.cn/videos/WidgetA.mpg/_v<timestamp>/_s3,其中catr.cn是全网可识别名称、videos是内容类型、WidgetA.mpg是内容名、_v<timestamp>是版本时间等信息、_s3是分段等信息。
如果兴趣包的内容名(Content name)是数据包的内容名(Content name)的前缀,则表示该数据包满足请求。内容名可以动态生成,即让不存在该 请求内容的应用在接收到兴趣包时临时产生该内容。类似于,动态Web,即静态内容和动态产生混合支持。
术语Face(面)指代CCN转发器上耦合到应用或网络的接口。Face能够基于硬件或软件。这样的CCN接口被称为Face以使得它们能够与作为路由器术语中的物理网络接口的接口(interface)起到区分作用。
当一个包到达一个Face,将利用内容名进行最长前缀匹配查找,其中将使用到三个关键数据完成转发(FIB、内容缓存、PIT)。FIB(Forwarding information base,转发信息库)相当于IP协议中的路由表,但允许多个出口,而不是仅限于一个。内容缓存(Content store)可以使用LRU(least recently used)策略和生存时间(TTL,time to live)等策略缓存转发的数据包,以供其他消费者使用,提高数据包的命中率。PIT(Pending Interesting Table,待定兴趣表)用于记录已经转发的兴趣包的内容名及端口号,从而让响应的数据包能根据端口号到达其对应的请求者。当响应兴趣的数据包利用PIT的某条目转发后或者生存时间到期,该条目被删除。
当一个Interest包(兴趣包)到达某一节点,首先根据兴趣包匹配内容缓存,如果存在相匹配的内容,则利用匹配的内容响应请求并丢弃Interest包;如果不存在相匹配的内容,则说明内容没有被缓存或者缓存时间到期被替换掉,此时开始匹配PIT,如果存在匹配的PIT条目,则说明不久前可能其他用户有请求过同样内容,此处可以进行PIT聚合,即在PIT相应的条目中增加Face,并丢弃Interest包;如果不存在相匹配的内容,则根据兴趣包最长前缀匹配FIB,按照所有匹配的Face(除Interest包到达Face)转发Interest包,如果仍不存在相匹配的Face,则丢弃该Interest包。
data包(数据包)的处理相对简单,当数据包到达时,先对数据包的Content Name(内容名)字段进行最长前缀匹配,先在Content Store(内容缓存)中进行匹配,如果有匹配的内容,则返回的内容为无效内容,之前请求的兴趣包应该已经被响应,故丢弃该数据包;如果没有匹配的内容,则开始在PIT中继续匹配,如果有匹配的条目,则将内容从PIT中记录的端口号转发出去,同时缓存在Content Store(内容缓存中),如果不存在匹 配的条目,则丢弃该数据包。
图3示出了CCN节点间通信流程图。用户A与内容源B之间可能存在若干个中间节点C,为简洁起见,图3中示例性地仅示出了一个中间节点C。其中用户A也可以被称作节点A,同样内容源B也可以被称作节点B或是用户B。如301所示,当用户A需要请求内容时,主动发送兴趣包;中间节点C收到兴趣包后会依次查询CS(Content Store,内容缓存)、PIT和FIB。如果CS中没有用户A所请求的内容,中间节点C在PIT上记录接收兴趣包的端口号;如302所示,中间节点C根据FIB转发该兴趣包;每个兴趣包有一个nonce(随机数);每一个CCN节点在接收到兴趣包时,将判断兴趣包的名称,当接收到一个同名称但不同nonce的兴趣包,CCN将在PIT中添加该兴趣包进来的端口;如果接到的兴趣包名称与nonce二者均相同,则CCN节点将丢弃该重复兴趣包;如步骤303所示,内容源B接收到兴趣包后首先查找自己的CS,如果CS中存在用户A所请求的内容,则根据PIT记录的端口信息按原路径,如步骤304所示,经由中间节点C回转该内容。同时,内容经过的中间节点C会将内容副本缓存在本地CS中。
PIT条目的格式如下表1所示,其中Face0指兴趣包进入的端口。
Interest name prefix | Incoming faces |
name | Face0 |
表1:PIT条目格式
FIB条目的格式如下表2所示,其中Face1指兴趣包出去的端口。
Interest name prefix | Outcoming faces |
name | Face1,Face2 |
表2:FIB条目格式
通常情况下,只有通过用户主动发送兴趣包,才能触发获取相应内容。但是很多应用场景需要将内容直接推送给用户,例如现在广泛使用的微博、 实时语音通信、大文件传送、股票、天气预报等。
CCN中可以通过发送兴趣包触发建立一条PIT路径,当内容需要返回的时候可以通过查找PIT路径而返回。如果用户A需要主动发起向用户B的内容推送,则需要在用户A和用户B之间建立一条PIT路径使得未经用户B请求的内容能够正确的推送到用户B。用户A能够直接查找CS进行内容的推送,而无需在接收到兴趣包时才开始查找CS。相应地用户B能够允许接收并存储未经自己请求的内容。
在本发明的一个具体实施方式中,用户A发送一个特定兴趣包,用户A和用户B之间的中间节点C接收到特定兴趣包后,将添加PIT条目并修改PIT中端口方向,即在用户A与用户B之间直接建立一条反向PIT路径,使得没有被请求的内容能够按照反向PIT路径转发,从而无需用户B的主动请求,内容就可以通过数据包从用户A直接推送给用户B。
在本发明的一个具体实施方式中,反向PIT,即把正常PIT中的incoming face和outgoing face对调放置。通过构建反向PIT,可以“欺骗”PIT,则当推送方用户A有这个内容的时候,就可以将该内容主动推送给接收方用户B。
在本发明的一个具体实施方式中,另外发明方案中提到的正常兴趣包是指不包含特定字段“PIT”的兴趣包,而特定兴趣包是指包含特定字段“PIT”的兴趣包,例如ccnx:/B/PIT/B/name/%FD%versionnumber/%pushnumber/n为特定兴趣包,而ccnx:/B/name/%FD%versionnumber/%pushnumber则为正常兴趣包。此处的“PIT”仅为示例性的说明,可以在不脱离本发明的构思的前提下使用其他特定字段。需要说明的是,由于CCN中只有兴趣包和数据包两种类型的包,在一些场景中为了丰富CCN的应用,会在CCN包中加入特定字段以区别于普通的兴趣包和数据包。在CCN中特定字段一般都是指在兴趣包名字中添加一个类似于“PIT”的字段,使得该兴趣包可以完成不同的功能,比如在视频点播过程中为了优化点播过程可以在兴趣包中加入一个“Video”字段来构造特定兴趣包。
正常情况下(即当发送的兴趣包不包含特定字段PIT时),用户A发送兴趣包给用户B,在中间节点C处会先查询CS没有缓存,然后查询PIT如果PIT中不存在匹配项则开始建立PIT条目,假设兴趣包从中间节点C的Face2到达且从中间节点C的Face1转发,则在中间节点C处添加的PIT条目即为兴趣包名字和Face2(正常情况下PIT条目如下表3所示),添加完PIT后则根据FIB记录的Face1端口进行转发,这样当内容从用户B返回到中间节点C时,将查询PIT直接从Face2转发给用户A,完成获取内容的过程。
Interest name prefix | Incoming faces |
ccnx:/B/name/%FD%versionnumber/%pushnumber | Face2 |
表3:正常情况下PIT条目
反向PIT是指,添加端口时,将在PIT条目中添加转发端口Face1而不是兴趣包进入端口Face2(此处仍然假设兴趣包从中间节点C的Face2到达而从Face1转发到达用户B),在C处添加的PIT条目如下表4所示。这样当需要从用户A推送内容给用户B时,经过用户C时则可以通过事先设置的PIT直接将内容从Face1转发,使得内容能够到达用户B,从而实现推送内容的技术效果。
Interest name prefix | Incoming faces |
ccnx:/B/name/%FD%versionnumber/%pushnumber | Face1 |
表4:反向情况下PIT条目
用户A和中间节点C的FIB条目如下表5和表6所示:
Interest name prefix | Outcoming faces |
B | Face1 |
表5:用户A的FIB条目
Interest name prefix | Outcoming faces |
B | Face1 |
表6:用户C的FIB条目
建立好如上所述的FIB条目后,从用户A发给用户B的兴趣包能够在查找FIB后正确的转发到节点B。
图4根据本发明的一个实施例的在CCN中实现内容推送的流程图。步骤401,用户A(即推送方A)构造特定兴趣包并发送该特定兴趣包,此处构造特定兴趣包的原因是考虑到此兴趣包与正常兴趣包的处理流程不一样,考虑到该特定兴趣包在后续处理过程中与正常兴趣包的处理流程不一样,因此所构造的兴趣包中可以:1)、加入内容接收方B(用户B)的名称本实施方式中即为B,目的在于兴趣包能够通过查找FIB正确的路由到内容接收方;2)、说明需要推送的分片数量及起始分片号,大文件在传输过程中都进行了内容的分片,因此在特殊兴趣包中需要说明分片数量及起始分片号才能够将需要的完整的内容推送成功;3)、说明内容名。鉴于以上几点考虑,所构造的兴趣包(Interest包)格式如下:
ccnx:/B/PIT/B/name/%FD%versionnumber/%pushnumber/n
Interest包中各字段含义如下:
/B/PIT/:B作为通信接收方,“PIT”作为建立反向PIT的检测字段
/B/name:/B/name是推送方A的CS中即将推送给B的内容的名称。
/pushnum:pushnum指发送的内容起始分段号,由于在大文件推送中,都是从分段0开始推送,因此在大文件推送中pushnum为0;而对于其他场景则根据具体情况决定起始分段号。在本实施方式中以大文件传输为应用场景。
/n:n为欲建立反向PIT条目的数量,大文件传送中A通过查询自己的CS确定推送内容的分段数目。
“%FD%versionnumber”该表示版本号的组件(component)是可选的。并且特定兴趣包的格式还可以定义为如下:ccnx:/B/PIT/name/%FD%versionnumber/%pushnumber/n,由于“/B”这个component只是用于路由,在以“/B”开头的兴趣包在查询FIB时通过最长前缀匹配可以查询到对应于用户B的Face,使得兴趣包可以正确的路由到用户B,因此特定兴趣包中可以只需要一个“/B”,如果这样则在接收到特殊兴趣包时将只需要去掉“/PIT”即可。
步骤402,解析兴趣包,并判断兴趣包中是否包含特定字段。
在本发明的一个具体实施方式中,特定字段即“PIT”字段;相应地包含有“PIT”字段的兴趣包则被称为特定兴趣包;而不含有“PIT”字段的兴趣包则被称为正常兴趣包。
特定兴趣包的解析过程具体如下:
用户A以及用户A和用户B之间的中间节点C接收到用户A发送的特定interest包,解析兴趣包时利用字符串匹配判断第二个component是否是“PIT”,由此来判断是否检测到“PIT”特定字段,如果没有检测到“PIT”特定字段,则继续执行步骤404,按照图3所示的流程处理兴趣包;如果检测到“PIT”特定字段,则继续执行步骤404,去掉前面的两个compnent:/B和/PIT及最后一个component;步骤405,构建n个新的连续的兴趣包:
ccnx:/B/name/%FD%versionnumber/%pushnumber
ccnx:/B/name/%FD%versionnumber/%pushnumber+1
ccnx:/B/name/%FD%versionnumber/%pushnumber+2
ccnx:/B/name/%FD%versionnumber/%pushnumber+n-1;
这n个兴趣包与普通兴趣包的流程处理不一样,普通的兴趣包都是在查找完转发端口后直接转发,而此处建立好这n个兴趣包后,按照正常的流程查找兴趣包的转发端口,接着将兴趣包转发端口添加到PIT条目中(正常的流程是将兴趣包进来的端口添加到PIT条目),添加完成PIT条目后,不需要转发这n个兴趣包,直接将兴趣包丢弃。
构建好的n个新的兴趣包并不包含PIT字符串,而该节点也不是真的需要取得该内容,构建兴趣包的目的只是为了创建反向PIT,使得推送方A能够按照正确的路径将内容推送给接收方B。如果将兴趣包向下一个或多个节点转发,则可能会存在将本来不需要的内容返回的情况,浪费了网络资源并可能造成网络拥塞。举例来说:如果推送方A需要将n块内容推送给接收方B,则需要在中间节点C处构建n个与内容块匹配的PIT条目,才能使得A处的内容被推送,故在C节点处会构建n的兴趣包用于构建反向PIT,但是C节点并不需要取内容,故也不用转发这n个兴趣包。
具体实现过程如下:
根据构建的n个兴趣包确定需要往PIT中添加的条目为:
ccnx:/B/name/%FD%versionnumber/%pushnumber;
ccnx:/B/name/%FD%versionnumber/%pushnumber+1;
ccnx:/B/name/%FD%versionnumber/%pushnumber+2;
ccnx:/B/name/%FD%versionnumber/%pushnumber+n-1。
步骤406,添加了兴趣包条目之后开始实现端口反向,并且添加反向端口,完成反向PIT条目的添加。记录兴趣包转发端口Forwarding face,并将Forwarding face添加到新建立的PIT条目中,由于兴趣包转发方向与内容推送的方向相一致,也就是说兴趣包转发方向和内容推送方向都是从用户A到用户B,中间经过的路径及端口都是一样的,故此处的转发端口也就是用户A推送给用户B的内容的转发端口。在PIT条目中添加正确的端口后,当用户A向用户B推送内容时,可以使得内容在用户A及中间节点C处能够通过查询反向PIT,将内容正确地转发至目标节点B(即,接收方B)。中间节点的反向PIT格式如下:(其中,Face1为兴趣包的outgoing face也即forwarding face,A作为推送方,B作为接收方,但是在添加PIT时作为incoming face添加,由此实现端口的反向)。
Interest name prefix | Incoming faces |
表7:中间节点反向PIT格式
中间节点在处理特定兴趣包的时候除了添加反向PIT外还需要将特定兴趣包继续向下一个节点转发,主要是考虑到用户B在收到特定兴趣包后还需要进行相应的处理,使得内容在到达用户B时能够被正确地缓存,故特定兴趣包在中间节点都需要转发一直到内容接收方才停止转发。而对于添加反向PIT时构建的n个兴趣包并不转发,在反向PIT建立后即丢弃。当数据包沿反向PIT转发至目的节点B时,如果不进行特殊处理,按照CCN协议B会丢弃未请求过的数据不进行缓存(主要原因是内容到达用户B处会查找PIT条目,如果不存在匹配PIT则直接丢弃)。
为避免数据包在用户B处被直接删除,在本发明的一个具体实施方式中,步骤407,当特定兴趣包到达用户B时,用户B建立PIT,名字前缀同中间节点处理一致,不同的是此处PIT端口号为用户B本地端口号。当数据包到达用户B时,查找PIT端口为本地端口,将不会继续转发内容而是直接存储在本地CS中。表8中示出了为用户B处建立的PIT条目。
表8:内容接收方的反向PIT格式
在本发明的另一个具体实施方式中,为避免数据包在节点B处被直接删除,可以进一步修改CCN策略,使得内容到达节点时不查找PIT,直接将内容缓存在本地CS中。
为了能够使用户A将自己的CS内容根据PIT中记录的端口转发出去,步骤408,在反向PIT建立好后,节点A通过ccngetfile ccnx:/B/name来取本地CS中的文件来触发查找CS(请补充具体内容),ccngetfile命令是CCN仿真平台下的一个取文件命令,通过执行该命令使得用户能够在本地CS或者其他用户CS中取到内容存放在本地,但是这个取文件的操作仍然是通过兴趣包、数据包完成的,使用ccngetfile命令时会主动根据文件的分片情况发送多个兴趣包给内容源(也包括本地CS),然后从内容源处取得多个内容片断返回存放在本地。此处,当在节点A处使用ccngetfile ccnx:/B/name命令时,由于“ccnx:/B/name”中不包含“PIT”特定字段,因此节点A会向自己的本地端口发送请求内容的正常兴趣包,该兴趣包将不再包括“PIT”特定字段,节点A在处理收到的兴趣包时会先查自己的CS找到匹配内容,然后查找PIT匹配条目并将内容从PIT中记录的端口中转发;步骤409,由于推送方CS中已经缓存有内容,并且事先已经建立好了PIT条目,查找完CS找到匹配内容后就可直接按照建立的PIT来进行内容的转发,由此来触发内容的推送。步骤410,内容在中间节点处按照已经建立好的PIT路径进行传输,到达接收方后由于接收方也有特定的PIT条目(端口为本地face)或者是直接缓存策略,总之接收方会直接缓存用户A推送过来的内容,可以通过抓包软件抓包或者直接使用ccndumpnames命令查看CS内容得知接收方B已经缓存了内容,在用户A处使用ccngetfile触发查找CS时,打开用户B处的抓包软件,开始抓经过用户B处的包,并分析抓包结果,可以看到抓包中显示了从节点C到用户B的n个内容片断,说明用户A已经成功将内容推送到了用户C,接下来需要查看用户C是否将内容缓存,在用 户C处使用ccndumpnames查看CS中的内容也可以看到n个内容片断,则说明用户C成功将内容缓存。另外,如果为了验证内容推送过程是否出现丢包的情况可以在用户B处使用ccngetfile ccnx:/B/name,如果用户B处能够成功的取到内容,则说明内容推送成功。
通过本发明所公开的技术方案,内容推送者主动发起通信,无需用户请求就可以将内容直接推送给接收用户,无需多次交互,通过一条特定兴趣包的触发,即可建立多个内容的反向推送路径,大大减少了通信延时与链路负载。本发明可以应用于众多应用场景中,例如现在经常使用的打电话、微博、大文件传送、股票、天气预报等,丰富了CCN网络的实际应用。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
Claims (7)
1.一种基于CCN的内容推送方法,其特征在于:
推送方构造特定兴趣包并发送该特定兴趣包;
中间节点解析兴趣包,并判断兴趣包中是否包含PIT特定字段;
中间节点如果检测到PIT特定字段,则修改PIT条目;
中间节点修改端口,建立反向PIT;
中间节点按照FIB路由将所述特定兴趣包转发到下一个节点;
接收方建立反向PIT;
推送方触发兴趣包查询PIT匹配条目;
推送方将内容从PIT中记录的端口中转发;
所述中间节点如果检测到PIT特定字段,则修改PIT条目进一步包括:
去掉前面PIT标志位以及最后一个表示PIT数量的组件;
构建若干个新的连续的兴趣包;
查找兴趣包的转发端口,将兴趣包转发端口添加到PIT条目中;
添加完成PIT条目后,不转发该若干个兴趣包,直接将兴趣包丢弃;
所述接收方建立反向PIT具体为:
当特定兴趣包到达接收方时,接收方建立PIT,名字前缀同中间节点处理一致,但PIT端口号为接收方本地端口号;
当数据包到达用户B时,查找PIT端口为本地端口,将不会继续转发内容而是直接存储在本地CS中;
所述反向PIT,是将PIT中的incoming face和outgoing face对调放置。
2.根据权利要求1的方法,其特征在于:
如果所述判断兴趣包中是否包含PIT特定字段的结果为否,则按照正常CCN流程继续处理。
3.根据权利要求2的方法,其特征在于:
所述正常CCN流程具体为:
当请求方需要请求内容时,主动发送兴趣包;中间节点收到兴趣包后会依次查询内容缓存(CS)、PIT和FIB;
如果CS中没有请求方所请求的内容,中间节点在PIT上记录接收兴趣包的端口号;
中间节点根据FIB转发该兴趣包;每个兴趣包有一个随机数(nonce);每一个CCN节点在接收到兴趣包时,判断兴趣包的名称,当接收到一个同名称但不同nonce的兴趣包,CCN在PIT中添加该兴趣包进来的端口;如果接到的兴趣包名称与nonce二者均相同,则CCN节点将丢弃该重复兴趣包;
内容源接收到兴趣包后查找自己的CS,如果CS中存在请求方所请求的内容,则根据PIT记录的端口信息按原路径;经由中间节点回转该内容;
内容经过的中间节点将内容副本缓存在本地CS中。
4.根据权利要求1或3的方法,其特征在于:
所构造的特定兴趣包中包含内容接收方名称、需要推送的分片数量及
起始分片号以及内容名中的一个或多个。
5.根据权利要求4的方法,其特征在于:
所述推送方将内容从PIT中记录的端口中转发进一步包括:
查找完CS找到匹配内容后,直接按照建立的PIT来进行内容的转发。
6.根据权利要求5的方法,其特征在于:
所述中间节点按照FIB路由将所述特定兴趣包转发到下一个节点进一步包括:
中间节点转发特定兴趣包,直到到达内容的接收方才停止转发。
7.根据权利要求6的方法,其特征在于:中间节点对于添加反向PIT时构建的若干个兴趣包不转发,在反向PIT建立后即丢弃。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410002223.1A CN103747083B (zh) | 2014-01-02 | 2014-01-02 | 一种基于ccn的内容推送方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410002223.1A CN103747083B (zh) | 2014-01-02 | 2014-01-02 | 一种基于ccn的内容推送方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103747083A CN103747083A (zh) | 2014-04-23 |
CN103747083B true CN103747083B (zh) | 2015-10-14 |
Family
ID=50504069
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410002223.1A Active CN103747083B (zh) | 2014-01-02 | 2014-01-02 | 一种基于ccn的内容推送方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103747083B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9979644B2 (en) | 2014-07-13 | 2018-05-22 | Cisco Technology, Inc. | Linking to content using information centric networking |
CN104394207B (zh) * | 2014-11-19 | 2017-12-19 | 许继集团有限公司 | 基于信息中心网络的智能电网数据自适应恢复方法及*** |
CN104539715B (zh) * | 2014-12-31 | 2018-07-20 | 中山大学 | 一种网络多内容请求响应方法 |
US10757213B2 (en) * | 2015-08-14 | 2020-08-25 | Futurewei Technologies, Inc. | Method and apparatus for pushing data in a content-centric networking (CCN) network |
CN106657181B (zh) * | 2015-10-30 | 2020-02-21 | 中国科学院声学研究所 | 一种基于内容中心网络的数据推送方法 |
CN106888171B (zh) * | 2015-12-15 | 2019-10-18 | ***通信集团公司 | 一种数据业务的处理方法及装置 |
CN106878310B (zh) * | 2017-02-22 | 2020-02-14 | 吉林大学 | 命名数据网络下一种实时流数据分发的方法 |
CN107071015A (zh) * | 2017-03-30 | 2017-08-18 | 北京工业大学 | 一种应用于车载自组网的文件传输方法及装置 |
CN108965479B (zh) * | 2018-09-03 | 2021-04-20 | 中国科学院深圳先进技术研究院 | 一种基于内容中心网络的域协同缓存方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102638405A (zh) * | 2012-04-12 | 2012-08-15 | 清华大学 | 内容中心网络策略层的路由方法 |
CN102821039A (zh) * | 2011-06-09 | 2012-12-12 | 三星电子株式会社 | 基于名称的网络***中防止待定兴趣表溢出的设备和方法 |
CN102917287A (zh) * | 2012-11-21 | 2013-02-06 | 北京邮电大学 | 一种面向内容中心的智能光网络交换装置和边缘缓存方法 |
CN103001870A (zh) * | 2012-12-24 | 2013-03-27 | 中国科学院声学研究所 | 一种内容中心网络协同缓存方法及*** |
CN103023768A (zh) * | 2013-01-11 | 2013-04-03 | 中国科学院声学研究所 | 边缘路由节点以及其从多源预取内容的方法 |
CN103118013A (zh) * | 2013-01-16 | 2013-05-22 | 西安电子科技大学 | 内容中心网络中数据包捎带反向兴趣包的方法 |
-
2014
- 2014-01-02 CN CN201410002223.1A patent/CN103747083B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102821039A (zh) * | 2011-06-09 | 2012-12-12 | 三星电子株式会社 | 基于名称的网络***中防止待定兴趣表溢出的设备和方法 |
CN102638405A (zh) * | 2012-04-12 | 2012-08-15 | 清华大学 | 内容中心网络策略层的路由方法 |
CN102917287A (zh) * | 2012-11-21 | 2013-02-06 | 北京邮电大学 | 一种面向内容中心的智能光网络交换装置和边缘缓存方法 |
CN103001870A (zh) * | 2012-12-24 | 2013-03-27 | 中国科学院声学研究所 | 一种内容中心网络协同缓存方法及*** |
CN103023768A (zh) * | 2013-01-11 | 2013-04-03 | 中国科学院声学研究所 | 边缘路由节点以及其从多源预取内容的方法 |
CN103118013A (zh) * | 2013-01-16 | 2013-05-22 | 西安电子科技大学 | 内容中心网络中数据包捎带反向兴趣包的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103747083A (zh) | 2014-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103747083B (zh) | 一种基于ccn的内容推送方法 | |
US11271892B2 (en) | Network communication method and system, device, and storage medium | |
CN101222414B (zh) | 实现组播通信的装置、***和方法 | |
CN101523858B (zh) | 用于通信***中多媒体通信相关的信令的路由选择的方法 | |
US9203734B2 (en) | Optimized bi-directional communication in an information centric network | |
CN100479415C (zh) | 一种实现数据通讯的***及其方法 | |
CN105262667A (zh) | Overlay网络中控制组播传输的方法、装置 | |
CN101729425B (zh) | Vrrp组网中流量发送的方法及设备 | |
CN104509073A (zh) | 在软件定义的网络中发现ip多播组成员 | |
CN102238226A (zh) | 在以内容为中心的网络上的会话迁移 | |
WO2014139481A1 (zh) | 报文处理方法及设备 | |
CN101355490A (zh) | 消息路由方法、***和节点设备 | |
CN102195855A (zh) | 一种业务路由方法和业务网络 | |
US20120096136A1 (en) | Method and apparatus for sharing contents using information of group change in content oriented network environment | |
JP4436960B2 (ja) | パケット通信システムおよび移動通信システム | |
CN101651626B (zh) | 一种流量转发的方法及设备 | |
US20140019549A1 (en) | Control System for Conferencing Applications in Named-Data Networks | |
CN102546428A (zh) | 基于DHCPv6侦听的IPv6报文交换***及方法 | |
CN103916253A (zh) | 一种基于信息中心网络的信息传输方法及其*** | |
CN103841090A (zh) | 实现会话发起协议多业务服务器分发的方法、装置及*** | |
CN113726907A (zh) | 一种路由处理方法、网元设备、装置以及可读存储介质 | |
CN107070790A (zh) | 一种路由学习方法及路由设备 | |
CN102111608A (zh) | 一种视频监控***的通信方法及其设备 | |
WO2024140698A1 (zh) | 一种会话处理方法、***、装置及存储介质 | |
US9338230B2 (en) | Method, network entity and network system for forwarding resources |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |