CN113452680A - 数据包转流数据的方法、系统、设备和存储介质 - Google Patents
数据包转流数据的方法、系统、设备和存储介质 Download PDFInfo
- Publication number
- CN113452680A CN113452680A CN202110637973.6A CN202110637973A CN113452680A CN 113452680 A CN113452680 A CN 113452680A CN 202110637973 A CN202110637973 A CN 202110637973A CN 113452680 A CN113452680 A CN 113452680A
- Authority
- CN
- China
- Prior art keywords
- data
- current position
- state
- packet
- stream data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供数据包转流数据的方法、系统、设备存储介质,用于将数据包转化为流数据,方法包括数据嵌入步骤:判断流数据的当前位置的流控状态是否为可传输数据包的状态;当判定流数据的当前位置的流控状态是可传输数据包的状态时,在流数据的当前位置嵌入一个数据包的全部内容中的至少一部分内容,并将流数据当前位置的下一位置作为流数据的当前位置;当判定流数据的当前位置的流控状态不是可传输数据包的状态时,将流数据当前位置的下一位置作为流数据的当前位置;继续判断流数据的当前位置的流控状态是否为可传输数据包的状态,直至一个数据包的全部内容嵌入流数据为止。该方法适用于各种类型的数据包的转化,过程无需额外的格式添加。
Description
技术领域
本发明涉及数据包转换领域,更具体地,涉及数据包转流数据的方法、系统、设备和存储介质。
背景技术
流数据是一组顺序、大量、快速、连续到达的数据序列,一般情况下,流数据可被视为一个随时间延续而无限增长的动态数据集合,其传输时延固定可控,现实工程应用中有很多将特定数据包转化为特定流数据的应用需求,比如将标准的以太网包转化为标准的视频流播放。
目前的应用需求都是将一种特定格式的数据包转化为特定格式的流数据,但在转化过程中需要添加额外的格式转换开销,且目前还没有一种通用的将数据包传化为流数据的方法和装置,比如将PCIe(Peripheral component interconnect express,又称为PCI-Express总线)包、SRIO(Serial Rapid I/O)包或ETH IP(以太网网络)包转化为通用的流数据(或插入到固定的流数据中)。
数据包如以太网包、SRIO包或PCIe包的传输具有随机和突发特性,长度也灵活多变,怎样以一种通用、高效以及稳定可靠的方式将数据包嵌入到固定传输的流数据中传输,是目前亟待解决的问题。
发明内容
本发明旨在克服上述现有技术的至少一种缺陷,提供数据包转流数据的方法、系统、设备和存储介质,用于解决数据包转化为特定格式的流数据时需要添加额外格式转换开销,以及现今缺少一种通用的包转流数据方法的问题。
本发明采用的技术方案包括:
一种数据包转流数据的方法,用于将数据包转化为流数据,所述方法包括数据嵌入步骤:判断所述流数据的当前位置的流控状态是否为可传输数据包的状态;当判定所述流数据的当前位置的流控状态是可传输数据包的状态时,在所述流数据的当前位置嵌入一个所述数据包的全部内容中的至少一部分内容,并将所述流数据当前位置的下一位置作为所述流数据的当前位置;当判定所述流数据的当前位置的流控状态不是可传输数据包的状态时,将所述流数据当前位置的下一位置作为所述流数据的当前位置;继续判断所述流数据的当前位置的流控状态是否为可传输数据包的状态,直至一个所述数据包的全部内容嵌入所述流数据为止。
当流数据当前位置处于可传输数据包的状态时,则将数据包全部内容中的至少一部分内容嵌入流数据,重复判断下一位置的状态,每当流数据的某一位置处于可传输数据包时,则将数据包的部分内容嵌入流数据,直至将数据包的全部内容嵌入流数据为止。整个数据包转流数据的过程无需额外的格式添加,转换开销小,且转换传输实时性好,能够适用于各种类型的数据包转流数据的过程,属于一种通用的包转流数据的方法。
进一步,所述方法还包括嵌入控制步骤:获取所述数据包的有效载荷长度,将所述数据包的有效载荷长度存储在控制存储器中;判断所述控制存储器是否为非空状态;当判定所述控制存储器是非空状态时,从所述控制存储器读取一个所述数据包的所述有效载荷长度,执行所述数据嵌入步骤;当一个所述数据包的全部内容嵌入所述流数据时,继续判断所述控制存储器是否为非空状态,直至所述控制存储器不是非空状态为止。
在获取到数据包的有效载荷长度后,将其存储在控制存储器中,该有效载荷长度使控制存储器从不是非空状态即空闲状态转变为非空状态,从控制存储器中读取一个有效载荷长度,表示要启动一次数据包转流数据过程,则执行数据嵌入步骤以在流数据中嵌入数据包的内容。当一个数据包的全部内容嵌入流数据后,继续判断控制存储器的状态是否非空状态,由于上一数据包的有效载荷长度已被读取,因此只有在控制存储器中还存储有其他数据包的有效载荷长度时,才会认为控制存储器的状态为非空状态,则需要启动一次数据包转流数据的过程。
进一步,在执行所述数据嵌入步骤之前,所述嵌入控制步骤还包括:获取所述数据包的全部内容,将所述数据包的全部内容依次存储在数据存储器中;在所述流数据的当前位置嵌入一个数据包的全部内容中的至少一部分内容,包括:从所述数据存储器依次读取一个数据包的全部内容中的至少一部分内容,在所述流数据的当前位置依次嵌入所读取的所述内容。
如需要将数据包转化为流数据,则先获取数据包的全部内容,并依次存储在数据存储器中,则数据嵌入步骤中,需要依次从数据存储器中读取数据包的至少一部分内容,并在流数据可传输数据包的当前位置依次嵌入,保证数据包在嵌入过程中的顺序性,以保证嵌入的数据包能够被顺利读取或调用。
进一步,在执行所述数据嵌入步骤之前,所述嵌入控制步骤还包括:当判定所述控制存储器是非空状态时,判断所述流数据的当前位置的流控状态是否为可传输数据包的状态;当判定所述流数据的当前位置的流控状态是可传输数据包的状态时,在所述流数据的当前位置嵌入头部,将所述流数据当前位置的下一位置作为所述流数据的当前位置,执行所述数据嵌入步骤;当判定所述流数据的当前位置的流控状态不是可传输数据包的状态时,将所述流数据当前位置的下一位置作为所述流数据的当前位置,继续判断流数据的当前位置的流控状态是否为可传输数据包的状态,直至所述头部嵌入所述流数据为止。
在嵌入数据包的全部内容之前,首先嵌入数据包的数据包头部。如当前位置不为可传输数据包,则将下一位置作为当前位置重复判断,等待直至有可以嵌入数据包内容的位置再将数据包的头部嵌入,头部用于作为该数据包的标识,便于对该数据包进行读取或调用。
进一步,在执行所述数据嵌入步骤之前,所述嵌入控制步骤还包括:当所述头部嵌入所述流数据后,判断所述流数据的当前位置的流控状态是否为可传输数据包的状态;当判定所述流数据的当前位置的流控状态是可传输数据包的状态时,在所述流数据的当前位置嵌入所述有效载荷长度,将所述流数据当前位置的下一位置作为所述流数据的当前位置,执行所述数据嵌入步骤;当判定所述流数据的当前位置的流控状态不是可传输数据包的状态时,将所述流数据当前位置的下一位置作为所述流数据的当前位置,继续判断流数据的当前位置的流控状态是否为可传输数据包的状态,直至所述有效载荷长度嵌入所述流数据为止。
在嵌入了数据包的数据包头部后,再继续判断流数据的当前位置是否为可传输数据包的状态,如是,则将读取到的数据包的有效载荷长度嵌入流数据的当前位置,即在数据包头部后按照顺序嵌入数据包的有效载荷长度。
进一步,判断所述流数据的当前位置的流控状态是否为可传输数据包的状态,包括:
判断所述流数据的当前位置是否为非控制字位置,当判定所述流数据的当前位置是非控制字位置时,则表示所述流数据的当前位置的流控状态为可传输数据包的状态,当判定所述流数据的当前位置不是非控制字位置时,则表示所述流数据的当前位置的流控状态不是可传输数据包的状态。
如流数据的当前位置为控制字位置,表示流数据的当前位置不能够嵌入其他数据,该位置为流数据用于传输流数据控制载荷的位置,如在该位置嵌入数据包会影响流数据的正常传输,因此只有在流数据的当前位置为非控制字位置时,才表示流数据的当前位置的流控状态为可传输数据包,在该位置嵌入数据包的内容不会影响流数据本身的正常数据传输。
进一步,所述方法还包括:当所述数据嵌入步骤和/或所述嵌入控制步骤发生异常时,重新执行所述嵌入控制步骤。
本方法包括一个异常检测的步骤,该步骤与其他步骤并行进行,只要检测到异常状况,立即报告异常并重新回到嵌入控制步骤,实际上是结束了该数据包的流数据转化的过程,异常情况包括但不仅限于检测到有连续或非法的数据包头部,或流数据的控制字位置嵌入数据包的内容,具体可视实际情况添加更多的异常情况。
一种数据包转流数据的系统,用于将数据包转化为流数据,包括状态控制器和数据嵌入器;所述状态控制器用于判断所述流数据的当前位置的流控状态是否为可传输数据包的状态;还用于在所述数据嵌入器将所述流数据的下一位置作为所述流数据的当前位置时,继续判断所述流数据的当前位置的流控状态是否为可传输数据包的状态,直至所述数据嵌入器将一个所述数据包的全部内容嵌入所述流数据为止;所述数据嵌入器用于执行数据嵌入操作,所述数据嵌入操作为在所述状态控制器判定所述流数据的当前位置的流控状态为可传输数据包的状态时,在所述流数据的当前位置嵌入一个所述数据包的全部内容中的至少一部分内容,将所述流数据的下一位置作为所述流数据的当前位置;在所述状态控制器判定所述流数据的当前位置的流控状态不是可传输数据包的状态时,将所述流数据当前位置的下一位置作为所述流数据的当前位置。
状态控制器主要用于判断是否执行数据包转流数据的过程,数据嵌入器在状态控制器判定流数据当前位置处于可传输数据包的状态时,表示可执行数据包转流数据的过程,则将数据包全部内容中的一部分内容嵌入流数据,仲裁控制器重复判断下一位置的状态,每当流数据的某一位置处于可传输数据包时,数据嵌入器将数据包的部分内容嵌入流数据,直至将数据包的全部内容嵌入流数据为止。整个包转流数据的过程无需额外的格式添加,转换协议开销小,且转换传输实时性好,能够适用于各种类型的数据包转流数据的过程,属于一种通用的包转流数据的方法。
进一步,所述系统还包括:控制存储器,用于获取并存储所述数据包的有效载荷长度;所述状态控制器还用于判断所述控制存储器是否为非空状态;所述数据嵌入器用于执行数据嵌入操作,包括:所述数据嵌入模块用于在所述状态控制器判定所述控制存储器是非空状态时,从所述控制存储器读取一个所述数据包的所述有效载荷长度,执行所述数据嵌入操作。所述状态控制器还用于在所述数据嵌入器将一个所述数据包的全部内容嵌入所述流数据时,继续判断所述控制存储器是否为非空状态,直至所述控制存储器不是非空状态为止。
控制存储器在获取并存储了数据包的有效载荷长度后,该有效载荷长度使控制存储器从不是非空状态即空闲状态转变为非空状态,状态控制器从控制存储器中读取一个有效载荷长度,表示要启动一次数据包转流数据过程,则数据嵌入模块会执行数据嵌入步骤以在流数据中嵌入数据包的内容。当一个数据包的全部内容嵌入流数据后,状态控制器继续判断控制存储器的状态是否非空状态,只要为非空状态,则需要启动一次数据包转流数据的过程。
进一步,所述系统还包括:数据存储器,用于获取并依次存储所述数据包的全部内容;所述数据嵌入操作为在所述状态控制器判定所述流数据的当前位置的流控状态为可传输数据包的状态时,在所述流数据的当前位置嵌入一个所述数据包的全部内容中的至少一部分内容,包括:所述数据嵌入操作为在所述状态控制器判定所述流数据的当前位置的流控状态为可传输数据包时,从所述数据存储器依次读取一个所述数据包的全部内容的至少一部分内容,在所述流数据的当前位置依次嵌入所述所读取的所述内容。
如有需要将数据包转化为流数据,则先由数据存储器获取并依次存储数据包的全部内容,在数据嵌入模块嵌入数据包内容的过程中,数据嵌入器从数据存储器中依次读取数据包的至少一部分内容,以逐一嵌入于流数据中。整个数据包转流数据的过程的判断和嵌入的时延都较小。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述数据包转流数据的方法。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述数据包转流数据的方法。
与现有技术相比,本发明的有益效果为:
本发明提供了一种通用的包转流数据的方法,适用于各种类型的数据包转化为流数据的过程,通过在流数据可传输数据包的位置按顺序依次嵌入数据包的内容,既保证了流数据的正常传输,且能够在流数据中嵌入完整的数据包,使数据包能够在转化为流数据后能够正常传输原有的信息;整个数据包转流数据的过程无需额外的格式添加,转换协议开销小,且转换传输实时性好。
附图说明
图1为本发明实施例的方法步骤S11~S14的流程示意图。
图2为本发明实施例的方法步骤S01~S14的流程示意图。
图3为本发明实施例的方法步骤S021~S14的流程示意图。
图4为本发明实施例的数据包嵌入流数据的过程示意图。
图5为本发明实施例的系统组成示意图。
具体实施方式
本发明附图仅用于示例性说明,不能理解为对本发明的限制。为了更好说明以下实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
如图1所示,本实施例提供一种数据包转流数据的方法,包括数据嵌入步骤S1,步骤S1具体包括:
S11:判断流数据的当前位置的流控状态是否为可传输数据包的状态,当判定流数据的当前位置的流控状态是可传输数据包的状态时,执行步骤S12;当判定流数据的当前位置的流控状态不是可传输数据包的状态时,执行步骤S13;
S12:在流数据的当前位置嵌入一个数据包的全部内容中的至少一部分内容,并将流数据当前位置的下一位置作为流数据的当前位置,执行步骤S14;
S13:将流数据当前位置的下一位置作为流数据的当前位置,继续执行步骤S11;
S14:判断一个数据包的全部内容是否均嵌入流数据,当判定一个数据包的全部内容均嵌入流数据时,结束方法的执行,当判定一个数据包的全部内容未均嵌入流数据时,执行步骤S11;
具体地,在步骤S11中判断流数据的当前位置的流控状态是否为可传输数据包的状态,具体是通过判断流数据的当前位置是否为非控制字位置,当判定流数据的当前位置是非控制字位置时,则判定流数据的当前位置的流控状态为可传输数据包的状态;当判定流数据的当前位置不是非控制字位置时,则判定流数据的当前位置的流控状态不是可传输数据包的状态。
如流数据的当前位置不是非控制字位置也就是控制字位置时,表示流数据的当前位置不能够嵌入其他数据,该位置为流数据用于传输流数据控制载荷的位置,如在该位置嵌入数据包会影响流数据的正常传输,因此只有在流数据的当前位置为非控制字位置时,才表示流数据的当前位置的流控状态为可传输数据包的状态,在该位置嵌入数据包的内容不会影响流数据本身的正常数据传输。
如图2所示,在执行数据嵌入步骤S11~S13前,还需执行嵌入控制步骤S0,嵌入控制步骤S0具体包括步骤S01~S03:
S01:获取数据包的有效载荷长度,将数据包的有效载荷长度存储在控制存储器中;
S02:判断控制存储器是否为非空状态,当判定控制存储器是非空状态时,执行步骤S03;当判定控制存储器不是非空状态时,重复执行本步骤直至控制存储器的状态为非空状态为止;
具体地,如图3所示,步骤S02的具体包括步骤S021~S025:
S021:判断控制存储器是否为非空状态,当判定控制存储器是非空状态时,执行步骤S022;当判定控制存储器不是非空状态时,重复执行本步骤直至控制存储器的状态为非空状态为止;
S022:判断流数据的当前位置的流控状态是否为可传输数据包的状态,当判定流数据的当前位置的流控状态为可传输数据包的状态时,执行步骤S031;当判定流数据的当前位置的流控状态不是可传输数据包的状态时,执行步骤S023;
S023:将流数据当前位置的下一位置作为流数据的当前位置,执行步骤S022;
S024:判断流数据的当前位置的流控状态是否为可传输数据包的状态,当判定流数据的当前位置的流控状态为可传输数据包的状态时,执行步骤S032;当判定流数据的当前位置的流控状态不是可传输数据包的状态时,执行步骤S025;
S025:将流数据当前位置的下一位置作为流数据的当前位置,执行步骤S024;
S03:从控制存储器读取一个数据包的有效载荷长度,执行步骤S11;
具体地,在执行步骤S11前,步骤S03中在执行步骤S11前还包括:获取数据包的全部内容,将数据包的全部内容依次存储在数据存储器中。
如图3所示,基于具体执行的步骤S021~S025,步骤S03具体包括S031~S033:
S031:在流数据的当前位置嵌入头部,执行步骤S024;
S032:从控制存储器读取一个数据包的有效载荷长度,在流数据的当前位置嵌入有效载荷长度,将流数据当前位置的下一位置作为流数据的当前位置,执行步骤S033;
S033:获取数据包的全部内容,将数据包的全部内容依次存储在数据存储器中,执行步骤S11;
在执行数据嵌入步骤S11~S13嵌入数据包的全部内容之前,通过嵌入控制步骤S0中的步骤S01获取数据包的有效载荷长度,将其存储在控制存储器中,该有效载荷长度使控制存储器从不是非空状态即空闲状态转变为非空状态,执行步骤S021判断控制存储器的状态是否为非空状态,如是,通过步骤S022判断当前位置是否为可传输数据包的状态,如不是则执行步骤S023将下一位置作为当前位置重复判断,等待直至有可以嵌入数据包内容的位置,执行步骤S031将数据包的头部嵌入。头部用于作为该数据包的标识,便于对该数据包进行读取或调用。
在嵌入了数据包的头部后,再继续执行步骤S024判断流数据的当前位置是否为可传输数据包的状态,如是,则在步骤S032读取数据包的有效载荷长度,表示要启动一次数据包转流数据过程,并将其嵌入流数据的当前位置,即在数据包头部后按照顺序嵌入数据包的有效载荷长度。
如图3所示,基于具体的步骤S031~S033,步骤S12的具体执行过程是:
S12:从数据存储器依次读取一个数据包的全部内容中的至少一部分内容,在流数据的当前位置依次嵌入所读取的内容,并将流数据当前位置的下一位置作为流数据的当前位置;
如需要执行数据嵌入步骤S1将数据包转化为流数据,则先通过步骤S033获取数据包的全部内容,并依次存储在数据存储器中,则数据嵌入步骤的步骤S12中,需要依次从数据存储器中读取数据包的至少一部分内容,并在流数据可传输数据包的当前位置依次嵌入,保证数据包在嵌入过程中的顺序性,以保证嵌入的数据包能够被顺利读取或调用。
如图3所示,基于嵌入控制步骤S0,步骤S14的具体执行过程为:
S14:判断一个数据包的全部内容是否均嵌入流数据,当判定一个数据包的全部内容均嵌入流数据时,执行步骤S021;当判定一个数据包的全部内容位均嵌入流数据时,执行步骤S11;
当一个数据包的全部内容嵌入流数据后,继续执行步骤S021判断控制存储器的状态是否为非空状态,由于上一数据包的有效载荷长度已被读取,因此只有在执行步骤S01时获取到超过一个数据包的有效载荷长度时,控制存储器中还会存储有其他数据包的有效载荷长度,则步骤S02才会判定控制存储器的状态为非空状态,执行步骤S03从控制存储器读取下一个数据包的有效载荷长度,每次执行步骤S03均表示会对该有效载荷长度对应的一个数据包执行一次数据包转流数据的过程。但如果在步骤S01只获取到了一个数据包的有效载荷长度,则执行了步骤S14后,由于上一数据包的有效载荷长度已被读取,控制存储器中不再存储有任何数据包的有效载荷长度,因此在步骤S14中当判定一个数据包的全部内容均嵌入流数据时,需执行步骤S01重新获取新的数据包的有效载荷长度并存储在控制存储器中,使控制存储器的状态为非空状态。
具体地,整个数据包转流数据的过程如图4所示,在步骤S021~S13为将数据包嵌入流数据的具体过程,在流数据中,填充有黑色的位置为非控制字位置,即表示该位置为可传输数据包的状态,填充有白色的位置为控制字位置,即表示该位置不是可传输数据包的状态。
步骤S022~S025以及步骤S11和S13均用于保证数据包在嵌入时的位置为流数据的非控制字位置,使流数据保持正常传输,而步骤S031~S033以及步骤S12用于保证数据包在嵌入时按照数据包头部、有效载荷长度和数据包的内容的顺序嵌入。如图4所示,由于数据包的内容是根据流数据的每一帧数据的长度进行切割嵌入流数据的每个非控制字位置,因此在步骤S12中每次只嵌入一部分数据包的内容,直至数据包的最后一个数据嵌入完毕,完成整个数据包转化流数据的过程。
本实施例提供了一种通用的数据包转流数据的方法,适用于各种类型的数据包转化为流数据的过程,数据包转流数据的这一过程在嵌入数据包的全部内容的过程中,还为数据包添加了用以标识和表示数据长度的头部和有效载荷长度,使数据包能够正确被读取和调用,且整个过程既不会影响流数据本身的正常数据传输;整个数据包转流数据的过程无需额外的格式添加,过程的判断和嵌入的时延都较小,转换协议开销小,且转换传输实时性好。
优选地,数据包的数据包头部定义为一个32bit的单字或一个64bit的双字,具体定义为0xA5A5A5A5或0xA5A5A5A5_A5A5A5A5,基于这一定义的数据包头部,数据包载荷字段中与此数据包头部重复的概率为1/232或1/264,即有99.999999999%的概率不会重复。
优选地,方法还包括步骤:
T1:当数据嵌入步骤S1和/或嵌入控制步骤S0中发生异常时,重新执行嵌入控制步骤S0。
本实施例提供的方法包括一个异常检测的步骤,该步骤T1与其他步骤并行进行,只要检测到数据嵌入步骤S1和/或嵌入控制步骤S0中有异常状况,立即报告异常并强制结束该轮方法的执行,重新回到嵌入控制步骤S0以重新开始新一轮方法的执行,异常情况包括但不仅限于在嵌入控制步骤S0中检测到有连续或非法的数据包头部,或在数据嵌入步骤S1中检测到流数据的控制字位置嵌入数据包的内容,具体可视实际情况添加更多的异常情况。
基于与上述数据包转流数据的方法相同的构思,如图5所示,本实施例还提供一种数据包转流数据的系统,包括:
状态控制器100,用于判断流数据的当前位置的流控状态是否为可传输数据包的状态;还用于在数据嵌入器将流数据的下一位置作为流数据的当前位置时,继续判断流数据的当前位置的流控状态是否为可传输数据包的状态,直至数据嵌入器将一个数据包的全部内容嵌入流数据为止;
数据嵌入器200,执行数据嵌入操作,数据嵌入操作为在状态控制器100判定流数据的当前位置的流控状态为可传输数据包的状态时,在流数据的当前位置嵌入一个数据包的全部内容中的至少一部分内容,将流数据的下一位置作为流数据的当前位置;还用于在状态控制器100判定流数据的当前位置的流控状态不是可传输数据包的状态时,将流数据当前位置的下一位置作为流数据的当前位置;
如图5所示,系统还包括:
控制存储器300,用于获取并存储数据包的有效载荷长度;具体地,该控制存储器300为先入先出控制存储器。
状态控制器100还用于判断控制存储器300是否为非空状态;还用于在数据嵌入器200将一个数据包的全部内容嵌入流数据时,继续判断控制存储器300是否为非空状态,直至控制存储器300不是非空状态为止
数据嵌入模块200具体用于在状态控制器判定控制存储器是非空状态时,从控制存储器300读取一个数据包的有效载荷长度,执行数据嵌入操作。
具体地,系统还包括:
数据存储器400,用于获取并依次存储数据包的全部内容。
数据嵌入器200所执行的数据嵌入操作具体为:在状态控制器100判定流数据的当前位置的流控状态为可传输数据包时,从数据存储器依次读取一个数据包的全部内容的至少一部分内容,在流数据的当前位置依次嵌入所读取的内容;将流数据的下一位置作为流数据的当前位置;还用于在状态控制器100判定流数据的当前位置的流控状态不是可传输数据包的状态时,将流数据当前位置的下一位置作为流数据的当前位置。
具体地,状态控制器100还用于在判定控制存储器是非空状态时,判断流数据的当前位置的流控状态是否为可传输数据包的状态;还用于判定流数据的当前位置的流控状态不是可传输数据包的状态时,继续判断流数据的当前位置的流控状态是否为可传输数据包的状态,直至数据嵌入模块200将头部嵌入流数据为止。
数据嵌入模块200还用于在状态控制器100判定流数据的当前位置的流控状态是可传输数据包的状态时,在流数据的当前位置嵌入头部,将流数据当前位置的下一位置作为流数据的当前位置,执行数据嵌入操作;当状态控制器100判定流数据的当前位置的流控状态不是可传输数据包的状态时,将流数据当前位置的下一位置作为流数据的当前位置。
具体地,状态控制器100还用于在数据嵌入模块200将头部嵌入流数据后,判断流数据的当前位置的流控状态是否为可传输数据包的状态;还用于判定流数据的当前位置的流控状态不是可传输数据包的状态时,继续判断流数据的当前位置的流控状态是否为可传输数据包的状态,直至数据嵌入模块200将有效载荷长度嵌入流数据为止。
数据嵌入模块200还用于在状态控制器100判定流数据的当前位置的流控状态是可传输数据包的状态时,在头部已嵌入流数据之后,在流数据的当前位置嵌入有效载荷长度,将流数据当前位置的下一位置作为流数据的当前位置,执行数据嵌入操作;还用于在状态控制器100判定流数据的当前位置的流控状态不是可传输数据包的状态时,将流数据当前位置的下一位置作为流数据的当前位置。
具体地,状态控制器100具体通过判断流数据的当前位置是否为非控制字位置以判断流数据的当前位置的流控状态是否为可传输数据包的状态,当判定流数据的当前位置是非控制字位置时,则判定流数据的当前位置的流控状态为可传输数据包的状态,当判定流数据的当前位置不是非控制字位置时,则判定流数据的当前位置的流控状态不是可传输数据包的状态。
优选地,如图5所示,系统还包括:异常检测器500,用于检测状态控制器100和数据嵌入模块200在执行过程中的异常,当检测到异常时,强制结束当前系统的运行过程并使其重新运行。异常情况包括但不仅限于流数据中嵌入有连续或非法的数据包头部,或流数据的控制字位置嵌入了数据包的内容。
上述的数据包转流数据的系统的实施方式中,各功能模块的逻辑划分仅作为举例说明,实际应用中可根据需要,例如出于硬件的配置要求或软件的实现的考虑,将上述功能分配由不同的功能模块完成,即可对数据包转流数据的系统的内部结构划分为与上述内容不同的功能模块,但能够完成以上描述的全部功能。其次,上述示例的数据包转流数据的系统的模块的执行过程等内容,由于与本实施例前述的数据包转流数据的方法基于同一构思,其原理和所带来的技术效果与前述的数据包转流数据的方法相同,具体内容可参见方法实施方式的叙述,此处不再赘述。
本实施例还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述数据包转流数据的方法。
本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述数据包转流数据的方法。
显然,本发明的上述实施例仅仅是为清楚地说明本发明技术方案所作的举例,而并非是对本发明的具体实施方式的限定。凡在本发明权利要求书的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (12)
1.一种数据包转流数据的方法,用于将数据包转化为流数据,其特征在于,所述方法包括数据嵌入步骤:
判断所述流数据的当前位置的流控状态是否为可传输数据包的状态;
当判定所述流数据的当前位置的流控状态是可传输数据包的状态时,在所述流数据的当前位置嵌入一个所述数据包的全部内容中的至少一部分内容,并将所述流数据当前位置的下一位置作为所述流数据的当前位置;
当判定所述流数据的当前位置的流控状态不是可传输数据包的状态时,将所述流数据当前位置的下一位置作为所述流数据的当前位置;
继续判断所述流数据的当前位置的流控状态是否为可传输数据包的状态,直至一个所述数据包的全部内容嵌入所述流数据为止。
2.根据权利要求1所述的数据包转流数据的方法,其特征在于,所述方法还包括嵌入控制步骤:
获取所述数据包的有效载荷长度,将所述数据包的有效载荷长度存储在控制存储器中;
判断所述控制存储器是否为非空状态;
当判定所述控制存储器是非空状态时,从所述控制存储器读取一个所述数据包的所述有效载荷长度,执行所述数据嵌入步骤;
当一个所述数据包的全部内容嵌入所述流数据时,继续判断所述控制存储器是否为非空状态,直至所述控制存储器不是非空状态为止。
3.根据权利要求2所述的数据包转流数据的方法,其特征在于,在执行所述数据嵌入步骤之前,所述嵌入控制步骤还包括:
获取所述数据包的全部内容,将所述数据包的全部内容依次存储在数据存储器中;
在所述流数据的当前位置嵌入一个数据包的全部内容中的至少一部分内容,包括:
从所述数据存储器依次读取一个数据包的全部内容中的至少一部分内容,在所述流数据的当前位置依次嵌入所读取的所述内容。
4.根据权利要求2或3所述的数据包转流数据的方法,其特征在于,在执行所述数据嵌入步骤之前,所述嵌入控制步骤还包括:
当判定所述控制存储器是非空状态时,判断所述流数据的当前位置的流控状态是否为可传输数据包的状态;
当判定所述流数据的当前位置的流控状态是可传输数据包的状态时,在所述流数据的当前位置嵌入头部,将所述流数据当前位置的下一位置作为所述流数据的当前位置,执行所述数据嵌入步骤;
当判定所述流数据的当前位置的流控状态不是可传输数据包的状态时,将所述流数据当前位置的下一位置作为所述流数据的当前位置,继续判断流数据的当前位置的流控状态是否为可传输数据包的状态,直至所述头部嵌入所述流数据为止。
5.根据权利要求4所述的数据包转流数据的方法,其特征在于,在执行所述数据嵌入步骤之前,所述嵌入控制步骤还包括:
当所述头部嵌入所述流数据后,判断所述流数据的当前位置的流控状态是否为可传输数据包的状态;
当判定所述流数据的当前位置的流控状态是可传输数据包的状态时,在所述流数据的当前位置嵌入所述有效载荷长度,将所述流数据当前位置的下一位置作为所述流数据的当前位置,执行所述数据嵌入步骤;
当判定所述流数据的当前位置的流控状态不是可传输数据包的状态时,将所述流数据当前位置的下一位置作为所述流数据的当前位置,继续判断流数据的当前位置的流控状态是否为可传输数据包的状态,直至所述有效载荷长度嵌入所述流数据为止。
6.根据权利要求1-3、5任一项所述的数据包转流数据的方法,其特征在于,判断所述流数据的当前位置的流控状态是否为可传输数据包的状态,包括:
判断所述流数据的当前位置是否为非控制字位置,当判定所述流数据的当前位置是非控制字位置时,则判定所述流数据的当前位置的流控状态为可传输数据包的状态,当判定所述流数据的当前位置不是非控制字位置时,则判定所述流数据的当前位置的流控状态不是可传输数据包的状态。
7.根据权利要求2、3、5任一项所述的数据包转流数据的方法,其特征在于,所述方法还包括:
当所述数据嵌入步骤和/或所述嵌入控制步骤发生异常时,重新执行所述嵌入控制步骤。
8.一种数据包转流数据的系统,用于将数据包转化为流数据,其特征在于,包括状态控制器和数据嵌入器;
所述状态控制器用于判断所述流数据的当前位置的流控状态是否为可传输数据包的状态;还用于在所述数据嵌入器将所述流数据的下一位置作为所述流数据的当前位置时,继续判断所述流数据的当前位置的流控状态是否为可传输数据包的状态,直至所述数据嵌入器将一个所述数据包的全部内容嵌入所述流数据为止;
所述数据嵌入器用于执行数据嵌入操作,所述数据嵌入操作为在所述状态控制器判定所述流数据的当前位置的流控状态为可传输数据包的状态时,在所述流数据的当前位置嵌入一个所述数据包的全部内容中的至少一部分内容,将所述流数据的下一位置作为所述流数据的当前位置;在所述状态控制器判定所述流数据的当前位置的流控状态不是可传输数据包的状态时,将所述流数据当前位置的下一位置作为所述流数据的当前位置。
9.根据权利要求8所述的数据包转流数据的系统,其特征在于,
所述系统还包括:
控制存储器,用于获取并存储所述数据包的有效载荷长度;
所述状态控制器还用于判断所述控制存储器是否为非空状态;
所述数据嵌入器用于执行数据嵌入操作,包括:所述数据嵌入模块用于在所述状态控制器判定所述控制存储器是非空状态时,从所述控制存储器读取一个所述数据包的所述有效载荷长度,执行所述数据嵌入操作。
所述状态控制器还用于在所述数据嵌入器将一个所述数据包的全部内容嵌入所述流数据时,继续判断所述控制存储器是否为非空状态,直至所述控制存储器不是非空状态为止。
10.根据权利要求9所述的数据包转流数据的系统,其特征在于,
所述系统还包括:
数据存储器,用于获取并依次存储所述数据包的全部内容;
所述数据嵌入操作为在所述状态控制器判定所述流数据的当前位置的流控状态为可传输数据包的状态时,在所述流数据的当前位置嵌入一个所述数据包的全部内容中的至少一部分内容,包括:
所述数据嵌入操作为在所述状态控制器判定所述流数据的当前位置的流控状态为可传输数据包时,从所述数据存储器依次读取一个所述数据包的全部内容的至少一部分内容,在所述流数据的当前位置依次嵌入所述所读取的所述内容。
11.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1~7任一项所述数据包转流数据的方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1~7任一项所述数据包转流数据的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110637973.6A CN113452680B (zh) | 2021-06-08 | 2021-06-08 | 数据包转流数据的方法、系统、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110637973.6A CN113452680B (zh) | 2021-06-08 | 2021-06-08 | 数据包转流数据的方法、系统、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113452680A true CN113452680A (zh) | 2021-09-28 |
CN113452680B CN113452680B (zh) | 2022-11-11 |
Family
ID=77810951
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110637973.6A Active CN113452680B (zh) | 2021-06-08 | 2021-06-08 | 数据包转流数据的方法、系统、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113452680B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1309870A (zh) * | 1998-08-27 | 2001-08-22 | 国际商业机器公司 | 在视频数据中嵌入附加信息的系统和方法 |
CN1471313A (zh) * | 2002-07-04 | 2004-01-28 | ���µ�����ҵ��ʽ���� | 广播接收再现系统以及广播接收装置 |
CN101141408A (zh) * | 2007-10-22 | 2008-03-12 | 中兴通讯股份有限公司 | 一种网络多媒体数据包规整化的方法 |
CN101572111A (zh) * | 2008-04-30 | 2009-11-04 | 株式会社东芝 | 视频处理设备和处理视频数据的方法 |
CN103036738A (zh) * | 2012-12-11 | 2013-04-10 | 上海高清数字科技产业有限公司 | 一种验证系统及其验证方法 |
CN111917712A (zh) * | 2020-06-17 | 2020-11-10 | 深圳市金城保密技术有限公司 | 一种针对多协议攻击数据的流量监测方法及监测系统 |
CN112313905A (zh) * | 2018-06-27 | 2021-02-02 | 索尼半导体解决方案公司 | 接收装置及接收方法 |
CN112436919A (zh) * | 2020-10-14 | 2021-03-02 | 深圳思凯微电子有限公司 | 流数据传输方法、装置、设备及计算机可读存储介质 |
-
2021
- 2021-06-08 CN CN202110637973.6A patent/CN113452680B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1309870A (zh) * | 1998-08-27 | 2001-08-22 | 国际商业机器公司 | 在视频数据中嵌入附加信息的系统和方法 |
CN1471313A (zh) * | 2002-07-04 | 2004-01-28 | ���µ�����ҵ��ʽ���� | 广播接收再现系统以及广播接收装置 |
CN101141408A (zh) * | 2007-10-22 | 2008-03-12 | 中兴通讯股份有限公司 | 一种网络多媒体数据包规整化的方法 |
CN101572111A (zh) * | 2008-04-30 | 2009-11-04 | 株式会社东芝 | 视频处理设备和处理视频数据的方法 |
CN103036738A (zh) * | 2012-12-11 | 2013-04-10 | 上海高清数字科技产业有限公司 | 一种验证系统及其验证方法 |
CN112313905A (zh) * | 2018-06-27 | 2021-02-02 | 索尼半导体解决方案公司 | 接收装置及接收方法 |
CN111917712A (zh) * | 2020-06-17 | 2020-11-10 | 深圳市金城保密技术有限公司 | 一种针对多协议攻击数据的流量监测方法及监测系统 |
CN112436919A (zh) * | 2020-10-14 | 2021-03-02 | 深圳思凯微电子有限公司 | 流数据传输方法、装置、设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113452680B (zh) | 2022-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106664290B (zh) | 一种光电混合网络的数据传输方法及装置 | |
US5361372A (en) | Memory management for data transmission networks | |
CN113728596A (zh) | 在网络接口控制器(nic)中促进对幂等操作进行高效管理的系统和方法 | |
US5777987A (en) | Method and apparatus for using multiple FIFOs to improve flow control and routing in a communications receiver | |
EP1474889B1 (en) | Semi-reliable arq method and device thereof | |
CN111147184B (zh) | 支持多业务抢占续传的以太网发送、接收设备及传输装置 | |
CN111682994B (zh) | 基于epa协议的环形或线形网络系统和非实时数据的传输方法 | |
JP3214454B2 (ja) | プログラム内蔵方式パケット処理装置 | |
CN113452591B (zh) | 基于can总线连续数据帧的回路控制方法及装置 | |
CN112332951B (zh) | 一种以太网帧抢占方法、装置、设备及存储介质 | |
CN105610730B (zh) | Cpu与网络设备之间的消息交互方法及系统 | |
CN113079074A (zh) | 一种基于can总线的协议栈通信方法、装置和存储介质 | |
US20020150078A1 (en) | Data transmitter, data receiver, and data transmitting/receiving method | |
CN113572582B (zh) | 数据发送、重传控制方法及系统、存储介质及电子设备 | |
CN101072224A (zh) | 一种基于绑定链路实现数据发送的方法 | |
CN113452680B (zh) | 数据包转流数据的方法、系统、设备和存储介质 | |
CN111865813B (zh) | 一种基于反ecn标记的数据中心网络传输控制方法、系统及可读存储介质 | |
CN112565105A (zh) | 一种降低时间敏感帧转发时延的方法、装置及设备 | |
KR20020087053A (ko) | 수 개의 패킷에 걸쳐 분할된 메시지를 송신하는 방법 | |
CN113973091A (zh) | 一种报文处理方法、网络设备以及相关设备 | |
CN115695576A (zh) | 一种兼容tsn帧抢占协议的数据帧转换方法及装置 | |
US6735649B2 (en) | Multiple buffers for removing unwanted header information from received data packets | |
CN114422624A (zh) | 数据接收方法 | |
CN114337942A (zh) | 一种报文重传方法、装置及电子设备 | |
CN113132069A (zh) | 一种丢包重传的通信机制及基于fpga实现其的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |