一种数据处理方法、装置及计算机存储介质与流程

文档序号:17480710发布日期:2019-04-20 06:25阅读:155来源:国知局
一种数据处理方法、装置及计算机存储介质与流程

本发明涉及数据传输领域,尤其涉及一种数据处理方法、装置及计算机存储介质。



背景技术:

在对报文进行传输时,通常网络层对报文数据进行处理后,通过数据链路层及物理层发送至网络系统。在半双工模式下,不同电子设备通过同一介质接收和发送报文;如果处于半双工模式下的两个电子设备同时检测到介质处于空闲状态而发送报文数据,则会由于数据传输冲突而导致数据发送失败。

相关技术中,通过ieee802.3标准协议中的载波侦听多路访问(carriersensemultipleaccess,csma)冲突检测协议,解决数据传输链路的冲突问题,保证报文数据传输的可靠性。具体的,电子设备在发送数据之前,需要监听数据传输信道是否为空闲;在数据传输信道为空闲时,发送数据;并且在发送数据的过程中,实时检测数据传输冲突;检测到存在数据传输冲突时,则停止发送数据。网络层在接收到数据链路层反馈的重传状态信息后,根据重传状态信息重新发送数据。

但是,在特定的应用场景中,会存在重传状态信息异常的情况,进而导致网络层和数据链路层之间基于数据的交互不可控,无法实现数据的重传。



技术实现要素:

有鉴于此,本发明实施例期望提供一种数据处理方法、装置及计算机存储介质,能够提高网络层和数据链路层之间数据传输的可靠性。

为达到上述目的,本发明实施例的技术方案是这样实现的:

本发明实施例提供一种数据处理方法,所述方法包括:

在物理层状态发生变化时,对网络层进行软复位;

检测所述网络层的软复位状态;

根据所述网络层的软复位状态处理数据。

上述方案中,所述对网络层进行软复位,包括:

接收软复位指令;

基于所述软复位指令,对所述网络层进行软复位配置。

上述方案中,所述根据所述网络层的软复位状态处理数据,包括:

在检测所述网络层的软复位状态有效时,清空出口异步先入先出队列(firstinputfirstoutput,fifo)缓存中的数据;

开启数据流通路使能,以使网络层向数据链路层发送新的数据。

上述方案中,所述根据所述网络层的软复位状态处理数据,包括:

在检测所述网络层的软复位状态无效、且接收到数据链路层发送的重传状态信息时,根据所述重传状态信息对数据进行处理。

上述方案中,所述根据所述重传状态信息对数据进行处理,包括:

在检测所述重传状态信息用于指示重传数据、且所述重传状态信息携带的重传使能有效时,退回最后发送的数据对应的入口fifo缓存的地址,以使网络层向数据链路层重新发送所述数据。

上述方案中,所述根据所述重传状态信息对数据进行处理,包括:

在所述重传状态信息用于指示重传数据、且所述重传状态信息携带的重传使能无效时,释放最后发送的数据对应的入口fifo缓存。

上述方案中,所述根据所述重传状态信息对数据进行处理,包括:

在所述重传状态信息用于指示不重传数据、且在预设的时间内未收到数据链路层发送的重传状态信息时,释放最后发送的数据对应的入口fifo缓存。

本发明实施例还提供一种数据处理装置,包括:软复位模块、检测模块和处理模块;其中,

所述软复位模块,用于在物理层状态发生变化时,对网络层进行软复位;

所述检测模块,用于检测所述网络层的软复位状态;

所述处理模块,用于根据所述网络层的软复位状态处理数据。

上述方案中,所述软复位模块,具体用于接收软复位指令;

基于所述软复位指令,对所述网络层进行软复位配置。

上述方案中,所述处理模块,具体用于在所述检测模块检测所述网络层的软复位状态有效时,清空出口异步fifo缓存中的数据;

开启数据流通路使能,以使网络层向数据链路层发送新的数据。

