一种数据传输方法和相关设备技术

技术编号:36102226 阅读:17 留言:0更新日期:2022-12-28 14:01
本申请实施例公开了一种数据传输方法和相关设备,用于保证传输数据的完整性。本申请实施例方法包括:获取来自目标进程的第一数据,将第一数据保存至目标存储位置;将位置标识传递至第一进程,位置标识用于指示目标存储位置,以便第一进程从目标存储位置获取第一数据;基于第一进程完成对第一数据的处理,释放目标存储位置的存储空间。目标存储位置的存储空间。目标存储位置的存储空间。

【技术实现步骤摘要】
一种数据传输方法和相关设备


[0001]本申请实施例涉及数据传输领域,尤其涉及一种数据传输方法和相关设备。

技术介绍

[0002]在通信的传输层,进程需要通过协议栈来接收数据。具体的,协议栈将数据所在的存储位置的位置标识传递给进程,进程根据该位置标识所指示的位置,将数据拷贝出来处理。
[0003]从协议栈接收数据到进程处理数据的过程中,若进程退出,则会导致进程拷贝出来的数据丢失,进程恢复正常后,无法找回已拷贝出的数据,造成进程缺失对应的数据,影响上层应用的正常运行。上层应用缺失数据,将会出现卡顿、花屏等现象,影响用户体验。

技术实现思路

