一种数据处理的方法及相关设备与流程

文档序号:15394420发布日期:2018-09-08 01:50阅读:178来源:国知局
本发明涉及通信领域,尤其涉及一种数据处理的方法及相关设备。
背景技术
:多框热备指基于高可用系统中的对于同一功能的服务器采用两台服务器进行数据备份,广义上理解,就是对于重要的服务,使用两台服务器,互相备份,存储同一个服务的相关数据,对数据有相应的保护机制,保证数据和业务的高可用性。例如,在远程宽带接入服务器(broadbandremoteaccessserver,缩写:bras)对用户数据管理中,就是通过主备设备保证用户数据的高可用户性。其中,主bras设备负责把用户的认证、授权和计费信息传输给远程用户拨号认证系统(remoteauthenticationdialinuserservice,缩写:radius)服务器。radius服务器负责接收用户的连接请求,完成认证,并把用户所需的配置信息返回给主bras设备。主bras设备完成与radius服务器的认证、授权和计费处理后,会备份用户信息给备bras设备进行同步处理。备bras设备不会与radius服务器进行通信。但是,在某些场景下,也会出现问题,由于主备bras之间的备份机制与主bras设备和radius服务器之间的通信是异步的,会出现主备bras之间的信息不一致,而当在主bras设备故障场景下,需要将原来的备bras设备作为新的主设备来保证用户数据的可用性。而在主、备bras设备倒换后,新的主bras设备(也就是原来的备bras设备)与radius服务器之间的用户信息不一致,影响radius服务器对用户业务的管理。技术实现要素:本发明实施例提供了一种数据处理的方法及相关设备,用于保持发送端设备和接收端设备数据的一致性,且保证数据传输的可靠性。本发明实施例中,发送端设备发起与接收端设备的数据同步,发送端设备遍历本地存储的数据,并将本地存储的数据进行单向批量推送。接收端设备根据接收的发送端设备发送的数据对本地存储的数据进行更新。第一方面,本发明实施例提供了一种数据处理的方法,包括:发送端设备分通过多次向接收端设备发送报文,每次发送的报文的数量不会超过发送端设备和接收端设备协商的该上限值,每个报文均携带序号,每次发送端设备向接收端设备发送一个数据段的报文后,会向接收端设备发送接收状态确认消息,并且该状态确认消息中包含每一段发送的报文的起始序号和结束序号,以询问接收端设备上一次发送的起始序号至结束序号之间的报文(包含起始序号和结束序号的报文)是否全部接收成功,即节省了接收端设备应答报文的网络开销,而且可以保证数据的可靠性。具体的,发送端设备向接收端设备发送第一数量值的报文,第一数量值小于或者等于一次发送报文数量的上限值,然后,发送端设备需要向接收端设备确认该第一次发送的报文接收端设备是否全部接收成功了,发送端设备向接收端设备发送第一状态确认消息,第一状态确认消息用于指示接收端设备反馈第一数量值报文的接收状态,且包含第一数量值的报文对应的第一序号标识,该第一序号标识可以为数据段的起始序号和数据段结束序号,第一序号标识用于接收端设备确认第一数量值的报文是否全部接收成功;若接收端设备确认第一数量值的报文全部接收成功了,则发送端设备会按照报文的序号继续向接收端设备发送第二数量值的报文,第二数量值的报文的起始序号与第一数量值的结束序号为连续的序号,例如第一数量值的报文的结束序号为500,则第二数量值的报文起始序号为501,同样第二数量值小于或者等于上限值;然后,发送端设备向接收端设备发送第二状态确认消息,第二状态确认消息用于指示接收端设备反馈第二数量值报文的接收状态,且包含第二数量值的报文对应的第二序号标识,第二序号标识用于接收端设备确认第二数量值的报文是否全部接收成功;若接收端设备确认第二数量值的报文全部接收成功,直到发送端设备将本地数据遍历完,将本地数据全部发送完,则向接收端设备发送数据完成消息,数据完成消息用于指示接收端设备根据接收到的数据对存储的数据进行更新,以保证发送端设备与接收端设备数据的一致性。在一种可能的实现方式中,发送端设备向接收端设备发送第一数量值的报文之前还包括确认一次发送报文上限值的步骤,具体的,发送端设备向接收端设备发送更新数据请求,并且更新数据请求包含第一目标值,该第一目标值表明发送端设备向接收端设备一次发送的报文的数量值;接收端设备反馈的更新数据响应;根据更新数据响应确定第一目标值为一次发送报文数量的上限值。在一种可能的实现方式中,还包括确认一次发送报文上限值的步骤,具体的,首先,发送端设备向接收端设备发送更新数据请求,更新数据请求包含第一目标值;然后,接收端设备反馈的更新数据响应,更新数据响应包含第二目标值,该第二目标值为接收端设备根据自身的处理能力确定的一次能够接收报文数量的上限值;接收端设备比较第一目标值和第二目标值的大小;当第二目标值小于第一目标值时,接收端设备将第二目标值作为一次发送报文数量的上限值。本实施例中,发送端设备和接收端设备可以根据各自的处理能力协商确定发送端设备一次发送报文的数量的上限值。也就是说一次发送报文的上限值是动态的,可以根据发送端设备和接收端设备的处理能力而动态调整的,而且该上限值可以有发送端设备确定,也可以由接收端设备确定,增加了灵活性,减少了设备的处理的能力的限制导致报文发送失败的概率。在一种可能的实现方式中,若接收端设备确认第一数量值的报文未接收成功,则向接收端设备重新发送第一数量值的报文。可以理解是,每次发送端设备向接收端设备发送一段数据时,都会记录发送的报文的起始序号和结束序号,并且都会向接收端询问上一次发送的报文的接收状态,若接收端设备接收失败,则发送端设备按照报文的序号重新发送,发送数据传输的可靠性。在一种可能的实现方式中,向接收端设备发送第一状态确认消息之后,发送端设备可以根据网络状态调整向接收端设备发送报文的数量值。本实施例中,发送端设备可以根据网络状态和接收端设备的状态,动态调整确认一次发送报文的数量,以规避无效重传带来的网络状态恶化。在一种可能的实现方式中,根据网络状态确定向接收端设备发送报文的数量值的具体方式可以为:记录发送第一状态确认消息的第一时刻,当接收端设备发送的状态确认响应时,记录接收状态确认响应的第二时刻;若第一时刻与第二时刻的差异参数大于阈值,则确定减少下一次发送的报文的数量值,也就是第二数量值小于第一数量值。在一种可能的实现方式中,当发送端设备向接收端设备发送第一状态确认消息之后,启动定时器,若在预置时长内未接收到接收端状态反馈的状态确认响应,则表明网络状态很差,此时,再下一次发送报文时,将发送报文的数量减小,也就是第二数量值小于第一数量值。第二方面,本发明实施例提供了一种发送端设备,具有实现上述方法中实际中发送端设备所执行的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。第三方面,发送端设备的结构中包括存储器,收发器和处理器。其中存储器用于存储计算机可执行程序代码,并与收发器耦合。该程序代码包括指令,当该处理器执行该指令时,该指令使该发送端设备执行上述第一方面方法中所涉及的信息或者指令。第四方面,本发明实施例提供了一种计算机存储介质,用于储存上述发送端设备所用的计算机软件指令,其包含用于执行上述第一方面所设计的程序。第五方面,本发明实施例提供了一种数据处理的方法,以接收端设备侧进行描述,接收发送端设备发送的第一数量值的报文,每个报文携带序号,第一数量值小于或者等于一次发送报文数量的上限值;接收发送端设备发送的第一状态确认消息,第一状态确认消息包含第一数量值的报文对应的第一序号标识;根据第一序号标识和第一数量值的报文携带的序号确认第一数量值的报文是否全部接收成功;若确认第一数量值的报文全部接收成功,则继续接收发送端设备发送的第二数量值的报文,第二数量值小于或者等于上限值;接收端设备发送第二状态确认消息,第二状态确认消息包含第二数量值的报文对应的第二序号标识;根据第二序号标识和第二数量值的报文携带的序号确认第二数量值的报文是否全部接收成功;若确认第二数量值的报文全部接收成功,则接收发送端设备发送的数据完成消息;根据数据完成消息和发送端设备发送的数据对存储的数据进行更新,以保证接收端设备和发送端设备数据的一致性。在一种可能的实现方式中,接收发送端设备发送的第一数量值的报文之前,方法包括:接收发送端设备发送更新数据请求,更新数据请求包含第一目标值;根据更新数据请求向发送端设备反馈的更新数据响应,更新数据响应用于指示发送端设备将第一目标值作为一次发送报文数量的上限值。在一种可能的实现方式中,接收发送端设备发送的第一数量值的报文之前,方法包括:接收发送端设备发送的更新数据请求,更新数据请求包含第一目标值;比较第二目标值与第一目标值的大小,第二目标值为接收端设备一次能够接收报文的上限值;向发送端设备反馈的更新数据响应,更新数据响应包含第二目标值,第二目标值小于第一目标值,以使发送端设备确定第二目标值为一次发送报文数量的上限值。在一种可能的实现方式中,若接收端设备确认第一数量值的报文未接收成功,则向发送端设备反馈状态确认响应,状态确认响应包括第二信息,第二信息用于指示发送端设备重新发送第一数量值的报文。第六方面,本发明实施例提供了一种接收端设备,具有实现第五方面方法中实际中接收端设备所执行的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。第七方面,接收端设备的结构中包括存储器,网络接口和处理器。其中存储器用于存储计算机可执行程序代码,并与收发器耦合。该程序代码包括指令,当该处理器执行该指令时,该指令使该接收端设备执行上述方法中所涉及的信息或者指令。第八方面,本发明实施例提供了一种计算机存储介质,用于储存上述接收端设备所用的计算机软件指令,其包含用于执行上述第五方面方法所设计的程序。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,还可以根据这些附图获得其他的附图。图1为本发明实施例中的多框热备的通信系统的网络架构示意图;图2为本发明实施例中协议报文格式示意图;图3为本发明实施例中提供的一种数据处理的方法的一个实施例的步骤流程图;图4为本发明实施例中发送端设备和接收端设备数据交互的一个实施例的场景示意图;图5为本发明实施例中发送端设备和接收端设备数据交互的另一个实施例的场景示意图;图6为本发明实施例一种发送端设备的一个实施例的结构示意图;图7为本发明实施例一种发送端设备的另一个实施例的结构示意图;图8为本发明实施例一种发送端设备的另一个实施例的结构示意图;图9为本发明实施例一种发送端设备的另一个实施例的结构示意图;图10为本发明实施例一种发送端设备的另一个实施例的结构示意图;图11为本发明实施例一种接收端设备的一个实施例的结构示意图;图12为本发明实施例一种接收端设备的另一个实施例的结构示意图;图13为本发明实施例一种接收端设备的另一个实施例的结构示意图;图14为本发明实施例一种接收端设备的另一个实施例的结构示意图;图15为本发明实施例一种接收端设备的另一个实施例的结构示意图。具体实施方式本发明实施例提供了一种数据处理的方法及相关设备,用于保持发送端设备和接收端设备数据的一致性,且保证数据传输的可靠性。为了使本
技术领域
的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明保护的范围。本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。本发明实施例中提供了一种数据传输的方法,该方法可以应用于一种多框热备的通信系统,请参阅图1所示,图1为多框热备的通信系统的网络架构示意图,该通信系统包括主bras设备110,备rasa设备120和radius服务器130,主bras设备110、备bras设备120之间的备份机制与主bras设备110和radius服务器130之间的通信是异步的,因此在主bras发生故障场景,会出现主、备bras设备之间的信息不一致,从而在主、备bras设备倒换后,新的主bras设备(原来的备bras设备120)与radius服务器130之间的用户信息不一致,影响radius服务器对用户业务的管理。例如,在如下几种场景中,新的主bras设备(原来的备bras设备120)与radius服务器130之间会发生数据不一致的问题。(1)主bras设备与备bras设备之间采用周期性的备份机制,主bras设备还没有将新的用户信息备份到备bras设备,当发生主、备bras设备倒换后,导致radius服务器的用户信息残留,后续该用户再上线会因为radius服务器上该用户已经存在而认证失败。(2)主bras设备中用户信息发生变化,但是主bras设备没有将变化的用户信息备份到备bras设备,当发生主、备bras设备倒换,导致radius服务器的用户信息与新的主bras设备120中的用户信息不一致。(3)主bras设备发给radius服务器的消息丢失,导致radius服务器中用户信息缺失,备bras设备与radius服务器的用户信息不一致。需要说明的是,对于图1中的所示的多框热备的通信系统及上述对应的应用场景只是为了方便说明而举的例子,并不造成对本发明的限定性说明。可以理解理解的是,本发明实施例中提供的一种信息处理的方法,可以用于两个设备中的数据不一致的问题,在本发明实施例中,也就是备bras设备与radius服务器中的数据不一致的问题。本发明实施例中提供的解决备bras设备与radius服务器中的数据不一致的问题的方法为:在备bras设备升为主bras设备后,发起与radius服务器的数据同步,备bras设备遍历本地存储的数据,并将本地存储的数据进行单向批量推送。radius服务器根据接收的bras设备发送的数据对本地存储的数据进行更新。为了方便说明,下述新的主bras设备简称为bras设备。可以理解的是,备bras设备分多次向radius服务器发送报文,每个报文均会携带序号,每次向radius服务器发送携带连续序号的多个报文,例如,新的主bras设备第一次向radius服务器发送序号为1至序号500的500个报文,然后,bras设备询问radius服务器该500个报文是否全部接收到,若radius服务器确定该500个报文已全部接收成功,则bras设备第二次向radius服务器发送序号501至序号1000的500个报文,然后bras设备询问radius服务器序号501至序号1000的500个报文是否已经全部接收成功,若radius服务器确定该500个报文已全部接收成功,bras设备继续向radius服务器发送序号1001至序号1500的报文,当备bras设备将本地的数据全部发送完成后,向radius服务器发送数据完成消息,radius服务器接收备bras设备发送的数据完成消息后,根据接收备bras设备发送的数据对本地存储的数据进行更新。可以理解的是,radius服务器接收到bras设备发送的数据后,将接收到的数据与本地存储的数据进行比对,在数据刷新之前存在但是本次刷新没有遍历到的数据进行老化处理;在bras设备的数据中存在,但是在radius服务器本地并没有存储的数据进行存储,可以理解的是,接收端设备将本地没有的数据进行存储,将本地存储的多余数据进行老化处理,以使得bras设备中的数据与radius服务器中的数据保持一致。在多框间热备场景,实现新的主bras设备与radius设备的数据保持高可用性,避免radius服务器和bras业务受影响。在本发明实施例中,bras设备为单向发送数据的设备,因此,本发明实施例中bras设备为发送端设备,而radius服务器为接收端设备。本发明实施例中所提供的方法并不局限于上述应用场景,本发明实施例中,以备bras设备向radius服务器发送数据为例进行说明。本发明实施例中,在bras设备向radius服务器发送数据的示例中,bras设备和radius服务器之间有多种协议,本发明实施例中可以以radius协议为例进行说明,请结合图2进行理解,图2为radius协议的报文格式示意图。如图2所示,报文格式包括:类型(code):1字节,用于指示radius报文的类型;标识(identifier):1字节,用于匹配请求包和响应包,同一组请求包和响应包的identifier可以相同;长度(length),表明整个radius数据包的长度;鉴别码(authenticator):有16个字节,用于完成安全性检查;属性(attributes):包含了0到数个属性描述,其中,属性包括类型(type),长度(length),和属性值(value)。本发明实施例中,在报文头中的code字段中增加了新值,该新值为:更新数据请求(refresh-request)或更新数据响应(refresh-response)。可以通过在radius报文中增加控制字段,控制字段中每个bit为表明一种控制类型,控制字段包含如下控制类型:新增加更新(refresh)报文的控制属性字段(refresh-control),长度为1字节,每个bit代表一种控制含义,下面对控制字段的含义进行说明,请参阅下表1所示。表1第几个bit位控制字段控制字段的含义1syn更新数据开始2fin更新数据结束3ctr数据段接收状态确认报文4ack数据段状态响应报文需要说明的是,本发明实施例中,控制字段的表示形式(如,syn,fin,ctr和ack)只是示例性说明,并不造成对本发明的限定性说明。本发明实施例中,还新增加了更新(refresh)报文的属性,对于增加报文的属性的示例说明请参阅下表2所示。表2需要说明的是,上述表2中“数据段”是指分次发送数据,一次发送多个报文,每次发送的多个报文成为一个数据段的报文。为了保证单向数据网络传输的可靠性,减少批量数据传输时ack消息过多带来的网络拥塞和报文处理开销,同时适度并发发送数据提高数据传输速率,采用数据段批量传输,并分数据段进行确认的机制。下面对本发明实施例提供的一种数据处理的方法进行详细描述。请结合图3和图4进行理解,图3为本发明实施例提供的一种数据处理的方法的一个实施例的步骤流程图,图4为发送端设备和接收端设备交互的场景示意图。本发明实施例中提供了一种数据处理的方法的一个实施例包括:步骤301、发送端设备向接收端设备发送更新数据请求,该更新数据请求包含第一目标值。。发送端设备向接收端设备发送报文,该报文的code字段表示该报文的类型为:新数据请求(refresh-request)。该更新数据请求包括控制字段syn,设置syn控制字段,并且携带第一目标值,该第一目标值为refresh-max-seqnum属性值。例如,该第第一目标值可以为600,该第一目标值表明发送端设备向接收端设备一次发送的报文的数量为600。步骤302、接收端设备接收到发送端设备发送的更新数据请求,根据该更新数据请求向发送端设备反馈的更新数据响应。该报文的code字段表示该报文的类型为:更新数据响应(refresh-response)。在一种可能的实现方式中,更新数据响应不包含目标值,该更新数据响应用于确认将接收到的第一目标值作为一次发送报文的上限值。在另一种可能的实现方式中,该更新数据响应包括控制字段syn,设置syn控制字段,并且携带第二目标值,该第二目标值为refresh-max-seqnum属性值,该第二目标值为根据自身的处理能力一次能够接收的报文的上限值。例如,该第一目标值可以为500,可以理解的是,该接收端设备根据处理能力一次可以处理的报文数量为500。需要说明的是,步骤301和步骤302为发送端设备和接收端设备协商发送报文数量的上限值的过程,可以理解的是,在步骤301中,发送端设备将一次发送报文的数值发送给接收端设备,接收端设备根据自身的处理能力反馈一个接收报文的数值给发送端设备,以使得发送端设备确定一次发送报文数量的上限值。步骤303、发送端设备接收更新数据响应,确定一次发送报文数量的上限值。在第一种可能实现的方式中,发送端设备接收更新数据响应,该数据更新响应用于指示确定该第一目标值为接收报文数量的上限值。可以理解是,当接收端设备接收到更新数据响应时,该更新数据响应中没有携带用于表示一次接收报文数量的目标值,则发送端设备确定第一目标值为一次发送报文的上限值。在第二种种实现方式中,发送端设备接收更新数据响应携带的第二目标值,该第二目标值是由接收端设备根据接收到的第一目标值和自身的处理能力确定的。例如,接收端设备的处理能力为第二目标值,该第二目标值为每次接收报文的数量为500,接收端设备比较第一目标值和第二目标值的大小,将该第一目标值和第二目标值中较小的值作为一次发送报文数量的上限值。发送端设备接收到更新数据响应携带的第二目标值后,将第二目标值作为一次发送报文的上限值。在第三种实现方式中,发送端设备接收更新数据响应携带的第二目标值,发送端设备比较第一目标值和第二目标值的大小,若第二目标值小于第一目标值,然后确定将第二目标值作为一次发送报文数量的上限值。可以理解的是,本实施例中,发送端设备和接收端设备可以根据各自的处理能力协商确定发送端设备一次发送报文的数量的上限值。例如,发送端设备根据自身的处理能力一次最多可以发送600个报文,而接收端设备根据自己的处理能力一次最多可以接收500个报文,由发送端设备确定500为一次接收报文数量的上限值。在另一个例子中,也可以由接收端设备确定上限值,接收端设备接收到发送端发送的第一目标值为600,根据自身的处理能力,确定一次能够接收报文数量的上限值为500,则向发送端设备反馈更新数据响应包含第二目标值(500),发送端设备接收到更新数据响应后,根据更新数据响应中携带的第二目标值,将该第二目标值作为一次发送报文的上限值。需要说明的是,本发明实施例中以发送端设备发送的更新数据请求中包括的发送报文数量的上限值只是举例说明,并不造成对本发明的限定性说明。本实施例中,发送端设备和接收端设备可以根据各自的数据处理能力协商确定发送端设备一次发送的报文数量的上限值。需要说明的是,步骤301和步骤303为可选步骤,可以不执行,而直接执行步骤304。步骤304、发送端设备向接收端设备发送第一数量值的报文。请结合图4进行理解,发送端设备开始分多次向接收端设备发送报文,第一次向接收端设备发送第一数量值的报文,每个报文均携带序号(refresh-sequence-number属性值)。该第一数量值小于或者等于该上限值,该第一数量值可以以等于该上限值为例进行说明。例如,发送端设备第一次批量的向接收端设备发送序号为1至序号500的报文。可以理解的是,当发送端设备确定了上限值之后,每次向接收端设备发送的报文的数据不超过该上限值。步骤305、发送端设备向接收端设备发送第一状态确认消息。发送端设备发送报文的数量达到该上限值时,发送端设备向接收端设备发送报文,该报文设置了ctr控制字段,该报文为第一状态确认消息,该第一状态确认消息用于指示该接收端设备反馈第一数量值报文的接收状态,该第一状态确认消息包含第一数量值的报文对应的第一序号标识。在第一实现方式中,该第一序号标识可以为已发送的所有报文的序号,例如,发送端设备向接收端设备发送了从序号1至序号500的报文,该第一序号标识可以为序号1至序号500。在另一种实现方式中,该第一序号标识可以为数据段的起始序号(refresh-start-sequence)和数据段结束序号(refresh-end-sequence),例如,该第一序号标识为:序号1和序号500。本发明实施例中第一序号标识可以以起始序号和结束序号为例进行说明。步骤306、接收端设备接收发送端设备发送的该第一状态确认消息,并根据该第一状态确认消息向发送端设备反馈状态确认响应。该状态确认响应指示第一数量值的报文全部接收成功。接收端设备接收到第一状态确认消息,确定该第一状态确认消息为合法报文后,根据第一状态确认消息中包含的第一序号标识确认接收的报文是否全部接收成功。例如,第一状态确认消息中包含的起始序号1和结束序号500,接收端设备遍历接收到报文携带的序号,若序号1至序号500的报文全部接收成功,则接收端设备向发送端设备发送报文,该报文设置ack控制字段,该报文为状态确认响应,且该状态确认响应包括第一信息(如,refresh-result属性值为1),该第一信息用于指示从起始序号1到结束序号500的报文全部接收成功。步骤307、发送端设备继续向接收端设备发送设第二数量值的报文,第二数量值小于或者等于该上限值。发送端设备记录该第一次发送报文的起始序号及结束序号,若第一次发送的第一数量值的报文全部接收成功,则根据序号的连续性向发送端设备发送第二数量值的报文,本实施例中,该第二数量值可以以等于该上限值为例进行说明,例如,发送端设备向接收端设备第一次发送的报文为序号1至序号500的500个报文,若发送端设备接收的状态确认响应指示该500个报文全部接收成功,则发送端设备将序号501至序号1000的500个报文向接收端设备发送。需要说明的是,本发明实施例中的该上限值,第一目标值,第二目标值,第一数量值和第二数量值均是为了方便说明而举的例子,并不造成对本发明的限定性说明。步骤308、发送端设备向接收端设备发送第二状态确认消息,该第二状态信息包含第二数量值的报文对应的第二序号标识。本实施例中,第二数量值与该上限值的数值相同为例进行说明。当发送端设备向接收端设备发送完第二个数据段的报文后,也就是序号501至序号1000的报文,则发送端设备需要询问接收端设备该序号501至序号1000的报文是否全部接收成功。则发送端设备向接收端设备发送第二状态确认消息,该第二状态消息中包括第二序号标识,该第二序号标识为第二段数据对应的起始序号501和结束序号1000。步骤309、接收端设备根据接收到的第二状态确认消息,向发送端设备反馈状态确认响应。接收端设备接收该第二状态确认消息,根据该第二状态确认消息中的第二序号标识和接收到的报文所携带的序号确定第二数量值的报文是否全部接收成功。例如,第二状态确认消息中包含的起始序号501和结束序号1000,接收端设备遍历第二个数据段接收到报文携带的序号,若序号501至序号1000的报文全部接收成功,则接收端设备向发送端设备发送报文,该报文设置ack控制字段,该报文为状态确认响应,且该状态确认响应包括第一信息(如refresh-result属性值为1),该第一信息用于指示从起始序号501到结束序号1000的报文全部接收成功。步骤310、发送端设备接收到接收端发送的状态确认响应,若该状态确认响应指示第二数量值的报文(序号501至序号1000的报文)全部接收成功,则向接收端设备发送数据完成消息。该数据完成消息为包括fin控制字段的报文,该数据完成消息用于通知接收端设备发送报文结束。步骤311、接收端设备接收到数据完成消息,向发送端设备反馈确认应答消息。步骤312、接收端设备根据接收到的报文对本地的数据进行更新。需要说明的是,本发明实施例中以两次发送报文为例进行说明,本实施例中只是为了方便说明而进行的示例性说明,在实际应用中,并不限定发送报文的次数,而是根据实际的报文数据确定发送报文的次数。本实施例中,发送端设备分通过多次向接收端设备发送报文,每次发送的报文的数量不会超过发送端设备和接收端设备协商的该上限值,每个报文均携带序号,每次发送端设备向接收端设备发送一个数据段的报文后,会向接收端设备发送接收状态确认消息,并且该状态确认消息中包含每一段发送的报文的起始序号和结束序号,以询问接收端设备上一次发送的起始序号至结束序号之间的报文(包含起始序号和结束序号的报文)是否全部接收成功,即节省了接收端设备应答报文的网络开销,而且可以保证数据的可靠性。若接收设备将起始序号与结束序号之间的报文全部接收成功,则发送端设备才会根据报文序号的连续性向接收端设备发送下一段的报文,直到发送端设备将本地数据遍历完,将本地数据全部发送完,接收端设备根据接收的数据对自身存储的数据进行更新。以保证发送端设备和接收端设备的数据具有一致性。本实施例中,以接收端设备每次接收的起始序号与结束序号之间的报文全部接收成功为例进行说明的,在上述实施例的基础上,下面对接收端设备接收到的起始序号与结束序号之间的报文接收失败为例进行说明。请结合图5进行理解,图5为本发明实施提供的场景示意图。接收端设备接收发送端设备发送的该第一状态确认消息,并根据该第一状态确认消息向发送端设备反馈状态确认响应。该状态确认响应包括第二信息(如refresh-result属性值为2),该第二信息用于指示第一数量值的报文未全部接收成功。若接收端设备遍历接收到的报文的序号,确定有的报文未接收成功,例如,接收端设备只接收到序号1至序号490的报文,也就是说序号491至序号500的报文接收端设备并没有接收成功。可以理解的是,发送端设备每次发送多个携带序号的报文时,会记录本次发送的报文的起始序号和结束序号,当接收端设备接收的第一数量值的报文并未全部接收成功,则接收端设备向发送端设备反馈的状态确认响应包括第二信息,该第二信息用于指示发送端发送的序号1至序号500的报文并未完全接收成功。本实施例中,发送端设备每次向接收端设备发送多个报文之后,向接收端设备发送状态确认消息,该状态确认消息用于指示接收端设备反馈对于本次数据段的报文是否全部接收成功,若接收端设备未接收成功,则发送端设备重新发送本次数据段的报文,例如,发送端重新发送序号1至序号500的报文,以保证传输数据的可靠性。然后可以继续执行步骤306。可选的,上述以第一数量值、第二数量值与该上限值相同为例进行说明的,也就是说,发送端设备每次向接收端设备发送的报文的数量与接收端设备协商的上限值相同,在实际应用中,发送端设备向接收端设备一次发送的报文的数量可以小于该上限值,可以理解的是,发送端设备可以根据网络状态对发送报文的数量进行调整,例如,当网络状态较差时,自动将向接收端设备发送的报文的数量减小,然后当网络状态良好的情况下,可以将一次向接收端设备发送的报文的数量增大,直到调整到上限值。下面就以一个应用场景为例进行说明。在步骤305之后,也就是在发送端设备向接收端设备发送第一状态确认消息之后,发送端设备记录发送第一状态确认消息的第一时刻,当发送端设备接收端设备发送的状态确认响应时,该状态确认响应携带第二信息,第二信息用于指示第一数量值的报文接收失败,发送端设备记录接收状态确认响应的第二时刻。若第一时刻与第二时刻的差异参数大于阈值,则发送端设备向接收端设备按照报文的序号继续向接收端设备发送第二数量值的报文,第二数量值小于第一数量值。本实施例中的差异参数可以以差值为例进行说明,当然该差异参数可以有很多种形式的变形,例如该差异参数还可以为差异与一个系数的乘积等等,在实际应用中对于该差异参数并不限定,本实施例中该差异参数以差值为例进行说明。在一个示例性场景中,发送端设备向接收端设备发送第一状态确认消息时,记录发送第一状态确认消息的时刻为(2017年2月20日10点10分10秒),然后发送端设备接收到该接收端设备反馈的状态确认响应时,记录接收到该状态确认响应的第二时刻,该第二时刻为(2017年2月20日10点10分12秒),阈值为1秒,第一时刻与第二时刻的差值大于阈值,该阈值可以根据网络延时的经验值进行预先设置,本实施例中,该阈值只是为了方便说明进行的举例说明,并不造成对本发明的限定性说明。第一时刻与第二时刻的差值大于阈值,表明当前网络状况较差,接收端设备确定当前的网络状况较差,则当下一次向接收端设备发送报文时,则会减小报文的发送数量。在另一种实现方式中,当发送端设备向接收端设备发送第一状态确认消息之后,启动定时器,若在预置时长内未接收到接收端状态反馈的状态确认响应,则表明网络状态很差,此时,再下一次发送报文时,将发送报文的数量减小,也就是第二数量值小于第一数量值。例如,发送端设备第一次向接收端设备发送的报文数量为第一数量值(500),当发送端设备确定当前的网络状况不好时,发送端设备第二次向接收端设备发送序号1至序号400的报文,然后接收端设备向发送端设备发送状态确认消息,该状态确认消息携带报文的起始序号1和结束序号400,若接收端设备接收失败,则发送端设备将继续减少发送报文的数量,重新发送序号1至序号300的报文,最终可能将一次发送报文的数量降低到一次发送一个报文,然后等待接收端设备反馈状态确认响应,且该状态确认响应指示起始序号1至结束序号300的全部接收成功,之后,再逐渐提高报文发送数量,最大恢复到发送端设备和接收端设备协商的该上限值。可选的,在另一个应用场景中,发送端设备可以记录重传报文的次数,若该次数大于第二阈值,则也可以判定当前网络状况较差,从而减少一次发送报文的数量。例如,发送端设备第一次向接收端设备发送第一数量值的报文,该第一数量值与该上限值相等,例如,该第一数量值为500。发送端设备向接收端设备发送状态确认消息,该状态确认消息携带第一次发送报文的起始序号1和结束序号500;发送端设备接收该接收端设备反馈的状态确认响应,该状态确认响应指示起始序号1至结束序号500的报文接收失败;发送端设备重新发送序号1至序号500的报文,然后,发送端设备接收到的状态确认响应还是指示序号1至序号500的报文接收失败,如果发送端设备重传的次数超过2次,则发送端设备减少发送报文的数量,也就是说,发送端设备重传序号1至序号500的报文达到3次后,在下一次向接收端设备发送报文时,发送的报文数量小于500,例如发送序号1至序号400的报文。若接收端设备接收失败,则发送端设备将继续减少发送报文的数量,重新发送序号1至序号300的报文,最终可能将一次发送报文的数量,然后等待接收端设备反馈状态确认响应,且该状态确认响应指示起始序号1至结束序号300的全部接收成功,之后,再逐渐提高报文发送数量,最大恢复到协商的上限值(refresh-max-seqnum的属性值)。在一种可能的实现方式中,每次发送报文的数量值可以由发送端设备确定。在另一种可能的实现方式中,发送端发送报文的数量值也可以由接收端设备确定,在这种方式中,接收端设备向发送端设备反馈的状态确认响应携带第一能够接收报文的数量值,然后发送端设备根据接收到的状态确认响应中的数量值来确定一次发送报文的数量值。本实施例中,如果数据发送端设备发送状态确认消息后,等待接收端设备发送的状态确认响应超过,或者发送端设备重传次数大于阈值或者数据接收端应答失败时,数据发送端可以在上限值(refresh-max-seqnum)的基础上,减小一次发送报文的数量,从而减小重传带来的网络损耗。网络传输数据时,基于分次(可以理解为一段数据、一段数据)的可靠性确认机制,并且可以通过网络状态和接收端设备的状态,动态调整确认一次发送报文的数量,规避无效重传带来的网络状态恶化。需要说明的是,本发明实施例只是示例性说明,本发明实施例中提供的方法还适用于其他类型业务网关与各种服务器之间的数据同步处理,用来解决数据不一致导致的业务功能问题,扩展对应的数据传输协议。例如,本发明实施例中提供的方法还适用于软件定义网络(softwaredefinednetwork,缩写:sdn)控制器在多框热备场景下的新主设备与多个备设备之间的数据同步处理,也可以适用于新主控制器与转发器之间的数据同步处理,扩展对应的数据传输协议。本发明实施例中的radius协议扩展可以改进成公共的传输层协议,例如,radius、openflow、文件传输协议(filetransferprotocol,缩写ftp)等业务数据可以承载在本发明的公共传输协议之上,在传输协议报文头中使用data-type字段代表不同协议的数据内容。上面对一种数据处理的方法进行了描述,下面对该方法应用的发送端设备进行描述,该发送端设备可以为在多框设备系统中发送数据的设备,例如,该发送端设备可以为网关、bras设备等,请参阅图6所示,本发明实施例提供了一种发送端设备600的一个实施例包括:第一发送模块601,用于向接收端设备发送第一数量值的报文,每个报文携带序号,第一数量值小于或者等于一次发送报文数量的上限值;第二发送模块602,用于向接收端设备发送第一状态确认消息,第一状态确认消息用于指示接收端设备反馈第一数量值报文的接收状态,且包含第一数量值的报文对应的第一序号标识,第一序号标识用于接收端设备确认第一数量值的报文是否全部接收成功;第一发送模块601,还用于当接收端设备确认第一数量值的报文全部接收成功时,按照报文的序号继续向接收端设备发送第二数量值的报文,第二数量值小于或者等于上限值;第二发送模块602,还用于向接收端设备发送第二状态确认消息,第二状态确认消息用于指示接收端设备反馈第二数量值报文的接收状态,且包含第二数量值的报文对应的第二序号标识,第二序号标识用于接收端设备确认第二数量值的报文是否全部接收成功;第三发送模块603,用于当接收端设备确认第二数量值的报文全部接收成功时,向接收端设备发送数据完成消息,数据完成消息用于指示接收端设备根据接收到的数据对存储的数据进行更新。在图6对应的实施例的基础上,请参阅图7所示,本发明实施例还提供了一种发送端设备700的另一个实施例包括:还包括第四发送模块604、第一接收模块605和第一确定模块606;第四发送模块604,用于向接收端设备发送更新数据请求,更新数据请求包含第一目标值;第一接收模块605,用于接收端设备反馈的更新数据响应;第一确定模块606,用于根据更新数据响应确定第一接收模块605接收的第一目标值作为一次发送报文数量的上限值。在图6对应的实施例的基础上,请参阅图8所示,本发明实施例还提供了一种发送端设备800的另一个实施例包括:还包括第四发送模块604、第一接收模块605、比较模块608和第一确定模块606;第四发送模块603,用于向接收端设备发送更新数据请求,更新数据请求包含第一目标值;第一接收模块605,用于接收端设备反馈的更新数据响应,更新数据响应包含第二目标值,第二目标值用于指示接收端设备一次能够接收报文数量的上限值;比较模块608,用于比较第一目标值和第一接收模块605接收的第二目标值的大小;第一确定模块606,用于当比较模块确定第二目标值小于第一目标值时,将第二目标值作为一次发送报文数量的上限值。可选的,第一发送模块601,还用于当接收端设备确认第一数量值的报文未接收成功时,向接收端设备重新发送第一数量值的报文。在图6对应的实施例的基础上,请参阅图9所示,本发明实施例还提供了一种发送端设备900的另一个实施例包括:还包括第二确定模块607;第二确定模块607,用于根据网络状态确定第二数量值,第二数量值为在发送完第一数量值的报文后,按照报文的序号下一次第一发送模块601发送的报文的数量。可选的,第二确定模块607具体用于:记录发送第一状态确认消息的第一时刻;接收端设备发送的状态确认响应,状态确认响应携带第一信息,第一信息用于指示第一数量值的报文全部接收成功;记录状态确认响应的第二时刻;用于当第一时刻与第二时刻的差异参数大于阈值时,则确定第二数量值小于第一数量值。进一步的,图6至图9中的发送端设备是以功能模块的形式来呈现。这里的“模块”可以指特定应用集成电路(application-specificintegratedcircuit,asic),电路,执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。在一个简单的实施例中,图6至图9中的发送端设备可以采用图10所示的形式。各模块可以通过图10的处理器1001、收发器1002和存储器1003来实现。存储器1003,可用于存储软件程序以及模块,处理器1001通过运行存储在存储器1003的软件程序以及模块,从而执行发送端设备的各种功能应用以及数据处理。存储器1003可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、存储器1003可以包括高速随机存取存储器,还可以包括非易失性存储器。收发器1002,用于接收和发送报文;处理器1001,与存储器和收发器耦合;其中程序代码包括指令,当处理器执行指令时,指令使发送端设备执行图3、图4、图5对应的实施例中的该发送端设备所执行的方法。发明实施例还提供了一种计算机存储介质,用于储存为上述图10所示的发送端设备所用的计算机软件指令,其包含用于执行上述方法实施例所设计的程序。本发明实施例还提供了上述方法所应用的接收端设备,请参阅图11所示,本发明实施例提供的一种接收端设备的一个实施例包括:第一接收模块1101,用于接收发送端设备发送的第一数量值的报文,每个报文携带序号,第一数量值小于或者等于一次发送报文数量的上限值;第二接收模块1102,用于接收发送端设备发送的第一状态确认消息,第一状态确认消息包含第一数量值的报文对应的第一序号标识;确定模块1103,用于根据第二接收模块1102接收的第一序号标识和第一接收模块1101接收的第一数量值的报文携带的序号确定第一数量值的报文是否全部接收成功;第一接收模块1101,用于当确认第一数量值的报文全部接收成功时,继续接收发送端设备发送的第二数量值的报文,第二数量值小于或者等于上限值;第二接收模块1102,用于接收端设备发送第二状态确认消息,第二状态确认消息包含第二数量值的报文对应的第二序号标识;确定模块1103,还用于根据第二接收模块1102接收的第二序号标识和第一接收模块1101接收的第二数量值的报文携带的序号确认第二数量值的报文是否全部接收成功;第三接收模块1104,用于当确认第二数量值的报文全部接收成功时,接收发送端设备发送的数据完成消息;数据更新模块1109,用于根据第三接收模块1104接收的数据完成消息和第一接收模块1101接收的发送端设备发送的数据对存储的数据进行更新。在图11对应的实施例的基础上,请参阅图12所示,本发明实施例还提供了一种发送端设备1200的另一个实施例包括:还包括第四接收模块1105和第一发送模块1106;第四接收模块1105,用于接收发送端设备发送更新数据请求,更新数据请求包含第一目标值;第一发送模块1106,用于根据更新数据请求向发送端设备反馈的更新数据响应,更新数据响应用于指示发送端设备将第一目标值作为一次发送报文数量的上限值。在图11对应的实施例的基础上,请参阅图13所示,本发明实施例还提供了一种发送端设备1300的另一个实施例包括:还包括第四接收模块1105、第一发送模块1106、比较模块1107和第一发送模块1106;第四接收模块1105,用于接收发送端设备发送的更新数据请求,更新数据请求包含第一目标值;比较模块1107,用于比较第四接收模块1105接收的第一目标值与第二目标值的大小,第二目标值为接收端设备一次能够接收报文的上限值;第一发送模块1106,用于向发送端设备反馈的更新数据响应,更新数据响应包含第二目标值,第二目标值小于第一目标值,以使发送端设备确定第二目标值为一次发送报文数量的上限值。在图11对应的实施例的基础上,请参阅图14所示,本发明实施例还提供了一种发送端设备1400的另一个实施例包括:还包括第二发送模块1108;第二发送模块1108,还用于当确定模块1103第一数量值的报文未接收成功时,向发送端设备反馈状态确认响应,状态确认响应包括第二信息,第二信息用于指示发送端设备重新发送第一数量值的报文。进一步的,图11至图14中的接收端设备是以功能模块的形式来呈现。这里的“模块”可以指特定应用集成电路(application-specificintegratedcircuit,asic),电路,执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。在一个简单的实施例中,图11至图14的接收端设备可以采用图15所示的形式。图15是本发明实施例提供的一种服务器结构示意图,该服务器1500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器1522和存储器1532,一个或一个以上存储应用程序1542或数据1544的存储介质1530(例如一个或一个以上海量存储设备)。其中,存储器1532和存储介质1530可以是短暂存储或持久存储。存储在存储介质1530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1522可以设置为与存储介质1530通信,在服务器1500上执行存储介质1530中的一系列指令操作。服务器1500还可以包括一个或一个以上电源1526,一个或一个以上有线或无线网络接口1550,一个或一个以上输入输出接口1558,和/或,一个或一个以上操作系统1541,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。上述实施例中由服务器所执行的步骤可以基于该图15所示的服务器结构。上述处理器用于使接收端设备执行图3,图4和图5对应的实施例中接收端设备所执行的方法。本发明实施例还提供了一种计算机存储介质,用于储存为上述图15所示的接收端设备所用的计算机软件指令,其包含用于执行上述方法实施例所设计的程序。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1