上述方案中,所述处理模块,具体用于在所述检测模块检测所述网络层的软复位状态无效、且接收到数据链路层发送的重传状态信息时,根据所述重传状态信息对数据进行处理。

上述方案中,所述处理模块,具体用于在所述检测模块检测所述重传状态信息用于指示重传数据、且所述重传状态信息携带的重传使能有效时,退回最后发送的数据对应的入口fifo缓存的地址,以使网络层向数据链路层重新发送所述数据。

上述方案中,所述处理模块,具体用于在所述重传状态信息用于指示重传数据、且所述重传状态信息携带的重传使能无效时,释放最后发送的数据对应的入口fifo缓存。

上述方案中,所述处理模块,具体用于在所述重传状态信息用于指示不重传数据、且在预设的时间内未收到数据链路层发送的重传状态信息时,释放最后发送的数据对应的入口fifo缓存。

本发明实施例还提供一种数据处理装置,包括:处理器和用于存储能够在所述处理器上运行的计算机程序的存储器,

其中,所述处理器用于运行所述计算机程序时,执行上述方法的步骤。

本发明实施例还提供一种计算机存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现上述方法的步骤。

本发明实施例提供的数据处理方法、装置及计算机存储介质,在物理层状态发生变化时,对网络层进行软复位;检测所述网络层的软复位状态,根据所述网络层的软复位状态处理数据。如此,通过监测物理层状态变化及网络层的软复位状态,判断网络层是否需要向数据链路层重新发送数据,提高网络层和数据链路层之间数据传输的可靠性。

附图说明

图1为本发明重传状态信息的产生位置示意图;

图2为本发明实施例一数据处理方法的处理流程示意图;

图3为本发明实施例退回入口fifo缓存地址的示意图;

图4为本发明实施例二数据处理方法的处理流程示意图;

图5为本发明实施例数据处理装置的组成结构示意图;

图6为本发明实施例数据处理装置的硬件组成结构示意图。

具体实施方式

为了能够更加详尽地了解本发明实施例的特点与技术内容,下面结合附图对本发明实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本发明。

相关技术中,数据链路层发送给网络层的重传状态信息与数据包一一对应,即一个待传输的数据包对应一个重传状态信息,重传状态信息的产生位置,如图1所示,可以位于相邻的两个报文起始位置间隔内的任意时刻。数据链路层自身的原因可能导致重传状态信息异常(如丢失),数据传输系统中电子设备的双工模式切换也可能导致重传状态信息异常(如丢失),数据链路层单独复位还可能导致重传状态信息异常(如丢失)。而重传状态信息异常导致的网络层和数据链路层之间基于数据的交互不可控主要体现在如下三个方面:

第一,由于网络层会根据重传状态信息释放存储的同步缓存数据,因此重传状态信息异常,将导致网络层存储的同步缓存数据释放异常。

第二,数据链路层单独复位、或数据传输系统的电子设备进行双工模式切换时,异步fifo缓存可能已经缓存了多个数据包,为了能够正确释放相应的同步缓存数据,在异步fifo缓存的数据包需要基于之前的传输模式进行传输;但是,由于数据链路层已经切换了传输模式,导致异步fifo缓存的数据包对应的同步缓存数据无法正确释放。

第三,在半双工模式下,若在发送数据的过程中,数据链路层未将重传状态信息发送至网络层,将会导致网络层因为等待重传状态信息而挂死。

基于相关技术中存在的问题,本发明实施例一提供一种数据处理方法的处理流程,如图2所示,包括以下步骤:

步骤s101,在物理层状态发生变化时,对网络层进行软复位。

在一可选实施例中,物理层状态发生变化是指,网络层和数据链路层的数据传输模式发生变化、或单独复位数据链路层;网络层和数据链路层的数据传输模式发生变化,可以指数据传输模式由单工模式转换为双工模式,或者数据传输模式由双工模式转换为单工模式。物理层状态发生变化,可以是由网络层自身来获取,也可以是由其他电子设备获取后发送至网络层。

