CN110830460A - 一种连接建立方法、装置、电子设备及存储介质 - Google Patents
一种连接建立方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN110830460A CN110830460A CN201911025237.4A CN201911025237A CN110830460A CN 110830460 A CN110830460 A CN 110830460A CN 201911025237 A CN201911025237 A CN 201911025237A CN 110830460 A CN110830460 A CN 110830460A
- Authority
- CN
- China
- Prior art keywords
- live broadcast
- connection
- client
- data packet
- broadcast server
- 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
- 238000000034 method Methods 0.000 title claims abstract description 137
- 230000004044 response Effects 0.000 claims abstract description 149
- 238000004891 communication Methods 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 16
- 230000001960 triggered effect Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 abstract description 37
- 230000005540 biological transmission Effects 0.000 description 37
- 238000001514 detection method Methods 0.000 description 26
- 238000010586 diagram Methods 0.000 description 14
- 230000011664 signaling Effects 0.000 description 9
- 230000009471 action Effects 0.000 description 3
- 238000004806 packaging method and process Methods 0.000 description 3
- 238000004904 shortening Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012858 packaging process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
Abstract
本发明实施例提供了一种连接建立方法、装置、电子设备及存储介质。方案如下:客户端在检测到启动直播应用时,向直播服务端发送连接请求,该连接请求包括连接建立对应的全部握手数据包,以使直播服务端根据接收到的连接请求中包括的握手数据包,向客户端发送连接响应,该连接响应包括与每一握手数据包对应的响应数据包,判断在预设时长内是否接收到连接响应,若是,则确定与直播服务端建立连接。通过本发明实施例提供的技术方案,有效的减少了握手的次数,从而减少了连接建立过程的耗时,缩短了视频秒开的时间。
Description
技术领域
本发明涉及互联网技术领域,特别是涉及一种连接建立方法、装置、电子设备及存储介质。
背景技术
在视频直播系统中,用户从打开直播间到视频画面显示的视频秒开过程主要包括客户端与直播服务端间的网络连接建立过程和直播流媒体数据传输过程。
目前,在现有的网络连接过程中,为了保证直播流媒体数据传输的可靠性,客户端和直播服务端至少需要经过三次握手才能建立连接,使得连接建立过程需要耗费较长的时间,尤其是在连接建立过程中发生握手数据包丢失时,连接建立过程的耗时将再次增加,严重影响视频的秒开。
发明内容
本发明实施例的目的在于提供一种连接建立方法、装置、电子设备及存储介质,以减少连接建立过程的耗时,缩短视频秒开的时间。具体技术方案如下:
本发明实施例提供了一种连接建立方法,应用于客户端,所述客户端中安装有直播应用,所述方法包括:
在检测到启动所述直播应用时,向直播服务端发送连接请求,所述连接请求包括连接建立对应的全部握手数据包,以使所述直播服务端根据接收到的连接请求中包括的握手数据包,向所述客户端发送连接响应,所述连接响应包括与每一握手数据包对应的响应数据包;
判断在预设时长内是否接收到所述连接响应;
若是,则确定与所述直播服务端建立连接。
可选的,所述方法还包括:
若在所述预设时长内未接收到所述连接响应,则在所述预设时长后重新向所述直播服务端发送所述连接请求。
可选的,所述方法还包括:
检测用户是否触发针对直播服务端中目标直播视频的数据获取操作;
若触发所述数据获取操作,则向所述直播服务端发送数据获取请求,所述数据获取请求包括所述目标直播视频的标识信息,以使所述直播服务端根据接收到的所述数据获取请求中包括的标识信息,获取所述目标直播视频,并向所述客户端发送包括所述目标直播视频的目标数据包;
检测是否接收到所述目标数据包;
若接收到所述目标数据包,则对所述目标数据包中的目标直播视频进行缓存。
可选的,所述方法还包括:
在确定与所述直播服务端建立连接后,对缓存的目标直播视频进行播放。
可选的,所述方法还包括:
根据接收到的目标数据包的标识信息,确定是否发生数据包丢失;
若是,则向所述直播服务端发送非确认(NACK)包,所述NACK包中包括所述丢失数据包的标识信息,以使所述直播服务器在接收到所述NACK包后,重新向所述客户端重新发送所述丢失数据包。
本发明实施例还提供了一种连接建立方法,应用于直播服务端,所述方法包括:
接收客户端发送的连接请求,所述连接请求是所述客户端在检测到启动安装的直播应用时向所述直播服务端发送的,所述连接请求包括连接建立对应的全部握手数据包;
根据接收到的连接请求中包括的握手数据包,向所述客户端发送连接响应,所述连接响应包括与每一握手数据包对应的响应数据包,以使所述客户端根据接收到的连接响应,确定与所述直播服务器连接建立。
可选的,所述方法还包括:
检测是否接收到所述客户端发送的数据获取请求,所述数据获取请求是所述客户端在检测到用户触发针对直播服务端中目标直播视频的数据获取操作时向所述直播服务端发送的,所述数据获取请求中包括所述目标直播视频的标识信息;
若是,则根据接收到的数据获取请求中包括的标识信息,获取所述目标直播视频;
向所述客户端发送包括所述目标直播视频的目标数据包,以使所述客户端在接收到所述目标数据包后,对所述目标数据包中的目标直播视频进行缓存。
可选的,所述向所述客户端发送包括所述目标直播视频的目标数据包的步骤,包括:
基于所述目标直播视频中的视频关键帧,对所述目标直播视频进行打包,得到目标数据包,并将所述目标数据包发送给所述客户端。
可选的,所述方法还包括:
检测是否接收到所述客户端发送的NACK包;所述NACK包是所述客户端根据接收到的目标数据包的标识信息,确定发生数据包丢失后,向所述直播服务端发送的,所述NACK包中包括所述丢失数据包的标识信息;
若是,则根据接收到的NACK包中的标识信息,重新向所述客户端发送所述丢失数据包。
可选的,所述方法还包括:
在接收到所述客户端发送的NACK包时,按照预设拥塞控制算法,降低所述目标数据包的发送速率。
本发明实施例还提供了一种连接建立装置,应用于客户端,所述客户端中安装有直播应用,所述装置包括:
第一发送模块,用于在检测到启动所述直播应用时,向直播服务端发送连接请求,所述连接请求包括连接建立对应的全部握手数据包,以使所述直播服务端根据接收到的连接请求中包括的握手数据包,向所述客户端发送连接响应,所述连接响应包括与每一握手数据包对应的响应数据包;
判断模块,用于判断在预设时长内是否接收到所述连接响应;
第一确定模块,用于在所述判断模块的判断结果为是时,确定与所述直播服务端建立连接。
可选的,所述装置还包括:
第二发送模块,用于在所述判断模块的判断结果为否时,在所述预设时长后重新向所述直播服务端发送所述连接请求。
可选的,所述装置还包括:
第一检测模块,用于检测用户是否触发针对直播服务端中目标直播视频的数据获取操作;
第三发送模块,用于在所述第一检测模块的检测结果为是时,向所述直播服务端发送数据获取请求,所述数据获取请求包括所述目标直播视频的标识信息,以使所述直播服务端根据接收到的所述数据获取请求中包括的标识信息,获取所述目标直播视频,并向所述客户端发送包括所述目标直播视频的目标数据包;
第二检测模块,用于检测是否接收到所述目标数据包;
缓存模块,用于在所述第二检测模块的检测结果为是时,对所述目标数据包中的目标直播视频进行缓存。
可选的,所述装置还包括:
播放模块,用于在确定与所述直播服务端建立连接后,对缓存的目标直播视频进行播放。
可选的,所述装置还包括:
第二确定模块,用于根据接收到的目标数据包的标识信息,确定是否发生数据包丢失;
第四发送模块,用于在所述第二确定模块的确定结果为是时,向所述直播服务端发送NACK包,所述NACK包中包括所述丢失数据包的标识信息,以使所述直播服务器在接收到所述NACK包后,重新向所述客户端重新发送所述丢失数据包。
本发明实施例还提供了一种连接建立装置,应用于直播服务端,所述装置包括:
接收模块,用于接收客户端发送的连接请求,所述连接请求是所述客户端在检测到启动安装的直播应用时向所述直播服务端发送的,所述连接请求包括连接建立对应的全部握手数据包;
第五发送模块,用于根据接收到的连接请求中包括的握手数据包,向所述客户端发送连接响应,所述连接响应包括与每一握手数据包对应的响应数据包,以使所述客户端根据接收到的连接响应,确定与所述直播服务器连接建立。
可选的,所述装置还包括:
第三检测模块,用于检测是否接收到所述客户端发送的数据获取请求,所述数据获取请求是所述客户端在检测到用户触发针对直播服务端中目标直播视频的数据获取操作时向所述直播服务端发送的,所述数据获取请求中包括所述目标直播视频的标识信息;
获取模块,用于在第三检测模块的检测结果为是时,根据接收到的数据获取请求中包括的标识信息,获取所述目标直播视频;
第六发送模块,用于向所述客户端发送包括所述目标直播视频的目标数据包,以使所述客户端在接收到所述目标数据包后,对所述目标数据包中的目标直播视频进行缓存。
可选的,所述第六发送模块,具体用于基于所述目标直播视频中的视频关键帧,对所述目标直播视频进行打包,得到目标数据包,并将所述目标数据包发送给所述客户端。
可选的,所述装置还包括:
第四检测模块,用于检测是否接收到所述客户端发送的NACK包;所述NACK包是所述客户端根据接收到的目标数据包的标识信息,确定发生数据包丢失后,向所述直播服务端发送的,所述NACK包中包括所述丢失数据包的标识信息;
第七发送模块,用于在所述第四检测模块的检测结果为是时,根据接收到的NACK包中的标识信息,重新向所述客户端发送所述丢失数据包。
可选的,所述装置还包括:
降低模块,用于在所述第四检测模块的检测结果为是时,按照预设拥塞控制算法,降低所述目标数据包的发送速率。
本发明实施例还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一所述的连接建立方法步骤。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的连接建立方法步骤。
本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的连接建立方法。
本发明实施例有益效果:
本发明实施例提供的连接建立方法、装置、电子设备及存储介质,客户端在检测到启动直播应用时,向直播服务端发送连接请求,该连接请求包括连接建立对应的全部握手数据包,以使直播服务端根据接收到的连接请求中包括的握手数据包,向客户端发送连接响应,该连接响应包括与每一握手数据包对应的响应数据包,判断在预设时长内是否接收到连接响应,若是,则确定与直播服务端建立连接。通过本发明实施例提供的技术方案,在客户端与直播服务端建立连接时,由于客户端直接向直播服务端发送的连接请求中包括连接建立对应的全部握手数据包,这使得客户端仅需要向直播服务端发送一次连接请求,直播服务端在接收到该连接请求后也仅仅需要向客户端反馈一次连接响应,即可建立连接,不再需要进行多次握手,有效的减少了握手的次数,从而减少了连接建立过程的耗时,缩短了视频秒开的时间。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有连接建立过程的第一种信令图;
图2为现有连接建立过程的第二种信令图;
图3为本发明实施例提供的连接建立方法的第一种流程示意图;
图4为本发明实施例提供的连接建立方法的第二种流程示意图;
图5为本发明实施例提供的连接建立方法的第三种流程示意图;
图6为本发明实施例提供的连接建立方法的第四种流程示意图;
图7为本发明实施例提供的连接建立方法的第五种流程示意图;
图8为本发明实施例提供的连接建立方法的第六种流程示意图;
图9为本发明实施例提供的连接建立方法的第七种流程示意图;
图10-a为本发明实施例提供的连接建立过程的第一种信令图;
图10-b为本发明实施例提供的连接建立过程的第二种信令图;
图10-c为本发明实施例提供的连接建立过程的第三种信令图;
图10-d为本发明实施例提供的连接建立过程的第四种信令图;
图10-e为本发明实施例提供的连接建立过程的第五种信令图;
图11为本发明实施例提供的连接建立装置的第一种结构示意图;
图12为本发明实施例提供的连接建立装置的第二种结构示意图;
图13为本发明实施例提供的电子设备的第一种结构示意图;
图14为本发明实施例提供的电子设备的第二种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,在视频直播系统中,客户端与直播服务端之间的连接建立过程至少需要经过三次握手才能完成。以图1为例进行说明,图1为现有连接建立过程的第一种信令图。
假设客户端与直播服务端之间采用实时消息传输协议(Real Time MessagingProtocol,RTMP)进行数据传输,也就是客户端和直播服务端之间的数据包传输服从RTMP协议。在连接建立时,客户端需要向直播服务端发送握手数据包C0(以下简称C0),直播服务端只有在接收到C0后才会向客户端反馈响应数据包S0(以下简称S0)。客户端在接收到S0数据包后,将向直播服务端发送握手数据包C1(以下简称C1)。直播服务端只有在接收到C1后才会向客户端反馈响应数据包S1(以下简称S1)。依次类推,进行握手数据包C2(以下简称C2)和响应数据包S2(以下简称S2),以及数据获取请求和目标数据包的传输。客户端只有在接收到直播服务端反馈的S2后,才能确定连接建立完成。其中,上述C0、C1和C2中分别包括连接建立所需的部分握手信息。
在上述过程中,客户端与直播服务端之间需要经过三次握手完成建立连接,即第一次握手为C0的发送与S0的接收,第二次握手为C1的发送和S1的接收,第三次握手为C2的发送与S2的接收。每一次握手需要耗费1个往返时延(Round-Trip Time,RTT),记为1RTT。因此,上述连接建立过程需要耗费3RTT。
在图1所示的连接建立过程中,数据包的传输过程未出现任何丢包现象,但是在实际连接建立过程中,由于网络或硬件设备等多种原因,可能使得数据包传输过程中出现丢包现象,这将使得连接建立耗费的时间增加。为方便理解,以图2为例进行说明,图2为现有连接建立过程的第二种信令图。客户端在第一次向直播服务端发送C1后,若C1丢失,或者直播服务端反馈的S1丢失。此时,客户端将不会接收到S1。此时,客户端可以确定出现丢包现象,需要重新向直播服务端发送C1,即图2中第二个C1的发送。同理,图2所示的客户端在第一次向直播服务端发送C2和数据获取请求后,若客户端仅接收到直播服务端反馈的目标数据包,未接收到S2。此时,客户端可以确定C2或S2丢失,客户端同样需要重新向直播服务端发送C2和数据获取请求,即图2中的第二个C2和第二个数据获取请求的发送。因此,图2所示的连接建立过程至少需要经过5RTT。
由上述可知,在现有连接建立过程中,至少需要经过3RTT才能完成连接的建立,这使得连接建立耗时较多,影响视频秒开。
关于上述图1和图2中数据获取请求和目标数据包的传输过程,具体可参见下文描述,在此不作具体说明。
为了解决现有连接建立过程耗时较多,影响视频秒开的时间的问题,本发明实施例提供了一种连接建立方法。该方法可以应用于任一电子设备,该电子设备可以为连接建立过程中握手数据包的发送端,即上述客户端,也可以为握手数据包的接收端,即上述直播服务端。在此,对该电子设备不作具体限定。在本发明实施例提供的方法中,客户端在检测到启动直播应用时,向直播服务端发送连接请求,该连接请求包括连接建立对应的全部握手数据包,以使直播服务端根据接收到的连接请求中包括的握手数据包,向客户端发送连接响应,该连接响应包括与每一握手数据包对应的响应数据包,判断在预设时长内是否接收到连接响应,若是,则确定与直播服务端建立连接。
通过本发明实施例提供的方法,在客户端与直播服务端建立连接时,由于客户端直接向直播服务端发送的连接请求中包括连接建立对应的全部握手数据包,这使得客户端仅需要向直播服务端发送一次连接请求,直播服务端在接收到该连接请求后也仅仅需要向客户端反馈一次连接响应,即可建立连接,不再需要进行多次握手,有效的减少了握手的次数,从而减少了连接建立过程的耗时,缩短了视频秒开的时间。
下面通过具体的实施例,对本发明实施例进行举例说明。
如图3所示,图3为本发明实施例提供的连接建立方法的第一种流程示意图。该方法应用于客户端,该客户端中安装有直播服务端所对应的直播应用。该方法具体包括以下步骤。
步骤S301,在检测到启动直播应用时,向直播服务端发送连接请求,该连接请求包括连接建立对应的全部握手数据包,以使直播服务端根据接收到的连接请求中包括的握手数据包,向客户端发送连接响应,该连接响应包括与每一握手数据包对应的响应数据包。
在本步骤中,根据客户端与直播服务器端之间的通信协议,客户端可以获取连接建立对应的全部握手数据包。在检测到启动直播应用时,客户端可以向直播服务端发送包括全部握手数据包的连接请求。直播服务端在接收到该连接请求后,可以根据该连接请求中包括的握手数据包,向客户端发送包括与每一握手数据包对应的响应数据包的连接响应。
以上述图1所示的连接建立过程为例,由于客户端与直播服务端之间服从RTMP协议,在客户端启动直播应用时,客户端可以获取连接建立对应的全部握手数据包,即C0、C1和C2,并向直播服务端发送包括C0、C1和C2的连接请求。直播服务端在接收到该连接请求后,可以根据该连接请求中包括的C0、C1和C2,确定对应的S0、S1和S2,从而向客户端反馈包括S0、S1和S2的连接响应。在本发明实施例中,根据客户端与直播服务端之间通信协议的不同,上述连接请求中包括的握手数据包也有所不同,在此,对上述全部握手数据包不作具体限定。
在本发明实施例中,上述连接请求中包括的C0、C1和C2,以及连接响应中包括的S0、S1和S2的数据量相对较小,使得连接请求的数据量和连接响应的数据量不会大于数据包传输过程中应用层进行分包的数据量阈值。因此,在客户端和直播服务端之间在传输上述连接请求和连接响应时,应用层不会对该连接请求和连接响应进行分包处理。也就是连接请求和连接响应可以以一个完整的数据包进行传输,上述连接请求中的C0、C1和C2,以及连接响应中的S0、S1和S2不会出现如图2所示的单个数据包丢失的现象。
一个可选的实施例中,针对上述直播应用的启动,当用户点击客户端中安装的直播应用时,客户端将检测到该直播应用启动。
另一个可选的实施例中,用户可以将客户端中直播应用设置为自启动,也就是当检测到客户端开启时,该客户端中的直播应用也将启动。此时,客户端可以检测到启动直播应用。
步骤S302,判断在预设时长内是否接收到连接响应。若是,则执行步骤S303。
在本步骤中,在发送上述连接请求后,客户端可以在预设时长内实时检测是否接收到直播服务端针对接收到的连接请求所反馈的连接响应。
一个可选的实施例中,上述预设时长可以为客户端和直播服务端之间进行数据包传输的RTT,即1RTT。
另一个可选的实施例中,考虑到网络环境对网络中数据包传输速率的影响,上述预设时长为1RTT和2RTT之间的任一时长,如1.2RTT。
在本发明实施例中,上述预设时长可以根据客户端与直播服务端间数据包传输的RTT、网络环境、以及用户需求等进行设定。在此,对预设时长不作具体限定。
步骤S303,确定与直播服务端建立连接。
在本步骤中,当客户端在上述预设时长内接收到直播服务端针对接收到的连接请求反馈的连接响应时,直播服务端可以根据接收到的连接响应,确定连接建立,也就是确定客户端和直播服务端间已经建立连接。
在本发明实施例中,由于数据包传输过程中,连接请求中的全部握手数据包不会被分包,直播服务端在接收到的连接请求中一定是包括全部的握手数据包的。因此,直播服务端向客户端反馈的连接响应也一定是包括与每一握手数据包对应的响应数据包,且客户端所接收到连接响应也不会被分包。因此,客户端在接收到连接响应后可以直接确定连接建立。
一个可选的实施例中,为了提高连接建立确定的准确性,当客户端在上述预设时长内接收到直播服务端针对接收到的连接请求反馈的连接响应时,客户端可以检测接收到的连接响应中是否包括与每一握手数据包对应的响应数据包。若包括与每一握手数据包对应的响应数据包,则客户端可以确定与直播服务端建立连接。若不包括与每一握手数据包对应的全部响应数据包,则客户端可以确定与直播服务端未建立连接。
以连接响应中包括上述S0、S1和S2为例进行说明,客户端在接收到该连接响应时,可以检测该连接响应中是否包括S0、S1和S2。若包括S0、S1和S2,则客户端可以确定连接建立。若未包括全部的S0、S1和S2,如仅包括S0、S1、S2中的一个或两个,则客户端可以确定与直播服务端未建立连接。
采用图3所示的连接建立方法,在客户端与直播服务端建立连接时,由于客户端直接向直播服务端发送的连接请求中包括连接建立对应的全部握手数据包,这使得客户端仅需要向直播服务端发送一次连接请求,直播服务端在接收到该连接请求后也仅仅需要向客户端反馈一次连接响应,即可建立连接,不再需要进行多次握手,有效的减少了握手的次数,从而减少了连接建立过程的耗时,缩短了视频秒开的时间。
一个可选的实施例中,根据上述图3所示的连接建立方法,本发明实施例还提供了一种连接建立方法。如图4所示,图4为本发明实施例提供的连接建立方法的第二种流程示意图。该方法应用于客户端,具体包括以下步骤。
步骤S401,在检测到启动直播应用时,向直播服务端发送连接请求,该连接请求包括连接建立对应的全部握手数据包,以使直播服务端根据接收到的连接请求中包括的握手数据包,向客户端发送连接响应,该连接响应包括与每一握手数据包对应的响应数据包。
步骤S402,判断在预设时长内是否接收到连接响应。若是,则执行步骤S403。若否,则执行步骤S404。
步骤S403,确定与直播服务端建立连接。
上述步骤S401-步骤S403与上述步骤S301-步骤S303相同。
步骤S404,在预设时长后重新向直播服务端发送连接请求。
在本步骤中,当客户端在上述预设时长内未接收到直播服务端针对接收到的连接请求反馈的连接响应时,客户端可以确定与直播服务端未建立连接。此时,客户端可以在该预设时长后重新向直播服务端发送上述连接请求。
上述客户端在预设时长内未接收到直播服务端针对接收到的连接请求反馈的连接响应,具体可以包括以下两种情况。
情况一,客户端在向直播服务端发送上述连接请求时,在该连接请求对应数据包的传输过程中发生丢包现象,即该连接请求丢失。
情况二,客户端成功向直播服务端发送连接请求,直播服务端也在接收到连接请求后及时向客户端反馈连接响应,但是在该连接响应对应数据包的传输过程中发生丢包现象,即连接响应丢失。
针对上述两种情况,由于数据包传输过程中丢包现象是受到网络、设备等多种因素的影响,客户端无法确定究竟是上述情况一,还是上述情况二导致未接收到连接响应。因此,客户端可以不考虑未接收到连接响应的具体原因,直接在预设时长后重新发送连接请求,从而使得直播服务端在接收到该连接请求后及时反馈对应的连接响应,减少连接建立的耗时,缩短视频秒开的时间。
在本发明实施例中,针对上述情况二,也就是连接响应在数据包传输过程中丢失。此时,若客户端可以与直播服务端进行数据交互,如上述图2中第一次接收到的目标数据包。但是为了保证数据包传输的可靠性以及安全性,客户端必须在接收到上述连接响应后才能确定连接建立完成。
一个可选的实施例中,根据上述图3所示的连接建立方法,本发明实施例还提供了一种连接建立方法。如图5所示,图5为本发明实施例提供的连接建立方法的第三种流程示意图。该方法应用于客户端,具体包括以下步骤。
步骤S501,在检测到启动直播应用时,向直播服务端发送连接请求,该连接请求包括连接建立对应的全部握手数据包,以使直播服务端根据接收到的连接请求中包括的握手数据包,向客户端发送连接响应,该连接响应包括与每一握手数据包对应的响应数据包。
步骤S502,判断在预设时长内是否接收到连接响应。若是,在执行步骤S503。
步骤S503,确定与直播服务端建立连接。
上述步骤S501-步骤S503与上述步骤S301-步骤S303相同。
步骤S504,检测用户是否触发针对直播服务端中目标直播视频的数据获取操作。若是,则执行步骤S505。
在本步骤中,客户端可以检测用户是否针对直播服务端中目标直播视频进行数据获取操作,如点击操作或播放操作等操作行为。
例如,客户端在检测到启动直播应用,并与直播服务端建立连接后,客户端中直播应用的应用页面可以显示直播服务端所提供的多个直播视频所对应的截图或者视频段。用户可以在该应用页面中选择需要观看的目标直播视频。也就是点击需要观看直播视频或对需要观看的直播视频执行预设播放的操作行为等。此时,客户端将检测到用户触发针对直播服务端中目标直播视频的数据获取操作。在该实施例中,上述步骤S504在上述步骤S501之后执行。
再例如,某一时刻,用户正在使用客户端中另一非直播应用,如应用A,应用A中出现直播应用对应的直播服务端中目标直播视频的广告,用户可以通过点击该广告跳转播放该目标直播视频。当用户点击该广告时,客户端将检测到用户触发针对直播服务端中目标直播视频的数据获取操作。另外,在该实施例中,客户端在检测到数据获取操作的同时,也将检测到启动直播应用,此时,上述步骤S504将与上述步骤S501同时执行。
在本发明实施例中,上述目标直播视频的标识信息包括但不限于目标直播视频对应的直播间编号、主播名称、时间信息等。
在本发明实施例中,对上述步骤S501和步骤S504的执行顺序不作具体限定。
步骤S505,向直播服务端发送数据获取请求,该数据获取请求包括目标直播视频的标识信息,以使直播服务端根据接收到的数据获取请求中包括的标识信息,获取目标直播视频,并向客户端发送包括目标直播视频的目标数据包。
在本步骤中,在检测到用户触发针对直播服务端中目标直播视频的数据获取操作时,客户端可以向直播服务端发送针对目标数据的数据获取请求,即该数据获取请求中包括目标直播视频的标识信息。直播服务端在接收到该数据获取请求后,可以根据接收到的数据获取请求中的标识信息,获取目标直播视频,并将目标直播视频打包成目标数据包发送给客户端。
以上述图1为例进行说明,当用户在客户端上的某一直播应用中的点击某一直播间进行观看时,客户端可以向直播服务端发送数据获取请求,即图1中数据获取请求的发送。该数据获取请求中的标识信息为该直播间的直播间编号,以及用户进行点击操作的时间。直播服务端在接收到该数据获取请求后,可以根据标识信息获取目标直播视频,并对该目标直播视频进行打包,将打包得到的目标数据包发送给客户端,即图1中目标数据包的发送。
在本发明实施例中,上述目标数据包的数据数量可以是多个,由于该目标数据包是对目标直播视频打包得到,在主播进行直播的过程中,直播服务端中目标直播视频的数据量将不断增加。此时,直播服务端在向客户端发送的目标直播视频时,目标直播视频将以数据流的形式发送到客户端,即直播服务端持续向客户端发送包括目标直播视频的视频段的目标数据包。其中,目标视频包的数量具体可以根据目标直播视频的大小,数据包传输过程中应用层对数据包进行拆包对应的预设数据量阈值,以及用户需求等确定。在此,对目标数据包的数量不做具体限定。
一个可选的实施例中,若客户端未检测到用户触发针对直播服务端中目标直播视频的数据获取请求,则客户端不需要向直播服务端发送上述数据获取请求。
步骤S506,检测是否接收到目标数据包。若是,则执行步骤S507。
在本步骤中,客户端在发送上述数据获取请求后,可以实时检测是否接收到直播服务端针对该数据获取请求发送的目标数据包。
一个可选的实施例中,为了提高上述对目标数据包检测的时效性,客户端可以在发送数据获取请求后的预设时长内,实时检测是否接收到直播服务端针对该数据获取请求发送的目标数据包。若在预设时长内接收到目标数据包,则客户端可以确定接收到直播服务端针对该数据获取请求发送的目标数据包。若在预设时长内未接收到目标数据包,则客户端可以确定未接收到直播服务端针对该数据获取请求发送的目标数据包。
步骤S507,对目标数据包中的目标直播视频进行缓存。
在本步骤中,当客户端接收到直播服务端发送的目标数据包时,客户端可以对接收到的目标数据包进行拆包,得到目标直播视频,并将拆包得到的目标直播视频缓存到预设缓存空间中。
在本发明实施例中,上述拆包过程包括但不限于对目标数据包的解压缩过程、解码过程,从而得到目标数据包中包括的目标直播视频的视频段。根据每一目标数据包的标识信息,对每一目标数据包中的视频段进行组合可以得到目标直播视频。在此,对拆包过程以及目标直播视频的获取过程不作具体说明。
在现有的连接建立过程中,当数据获取请求与上述连接请求同时发送时,如图2所示,客户端第一次向直播服务端发送C2和数据获取请求,当客户端接收到直播服务端反馈的目标数据包,却未接收到直播服务端反馈的S2时,也就是S2丢失,目标数据包未丢失时,客户端将会丢弃接收到的目标数据包。并且,在上述预设时长后,在向直播服务端重新发送连接请求的同时,客户端也需要重新向直播服务端发送数据获取请求,即图2所示的第二次发送的C2和数据获取请求。只有当客户端接收到S2后,客户端才不会将接收到的目标数据包丢弃。因此,与现有数据获取请求和目标数据包的传输过程相比,在本发明实施例中,客户端通过对接收到的目标数据包中的目标直播视频进行缓存,可以使得客户端不需要重复向直播服务端发送数据获取请求,降低了数据获取请求和目标数据包的发送次数,节约了网络资源。
一个可选的实施例中,上述在对接收到的目标数据包中的目标直播视频进行缓存后,若确定客户端与直播服务端建立连接,则客户端可以对缓存的目标直播视频进行播放。
例如,当连接请求与数据获取请求同时发送时,若在第一个预设时长内未接收到连接响应,即未与直播服务端建立连接,但是接收目标数据包。此时,客户端可以将目标数据包中的目标直播视频缓存在预设存储空间中,并在第一个预设时长后重新向直播服务端发送连接请求。若在第二个预设时长内接收到直播服务端反馈的连接响应时,客户端可以确定连接建立。此时,客户端可以直接播放缓存的目标直播视频。
一个可选的实施例中,客户端在播放缓存的目标直播视频时,可以根据当前时刻,选择目标直播视频的播放时间点,并从选择的播放时间点处播放目标直播视频。例如,当前时间为11:05,客户端从11:04或者11:03等时间点处播放目标直播视频。在此,对目标直播视频的播放方式不作具体限定。
在本发明实施例中,当客户端确定与直播服务端建立连接后,可以直接获取预设缓存空间中存储的目标直播视频,并播放获取到的目标直播视频,提高了目标直播视频的播放效率,实现视频的秒开。
一个可选的实施例中,若未接收到直播服务端针对上述数据获取请求发送的目标数据包,则客户端可以重新向直播服务端发送上述数据获取请求。在此,对数据获取请求的发送方式不作具体限定。
通过图5所示的连接建立方法,客户端在接收到直播服务端发送的目标数据包后,客户端通过对接收到的目标数据包中的目标数据进行缓存,可以有效的减少客户端重复发送数据获取请求的次数,以及直播服务端重复发送目标数据包的次数,节约了网络资源。
一个可选的实施例中,根据图5所示的方法,本发明实施例还提供了一种连接建立方法。如图6所示,图6为本发明实施例提供的连接建立方法的第四种流程示意图。该方法应用于客户端,具体包括以下步骤。
步骤S601,在检测到启动直播应用时,向直播服务端发送连接请求,该连接请求包括连接建立对应的全部握手数据包,以使直播服务端根据接收到的连接请求中包括的握手数据包,向客户端发送连接响应,该连接响应包括与每一握手数据包对应的响应数据包。
步骤S602,判断在预设时长内是否接收到连接响应。若是,则执行步骤S603。
步骤S603,确定与直播服务端建立连接。
步骤S604,检测用户是否触发针对直播服务端中目标直播视频的数据获取操作。若是,则执行步骤S605。
步骤S605,向直播服务端发送数据获取请求,该数据获取请求包括目标直播视频的标识信息,以使直播服务端根据接收到的数据获取请求中包括的标识信息,获取目标直播视频,并向客户端发送包括目标直播视频的目标数据包。
步骤S606,检测是否接收到目标数据包。若是,则执行步骤S607。
步骤S607,对目标数据包中的目标直播视频进行缓存。
上述步骤S601-步骤S607与上述步骤S501-步骤S507相同。
步骤S608,根据接收到的目标数据包的标识信息,确定是否发生数据包丢失。若是,则执行步骤S609。
在本步骤中,客户端在接收到上述目标数据包后,可以根据接收到的每一目标数据包的标识信息,确定是否发生数据包丢失。
以目标数据包的标识信息为目标数据包的序列号为例进行说明。假设直播服务端向客户端发送目标数据包的数量为100,每一目标数据包的序列号分别对应1至100。客户端在接收到目标视频包后,若接收到的相邻两个目标数据包的序列号不连续,如先接收到的目标数据包的序列号为50,后接收到的目标数据包的序列号为60。此时,客户端可以目标数据包传输过程中发生数据包丢失,即确定序列号为51-59对应的数据包丢失。
在本发明实施例中,上述目标数据包的标识信息除了上述目标数据包的序列号以外,可以为其他信息,如目标数据包中目标直播视频对应的时间段等。在此,对上述目标数据包的标识信息不作具体限定。
在本发明实施例中,对上述步骤S607和步骤S608的执行顺序不作具体限定。
步骤S609,向直播服务端发送NACK包,该NACK包中包括丢失数据包的标识信息,以使直播服务器在接收到NACK包后,重新向客户端重新发送丢失数据包。
在本步骤中,在确定目标数据包传输过程发生数据包丢失,客户端可以根据丢失数据包的标识信息,向直播服务端发送NACK包。也就是向直播服务端发送包括丢失数据包的标识信息的NACK包。直播服务端在接收到该NACK包后,可以根据NACK包中的标识信息,重新向客户端发送丢失数据包,即目标数据包传输过程中发送丢失的目标数据包。
一个可选的实施例中,若确定目标数据包传输过程中未发生数据包丢失,客户端将不会向直播服务端发送NACK包,直播服务端也将不会接收到客户端发送的NACK包。此时,直播服务端可以确定目标数据包传输过程未发生丢包。
根据图6所示的方法,通过引入NACK机制,也就是在确定发生数据包丢失时,及时反馈NACK包,缩短了直播服务端重发丢失数据包的时间,提高了数据包传输的效率。
基于同一种发明构思,根据上述本发明实施例提供的连接建立方法,本发明实施例还提供了一种连接建立方法。如图7所示,图7为本发明实施例提供的连接建立方法的第五种流程示意图。该方法应用于直播服务端,具体包括以下步骤。
步骤S701,接收客户端发送的连接请求,该连接请求是客户端在检测到启动安装的直播应用时向直播服务端发送的,连接请求包括连接建立对应的全部握手数据包。
在本步骤中,客户端在检测到启动安装的直播应用时,可以向直播服务端发送包括连接建立对应的全部握手数据包的连接请求。直播服务端将接收客户端发送的连接请求。
步骤S702,根据接收到的连接请求中包括的握手数据包,向客户端发送连接响应,该连接响应包括与每一握手数据包对应的响应数据包,以使客户端根据接收到的连接响应,确定与直播服务器连接建立。
在本步骤中,直播服务端在接收到上述连接请求后,可以确定域该连接请求中包括的每一握手数据包对应的响应数据包,并向客户端发送包括与每一握手数据包对应的响应数据包的连接响应。客户端在接收直播服务端发送的连接响应时,可以确定与直播服务端建立连接。
为方便理解,以上述RTMP协议为例对上述连接响应的确定进行具体说明。客户端向直播服务端发送的连接响应中包括C0、C1和C2。直播服务端在接收到该连接请求后,可以根据连接请求中包括的C0确定S0,根据连接请求中包括的C1确定S1,根据连接请求中包括的C2确定S2,得到包括S0、S1和S2的连接响应。
采用图7所示的连接建立方法,在客户端与直播服务端建立连接时,由于客户端直接向直播服务端发送的连接请求中包括连接建立对应的全部握手数据包,这使得客户端仅需要向直播服务端发送一次连接请求,直播服务端在接收到该连接请求后也仅仅需要向客户端反馈一次连接响应,即可建立连接,不再需要进行多次握手,有效的减少了握手的次数,从而减少了连接建立过程的耗时,缩短了视频秒开的时间。
一个可选的实施例中,根据上述图7所示的连接建立方法,本发明实施例还提供了一种连接建立方法。如图8所示,图8为本发明实施例提供的连接建立方法的第六种流程示意图。该方法应用于直播服务端,具体包括以下步骤。
步骤S801,接收客户端发送的连接请求,该连接请求是客户端在检测到启动安装的直播应用时向直播服务端发送的,连接请求包括连接建立对应的全部握手数据包。
步骤S802,根据接收到的连接请求中包括的握手数据包,向客户端发送连接响应,该连接响应包括与每一握手数据包对应的响应数据包,以使客户端根据接收到的连接响应,确定与直播服务器连接建立。
上述步骤S801-步骤S802与上述步骤S701-步骤S702相同。
步骤S803,检测是否接收到客户端发送的数据获取请求,该数据获取请求是客户端在检测到用户触发针对直播服务端中目标直播视频的数据获取操作时向直播服务端发送的,该数据获取请求中包括目标直播视频的标识信息。若是,则执行步骤S804。
在本步骤中,客户端在检测到用户触发直播服务端中目标直播视频的数据获取操作时,可以向直播服务端发送包括目标直播视频的标识信息的数据获取请求。直播服务端可以实时检测是否接收到客户端发送的数据获取请求。其中,数据获取请求中包括目标直播视频的标识信息
步骤S804,根据接收到的数据获取请求中包括的标识信息,获取目标直播视频。
在本步骤中,在接收到客户端发送的数据获取请求时,直播服务端可以根据数据获取请求中包括的标识信息,获取目标直播视频。
步骤S805,向客户端发送包括目标直播视频的目标数据包,以使客户端在接收到目标数据包后,对目标数据包中的目标直播视频进行缓存。
在本步骤中,直播服务端可以对获取到的目标直播视频进行打包,从而将打包得到的目标数据包发送给客户端。客户端在接收到该目标数据包后,可以对目标数据包中的目标直播视频进行缓存。
在本发明实施例中,上述打包过程包括但不限于对目标直播视频的编码过程和压缩过程。
一个可选的实施例中,若未接收到客户端针对目标数据的数据获取请求,直播服务端可以不作处理,也就是直播服务端不会获取目标数据,并将目标数据打包为目标数据包发送给客户端。
一个可选的实施例中,上述步骤S805,向客户端发送包括目标直播视频的目标数据包,具体可以表示为基于目标直播视频中的视频关键帧,对目标直播视频进行打包,得到目标数据包,并将目标数据包发送给客户端。
在本发明实施例中,目标直播视频中包括多个视频关键帧,例如,常见的I帧、P帧和B帧中,其中,I帧为视频关键帧,I帧中包括完整的视频画面,客户端在对接收到的目标数据包进行拆包后,可以直接将I帧展开为视频画面,即在直播应用中显示目标直播视频画面,有效减少了目标数据包中的数据量,节约网络传输资源,同时,便于客户端直接对目标直播视频进行播放。
通过图8所示的连接建立方法,客户端在接收到直播服务端发送的目标数据包后,客户端通过对接收到的目标数据包中的目标数据进行缓存,可以有效的减少客户端重复发送数据获取请求的次数,以及直播服务端重复发送目标数据包的次数,节约了网络资源。
一个可选的实施例中,上述直播服务端在向客户端发送目标数据包是在直播服务端接收到客户端发送的数据获取请求后执行的。除此以外,直播服务端可以与主播端通信连接,当主播端进行直播时,直播服务端将接收到主播端发送的直播视频,此时,直播服务端可以将接收到的直播视频发送给客户端,即以数据包的形式发送给客户端。
一个可选的实施例中,根据图8所示的方法,本发明实施例还提供了一种连接建立方法。如图9所示,图9为本发明实施例提供的连接建立方法的第七种流程示意图。该方法应用于直播服务端,具体包括以下步骤。
步骤S901,接收客户端发送的连接请求,该连接请求是客户端在检测到启动安装的直播应用时向直播服务端发送的,连接请求包括连接建立对应的全部握手数据包。
步骤S902,根据接收到的连接请求中包括的握手数据包,向客户端发送连接响应,该连接响应包括与每一握手数据包对应的响应数据包,以使客户端根据接收到的连接响应,确定与直播服务器连接建立。
步骤S903,检测是否接收到客户端发送的数据获取请求,该数据获取请求是客户端在检测到用户触发针对直播服务端中目标直播视频的数据获取操作时向直播服务端发送的,数据获取请求中包括目标直播视频的标识信息。若是,则执行步骤S904。
步骤S904,根据接收到的数据获取请求中包括的标识信息,获取目标直播视频。
步骤S905,向客户端发送包括目标直播视频的目标数据包,以使客户端在接收到目标数据包后,对目标数据包中的目标直播视频进行缓存。
上述步骤S901-步骤S905与上述步骤S801-步骤S805相同。
步骤S906,检测是否接收到客户端发送的NACK包,该NACK包是客户端根据接收到的目标数据包的标识信息,确定发生数据包丢失后,向直播服务端发送的,NACK包中包括丢失数据包的标识信息。若是,则执行步骤S907。
在本步骤中,客户端在接收到直播服务端发送的目标数据包后,可以根据目标数据包的标识信息,确定是否发生数据包丢失,并在发生数据包丢失时,向直播服务端发送包括丢包数据包的标识信息的NACK包。直播服务端可以实时检测是否接收到客户端发送的NACK包。
步骤S907,根据接收到的NACK包中的标识信息,重新向客户端发送丢失数据包。
在本步骤中,在接收到客户端发送的NACK包后,直播服务端可以根据NACK包中的标识信息,获取丢包数据包,即发生丢包的数据包,并重新将丢包数据包发送给客户端。
一个可选的实施例中,若直播服务端未接收到客户端发送的NACK包,此时直播服务端可以确定目标数据包传输过程未发生丢包,直播服务端可以正常向客户端发送目标数据包,即不需要重新发送丢失数据包。
通过图9所示的方法,直播服务端在接收到NACK包后可以直接确定目标数据包传输过程发生数据包丢失,从而可以根据NACK包中包括的标识信息,及时向客户端重新发送丢失数据包,降低目标数据包丢失的概率。
一个可选的实施例中,上述直播服务端是通过是否接收到NACK包,确定是否发送丢包。除此以外,直播服务端还可以实时计算目标数据包传输过程对应的丢包率,根据该丢包率确定是否发生丢包。
一个可选的实施例中,上述直播服务端在接收到客户端发送的NACK包时,还可以按照预设拥塞控制算法,降低目标数据包的发送速率。
在本发明实施例中,直播服务端在向客户端发送目标数据包时,由于直播领域的拉流特征,即客户端从直播服务区拉取目标直播视频的过程,导致在拉流初始时,所获取的数据量较大,使得数据包丢包的概率较大。因此,为了降低拉流特性对数据包传输的影响,降低目标数据包丢失的概率,直播服务端在接收到客户端发送的NACK包后,即确定数据包传输过程发生丢包时,直播服务端可以按照预设拥塞控制算法,降低目标数据包的发送速率。其中,预设拥塞控制算法包括但不限于维加斯(Vegas)算法、里诺(Reno)算法、瓶颈带宽和时延(Bottleneck Bandwidth and RTT,BBR)算法。
为方便理解,下面以客户端和直播服务端之间的数据包传输满足RTMP协议,预设时长为1RTT为例,结合图8对上述连接建立过程进行说明。在上述连接建立过程中至少具有以下五种情况。
情况一,如图10-a所示,客户端仅向直播服务端发送包括C0、C1和C2的连接请求,且数据包传输过程未发生丢包现象。客户端将在预设时长内接收到直播服务端发送的包括S0、S1和S2的连接响应。此时,连接建立的耗时为1RTT。
情况二,如图10-b所示,客户端仅向直播服务端发送包括C0、C1和C2的连接请求,但数据包传输过程发生丢包现象,如连接请求丢失,或连接响应丢失。客户端将在预设时长后重新向直播服务端发送包括C0、C1和C2的连接请求,并接收到直播服务端反馈的包括S0、S1和S2的连接响应。此时,连接建立的耗时至少为2RTT。
情况三,如图10-c所示,客户端同时向直播服务端发送包括C0、C1和C2的连接请求和针对目标数据的数据获取请求,且数据包传输过程未发生丢包现象。客户端将接收到直播服务端反馈的包括S0、S1和S2的连接响应,以及包括目标数据的目标数据包。此时,连接建立的耗时至少为1RTT。
情况四,如图10-d所示,客户端同时向直播服务端发送包括C0、C1和C2的连接请求和针对目标数据的数据获取请求,但客户端未接收到对应的包括S0、S1和S2的连接响应,以及包括目标数据的目标数据包。客户端将在1RTT后重新向直播服务端发送连接请求和数据获取请求,并接收到直播服务端反馈的连接响应和目标数据包。此时,连接建立的耗时至少为2RTT。
情况五,如图10-e所示,客户端同时向直播服务端发送包括C0、C1和C2的连接请求和针对目标数据的数据获取请求,但客户端仅接收到包括目标数据的目标数据包。客户端将对接收到的目标数据包进行缓存,并在1RTT后重新向直播服务端发送包括S0、S1和S2的连接响应。此时,建立连接的耗时至少为2RTT。
与现有连接建立至少需要耗费3RTT相比,本发明实施例提供的连接建立方法,明显减少了连接建立所耗费的时间,缩短了视频秒开的时间。
基于同一种发明构思,根据上述本发明实施例提供的连接建立方法,本发明实施例还提供了一种连接建立装置。如图11所示,图11为本发明实施例提供的连接建立装置的第一种结构示意图。该装置应用于客户端,具体包括以下模块。
第一发送模块1101,用于在检测到启动直播应用时,向直播服务端发送连接请求,该连接请求包括连接建立对应的全部握手数据包,以使直播服务端根据接收到的连接请求中包括的握手数据包,向客户端发送连接响应,该连接响应包括与每一握手数据包对应的响应数据包。
判断模块1102,用于判断在预设时长内是否接收到连接响应。
第一确定模块1103,用于在判断模块1102的判断结果为是时,确定与直播服务端建立连接。
可选的,上述连接建立装置还可以包括:
第二发送模块,用于在判断模块1102的判断结果为否时,在预设时长后重新向直播服务端发送连接请求。
可选的,上述连接建立装置还可以包括:
第一检测模块,用于检测用户是否触发针对直播服务端中目标直播视频的数据获取操作。
第三发送模块,用于在第一检测模块的检测结果为是时,向直播服务端发送数据获取请求,该数据获取请求包括目标直播视频的标识信息,以使直播服务端根据接收到的数据获取请求中包括的标识信息,获取目标直播视频,并向客户端发送包括目标直播视频的目标数据包。
第二检测模块,用于检测是否接收到目标数据包。
缓存模块,用于在第二检测模块的检测结果为是时,对目标数据包中的目标直播视频进行缓存。
可选的,上述连接建立装置还可以包括:
播放模块,用于在确定与直播服务端建立连接后,对缓存的目标直播视频进行播放。
可选的,上述连接建立装置还可以包括:
第二确定模块,用于根据接收到的目标数据包的标识信息,确定是否发生数据包丢失。
第四发送模块,用于在第二确定模块的确定结果为是时,向直播服务端发送NACK包,该NACK包中包括丢失数据包的标识信息,以使直播服务器在接收到NACK包后,重新向客户端重新发送丢失数据包。
基于同一种发明构思,根据上述本发明实施例提供的连接建立方法,本发明实施例还提供了还提供了一种连接建立装置。如图12所示,图12为本发明实施例提供的连接建立装置的第二种结构示意图。该装置应用于直播服务端,具体包括以下模块。
接收模块1201,用于接收客户端发送的连接请求,该连接请求是客户端在检测到启动安装的直播应用时向直播服务端发送的,连接请求包括连接建立对应的全部握手数据包;
第五发送模块1202,用于根据接收到的连接请求中包括的握手数据包,向客户端发送连接响应,该连接响应包括与每一握手数据包对应的响应数据包,以使客户端根据接收到的连接响应,确定与直播服务器连接建立。
可选的,上述连接建立装置还可以包括:
第三检测模块,用于检测是否接收到客户端发送的数据获取请求,该数据获取请求是客户端在检测到用户触发针对直播服务端中目标直播视频的数据获取操作时向直播服务端发送的,数据获取请求中包括目标直播视频的标识信息。
获取模块,用于在第三检测模块的检测结果为是时,根据接收到的数据获取请求中包括的标识信息,获取目标直播视频;
第六发送模块,用于向客户端发送包括目标直播视频的目标数据包,以使客户端在接收到目标数据包后,对目标数据包中的目标直播视频进行缓存。
可选的,上述第六发送模块,具体可以用于基于目标直播视频中的视频关键帧,对目标直播视频进行打包,得到目标数据包,并将目标数据包发送给客户端。
可选的,上述连接建立装置还可以包括:
第四检测模块,用于检测是否接收到客户端发送的NACK包;该NACK包是客户端根据接收到的目标数据包的标识信息,确定发生数据包丢失后,向直播服务端发送的,NACK包中包括丢失数据包的标识信息;
第七发送模块,用于在第四检测模块的检测结果为是时,根据接收到的NACK包中的标识信息,重新向客户端发送丢失数据包。
可选的,上述连接建立装置还可以包括:
降低模块,用于在第四检测模块的检测结果为是时,按照预设拥塞控制算法,降低目标数据包的发送速率。
通过本发明实施例提供的装置,在客户端与直播服务端建立连接时,由于客户端直接向直播服务端发送的连接请求中包括连接建立对应的全部握手数据包,这使得客户端仅需要向直播服务端发送一次连接请求,直播服务端在接收到该连接请求后也仅仅需要向客户端反馈一次连接响应,即可建立连接,不再需要进行多次握手,有效的减少了握手的次数,从而减少了连接建立过程的耗时,缩短了视频秒开的时间。
基于同一种发明构思,根据上述本发明实施例提供的连接建立方法,本发明实施例还提供了一种电子设备,该电子设备作为客户端,如图13所示,包括处理器1301、通信接口1302、存储器1303和通信总线1304,其中,处理器1301,通信接口1302,存储器1303通过通信总线1304完成相互间的通信,
存储器1303,用于存放计算机程序;
处理器1301,用于执行存储器1303上所存放的程序时,实现如下步骤:
在检测到启动直播应用时,向直播服务端发送连接请求,该连接请求包括连接建立对应的全部握手数据包,以使直播服务端根据接收到的连接请求中包括的握手数据包,向客户端发送连接响应,该连接响应包括与每一握手数据包对应的响应数据包;
判断在预设时长内是否接收到连接响应;
若是,则确定与直播服务端建立连接。
基于同一种发明构思,根据上述本发明实施例提供的连接建立方法,本发明实施例还提供了一种电子设备,该电子设备作为直播服务端,如图14所示,包括处理器1401、通信接口1402、存储器1403和通信总线1404,其中,处理器1401,通信接口1402,存储器1403通过通信总线1404完成相互间的通信,
存储器1403,用于存放计算机程序;
处理器1401,用于执行存储器1403上所存放的程序时,实现如下步骤:
接收客户端发送的连接请求,该连接请求是客户端在检测到启动安装的直播应用时向直播服务端发送的,该连接请求包括连接建立对应的全部握手数据包;
根据接收到的连接请求中包括的握手数据包,向客户端发送连接响应,该连接响应包括与每一握手数据包对应的响应数据包,以使客户端根据接收到的连接响应,确定与直播服务器连接建立。
通过本发明实施例提供的电子设备,在客户端与直播服务端建立连接时,由于客户端直接向直播服务端发送的连接请求中包括连接建立对应的全部握手数据包,这使得客户端仅需要向直播服务端发送一次连接请求,直播服务端在接收到该连接请求后也仅仅需要向客户端反馈一次连接响应,即可建立连接,不再需要进行多次握手,有效的减少了握手的次数,从而减少了连接建立过程的耗时,缩短了视频秒开的时间。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
基于同一种发明构思,根据上述本发明实施例提供的连接建立方法,本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一连接建立方法的步骤。
基于同一种发明构思,根据上述本发明实施例提供的连接建立方法,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一连接建立方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机存储介质及计算机程序产品等实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种连接建立方法,其特征在于,应用于客户端,所述客户端中安装有直播应用,所述方法包括:
在检测到启动所述直播应用时,向直播服务端发送连接请求,所述连接请求包括连接建立对应的全部握手数据包,以使所述直播服务端根据接收到的连接请求中包括的握手数据包,向所述客户端发送连接响应,所述连接响应包括与每一握手数据包对应的响应数据包;
判断在预设时长内是否接收到所述连接响应;
若是,则确定与所述直播服务端建立连接。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若在所述预设时长内未接收到所述连接响应,则在所述预设时长后重新向所述直播服务端发送所述连接请求。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
检测用户是否触发针对直播服务端中目标直播视频的数据获取操作;
若触发所述数据获取操作,则向所述直播服务端发送数据获取请求,所述数据获取请求包括所述目标直播视频的标识信息,以使所述直播服务端根据接收到的所述数据获取请求中包括的标识信息,获取所述目标直播视频,并向所述客户端发送包括所述目标直播视频的目标数据包;
检测是否接收到所述目标数据包;
若接收到所述目标数据包,则对所述目标数据包中的目标直播视频进行缓存。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在确定与所述直播服务端建立连接后,对缓存的目标直播视频进行播放。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
根据接收到的目标数据包的标识信息,确定是否发生数据包丢失;
若是,则向所述直播服务端发送非确认NACK包,所述NACK包中包括所述丢失数据包的标识信息,以使所述直播服务器在接收到所述NACK包后,重新向所述客户端重新发送所述丢失数据包。
6.一种连接建立方法,其特征在于,应用于直播服务端,所述方法包括:
接收客户端发送的连接请求,所述连接请求是所述客户端在检测到启动安装的直播应用时向所述直播服务端发送的,所述连接请求包括连接建立对应的全部握手数据包;
根据接收到的连接请求中包括的握手数据包,向所述客户端发送连接响应,所述连接响应包括与每一握手数据包对应的响应数据包,以使所述客户端根据接收到的连接响应,确定与所述直播服务器连接建立。
7.一种连接建立装置,其特征在于,应用于客户端,所述客户端中安装有直播应用,所述装置包括:
第一发送模块,用于在检测到启动所述直播应用时,向直播服务端发送连接请求,所述连接请求包括连接建立对应的全部握手数据包,以使所述直播服务端根据接收到的连接请求中包括的握手数据包,向所述客户端发送连接响应,所述连接响应包括与每一握手数据包对应的响应数据包;
判断模块,用于判断在预设时长内是否接收到所述连接响应;
第一确定模块,用于在所述判断模块的判断结果为是时,确定与所述直播服务端建立连接。
8.一种连接建立装置,其特征在于,应用于直播服务端,所述装置包括:
接收模块,用于接收客户端发送的连接请求,所述连接请求是所述客户端在检测到启动安装的直播应用时向所述直播服务端发送的,所述连接请求包括连接建立对应的全部握手数据包;
第五发送模块,用于根据接收到的连接请求中包括的握手数据包,向所述客户端发送连接响应,所述连接响应包括与每一握手数据包对应的响应数据包,以使所述客户端根据接收到的连接响应,确定与所述直播服务器连接建立。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-6任一所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911025237.4A CN110830460B (zh) | 2019-10-25 | 2019-10-25 | 一种连接建立方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911025237.4A CN110830460B (zh) | 2019-10-25 | 2019-10-25 | 一种连接建立方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110830460A true CN110830460A (zh) | 2020-02-21 |
CN110830460B CN110830460B (zh) | 2022-09-20 |
Family
ID=69550610
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911025237.4A Active CN110830460B (zh) | 2019-10-25 | 2019-10-25 | 一种连接建立方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110830460B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112291316A (zh) * | 2020-10-19 | 2021-01-29 | 北京字节跳动网络技术有限公司 | 连接处理方法、装置、电子设备及计算机可读存储介质 |
CN113364637A (zh) * | 2021-08-09 | 2021-09-07 | 中建电子商务有限责任公司 | 一种基于批量打包调度的网络通信优化方法及系统 |
CN113973089A (zh) * | 2021-09-30 | 2022-01-25 | 阿里巴巴(中国)有限公司 | 一种流媒体传输方法、系统、设备及存储介质 |
CN114501049A (zh) * | 2022-01-18 | 2022-05-13 | 上海哔哩哔哩科技有限公司 | 直播连接的建立方法、装置及系统 |
CN114584800A (zh) * | 2022-03-16 | 2022-06-03 | 京东科技信息技术有限公司 | 流媒体传输方法、装置和电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104219215A (zh) * | 2013-06-05 | 2014-12-17 | 深圳市腾讯计算机系统有限公司 | 一种tcp连接的建立方法、装置、终端、服务器及系统 |
US20170164019A1 (en) * | 2015-12-08 | 2017-06-08 | Naver Corporation | Method and system for providing time machine function in live broadcast |
CN107105339A (zh) * | 2017-03-31 | 2017-08-29 | 广州酷狗计算机科技有限公司 | 一种播放直播视频的方法、装置和系统 |
CN107995233A (zh) * | 2016-10-26 | 2018-05-04 | 阿里巴巴集团控股有限公司 | 建立连接的方法及相应的设备 |
CN108156160A (zh) * | 2017-12-27 | 2018-06-12 | 杭州迪普科技股份有限公司 | 连接建立方法和装置 |
CN110149388A (zh) * | 2019-05-16 | 2019-08-20 | 北京字节跳动网络技术有限公司 | Httpdns服务器的连接方法、装置及设备 |
CN110267053A (zh) * | 2019-06-27 | 2019-09-20 | 广州酷狗计算机科技有限公司 | 直播方法、装置及系统 |
-
2019
- 2019-10-25 CN CN201911025237.4A patent/CN110830460B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104219215A (zh) * | 2013-06-05 | 2014-12-17 | 深圳市腾讯计算机系统有限公司 | 一种tcp连接的建立方法、装置、终端、服务器及系统 |
US20170164019A1 (en) * | 2015-12-08 | 2017-06-08 | Naver Corporation | Method and system for providing time machine function in live broadcast |
CN107995233A (zh) * | 2016-10-26 | 2018-05-04 | 阿里巴巴集团控股有限公司 | 建立连接的方法及相应的设备 |
CN107105339A (zh) * | 2017-03-31 | 2017-08-29 | 广州酷狗计算机科技有限公司 | 一种播放直播视频的方法、装置和系统 |
CN108156160A (zh) * | 2017-12-27 | 2018-06-12 | 杭州迪普科技股份有限公司 | 连接建立方法和装置 |
CN110149388A (zh) * | 2019-05-16 | 2019-08-20 | 北京字节跳动网络技术有限公司 | Httpdns服务器的连接方法、装置及设备 |
CN110267053A (zh) * | 2019-06-27 | 2019-09-20 | 广州酷狗计算机科技有限公司 | 直播方法、装置及系统 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112291316A (zh) * | 2020-10-19 | 2021-01-29 | 北京字节跳动网络技术有限公司 | 连接处理方法、装置、电子设备及计算机可读存储介质 |
CN112291316B (zh) * | 2020-10-19 | 2022-03-15 | 北京字节跳动网络技术有限公司 | 连接处理方法、装置、电子设备及计算机可读存储介质 |
CN113364637A (zh) * | 2021-08-09 | 2021-09-07 | 中建电子商务有限责任公司 | 一种基于批量打包调度的网络通信优化方法及系统 |
CN113973089A (zh) * | 2021-09-30 | 2022-01-25 | 阿里巴巴(中国)有限公司 | 一种流媒体传输方法、系统、设备及存储介质 |
CN113973089B (zh) * | 2021-09-30 | 2024-01-26 | 阿里巴巴(中国)有限公司 | 一种流媒体传输方法、系统、设备及存储介质 |
CN114501049A (zh) * | 2022-01-18 | 2022-05-13 | 上海哔哩哔哩科技有限公司 | 直播连接的建立方法、装置及系统 |
CN114501049B (zh) * | 2022-01-18 | 2023-10-27 | 上海哔哩哔哩科技有限公司 | 直播连接的建立方法、装置及系统 |
CN114584800A (zh) * | 2022-03-16 | 2022-06-03 | 京东科技信息技术有限公司 | 流媒体传输方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110830460B (zh) | 2022-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110830460B (zh) | 一种连接建立方法、装置、电子设备及存储介质 | |
CN110430457B (zh) | 异端音视频播放方法、装置及音视频播放系统 | |
US9794311B2 (en) | Transport accelerator implementing extended transmission control functionality | |
CN110557655B (zh) | 一种视频画面显示方法、装置、电子设备及存储介质 | |
EP2383941B1 (en) | Client terminal, method and system for downloading streaming media | |
WO2020192152A1 (zh) | 视频传输的方法、根节点、子节点、p2p服务器和系统 | |
US20230083441A1 (en) | Managing subpacket transmission and reception for advanced interactive services | |
WO2018121742A1 (zh) | 一种流数据的传输方法和装置 | |
KR102197974B1 (ko) | 멀티미디어 컨텐츠를 수신하도록 구성되는 클라이언트 단말기의 다운로딩 거동을 적응시키는 방법 및 대응 단말기 | |
WO2020119347A1 (zh) | 一种消息传输方法、装置、设备及介质 | |
JP2004266840A (ja) | 終端間測定に基づくネットワークへのデータストリームの許容の制御 | |
CN112583529B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
US9350484B2 (en) | Transport accelerator implementing selective utilization of redundant encoded content data functionality | |
US11812114B2 (en) | Method and server for audio and/or video content delivery | |
US20030152080A1 (en) | System and method for fault tolerant multimedia communication | |
KR102237900B1 (ko) | 클라이언트 단말에 의해 멀티미디어 콘텐츠의 콘텐츠 부분을 검색하기 위한 방법 | |
US9743037B2 (en) | Method for transmitting device indicator data in network-based AV system | |
CN115942000B (zh) | H.264格式的视频流转码方法及装置、设备及介质 | |
KR101683384B1 (ko) | 실시간 스트림 제어를 위한 시스템 및 방법 | |
CN115767143A (zh) | 播放卡顿的判断方法、装置、电子设备和可读存储介质 | |
CN116866676A (zh) | 一种跨网投屏方法及系统 | |
CN117896548A (zh) | 数据帧的传输方法、装置、电子设备和可读存储介质 | |
CN116962285A (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210524 Address after: 25, 5th floor, shuangjingfang office building, 3 frisha street, Singapore Applicant after: Zhuomi Private Ltd. Address before: Room 1101, Santai Commercial Building, 139 Connaught Road, Hong Kong, China Applicant before: HONG KONG LIVE.ME Corp.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |