CN113301375B - 一种数据发送方法及装置 - Google Patents
一种数据发送方法及装置 Download PDFInfo
- Publication number
- CN113301375B CN113301375B CN202110563738.9A CN202110563738A CN113301375B CN 113301375 B CN113301375 B CN 113301375B CN 202110563738 A CN202110563738 A CN 202110563738A CN 113301375 B CN113301375 B CN 113301375B
- Authority
- CN
- China
- Prior art keywords
- delay
- network
- data
- sending
- data packet
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
- H04N21/6437—Real-time Transport Protocol [RTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/647—Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
- H04N21/64723—Monitoring of network processes or resources, e.g. monitoring of network load
- H04N21/64738—Monitoring network characteristics, e.g. bandwidth, congestion level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/647—Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
- H04N21/64784—Data processing by the network
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种数据发送方法及装置,应用于网络技术领域,其中,上述方法包括:在发送缓冲区中缓存数据包的过程中,确定发送端与接收端之间的网络延时。按照网络延时与动态延时阈值大小正相关的规则,调整动态延时阈值的大小,其中,动态延时阈值小于等于预设最大延时。当缓冲区中缓存数据包之间的最大生成时间差大于动态延时阈值时,确定缓冲区中彼此之间最大生成时间差小于等于动态延时阈值的数据包,删除所确定数据包之外的数据包。向接收端发送缓冲区中的数据包。本发明实施例提供的方案可以降低数据传输过程的延时。
Description
技术领域
本发明涉及网络技术领域,特别是涉及一种数据发送方法及装置。
背景技术
随着网络技术的发展,数据传输速度逐渐提高,网络用户对低延时数据传输的需求逐渐增大。例如,在直播领域,数据包从直播服务器等发送端发送到用户手机等接收端所需的时间越短,观看直播的用户观看到的直播内容与主播实际直播的内容之间的时间差越小,直播的延时越小,直播效果越好。
若网络质量较差,发送端一般会降低数据包的发送速率,从而导致发送端缓存较多待发送的数据包。从数据包生成至接收端接收到数据包的完整过程来看,上述数据发送方式,易导致数据传输过程的延时较高。
发明内容
本发明实施例的目的在于提供一种数据发送方法及装置,以降低数据传输过程的延时。具体技术方案如下:
第一方面,本发明实施例提供了一种数据发送方法,所述方法包括:
在发送缓冲区中缓存数据包的过程中,确定所述发送端与接收端之间的网络延时;
按照所述网络延时与动态延时阈值大小正相关的规则,调整所述动态延时阈值的大小,其中,所述动态延时阈值小于等于预设最大延时;
当所述缓冲区中缓存数据包之间的最大生成时间差大于所述动态延时阈值时,确定所述缓冲区中彼此之间最大生成时间差小于等于所述动态延时阈值的数据包,删除所确定数据包之外的数据包;
向所述接收端发送所述缓冲区中的数据包。
本发明的一个实施例中,所述向所述接收端发送所述缓冲区中的数据包,包括:
按照网络延时越大发送速率越小的规则,根据所述网络延时确定数据包的发送速率;
按照所述发送速率,向所述接收端发送所述缓冲区中的数据包。
本发明的一个实施例中,所述确定所述发送端与接收端之间网络的网络延时,包括:
获得所述发送端与接收端之间网络的网络信息,其中,所述网络信息中包括丢包率、网络带宽、RTT中的至少一种;
根据所述网络信息,计算所述发送端与接收端之间网络的网络延时。
本发明的一个实施例中,所述网络信息包括丢包率、网络带宽以及RTT三种信息,所述根据所述网络信息,计算所述发送端与接收端之间网络的网络延时,包括:
根据所述丢包率,确定所述发送端与接收端之间网络的第一延时;
根据所述网络带宽,确定所述发送端与接收端之间网络的第二延时;
根据所述RTT,确定所述发送端与接收端之间网络的第三延时;
对所述第一延时、第二延时与第三延时进行统计计算,得到所述发送端与接收端之间网络的网络延时。
本发明的一个实施例中,所述当所述缓冲区中缓存数据包之间的最大生成时间差大于所述动态延时阈值时,确定所述缓冲区中彼此之间最大生成时间差小于等于所述动态延时阈值的数据包,删除所确定数据包之外的数据包,包括:
当所述最大生成时间差大于所述动态延时阈值与预设时间差之和的情况下,确定所述缓冲区中彼此之间最大生成时间差小于等于所述动态延时阈值的数据包,删除所确定数据包之外的数据包。
本发明的一个实施例中,所述在发送缓冲区中所缓存数据包的过程中,确定所述发送端与接收端之间的网络延时,包括:
在发送缓冲区中所缓存数据包的过程中,获得所述发送端与接收端之间网络的RTT;
若所述RTT小于预设往返时间阈值,则确定所述发送端与接收端之间的网络延时。
本发明的一个实施例中,在所述数据包中包含的数据为图像数据的情况下,所述确定所述缓冲区中彼此之间最大生成时间差小于等于所述动态延时阈值的数据包,删除所确定数据包之外的数据包,包括:
根据所述动态延时阈值和所缓存数据包的生成时间,确定彼此之间最大生成时间差小于等于所述动态延时阈值的第一数据包;
从所述第一数据包中,去除所包含图像数据与第二数据包所包含图像数据属于同一图像的数据包,其中,所述第二数据包为:所缓存数据包中除所述第一数据包之外的数据包;
删除所述第一数据包之外的数据包。
第二方面,本发明实施例提供了一种数据发送装置,所述装置包括:
延时确定模块,用于在发送缓冲区中缓存数据包的过程中,确定所述发送端与接收端之间的网络延时;
阈值调整模块,用于按照所述网络延时与动态延时阈值大小正相关的规则,调整所述动态延时阈值的大小,其中,所述动态延时阈值小于等于预设最大延时;
数据包删除模块,用于当所述缓冲区中缓存数据包之间的最大生成时间差大于所述动态延时阈值时,确定所述缓冲区中彼此之间最大生成时间差小于等于所述动态延时阈值的数据包,删除所确定数据包之外的数据包;
数据包发送模块,用于向所述接收端发送所述缓冲区中的数据包。
本发明的一个实施例中,所述数据包发送模块,包括:
速率确定子模块,用于按照网络延时越大发送速率越小的规则,根据所述网络延时确定数据包的发送速率;
数据包发送子模块,用于按照所述发送速率,向所述接收端发送所述缓冲区中的数据包。
本发明的一个实施例中,所述延时确定模块,包括:
信息获得子模块,用于在发送缓冲区中缓存数据包的过程中,获得所述发送端与接收端之间网络的网络信息,其中,所述网络信息中包括丢包率、网络带宽、RTT中的至少一种;
延时计算子模块,用于根据所述网络信息,计算所述发送端与接收端之间网络的网络延时。
本发明的一个实施例中,所述网络信息包括丢包率、网络带宽以及RTT三种信息,所述延时计算子模块,具体用于:
根据所述丢包率,确定所述发送端与接收端之间网络的第一延时;
根据所述网络带宽,确定所述发送端与接收端之间网络的第二延时;
根据所述RTT,确定所述发送端与接收端之间网络的第三延时;
对所述第一延时、第二延时与第三延时进行统计计算,得到所述发送端与接收端之间网络的网络延时。
本发明的一个实施例中,所述数据包删除模块,具体用于:
当所述最大生成时间差大于所述动态延时阈值与预设时间差之和的情况下,确定所述缓冲区中彼此之间最大生成时间差小于等于所述动态延时阈值的数据包,删除所确定数据包之外的数据包。
本发明的一个实施例中,所述延时确定模块,具体用于:
在发送缓冲区中所缓存数据包的过程中,获得所述发送端与接收端之间网络的RTT;
若所述RTT小于预设往返时间阈值,则确定所述发送端与接收端之间的网络延时。
本发明的一个实施例中,在所述数据包中包含的数据为图像数据的情况下,所述数据包删除模块,具体用于:
当所述缓冲区中缓存数据包之间的最大生成时间差大于所述动态延时阈值时,根据所述动态延时阈值和所缓存数据包的生成时间,确定彼此之间最大生成时间差小于等于所述动态延时阈值的第一数据包;
从所述第一数据包中,去除所包含图像数据与第二数据包所包含图像数据属于同一图像的数据包,其中,所述第二数据包为:所缓存数据包中除所述第一数据包之外的数据包;
删除所述第一数据包之外的数据包。
第三发明,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第一方面任一所述的方法步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面任一所述的方法步骤。
第五方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面任一所述的方法步骤。
本发明实施例有益效果:
本发明实施例提供的数据发送方法,上述发送端在发送缓冲区中所缓存的数据包的过程中,确定发送端与接收端之间的网络延时,按照网络延时与动态延时阈值大小正相关的规则,调整动态延时阈值的大小,当缓冲区中缓存数据包之间的最大生成时间差大于动态延时阈值时,确定缓冲区中彼此之间最大生成时间差小于等于动态延时阈值的数据包,删除所确定数据包之外的数据包,再向接收端发送缓冲区中的数据包。
由以上可见,若缓冲区中包含的数据包之间的最大生成时间差大于动态延时阈值,说明缓冲区中缓存有较长时间还未被发送的数据包,上述发送端通过去除部分数据包,可以减少缓冲区中数据包的数量,使得剩余的数据包之间的最大生成时间差小于等于动态延时阈值。由于部分数据包被去除,需要发送的数据包的数量较少,因此可以在较短的时间内完成剩余的数据包的发送,从而可以降低数据传输过程的延时。并且,上述动态延时阈值与网络延时的大小正相关,因此上述动态延时阈值会与网络的数据传输状况相匹配。若上述网络延时较大,说明网络传输数据较慢,缓冲区中存储的数据包相应的会增多,则可以提高动态延时阈值,减少需要删除的数据包的数量,以减少为了降低延时造成的数据包的损失。相反的,若上述网络延时较小,说明网络传输数据较快,缓冲区中存储的数据包相应的会降低,则可以降低动态延时阈值,以使得延时被控制在较低的水平。另外,上述动态延时阈值小于等于预设最大延时,因此数据传输过程的延时不会超过预设最大延时,延时总体被控制在较低的水平。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的第一种数据发送方法的流程示意图;
图2为本发明实施例提供的第二种数据发送方法的流程示意图;
图3为本发明实施例提供的第三种数据发送方法的流程示意图;
图4为本发明实施例提供的第四种数据发送方法的流程示意图;
图5为本发明实施例提供的第五种数据发送方法的流程示意图;
图6为本发明实施例提供的第一种数据发送装置的结构示意图;
图7为本发明实施例提供的第二种数据发送装置的结构示意图;
图8为本发明实施例提供的第三种数据发送装置的结构示意图;
图9为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本发明保护的范围。
由于现有技术中缓冲区中缓存较多待发送的数据包的情况下,数据传输过程的延时较高,为了降低数据传输过程的延时,本发明实施例提供了一种数据发送方法及装置。
本发明实施例提供了一种数据发送方法,上述方法包括:
在发送缓冲区中缓存数据包的过程中,确定上述发送端与接收端之间的网络延时。
按照上述网络延时与动态延时阈值大小正相关的规则,调整上述动态延时阈值的大小,其中,上述动态延时阈值小于等于预设最大延时。
当上述缓冲区中缓存数据包之间的最大生成时间差大于上述动态延时阈值时,确定上述缓冲区中彼此之间最大生成时间差小于等于上述动态延时阈值的数据包,删除所确定数据包之外的数据包。
向上述接收端发送上述缓冲区中的数据包。
由以上可见,若缓冲区中包含的数据包之间的最大生成时间差大于动态延时阈值,说明缓冲区中缓存有较长时间还未被发送的数据包,上述发送端通过去除部分数据包,可以减少缓冲区中数据包的数量,使得剩余的数据包之间的最大生成时间差小于等于动态延时阈值。由于部分数据包被去除,需要发送的数据包的数量较少,因此可以在较短的时间内完成剩余的数据包的发送,从而可以降低数据传输过程的延时。并且,上述动态延时阈值与网络延时的大小正相关,因此上述动态延时阈值会与网络的数据传输状况相匹配。若上述网络延时较大,说明网络传输数据较慢,缓冲区中存储的数据包相应的会增多,则可以提高动态延时阈值,减少需要删除的数据包的数量,以减少为了降低延时造成的数据包的损失。相反的,若上述网络延时较小,说明网络传输数据较快,缓冲区中存储的数据包相应的会降低,则可以降低动态延时阈值,以使得延时被控制在较低的水平。另外,上述动态延时阈值小于等于预设最大延时,因此数据传输过程的延时不会超过预设最大延时,延时总体被控制在较低的水平。
参见图1,为本发明实施例提供的第一种数据发送方法的流程示意图,上述方法包括以下步骤S101-S104。
具体的,本发明实施例的执行主体可以为网络中发送数据包的发送端。
S101:在发送缓冲区中缓存数据包的过程中,确定上述发送端与接收端之间的网络延时。
具体的,上述缓冲区用于存储还未发送的数据包,上述缓冲区可以以队列的形式缓存数据包,每当发送端获得数据包,便可以将所获得的数据包按照生成时间插入至该数据包所对应的位置。在队列中位于所插入位置之前的数据包的生成时间早于该数据包的生成时间,位于所插入位置之后的数据包的生成时间晚于该数据包的生成时间。也可以直接将数据包插入上述队列的尾部,再按照生成时间越早的数据包越接近队列首部的顺序,对队列中包含的数据包进行排序。因此理论上位于队列首部的数据包的生成时间最早,位于队列尾部的数据包的生成时间最晚。
本发明的一个实施例中,可以根据上述所缓存数据包中携带的生成时间信息确定上述所缓存数据包的生成时间。在上述缓冲区以队列的形式缓存数据包的情况下,上述发送端可以根据各个数据包携带的生成时间信息表示的生成时间,向队列中插入各个数据包。
每当发送端发送数据包,便可以按照从队列首到队列尾的顺序依次发送各个数据包,理论上发送端可以按照上述数据包的生成时间从先到后的顺序依次发送各个数据包。
另外,上述缓冲区中所缓存数据包可以是上述发送端生成的数据包,也可以是上述发送端接收到的其他设备发送的数据包。
例如,上述发送端可以是直播服务器,则主播所使用的直播设备可以将数据包发送至上述直播服务器,上述直播服务器接收到数据包之后,可以将数据包缓存至上述缓存区中,并向用户所使用的播放设备发送上述数据包。
因此上述直播设备可以作为上述发送端,则上述数据包为发送端生成的数据包,上述直播服务器为上述接收端。
上述直播服务器也可以作为上述发送端,则上述数据包为上述发送端接收到的数据包,上述播放设备可以作为上述接收端。
在上述直播设备作为发送端采用本发明实施例提供的数据发送方法发送数据包的情况下,上述直播服务器可以采用本发明实施例提供的数据发送方法或其他方法发送数据包。同样的,在上述直播服务器作为发送端采用本发明实施例提供的数据发送方法发送数据包的情况下,上述直播设备可以采用本发明实施例提供的数据发送方法或其他方法发送数据包。
例如,上述其他方法可以为:基于现有技术中的WebRTC(Web Real-TimeCommunication,网页即时通信)协议、RTMP(Real Time Messaging Protocol,实时消息传输协议)或其他协议发送数据包,本发明实施例对此不进行限定。
本发明的一个实施例中,由于发送端与接收端之间的网络延时受到发送端与接收端之间的网络传输速度的影响,网络传输速度往往是不断发生变化的,因此每经过预设时长,便可以周期性地确定一次网络延时,使得上述发送端可以实时确定上述发送端与接收端之间网络的网络延时。例如,若上述发送端与接收端之间发生网络抖动等情况,会对网络传输速度造成影响,进而导致上述网络延时实时发生变化。上述预设时长可以为10ms、30ms、50ms等。
具体的,上述接收端在接收到发送端发送的数据包之后,可以向上述发送端反馈确认数据包,上述确认数据包中可以包含上述接收端接收到数据包的接收时间,上述发送端在接收到上述确认数据包之后,可以根据上述接收时间以及自身发送数据包的发送时间计算得到数据包由发送端发送至接收端的所需时长。可以计算各个数据包对应的所需时长的平均值,作为上述网络延时。
其中,用于计算网络延时的过程中,所使用的所需时长对应的数据包可以为预设时长内发送端发送的数据包。
具体的,也可以通过步骤A-步骤B计算得到上述网络延时,在此暂不详述。
S102:按照上述网络延时与动态延时阈值大小正相关的规则,调整上述动态延时阈值的大小。
其中,上述动态延时阈值小于等于预设最大延时,例如,上述预设最大延时可以为100ms、200ms等。
本发明的一个实施例中,可以按照上述网络延时与动态延时阈值大小正相关的规则,设置网络延时与动态延时阈值之间的第一对应关系,则可以直接根据上述第一对应关系确定网络延时对应的动态延时阈值。
其中,上述第一对应关系可以为线型关系或其他关系。
本发明的另一个实施例中,可以比较上述网络延时与当前的动态延时阈值,若上述网络延时大于当前的动态延时阈值,则可以提高上述动态延时阈值,若上述网络延时小于当前的动态延时阈值,则可以降低上述动态延时阈值。
具体的,每一次调整上述动态延时阈值时,所调整的幅度为预设幅度,例如,上述预设幅度可以为10ms、20ms等。
另外,若上述动态延时阈值降低到过小的水平,会使得发送数据包的过程中被删除的数据包可能较多,造成较大的数据包损失。因此上述动态延时阈值可以大于等于预设最小延时,例如,上述预设最小延时可以为10ms、20ms等。
S103:当上述缓冲区中缓存数据包之间的最大生成时间差大于上述动态延时阈值时,确定上述缓冲区中彼此之间最大生成时间差小于等于上述动态延时阈值的数据包,删除所确定数据包之外的数据包。
本发明的一个实施例中,若数据包按照生成时间越早越靠近队首的规则存储于队列中的情况下,可以计算位于队列尾部的数据包的生成时间与位于队列首部的数据包的生成时间之间的时间差,作为所缓存数据包之间的最大生成时间差。
另外,也可以分别确定上述缓冲区中各个所缓存数据包的生成时间,确定所缓存数据包的最早生成时间与最晚生成时间,计算上述最晚生成时间与最早生成时间之间的时间差,作为所缓存数据包之间的最大生成时间差。
具体的,为了减少所删除的数据包的数量,可以按照优先保留生成时间最晚或最早的数据包的原则,依次确定各个数据包,直至所确定的数据包之间的最大生成时间差小于等于且最接近于上述动态延时阈值。则在上述缓冲区以队列的形式缓存数据包的情况下,可以按照优先确定位于队尾或队首的数据包的原则,依次确定各个数据包。
另外,由于在删除数据包的过程中上述发送端依旧在向上述接收端发送缓冲区中所缓存数据包,而上述发送端往往按照数据包的生成时间由早到晚的顺序依次发送各个数据包,因此生成时间较早的数据包往往会在较短的时间内完成发送,相反的生成时间较晚的数据包还需要在缓冲区中缓存较长时间才能被发送,因此优选的,可以优先确定生成时间较早的数据包,也就是优先删除生成时间较晚的数据包。
再者,也可以随机确定上述缓冲区中所缓存的、彼此之间最大生成时间差小于等于上述动态延时阈值的数据包。
本发明的一个实施例中,可以直接删除所确定的数据包之外的数据包,也可以将上述数据包移出缓冲区,移动至其他位置进行存储。
S104:向上述接收端发送上述缓冲区中的数据包。
本发明的一个实施例中,上述发送端可以按照生成时间由早到晚的顺序依次发送各个剩余数据包。
另外,上述发送端与接收端之间可以基于UDP(User Datagram Protocol,用户数据报协议)进行数据传输,由于上述UDP为无连接协议,因此可以缩短上述发送端与接收端之间建立数据连接所需的时间,进一步缩短上述数据传输过程的延时。
上述发送端与接收端之间也可以基于其他传输层协议进行数据传输,本发明实施例对此不进行限定。
再者,在上述发送端与接收端之间基于UDP进行数据传输的情况下,若在数据传输的过程中出现丢包的情况,基于UDP上述发送端需要对发生丢包的数据包进行重传。因此会导致接收端接收到数据包的顺序与数据包的生成顺序不同,接收端可以依据数据包的生成时间对所接收到的数据包按照生成时间由早到晚的顺序进行排序,再将数据包发送至应用层,从而保证应用层接收到的数据包的顺序与数据包生成时间的顺序相同。
由以上可见,若缓冲区中包含的数据包之间的最大生成时间差大于动态延时阈值,说明缓冲区中缓存有较长时间还未被发送的数据包,上述发送端通过去除部分数据包,可以减少缓冲区中数据包的数量,使得剩余的数据包之间的最大生成时间差小于等于动态延时阈值。由于部分数据包被去除,需要发送的数据包的数量较少,因此可以在较短的时间内完成剩余的数据包的发送,从而可以降低数据传输过程的延时。并且,上述动态延时阈值与网络延时的大小正相关,因此上述动态延时阈值会与网络的数据传输状况相匹配。若上述网络延时较大,说明网络传输数据较慢,缓冲区中存储的数据包相应的会增多,则可以提高动态延时阈值,减少需要删除的数据包的数量,以减少为了降低延时造成的数据包的损失。相反的,若上述网络延时较小,说明网络传输数据较快,缓冲区中存储的数据包相应的会降低,则可以降低动态延时阈值,以使得延时被控制在较低的水平。另外,上述动态延时阈值小于等于预设最大延时,因此数据传输过程的延时不会超过预设最大延时,延时总体被控制在较低的水平。
此外,由于通过本发明实施例可以将从发送端到接收端的数据传输过程的延时控制在较低的水平,因此通过本发明实施例提供的方案进行数据传输可以被称为基于LRT(Low Latency Realtime Protocol,低延时协议)进行数据传输。
本发明的一个实施例中,可以通过以下步骤A-步骤B确定上述网络延时。
步骤A:获得上述发送端与接收端之间网络的网络信息。
其中,上述网络信息中包括丢包率、网络带宽、RTT(Round-trip time,往返时延)中的至少一种。
具体的,若每经过预设时长确定一次网络延时,则上述丢包率可以是上述预设时长内上述发送端与接收端之间网络的平均丢包率。上述网络带宽可以是上述预设时长内上述发送端与接收端之间网络的平均网络带宽。上述RTT可以是上述预设时长内上述发送端与接收端之间网络的平均RTT。
步骤B:根据上述网络信息,计算上述发送端与接收端之间网络的网络延时。
本发明的一个实施例中,可以分别按照各项网络信息分别计算子网络延时,再计算子网络延时的平均值、加权平均值或方差作为上述网络延时。
具体的,在上述网络信息中包含上述丢包率、网络带宽与RTT三种信息的情况下,可以通过以下步骤B1-步骤B4计算上述网络延时。
步骤B1:根据上述丢包率,确定上述发送端与接收端之间网络的第一延时。
具体的,由于上述丢包率越高,说明上述发送端与接收端之间网络的数据传输质量越差,从而导致上述网络的延时往往较高。因此可以按照丢包率越高第一延时越大的规则,预设上述丢包率与第一延时之间的第二对应关系,从而根据上述丢包率确定上述第一延时。
例如,上述第一对应关系可以为丢包率20%对应第一延时200ms,丢包率30%对应第一延时400ms等。
步骤B2:根据上述网络带宽,确定上述发送端与接收端之间网络的第二延时。
具体的,理论上上述网络带宽越大,网络的数据传输速度越高,所以网络的延时往往越低,因此可以按照网络带宽越大第二延时越小的规则,预设上述网络带宽与第二延时之间的第三对应关系,从而根据上述网络带宽确定上述第二延时。
例如,上述第二对应关系可以为网络带宽5Mbps对应第二延时500ms,网络带宽10Mbps对应第二延时300ms等。
步骤B3:根据上述RTT,确定上述发送端与接收端之间网络的第三延时。
具体的,由于上述RTT表示从上述发送端发送数据包开始,到发送端接收到接收端反馈的确认数据包为止所需的时间,其中包括数据包从发送端发送至接收端所需的时间,以及确认数据包从接收端发送至发送端所需的时间,因此可以直接将上述RTT作为上述第三延时。
也可以将上述RTT除以2,近似得到上述发送端与接收端之间单向发送数据包所需的时间,作为上述第三延时。
另外,理论上上述RTT越小,网络的数据传输速度越高,所以网络的延时往往越小,因此可以按照RTT越小第三延时越小的规则,预设上述RTT与第三延时之间的第四对应关系,从而根据上述RTT确定上述第三延时。
例如,上述第三对应关系可以为RTT800ms对应第三延时300ms,RTT1s对应第三延时400ms等。
步骤B4:对上述第一延时、第二延时与第三延时进行统计计算,得到上述发送端与接收端之间网络的网络延时。
具体的,可以计算上述第一延时、第二延时与第三延时的平均值、加权平均值、方差或加权方差,得到上述网络延时。
其中,在计算加权平均值或加权方差得到上述网络延时的情况下,上述第一延时、第二延时与第三延时的权重可以为预设权重。
本发明的另一个实施例中,在上述网络信息中仅包含丢包率的情况下,可以通过上述步骤B1确定得到第一延时作为上述网络延时。
在上述网络信息中仅包含网络带宽的情况下,可以通过上述步骤B2确定得到第二延时作为上述网络延时。
在上述网络信息中仅包含RTT的情况下,可以通过上述步骤B3得到第三延时作为上述网络延时。
在上述网络信息中包含丢包率与网络带宽的情况下,可以通过上述步骤B1与步骤B2分别确定得到第一延时与第二延时,计算第一延时与第二延时的平均值、加权平均值、方差或加权方差得到上述网络延时。
在上述网络信息中包含丢包率与RTT的情况下,可以通过上述步骤B1与步骤B3分别确定得到第一延时与第三延时,计算第一延时与第三延时的平均值、加权平均值、方差或加权方差得到上述网络延时。
在上述网络信息中包含网络带宽与RTT的情况下,可以通过上述步骤B2与步骤B3分别确定得到第二延时与第三延时,计算第二延时与第三延时的平均值、加权平均值、方差或加权方差得到上述网络延时。
参见图2,为本发明实施例提供的第二种数据发送方法的流程示意图,与前述图1所示的实施例相比,上述步骤S104可以通过以下步骤S104A-S104B实现。
S104A:按照网络延时越大发送速率越小的规则,根据上述网络延时确定数据包的发送速率。
由于网络延时越大说明上述发送端与接收端之间网络的网络质量越差,数据发送速率越慢,因此若上述发送端发送数据包的发送速率过大,发送端与接收端之间的网络无法在短时间内将发送端发送的数据包传输至上述接收端,从而导致数据传输过程的延时较大。因此在上述网络延时较大的情况下,上述发送端可以减小发送速率。
本发明的一个实施例中,可以按照网络延时越大发送速率越小的规则,预设上述网络延时与发送速率之间的第五对应关系,则可以依据上述第五对应关系查找到上述网络延时对应的发送速率。
本发明的另一个实施例中,也可以将本次计算得到的网络延时与上一次计算得到的历史网络延时进行对比,若上述网络延时小于历史网络延时,说明上述发送端与接收端之间网络的数据传输速率提高,则可以在当前的发送速率的基础上,提高上述发送速率。另外,也可以在上述网络延时小于上述历史网络延,且上述历史网络延时与上述网络延时之间的延时差大于第一动态延时阈值差的情况下,提高上述发送速率。例如,上述第一动态延时阈值差可以为50ms、100ms等。
具体的,可以在当前的发送速率的基础上,提高第一预设速率差。上述第一预设速率差为正值。例如,上述第一预设速率差可以为1Mbps、0.5Mbps等。
否则,若上述网络延时大于历史网络延时,说明上述发送端与接收端之间网络的数据传输速率降低,则可以在当前的发送速率的基础上,降低上述发送速率。另外,也可以在上述网络延时大于上述历史网络延,且上述网络延时与上述历史网络延时之间的延时差大于第二动态延时阈值差的情况下,降低上述发送速率。上述第二动态延时阈值差可以与第一动态延时阈值差相同,也可以不同。例如,上述第一动态延时阈值差可以为80ms、100ms等。
具体的,可以在当前的发送速率的基础上,降低第二预设速率差。上述第二预设速率差为正值,上述第二预设速率差可以与上述第一预设速率差相同,也可以不同。例如,上述第二预设速率差可以为1Mbps、1.5Mbps等。
本发明的又一个实施例中,可以比较上述网络延时与上述最大生成时间差之间的大小关系,若上述网络延时大于上述最大生成时间差,则可以在当前的发送速率的基础上,降低上述发送速率。另外,也可以在上述网络延时大于上述最大生成时间差,且上述网络延时与上述最大生成时间差之间的延时差大于第三动态延时阈值差的情况下,降低上述发送速率。例如,上述第三动态延时阈值差可以为80ms、100ms等。
具体的,可以在当前的发送速率的基础上,降低第三预设速率差。上述第三预设速率差为正值。例如,上述第三预设速率差可以为1Mbps、1.5Mbps等。
否则,若上述网络延时小于上述最大生成时间差,则可以在当前的发送速率的基础上,提高上述发送速率。另外,也可以在上述网络延时小于上述最大生成时间差,且上述最大生成时间差与上述网络延时之间的延时差大于第四动态延时阈值差的情况下,提高上述发送速率。上述第四动态延时阈值差与第三动态延时阈值差可以相同也可以不同。例如,上述第四动态延时阈值差可以为50ms、100ms等。
具体的,可以在当前的发送速率的基础上,降低第三预设速率差。上述第三预设速率差为正值。例如,上述第三预设速率差可以为0.5Mbps、1.5Mbps等。
S104B:按照上述发送速率,向上述接收端发送上述缓冲区中的数据包。
本发明的一个实施例中,上述步骤S104B与前述步骤S104相似,本发明实施例对此不再赘述。
由以上可见,若上述发送端与接收端之间网络的网络延时较大,说明上述网络的网络质量较差,上述网络难以在较短时间内将发送端发送的数据包传输至上述接收端,则会导致上述数据包在传输过程中延时较大。因此在网络延时较大的情况下,发送端通过降低发送剩余数据包的发送速率,可以降低网络需要传输的数据包的数据量,从而可以在网络质量较差的情况下,降低数据包在传输过程中的延时。而在网络延时较小的情况下,上述网络的网络质量较好,发送端通过提高发送剩余数据包的发送速率,可以降低剩余数据包在缓冲区缓存的延时,使得剩余数据包可以在较短的时间内发送至上述接收端。
参见图3,为本发明实施例提供的第三种数据发送方法的流程示意图,与前述图1所示的实施例相比,上述步骤S103可以通过以下步骤S103A实现。
S103A:当上述最大生成时间差大于上述动态延时阈值与预设时间差之和的情况下,确定上述缓冲区中彼此之间最大生成时间差小于等于上述动态延时阈值的数据包,删除所确定数据包之外的数据包。
具体的,上述预设时间差可以为固定值,如50ms、100ms等。也可以为上述预设最大延时乘以预设比例得到的值,如上述预设比例可以为10%,则在上述预设最大延时为500ms的情况下,上述预设时间差可以为50ms。
若上述最大生成时间差大于动态延时阈值,但不大于上述动态延时阈值与预设时间差之和,则可以认为上述最大生成时间差与上述动态延时阈值之间的差距较小,上述缓冲区中所缓存数据包在上述缓冲区中缓存的时间还未过长。由于上述发送端与接收端之间网络质量会不断的发生变化,因此若上述网络的网络质量提升,数据传输速度加快,上述发送端的发送速率加大,发送端可以在短时间内发送缓冲区中较多的数据包,则上述最大生成时间差会相应的下降,可能会下降至小于上述动态延时阈值的水平。因此若上述最大生成时间差大于动态延时阈值,但不大于上述动态延时阈值与预设时间差之和,可以暂时不删除数据包。
由以上可见,若上述最大生成时间差不大于动态延时阈值与预设时间差之和,则可以认为在不删除数据包的情况下,上述最大生成时间差也可能下降至上述动态延时阈值之下,上述缓冲区中所缓存数据包之间的最大生成时间差在可控范围内。只有在上述最大生成时间差大于等于上述动态延时阈值与预设时间差之和的情况下才删除上述缓冲区中的数据包。因此在通过本发明实施例降低数据传输过程的延时的情况下,所删除的部分数据包的数量较少,可以降低在传输数据的过程中数据包的损失。
参见图4,为本发明实施例提供的第四种数据发送方法的流程示意图,与前述图1所示的实施例相比,上述步骤S101可以通过以下步骤S101A-S101B实现。
S101A:在发送缓冲区中所缓存数据包的过程中,获得上述发送端与接收端之间网络的RTT。
具体的,获得上述RTT的方式与前述步骤B3所示的方法相似,本发明实施例不再赘述。
S101B:若上述RTT小于预设往返时间阈值,则确定上述发送端与接收端之间的网络延时。
其中,上述预设往返时间阈值可以为300ms、500ms等。
也就是只有在上述RTT较小,即上述发送端与接收端之间网络的网络质量较好,数据传输速率较快的情况下,才执行本发明实施例所示的步骤,否则结束进程。
由以上可见,若上述发送端与接收端之间网络的RTT较大,即上述网络的网络质量较差,数据传输速率较慢,则会造成上述发送端中缓冲区内所缓存数据包的数量较多,数据包需要在缓冲区中缓存较长时间才会被发送。也就是上述缓冲区中所缓存数据包之间的最大生成时间差较大,若执行本发明实施例提供的方案,则需要删除较多数据包,导致数据包在数据传输的过程中损失较大。因此仅在上述RTT小于预设往返延时的情况下,才执行本发明实施例提供的方案,可以降低数据包在数据传输过程中的损失。
参见图5,为本发明实施例提供的第五种数据发送方法的流程示意图,与前述图1所示的实施例相比,在上述数据包中包含的数据为图像数据的情况下,上述步骤S103B-S103D实现。
S103B:根据上述动态延时阈值和所缓存数据包的生成时间,确定彼此之间最大生成时间差小于等于上述动态延时阈值的第一数据包。
本发明的一个实施例中,上述步骤S103B与前述步骤S103中确定数据包的过程相似,本发明实施例对此不再赘述。
S103C:从上述第一数据包中,去除所包含图像数据与第二数据包所包含图像数据属于同一图像的数据包。
其中,上述第二数据包为:所缓存数据包中除上述第一数据包之外的数据包。
具体的,由于每一数据包中包含的数据的数据量较小,因此在传输图像数据时,一张图像对应的完整图像数据往往需要由多个数据包分别进行传输,也就是多个数据包中包含的数据能够组合成一张完整图像的图像数据。其中,每一数据包中可以包含所对应图像的图像标签,因此包含图像数据属于同一图像的数据包中包含的图像标签相同,因此可以在第一数据包中去除与第二数据包包含的图像标签相同的数据包。
S103D:删除上述第一数据包之外的数据包。
本发明的一个实施例中,上述步骤S103D与前述步骤S103中删除数据包的过程相似,本发明实施例对此不再赘述。
由以上可见,在删除缓冲区中所缓存数据包的过程中,若上述所缓存数据包中包含的数据是图像数据,则将同一图像对应的数据包一并删除,因此上述发送端发送给接收端的数据包中包含的数据合并之后可以得到完整的图像数据,从而可以防止上述接收端仅接收到图像的部分图像数据,导致上述接收端在对接收到的数据包中包含的数据进行数据处理之后得到的图像为不清晰或乱码的图像。
与前述数据发送方法相对应,本发明实施例还提供了一种数据发送装置。
参见图6,为本发明实施例提供的第一种数据发送装置的结构示意图,上述装置包括:
延时确定模块601,用于在发送缓冲区中缓存数据包的过程中,确定所述发送端与接收端之间的网络延时;
阈值调整模块602,用于按照所述网络延时与动态延时阈值大小正相关的规则,调整所述动态延时阈值的大小,其中,所述动态延时阈值小于等于预设最大延时;
数据包删除模块603,用于当所述缓冲区中缓存数据包之间的最大生成时间差大于所述动态延时阈值时,确定所述缓冲区中彼此之间最大生成时间差小于等于所述动态延时阈值的数据包,删除所确定数据包之外的数据包;
数据包发送模块604,用于向所述接收端发送所述缓冲区中数据包。
由以上可见,若缓冲区中包含的数据包之间的最大生成时间差大于动态延时阈值,说明缓冲区中缓存有较长时间还未被发送的数据包,上述发送端通过去除部分数据包,可以减少缓冲区中数据包的数量,使得剩余的数据包之间的最大生成时间差小于等于动态延时阈值。由于部分数据包被去除,需要发送的数据包的数量较少,因此可以在较短的时间内完成剩余的数据包的发送,从而可以降低数据传输过程的延时。并且,上述动态延时阈值与网络延时的大小正相关,因此上述动态延时阈值会与网络的数据传输状况相匹配。若上述网络延时较大,说明网络传输数据较慢,缓冲区中存储的数据包相应的会增多,则可以提高动态延时阈值,减少需要删除的数据包的数量,以减少为了降低延时造成的数据包的损失。相反的,若上述网络延时较小,说明网络传输数据较快,缓冲区中存储的数据包相应的会降低,则可以降低动态延时阈值,以使得延时被控制在较低的水平。另外,上述动态延时阈值小于等于预设最大延时,因此数据传输过程的延时不会超过预设最大延时,延时总体被控制在较低的水平。
参见图7,为本发明实施例提供的第二种数据发送装置的结构示意图,与前述图6所示的实施例相比,上述数据包发送模块604,包括:
速率确定子模块604A,用于按照网络延时越大发送速率越小的规则,根据所述网络延时确定数据包的发送速率;
数据包发送子模块604B,用于按照所述发送速率,向所述接收端发送所述缓冲区中的数据包。
由以上可见,若上述发送端与接收端之间网络的网络延时较大,说明上述网络的网络质量较差,上述网络难以在较短时间内将发送端发送的数据包传输至上述接收端,则会导致上述数据包在传输过程中延时较大。因此在网络延时较大的情况下,发送端通过降低发送剩余数据包的发送速率,可以降低网络需要传输的数据包的数据量,从而可以在网络质量较差的情况下,降低数据包在传输过程中的延时。而在网络延时较小的情况下,上述网络的网络质量较好,发送端通过提高发送剩余数据包的发送速率,可以降低剩余数据包在缓冲区缓存的延时,使得剩余数据包可以在较短的时间内发送至上述接收端。
参见图8,为本发明实施例提供的第三种数据发送装置的结构示意图,与前述图6所示的实施例相比,上述延时确定模块601,包括:
信息获得子模块601A,用于在发送缓冲区中缓存数据包的过程中,获得所述发送端与接收端之间网络的网络信息,其中,所述网络信息中包括丢包率、网络带宽、RTT中的至少一种;
延时计算子模块601B,用于根据所述网络信息,计算所述发送端与接收端之间网络的网络延时。
本发明的一个实施例中,所述网络信息包括丢包率、网络带宽以及RTT三种信息,上述延时计算子模块601B,具体用于:
根据所述丢包率,确定所述发送端与接收端之间网络的第一延时;
根据所述网络带宽,确定所述发送端与接收端之间网络的第二延时;
根据所述RTT,确定所述发送端与接收端之间网络的第三延时;
对所述第一延时、第二延时与第三延时进行统计计算,得到所述发送端与接收端之间网络的网络延时。
本发明的一个实施例中,上述数据包删除模块603,具体用于:
当所述最大生成时间差大于所述动态延时阈值与预设时间差之和的情况下,确定所述缓冲区中彼此之间最大生成时间差小于等于所述动态延时阈值的数据包,删除所确定数据包之外的数据包。
由以上可见,若上述最大生成时间差不大于动态延时阈值与预设时间差之和,则可以认为在不删除数据包的情况下,上述最大生成时间差也可能下降至上述动态延时阈值之下,上述缓冲区中所缓存数据包之间的最大生成时间差在可控范围内。只有在上述最大生成时间差大于等于上述动态延时阈值与预设时间差之和的情况下才删除上述缓冲区中的数据包。因此在通过本发明实施例降低数据传输过程的延时的情况下,所删除的部分数据包的数量较少,可以降低在传输数据的过程中数据包的损失。
本发明的一个实施例中,上述延时确定模块601,具体用于:
在发送缓冲区中所缓存数据包的过程中,获得所述发送端与接收端之间网络的RTT;
若所述RTT小于预设往返时间阈值,则确定所述发送端与接收端之间的网络延时。
由以上可见,若上述发送端与接收端之间网络的RTT较大,即上述网络的网络质量较差,数据传输速率较慢,则会造成上述发送端中缓冲区内所缓存数据包的数量较多,数据包需要在缓冲区中缓存较长时间才会被发送。也就是上述缓冲区中所缓存数据包之间的最大生成时间差较大,若执行本发明实施例提供的方案,则需要删除较多数据包,导致数据包在数据传输的过程中损失较大。因此仅在上述RTT小于预设往返延时的情况下,才执行本发明实施例提供的方案,可以降低数据包在数据传输过程中的损失。
本发明的一个实施例中,在所述数据包中包含的数据为图像数据的情况下,所述数据包删除模块603,具体用于:
当所述缓冲区中缓存数据包之间的最大生成时间差大于所述动态延时阈值时,根据所述动态延时阈值和所缓存数据包的生成时间,确定彼此之间最大生成时间差小于等于所述动态延时阈值的第一数据包;
从所述第一数据包中,去除所包含图像数据与第二数据包所包含图像数据属于同一图像的数据包,其中,所述第二数据包为:所缓存数据包中除所述第一数据包之外的数据包;
删除所述第一数据包之外的数据包。
由以上可见,在删除缓冲区中所缓存数据包的过程中,若上述所缓存数据包中包含的数据是图像数据,则将同一图像对应的数据包一并删除,因此上述发送端发送给接收端的数据包中包含的数据合并之后可以得到完整的图像数据,从而可以防止上述接收端仅接收到图像的部分图像数据,导致上述接收端在对接收到的数据包中包含的数据进行数据处理之后得到的图像为不清晰或乱码的图像。
本发明实施例还提供了一种电子设备,作为发送端如图9所示,包括处理器901、通信接口902、存储器903和通信总线904,其中,处理器901,通信接口902,存储器903通过通信总线904完成相互间的通信,
存储器903,用于存放计算机程序;
处理器901,用于执行存储器903上所存放的程序时,实现上述数据发送方法任一所述的方法步骤。
应用本发明实施例提供的电子设备发送数据时,若缓冲区中包含的数据包之间的最大生成时间差大于动态延时阈值,说明缓冲区中缓存有较长时间还未被发送的数据包,上述发送端通过去除部分数据包,可以减少缓冲区中数据包的数量,使得剩余的数据包之间的最大生成时间差小于等于动态延时阈值。由于部分数据包被去除,需要发送的数据包的数量较少,因此可以在较短的时间内完成剩余的数据包的发送,从而可以降低数据传输过程的延时。并且,上述动态延时阈值与网络延时的大小正相关,因此上述动态延时阈值会与网络的数据传输状况相匹配。若上述网络延时较大,说明网络传输数据较慢,缓冲区中存储的数据包相应的会增多,则可以提高动态延时阈值,减少需要删除的数据包的数量,以减少为了降低延时造成的数据包的损失。相反的,若上述网络延时较小,说明网络传输数据较快,缓冲区中存储的数据包相应的会降低,则可以降低动态延时阈值,以使得延时被控制在较低的水平。另外,上述动态延时阈值小于等于预设最大延时,因此数据传输过程的延时不会超过预设最大延时,延时总体被控制在较低的水平。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一数据发送方法的步骤。
执行本发明实施例提供的计算机可读存储介质中存储的计算机程序发送数据时,若缓冲区中包含的数据包之间的最大生成时间差大于动态延时阈值,说明缓冲区中缓存有较长时间还未被发送的数据包,上述发送端通过去除部分数据包,可以减少缓冲区中数据包的数量,使得剩余的数据包之间的最大生成时间差小于等于动态延时阈值。由于部分数据包被去除,需要发送的数据包的数量较少,因此可以在较短的时间内完成剩余的数据包的发送,从而可以降低数据传输过程的延时。并且,上述动态延时阈值与网络延时的大小正相关,因此上述动态延时阈值会与网络的数据传输状况相匹配。若上述网络延时较大,说明网络传输数据较慢,缓冲区中存储的数据包相应的会增多,则可以提高动态延时阈值,减少需要删除的数据包的数量,以减少为了降低延时造成的数据包的损失。相反的,若上述网络延时较小,说明网络传输数据较快,缓冲区中存储的数据包相应的会降低,则可以降低动态延时阈值,以使得延时被控制在较低的水平。另外,上述动态延时阈值小于等于预设最大延时,因此数据传输过程的延时不会超过预设最大延时,延时总体被控制在较低的水平。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一数据发送方法。
执行本发明实施例提供的计算机可读存储介质中存储的计算机程序发送数据时,若缓冲区中包含的数据包之间的最大生成时间差大于动态延时阈值,说明缓冲区中缓存有较长时间还未被发送的数据包,上述发送端通过去除部分数据包,可以减少缓冲区中数据包的数量,使得剩余的数据包之间的最大生成时间差小于等于动态延时阈值。由于部分数据包被去除,需要发送的数据包的数量较少,因此可以在较短的时间内完成剩余的数据包的发送,从而可以降低数据传输过程的延时。并且,上述动态延时阈值与网络延时的大小正相关,因此上述动态延时阈值会与网络的数据传输状况相匹配。若上述网络延时较大,说明网络传输数据较慢,缓冲区中存储的数据包相应的会增多,则可以提高动态延时阈值,减少需要删除的数据包的数量,以减少为了降低延时造成的数据包的损失。相反的,若上述网络延时较小,说明网络传输数据较快,缓冲区中存储的数据包相应的会降低,则可以降低动态延时阈值,以使得延时被控制在较低的水平。另外,上述动态延时阈值小于等于预设最大延时,因此数据传输过程的延时不会超过预设最大延时,延时总体被控制在较低的水平。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质和计算机程序产品而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (14)
1.一种数据发送方法,其特征在于,所述方法包括:
在发送缓冲区中缓存数据包的过程中,确定发送端与接收端之间的网络延时;
按照所述网络延时与动态延时阈值大小正相关的规则,调整所述动态延时阈值的大小,其中,所述动态延时阈值小于等于预设最大延时;
当所述缓冲区中缓存数据包之间的最大生成时间差大于所述动态延时阈值时,确定所述缓冲区中彼此之间最大生成时间差小于等于所述动态延时阈值的数据包,删除所确定数据包之外的数据包;
向所述接收端发送所述缓冲区中的数据包;
在所述数据包中包含的数据为图像数据的情况下,所述确定所述缓冲区中彼此之间最大生成时间差小于等于所述动态延时阈值的数据包,删除所确定数据包之外的数据包,包括:
根据所述动态延时阈值和所缓存数据包的生成时间,确定彼此之间最大生成时间差小于等于所述动态延时阈值的第一数据包;
从所述第一数据包中,去除所包含图像数据与第二数据包所包含图像数据属于同一图像的数据包,其中,所述第二数据包为:所缓存数据包中除所述第一数据包之外的数据包;
删除所述第一数据包之外的数据包。
2.根据权利要求1所述的方法,其特征在于,所述向所述接收端发送所述缓冲区中的数据包,包括:
按照网络延时越大发送速率越小的规则,根据所述网络延时确定数据包的发送速率;
按照所述发送速率,向所述接收端发送所述缓冲区中的数据包。
3.根据权利要求1所述的方法,其特征在于,所述确定所述发送端与接收端之间网络的网络延时,包括:
获得所述发送端与接收端之间网络的网络信息,其中,所述网络信息中包括丢包率、网络带宽、往返时延RTT中的至少一种;
根据所述网络信息,计算所述发送端与接收端之间网络的网络延时。
4.根据权利要求3所述的方法,其特征在于,所述网络信息包括丢包率、网络带宽以及RTT三种信息,所述根据所述网络信息,计算所述发送端与接收端之间网络的网络延时,包括:
根据所述丢包率,确定所述发送端与接收端之间网络的第一延时;
根据所述网络带宽,确定所述发送端与接收端之间网络的第二延时;
根据所述RTT,确定所述发送端与接收端之间网络的第三延时;
对所述第一延时、第二延时与第三延时进行统计计算,得到所述发送端与接收端之间网络的网络延时。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述当所述缓冲区中缓存数据包之间的最大生成时间差大于所述动态延时阈值时,确定所述缓冲区中彼此之间最大生成时间差小于等于所述动态延时阈值的数据包,删除所确定数据包之外的数据包,包括:
当所述最大生成时间差大于所述动态延时阈值与预设时间差之和的情况下,确定所述缓冲区中彼此之间最大生成时间差小于等于所述动态延时阈值的数据包,删除所确定数据包之外的数据包。
6.根据权利要求1-4中任一项所述的方法,其特征在于,所述在发送缓冲区中所缓存数据包的过程中,确定所述发送端与接收端之间的网络延时,包括:
在发送缓冲区中所缓存数据包的过程中,获得所述发送端与接收端之间网络的RTT;
若所述RTT小于预设往返时间阈值,则确定所述发送端与接收端之间的网络延时。
7.一种数据发送装置,其特征在于,所述装置包括:
延时确定模块,用于在发送缓冲区中缓存数据包的过程中,确定发送端与接收端之间的网络延时;
阈值调整模块,用于按照所述网络延时与动态延时阈值大小正相关的规则,调整所述动态延时阈值的大小,其中,所述动态延时阈值小于等于预设最大延时;
数据包删除模块,用于当所述缓冲区中缓存数据包之间的最大生成时间差大于所述动态延时阈值时,确定所述缓冲区中彼此之间最大生成时间差小于等于所述动态延时阈值的数据包,删除所确定数据包之外的数据包;
数据包发送模块,用于向所述接收端发送所述缓冲区中的数据包;
在所述数据包中包含的数据为图像数据的情况下,所述数据包删除模块,具体用于:
当所述缓冲区中缓存数据包之间的最大生成时间差大于所述动态延时阈值时,根据所述动态延时阈值和所缓存数据包的生成时间,确定彼此之间最大生成时间差小于等于所述动态延时阈值的第一数据包;
从所述第一数据包中,去除所包含图像数据与第二数据包所包含图像数据属于同一图像的数据包,其中,所述第二数据包为:所缓存数据包中除所述第一数据包之外的数据包;
删除所述第一数据包之外的数据包。
8.根据权利要求7所述的装置,其特征在于,所述数据包发送模块,包括:
速率确定子模块,用于按照网络延时越大发送速率越小的规则,根据所述网络延时确定数据包的发送速率;
数据包发送子模块,用于按照所述发送速率,向所述接收端发送所述缓冲区中的数据包。
9.根据权利要求7所述的装置,其特征在于,所述延时确定模块,包括:
信息获得子模块,用于在发送缓冲区中缓存数据包的过程中,获得所述发送端与接收端之间网络的网络信息,其中,所述网络信息中包括丢包率、网络带宽、RTT中的至少一种;
延时计算子模块,用于根据所述网络信息,计算所述发送端与接收端之间网络的网络延时。
10.根据权利要求9所述的装置,其特征在于,所述网络信息包括丢包率、网络带宽以及RTT三种信息,所述延时计算子模块,具体用于:
根据所述丢包率,确定所述发送端与接收端之间网络的第一延时;
根据所述网络带宽,确定所述发送端与接收端之间网络的第二延时;
根据所述RTT,确定所述发送端与接收端之间网络的第三延时;
对所述第一延时、第二延时与第三延时进行统计计算,得到所述发送端与接收端之间网络的网络延时。
11.根据权利要求7-10中任一项所述的装置,其特征在于,所述数据包删除模块,具体用于:
当所述最大生成时间差大于所述动态延时阈值与预设时间差之和的情况下,确定所述缓冲区中彼此之间最大生成时间差小于等于所述动态延时阈值的数据包,删除所确定数据包之外的数据包。
12.根据权利要求7-10中任一项所述的装置,其特征在于,所述延时确定模块,具体用于:
在发送缓冲区中所缓存数据包的过程中,获得所述发送端与接收端之间网络的RTT;
若所述RTT小于预设往返时间阈值,则确定所述发送端与接收端之间的网络延时。
13.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-6任一所述的方法步骤。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110563738.9A CN113301375B (zh) | 2021-05-24 | 2021-05-24 | 一种数据发送方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110563738.9A CN113301375B (zh) | 2021-05-24 | 2021-05-24 | 一种数据发送方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113301375A CN113301375A (zh) | 2021-08-24 |
CN113301375B true CN113301375B (zh) | 2022-10-14 |
Family
ID=77324106
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110563738.9A Active CN113301375B (zh) | 2021-05-24 | 2021-05-24 | 一种数据发送方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113301375B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115348481B (zh) * | 2022-08-15 | 2023-06-02 | 中国联合网络通信集团有限公司 | 一种数据传输方法、装置、发送器及接收器 |
CN116962734A (zh) * | 2023-07-18 | 2023-10-27 | 广州数字集合科技有限公司 | 直播流多路线传输方法及其装置、设备、介质 |
CN118158117A (zh) * | 2024-05-10 | 2024-06-07 | 山东首瀚信息科技有限公司 | 一种基于工业物联网网关的数据处理方法及系统 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1910939A (zh) * | 2004-01-23 | 2007-02-07 | 日出电讯公司 | 测量抖动的方法和装置 |
CN100421413C (zh) * | 2004-12-28 | 2008-09-24 | 华为技术有限公司 | 一种无线链路控制子层发送缓存大小的调整方法 |
US7675946B2 (en) * | 2005-08-22 | 2010-03-09 | Infosys Technologies, Ltd. | System and method for managing playout time in packet communication network |
CN101114999B (zh) * | 2007-08-26 | 2010-08-04 | 上海华为技术有限公司 | 数据发送控制方法及数据传输设备 |
US9386128B2 (en) * | 2012-03-23 | 2016-07-05 | Qualcomm Incorporated | Delay based active queue management for uplink traffic in user equipment |
US10911359B2 (en) * | 2016-01-07 | 2021-02-02 | Nec Corporation | Transmit data volume control device, method, and recording medium |
CN110290559B (zh) * | 2019-07-10 | 2021-01-26 | 维沃移动通信有限公司 | 一种数据传输方法及终端 |
CN110493131B (zh) * | 2019-09-24 | 2021-06-01 | 大连大学 | 一种sdn架构下的空间信息网络路由策略的设计方法 |
-
2021
- 2021-05-24 CN CN202110563738.9A patent/CN113301375B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113301375A (zh) | 2021-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113301375B (zh) | 一种数据发送方法及装置 | |
US9596281B2 (en) | Transport accelerator implementing request manager and connection manager functionality | |
US9930097B2 (en) | Transport accelerator systems and methods | |
US20180091435A1 (en) | Multiple-speed message channel of messaging system | |
WO2008013651A1 (en) | Glitch-free media streaming | |
CN110830460B (zh) | 一种连接建立方法、装置、电子设备及存储介质 | |
US8448213B2 (en) | Contents distribution system, contents distribution server, contents reproduction terminal, and contents distribution method | |
CN104219286A (zh) | 流媒体处理方法、装置、客户端、cdn节点服务器及终端 | |
CN112104562A (zh) | 拥塞控制方法及装置、通信网络、计算机存储介质 | |
CN109996094A (zh) | 视频播放方法、装置及系统 | |
US9350484B2 (en) | Transport accelerator implementing selective utilization of redundant encoded content data functionality | |
JP2023522895A (ja) | オーディオ及び/又はビデオコンテンツ配信のための方法及びサーバ | |
CN107707594A (zh) | 一种实现按需加速的文件传输方法及装置 | |
JPWO2010041469A1 (ja) | コンテンツ配信システム、コンテンツ配信方法およびコンピュータプログラム | |
CN114268830B (zh) | 云导播同步方法、装置、设备及存储介质 | |
CN115001632A (zh) | 一种信息传输方法、装置、电子设备及可读存储介质 | |
CN104641655A (zh) | 一种终端缓存的方法、终端及服务器 | |
JP4478677B2 (ja) | 通信装置、通信方法およびプログラム | |
CN117676695A (zh) | Tcp传输方法、装置和系统 | |
CN116566919A (zh) | 带宽探测方法、装置、电子设备及存储介质 | |
CN110710220B (zh) | 用于流传输数据的方法和装置 | |
CN113726817B (zh) | 一种流媒体数据的传输方法、装置及介质 | |
CN113301398B (zh) | 信息处理方法及系统、服务端设备、客户端设备 | |
CN109922307B (zh) | 一种多媒体数据传输方法及摄像机 | |
EP3487152A1 (en) | Auctioning the serving and/or caching of a data object |
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 |