发明内容
有鉴于此,本申请提供一种网络数据的处理方法及装置,以实现当突发性的网络数据阻塞发生时,接收终端能够对被舍弃的数据进行实时统计并反馈给发送终端。
为了实现上述目的,本申请提供的一种网络数据的处理方法如下:
一种网络数据的处理方法,应用于具有发送终端和接收终端的数据传输网络中,包括:
提取所述接收终端舍弃的网络数据中的标识信息;
统计所述舍弃的网络数据的总数量;
将所述标识信息和所述总数量发回给所述发送终端。
优选地,所述提取所述接收终端舍弃的网络数据中的标识信息,具体包括:
判断所述接收终端的第一缓存器是否已存满;
若所述第一缓存器已存满,提取所述第一缓存器中的网络数据的标识信息,将所述标识信息另存入对应的第二缓存器中,并将所述第一缓存器清空。
优选地,所述统计所述舍弃的网络数据的总数量,具体包括:
计算所述第二缓存器中保存的所述标识信息的数量;
判断所述数量是否小于预设的阈值;
若所述数量不小于所述预设的阈值,将所述数量清零,并进位,保存数量进位值;
若所述数量小于所述预设的阈值,判断所述发送终端是否结束发送;
若所述发送终端未结束发送,等待所述发送终端继续发送;
若所述发送终端结束发送,结合所述第二缓存器中保存的所述标识信息的数量和所述数量进位值统计所述舍弃的网络数据的总数量。
优选地,所述将所述标识信息和所述总数量发回给所述发送终端,具体包括:
若所述数量不小于所述预设的阈值,将所述第二缓存器中保存的所述标识信息发回给所述发送终端;
若所述发送终端结束发送,将所述舍弃的网络数据的总数量发回给所述发送终端。
优选地,在提取所述接收终端舍弃的网络数据中的标识信息之前,还包括:
接收来自所述发送终端的网络数据并保存至存储器中;
提取所述存储器中的网络数据的长度信息、路由信息、时间信息、序列标识符和数据信息并另存入对应的第一缓存器中。
优选地,若所述第一缓存器未存满,还包括:
判断所述第一缓存器中的网络数据是否属于控制指令;
若所述第一缓存器中的网络数据属于控制指令,解析所述控制指令并根据解析结果执行所述控制指令要求的动作;
若所述第一缓存器中的网络数据不属于控制指令,将所述第一缓存器中的网络数据另存入发送缓存器中做进一步处理。
优选地,所述标识信息为网络数据中的时间信息和序列标识符。
本申请还提供一种网络数据的处理装置:
一种网络数据的处理装置,应用于具有发送终端和接收终端的数据传输网络中,所述接收终端包括:
用于提取所述接收终端舍弃的网络数据中的标识信息的提取单元;
用于统计所述舍弃的网络数据的总数量的计数单元;
用于将所述标识信息和所述总数量发回给所述发送终端的反馈单元。
优选地,所述接收终端还包括:
与所述提取单元相连接的,用于保存来自所述发送终端的网络数据的存储器;
分别与所述提取单元和所述存储器相连接的,用于保存所述提取单元提取的所述存储器中的网络数据的长度信息、路由信息、时间信息、序列标识符和数据信息的第一缓存器;
分别与所述提取单元和所述第一缓存器相连接的,用于保存所述提取单元提取的所述第一缓存器中的网络数据的标识信息的第二缓存器;
用于判断所述第一缓存器是否已存满、和判断所述第二缓存器中保存的所述标识信息的数量是否小于预设的阈值、和判断所述发送终端是否结束发送、和判断所述第一缓存器中的网络数据是否属于控制指令的判断单元。
优选地,所述接收终端还包括:
与所述第一缓存器相连接的,用于解析所述第一缓存器中的属于控制指令的网络数据并根据解析结果执行所述控制指令要求的动作的解析单元;
与所述第一缓存器相连接的,用于保存所述第一缓存器中不属于控制指令的网络数据并做进一步处理的发送缓存器。
由以上本申请提供的技术方案可见,本申请可实现的有益效果如下:
1、通过应用本申请提供的技术方案,当发送终端出现突发性的网络数据爆发造成网络中的数据传输发生阻塞时,接收终端能够将缓存器中的已接收但未处理的网络数据舍弃,清理出缓存器空间来接收后续的数据,同时能够对被舍弃的数据进行实时统计,将提取的被舍弃的数据的标识信息和计算的被舍弃的数据的总数量反馈给发送终端做进一步处理,避免了维护和研发人员因不知道哪些数据在接收终端被丢弃而出现误操作。
2、本申请提供的技术方案设计了多个缓存器或存储器,能够最大限度的接收来自发送终端的数据和及时转移需舍弃的数据,同时接收终端在向发送终端反馈被舍弃的数据时,可以根据网络能够负载的数据带宽最大值或接收终端的缓存器深度情况预先设定一次反馈所能发送的数据量的最大阈值,这样就能够最大限度的利用网络带宽,避免了资源的浪费。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
实施例一:
图1为本申请实施例提供的一种网络数据的处理方法的流程示意图。
在本申请实施例中,网络数据主要由发送终端向接收终端发送。
参照图1所示,该方法包括以下步骤:
S100:提取接收终端舍弃的网络数据中的标识信息。
在现有技术中,接收终端是随机舍弃网络数据的,并不会对所舍弃的网络数据进行记录。
在本申请实施例中,接收终端可以提取需要舍弃的网络数据中的标识信息,这里的标识信息是可以表征网络数据身份的每条网络数据专有的信息,之所以要提取标识信息而不是保存网络数据本身,是出于节省接收终端缓存器的空间和网络带宽资源考虑,并不是保存网络数据本身就不能达成本申请的目的,所以在忽略接收终端缓存器空间和网络带宽资源影响的条件下,此处的标识信息也可以理解为该标识信息所表征的网络数据本身。
另外,提取标识信息是针对需要舍弃的网络数据的动作,当数据传输网络阻塞时,接收终端需要舍弃一部分网络数据才可以保持网络的传输,而要保证对发送终端的反馈不造成随机丢包甩包,就要提取出需要舍弃的网络数据中的标识信息,相当于记录下舍弃了哪些网络数据。
图2为本申请实施例提供的提取所述接收终端舍弃的网络数据中的标识信息的方法的具体流程示意图。
参照图2所示,这里的舍弃网络数据并提取标识信息的过程可以采用以下方式:
S101:判断接收终端的第一缓存器是否已存满。
在本申请实施例中,接收终端可以设置多个缓存器,同时根据网络带宽和缓存器深度设定当第一缓存器存满时就认为网络中的数据存在阻塞,因为是根据网络带宽和缓存器深度设定的,所以当正常工作时,第一缓存器可以维持进出平衡,但当网络数据阻塞时,接收的数据会很快将第一缓存器填满,此时缓存器可以给出一个满标志位,提示已达到满的状态。
S102:若第一缓存器已存满,提取第一缓存器中的网络数据的标识信息,将标识信息另存入对应的第二缓存器中,并将第一缓存器清空。
需要注意的是,此处的第一缓存器和第二缓存器都可以为缓存器组,每组之中可以设置多个同等地位的缓存器,此处的“第一”和“第二”只是为了便于区分缓存器的各自功能,并不用于对缓存器的数量做任何限定,在实际应用中,这里的所有缓存器都可以选择先入先出队列缓存器FIFO,也可以采用其他类型的存储器。
另外,在这里,标识信息可以为一种,比如网络数据的序列标识符或时间信息,也可以为两种或多种,比如网络数据的序列标识符和时间信息,当标识信息为两种或多种时,可以认为这里的两种或多种为一组,同为一组的标识信息同时表征一条网络数据,而且同为一组的标识信息可以保存在第二缓存器组中的不同缓存器中,一一对应共同视为一条标识信息,也可以以组为单位保存在相同的缓存器中,视为一条标识信息。
当第一缓存器存满时,认为网络中已存在阻塞,此时第一缓存器中已无法再接收来自发送终端后续发送的新的数据,所以需要对第一缓存器进行清空,才能接收后续数据,维持网络畅通,而第一缓存器中被清空的网络数据即被认为是舍弃的网络数据,需要在清空前将它们的标识信息提取出来另存入第二缓存器中进行进一步处理。
S200:统计舍弃的网络数据的总数量。
在本申请实施例中,为了防止在丢包或甩包过程中向发送终端反馈的数据有所遗漏,在提取被舍弃的网络数据的标识信息的同时,可以同时统计被舍弃的网络数据的总数量,比较标识信息的个数和统计所得的总数量,就可以检查出是否丢失了网络数据,能够更加确保反馈的信息的准确性和可靠性。
图3为本申请实施例提供的统计所述舍弃的网络数据的总数量的方法的具体流程示意图。
参照图3所示,在本申请实施例中,统计舍弃的网络数据的总数量的方法可以为:
S201:计算第二缓存器中保存的标识信息的数量。
在这里,第二缓存器所保存的标识信息就是需要舍弃的网络数据中的标识信息,且每条标识信息都唯一对应一条网络数据。
S202:判断标识信息的数量是否小于预设的阈值。
这里的阈值可以根据网络带宽数据负载最大值和缓存器的深度设定。
S203:若标识信息的数量不小于预设的阈值,将该数量清零,并进位,保存数量进位值。
因为阈值是根据网络带宽数据负载最大值和缓存器的深度设定的,所以当标识信息的数量不小于预设的阈值时,表明此时第二缓存器中保存的标识信息的数量已经达到了网络带宽所能负载的数据最大值,此时就需要将所有标识信息发回给发送终端进行反馈了,然而当标识信息发送出去后,为了重新对后续需要接收的新的标识信息计数,此时就应该将原有的计数值清零,为了统计多次发回反馈的标识信息总数量,同时将数值进位并保存进位值,这样就能通过进位值与阈值的乘积以及第二缓存器中的实时标识信息数量统计出多次总共向发送终端发回的所有标识信息的总数量。
S204:若标识信息的数量小于预设的阈值,判断发送终端是否结束发送。
当第二缓存器中的标识信息的数量小于阈值时,尚未达到网络带宽的数据负载最大值,此时为了充分利用网络带宽,节省网络资源,在发送终端继续发送数据时,需要继续接收需舍弃的网络数据的标识值,直到存入的数量达到阈值为止,因此此时不应将标识信息发回给发送终端,而是应该判断发送终端是否已发送结束。
S205:若发送终端未结束发送,等待发送终端继续发送。
当第二缓存器中的标识信息的数量小于阈值时,尚未达到网络带宽的数据负载最大值,此时为了充分利用网络带宽,节省网络资源,在判断出发送终端继续发送数据时,需要继续接收需舍弃的网络数据的标识值,直到存入的数量达到阈值为止。
S206:若发送终端结束发送,结合第二缓存器中保存的标识信息的数量和数量进位值统计舍弃的网络数据的总数量。
当判断出发送终端已经发送结束时,不管第二缓存器中是否已存满,都应将标识信息发回给发送终端进行反馈,并且同时将被舍弃的网络数据的总数量发回给发送终端,这里的网络数据的总数量可以用进位值×阈值+当前第二缓存器中的标识信息数量值的方法得到。
S300:将标识信息和总数量发回给发送终端。
当第二缓存器中的标识信息达到阈值后,接收终端需要将标识信息发回给发送终端,当判断出发送终端已经停止发送数据时,接收终端还需要将统计出的被舍弃的网络数据的总数量发回给发送终端,这些作为将被舍弃的网络数据对发送终端的反馈,然后发送终端可以根据所接收的反馈进行下一步处理,这里的下一步处理可以是将发送终端识别出的被接收终端舍弃的数据在网络通畅时进行重传,或者对被舍弃的网络数据予以显示,使维护和研发人员可以了解都有哪些网络数据在接收终端被舍弃,以便进行后续的维护操作等,但这里的下一步处理并不只限于上面所述的动作。
图4为本申请实施例提供的将所述标识信息和所述总数量发回给所述发送终端的方法的具体流程示意图。
参照图4所示,在本申请实施例中,这里的将所述标识信息和所述总数量发回给所述发送终端的方法可以为:
S301:若标识信息的数量不小于预设的阈值,将第二缓存器中保存的标识信息发回给发送终端。
因为阈值是根据网络带宽数据负载最大值和缓存器的深度设定的,所以当标识信息的数量不小于预设的阈值时,表明此时第二缓存器中保存的标识信息的数量已经达到了网络带宽所能负载的数据最大值,此时不仅需要将第二缓存器中的标识信息的数量清零并进位和保存进位值,还需要将对应的所有标识信息发回给发送终端进行反馈。
S302:若发送终端结束发送,将舍弃的网络数据的总数量发回给发送终端。
当判断出发送终端已经发送结束时,不管第二缓存器中的被舍弃的网络数据的标识信息是否已存满,都应将标识信息发回给发送终端进行反馈,而且在将第二缓存器中的标识信息反馈回发送终端后,因为发送终端已经停止了本次的发送过程,还需要同时将本次被舍弃的网络数据的总数量发回给发送终端,这里的网络数据的总数量可以用“进位值×阈值+当前第二缓存器中的标识信息数量值”的方法得到。
另外,在全部过程完结之后,接收终端还可以重新准备好等待发送终端向接收终端再次发送网络数据。
实施例二:
图5为本申请实施例提供的在提取所述接收终端舍弃的网络数据中的标识信息之前的方法的流程示意图。
参照图5所示,本申请在上述实施例的基础之上,还可以在提取接收终端舍弃的网络数据中的标识信息之前,还可以设置以下步骤:
S001:接收来自发送终端的网络数据并保存至存储器中。
在本申请实施例中,接收终端除第一缓存器和第二缓存器之外,还包括存储器,发送终端发给接收终端的网络数据首先保存在存储器中,此处的存储器可以实现缓冲网络数据传输的功能,对网络数据的传输进行平滑处理,以避免出现过大的抖动,同时可以最大限度的利用网络带宽,避免了数据资源的浪费等现象发生。
S002:提取存储器中的网络数据的长度信息、路由信息、时间信息、序列标识符和数据信息并另存入对应的第一缓存器中。
当接收终端设置有存储器时,第一缓存器可以用来保存从存储器中提取出的接收的网络数据中的长度信息、路由信息、时间信息、序列标识符和数据信息或者其它类型的信息,后续对于网络数据的处理只需要从第一缓存器中提取相应的信息即可,这里的第一缓存器同样可以实现缓冲网络数据传输的功能,对网络数据的传输进行平滑处理,以避免出现过大的抖动,同时可以最大限度的利用网络带宽,避免了数据资源的浪费等现象发生。
需要注意的是,此处的第一缓存器可以为缓存器组,组中可以设置多个同等地位的缓存器,此处的“第一”只是为了便于区分缓存器的各自功能,并不用于对缓存器的数量做任何限定,在实际应用中,这里的缓存器可以选择先入先出队列缓存器FIFO,也可以采用其他类型的存储器。
另外,在这里,网络数据的长度信息、路由信息、时间信息、序列标识符和数据信息,可以认为是同一网络数据的一组信息,同时表征该网络数据,而且同为一组的信息可以以组为单位保存在同一缓存器中,也可以分别一一对应地保存在第一缓存器组的不同缓存器中,在此不再赘述。
实施例三:
图6为本申请实施例提供的若所述第一缓存器未存满的方法的流程示意图。
参照图6所示,在本申请提供的上述实施例的基础上,本申请实施例还提供了若第一缓存器未存满时的方法,步骤如下:
S103:判断第一缓存器中的网络数据是否属于控制指令。
接收终端接收的网络数据可能包括对于接收终端的控制指令和需要由接收终端提供给其他设备的数据,因此,当网络数据缓存入第一缓存器中后,接收终端需要判断是何种数据,以便进行下一步处理。
S104:若第一缓存器中的网络数据属于控制指令,解析控制指令并根据解析结果执行控制指令要求的动作。
若经过判断证实第一缓存器中的某条数据为控制指令,则可以直接提取该数据,对控制指令进行解析,根据控制指令的要求执行控制动作。
S105:若第一缓存器中的网络数据不属于控制指令,将第一缓存器中的网络数据另存入发送缓存器中做进一步处理。
若经过判断证实第一缓存器中的某条数据不是控制指令,则可以认为该网络数据是需要发送至其他端口的,则可以提取第一缓存器中的网络数据的各项信息,按照网络帧的要求重新构包,根据网络数据中的路由信息,将该数据发送至指定的设备端口。
实施例四:
图7为本申请实施例提供的一种网络数据的处理装置的结构示意图。
参照图7所示,本申请还提供一种网络数据的处理装置,该装置设置有发送终端1和接收终端2,发送终端1向接收终端2发送网络数据,接收终端2将舍弃的网络数据向发送终端1反馈,其中,接收终端2包括:
用于提取接收终端舍弃的网络数据中的标识信息的提取单元21。
在本申请实施例中,这里的标识信息为网络数据的时间信息和/或序列标识符,在基于本申请的其它实施例中,标识信息可以为其它类型的可以表征网络数据专一性的信息,同时,这里的提取单元21不仅可以提取网络数据中的标识信息,同样可以提取网络数据中的其它信息比如长度信息、路由信息和数据信息等,提取原理与提取标识信息的原理相同,为现有的成熟技术,此处不再赘述。
用于统计舍弃的网络数据的总数量的计数单元22。
在本申请实施例中,这里的计数单元22不仅可以计算接收终端2的缓存器中当前现有的标识信息的数量,即当前步骤中被舍弃的网络数据的数量,还可以在接收终端2向发送终端1发回标识信息后对本身当前保存的标识信息数量进行清零并进位,且保存进位值,以便于后续统计整个网络数据的传输与发送过程中总共被舍弃的网络数据的总数量,这里的网络数据的总数量可以用“进位值×阈值+当前第二缓存器中的标识信息数量值”的方法得到。
用于将标识信息和总数量发回给发送终端的反馈单元23。
在本申请实施例中,当接收终端2中的标识信息达到阈值后,接收终端2需要将标识信息发回给发送终端,同时计数单元22会将接收终端中的标识信息的数量清零并进位和保存进位值,当判断出发送终端1已经停止发送数据时,接收终端2还需要将计数单元22统计出的被舍弃的网络数据的总数量发回给发送终端1,这些作为将被舍弃的网络数据对发送终端1的反馈。
实施例五:
图8为本申请实施例提供的另一种网络数据的处理装置的结构示意图。
参照图8所示,本申请实施例在实施例四所述的网络数据的处理装置的基础之上,在接收终端2中还设置有:
与提取单元21相连接的,用于保存来自发送终端1的网络数据的存储器25。
在本申请实施例中,接收终端2还包括存储器25,发送终端1发给接收终端2的网络数据首先保存在存储器25中,此处的存储器25可以实现缓冲网络数据传输的功能,对网络数据的传输进行平滑处理,以避免出现过大的抖动,同时可以最大限度的利用网络带宽,避免了数据资源的浪费等现象发生。
分别与提取单元21和存储器25相连接的,用于保存提取单元21提取的存储器25中的网络数据的长度信息、路由信息、时间信息、序列标识符和数据信息的第一缓存器26。
当接收终端2设置有存储器25时,第一缓存器26可以用来保存从存储器25中提取出的接收的网络数据中的长度信息、路由信息、时间信息、序列标识符和数据信息或者其它类型的信息,后续对于网络数据的处理只需要从第一缓存器26中提取相应的信息即可,这里的第一缓存器26同样可以实现缓冲网络数据传输的功能,对网络数据的传输进行平滑处理,以避免出现过大的抖动,同时可以最大限度的利用网络带宽,避免了数据资源的浪费等现象发生。
需要注意的是,此处的第一缓存器26可以为缓存器组,组中可以设置多个同等地位的缓存器,此处的“第一”只是为了便于区分缓存器的各自功能,并不用于对缓存器的数量做任何限定,在实际应用中,这里的缓存器可以选择先入先出队列缓存器FIFO,也可以采用其他类型的存储器。
另外,在这里,网络数据的长度信息、路由信息、时间信息、序列标识符和数据信息,可以认为是同一网络数据的一组信息,同时表征该网络数据,而且同为一组的信息可以以组为单位保存在同一缓存器中,也可以分别一一对应地保存在第一缓存器组的不同缓存器中,在此不再赘述。
分别与提取单元21和第一缓存器26相连接的,用于保存提取单元21提取的第一缓存器26中的网络数据的标识信息的第二缓存器27。
当第一缓存器26存满时,将无法再接收来自发送终端1后续发送的新的数据,所以需要对第一缓存器26进行清空,才能接收后续数据,维持网络畅通,而第一缓存器26中被清空的网络数据即被认为是舍弃的网络数据,需要在清空前将它们的标识信息提取出来另存入第二缓存器27中进行进一步处理。
需要注意的是,此处的第一缓存器26和第二缓存器27都可以为单独的缓存器,也可以为缓存器组,每组之中可以设置多个同等地位的缓存器,此处的“第一”和“第二”只是为了便于区分缓存器的各自功能,并不用于对缓存器的数量做任何限定,在实际应用中,这里的所有缓存器都可以选择先入先出队列缓存器FIFO,也可以采用其他类型的存储器。
另外,在这里,标识信息可以为一种,比如网络数据的序列标识符或时间信息,也可以为两种或多种,比如网络数据的序列标识符和时间信息,当标识信息为两种或多种时,可以认为这里的两种或多种为一组,同为一组的标识信息同时表征一条网络数据,而且同为一组的标识信息可以保存在第二缓存器组中的不同缓存器中,一一对应共同视为一条标识信息,也可以以组为单位保存在相同的缓存器中,视为一条标识信息。
用于判断第一缓存器26是否已存满、和判断第二缓存器27中保存的标识信息的数量是否小于预设的阈值、和判断发送终端1是否结束发送、和判断第一缓存器26中的网络数据是否属于控制指令的判断单元24。
在本申请实施例中,当第一缓存器26存满时,即认为网络中的数据传输存在阻塞,此时需要将需舍弃的网络数据的标识信息提取出来存入第二缓存器27中,因此需要判断单元24对第一缓存器26是否存满进行判断。
在本申请实施例中,当第二缓存器27中保存的标识信息的数量不小于预设的阈值时,需要向发送终端1进行反馈,因此需要判断单元24对第二缓存器27中保存的标识信息的数量是否小于预设的阈值进行判断。
在本申请实施例中,当发送终端1结束发送时,需要将计数单元22统计出的被舍弃的网络数据的总数量和当前第二缓存器27中保存的被舍弃的网络数据的标识信息发回给发送终端1,而发送终端1未停止发送时,需要继续等待接收发送终端1的数据,因此需要判断单元24对发送终端1是否结束发送进行判断。
在本申请实施例中,接收终端2接收的网络数据可能包括对于接收终端2的控制指令和需要由接收终端2提供给其他设备的数据,对于第一缓存器26中不同类型的网络数据需要进行不同的处理,比如,对于控制指令,可以直接提取该数据,对控制指令进行解析,根据控制指令的要求执行控制动作,而对于需要发送至其他设备或端口的网络数据,可以提取第一缓存器26中的网络数据的各项信息,按照网络帧的要求重新构包,根据网络数据中的路由信息,将该数据发送至指定的设备或端口,因此,需要判断单元24对第一缓存器26中的网络数据是否属于控制指令进行判断。
实施例六:
图9为本申请实施例提供的又一种网络数据的处理装置的结构示意图。
参照图9所示,基于实施例四或实施例五,在本申请实施例中,网络数据的处理装置在接收终端中还可以包括:
与第一缓存器26相连接的,用于解析第一缓存器26中的属于控制指令的网络数据并根据解析结果执行控制指令要求的动作的解析单元28。
接收终端2接收的网络数据可能包括对于接收终端2的控制指令和需要由接收终端2提供给其他设备的数据,因此,当网络数据缓存入第一缓存器26中后,接收终端2需要判断是何种数据,以便进行下一步处理。
若经过判断证实第一缓存器26中的某条数据为控制指令,则可以直接提取该数据,对控制指令进行解析,根据控制指令的要求执行控制动作。
与第一缓存器26相连接的,用于保存第一缓存器26中不属于控制指令的网络数据并做进一步处理的发送缓存器29。
若经过判断证实第一缓存器26中的某条数据不是控制指令,则可以认为该网络数据是需要发送至其他设备或端口的,则可以提取第一缓存器26中的网络数据的各项信息,按照网络帧的要求重新构包,根据网络数据中的路由信息,将该数据发送至指定的设备或端口。
以上是本申请的核心思想,下面将结合本申请可以应用的具体实施方式对本申请的思想及方案进行进一步详细、具体的描述与说明。
图10为本申请实施例提供的一种网络数据的处理方法的具体实施方式的流程示意图。
参照图10所示,本发明提供了一种能解决以上问题的网络数据流量控制方法,包括如下步骤:
步骤401,网络数据接收终端接收发送终端的数据报文,并缓存至RAM(存储器)中。具体实现方式如下:
RAM的存储容量、RAM的形式,比如采用双端口RAM等,可以依据硬件资源、***设计的要求设定。数据缓存的方式,比如采用双缓存等,可以依据***数据处理的能力来设定。
步骤402,网络数据接收终端对数据报文进行解包,提取包的长度信息、路由信息、时间信息、序列号、数据信息,分别存至对应的FIFO中。具体实现方法如下:
一个标准的以太网帧结构由引导帧头,帧起始标志,数据和帧结束标志组成,通过对数据报文进行解包,可以提取出数据信息、时间信息、序列号(报文标识符),并统计出数据包的长度信息,同时应从配置表中检索出该报文的路由信息(从来源到流向)。随后,将该数据包的长度信息、路由信息、时间信息、序列号、数据信息存至对应的FIFO中。上述FIFO中存储深度应一致,即若存储长度的FIFO存满,其余的FIFO应也满,即使未满也不可继续存数。
步骤403,网络数据接收终端判断步骤402中所述的FIFO是否已经存满,若存满则进行步骤405,未满则进行步骤404。具体实现方法如下:
若步骤402中所述的FIFO有一个存满,应给出一个满标志位,并启动步骤405;若没有存满,则可继续存数,启动步骤404。
步骤404,网络数据接收终端提取步骤402中所述的FIFO中的数据信息、时间信息、序列号,重新构包,并存储至发送缓存中,做进一步处理。具体实现方法如下:
若接收终端接收的数据报文是需要发送至其他端口的,则可以提取步骤402中所述的FIFO中的数据信息、时间信息、序列号,按照网络帧的要求重新构包,再根据路由信息,发送至指定的设备端口。若接收终端接收的数据报文是控制字,则可以直接提取步骤402中所述的存储数据的FIFO中的信息,对指令字进行解析,根据指令字的要求采取下一步的动作。
步骤405,网络数据接收终端将在步骤402中提取出的报文的数据信息、长度信息、路由信息舍弃,将时间信息、序列号存入两个新的FIFO中。具体实现方法如下:
由于此时接收终端数据处理能力已经饱和,此时应舍弃报文的数据信息、长度信息、路由信息,而只存储标识该报文唯一性的时间信息、序列号,留作给发送终端的反馈信息。
步骤406,网络数据接收终端对需要进行如步骤405所述的做特殊处理的报文,进行计数统计,计数器累加1。
步骤407,设定一个阈值,用于判断步骤405所述的FIFO存储的量是否达到可以打包发送出去的程度。若计数器的值等于阈值,则启动步骤408,否则启动步骤409。具体实现方法如下:
设定的阈值应与网络报文的数据负载最大值、步骤405中所述FIFO的深度有关。若步骤406中所述的计数器累加的值等于阈值,则启动步骤408,否则启动步骤409。
步骤408,网络数据接收终端提取步骤405中所述FIFO中存储的时间信息、序列号,进行打包,并按照网络帧的要求重新构包,将报文返回给发送终端,同时将步骤406中所述的计数器清零,并进位,保存进位值。
步骤409,网络数据接收终端判断发送终端的发送是否结束,若结束则启动步骤410,否则启动步骤411。具体实现方法如下:
发送终端是否已经发送结束,应由发送终端来判断,若发送结束,应发出指令字启动步骤410,否则启动步骤411。
步骤410,网络数据接收终端对步骤406中所述的计数器累积的数值进行统计,并将该数值打包返回给发送终端,并等待发送终端发送数据。具体实现方法如下:
统计步骤408中所述的存储的计数器进位值,再结合步骤406中所述的计数器当前数值,计算出接收终端总共对多少报文进行了如步骤405所述的做特殊处理,即舍弃报文的数据信息、长度信息、路由信息,而只将该报文时间信息、序列号反馈给发送终端。对统计出的总数值按照网络帧的要求重新构包,并返回给发送终端。
步骤411,网络数据接收终端等待发送终端发送数据。
综上所述,由以上本申请提供的技术方案可见,与现有技术相比,本申请实施例提供的技术方案具有以下有益效果:
1、通过应用本申请提供的技术方案,当发送终端出现突发性的网络数据爆发造成网络中的数据传输发生阻塞时,接收终端能够将缓存器中的已接收但未处理的网络数据舍弃,清理出缓存器空间来接收后续的数据,同时能够对被舍弃的数据进行实时统计,将提取的被舍弃的数据的标识信息和计算的被舍弃的数据的总数量反馈给发送终端做进一步处理,避免了维护和研发人员因不知道哪些数据在接收终端被丢弃而出现误操作。
2、本申请提供的技术方案设计了多个缓存器或存储器,能够最大限度的接收来自发送终端的数据和及时转移需舍弃的数据,同时接收终端在向发送终端反馈被舍弃的数据时,可以根据网络能够负载的数据带宽最大值或接收终端的缓存器深度情况预先设定一次反馈所能发送的数据量的最大阈值,这样就能够最大限度的利用网络带宽,避免了资源的浪费。
以上对本申请所提供的一种网络数据的处理方法及装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
需要说明的是,在本文中,诸如“大于”或“超过”或“高于”或“小于”或“低于”等之类的关系描述,均可以理解为“大于且不等于”或“小于且不等于”,也可以理解为“大于等于”或“小于等于”,而不一定要求或者暗示必须为限定的或固有的一种情况。
另外,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。