[0004]本申请实施例公开了一种数据传输方法和相关设备,用于保证传输数据的完整性。
[0005]本申请实施例第一方面提供了一种数据处理方法,该方法应用于第一网络设备。在该方法中,第一网络设备获取来自目标进程的第一数据,并将第一数据保存至目标存储位置,第一网络设备将位置标识传递至第一进程。其中,该位置标识用于指示目标存储位置,以便第一进程从目标存储位置获取第一数据。第一网络设备在所述第一进程完成对第一数据的处理后释放目标存储位置的存储空间。
[0006]在本申请实施例中,通过位置标识向第一进程指示第一数据存储在目标存储位置,只有第一进程完成了对第一数据的处理,才将目标存储位置的存储空间释放。因此,未完成对第一数据的处理之前,存储在目标存储位置上的第一数据是稳定存在的,并不会被修改或删除。与处理第一数据相关的进程,例如用于处理第一数据的第一进程,或者用于传输第一数据存储位置的协议栈,在第一数据未处理完之前退出,可能会影响对第一数据的处理。在这种情况下,可以从目标存储位置上重新获取第一数据,第一数据不会丢失,保证了数据的完整性和一致性。
[0007]在本申请实施例中,目标进程为服务端进程,即数据发送端的进程。
[0008]在一种可选的实施方式中,目标进程可以向第一进程传输第一数据,第一进程可以是,从第一数据传输至第一网络设备到第一数据被处理完毕,都没有退出过的进程。
[0009]在本申请实施例中,若目标进程要向第一进程传输第一数据,则在第一数据未被处理完毕之前,不释放目标存储位置的存储空间。也就是说,在第一数据未被处理完毕之前,使得目标存储位置上的第一数据可以一直稳定存在,只有第一进程完成了对第一数据的处理,确定第一数据不再被需要了,才释放目标存储位置。
[0010]在一种可选的实施方式中,目标进程可以向第二进程传输第一数据,第一进程还可以是第二进程退出后启动的,用于完成第二进程的任务的进程,具体的,在将位置标识传递至第一进程之前,第一网络设备还可以基于第二进程的退出,启动第一进程。可选的,第
一进程可以是对第二进程进行重启或者升级得到的。
[0011]在本申请实施例中,第一进程可以是第二进程退出后启动的,与第二进程具有相同或相似的功能,并且用于完成第二进程的任务的进程。第二进程退出前,就处于正在或将要处理第一数据的状态,因此第一进程需要完成对第一数据的处理。确保第一进程完成了对第一数据的处理,才释放目标存储位置的存储空间,在进程退出的情况下,也能保证第一数据不丢失,从而在进程退出的情况下保证了数据的完整性与一致性。
[0012]在一种可选的实施方式中,除了保证数据的完整性与一致性,还可以在进程或协议栈退出的情况下,保持进程与协议栈之间的连接。具体的,在协议栈或进程退出的情况下,第一网络设备可以将协议栈与进程之间的连接信息保存起来。等到协议栈和进程都处于可正常运行的状态,第一网络设备再重新使用该连接信息,实现协议栈与第一进程之间的连接,从而通过该连接实现对第一数据的处理。
[0013]在一种数据传输方法中,若进程退出,则认为该进程无法再正常使用,就会删除该进程与协议栈之间的连接信息,从而为其他进程留出更多的存储空间与处理资源;且连接信息是存储在协议栈上的,若协议栈退出,则与该协议栈连接的所有进程的连接信息,都会因为协议栈的退出而丢失;上述两种情况,都会导致连接信息的丢失,从而导致协议栈与进程之间的连接无法恢复,影响数据传输的可靠性。在本申请实施例中,在进程或协议栈退出的情况下,将进程与协议栈之间的连接信息保存起来,连接信息不丢失,在进程和协议栈都处于可正常运行的状态下,就可以恢复进程与协议栈之间的连接,保证了数据传输的可靠性。
[0014]在一种可选的实施方式中,若第二进程退出,第一网络设备则可以将连接信息保存在协议栈上,具体的,在该方法中,在位置标识传递至第一进程之前,若第二进程退出,则第一网络设备可以保持位置标识在协议栈的存储。等到第一进程启动后,第一网络设备就可以向第一进程传输存储在协议栈的位置标识,以便第一进程承接第二进程的任务,完成对第一数据的处理。值得注意的是,本申请实施例通过位置标识表示第一进程(第二进程)与协议栈之间的连接信息,除了位置标识,连接信息还可以包括其他信息,例如五元组信息、APP占用的内存信息、APP与协议栈之间的队列信息等,位置标识并不造成对连接信息的限定。
[0015]在本申请实施例中,第一网络设备的协议栈上保存有第二进程与协议栈之间的连接信息,若第二进程退出,第一网络设备则保持该连接信息在协议栈处的存储。等到用于完成第二进程任务的第一进程启动后,协议栈根据存储在协议栈处的连接信息,实现向第一进程的数据传输,从而实现第一进程与协议栈之间的连接。基于连接信息在协议栈处的存储,第一进程可以获取位置标识,从而实现对第一数据的处理,就能承接第二进程完成第二进程未完成的对第一数据的处理任务,保证了数据传输的可靠性。
[0016]在一种可选的实施方式中,若协议栈异常退出,第一网络设备则可以将连接信息保存在第一网络设备的共享内存上,等到协议栈重启后再从共享内存上调用连接信息。具体的,在该方法中,在协议栈异常退出之前,第一网络设备可以感知到协议栈将会退出,因此第一网络设备可以触发协议栈将位置标识保存至第一目标存储位置。其中,该第一目标位置为第一网络设备上的共享内存,或与第一网络设备连接的共享内存,协议栈可以从第一目标位置上读写数据。在协议栈异常退出之后,第一网络设备可以重启协议栈,并在重启
的过程中读取第一目标位置上的位置标识,使得重启后的协议栈保存有来自第一目标存储位置的位置标识。协议栈重启之后,第一网络设备就可以向第一进程传输存储在协议栈的位置标识,以便第一进程完成对第一数据的处理。值得注意的是,本申请实施例通过位置标识表示第一进程(第二进程)与协议栈之间的连接信息,除了位置标识,连接信息还可以包括其他信息,例如五元组信息、APP占用的内存信息、APP与协议栈之间的队列信息等,并不造成对连接信息的限定。
[0017]在本申请实施例中,协议栈上保存有第一进程与协议栈之间的连接信息,在协议栈异常退出之前,第一网络设备可以获知协议栈将要异常退出,因此第一网络设备可以将上述连接信息保存至第一目标存储位置上。在协议栈重启的过程中,则可以从第一目标存储位置上获取该连接信本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据传输方法,其特征在于,所述方法应用于第一网络设备,所述方法包括:获取来自目标进程的第一数据,将所述第一数据保存至目标存储位置;向第一进程传输位置标识,所述位置标识用于指示所述目标存储位置,以便所述第一进程从所述目标存储位置获取所述第一数据;基于所述第一进程完成对所述第一数据的处理,释放所述目标存储位置的存储空间。2.根据权利要求1所述的方法,其特征在于,在所述向第一进程传输位置标识之前,所述方法还包括:基于第二进程退出,启动所述第一进程,所述第一进程为对所述第二进程重启或者升级得到的。3.根据权利要求2所述的方法,其特征在于,在所述向第一进程传输位置标识之前,所述方法还包括:基于所述第二进程退出,保持所述位置标识在所述协议栈的存储;所述向第一进程传输位置标识,包括:向所述第一进程传输存储在所述协议栈的所述位置标识。4.根据权利要求1至3中任一项所述的方法,其特征在于,在所述向第一进程传输位置标识之前,所述方法还包括:在所述协议栈异常退出之前,触发所述协议栈将所述位置标识保存至第一目标存储位置;在所述协议栈异常退出之后,重启所述协议栈,重启后的所述协议栈保存有来自所述第一目标存储位置的所述位置标识;所述向第一进程传输位置标识,包括:向所述第一进程传输存储在所述协议栈的所述位置标识。5.根据权利要求2至4中任一项所述的方法,其特征在于,所述第一数据为面向连接的协议的数据,在所述将位置标识传递至第一进程之前,所述方法还包括:基于所述第二进程退出,保持会话信息在所述协议栈的存储;所述会话信息为所述第一数据所对应的五元组信息的会话信息,所述会话信息用于指示所述第一数据传递至所述第二进程;所述向第一进程传输位置标识,包括:触发所述协议栈根据所述会话信息,向所述第一进程传输存储在所述协议栈的所述位置标识。6.根据权利要求1至5中任一项所述的方法,其特征在于,所述第一协议数据为面向连接的协议的数据,在所述向第一进程传输位置标识之前,所述方法还包括:在所述协议栈异常退出之前,触发所述协议栈将所述会话信息保存至第二目标存储位置;在所述协议栈异常退出之后,重启所述协议栈,重启后的所述协议栈保存有来自所述第二目标存储位置的所述会话信息;所述向第一进程传输位置标识,包括:触发所述协议栈根据所述会话信息,向所述第一进程传输存储在所述协议栈的所述位置标识。
7.根据权利要求5或6所述的方法,其特征在于,所述方法还包括:基于所述第二进程退出或所述协议栈退出,向所述目标进程传递零窗口通告,所述零窗口通告用于终止所述目标进程向所述第一进程或所述第二进程传输数据。8.根据权利要求7所述的方法,其特征在于,在所述向第一进程传输位置标识之后,所述方法还包括:向所述目标进程传递窗口长度通知,所述窗口长度通知用于指示所述目标进程可向所述第一进程传输数据。9.一种数据传输方法,其特征在于,所述方法包括:基于第二进程退出,保持位置标识在协议栈的存储,所述位置标识用于指示目标存储位置,以便所述第二进程从所述目标存储位置获取第一数据;基于所述第二进程退出,启动第一进程,所述第一进程为对所述第二进程重启或者升级得到的;向所述第一进程传输存储在所述协议栈的所述位置标识。10.一种数据传输方法,其特征在于,所述方法包括:在协议栈异常退出之前,触发所述协议栈将位置标识保存至第一目标存储位置,所述位置标识用于指示目标存储位置,以便第一进程从所述目标存储位置获取第一数据;在所述协议栈异常退出之后,重启所述协议栈,重启后的所述协议栈保存有来自所述第一目标存储位置的所述位置标识;向所述第一进程传输存储在所述协议栈的所述位置标识。11.一种数据传输方法,其特征在于,所述方法包括:基于第二进程退出,保持会话信息在协议栈的存储;所述会话信息为第一数据所对应的五元组信息的会话信息,所述会话信息用于指示所述第一数据传递至第二进程;基于所述第二进程退出,启动第一进程,所述第一进程为对所述第二进程重启或者升级得到的;触发所述协议栈根据所述会话信息,向第一进程传输存储在所述协议栈的所述位置标识。12.根据权利要求11所述的方法,其特征在于,所述方法还包括:基于所述第二进程退出,向目标进程传递零窗口通告,所述零窗口通告用于终止所述目标进程向所述第二进程传输数据。13.根据权利要求12所述的方法,其特征在于,所述方法还包括:基于所述位置标识传递至所述第一进程,向所述目标进程传递窗口长度通知,所述窗口长度通知用于指示所述目标进程可向所述第一进程传输数据。14.一种数据传输方法,其特征在于,所述方法包括:在协议栈异常退出之前,触发所述协议栈将会话信息保存至第二目标存储位置;所述会话信息为第一数据所对应的五元组信息的会话信息,所述会话信息用于指示向第一进程传输所述第一数据;在所述协议栈异常退出之后,重启所述协议栈,重启后的所述协议栈保存有来自所述第二目标存储位置的所述会话信息;触发所述协议栈根据所述会话信息,向第一进程传输存储在所述协议栈的所述位置标
识。15.根据权利要求14所述的方法,其特征在于,所述方法还包括:基于所述协议栈退出,向目标进程传递零窗口通告,所述零窗口通告用于终止所述目标进程向所述第一进程传输数据。16.根据权利要求15所述的方法,其特征在于,所述方法还包括:基于所述位置标识传递至所述第一进程,向所述目标进程传递窗口长度通知,所述窗口长度通知用于指示所述目标进程可向所述第一进程传输数据。17.一种网络设备,所述网络设备包括:处理单元和收发单元;所述收发单元用于:获取来自目标进程的第一数据,将所述第一数据保存至目标存储位置;所述处理单元用于:向第一进...

【专利技术属性】
技术研发人员:田加鑫
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1