基于上述可选实施例,对网络层进行软复位的实现过程可以是,网络层自身获取到物理层状态发生变化后,向网络层内部的软复位模块发送软复位指令,软复位模块基于接收到的软复位指令,对网络层进行软复位配置。对网络层进行软复位的实现过程也可以是,网络层外部的其他电子设备获取到物理层状态发生变化后,向网络层发送软复位指令,网络层设备基于所述软复位指令,对所述网络层进行软复位配置。

步骤s102,检测所述网络层的软复位状态。

在一可选实施方式中,网络层的软复位状态是指网络层的软复位配置是否优先;因此,网络层设备检测网络层的软复位状态,是指网络层设备检测网络层的软复位配置是否有效。

需要说明的是,在执行步骤s102之前,需要配置网络层与数据链路层处于相同的双工模式,如:网络层和数据链路层均为半双工模式,或网络层和数据链路层均为全双工模式。

步骤s103,根据所述网络层的软复位状态处理数据。

在一可选实施例中,网络层向数据链路层发送数据的过程为:检测入口fifo缓存状态和出口异步fifo缓存状态,在入口fifo缓存中存在分片数据,并且出口异步fifo缓存的剩余空间能够用于存储所述分片数据时,开启数据调度,即网络层开始向数据链路层发送数据。具体地,从数据包的起始位置开始读取缓存数据,并将读取的缓存数据发送至出口异步fifo缓存;随着缓存数据的读取,实时判断是否读取到数据包的尾部,在读取到数据包的尾部时,完成了一个完全的数据包调度,即实现了数据由网络层发送至数据链路层。

在一种实施方式中,网络层设备检测到网络层的软复位状态有效时,清空出口异步fifo缓存中的数据。网络层设备确定清空出口异步fifo缓存中的数据时,开启数据流通路使能,或者网络层以外的其他电子设备确定清空出口异步fifo缓存中的数据时,触发网络层开启数据流通路使能,以使网络层向数据链路层发送新的数据。

在另一种实施方式中,网络层设备检测到网络层的软复位状态无效、接收到数据链路层发送的重传状态信息用于指示重传数据、且重传状态信息携带的重传使能有效时,退回最后发送的数据对应的入口fifo缓存地址,以使网络层向数据链路层重新发送所述数据。退回入口fifo缓存地址的示意图,如图3所示,即将数据的读地址由当前的数据结束地址退回至该数据起始地址。

在又一种实施方式中,网络层设备检测到网络层的软复位状态无效、且接收到数据链路层发送的重传状态信息用于指示重传数据、且所述重传状态信息携带的重传使能无效时,表征当前数据已经由网络层成功发送至数据链路层,无需重新发送当前数据,因此释放最后发送的数据对应的入口fifo缓存。

在另一种实施方式中,网络层设备检测到网络层的软复位状态无效、且在所述重传状态信息用于指示不重传数据、在预设的时间内未收到数据链路层发送的重传状态信息时,表征当前数据已经由网络层成功发送至数据链路层,无需重新发送当前数据,因此释放最后发送的数据对应的入口fifo缓存。

这里,为了避免在正常工作状态下,数据链路层不向网络层发送重传状态信息而导致数据发送系统停止工作,可以预设一时间,在并用计数器来监测是否达到预设的时间,在达到预设的时间时,网络层并未接收到重传状态信息,则认为数据链路层不会基于当前发送的数据,向网络层发送重传状态信息;网络层无需向数据链路层重新发送当前数据。如此,能够避免数据链路层向网络层发送的重传状态信息异常的问题,进一步提高网络层和数据链路层之间数据传输的可靠性。

本发明实施例二提供的一种数据处理方法的处理流程,如图4所示,包括以下步骤:

步骤s201,启动数据发送流程。

