命名数据网络下一种实时流数据分发的方法与流程

文档序号:12729784阅读:234来源:国知局
命名数据网络下一种实时流数据分发的方法与流程
本发明涉及网络通信
技术领域
,特别涉及命名数据网络下的一种实时流数据分发的方法。
背景技术
:命名数据网络(NDN,NamedDataNetworking)是近些年来提出的一种试图替代传统基于TCP/IP协议的网络的未来互联网架构,其通过统一化的数据命名和网络内置的缓存,将通信核心从通信节点的位置转移到通信请求的内容。NDN架构下的内容分发完全是由数据接收端,也就是数据请求方发起,用户通过拉(pull)的方式获取数据。NDN的通信流程主要是:用户发出请求一个内容的兴趣包(Interest);兴趣包到达路由节点后,首先在内容缓存(ContentStore,CS)中查找是否存在相应数据包(Data),如果存在则直接返回相应数据包给用户,如果不存在则查找未决兴趣表(PendingInterestTable,PIT);如果PIT中存在相同的内容请求则记录该兴趣包来源端口并丢弃该兴趣包,不存在查找转发信息表(ForwardingInformationBase,FIB);如果FIB中存在相应内容名字前缀就按照FIB中查找到的转发端口转发该兴趣包,同时在PIT中记录该兴趣信息,否则丢弃该兴趣包。当内容源收到该兴趣包之后,返回相应数据包。中间节点根据PIT中记录沿反向路径转发该数据包,并根据缓存决策策略决定是否在CS中缓存该数据包。目前NDN架构下的实时流数据的分发是利用标准的NDN通信流程进行数据分发,用户通过实时发送兴趣包获取相应内容,现有方法存在以下问题:首先,NDN基于包级别的全状态路由转发对于实时流数据分发业务操作流程复杂,路由节点需要构建、删除大量的PIT条目,加重了网络路由节点负担。其次,NDN基于拉的内容分发模式使得用户需要实时发送大量的兴趣包,并需要保证用户请求与流数据源分发同步,这需要额外的操作开销,同时降低了数据分发的实时性。最后,对于一些需要实时获取用户交互数据的实时流数据分发业务(例如网络直播,需要用户的互动参与),由于用户只能收数据而不能主动发数据(这需要流数据源发出内容请求才能实现,但流数据源不能识别是哪个用户正在请求数据),故缺少用户与流数据源的交互操作。因此,设计一种高效并具有交互性保证的实时流数据的分发方法,对NDN架构下的内容分发有着重要的意义。技术实现要素:本发明的目的在于,提出了命名数据网络下的一种实时流数据分发方法,能够实现高效的实时流数据分发,并增加用户与流数据源的交互性保证。命名数据网络下的一种实时流数据分发方法包括:实时流数据分发机制和用户与流数据源服务器之间交互机制;所述实时流数据分发机制包括实时流数据分发链路建立过程和实时流数据分发链路断开过程。所述实时流数据分发链路建立过程,具体包括以下步骤:S401:用户向其接入的路由节点发送特定兴趣包,请求获得所需要的实时流数据;S402:路由节点收到特定兴趣包,获得特定兴趣包中内容名字,并根据内容名字依次查找节点的未决兴趣表PIT与转发信息表FIB来决定是本地处理该特定兴趣包还是转发该特定兴趣包;如果PIT表中存在相同的内容请求,路由节点就向对应内容条目的请求来源端口列表中添加特定兴趣包来源端口,并丢弃特定兴趣包;如果PIT表中不存在相同的内容请求,路由节点就继续查找FIB表;如果FIB表中找到内容请求对应路由转发端口,路由节点就向转发端口转发特定兴趣包,并在PIT表中记录请求信息,请求信息包括内容名字、兴趣包来源端口和特定兴趣包转发端口;如果FIB表中没有找到内容请求对应路由,路由节点就直接丢弃特定兴趣包;S403:流数据源服务器收到特定兴趣包,根据PIT表中记录向路由节点顺序推送实时产生的正常数据包序列;S404:路由节点顺序收到来自流数据源服务器发送的正常数据包,并根据PIT表中记录向请求来源端口列表中所有端口转发正常数据包,同时路由节点每在收到正常数据包后就重置该PIT记录的生存时间,以此来保证数据分发路径不会因超时而被删除,且不在内容缓存CS中缓存正常数据包;S405:用户顺序接收到正常数据包,根据需要将正常数据包交给相应的流数据应用进行数据包的处理。所述实时流数据分发链路断开过程,具体包括以下步骤:S501:用户向其接入的路由节点发送注销兴趣包,请求断开流数据分发过程;S502:路由节点收到注销兴趣包,获得注销兴趣包中内容名字,并根据内容名字查找节点的未决兴趣表PIT;在PIT表中查找到相应内容请求后,路由节点就从对应内容条目的请求来源端口列表中删除注销兴趣包的来源端口;在删除注销兴趣包的来源端口之后,如果内容条目的请求来源端口列表为空,路由节点按照内容条目的转发端口转发注销兴趣包,并在转发完成后删除内容条目;如果内容条目的请求来源端口列表不为空,路由节点就直接丢弃注销兴趣包;S503:流数据源服务器收到注销兴趣包,根据PIT表中记录删除注销兴趣包来源端口;由于不存在请求端口,流数据源服务器断开正常数据包发送,此后用户不会收到来自流数据源服务器发送的正常数据包。所述用户与流数据源服务器之间交互机制,包括以下步骤:S601:流数据源服务器使用流数据分发机制建立的流数据分发链路向用户发送特定数据包,用以获得所需的用户实时产生的数据;S602:路由节点收到特定数据包,根据特定数据包中内容名字建立用户到流数据源的反向PIT条目,同时路由节点按照未决兴趣表PIT中根据流数据分发机制建立的内容条目转发特定数据包;S603:用户收到特定数据包,根据需要沿反向PIT链路向流数据源发送用户自己产生的用户数据包;S604:路由节点收到用户产生的用户数据包,根据未决兴趣表PIT中反向PIT条目转发用户数据包,但路由节点不删除反向PIT条目,同时路由节点不在内容缓存CS中缓存用户数据包;S605:流数据源服务器接收到来自用户的用户数据包。所述的反向PIT条目是指路由节点收到特定数据包后在未决兴趣表PIT中创建的内容条目;条目包含内容名字、数据包来源端口和生存时间三个字段;内容名字由表示反向的字段和特定数据包名字组成,数据包来源端口是指特定数据包的来源端口,生存时间是反向PIT条目的生存时间,生存时间数值由流数据源服务器设定。所述的反向PIT链路是指用户到流数据源服务器的路径上所有路由节点未决兴趣表PIT中反向PIT条目建立起来的稳定链路。与现有技术相比本发明的有益效果是:1.本发明所述的实时流数据分发的方法通过使用特定兴趣包在数据源和用户之间建立稳定的分发链路保证了实时流数据分发的可靠性,增加了分发效率,同时降低了网络的控制开销;2.本发明所述的实时流数据分发的方法在数据包分发过程中由于不缓存流数据源分发的数据包,使得路由节点可以更合理利用其缓存空间;3.本发明所述的实时流数据分发的方法通过使用注销兴趣包断开数据分发链路,使得路由节点能够实时控制流数据包转发,避免了无用的流数据分发;4.本发明所述的实时流数据分发的方法通过流数据源利用数据分发链路分发特定数据包建立反向PIT链路,实现了用户与流数据源的实时交互;附图说明图1-a是本发明实施例提供的兴趣包格式图;图1-b是本发明实施例提供的数据包格式图;图2是本发明实施例提供的未决兴趣表PIT的格式图;图3是本发明所述的命名数据网络下实时流数据分发的方法整体结构图;图4是本发明所述的命名数据网络下实时流数据分发的方法中实时流数据分发链路建立过程的流程图;图5是本发明所述的命名数据网络下实时流数据分发的方法中实时流数据分发链路断开过程的流程图;图6是本发明所述的命名数据网络下实时流数据分发的方法中实现用户与流数据源服务器交互过程的流程图;图7是本发明所述的命名数据网络下实时流数据分发的方法实现实时流数据接收的应用场景示意图;图8是本发明所述的命名数据网络下实时流数据分发的方法实现用户断开流数据接收的应用场景示意图;图9是本发明所述的命名数据网络下实时流数据分发的方法实现用户向流数据源实时发送数据的应用场景示意图。具体实施方式本发明提出命名数据网络下的一种实时流数据分发方法,解决实时流数据分发不高效及用户与流数据源缺少交互问题。本方法实施例提供的实时流数据分发的方法包含2种类型的包:兴趣包(Interest)和数据包(Data),如图1(a)、1(b)所示。兴趣包主要包含3个字段:内容名字、选择条件、随机数,如图1(a)所示。其中,内容名字字段表示被请求的内容,选择条件字段包含类型、优先排序、内容源过滤、内容选择范围等内容选择条件,随机数字段避免兴趣包循环转发。本发明中,兴趣包类型包括原始兴趣包、特定兴趣包、注销兴趣包。原始兴趣包是命名数据网络原有兴趣包,其内容名字字段由内容名字前缀和数据块序列号组成。特定兴趣包是用户为获得实时流数据发送的兴趣包,其内容名字字段只由内容名字前缀构成,不包含数据块序列号。注销兴趣包是用户为断开实时流数据发送的兴趣包,其内容名字字段与特定兴趣包的内容名字字段相同。数据包主要包含4个字段:内容名字、签名、签署信息和内容,如图1(b)所示。其中,内容名字字段表示被请求的内容,签名字段用于内容源认证,签署信息字段包含类型、内容源标识、密钥定位、过期时间等内容签署信息,内容字段包含被请求的内容。本发明中,数据包类型包含原始数据包、正常数据包、特定数据包、用户数据包。原始数据包是命名数据网络原有数据包,其内容名字字段由内容名字前缀和数据块序列号组成。正常数据包是流数据源实时产生的数据包,其内容名字字段与原始数据包的内容名字字段相同。特定数据包是流数据源为实现和用户实时交互而发送的数据包,其内容名字字段也与特定兴趣包的内容名字字段相同。用户数据包是用户为与流数据源交互实时产生的数据包,其内容名字字段是在原始数据包的内容名字字段前添加表示反向PIT的字段“RPIT”,此处反向PIT会在后文说明。其中,命名数据网络中内容名字采用层次化命名方式,由内容名字前缀和数据块序列号组成。比如video/nba.avi/_s1表示video(视频)类别下、内容名字为nba.avi、序列号为s1的数据块。另外,本方法实施例提供的实时流数据分发的方法对命名数据网络中路由节点PIT表添加转发端口字段进行扩展。如图2所示,扩展后的PIT表包含内容名字字段、来源端口列表字段和转发端口字段。其中来源端口列表字段记录兴趣表来源端口,转发端口字段记录兴趣表被转发出去的转发端口。如图3所示,本发明所述实时流数据分发方法由实时流数据分发机制和用户与流数据源服务器之间交互机制组成,而实时流数据分发机制包括实时流数据分发链路建立过程和实时流数据分发链路断开过程两部分。其中,流数据是指一组顺序、大量、快速、连续到达的数据序列,比如网络视频直播或者电视直播产生的数据。一种实时流数据分发机制,该机制包括实时流数据分发链路建立过程和实时流数据分发链路断开过程。如图4所示,实时流数据分发链路建立过程是指用户需要接收实时流数据时,用户向流数据源服务器发送控制信息以建立流数据分发链路的过程,具体包括以下步骤:S401:用户向其接入的路由节点发送特定兴趣包,请求获得所需要的实时流数据;S402:路由节点收到特定兴趣包,获得特定兴趣包中内容名字,并根据内容名字依次查找节点的未决兴趣表PIT与转发信息表FIB来决定是本地处理该特定兴趣包还是转发该特定兴趣包。如果PIT表中存在相同的内容请求,路由节点就向对应内容条目的请求来源端口列表中添加特定兴趣包来源端口,并丢弃特定兴趣包;如果PIT表中不存在相同的内容请求,路由节点就继续查找FIB表。如果FIB表中找到内容请求对应路由转发端口,路由节点就向转发端口转发特定兴趣包,并在PIT表中记录请求信息,请求信息包括内容名字、兴趣包来源端口和特定兴趣包转发端口;如果FIB表中没有找到内容请求对应路由,路由节点就直接丢弃特定兴趣包;S403:流数据源服务器收到特定兴趣包,根据PIT表中记录向路由节点顺序推送实时产生的正常数据包序列;S404:路由节点顺序收到来自流数据源服务器发送的正常数据包,并根据PIT表中记录向请求来源端口列表中所有端口转发正常数据包,同时路由节点每在收到正常数据包后就重置该PIT记录的生存时间,以此来保证数据分发路径不会因超时而被删除,且不在内容缓存CS中缓存正常数据包;S405:用户顺序接收到正常数据包,根据需要将正常数据包交给相应的流数据应用进行数据包的处理;如图5所示,实时流数据分发链路断开过程是指用户不需要继续接收实时流数据时,用户向流数据源服务器发送控制信息以断开流数据分发过程,具体包括以下步骤:S501:用户向其接入的路由节点发送注销兴趣包,请求断开流数据分发过程;S502:路由节点收到注销兴趣包,获得注销兴趣包中内容名字,并根据内容名字查找节点的未决兴趣表PIT。在PIT表中查找到相应内容请求后,路由节点就从对应内容条目的请求来源端口列表中删除注销兴趣包的来源端口。在删除注销兴趣包的来源端口之后,如果内容条目的请求来源端口列表为空,路由节点按照内容条目的转发端口转发注销兴趣包,并在转发完成后删除内容条目;如果内容条目的请求来源端口列表不为空,路由节点就直接丢弃注销兴趣包。S503:流数据源服务器收到注销兴趣包,根据PIT表中记录删除注销兴趣包来源端口。由于不存在请求端口,流数据源服务器断开正常数据包发送,此后用户不会收到来自流数据源服务器发送的正常数据包。一种用户与流数据源服务器之间交互机制,如图6所示,该机制包括以下步骤:S601:流数据源服务器使用上述流数据分发机制建立的流数据分发链路向用户发送特定数据包,用以获得所需的用户实时产生的数据;S602:路由节点收到特定数据包,根据特定数据包中内容名字建立用户到流数据源的反向PIT条目,同时路由节点按照未决兴趣表PIT中根据上述流数据分发机制建立的内容条目转发特定数据包;S603:用户收到特定数据包,根据需要沿反向PIT链路向流数据源发送用户自己产生的用户数据包;S604:路由节点收到用户产生的用户数据包,根据未决兴趣表PIT中反向PIT条目转发用户数据包,但路由节点不删除反向PIT条目,同时路由节点不在内容缓存CS中缓存用户数据包;S605:流数据源服务器接收到来自用户的用户数据包;其中,所述的反向PIT条目是指路由节点收到特定数据包后在未决兴趣表PIT中创建的内容条目。条目包含内容名字、数据包来源端口和生存时间三个字段。其中,内容名字由表示反向的字段和特定数据包名字组成,比如RPIT/video/nba.avi,其中RPIT表示是表示反向PIT字段,而/video/nba.avi是特定数据包名字。数据包来源端口是指特定数据包的来源端口。生存时间是反向PIT条目的生存时间,该值可以由流数据源服务器设定。所述的反向PIT链路是指用户到流数据源服务器的路径上所有路由节点未决兴趣表PIT中反向PIT条目建立起来的稳定链路。以下结合附图,举具体的实施例详细说明。假设PIT条目的初始生存时间为5000ms,网络中直连路由节点之间链路时延均为500ms,实施例一:本发明实施例介绍命名数据网络下实时流数据分发机制中实时流数据分发链路建立过程。该过程的应用场景示意图如图7所示,其中虚线为特定兴趣包转发路径,实线为正常数据包转发路径,具体包括:t=0时刻,用户705为获得来自流数据源服务器700的数据,向路由节点703发送内容名字为/video/nba.avi的特定兴趣包。由于此时各个路由节点未决兴趣表PIT表中没有相同的内容请求条目记录,路由节点703、702、701将分别在t=500,1000,1500时刻收到特定兴趣包,并按照转发信息表FIB转发特定兴趣包直到特定兴趣包到达流数据源服务器700。同时,路由节点703、702、701会在转发特定兴趣包之后在未决兴趣表PIT中记录请求信息。当t=2000ms时刻,流数据源服务器700收到特定兴趣包,此时路由节点703、702、701的未决兴趣表PIT中相应条目分别如下所示:表1:路由节点703的PIT表内容名字来源端口列表转发端口生存时间/video/nba.avi123500表2:路由节点702的PIT表内容名字来源端口列表转发端口生存时间/video/nba.avi134000表3:路由节点701的PIT表内容名字来源端口列表转发端口生存时间/video/nba.avi214500当流数据源服务器700收到特定兴趣包后,流数据源服务器700向路由节点701实时顺序发送正常数据包序列。正常数据包的内容名字用特定兴趣包内容名字和分段号标识,比如/video/nba.avi/_s1、/video/nba.avi/_s2、/video/nba.avi/_s3等。路由节点701、702、703在收到来自流数据源服务器700的正常数据包后,查找节点的未决兴趣表PIT中内容名字为/video/nba.avi的条目,更新该条目的生存时间为初始值5000ms,并按照来源端口列表转发正常数据包。最终,正常数据包被转发到用户705。当用户706为获得来自流数据源服务器700的数据时,用户706向路由节点704发送内容名字为/video/nba.avi的特定兴趣包。由于此时路由节点704的未决兴趣表PIT中没有相同的内容请求条目记录,路由节点704会转发该兴趣包到路由节点702,并在未决兴趣表PIT中记录请求信息。当路由节点702收到特定兴趣包后,由于路由节点702的PIT中存在内容名字为/video/nba.avi的内容请求条目记录,故特定兴趣包会被未决兴趣表PIT聚合,同时路由节点702放弃转发特定兴趣包。此时路由节点704、702未决兴趣表PIT中相应条目如下所示:表4:路由节点704的PIT表内容名字来源端口列表转发端口生存时间/video/nba.avi124500表5:路由节点702的PIT表内容名字来源端口列表转发端口生存时间/video/nba.avi1,235000此后,来自流数据源服务器700的正常数据包在到达路由节点702后,会按照路由节点702的未决兴趣包PIT中内容条目的来源端口列表被转发到路由节点703和路由节点704。最终正常数据包也会被用户706接收。实施例二:本发明实施例介绍命名数据网络下实时流数据分发机制中实时流数据分发链路断开过程。该过程的应用场景示意图如图8所示,其中虚线为注销兴趣包转发路径,实线为流视频源服务器产生的正常数据包转发路径,具体包括:当用户805需要断开实时流数据接收时,用户805向路由节点803发送注销兴趣包,路由节点803收到注销兴趣包之后从未决兴趣表PIT中相应内容请求条目来源端口列表中删除注销兴趣包的来源端口。此时路由节点803未决兴趣表PIT中相应条目如下所示:表6:路由节点803的PIT表内容名字来源端口列表转发端口生存时间/video/nba.avi5000此时由于未决兴趣表PIT中的相应条目来源端口列表为空,路由节点803向路由节点802转发注销兴趣包,同时删除该PIT条目。路由节点802收到注销兴趣包后,从未决兴趣表PIT中相应条目来源端口列表中删除注销兴趣包来源端口,此时路由节点802未决兴趣表PIT中相应条目如下所示:表7:路由节点802的PIT表内容名字来源端口列表转发端口生存时间/video/nba.avi235000此后,来自流数据源服务器800的正常数据包在到达路由节点802后,路由节点802将不再向路由节点803转发。因此,用户805也将不再接收产生自流数据源服务器800的正常数据包。实施例三:本发明实施例介绍命名数据网络下实时流数据分发机制中实现用户与流数据源服务器交互机制,用户向流数据源服务器实时发送数据的应用场景示意图。假设流数据源服务器设置10分钟时间能够自由获得来自用户发送的数据包。该机制的应用场景示意图如图9所示,其中虚线为特定数据包转发路径,实线为用户产生的数据包转发路径,具体包括:流数据源服务器900沿实例一构建的流数据分发链路分发特定数据包,中间路由节点901、902、903、904收到特定数据包后分别在未决兴趣表中建立反向PIT条目。此时路由节点901、902、903、904未决兴趣表PIT中相应条目如下所示:表8:路由节点901的PIT表内容名字来源端口列表转发端口生存时间/video/nba.avi215000RPIT/video/nba.avi1空10min表9:路由节点902的PIT表内容名字来源端口列表转发端口生存时间/video/nba.avi1,235000RPIT/video/nba.avi3空10min表10:路由节点903的PIT表内容名字来源端口列表转发端口生存时间/video/nba.avi125000RPIT/video/nba.avi2空10min表11:路由节点904的PIT表内容名字来源端口列表转发端口生存时间/video/nba.avi125000RPIT/video/nba.avi2空10min此后,用户905和用户906需要向流数据源服务器900发送数据时,用户产生正常数据包,正常数据包内容名字采用反向PIT条目的名字RPIT/video/nba.avi,用户可以根据需要填写正常数据包内容,同时用户身份信息可封装在正常数据包内容中。正常数据包会沿反向PIT条目组成的反向PIT链路到达流数据源服务器900。中间节点在收到用户产生的正常数据包后不删除未决兴趣表PIT中相应内容条目,直至该内容条目生存时间到达,即10分钟后。如上所述,本发明所述实时流数据分发方法由实时流数据分发机制和用户与流数据源之间交互机制组成。通过流数据分发机制可以实现高效的流数据分发,在流数据分发机制基础上进行的用户与流数据源之间交互机制,使得用户能够向流数据源服务器实时发送数据,进而实现用户与流数据源之间的交互。以上所描述的具体实施例仅为本发明精神的举例说明,本发明领域的普通技术人员能够显而易见的对具体实施例进行修改、补充或以类似方法替代均应属于本发明的保护范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1