本申請涉及數(shù)據(jù)傳輸,特別涉及基于webrtc的數(shù)據(jù)傳輸方法、裝置、設(shè)備及介質(zhì)。
背景技術(shù):
1、webrtc(即web?real-time?communication,一種允許網(wǎng)頁瀏覽器進(jìn)行實(shí)時(shí)通信的技術(shù))的數(shù)據(jù)通道協(xié)議即sctp(即stream?control?transmission?protocol,一種面向連接的傳輸協(xié)議),用于在webrtc連接中傳輸數(shù)據(jù)。目前,webrtc協(xié)議廣泛應(yīng)用于各種需要實(shí)時(shí)通信的場景,如視頻會(huì)議、網(wǎng)絡(luò)電話、文件共享以及云游戲等,但webrtc默認(rèn)的數(shù)據(jù)通道存在重傳能力差、數(shù)據(jù)延遲高的問題。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本申請的目的在于提供基于webrtc的數(shù)據(jù)傳輸方法、裝置、設(shè)備及介質(zhì),能夠提升基于webrtc的數(shù)據(jù)傳輸?shù)闹貍髂芰?,進(jìn)而提升數(shù)據(jù)傳輸效率。其具體方案如下:
2、第一方面,本申請公開了一種基于webrtc的數(shù)據(jù)傳輸方法,應(yīng)用于客戶端,包括:
3、利用webrtc的數(shù)據(jù)通道向服務(wù)端發(fā)送數(shù)據(jù)包;
4、基于最近成功傳輸?shù)臄?shù)據(jù)包的發(fā)送時(shí)間戳確定目標(biāo)數(shù)據(jù)包,其中,所述目標(biāo)數(shù)據(jù)包包括在所述最近成功傳輸?shù)臄?shù)據(jù)包之前發(fā)送的數(shù)據(jù)包;
5、基于所述目標(biāo)數(shù)據(jù)包的發(fā)送時(shí)間戳以及等待時(shí)間量判斷所述目標(biāo)數(shù)據(jù)包是否超時(shí)未送達(dá),其中,所述等待時(shí)間量為基于網(wǎng)絡(luò)狀態(tài)動(dòng)態(tài)調(diào)整的時(shí)間量;
6、如果所述目標(biāo)數(shù)據(jù)包超時(shí)未送達(dá),則利用所述數(shù)據(jù)通道對所述目標(biāo)數(shù)據(jù)包進(jìn)行重傳。
7、可選的,所述基于所述目標(biāo)數(shù)據(jù)包的發(fā)送時(shí)間戳以及等待時(shí)間量判斷所述目標(biāo)數(shù)據(jù)包是否超時(shí)未送達(dá),包括:
8、基于所述目標(biāo)數(shù)據(jù)包的發(fā)送時(shí)間戳、往返時(shí)延以及等待時(shí)間量計(jì)算超時(shí)時(shí)間;
9、如果所述超時(shí)時(shí)間小于或等于當(dāng)前時(shí)間,則判定所述目標(biāo)數(shù)據(jù)包超時(shí)未送達(dá)。
10、可選的,所述目標(biāo)數(shù)據(jù)包還包括符合預(yù)設(shè)條件的數(shù)據(jù)包,所述預(yù)設(shè)條件為發(fā)送時(shí)間戳等于最近成功傳輸?shù)臄?shù)據(jù)包的發(fā)送時(shí)間戳,且序列號小于最近成功傳輸?shù)臄?shù)據(jù)包。
11、可選的,在利用webrtc的數(shù)據(jù)通道向服務(wù)端發(fā)送數(shù)據(jù)包之后,還包括:
12、當(dāng)達(dá)到預(yù)設(shè)發(fā)送時(shí)間間隔,則重新利用webrtc的數(shù)據(jù)通道向服務(wù)端發(fā)送數(shù)據(jù)包。
13、可選的,還包括:
14、當(dāng)預(yù)設(shè)計(jì)時(shí)器超時(shí),則向服務(wù)端發(fā)送探測數(shù)據(jù)包;
15、基于所述探測數(shù)據(jù)包的確認(rèn)情況,對丟失的數(shù)據(jù)包進(jìn)行重傳。
16、可選的,還包括:
17、基于確認(rèn)信息中的最新確認(rèn)序列號確定最近成功傳輸?shù)臄?shù)據(jù)包。
18、可選的,還包括:
19、解析確認(rèn)信息,得到解析信息,其中,所述解析信息包括累積確認(rèn)序列號、選擇性確認(rèn)數(shù)據(jù)包的起始位置與所述累積確認(rèn)序列號之間的差值,連續(xù)選擇性確認(rèn)數(shù)據(jù)包的數(shù)量,其中,累積確認(rèn)序列號表征該序列號之前的數(shù)據(jù)包均已確認(rèn)接收,選擇性確認(rèn)數(shù)據(jù)包表征在該確認(rèn)數(shù)據(jù)包之前存在未確認(rèn)接收的數(shù)據(jù)包;
20、基于所述解析信息判斷數(shù)據(jù)包是否確認(rèn)接收。
21、第二方面,本申請公開了一種基于webrtc的數(shù)據(jù)傳輸裝置,應(yīng)用于客戶端,包括:
22、數(shù)據(jù)包發(fā)送模塊,用于利用webrtc的數(shù)據(jù)通道向服務(wù)端發(fā)送數(shù)據(jù)包;
23、數(shù)據(jù)包確定模塊,用于基于最近成功傳輸?shù)臄?shù)據(jù)包的發(fā)送時(shí)間戳確定目標(biāo)數(shù)據(jù)包,其中,所述目標(biāo)數(shù)據(jù)包包括在所述最近成功傳輸?shù)臄?shù)據(jù)包之前發(fā)送的數(shù)據(jù)包;
24、超時(shí)判斷模塊,基于所述目標(biāo)數(shù)據(jù)包的發(fā)送時(shí)間戳以及等待時(shí)間量判斷所述目標(biāo)數(shù)據(jù)包是否超時(shí)未送達(dá),其中,所述等待時(shí)間量為基于網(wǎng)絡(luò)狀態(tài)動(dòng)態(tài)調(diào)整的時(shí)間量;
25、數(shù)據(jù)包重傳模塊,用于如果達(dá)到所述超時(shí)時(shí)間,則調(diào)用所述數(shù)據(jù)通道對所述目標(biāo)數(shù)據(jù)包進(jìn)行重傳。
26、第三方面,本申請公開了一種電子設(shè)備,包括存儲(chǔ)器和處理器,其中:
27、所述存儲(chǔ)器,用于保存計(jì)算機(jī)程序;
28、所述處理器,用于執(zhí)行所述計(jì)算機(jī)程序,以實(shí)現(xiàn)前述的基于webrtc的數(shù)據(jù)傳輸方法。
29、第四方面,本申請公開了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),用于保存計(jì)算機(jī)程序,其中,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)前述的基于webrtc的數(shù)據(jù)傳輸方法。
30、通過以上方案可知,本申請?zhí)峁┝艘环N基于webrtc的數(shù)據(jù)傳輸方法,包括:利用webrtc的數(shù)據(jù)通道向服務(wù)端發(fā)送數(shù)據(jù)包;基于最近成功傳輸?shù)臄?shù)據(jù)包的發(fā)送時(shí)間戳確定目標(biāo)數(shù)據(jù)包,其中,所述目標(biāo)數(shù)據(jù)包包括在所述最近成功傳輸?shù)臄?shù)據(jù)包之前發(fā)送的數(shù)據(jù)包;基于所述目標(biāo)數(shù)據(jù)包的發(fā)送時(shí)間戳以及等待時(shí)間量判斷所述目標(biāo)數(shù)據(jù)包是否超時(shí)未送達(dá),其中,所述等待時(shí)間量為基于網(wǎng)絡(luò)狀態(tài)動(dòng)態(tài)調(diào)整的時(shí)間量;如果所述目標(biāo)數(shù)據(jù)包超時(shí)未送達(dá),則利用所述數(shù)據(jù)通道對所述目標(biāo)數(shù)據(jù)包進(jìn)行重傳。
31、可見,本申請的有益效果為:通過發(fā)送時(shí)間戳確定近成功傳輸?shù)臄?shù)據(jù)包之前發(fā)送的數(shù)據(jù)包,進(jìn)而根據(jù)網(wǎng)絡(luò)狀況動(dòng)態(tài)調(diào)整的等待時(shí)間量判斷出超出期望送達(dá)時(shí)間的數(shù)據(jù)包進(jìn)行重傳,能夠準(zhǔn)確且及時(shí)的發(fā)現(xiàn)丟包,從而及時(shí)重傳,提升了基于webrtc的數(shù)據(jù)傳輸?shù)闹貍髂芰?,進(jìn)而提升了數(shù)據(jù)傳輸效率。
32、相應(yīng)地,本申請?zhí)峁┑囊环N基于webrtc的數(shù)據(jù)傳輸裝置、設(shè)備及可讀存儲(chǔ)介質(zhì),也同樣具有上述技術(shù)效果。
1.一種基于webrtc的數(shù)據(jù)傳輸方法,其特征在于,應(yīng)用于客戶端,包括:
2.根據(jù)權(quán)利要求1所述的基于webrtc的數(shù)據(jù)傳輸方法,其特征在于,所述基于所述目標(biāo)數(shù)據(jù)包的發(fā)送時(shí)間戳以及等待時(shí)間量判斷所述目標(biāo)數(shù)據(jù)包是否超時(shí)未送達(dá),包括:
3.根據(jù)權(quán)利要求2所述的基于webrtc的數(shù)據(jù)傳輸方法,其特征在于,所述目標(biāo)數(shù)據(jù)包還包括符合預(yù)設(shè)條件的數(shù)據(jù)包,所述預(yù)設(shè)條件為發(fā)送時(shí)間戳等于最近成功傳輸?shù)臄?shù)據(jù)包的發(fā)送時(shí)間戳,且序列號小于最近成功傳輸?shù)臄?shù)據(jù)包。
4.根據(jù)權(quán)利要求1所述的基于webrtc的數(shù)據(jù)傳輸方法,其特征在于,在利用webrtc的數(shù)據(jù)通道向服務(wù)端發(fā)送數(shù)據(jù)包之后,還包括:
5.根據(jù)權(quán)利要求1所述的基于webrtc的數(shù)據(jù)傳輸方法,其特征在于,還包括:
6.根據(jù)權(quán)利要求1所述的基于webrtc的數(shù)據(jù)傳輸方法,其特征在于,還包括:
7.根據(jù)權(quán)利要求1至6任一項(xiàng)所述的基于webrtc的數(shù)據(jù)傳輸方法,其特征在于,還包括:
8.一種基于webrtc的數(shù)據(jù)傳輸裝置,其特征在于,應(yīng)用于客戶端,包括:
9.一種電子設(shè)備,其特征在于,包括存儲(chǔ)器和處理器,其中:
10.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,用于保存計(jì)算機(jī)程序,其中,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如權(quán)利要求1至7任一項(xiàng)所述的基于webrtc的數(shù)據(jù)傳輸方法。