一种数据传输方法与流程

文档序号:12625441阅读:239来源:国知局
一种数据传输方法与流程

本发明涉及计算机网络技术领域和通信技术领域,尤其涉及一种数据传输方法。



背景技术:

近年来,互联网技术得到快速发展,人们的通信需求也从主机互联通信转换为以内容获取为主的通信方式。然而,现在网络的通信架构是基于IP地址的以主机到主机的方式,这样的通信模式已经暴露出安全性差、信息分发效率低、移动性差、扩展性差等诸多问题。为了适应互联网发展的需求,解决现有网络存在的缺陷,因此,研究者提出了一系列以信息为中心的网络体系结构(ICN,Information-Centric Networking),如CCN(Content-Centric Networking),NDN(Named Data Networking)等。

与现有网络架构的不同在于,信息中心网络是通过对网络中存在的所有数据内容进行命名,数据包根据内容名进行路由。中间路由器节点包含内容存储器(CS,Content Store)可以缓存内容,并且可以响应内容的请求,直接将缓存内容返回给用户,加快内容的分发速率,减少用户获取内容的时延。因此,充分利用中间路由节点的本地缓存是提高网络内容分发能力的关键。

由于在ICN网络中,中间路由节点也可以作为内容请求的响应节点,因此传统的基于端到端的传输以及可靠机制并不适用与ICN网络,且现有的方案中每一跳都需要接收到完整的内容后才能够向上一跳发送确认消息,并将此完整内容发送到下一跳节点,然而这并不能很好的同时满足可靠性和低时延的要求,因此,同时实现可靠的网内缓存和快速的数据传输是ICN网络架构中需要解决的一大难题。



技术实现要素:

(一)要解决的技术问题

本发明的目的在于,提供一种数据传输方法,实现可靠的网内缓存和快速的数据传输。

(二)技术方案

本发明提供的数据传输方法,对于同一个节点,其并行地执行从上一跳节点接收数据分片和向下一跳发送已接收的数据分片。在接收上一跳节点发送的数据分片时,通过与上一跳节点交互,以确认所有数据分片都已完整地接收,通过与下一跳节点交互,以确认所有数据分片都已完整地发送。另外,本发明提出了一种二进制数据结构,能辅助各个节点确认数据分片的接收和发送情况。

(三)有益效果

本发明能在同一节点上并行地进行数据分片的发送与接收,进而提高了数据传输速度。另外,采用本发明的二进制结构,辅助节点确认数据分片的发送和接收情况,提高了数据传输的可靠性。

附图说明

图1为本发明的网络拓扑示意图;

图2为本发明中数据分片的头部信息格式;

图3为本发明中n比特长的BITMAP结构的示例图;

图4为本发明内容响应节点的处理流程图;

图5为本发明中间路由节点的并行数据发送和接收处理流程图;

如图6为本发明实施例中数据传输的场景图。

具体实施方式

本发明提供一种数据传输方法,首先第一节点将数据进行分片,得到多个数据分片;然后第一节点将每个数据分片分别发送至第一节点下一跳的第二节点,在发送完所有数据分片后,第一节点向第二节点发送结束消息;接着,第二节点收到结束消息后,向第一节点发送接收状态消息;最后,第一节点根据第二节点发送的当前接收状态信息,判断第二节点是否接收到了所有数据分片,当判断出一个或多个数据分片未被第二节点所接收到时,第一节点重新将一个或多个数据分片发送至第二节点。

图1所示为本发明的网络拓扑示意图,如图1所示,网络中具有A~F共6个路由器,每个路由器可作为一个节点进行数据传输,其中,每个路由器具有数据存储功能。例如,当用户向内容服务器发送一个内容数据请求,该请求在网络中沿着A-B-C路径进行转发,当路由器C中具有该请求所请求的内容数据时,该请求不再转发至内容服务器中,而是路由器C根据内容数据生成一个响应数据包,沿原路返回至用户,此路由器C也称为内容命中节点,在数据沿C-B-A路径发送至用户处的过程中,路由器B和路由器A也称为中间路由节点。这种网内缓存机制节省了数据传输路径,加快了数据传输速度。本发明也是基于此技术而实现的。

需要说明的是,本发明所说的第一节点为发送节点,其可以是缓存有内容数据的路由器,也可以直接是内容服务器,第二节点是发送节点下一跳的接收节点,其可以是具有缓存功能的路由器,也可以直接是用户所在的客户端。如图1所示,若数据是从C中发送,沿C-B-A路径发送至用户处,则在认为第一节点是路由器C,第二节点是路由器B。当路由器B接收到完整数据后,路由器B即为第一节点,路由器A即为第二节点。

进一步,步骤S2中,第一节点向第二节点发送结束消息后,还需要知道第二节点是否都已完整地接收到了所有数据分片,所以,第二节点会返回一个接收状态消息,以表示第二节点是否都已接收所有数据分片。在第一时间阈值内未收到第二节点发送的接收状态消息,则重新发送结束消息至第二节点,以提示第二节点向第一节点返回接收状态消息。具体地,第一节点发送完发送结束消息后,可设定一个发送超时定时器T1,T1所设定的时间即为该第一时间阈值,优选地,第一时间阈值大于2个RTT。