步骤s202,网络层设备判断数据流通路使能是否开启,在判断结果为是时,执行步骤s203;在判断结果为否,且满足预设条件时,继续执行步骤s202。

这里,满足预设条件至少包括:满足预设的时间周期,或接收判断数据流桐庐使能是否开启的指令。

数据流通路使能的初始值为开启,在配置网络层软复位时,数据流通路使能关闭;在实际应用中,可根据需要配置数据流桐庐使能的开启和关闭。

步骤s203,网络层设备判断入口fifo缓存状态与出口异步fifo缓存状态是否满足数据调度条件,在判断结果为是时,执行步骤s204;在判断结果为否时,执行步骤s202。

在一可选实施方式中,数据调度条件为,入口fifo缓存中存在分片数据,并且出口异步fifo缓存的剩余空间能够用于存储所述分片数据。

步骤s204,开启数据调度。

在一可选实施方式中,开启数据调度的实现过程为:在入口fifo缓存中,从数据的起始位置开始读取数据,并将读取的数据发送至出口异步fifo缓存。

步骤s205,网络层设备判断是否读取到数据的尾部,在判断结果为否时,执行步骤s206。

这里,只有在读取到数据的尾部时,才表示调度完一个完整的数据。

步骤s206,网络层设备判断是否读取到当前分片数据的尾部,判断结果为是时,执行步骤s204,继续调度数据的下一个分片数据,直至读取到数据的尾部。

这里,每个数据划分为多个分片数据,调度数据的过程可以理解为对数据包括的多个分片数据分别进行调度。

步骤s207,在步骤s205中完成一个数据的调度,并且,步骤s315中获取到物理层状态发生变化时,网络层设备判断网络层的软复位状态是否有效;在判断结果为是时,执行步骤s212;在判断结果为否时,执行步骤s208。

需要说明的是,物理层状态发生变化是指,网络层和数据链路层的数据传输模式发生变化、或单独复位数据链路层;网络层和数据链路层的数据传输模式发生变化,可以指数据传输模式由单工模式转换为双工模式,或者数据传输模式由双工模式转换为单工模式。物理层状态发生变化,可以是由网络层自身来获取,也可以是由其他电子设备获取后发送至网络层。

步骤s208,网络层设备判断接收到数据链路层发送的重传状态信息是否有效,在判断结果为是时,执行步骤s211;在判断结果为否时,执行步骤s209。

这里,数据链路层发送的重传状态信息有效,是指重传状态信息携带的参数用于指示重新发送数据。

步骤s209,网络层设备判断重传老化时间是否到来,在判断结果为是时,执行步骤s212,在判断结果为否时,执行步骤s210或步骤s207。

步骤s210,释放入口fifo缓存。

为了避免在正常工作状态下,数据链路层不向网络层发送重传状态信息而导致数据发送系统停止工作,可以预设一时间,几重传老化时间,在并用计数器来监测是否达到预设的时间,在达到预设的时间时,网络层并未接收到重传状态信息,则认为数据链路层不会基于当前发送的数据,向网络层发送重传状态信息;网络层无需向数据链路层重新发送当前数据。

步骤s211,网络层设备判断重传状态信息携带的重传使能是否有效,在判断结果为是时,执行步骤s213,在判断结果为否时,执行步骤s210。

步骤s212,清空出口异步fifo缓存。

网络层设备检测到网络层的软复位状态有效时,清空出口异步fifo缓存中的数据。网络层设备确定清空出口异步fifo缓存中的数据时,开启数据流通路使能,或者网络层以外的其他电子设备确定清空出口异步fifo缓存中的数据时,触发网络层开启数据流通路使能,以使网络层向数据链路层发送新的数据。

步骤s213,网络层设备退回入口fifo缓存地址。

网络层设备检测到网络层的软复位状态无效、接收到数据链路层发送的重传状态信息用于指示重传数据、且重传状态信息携带的重传使能有效时,退回最后发送的数据对应的入口fifo缓存地址,以使网络层向数据链路层重新发送所述数据。退回入口fifo缓存地址的示意图,如图3所示,即将数据的读地址由当前的数据结束地址退回至该数据起始地址。

步骤s214,判断出口异步fifo缓存是否清除完成,在判断结果为是时,执行步骤s202,在判断结果为否时,重复执行步骤s212。

步骤s215,获取物理层状态发生变化。

具体地,物理层状态发生变化,可以是由网络层自身来获取,也可以是由其他电子设备获取后发送至网络层。

这里,物理层状态发生变化是指,网络层和数据链路层的数据传输模式发生变化、或单独复位数据链路层;网络层和数据链路层的数据传输模式发生变化,可以指数据传输模式由单工模式转换为双工模式,或者数据传输模式由双工模式转换为单工模式。

本发明实施例三还提供一种数据处理装置100,所述数据处理装置100的组成结构,如图5所示,包括:软复位模块10、检测模块11和处理模块12;其中,

所述软复位模块10,用于在物理层状态发生变化时,对网络层进行软复位;

所述检测模块11,用于检测所述网络层的软复位状态;

所述处理模块12,用于根据所述网络层的软复位状态处理数据。

上述方案中,所述软复位模块10,具体用于接收软复位指令;基于所述软复位指令,对所述网络层进行软复位配置。

上述方案中,所述处理模块12,具体用于在所述检测模块检测所述网络层的软复位状态有效时,清空出口异步fifo缓存中的数据;开启数据流通路使能,以使网络层向数据链路层发送新的数据。

上述方案中,所述处理模块12,具体用于在所述检测模块检测所述网络层的软复位状态无效、且接收到数据链路层发送的重传状态信息时,根据所述重传状态信息对数据进行处理。

上述方案中,所述处理模块12,具体用于在所述检测模块检测所述重传状态信息用于指示重传数据、且所述重传状态信息携带的重传使能有效时,退回最后发送的数据对应的入口fifo缓存的地址,以使网络层向数据链路层重新发送所述数据。

上述方案中,所述处理模块12,具体用于在所述重传状态信息用于指示重传数据、且所述重传状态信息携带的重传使能无效时,释放最后发送的数据对应的入口fifo缓存。

上述方案中,所述处理模块12,具体用于在所述重传状态信息用于指示不重传数据、且在预设的时间内未收到数据链路层发送的重传状态信息时,释放最后发送的数据对应的入口fifo缓存。

在实际应用中,软复位模块10、检测模块11和处理模块12均可由位于网络侧设备上的中央处理器(cpu,centralprocessingunit)、微处理器(mpu,microprocessorunit)、数字信号处理器(dsp,digitalsignalprocessor)、或现场可编程门阵列(fpga,fieldprogrammablegatearray)等实现。

本发明实施例还提供一种数据处理装置,所述数据处理装置的硬件组成结构,如图6所示,包括:处理器701和用于存储能够在处理器701上运行的计算机程序的存储器702,

其中,所述处理器701用于运行所述计算机程序时,执行:

在物理层状态发生变化时,对网络层进行软复位;

检测所述网络层的软复位状态;

根据所述网络层的软复位状态处理数据。

所述处理器701用于运行所述计算机程序时,还执行:接收软复位指令;

基于所述软复位指令,对所述网络层进行软复位配置。

所述处理器用于运行所述计算机程序时,还执行:在检测所述网络层的软复位状态有效时,清空出口异步fifo缓存中的数据;

开启数据流通路使能,以使网络层向数据链路层发送新的数据。

所述处理器701用于运行所述计算机程序时,还执行:在检测所述网络层的软复位状态无效、且接收到数据链路层发送的重传状态信息时,根据所述重传状态信息对数据进行处理。

