CN104967677A - 一种基于ndn缓存优化的文件传输方法以及装置 - Google Patents

一种基于ndn缓存优化的文件传输方法以及装置 Download PDF

Info

Publication number
CN104967677A
CN104967677A CN201510303702.1A CN201510303702A CN104967677A CN 104967677 A CN104967677 A CN 104967677A CN 201510303702 A CN201510303702 A CN 201510303702A CN 104967677 A CN104967677 A CN 104967677A
Authority
CN
China
Prior art keywords
content
block
request
means
name
Prior art date
Application number
CN201510303702.1A
Other languages
English (en)
Other versions
CN104967677B (zh
Inventor
李甫
汪洋泽
王硕
Original Assignee
无锡量子云数字新媒体科技有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 无锡量子云数字新媒体科技有限公司 filed Critical 无锡量子云数字新媒体科技有限公司
Priority to CN201510303702.1A priority Critical patent/CN104967677B/zh
Publication of CN104967677A publication Critical patent/CN104967677A/zh
Application granted granted Critical
Publication of CN104967677B publication Critical patent/CN104967677B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/06Network-specific arrangements or communication protocols supporting networked applications adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/10Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network
    • H04L67/104Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network for peer-to-peer [P2P] networking; Functionalities or architectural details of P2P networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/28Network-specific arrangements or communication protocols supporting networked applications for the provision of proxy services, e.g. intermediate processing or storage in the network
    • H04L67/2842Network-specific arrangements or communication protocols supporting networked applications for the provision of proxy services, e.g. intermediate processing or storage in the network for storing data temporarily at an intermediate stage, e.g. caching

Abstract

本发明涉及一种基于NDN缓存优化的文件传输方法以及装置,步骤一,当该对等装置接收到内容分块请求时,若内容缓存装置存在相应的内容分块,则将相应的内容分块从请求端口发送出去;步骤二,若内容缓存装置中不存在所述内容分块时,若等待响应列表中包括所述内容分块的名称时,将请求端口记录在所述名称对应的表项;步骤三,若等待响应列表中不存在所述内容分块的名称时,则查找转发信息表,若转发信息表中不存在所述内容分块的名称以及所述请求端口的组合时,将所述内容分块的名称以及所述请求端口记录在等待响应列表中。该方法解决了现有技术中存在的共享文件生存时间短、网络数据冗余率高,以及吞噬带宽大的技术问题。

Description

一种基于NDN缓存优化的文件传输方法以及装置

技术领域

[0001] 本发明涉及网络通信技术领域,尤其涉及一种网络通信中的数据传输。

背景技术

[0002] 互联网的发明彻底改变了人类对信息存储、表示、处理的方式,是二十世纪人类最伟大的发明之一。互联网是最大的计算机网络,自诞生以来就存在着集中式与分布式两种不同的工作方式。其中C/S架构(client/server architecture)是互联网最成熟,应用最广泛的架构。当前许多重要的互联网应用协议均采用该架构,如HTTP、FTP、SMTP等。这种模式的特点是,服务器始终处于运行状态,被动等待客户端的接入。由客户端向服务器发送请求,经过服务器处理后返回给客户端想要的信息。这种模式在互联网初期得到了很好的应用,但是随着互联网的发展,网络规模急剧增长,服务器的负担越来越重,C/S架构的效率低以及扩展性差等特点逐渐暴露。因此急需一种新的网络架构以满足网络的发展需求。因此,P2P(Peer to Peer)网络孕育而生。

[0003] P2P网络是指网络中的用户或者主机通过某个网络应用程序,来达到信息的传播或资源的共享,每个结点在网络中的地位是对等的,都可以提供并且接收内容和服务。P2P可以理解为一种网络概念,也可以理解为一种应用。其核心思想是去中心化,最大程度上消除对中央服务器的依赖,实现网络结点之间的完全对等关系。P2P具有以下几个优势:P2P的拓扑动态性,P2P网络是分布式的动态网络,随着结点的增加,网络的总资源和服务能力也会同步得到补充,能够很好的满足用户的需求。同时由于资源分布在多个结点上,缓解了传统网络中对中央服务器计算和存储等方面的压力,很好地实现了网络负载均衡。

[0004] P2P网络已经得到了学术界和产业界的广泛关注,诞生了许多相关协议和应用。如用于即时通信的Skype、QQ、MSN等,用于文件资源共享的Napster、Gnutella等,用于公司协同办公的软件Groove等。在P2P网络架构方面,大致可以分为三个阶段。第一代P2P网络是混合式架构,以Napster和BitTorrent等为代表,它们往往将C/S架构与P2P架构混合使用,通过中央服务器或者超级结点来控制与协调整个加入网络的结点。第二代P2P网络是无结构网络,以分布、松散的结构来组织网络,以Gnutella、KaZaA、Freenet等为代表。第三代P2P网络是结构化网络,以准确、严格的结构组织网络,可以准确地定位资源和结点。以Pastry、Chord、CAN 等为代表。

[0005] P2P网络的核心机制是在TCP/IP架构的应用层建立逻辑上的覆盖网络(overlaynetwork)。封装其下面的传输层、网络层、链路层,使得P2P网络的研宄者和开发者不必关心其他层的工作机制。如图1所示,基于IP的P2P覆盖网,需要依靠DHT (distributed hashtable,分布式散列表)来定位P2P网络中的资源与主机,路由P2P信息。P2P覆盖网和底层物理网的拓扑结构一般不同,P2P覆盖网中的一跳往往对应底层物理网的多跳。P2P网络中的信息传递也常因为不一致性导致请求超时或者丢包。此外,覆盖网络的DHT,维护机制复杂,结点频繁加入和退出所造成的网络波动会极大的增加DHT的维护代价。这也是基于IP的全分布式P2P拓扑存在的主要问题。此外,DHT算法采用分布式哈希函数,文件是通过对文件名进行哈希得到的二进制关键值,文件的查询是按照关键值进行的。因此只支持精确查询,无法进行模糊匹配。给查询带来了极大的限制。

[0006] 在基于IP的P2P网络中还有一个重要的问题是NAT穿越。P2P通信需要解决的最基本的问题是如何连接其他终端获得信息、资源和服务。在解决P2P覆盖网的应用层定位后,还需要解决在IP网络层如何穿越NAT和防火墙的问题,以进行Peer节点之间的直接通信。首先,防火墙会对IP进行过滤,限制防火墙之外的连接。NAT技术虽然能够使得内部网络地址映射到外部网络地址,但是要求内部网络首先发起对外连接,否则外部无法与内部网络直接通信。

[0007] IP协议最初的设计目标是为了通过网络,使得计算机之间能够进行计算资源的共享。随着互联网的高速发展,云计算、物联网、社交网络、视频分享网站等网络应用的普及,网络规模的急剧增大,其中视频流量在网络流量中的比例显著增加。据统计,到2017年69%的网络流量将来自视频流量,而其中内容分发网络传输的视频流量将占2/3,人们对内容本身的需求将远远大于透明的主机与主机之间的数据传输。网络通信模式已经从面向主机的端到端的模式转化为以用户驱动的信息内容获取为主。IP网络架构由于其先天的设计缺陷,面临着多方面的考验:网络利用率、信息分发效率、移动性、安全性、服务质量等。NDN网络(Named Data Network)在该背景下运用而生。

[0008] NDN网络也成为内容中心网络(Content Centric Network, CCN)。其基本通信模式是以命名内容(Named Data)为中心,用户请求命名内容、内容发布者(服务器)发布和传输命名内容、NDN路由器缓存和转发命名内容。NDN网络的根本思想在于信息的传播,而不再关心网络结点的物理位置,而且每个结点在网络中只是与其上级路由器与下级路由器进行交互,每个结点在网络的地位和功能是完全对等的,同时消除了内网与外网的区别,这对其于P2P网络在协议层的融合提供了可能,并且彻底解决基于IP协议的P2P网络所存在的拓扑不一致以及NAT穿越等问题。此外,NDN网络中,数据的命名规则类似于当前Web的URL,可以进行聚类,方便资源的模糊匹配和定位。

[0009] 基于NDN网络的P2P文件传输,现有技术,例如CN103457999A,采用的是分布式的网络构架,省去了传统P2P文件共享系统中心服务器。该发明利用了 NDN网络架构所具有的自然的网络联通性,很好的解决了 NAT穿越问题。通过NDN路由器类似于中继转发的方法,简单转发请求包,数据包按照请求包的反向路径返回即可。内网用户不再具有IP网络架构中的特殊性。

[0010] 但是,现有技术中基于NDN的P2P的应用,每个用户仍需要维护一个当前在线用户的列表,其中NDN网络仅仅作为P2P网络的底层物理实现。用户还是只能同其他当前在线用户进行文件的共享。据统计P2P文件共享网络中,用户在上传文件后,4小时内的下线率为48%,12小时内的下线率为82%。

发明内容

[0011] 鉴于上述的分析,针对现有技术存在的问题,本发明旨在提供一种基于缓存优化的文件传输方法以及装置,用以解决现有技术中存在的共享文件生存时间短、网络数据冗余率高,以及吞噬带宽大的技术问题。

[0012] 本发明的目的主要是通过以下技术方案实现的:一种对等装置之间的文件传输方法,其特征在于,步骤一,当该对等装置接收到内容分块请求时,首先查询内容缓存装置中是否存在相应的内容分块,如果存在,则将相应的内容分块从请求端口发送出去;步骤二,若内容缓存装置中不存在请求的内容分块时,则查询等待响应列表,若等待响应列表中包括所述内容分块的名称时,将请求端口记录在所述名称对应的表项;步骤三,若等待响应列表中不存在所述内容分块的名称时,则查找转发信息表,若转发信息表中不存在所述内容分块的名称以及所述请求端口的组合时,将所述内容分块的名称以及所述请求端口记录在等待响应列表中,并将所述的内容分块请求转发出去。

[0013] 优选的,在步骤三中,当转发信息表中存在所述内容分块的名称以及所述请求端口的组合时,将所述内容分块请求丢弃。

[0014] 优选的,所述对等装置包括用户端设备或路由器。

[0015] 优选的,当一个发送出去的内容分块请求超过一定时间没有收到相应的内容分块,则在所述等待响应列表中删除该内容分块对应的表项。

[0016] 优选的,用户端设备加入对等网络时可以通过自举操作执行下面两个操作之一:一,用户端设备声明自己能够向网络分享的内容分块的名称以及存储路径;二,用户端设备发出内容分块请求。

[0017] 优选的,所述等待响应列表中,内容分块名称对应一个以上的请求端口。

[0018] 优选的,当对等装置接收到内容分块后,若内容缓存装置中不存在相应的内容分块,则查找等待响应列表,根据等待响应列表中内容分块名称对应的一个以上请求端口将所述内容分块转发出去,并删除等待响应列表中对应的表项。

[0019] 优选的,若内容缓存装置中不存在相应的内容分块,将接收到的内容分块进行存储。

[0020] 优选的,若内容缓存装置中不存在相应的内容分块,根据缓存策略决定是否保存接收到的内容分块。

[0021] 优选的,当对等装置接收到内容分块后,若等待响应列表中不存在内容分块名称,则根据缓存策略决定是否保存接收到的内容分块,并丢弃所述内容分块。

[0022] 优选的,当对等装置接收到内容分块后,若内容缓存装置中存在相应的内容分块,则丢弃该接收到的内容分块。

[0023] 一种对等装置之间的文件传输装置,其特征在于,

[0024]内容分块转发装置,当接收到内容分块请求时,首先查询内容缓存装置中是否存在相应的内容分块,如果存在,则将相应的内容分块从请求端口发送出去;第一查询装置,用于当内容缓存装置中不存在请求的内容分块时,则查询等待响应列表,若等待响应列表中包括所述内容分块的名称时,将请求端口记录在所述名称对应的表项;第二查询装置,用于当等待响应列表中不存在所述内容分块的名称时,则查找转发信息表,若转发信息表中不存在所述内容分块的名称以及所述请求端口的组合时,将所述内容分块的名称以及所述请求端口记录在等待响应列表中;请求转发装置,用于第二查询装置确定转发信息表中不存在所述内容分块的名称以及所述请求端口的组合时,将所述的内容分块请求转发出去。

[0025] 一种用户端设备,其特征在于,所述用户端设备包括一个以上端口,查询装置,内容缓存装置,等待响应存储装置,转发信息存储装置;所述内容缓存装置用于存储内容分块;所述等待响应存储装置用于存储当前节点已经发出但是尚未收到反馈的内容分块请求,包括内容分块的名称、请求端口 ;所述转发信息存储装置用于存储内容缓存中存储的内容分块名称、直接转发的内容分块名称以及转发端口 ;所述一个以上端口用于接收内容分块请求和内容分块,若所述内容缓存装置中存在内容分块请求的内容分块,则将该内容分块从请求端口发送出去;若内容缓存装置中不存在内容分块请求的内容分块,则所述查询装置查询等待响应存储装置,若所述等待响应存储装置中存在请求的内容分块名称,则将所述请求端口记录在所述名称对应的表项;所述查询装置还查询信息转发存储装置,如果信息转发存储装置不存在所述内容分块的名称以及请求端口的组合时,将所述内容分块的名称以及所述请求端口记录在所述等待响应存储装置中,并将所述的内容分块请求从所述一个以上端口转发出去。

[0026] 一种路由设备,其特征在于,所述路由设备包括一个以上端口,查询装置,内容缓存装置,等待响应存储装置,转发信息存储装置;所述内容缓存装置用于存储内容分块;所述等待响应存储装置用于存储当前节点已经发出但是尚未收到反馈的内容分块请求,包括内容分块的名称、请求端口 ;所述转发信息存储装置用于存储内容缓存中存储的内容分块名称、直接转发的内容分块名称以及转发端口 ;所述一个以上端口用于接收内容分块请求和内容分块,若所述内容缓存装置中存在内容分块请求的内容分块,则将该内容分块从请求端口发送出去;若内容缓存装置中不存在内容分块请求的内容分块,则所述查询装置查询等待响应存储装置,若所述等待响应存储装置中存在请求的内容分块名称,则将所述请求端口记录在所述名称对应的表项;所述查询装置还查询信息转发存储装置,如果信息转发存储装置不存在所述内容分块的名称以及请求端口的组合时,将所述内容分块的名称以及所述请求端口记录在所述等待响应存储装置中,并将所述的内容分块请求从所述一个以上端口转发出去。

[0027] 本发明有益效果如下:本系统通过缓存优化网络来设计对等网路,实现一种完全对等的分布式网络拓扑结构。显著降低网络中结点的加入退出或者结点的损坏对网络的扰动,使得网络具有良好的鲁棒性与可扩展性。同时通过内容缓存以及等待响应列表表和转发信息表对网络数据和请求进行聚合,大大降低了网络冗余信息的传播,提高网络带宽的利用率。尤其在在网络视频流媒体方面,可以有效地降低视频传输对运营商主骨干网的冲击,减少出口宽带流量,实现用户播放越多播放越流畅,使得服务质量大大提高。

[0028] 本发明的其他特征和优点将在随后的说明书中阐述,并且,部分的从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

附图说明

[0029] 附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表不相同的部件。

[0030] 图1为本发明的基于IP的P2P网络拓扑;

[0031 ]图2为本发明的基于NDN缓存优化的P2P文件传输系统;

[0032] 图3为本发明的NDN网络结点结构图;

[0033] 图4为本发明的内容分块请求处理流程图;

[0034] 图5为本发明的数据包处理流程图;

[0035] 图6本发明的P2P文件共享网络实例。

具体实施方式

[0036] 下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理。

[0037] 图2所示为本申请所提供的一种基于NDN的P2P文件传输系统。其中涉及P2P网络中的用户(Peer)与NDN网络交互方式。图中标示的箭头方向为数据流的方向。

[0038] 每个用户(用户I至用户η)与NDN网络直接相连。从用户角度来看,网络为文件共享资源池,用户可以获取文件与发布文件。而从底层实现来看,用户一旦加入网络,其网卡与存储设备在网络中所处的地位与功能等价于NDN路由器,也可以进行包的转发,其中包括广播、多播与单播,取决于转发信息表中的端口号,以及内容分块的缓存。

[0039] 用户通过步骤1.1、步骤1.2、步骤1.3、步骤1.4与NDN网络交互。P2P用户以及NDN网络构成本申请提出的文件传输方法所述系统。

[0040] 步骤L 1:用户加入该P2P文件共享系统后,需要先进行自举(bootstrap),该步骤分为两个操作:操作1,如果需要,用户首先要声明自己要向网络分享的文件,具体操作为给待分享文件建立网络文件元数据(meta-data),保存在与待分享文件同一路径。操作2,如果需要,用户将向NDN网络发出请求来获取P2P网络共享文件。

[0041] 步骤1.2:NDN网络收到用户的文件获取请求后,通过对内容缓存的查询、请求与数据的转发,将文件分片发送给用户,由用户将文件分片拼接组成完整的目标文件。

[0042] 步骤1.3:如果NDN网络中的路由器并没有保存某文件完整的分片数据,需要向文件的发布者发送上传请求,以获取NDN网络中缺失的相应文件内容分片。

[0043] 步骤1.4:用户收到NDN网络的上传请求后,通过NDN路由器端口,向NDN网络发送指定文件的相应内容分块。

[0044] 步骤1.5:NDN网络中的每个路由器均具有内容分块请求的收发功能,收到上级路由器或用户的内容分块请求,可以转发给下级路由器或用户。

[0045] 步骤1.6:NDN网络中的每个路由器均具有数据包的收发功能,收到上级路由器或用户的数据包,可以转发给下级路由器或用户。

[0046] 步骤1.7:NDN路由器可以查询其内置缓存,收到匹配的文件获取请求,优先将缓存中内容分片发送给请求端口,代替请求包的转发。同时可以保存经过路由器的文件分片。

[0047] 在该网络中每个用户的地位和功能是完全等价的,所以加入和离开该网络不会破坏其纯分布性的特性。如图3的NDN转发节点,用户不需要提供自己的与地理位置相关的信息,如IP地址。由NDN网络中的路由器通过等待响应列表和转发信息表记录请求和数据的到达端口和发出端口,承接其上级和下级路由器,形成一条不依赖网络地址的从内容提供者到内容需要者的通信链路。同时使用内容缓存(Content Store, CS)来存储文件内容分块如果与收到的请求匹配,则直接返回,否则向内容的源端转发获取请求。结合一定缓存策略,可显著减少网络数据冗余。其中等待响应列表用来记录当前结点已经发出但是尚未收到反馈的内容分块请求。等待响应列表记录内容的名字和发送端口,以及时间等信息。特别地,当一个发送出去的内容分块请求超过一定时间仍然没有收到相应的数据包,它在等待响应列表中相应的内容将会被删除。转发信息表用来记录不同内容分块的转发端口,一个文件分块名可以对应多个端口。当有多个转发请求时,NDN路由器只发送一次。

[0048] 在步骤1.1中所述的自举操作中,用户可以发布自己所拥有的文件,与P2P网络中其他用户共享。由用户在软件中注册共享文件,生成类似于BitTorrent协议中的.torrent文件一样的元数据来描述该共享文件。其中包括待分享文件的文件名、文件哈希值、文件大小、文件分块数、分块大小、文件分块名与其哈希值。保存到待分享文件同一个路径下,与其一起构成内容分享的数据实体,即NDN网络中的数据包(Data packet)。该数据包并不会主动发到NDN网络中,而是等到NDN网络向用户发送上传请求,同NDN网络中请求数据所使用的内容分块请求。

[0049] 用户通过向NDN网络发送内容分块请求来请求P2P网络中的文件。内容分块请求包括文件的文件名、文件哈希值和标识。整个P2P网络由内容需要者驱动,即用户的内容分块请求。离当前用户最近的NDN路由器收到该请求后,按照图4所示的内容分块请求处理流程图来进行操作。首先查询内容缓存看是否存在内容分块请求所请求的内容片段,这里需要注意的是,NDN网络传送的均为内容分块,而非完整内容文件,以提高缓存与网络利用率。如果缓存中存在内容分块请求所请求的内容分块,将直接把该内容分块做为数据包从收到内容分块请求的端口发出。此时,用户即可收到所请求的内容文件。如果缓存中不存在内容分块请求所请求的内容,查询等待响应列表,判断该表是否存在请求内容分块的表项,如果存在,则证明已有其他路由器或用户从本路由器发出过相同请求,把该内容分块请求的请求端口记录到等待响应列表中相应的表项后面。如果等待响应列表中不存在该请求内容分块的表项,查找转发信息表,如果转发信息表如果已经存在该内容分块请求的转发记录,表明已经该NDN路由器已经向其上级路由器转发过了该内容分块请求,则不需要重新发送。如果不存在该表项,首先在等待响应列表中记录收到请求的端口,然后根据转发规贝1J,比如洪泛方式(Flooding)从相应端口转发内容分块请求。

[0050] NDN路由器收到数据包后,按照如图5所示的数据包处理流程图进行操作。首先查找内容缓存,看是否存在相同的内容分块,如果存在相同的内容分块,则将该数据包丢掉,以防止冗余数据的转发。如果缓存没有相同的内容分块,则需要查看等待响应列表来得到数据分块的请求端口,从该端口转发出去后,删除等待响应列表相应表项。如果等待响应列表没有匹配的数据分块记录,表明内容请求可能超时,丢弃该数据包。所有经过NDN路由器的内容分块都将根据一定的缓存策略(如LRV算法)来决定是否保存到内容缓存中。

[0051] 此外,用户也会收到NDN网络发来的内容分块请求,如步骤1.3所述,本申请称为上传请求。用户收到该请求有两种情况。第一种情况为,网络中没有该内容分块请求所请求内容的全部分块,请求被传递到内容的原拥有者,此时,如果此用户还拥有该文件,则将该文件进行分块根据等待响应列表的表项,即请求到达端口返回。通过NDN路由器的缓存与转发,内容分块请求发出者将获得该文件。第二种情况为,网络中存在该文件的分块,但是内容分块请求没有在指定的TTL内转发到缓存该文件的路由器,但是文件的拥有者在请求包转发半径内,或者文件的请求者与文件的拥有者相离的跳数要小于其他拥有相同内容分块的路由器,此时文件拥有者仍将为网络和用户提供文件分片,使得内容获取的延时最小。

[0052] 本申请所述方法的特点在于缓存的利用和转发请求的聚合。NDN路由器具有内容缓存,在收到请求后,如果发现该请求与自己缓存中的某内容分块匹配,则直接将缓存中数据返回给数据请求者。同时,内容缓存也可以按照一定策略保存经过的内容分块。获取请求的转发由于等待响应列表和转发信息表的配合,使得请求数据得到有效聚合,节点不会发出重复的请求。以上两个特点正是本申请高于传统基于IP的P2P覆盖网络网络利用率与传输效率的主要原因。

[0053] 如图6所示为本申请所述P2P文件共享网络实例,由6个NDN路由器组成的NDN网络,以及7个P2P用户组成。当用户A想要获取某电影文件,名字为/lzyco/movie/Transformers/v2,向网络发出请求,如操作6.1所示,NDN路由器A将检测自己是否拥有该文件的分块。检查内容缓存没有后,记录用户A与自己的连接端口,该端口用来在收到文件后返回给用户A数据。假设网络被初始化,NDN路由器A不拥有任何该文件的分块。因此向与其相连的路由器进行广播。同时记录该内容分块请求的转发请求名字与发出的端口。此时相邻的NDN路由器B、D、E收到了由NDN路由器A发来的请求。分别记录内容分块请求到来的端口,然后查找内容缓存未匹配后,同NDN路由器A所进行的操作一样,也将请求转发到各自相连的上级路由或用户。则用户B和用户C收到了 NDN路由器B发来的请求,而NDN路由器C则收到了 NDN路由器B与D发来的相同的请求。此时路由器C只会往其上级路由转发一次。如此循环,直到文件的拥有者用户F收到了用来请求文件的内容分块请求。用户F将文件按照一定方法对文件分块,然后根据等待响应列表依次发送给NDN路由器F,如操作6.20所示。而NDN路由器F也按照其等待响应列表发送到相邻路由器,直到用户A收到所有内容分块,然后拼接为完整的文件。此时NDN路由器A、B、C、D、E、F均在用户A到用户F的通信链路上,各自保存了该文件的相应内容分块。当用户G向网络发出请求后,如操作6.30。此时NDN路由器A、D、E、F通过各自所缓存的内容分块给用户G提供了完整的文件,而不需要再次向文件的原始拥有者用户F发出文件获取请求。

[0054] 缓存优化NDN网络可以有两种方式实现:1.采用基于TCP/IP的CCNx源码实现;2.直接通过网卡和网线实现底层NDN网络。

[0055] CCNx是由施乐帕罗奥托实验室(Xerox PARC)基于内容中心网络思想研发的开源项目,该项目为CCN设计出了一个原型系统,给研宄者提供一个开发和实验的平台。CCNx是当前CCN网络架构中实现最好的模型,大量的工作都是基于该项目设计。CCNx将命名主机替换为命名内容,每个网络内容都有一个“名字”,即用命名代替传统的IP地址在网络中标识资源。命名以“ccnx:/”起始,表明这是一个CCNx协议。CCNx为基于TCP/IP协议的覆盖网路,可以兼容现有的TCP/IP网路,同时可以进行增量式部署。方便本方法所述系统的推广与普及。

[0056] 还可以直接通过底层实现NDN网络,利用现有网络架构中的物理层与数据链路层,并且设置路由器和用户计算机的网卡工作于混杂模式,直接运行NDN协议。需要修改链路层以太网帧的最大传输单元长度(MTU)的值,以保证NDN的数据包在传输过程中不被分害J。使用原始套接字(Raw Socket),如Intel DPDK或者使用Iibpcap库直接读取网卡数据,直接控制以太网包的收发。这样可以充分发挥本设计的优势。

[0057] 本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。

[0058] 以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

Claims (32)

1.一种对等装置之间的文件传输方法,其特征在于, 步骤一,当该对等装置接收到内容分块请求时,首先查询内容缓存装置中是否存在相应的内容分块,如果存在,则将相应的内容分块从请求端口发送出去; 步骤二,若内容缓存装置中不存在请求的内容分块时,则查询等待响应列表,若等待响应列表中包括所述内容分块的名称时,将请求端口记录在所述名称对应的表项; 步骤三,若等待响应列表中不存在所述内容分块的名称时,则查找转发信息表,若转发信息表中不存在所述内容分块的名称以及所述请求端口的组合时,将所述内容分块的名称以及所述请求端口记录在等待响应列表中,并将所述的内容分块请求转发出去。
2.根据权利要求1所述的对等装置之间的文件传输方法,其特征在于,在步骤三中,当转发信息表中存在所述内容分块的名称以及所述请求端口的组合时,将所述内容分块请求丢弃。
3.根据权利要求1所述的对等装置之间的文件传输方法,其特征在于,所述对等装置包括用户端设备或路由器。
4.根据权利要求1所述的对等装置之间的文件传输方法,其特征在于,当一个发送出去的内容分块请求超过一定时间没有收到相应的内容分块,则在所述等待响应列表中删除该内容分块对应的表项。
5.根据权利要求3的述的对等装置之间的文件传输方法,其特征在于,用户端设备加入对等网络时可以通过自举操作执行下面两个操作之一:一,用户端设备声明自己能够向网络分享的内容分块的名称以及存储路径;二,用户端设备发出内容分块请求。
6.根据权利要求1所述的对等装置之间的文件传输方法,其特征在于,所述等待响应列表中,内容分块名称对应一个以上的请求端口。
7.根据权利要求6所述的对等装置之间的文件传输方法,其特征在于,当对等装置接收到内容分块后,若内容缓存装置中不存在相应的内容分块,则查找等待响应列表,根据等待响应列表中内容分块名称对应的一个以上请求端口将所述内容分块转发出去,并删除等待响应列表中对应的表项。
8.根据权利要求7所述的对等装置之间的文件传输方法,其特征在于,若内容缓存装置中不存在相应的内容分块,将接收到的内容分块进行存储。
9.根据权利要求7所述的对等装置之间的文件传输方法,其特征在于,若内容缓存装置中不存在相应的内容分块,根据缓存策略决定是否保存接收到的内容分块。
10.根据权利要求1所述的对等装置之间的文件传输方法,其特征在于,当对等装置接收到内容分块后,若等待响应列表中不存在内容分块名称,则根据缓存策略决定是否保存接收到的内容分块,并丢弃所述内容分块。
11.根据权利要求1所述的对等装置之间的文件传输方法,其特征在于,当对等装置接收到内容分块后,若内容缓存装置中存在相应的内容分块,则丢弃该接收到的内容分块。
12.—种对等装置之间的文件传输装置,其特征在于, 内容分块转发装置,当接收到内容分块请求时,首先查询内容缓存装置中是否存在相应的内容分块,如果存在,则将相应的内容分块从请求端口发送出去; 第一查询装置,用于当内容缓存装置中不存在请求的内容分块时,则查询等待响应列表,若等待响应列表中包括所述内容分块的名称时,将请求端口记录在所述名称对应的表项; 第二查询装置,用于当等待响应列表中不存在所述内容分块的名称时,则查找转发信息表,若转发信息表中不存在所述内容分块的名称以及所述请求端口的组合时,将所述内容分块的名称以及所述请求端口记录在等待响应列表中; 请求转发装置,用于第二查询装置确定转发信息表中不存在所述内容分块的名称以及所述请求端口的组合时,将所述的内容分块请求转发出去。
13.根据权利要求12所述的对等装置之间的文件传输装置,其特征在于,还包括请求丢弃装置,用于当第二查询装置确定转发信息表中存在所述内容分块的名称以及所述请求端口的组合时,将所述内容分块请求丢弃。
14.根据权利要求12所述的对等装置之间的文件传输装置,其特征在于,所述等待响应列表中,内容分块名称对应一个以上的请求端口。
15.根据权利要求12所述的对等装置之间的文件传输装置,其特征在于,还包括内容分块接收装置,用于接收到内容分块后,若内容缓存装置中不存在相应的内容分块,则查找等待响应列表,根据等待响应列表中内容分块名称对应的一个以上请求端口将所述内容分块转发出去,并删除等待响应列表中对应的表项。
16.根据权利要求15所述的对等装置之间的文件传输装置,其特征在于,还包括存储装置,用于将内容分块接收装置确定内容缓存装置中不存在相应的内容分块后,将接收到的内容分块进行存储。
17.根据权利要求15所述的对等装置之间的文件传输装置,其特征在于,还包括存储装置,用于确定内容缓存装置中不存在相应的内容分块后,根据缓存策略决定是否保存接收到的内容分块。
18.根据权利要求12所述的对等装置之间的文件传输装置,其特征在于,还包括内容分块丢弃装置,用于接收到内容分块后,若等待响应列表中不存在内容分块名称,丢弃所述内容分块。
19.一种用户端设备,其特征在于,所述用户端设备包括一个以上端口,查询装置,内容缓存装置,等待响应存储装置,转发信息存储装置;所述内容缓存装置用于存储内容分块;所述等待响应存储装置用于存储当前节点已经发出但是尚未收到反馈的内容分块请求,包括内容分块的名称、请求端口 ;所述转发信息存储装置用于存储内容缓存中存储的内容分块名称、直接转发的内容分块名称以及转发端口 ; 所述一个以上端口用于接收内容分块请求和内容分块,若所述内容缓存装置中存在内容分块请求的内容分块,则将该内容分块从请求端口发送出去; 若内容缓存装置中不存在内容分块请求的内容分块,则所述查询装置查询等待响应存储装置,若所述等待响应存储装置中存在请求的内容分块名称,则将所述请求端口记录在所述名称对应的表项;所述查询装置还查询信息转发存储装置,如果信息转发存储装置不存在所述内容分块的名称以及请求端口的组合时,将所述内容分块的名称以及所述请求端口记录在所述等待响应存储装置中,并将所述的内容分块请求从所述一个以上端口转发出去。
20.根据权利要求19所述的用户端设备,其特征在于,如果所述查询装置确定转发信息存储中存在所述内容分块的名称以及所述请求端口的组合时,则将所述内容分块请求丢弃。
21.根据权利要求19所述的用户端设备,其特征在于,所述等待响应列表中,内容分块名称对应一个以上的请求端口。
22.根据权利要求19所述的用户端设备,其特征在于,还包括所述端口接收到内容分块后,若内容缓存装置中不存在相应的内容分块,则查找等待响应存储装置,根据等待响应存储装置中内容分块名称对应的一个以上请求端口将所述内容分块转发出去,并删除等待响应存储装置中对应的表项。
23.根据权利要求22所述的用户端设备,其特征在于,所述内容缓存装置,用于当内容缓存装置中不存在相应的内容分块时将接收到的内容分块进行存储。
24.根据权利要求22所述的用户端设备,其特征在于,其特征在于,所述内容缓存装置,用于当内容缓存装置中不存在相应的内容分块时根据缓存策略决定是否保存接收到的内容分块。
25.根据权利要求19所述的用户端设备,其特征在于,还包括内容分块丢弃装置,用于接收到内容分块后,若等待响应存储装置中不存在内容分块名称,则根据缓存策略决定是否在所述内容缓存装置中保存接收到的内容分块,并丢弃所述内容分块。
26.一种路由设备,其特征在于,所述路由设备包括一个以上端口,查询装置,内容缓存装置,等待响应存储装置,转发信息存储装置;所述内容缓存装置用于存储内容分块;所述等待响应存储装置用于存储当前节点已经发出但是尚未收到反馈的内容分块请求,包括内容分块的名称、请求端口 ;所述转发信息存储装置用于存储内容缓存中存储的内容分块名称、直接转发的内容分块名称以及转发端口 ; 所述一个以上端口用于接收内容分块请求和内容分块,若所述内容缓存装置中存在内容分块请求的内容分块,则将该内容分块从请求端口发送出去; 若内容缓存装置中不存在内容分块请求的内容分块,则所述查询装置查询等待响应存储装置,若所述等待响应存储装置中存在请求的内容分块名称,则将所述请求端口记录在所述名称对应的表项;所述查询装置还查询信息转发存储装置,如果信息转发存储装置不存在所述内容分块的名称以及请求端口的组合时,将所述内容分块的名称以及所述请求端口记录在所述等待响应存储装置中,并将所述的内容分块请求从所述一个以上端口转发出去。
27.根据权利要求26所述的路由设备,其特征在于,如果所述查询装置确定转发信息存储中存在所述内容分块的名称以及所述请求端口的组合时,则将所述内容分块请求丢弃。
28.根据权利要求26所述的路由设备,其特征在于,所述等待响应列表中,内容分块名称对应一个以上的请求端口。
29.根据权利要求26所述的路由设备,其特征在于,还包括所述端口接收到内容分块后,若内容缓存装置中不存在相应的内容分块,则查找等待响应存储装置,根据等待响应存储装置中内容分块名称对应的一个以上请求端口将所述内容分块转发出去,并删除等待响应存储装置中对应的表项。
30.根据权利要求29所述的路由设备,其特征在于,所述内容缓存装置,用于当内容缓存装置中不存在相应的内容分块时将接收到的内容分块进行存储。
31.根据权利要求29所述的路由设备,其特征在于,其特征在于,所述内容缓存装置,用于当内容缓存装置中不存在相应的内容分块时根据缓存策略决定是否保存接收到的内容分块。
32.根据权利要求26所述的路由设备,其特征在于,还包括内容分块丢弃装置,用于接收到内容分块后,若等待响应存储装置中不存在内容分块名称,则根据缓存策略决定是否在所述内容缓存装置中保存接收到的内容分块,并丢弃所述内容分块。
CN201510303702.1A 2015-06-05 2015-06-05 一种基于ndn缓存优化的文件传输方法以及装置 CN104967677B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510303702.1A CN104967677B (zh) 2015-06-05 2015-06-05 一种基于ndn缓存优化的文件传输方法以及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510303702.1A CN104967677B (zh) 2015-06-05 2015-06-05 一种基于ndn缓存优化的文件传输方法以及装置

Publications (2)

Publication Number Publication Date
CN104967677A true CN104967677A (zh) 2015-10-07
CN104967677B CN104967677B (zh) 2019-07-19

Family

ID=54221614

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510303702.1A CN104967677B (zh) 2015-06-05 2015-06-05 一种基于ndn缓存优化的文件传输方法以及装置

Country Status (1)

Country Link
CN (1) CN104967677B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106982412A (zh) * 2017-03-29 2017-07-25 上海斐讯数据通信技术有限公司 一种数据传输网络系统及方法
CN107071015A (zh) * 2017-03-30 2017-08-18 北京工业大学 一种应用于车载自组网的文件传输方法及装置
WO2017185633A1 (zh) * 2016-04-25 2017-11-02 乐视控股(北京)有限公司 Cdn服务器及其缓存数据的方法
CN108881940A (zh) * 2017-12-21 2018-11-23 北京视联动力国际信息技术有限公司 一种数据处理方法和视联网服务器

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070053358A1 (en) * 2002-09-27 2007-03-08 Nokia Corporation Multicast data transfer
CN101039262A (zh) * 2007-01-24 2007-09-19 中国科学院计算机网络信息中心 一种半覆盖自组织的动态组播路由方法
CN103179037A (zh) * 2012-12-13 2013-06-26 清华大学 基于内容的数据中心网络的数据传输方法
CN103457999A (zh) * 2013-08-06 2013-12-18 北京大学深圳研究生院 一种基于ndn网络架构的p2p文件传输方法
CN104410655A (zh) * 2014-09-26 2015-03-11 清华大学 基于命名机制的分布式网络的存储系统及方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070053358A1 (en) * 2002-09-27 2007-03-08 Nokia Corporation Multicast data transfer
CN101039262A (zh) * 2007-01-24 2007-09-19 中国科学院计算机网络信息中心 一种半覆盖自组织的动态组播路由方法
CN103179037A (zh) * 2012-12-13 2013-06-26 清华大学 基于内容的数据中心网络的数据传输方法
CN103457999A (zh) * 2013-08-06 2013-12-18 北京大学深圳研究生院 一种基于ndn网络架构的p2p文件传输方法
CN104410655A (zh) * 2014-09-26 2015-03-11 清华大学 基于命名机制的分布式网络的存储系统及方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017185633A1 (zh) * 2016-04-25 2017-11-02 乐视控股(北京)有限公司 Cdn服务器及其缓存数据的方法
CN106982412A (zh) * 2017-03-29 2017-07-25 上海斐讯数据通信技术有限公司 一种数据传输网络系统及方法
CN107071015A (zh) * 2017-03-30 2017-08-18 北京工业大学 一种应用于车载自组网的文件传输方法及装置
CN108881940A (zh) * 2017-12-21 2018-11-23 北京视联动力国际信息技术有限公司 一种数据处理方法和视联网服务器

Also Published As

Publication number Publication date
CN104967677B (zh) 2019-07-19

Similar Documents

Publication Publication Date Title
Xylomenos et al. A survey of information-centric networking research
Vasilakos et al. Information centric network: Research challenges and opportunities
US8375436B2 (en) Session migration over content-centric networks
US9112875B2 (en) System and method for anonymous addressing of content on network peers and for private peer-to-peer file sharing
US9515920B2 (en) Name-based neighbor discovery and multi-hop service discovery in information-centric networks
US7920572B2 (en) Modifying operation of peer-to-peer networks based on integrating network routing information
US7852767B2 (en) Methods and apparatus for routing in a network
KR20140044982A (ko) 홉 카운트 기반 콘텐츠 캐싱 방법 및 그 네트워크 엔티티
EP2719133B1 (en) A generalized dual-mode data forwarding plane for information-centric network
Shen et al. HPTP: Relieving the Tension between ISPs and P2P.
US20040085912A1 (en) Autonomous system topology based auxiliary network for peer-to-peer overlay network
US8913525B2 (en) Method of merging distributed hash table (DHT) rings in heterogeneous network domains
CA2385781C (en) Path optimizer for peer to peer networks
EP2058980A1 (en) A method, system and device for establishing a peer to peer connection in a p2p network
EP2813060B1 (en) A method for collaborative caching for content-oriented networks
Chai et al. Cache “less for more” in information-centric networks (extended version)
Katsaros et al. MultiCache: An overlay architecture for information-centric networking
Cheng et al. Supporting VCR functions in P2P VoD services using ring-assisted overlays
US9319311B2 (en) System and method for a context layer switch
WO2011150830A1 (zh) 获取内容的方法、节点及内容网络
Kim et al. Performance analysis of in-network caching for content-centric networking
CN104115472A (zh) 用于内容导向网络中可扩展路由的方法
Lee et al. SCAN: Scalable content routing for content-aware networking
CN101459614B (zh) 一种网络数据传输的方法、系统和设备
Navimipour et al. A comprehensive study of the resource discovery techniques in Peer-to-Peer networks

Legal Events

Date Code Title Description
C06 Publication
C10 Entry into substantive examination
GR01 Patent grant