第一节点多次发送结束消息至第二节点后,均未收到第二节点发送的接收状态消息,则认为第一节点与第二节点间的链路断开,此时,选择其他节点作为第二节点,进行数据传输。如图1所示,C-B之间的链路断开后,将D作为第二节点。

进一步,由于第一、第二节点链路断开,无法进行数据传输,步骤S2中,第二节点在接收多个数据分片时,若在接收到一个数据分片后的第二时间阈值内,未接收到下一个数据分片,则第二节点删除本地已接收的数据分片,并结束接收流程。或者说,第二节点在接收到所有数据分片后,在第二时间阈值内未接收到第一节点发送的结束消息,则第二节点删除本地已接收的数据分片,并结束接收流程。本发明同样可以采用一个接收超时定时器T2,用来确定一个第二时间阈值,第二时间阈值大于3倍的第一时间阈值,目的是为了当链路中断时结束第二节点的接收等待,释放缓存。

进一步,步骤S2还包括,在第二节点中生成一个长度为数据分片个数的二进制序列(BITMAP结构),具体的,BITMAP结构的每一位表示对应数据分片是否被第二节点接收,0表示相应的数据分片未被第二节点接收,1表示相应的数据分片已被第二节点接收。第二节点每接收到一个数据分片时,将二进制序列相应位置为1。例如,数据被分为共4个数据分片,其中,BITMAP结构初始化为0000,在接收到第一个数据分片后,BITMAP结构变为0001,在接收到第二个数据分片后,BITMAP结构变为0011,直到接收到所有数据分片后,BITMAP结构变为1111。第二节点在收到第一节点发送的结束消息后,判断BITMAP结构是否全为1,若是,则将接收到的所有数据分片聚合,到的完整的数据并存储。另外,第二节点向第一节点发送的接收状态消息中包含有BITMAP结构,第一节点根据所述二进制序列判断是否相应的数据分布未被第二节点所接收。

进一步,第二节点还将本地已接收的数据分片发送至第二节点下一跳的第三节点,其中,第二节点并行地进行数据分片接收和数据分片发送采用这种同步机制,提高了数据传输速度。

下面将详细描述本发明的数据传输的主要步骤,主要可以分为节点的数据发送和接收处理流程,中间路由节点的接收和发送的并行处理流程。

如图4所示,节点的数据发送和接收处理流程,包括:

步骤101,内容命中节点(用户发出的请求经过的所有中间路由器都会检查本地内容存储器中是否有用户请求的内容,若中间路由器本地存在内容缓存,则该路由器节点被视为内容命中节点,如果中间路由器都不存在指定的内容,则请求到达内容服务器,服务器视为内容命中节点,内容命中节点即为最开始的发送节点)从本地内容存储器中获取原始内容块,并根据链路最大传输单元(MTU,Maximum Transmission Unit)的大小将原始内容进行分片为多个数据包分片,每个数据分片的头部信息都包含有内容名、该内容的总分片数目以及该数据包的序列号信息,如图2所示;

发送节点将每一个数据分片发送到下一跳接收节点,并在发送最后一个数据分片后继续发送一个结束消息表明数据分片发送的结束,并启动发送超时定时器T1。发送超时定时器T1的初始时间与链路状态有关,通常大于2个RTT,可根据实际情况来设定。

步骤102,发送节点判断在发送超时定时器超时前是否接收到下一跳接收节点返回的消息。如果未接收到任何消息,则执行步骤103;否则进一步判断接收到返回消息的类型,执行步骤104。

步骤103,发送节点重传结束消息到下一跳接收节点。在此过程中,若发送超时定时器T1的超时次数达到给定的门限值,且没有收到下一跳路由节点返回的任何消息,则可以判断出现链路中断,此时发送节点重新选择下一跳路由节点,重新发送所有数据分片。

步骤104,发送节点在发送超时定时器T1超时前收到下一跳路由节点的返回状态消息,则进一步判断返回的消息类型,如果是对所有数据分片的正确接收消息,则发送节点结束发送流程;否则,执行步骤105。

步骤105,发送节点检查该BITMAP数据结构中的0、1组成情况,重传接收信息包含的BITMAP结构中置0位对应的数据分片,对于BITMAP相应位为0,但本地内容存储器中不存在的数据分片,则发送节点等待正确接收到上一跳节点发送的该数据分片,再发送该数据分片给所述接收节点;

如图3所示的BITMAP结构由中间路由节点(发送时作为发送节点,接收时作为接收节点)进行维护,是标识内容分片的接收状态信息。由固定长度的0、1序列构成,长度为内容数据的总分片数。相应BITMAP结构位置为1表示该位置对应的分片已被正确接收,而如果相应的BIT位置为0,则表示对应的分片尚未被正确接收。

