CN111447046B - 业务数据传输方法、装置、设备和存储介质 - Google Patents

业务数据传输方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN111447046B
CN111447046B CN202010223740.7A CN202010223740A CN111447046B CN 111447046 B CN111447046 B CN 111447046B CN 202010223740 A CN202010223740 A CN 202010223740A CN 111447046 B CN111447046 B CN 111447046B
Authority
CN
China
Prior art keywords
data
service data
transmission
service
auxiliary
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.)
Active
Application number
CN202010223740.7A
Other languages
English (en)
Other versions
CN111447046A (zh
Inventor
李正堂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bigo Technology Singapore Pte Ltd
Original Assignee
Guangzhou Baiguoyuan Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Baiguoyuan Information Technology Co Ltd filed Critical Guangzhou Baiguoyuan Information Technology Co Ltd
Priority to CN202010223740.7A priority Critical patent/CN111447046B/zh
Publication of CN111447046A publication Critical patent/CN111447046A/zh
Application granted granted Critical
Publication of CN111447046B publication Critical patent/CN111447046B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1812Hybrid protocols; Hybrid automatic repeat request [HARQ]
    • H04L1/1819Hybrid protocols; Hybrid automatic repeat request [HARQ] with retransmission of additional or different redundancy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/188Time-out mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/622Queue service order
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6245Modifications to standard FIFO or LIFO
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2212/00Encapsulation of packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/164Adaptation or special uses of UDP protocol

Abstract

本发明公开了一种业务数据传输方法、装置、设备和存储介质。该方法应用于发送端,包括:获取应用程序的业务数据以及所述业务数据对应的辅助数据;基于所述辅助数据和内核空间的公平队列发送所述业务数据;根据所述业务数据的发送情况进行发送确认和/或数据重传。本发明通过内核空间的公平队列发送应用程序的业务数据和辅助数据,根据业务数据的发送情况进行发送确认和/或数据重传,解决了数据传输时需要在内核空间和用户空间之间拷贝数据,造成传输效率低的问题,提高了数据传输的速率,同时,可以针对不同业务数据的发送情况进行发送确认和/或数据重传,避免在非重要的业务数据发生丢失时,等待大量时间,进一步增加了数据传输的高效性。

Description

业务数据传输方法、装置、设备和存储介质
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种业务数据传输方法、装置、设备和存储介质。
背景技术
常见的业务数据传输方式包括面向数据报的用户数据报协议(UDP,UserDatagram Protocol)和传输控制协议(TCP,Transmission Control Protocol),通过上述传输方式在发送端和接收端之间传输。在使用UDP传输协议进行传输时,数据包的发送过程为无连接的发送,数据包为不可靠传输。
为了提高业务数据在UDP传输方式下的可靠性,增加了数据包的ACK、丢包重传、乱序和确定实时发送速率等功能,然而现有的改进UDP传输的方式仅应用于终端设备的应用层面,在进行ACK处理时,需要将数据包从内核空间拷贝到应用程序的用户空间,在进行数据包重传时,需要将数据包从用户空间拷贝到内核空间,数据包的处理效率极低,而引入的ACK机制导致数据包在传输时必须严格按照发送顺序到达接收端。然而在UDP传输方式下的业务数据的重要性常常不高,可以允许丢失一部分不重要的数据包,例如,视频数据中的非关键帧的数据包。现有技术中花费大量时间等待不重要的数据包完成发送,对业务的实时性产生严重影响。
发明内容
本发明提供一种业务数据传输方法、装置、设备和存储介质,以实现业务数据的高效传输,减少不必要的数据重传,降低等待时间,在保证业务数据可靠性的基础上增加数据传输的及时性。
第一方面,本发明实施例提供了一种业务数据传输方法,应用于发送端,该方法包括:
获取应用程序的业务数据以及所述业务数据对应的辅助数据;
基于所述辅助数据和内核空间的公平队列发送所述业务数据;
根据所述业务数据的发送情况进行发送确认和/或数据重传。
第二方面,本发明实施例还提供了一种业务数据传输方法,应用于接收端,该方法包括:
获取发送数据包中的业务数据和所述业务数据对应的辅助数据;
根据所述辅助数据发送所述业务数据对应的反馈信息;
根据所述辅助数据将业务数据传递给应用程序。
第三方面,本发明实施例还提供了一种业务数据传输装置,应用于发送端,该装置包括:
数据获取模块,用于获取应用程序的业务数据以及所述业务数据对应的辅助数据;
数据发送模块,用于基于所述辅助数据和内核空间的公平队列发送所述业务数据;
反馈处理模块,用于根据所述业务数据的发送情况进行发送确认和/或数据重传。
第四方面,本发明实施例还提供了一种业务数据传输装置,应用于接收端,该装置包括:
数据提取模块,用于获取发送数据包中的业务数据和所述业务数据对应的辅助数据;
信息反馈模块,用于根据所述辅助数据发送所述业务数据对应的反馈信息;
数据上传模块,用于根据所述辅助数据将业务数据传递给应用程序。
第五方面,本发明实施例还提供了一种设备,该设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明实施例中任一所述的业务数据传输方法。
第六方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例中任一所述的业务数据传输方法。
本发明通过内核空间的公平队列发送应用程序的业务数据和辅助数据,并且根据业务数据的发送情况进行发送确认和/或数据重传,解决了在进行业务数据传输时,需要将数据在内核空间和应用程序的用户空间拷贝的问题,同时,在非重要的数据包发生丢失时,可以不用花费大量时间等待,影响数据传输的实时性,实现在业务数据传输具有可靠性的同时,增加其传输高效性的效果。
附图说明
图1为现有技术基于UDP协议的用户态传输协议的示意图;
图2是本发明实施例一提供的一种业务数据传输方法的流程图;
图3是本发明实施例二提供的一种业务数据传输方法的流程图;
图4是本发明实施例三提供的一种业务数据传输方法的流程图;
图5是本发明实施例四提供的一种业务数据传输装置的结构示意图;
图6是本发明实施例五提供的一种业务数据传输装置的结构示意图;
图7是本发明实施例六提供的一种设备的结构示意图。
具体实施方式
图1为现有技术基于UDP协议的用户态传输协议的示意图,如图1所示,用户数据包在由pacing模块发送到网络时,或重传模块将丢失的数据包重新发送时,均会经过一次数据包从用户空间到内核空间的拷贝;内核空间接收到的所有网络数据包均需要从内核空间拷贝到用户空间协议栈处理,以上处理方式会导致数据包的处理效率极低。在运用一些拥塞控制算法时,需要按照指定间隔时间发送数据包,即实现Pacing模块(定时器相关模块)功能,如图1,现有技术中Pacing模块在用户空间实现,那么对于应用层协议来说就需要自己设计和实现相应的定时器来处理这项工作。
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构,此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
实施例一
图2为本发明实施例一提供的一种业务数据传输方法的流程图,本实施例可适用于基于UDP的业务数据传输情况,该方法应用于发送端,可以由业务数据传输装置来执行,该装置可以采用硬件和/或软件的方式来实现,通常可以集成在智能终端中,具体包括如下步骤:
步骤110、获取应用程序的业务数据以及业务数据对应的辅助数据。
其中,Linux的虚拟地址空间可以分为两部分,分别为内核空间和用户空间,内核空间中可以存放内核代码和数据,而进程的用户空间中可以存放用户程序的代码和数据。在本发明实施例中,应用程序可以位于用户空间,业务数据可以理解为应用程序在实现业务功能时需要进行传输的数据,业务数据可以由一个智能终端传输到另一个智能终端,也可以由一个智能终端中的一个应用程序传输到另一应用程序。而业务数据对应的辅助数据则可以理解为对该业务数据进行传输时的标识数据,可以是辅助业务数据发送的数据,可以提高业务数据的传输效率,例如,可以是业务数据的种类标识信息,可以描述业务数据是否需要进行重传操作,可以记录业务数据是否必须按序可靠的到达接收端等。
具体的,在应用程序实现业务功能时可以产生业务数据,该业务数据需要进行传输,可以根据业务数据的类型或者描述生成辅助数据,内核空间可以获取用户空间内生成的业务数据和对应的辅助数据。可以将业务数据和对应的辅助数据关联成一组数据,或者将业务数据和对应的辅助数据生成一个数据包,在内核空间获取数据时,可以同时获取业务数据和对应的辅助数据。
步骤120、基于所述辅助数据和内核空间的公平队列发送所述业务数据。
其中,公平队列Fair Queuing是一种对业务数据进行调度的数据结构,与先进先出队列不同,公平队列可以将业务数据分成几个子队列,每个子队列公平地得到处理。通过各子队列实现每个队列上的数据包可以按照设置好的速率均匀发送,无需通过设置计时器触发数据包发送,具有更高的数据包发送效率。具体的,内核空间在获取业务数据及辅助数据后,可以根据辅助数据确定业务数据的发送方式,例如,辅助数据表示业务数据可以不进行重传时,可以直接将业务数据通过内核空间的公平队列发送,内核空间的公平队列可以将数据分成几个子队列,轮流发送每个子队列中的业务数据及辅助数据,保障每个公平队列中业务数据可以按照设定好的速率进行匀速发送,辅助数据表示业务数据可以进行重传时,可以在内核空间存储一份业务数据后,通过公平队列发送业务数据。进一步的,内核在发送业务数据时,可以将辅助数据和业务数据一同通过公平队列发送。
步骤130、根据业务数据的发送情况进行发送确认和/或数据重传。
其中,发送确认可以理解为业务数据发送成功后,发送端进行的确认操作。数据重传可以理解为在数据传输时业务数据丢失,发送端再次发送该数据包。
具体的,在内核空间将业务数据及辅助数据发送后,可以进行监听,接收业务数据的发送情况,业务数据的发送情况可以以接收到接收端反馈的数据接收信息为依据,也可以以一定时间内是否接收到反馈信息为依据。在确定业务数据的发送情况后,内核空间可以进行发送确认和/或数据重传。例如,在收到业务数据发送成功的反馈后,内核空间可以进行发送确认,可以是收到接收端的ACK确认后将该业务数据删除等;在接收到业务数据发送失败的反馈后,内核空间可以进行数据重传,或进行数据重传后再进行发送确认。
本发明实施例的技术方案,通过获取应用程序的业务数据及对应的辅助数据,将其根据内核空间的公平队列发送,并根据业务数据的发送情况进行发送确认和/或数据重传,解决了业务数据从用户空间到内核空间的拷贝时间过长的问题,避免了业务数据在用户空间和内核空间之间的反复传输,同时允许数据传输过程中丢失一部分不重要的数据包,达到了提高数据传输效率,降低等待时间。
实施例二
图3是本发明实施例二提供的一种业务数据传输方法的流程图,参见图3,本发明实施例对上述业务数据传输方法进行了具体化,本发明实施例的提供的业务数据传输方法包括:
步骤210、获取应用程序写入函数传输的业务数据和业务数据对应的辅助数据。
其中,写入函数可以理解为应用程序在写入控制命令、需要发送的数据及相关数据时调用的函数。在本发明实施例中,写入函数可以用于将业务数据和业务数据对应的辅助数据传输至内核空间。
具体的,在应用程序需要发送数据时,应用程序可以调用自定义的写入函数,将业务数据和业务数据对应的辅助数据传输至内核空间,内核空间可以获取到该业务数据和业务数据对应的辅助数据。
进一步的,在上述发明实施例的基础上,所述写入函数通过字符设备自定义网络接口嵌套字的方式生成。
具体的,内核空间与应用程序进行数据交换的写入函数可以通过字符设备自定义网络接口嵌套字,可以理解的是,内核空间在与应用程序所在的用户空间进行数据交换时,通过字符设备自定义网络接口嵌套字的方式还可以定义read函数和epoll函数等。
步骤220、将业务数据和辅助数据封装为发送数据包并存储到内核空间。
其中,封装可以理解为通过某种协议将业务数据和辅助数据打包形成一个数据包,可以是将业务数据和辅助数据映射到某个封装协议的净荷中,然后填充对应协议的包头,形成封装协议的数据包,也可以是将业务数据映射到某个封装协议的净荷中,将辅助数据填充到对应协议的包头,形成封装协议的数据包。可以将形成的数据包称为发送数据包。
具体的,可以在内核空间获取到业务数据和对应的辅助数据后,将该业务数据和辅助数据根据指定的封装协议进行封装,形成发送数据包,可以将该发送数据包存储于内核空间中。在发送端将发送数据包发送至接收端后,若出现数据丢失,需要数据重传时,可以直接从内核空间中获取传输中丢失的发送数据包,快速进行数据重传,提高传输效率。
步骤230、根据辅助数据中的重传标识确定业务数据是否进行数据重传。
其中,重传标识可以理解为表示发送端发送的数据包未到达接收端时,是否需要再次重新发送该数据包的标识信息。重传标识可以以辅助数据中某一字段表示,若该字段为0,可以表示发送的数据包未到达接收端时需要进行数据重传,对应的,若字段为1,则不需要进行数据重传;同理,也可以将1标识为需要进行数据重传,0标识为不需要进行数据重传。在实际操作中,如何进行重传标识可以预先设定。
具体的,获取辅助数据中的重传标识,根据预先设定的重传标识的表示含义,可以确定该业务数据是否需要进行数据重传,若是,则进行步骤240;否则,进行步骤250。一个具体的例子,若预先设定重传标识字段为0时,需要进行数据重传,若字段为1,则不需要进行数据重传;当获取到某辅助数据中的重传标识为0,则可以表示对应的业务数据需要进行数据重传,下一步进行步骤240。
步骤240、将业务数据对应的发送数据包存储到重传列表,并将发送数据包通过内核空间的公平队列发送。
其中,重传列表可以理解为存储需要进行数据重传的数据包的存储空间,可以为实际存在的数据表,也可以是固定的存储空间,发送数据包可以存储在该存储空间内,可以将该存储空间作为重传列表。
具体的,通过步骤230确定的需要进行数据重传的业务数据,可以获取其对应的发送数据包,将该发送数据包存储在重传列表中,同时,将该发送数据包传送至内核空间的公平队列,由内核空间的公平队列发送。将需要进行数据重传的业务数据对应的发送数据包存储在重传列表中,可以在数据传输中出现发送数据包丢失时,发送端可以在重传列表中找到传输丢失的发送数据包,从而进行数据重传。接下来进行步骤260。
步骤250、将业务数据对应的发送数据包通过内核空间的公平队列发送。
具体的,当业务数据不用进行数据重传时,可以获取该业务数据对应的发送数据包,将该发送数据包传送至内核空间的公平队列,由内核空间的公平队列发送,在发送后,可以将该发送数据包直接丢弃,不进行存储。
步骤260、判断在阈值时间内是否获取到业务数据的反馈信息。
其中,反馈信息可以理解为接收端接收到发送数据包后反馈给发送端的提示信息,例如,可以是ACK数据包。阈值时间可以理解为需要重传发送数据包的最大等待时间,在阈值时间内可以接收监测反馈信息。
具体的,在内核空间将发送数据包通过公平队列发出后,开始计时,若在阈值时间内获取到该业务数据的反馈信息,可以说明接收端收到了该业务数据,则进行步骤270;若经过阈值时间间隔,没有获取到业务数据的反馈信息,可以认为接收端没有收到发送数据包,发送数据包丢失,接下来进行步骤280。
步骤270、对业务数据进行发送确认。
其中,发送确认可以理解为发送数据包被接收端成功接收后,发送端进行的发送成功的确认操作。
具体的,当接收端成功接收到发送数据包后,内核空间对该发送数据包进行发送成功的确认操作。
步骤280、对业务数据进行数据重传。
具体的,当接收端没有获取到业务数据的反馈信息时,需要对业务数据进行数据重传,可以将重传列表中该业务数据对应的发送数据包重新通过内核空间的公平队列发送。
本发明实施例的技术方案,通过将业务数据是否需要数据重传进行标识,并将业务数据和辅助数据封装为发送数据包,在通过内核空间的公平队列发送后,将需要数据重传的发送数据包存储到重传列表,不需要数据重传的发送数据包可以直接丢弃,节省了存储空间,避免了不必要的等待;在传输发送数据包后,由内核空间的代理进行监听,业务数据传输成功时,删除重传列表中对应的发送数据包,业务数据传输失败时,则将对应的发送数据包进行数据重传,该过程都可以在内核空间中实现,减少了数据在用户空间和内核空间之间的拷贝,节约了计算资源,提高了数据传输效率。
进一步的,在上述发明实施例的基础上,若在阈值时间内获取到业务数据的反馈信息,对业务数据进行发送确认,可以包括:在业务数据发送后的阈值时间内,通过内核空间的代理监听到业务数据对应的ACK数据包,则在重传列表中将业务数据对应的发送数据包删除。
其中,代理可以在Linux内核空间实现,用于代替应用程序进行监听端口、接收和发送数据包等操作,并集成对发送失败的数据包进行数据重传、处理已发送数据包的ACK数据包、将要发送的数据包传送至公平队列等功能。
具体的,可以在内核空间中实现一个代理,在内核空间将发送数据包通过公平队列发出后,监听接收到的数据包,在阈值时间内,若代理监听到的数据包中有该业务数据对应的ACK数据包,可以说明接收端收到了该业务数据,因此不需要再进行该业务数据的重新传输,则在重传列表中将该业务数据对应的发送数据包删除。
进一步的,在上述发明实施例的基础上,若在阈值时间内未获取到业务数据的反馈信息,对业务数据进行数据重传,可以包括:在业务数据发送后的阈值时间内,通过内核空间的代理监听业务数据对应的ACK数据包;确定未监测到ACK数据包,则获取重传列表业务数据对应的发送数据包进行重传。
具体的,可以在内核空间中实现一个代理,在内核空间将发送数据包通过公平队列发出后,监听接收到的数据包,在阈值时间内,若代理没有监听到已发送的业务数据对应的ACK数据包,可以说明接收端没有正确的接收到该业务数据,因此需要进行该业务数据的数据重传,代理则在重传列表中获取该业务数据对应的发送数据包,并将发送数据包传送至公平队列进行发送。
实施例三
图4为本发明实施例三提供的一种业务数据传输方法的流程图,本实施例可适用于基于UDP的业务数据传输情况,该方法应用于接收端,可以由业务数据传输装置来执行,该装置可以采用硬件和/或软件的方式来实现,通常可以集成在智能终端中,具体包括如下步骤:
步骤310、获取发送数据包中的业务数据和业务数据对应的辅助数据。
具体的,接收端可以在接收到发送数据包后,对发送数据包进行解析,得到其中的业务数据和业务数据对应的辅助数据。
步骤320、根据辅助数据发送业务数据对应的反馈信息。
具体的,可以在获取发送数据包中的业务数据和业务数据对应的辅助数据后,分析辅助数据,确定业务数据对应的反馈信息。其中,辅助数据中可以记录是否需要在接收到该业务数据后给发送端反馈确认信息,例如,向发送端发送ACK数据包。
步骤330、根据辅助数据将业务数据传递给应用程序。
具体的,应用程序可以位于用户空间,在本发明实施例中,接收和解析发送数据包在内核空间中实现,因此,在获取到业务数据后,可以根据辅助数据中业务数据的相关标识信息,调用相关模块或函数,将业务数据从内核空间传递给用户空间的应用程序。
本发明实施例的技术方案,通过在内核空间中解析获取到的发送数据包,得到业务数据和业务数据对应的辅助数据,并根据辅助数据发送反馈信息和传递数据,解决了数据传输中需要将数据包在内核空间和用户空间之间拷贝,传输效率低,等待时间长的问题,并且通过重传标识确定是否进行发送确认,同时可以有序的将业务数据传递到应用程序,在保证数据可靠传输的情况下节约了计算资源,提高了数据传输效率。
进一步的,在上述发明实施例的基础上,获取发送数据包中的业务数据和业务数据对应的辅助数据,可以包括:在内核空间解析发送数据包,并提取发送数据包内的业务数据和辅助数据。
具体的,接收端可以在接收到发送数据包后,在内核空间中对发送数据包进行解析,得到其中的业务数据和业务数据对应的辅助数据。发送数据包的接收和解析可以由内核空间中的相关模块处理,例如,可以在内核空间中实现一个代理,在内核代理接收到数据包的时候,内核代理首先判断该数据包是否是是发送数据包,若是发送数据包,则在内核空间解析发送数据包,提取其中的业务数据和辅助数据。
进一步的,在上述发明实施例的基础上,根据辅助数据发送业务数据对应的反馈信息,可以包括:根据辅助数据中的重传标识确定业务数据进行发送确认时,发送业务数据对应的ACK数据包。
其中,重传标识可以以辅助数据中某一字段表示,若该字段为0,可以表示接收到对应的业务数据时需要进行发送确认,对应的,若字段为1,则不需要进行发送确认;同理,也可以将1标识为需要进行发送确认,0标识为不需要进行发送确认。在实际操作中,如何进行重传标识可以预先设定。
具体的,可以获取辅助数据中的重传标识,根据预先设定的重传标识的表示含义,可以确定该业务数据是否需要进行发送确认,若是,则发送业务数据对应的ACK数据包。
进一步的,在上述发明实施例的基础上,根据辅助数据将业务数据传递给应用程序,可以包括:
通过辅助数据中的重传标识确定业务数据不进行发送确认时,则将业务数据通过应用程序的读出函数将业务数据传递到应用程序;
通过辅助数据中的重传标识确定业务数据进行发送确认且业务数据对应的发送数据包的前序数据包已被传递到应用程序时,则将业务数据通过应用程序的读出函数将业务数据传递到应用程序。
其中,读出函数可以理解为将业务数据从内核空间读取并传递到应用程序的执行工具。
具体的,可以获取辅助数据中的重传标识,判断重传标识字段的表示含义,若重传标识的字段标识为该业务数据不需要进行发送确认,则直接调用读出函数,将业务数据从内核空间读取,传递至用户空间的应用程序;若重传标识的字段标识为该业务数据需要进行发送确认,那么判断该业务数据对应的发送数据包的前序数据包是否已经被传递到应用程序,当前序数据包都传递到应用程序后,调用读出函数,将业务数据从内核空间读取,传递至用户空间的应用程序。
示例性的,可以在内核空间中实现一个代理,内核代理接收到发送数据包后,获取到辅助数据中的重传标识,判断该业务数据是否需要进行发送确认,若不需要,内核代理向应用程序抛出一个可读事件,应用程序在接收到该可读事件后调用读出函数读取内核代理接收到的发送数据包并传递到应用程序;若需要进行发送确认,那么内核代理需要接着判断该发送数据包是否需要保证有序传递到应用程序,如果该发送数据包不需要保证有序传递,内核代理可以通过自定义的指示函数向应用程序抛出一个可读事件,应用程序在接收到该可读事件后调用读出函数读取内核代理接收到的发送数据包,如果该数据包需要保证有序传递到应用程序,那么内核代理需要确定传递序号位于该发送数据包之前的前序数据包都已经通过指示函数通知到应用程序后,才可以通知应用程序读取该发送数据包。
实施例四
图5是本发明实施例四提供的一种业务数据传输装置的结构示意图,该装置应用于发送端。本发明实施例所提供的业务数据传输装置可执行本发明任意实施例所提供的业务数据传输方法,具备执行方法相应的功能模块和有益效果。该装置可以由软件和/或硬件实现,具体包括:数据获取模块410、数据发送模块420和反馈处理模块430。
数据获取模块410,用于获取应用程序的业务数据以及所述业务数据对应的辅助数据。
数据发送模块420,用于基于所述辅助数据和内核空间的公平队列发送所述业务数据。
反馈处理模块430,用于根据所述业务数据的发送情况进行发送确认和/或数据重传。
本发明实施例通过内核空间的公平队列发送应用程序的业务数据和辅助数据,根据业务数据的发送情况进行发送确认和/或数据重传,解决了数据传输时需要在内核空间和应用程序的用户空间之间拷贝数据,传输效率低的问题,实现业务数据的高效传输,同时,可以针对不同业务数据的发送情况进行发送确认和/或数据重传,减少不必要的数据重传,降低了等待时间,增加了数据传输的高效性。
实施例五
图6是本发明实施例五提供的一种业务数据传输装置的结构示意图,该装置应用于接收端。本发明实施例所提供的业务数据传输装置可执行本发明任意实施例所提供的业务数据传输方法,具备执行方法相应的功能模块和有益效果。该装置可以由软件和/或硬件实现,具体包括:数据提取模块510、信息反馈模块520和数据上传模块530。
数据提取模块510,用于获取发送数据包中的业务数据和所述业务数据对应的辅助数据。
信息反馈模块520,用于根据所述辅助数据发送所述业务数据对应的反馈信息。
数据上传模块530,用于根据所述辅助数据将业务数据传递给应用程序。
本发明实施例的技术方案,通过在内核空间中解析获取到的发送数据包,得到业务数据和业务数据对应的辅助数据,并根据辅助数据发送反馈信息和传递数据,解决了数据传输中需要将数据包在内核空间和用户空间之间拷贝,造成时间开销较高的问题,在保证数据可靠传输的情况下节约了计算资源,提高了数据传输效率。
实施例六
图六为本发明实施例六提供的一种设备的结构示意图,如图7所示,该设备包括处理器60、存储器61、输入装置62和输出装置63;设备中处理器60的数量可以是一个或多个,图7中以一个处理器60为例;设备中的处理器60、存储器61、输入装置62和输出装置63可以通过总线或其他方式连接,图7中以通过总线连接为例。
存储器61作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的业务数据传输方法对应的程序模块(例如,应用于发送端的业务数据传输装置中的数据获取模块410、数据发送模块420和反馈处理模块430,应用于接收端的业务数据传输装置中的数据提取模块510、信息反馈模块520和数据上传模块530)。处理器60通过运行存储在存储器61中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的业务数据传输方法。
存储器61可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器61可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器61可进一步包括相对于处理器60远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置62可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置63可包括显示屏等显示设备。
实施例七
本发明实施例七还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种业务数据传输方法。
执行的业务数据传输方法应用于发送端时,该方法包括:
获取应用程序的业务数据以及所述业务数据对应的辅助数据;
基于所述辅助数据和内核空间的公平队列发送所述业务数据;
根据所述业务数据的发送情况进行发送确认和/或数据重传。
执行的业务数据传输方法应用于发送端时,该方法包括:
获取发送数据包中的业务数据和所述业务数据对应的辅助数据;
根据所述辅助数据发送所述业务数据对应的反馈信息;
根据所述辅助数据将业务数据传递给应用程序。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的业务数据传输方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述业务数据传输装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (15)

1.一种业务数据传输方法,其特征在于,应用于发送端,包括:
获取应用程序的业务数据以及所述业务数据对应的辅助数据;其中,所述辅助数据包括重传标识;
基于所述辅助数据和内核空间的公平队列发送所述业务数据,包括:当所述辅助数据表示业务数据能够进行重传时,在内核空间存储业务数据后,通过所述公平队列发送业务数据;
根据所述业务数据的发送情况进行发送确认和/或数据重传。
2.根据权利要求1所述的方法,其特征在于,所述获取应用程序的业务数据以及所述业务数据对应的辅助数据,包括:
获取所述应用程序写入函数传输的业务数据和所述业务数据对应的辅助数据;
将所述业务数据和所述辅助数据封装为发送数据包并存储到内核空间。
3.根据权利要求2所述的方法,其特征在于,所述写入函数通过字符设备自定义网络接口嵌套字的方式生成。
4.根据权利要求2所述的方法,其特征在于,所述基于所述辅助数据和内核空间的公平队列发送所述业务数据,包括:
根据所述辅助数据中的重传标识确定所述业务数据是否进行数据重传;
若是,则将所述业务数据对应的发送数据包存储到重传列表,并将所述发送数据包通过所述内核空间的公平队列发送;
若否,则将所述业务数据对应的发送数据包通过所述内核空间的公平队列发送。
5.根据权利要求1或4所述的方法,其特征在于,所述根据所述业务数据的发送情况进行发送确认和/或数据重传,包括:
若在阈值时间内获取到所述业务数据的反馈信息,对所述业务数据进行发送确认;
若在阈值时间内未获取到所述业务数据的反馈信息,对所述业务数据进行数据重传。
6.根据权利要求5所述的方法,其特征在于,所述若在阈值时间内获取到所述业务数据的反馈信息,对所述业务数据进行发送确认,包括:
在业务数据发送后的阈值时间内,通过内核空间的代理监听到所述业务数据对应的ACK数据包,则在重传列表中将所述业务数据对应的发送数据包删除。
7.根据权利要求5所述的方法,其特征在于,所述若在阈值时间内未获取到所述业务数据的反馈信息,对所述业务数据进行数据重传,包括:
在所述业务数据发送后的阈值时间内,通过内核空间的代理监听所述业务数据对应的ACK数据包;
确定未监测到所述ACK数据包,则获取重传列表所述业务数据对应的发送数据包进行重传。
8.一种业务数据传输方法,其特征在于,应用于接收端,包括:
获取发送数据包中的业务数据和所述业务数据对应的辅助数据;其中,所述辅助数据包括重传标识;
根据所述辅助数据发送所述业务数据对应的反馈信息;
根据所述辅助数据将业务数据传递给应用程序;
其中,在内核空间中实现一个代理,内核代理接收到发送数据包后,获取到辅助数据中的重传标识,以判断该业务数据是否需要进行发送确认。
9.根据权利要求8所述的方法,其特征在于,所述获取发送数据包中的业务数据和所述业务数据对应的辅助数据,包括:
在内核空间解析所述发送数据包,并提取所述发送数据包内的业务数据和辅助数据。
10.根据权利要求9所述的方法,其特征在于,所述根据所述辅助数据发送所述业务数据对应的反馈信息,包括:
根据所述辅助数据中的重传标识确定所述业务数据进行发送确认时,发送所述业务数据对应的ACK数据包。
11.根据权利要求8-10中任一项所述的方法,其特征在于,所述根据所述辅助数据将业务数据传递给应用程序,包括:
通过所述辅助数据中的重传标识确定所述业务数据不进行发送确认时,则将所述业务数据通过应用程序的读出函数将所述业务数据传递到应用程序;
通过所述辅助数据中的重传标识确定所述业务数据进行发送确认且所述业务数据对应的发送数据包的前序数据包已被传递到应用程序时,则将所述业务数据通过应用程序的读出函数将所述业务数据传递到应用程序。
12.一种业务数据传输装置,其特征在于,应用于发送端,包括:
数据获取模块,用于获取应用程序的业务数据以及所述业务数据对应的辅助数据;其中,所述辅助数据包括重传标识;
数据发送模块,用于基于所述辅助数据和内核空间的公平队列发送所述业务数据,包括:当所述辅助数据表示业务数据能够进行重传时,在内核空间存储业务数据后,通过所述公平队列发送业务数据;
反馈处理模块,用于根据所述业务数据的发送情况进行发送确认和/或数据重传。
13.一种业务数据传输装置,其特征在于,应用于接收端,包括:
数据提取模块,用于获取发送数据包中的业务数据和所述业务数据对应的辅助数据;其中,所述辅助数据包括重传标识;
信息反馈模块,用于根据所述辅助数据发送所述业务数据对应的反馈信息;
数据上传模块,用于根据所述辅助数据将业务数据传递给应用程序;
其中,在内核空间中实现一个代理,内核代理接收到发送数据包后,获取到辅助数据中的重传标识,以判断该业务数据是否需要进行发送确认。
14.一种电子设备,其特征在于,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-11中任一所述的业务数据传输方法。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-11中任一所述的业务数据传输方法。
CN202010223740.7A 2020-03-26 2020-03-26 业务数据传输方法、装置、设备和存储介质 Active CN111447046B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010223740.7A CN111447046B (zh) 2020-03-26 2020-03-26 业务数据传输方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010223740.7A CN111447046B (zh) 2020-03-26 2020-03-26 业务数据传输方法、装置、设备和存储介质

Publications (2)

Publication Number Publication Date
CN111447046A CN111447046A (zh) 2020-07-24
CN111447046B true CN111447046B (zh) 2023-04-25

Family

ID=71650795

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010223740.7A Active CN111447046B (zh) 2020-03-26 2020-03-26 业务数据传输方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN111447046B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114500682B (zh) * 2021-12-27 2023-08-08 天翼云科技有限公司 一种数据包的处理方法、装置及边端设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1996821A (zh) * 2006-01-05 2007-07-11 上海原动力通信科技有限公司 一种基于数据重传机制的数据传输方法
CN101488906A (zh) * 2008-01-14 2009-07-22 中兴通讯股份有限公司 实时业务传输的资源分配方法、实时业务传输方法
CN102098750A (zh) * 2009-12-10 2011-06-15 中兴通讯股份有限公司 业务数据的传输方法及系统
CN104753803A (zh) * 2013-12-30 2015-07-01 中国移动通信集团公司 一种数据传输方法、装置、设备及系统
CN107786308A (zh) * 2017-09-26 2018-03-09 平安科技(深圳)有限公司 数据传输方法及终端设备

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101150485A (zh) * 2007-11-15 2008-03-26 曙光信息产业(北京)有限公司 一种零拷贝缓冲区队列网络数据发送的管理方法
US8549537B2 (en) * 2008-01-10 2013-10-01 Industrial Technology Research Institute Middleware bridge system and method
CN101304373B (zh) * 2008-06-25 2011-03-02 中兴通讯股份有限公司 一种实现局域网内高效传输大块数据的方法及系统
CN101340574B (zh) * 2008-08-04 2010-09-08 中兴通讯股份有限公司 一种实现零拷贝发送流媒体数据的方法及系统
CN101702688B (zh) * 2009-11-24 2012-01-04 武汉绿色网络信息服务有限责任公司 一种数据包收发方法
CN102375789B (zh) * 2010-08-09 2014-05-28 中标软件有限公司 一种通用网卡非缓存的零拷贝方法及零拷贝系统
CN102156662A (zh) * 2011-02-14 2011-08-17 大唐移动通信设备有限公司 一种数据处理方法和设备
CN104717189A (zh) * 2013-12-16 2015-06-17 中兴通讯股份有限公司 网络数据包的发送方法及装置
CN103945456B (zh) * 2014-05-12 2017-06-27 武汉邮电科学研究院 一种基于Linux系统的LTE基站用户面高效UDP数据发送优化方法
WO2018032399A1 (en) * 2016-08-17 2018-02-22 Zte Corporation Server and method having high concurrency capability
CN107959555B (zh) * 2017-10-25 2021-09-03 捷开通讯(深圳)有限公司 一种基于lwaap的数据传输方法、装置及存储介质
CN108965161A (zh) * 2018-06-11 2018-12-07 联想(北京)有限公司 信息处理方法和电子设备
CN110753008A (zh) * 2018-07-24 2020-02-04 普天信息技术有限公司 基于dpaa的网络数据处理装置和方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1996821A (zh) * 2006-01-05 2007-07-11 上海原动力通信科技有限公司 一种基于数据重传机制的数据传输方法
CN101488906A (zh) * 2008-01-14 2009-07-22 中兴通讯股份有限公司 实时业务传输的资源分配方法、实时业务传输方法
CN102098750A (zh) * 2009-12-10 2011-06-15 中兴通讯股份有限公司 业务数据的传输方法及系统
CN104753803A (zh) * 2013-12-30 2015-07-01 中国移动通信集团公司 一种数据传输方法、装置、设备及系统
CN107786308A (zh) * 2017-09-26 2018-03-09 平安科技(深圳)有限公司 数据传输方法及终端设备

Also Published As

Publication number Publication date
CN111447046A (zh) 2020-07-24

Similar Documents

Publication Publication Date Title
CN101189840B (zh) 数据单元中继设备和控制该数据单元中继设备的方法
US7249192B1 (en) Protocol for insuring exactly once semantics of transactions across an unordered, unreliable network
US9379852B2 (en) Packet recovery method, communication system, information processing device, and program
WO2017050216A1 (zh) 一种报文传输方法及用户设备
CN101340268B (zh) 节点间通信确认机制的实现方法和实现系统
US20080049617A1 (en) System for fine grained flow-control concurrency to prevent excessive packet loss
EP1694025A1 (en) Addresable queue for communicating correlated messages over a network
CN104980257B (zh) 物联网通讯方法及装置
RU2019130588A (ru) Способ обработки данных и относящееся к нему устройство
CN112769939B (zh) 一种用于实时通讯的大数据可靠传输方法
EP3525421A1 (en) Data transmission method and apparatus
CN111970092B (zh) 一种支持可靠性调节的多协议冗余网络异步通信方法
CN100442755C (zh) 一种保证通用路由封装隧道传输可靠的方法
CN111447046B (zh) 业务数据传输方法、装置、设备和存储介质
EP3672189B1 (en) Data transmission method, device and system
CN101145968B (zh) 网管系统和传输设备间数据发送及接收方法
CN107181657B (zh) 一种wtb链路层接口适配器及其实现方法
CN113132069A (zh) 一种丢包重传的通信机制及基于fpga实现其的方法
CN105634692A (zh) 基于udp协议的数据包发送方法和接收方法
CN116527205B (zh) 数据传输方法、装置及存储介质
CN116760510B (zh) 一种消息发送方法、消息接收方法、装置和设备
CN116488712B (zh) 一种基于改进存储转发协议的非实时中继通信方法
CN111756482B (zh) 一种确认反馈方法、装置和计算机可读存储介质
CN111541736A (zh) 一种数据库流复制方法和装置
CN117335931A (zh) 数据重传方法、装置及可读存储介质

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231010

Address after: 31a, 15 / F, building 30, maple mall, bangrang Road, Brazil, Singapore

Patentee after: Baiguoyuan Technology (Singapore) Co.,Ltd.

Address before: 5-13 / F, West Tower, building C, 274 Xingtai Road, Shiqiao street, Panyu District, Guangzhou, Guangdong 510000

Patentee before: GUANGZHOU BAIGUOYUAN INFORMATION TECHNOLOGY Co.,Ltd.