所述处理器701用于运行所述计算机程序时,还执行:在检测所述重传状态信息用于指示重传数据、且所述重传状态信息携带的重传使能有效时,退回最后发送的数据对应的入口fifo缓存的地址,以使网络层向数据链路层重新发送所述数据。

所述处理器701用于运行所述计算机程序时,还执行:在所述重传状态信息用于指示重传数据、且所述重传状态信息携带的重传使能无效时,释放最后发送的数据对应的入口fifo缓存。

所述处理器701用于运行所述计算机程序时,还执行:在所述重传状态信息用于指示不重传数据、且在预设的时间内未收到数据链路层发送的重传状态信息时,释放最后发送的数据对应的入口fifo缓存。

可以理解,存储器702可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(rom,readonlymemory)、可编程只读存储器(prom,programmableread-onlymemory)、可擦除可编程只读存储器(eprom,erasableprogrammableread-onlymemory)、电可擦除可编程只读存储器(eeprom,electricallyerasableprogrammableread-onlymemory)、磁性随机存取存储器(fram,ferromagneticrandomaccessmemory)、快闪存储器(flashmemory)、磁表面存储器、光盘、或只读光盘(cd-rom,compactdiscread-onlymemory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(ram,randomaccessmemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(sram,staticrandomaccessmemory)、同步静态随机存取存储器(ssram,synchronousstaticrandomaccessmemory)、动态随机存取存储器(dram,dynamicrandomaccessmemory)、同步动态随机存取存储器(sdram,synchronousdynamicrandomaccessmemory)、双倍数据速率同步动态随机存取存储器(ddrsdram,doubledataratesynchronousdynamicrandomaccessmemory)、增强型同步动态随机存取存储器(esdram,enhancedsynchronousdynamicrandomaccessmemory)、同步连接动态随机存取存储器(sldram,synclinkdynamicrandomaccessmemory)、直接内存总线随机存取存储器(drram,directrambusrandomaccessmemory)。本发明实施例描述的存储器702旨在包括但不限于这些和任意其它适合类型的存储器。

本发明实施例中的存储器702用于存储各种类型的数据以支持数据处理装置700的操作。这些数据的示例包括:用于在数据处理装置700上操作的任何计算机程序,如操作系统7021和应用程序7022。其中,操作系统7021包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序7022可以包含各种应用程序,实现本发明实施例方法的程序也包含在应用程序7022中。

本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器运行时,执行:

在物理层状态发生变化时,对网络层进行软复位;

检测所述网络层的软复位状态;

根据所述网络层的软复位状态处理数据。

该计算机程序被处理器运行时,还执行:接收软复位指令;基于所述软复位指令,对所述网络层进行软复位配置。

该计算机程序被处理器运行时,还执行:在检测所述网络层的软复位状态有效时,清空出口异步fifo缓存中的数据;

开启数据流通路使能,以使网络层向数据链路层发送新的数据。

该计算机程序被处理器运行时,还执行:在检测所述网络层的软复位状态无效、且接收到数据链路层发送的重传状态信息时,根据所述重传状态信息对数据进行处理。

该计算机程序被处理器运行时,还执行:在检测所述重传状态信息用于指示重传数据、且所述重传状态信息携带的重传使能有效时,退回最后发送的数据对应的入口fifo缓存的地址,以使网络层向数据链路层重新发送所述数据。

该计算机程序被处理器运行时,还执行:在所述重传状态信息用于指示重传数据、且所述重传状态信息携带的重传使能无效时,释放最后发送的数据对应的入口fifo缓存。

该计算机程序被处理器运行时,还执行:在所述重传状态信息用于指示不重传数据、且在预设的时间内未收到数据链路层发送的重传状态信息时,释放最后发送的数据对应的入口fifo缓存。

本领域的技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、随机存取存储器(ram,randomaccessmemory)、只读存储器(rom,read_onlymemory)、磁碟或者光盘等各种可以存储程序代码的介质。

或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ram、rom、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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