如图5所示,中间路由节点并行接收上一跳节点发送的数据分片和发送已经接收到数据分片到下一跳节点,实现节点存储与转发的分离(存储以完整数据为单位操作,转发则以分片为单位操作),中间路由节点处理流程包括:

步骤201,中间路由节点每接收到一个数据分片,检查数据分片的内容标识、总分片数、该数据分片的序列号,对相应的BITMAP结构中数据分片序列号位置1;

同时,每个中间路由节点在每次接收到一个数据分片时,重置相应的接收超时定时器T2,接收超时定时器的时间通常大于3倍的发送超时定时器T1的时间,目的是为了当链路中断时结束接收节点的接收等待,释放缓存。

步骤202,中间路由节点临时存储接收到的每个不重复的数据分片,同时将已经接收到的数据分片直接发送到下一跳路由节点;

步骤203,当中间路由节点接收到上一跳路由节点发送的结束消息时,检测本地BITMAP数据结构中是否全部置1,如果为全1则表明已经成功接收到该内容的所有数据分片,执行步骤204;否则,执行步骤205。

步骤204,返回完整接收的接收状态消息(包含全1的BITMAP结构)给上一跳路由节点,告知上一跳路由节点已经接收到该内容的所有分片。同时,聚合本地该内容标识对应的临时缓存中所有的数据分片,存储为一个完整内容到本地内容存储器。

步骤205,返回部分接收的接收状态消息(包含BITMAP结构)给上一跳路由节点,目的在于告知上一跳路由节点请求重发BITMAP数据结构中置0位对应的数据分片。

步骤206,若接收节点的接收超时定时器T2超时,但还未收到上一跳发送节点重发的数据分片,则认为链路中断,接收节点删除包含该内容标识的已经接收到的不完整的数据分片临时缓存,结束接收流程。

为了便于理解,下面结合具体示例对本发明做进一步说明。

如图6为本发明实施例中数据传输的场景图。在本实施例中,C节点被视为内容响应节点,A、B为其中间路由节点。

步骤301,内容响应节点C由于链路最大传输单元的限制,需要将响应的原始内容块进行分片,分片序号为1~n,针对每一个数据分片,构造响应数据包发送到下一跳路由节点B,在发送序列号为n的响应数据分片后,节点C发送结束信息到节点B并设置发送超时定时器T1。

步骤302,路由节点B每接收到一个数据包分片后,根据数据分片头部包含的内容标识、该内容的总分片数n和该数据分片的序列号,对本地维护的相应的BITMAP结构的相应位做置1操作,节点B重置接收超时定时器T2,同时将从节点C接收到的该数据分片发送给下一跳路由节点A,节点B设置相应的发送超时定时器T3。

步骤303,如果节点B在接收超时定时器T2超时后还未收到C发送的结束消息,则B节点删除所有已经收到的不完整的所有数据分片。否则,节点B将此结束消息转发到路由节点A,并检查本地的BITMAP结构是否为全1,如果为全1,则返回针对所有数据分片的状态信息(含全1的BITMAP结构)到节点C,并按照序列号聚合数据分片为完整内容,存储到本地。否则返回包含BITMAP数据结构的针对部分数据分片的确认消息(包含非全1的BITMAP结构)到节点C。

步骤304,如果节点C在发送超时定时器T1超时之前收到节点B返回的包含BITMAP数据结构的部分数据分片确认消息,则节点C重传BITMAP结构中置0位的数据分片;如果收到针对所有数据分片的确认消息,则节点C结束发送流程;如果节点C在发送超时定时器T1超时时还未收到节点B返回的任意类型消息(部分数据分片确认消息或所有数据分片的确认消息),则节点C重传结束消息到节点B,并重置发送超时定时器T1;

步骤305,当节点B收到A返回的部分确认消息后,如果节点B本地中不存在BITMAP中置0位的数据分片,则B此时等待从节点C接收到缺失的数据分片,然后将此数据分片发送到节点A。

需要注意的是,在步骤304中,节点C需重传结束消息到B节点时,如果节点C和节点B之间链路出现问题,导致C节点重传次数到达上限,则节点C重新选择路由的下一跳节点E,并发送所有数据分片。

综上所述,可见本发明实现了可靠存储和转发分离的机制。中间路由器可以并行接收上一跳节点发送的数据分片和发送本地已经接收到数据分片到下一跳节点的过程,而不需要等待接收到一个完整的内容才向下一跳转发,通过本发明,用户可以快速的从网络中路由器节点获取内容,提高了用户获取文件的速度,但同时提供可靠性保证。

本领域的技术人员应该进一步意识到,上述实施方式中各种方法的全部或者部分步骤可以通过软件、硬件或者两者结合的方式实现。该程序内容可以存储在计算机可读存储介质中,存储介质可以包含:只读存储器,随机存储器或技术领域内所公知的任意其它形式的存储介质中。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1