新四季網

數據傳輸方法、裝置、電子設備及存儲介質與流程

2024-04-13 12:23:05



1.本公開涉及通信技術領域,具體涉及數據傳輸方法、裝置、電子設備及存儲介質。


背景技術:

2.多路傳輸技術通過建立多條傳輸連接從多個伺服器下載數據,能夠充分利用異構的上行資源,在單條連接阻塞時也能夠保持正常的傳輸能力,具有較好的應用前景,目前廣泛應用於文件下載、短視頻、直播等流媒體業務中。通常流媒體業務對數據塊的傳輸時間有著嚴格的要求,比如,短視頻業務要求一段連續數據塊下載時間不超過剩餘緩存時間,否則會導致卡頓;直播業務要求更嚴格,要求數據塊的傳輸時間為毫秒級別。數據塊在傳輸過程中,如果發生丟包未及時恢復,則該數據塊會導致卡頓和畫質下降。


技術實現要素:

3.有鑑於此,本公開實施例提供了一種數據傳輸方法、裝置、電子設備及存儲介質,以解決丟包恢復的問題。
4.根據第一方面,本公開實施例提供了一種數據傳輸方法,包括:
5.獲取當前數據塊的大小以及歷史數據塊的歷史丟包率,所述當前數據塊包括至少一個數據包;
6.基於所述當前數據塊的大小以及所述歷史丟包率,確定所述當前數據塊的當前丟包檢測閾值;
7.當基於所述當前數據塊的第一已接收數據包的數量確定滿足所述當前丟包檢測閾值時,對所述當前數據塊進行丟包檢測,確定所述當前數據塊的第一未到達數據包;
8.獲取所述第一未到達數據包,以獲得所述當前數據塊的數據包。
9.根據第二方面,本公開實施例還提供了一種數據傳輸裝置,包括:
10.第一獲取模塊,用於獲取當前數據塊的大小以及歷史數據塊的歷史丟包率,所述當前數據塊包括至少一個數據包;
11.第一確定模塊,用於基於所述當前數據塊的大小以及所述歷史丟包率,確定所述當前數據塊的當前丟包檢測閾值;
12.第二確定模塊,用於當基於所述當前數據塊的第一已接收數據包的數量確定滿足所述當前丟包檢測閾值時,對所述當前數據塊進行丟包檢測,確定所述當前數據塊的第一未到達數據包;
13.第二獲取模塊,用於獲取所述未到達數據包,以獲得所述當前數據塊的數據包。
14.根據第三方面,本公開實施例提供了一種電子設備,包括:存儲器和處理器,所述存儲器和所述處理器之間互相通信連接,所述存儲器中存儲有計算機指令,所述處理器通過執行所述計算機指令,從而執行第一方面或者第一方面的任意一種實施方式中所述的數據傳輸方法。
15.根據第四方面,本公開實施例提供了一種計算機可讀存儲介質,所述計算機可讀
存儲介質存儲計算機指令,所述計算機指令用於使所述計算機執行第一方面或者第一方面的任意一種實施方式中所述的數據傳輸方法。
16.本公開實施例提供的數據傳輸方法,以數據塊為單位進行傳輸和丟包判斷,由於數據塊能被完整地交付給應用層,數據塊之間可以互相獨立交互,這種方式可以在數據塊發生丟包時儘早地發現,不會導致數據塊一直阻塞在丟包上;且在丟包檢測時,以數據包為驅動時間判斷是否發生丟包並及時獲得第一未到達數據包,不需要等待超時觸發或者確認消息,能夠達到更低的丟包回復時間和數據塊傳輸時間,使得該方法能夠應用在對數據塊傳輸有限時要求的短視頻和直播等業務中。
附圖說明
17.為了更清楚地說明本公開具體實施方式或現有技術中的技術方案,下面將對具體實施方式或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本公開的一些實施方式,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
18.圖1是根據本公開實施例的數據傳輸方法的流程圖;
19.圖2是根據本公開實施例的數據傳輸方法的流程圖;
20.圖3是根據本公開實施例的數據傳輸方法的流程圖;
21.圖4是根據本公開實施例的數據傳輸方法的流程圖;
22.圖5是根據本公開實施例的數據傳輸裝置的結構框圖;
23.圖6是本公開實施例提供的電子設備的硬體結構示意圖。
具體實施方式
24.為使本公開實施例的目的、技術方案和優點更加清楚,下面將結合本公開實施例中的附圖,對本公開實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本公開一部分實施例,而不是全部的實施例。基於本公開中的實施例,本領域技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本公開保護的範圍。
25.在丟包重傳檢測中,一般採用時間驅動的重傳和確認信息(acknowledge character,簡稱為ack)驅動的重傳。具體地,時間驅動的重傳即發送端在發送數據的時候會設置一個計時器,若計時器超時仍未收到數據的確認信息,則會引發相應的超時和數據重傳,超時重傳時間一般設置為單個連接的往返時間的1~2倍,或者根據網絡變化進行估計。基於時間驅動的重傳對於數據包的恢復效率很低,尤其是發生丟包的路徑延遲較大時,超時重傳時間往往會超過數據塊的傳輸時間要求,導致數據塊的傳輸時間過長。ack驅動的重傳,即發送端基於接收端的確認信息來引發重傳,而非重傳計時器的超時。如果數據包沒有連續達到,就表示ack最後那個可能被丟包,如果發送方連續收到3次相同的ack就重傳該數據包,一次只能恢復一個數據包的發送。選擇性確認信息(selective acknowledge character,簡稱為sack)是ack的擴展,可以支持恢復多個數據包。這種重傳機制相比基於超時觸發重傳機制效率要更高,但是本質上發送端必須要依賴於收到足夠的確認消息才能進行重傳,如果ack發送丟失會導致數據塊傳輸堵塞在該數據包上,無法滿足數據塊傳輸的延遲要求。
26.由此可知,上述兩種丟包重傳機制均難以滿足對數據塊傳輸有嚴格時限要求的流媒體應用中。基於此,本公開實施例提供的數據傳輸方法,是基於數據包驅動的丟包檢測和重傳機制,通過數據包為驅動時間判斷是否發生丟包並及時進行重傳,不需要等待超時觸發或者確認消息。因此,可以實現較低的丟包恢復時間和數據塊傳輸時間,從而使得該方法能夠應用在對數據塊傳輸有限時要求的短視頻和直播等業務中。
27.根據本公開實施例,提供了一種數據傳輸方法實施例,需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計算機可執行指令的計算機系統中執行,並且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同於此處的順序執行所示出或描述的步驟。
28.在本實施例中提供了一種數據傳輸方法,可用於電子設備,如移動終端、電腦等,圖1是根據本公開實施例的數據傳輸方法的流程圖,如圖1所示,該流程包括如下步驟:
29.s11,獲取當前數據塊的大小以及歷史數據塊的歷史丟包率。
30.其中,所述當前數據塊包括至少一個數據包。
31.數據塊包括但不限於視頻幀、音頻幀等等,在本實施例中以數據塊為單位進行檢測的,每個數據塊均是可以獨立交付給上層應用進行處理的。因此,以數據塊為單位進行檢測能夠及時發現丟包。當前數據塊的大小是根據實際業務需求確定的,在此對其具體數值並不做任何限定。
32.歷史數據塊為當前數據塊之前的數據塊,可以是一個數據塊,兩個數據塊或多個數據塊,在此對歷史數據塊的具體數量並不做任何限定。歷史數據塊的歷史丟包率為歷史數據塊中丟失數據包的數量與數據包的總數的比值,每次在接收歷史數據塊時,進行丟失數據包的統計,從而得到各個歷史數據塊的歷史丟包率。
33.s12,基於當前數據塊的大小以及歷史丟包率,確定當前數據塊的當前丟包檢測閾值。
34.利用歷史丟包率與當前數據塊的大小的乘積預測當前數據塊的丟包數量,將該丟包數量作為當前丟包檢測閾值;或者,利用當前數據塊的大小減去上述的乘積,確定能夠接收到的數據包的數量,將其作為當前丟包檢測閾值。
35.s13,當基於當前數據塊的第一已接收數據包的數量確定滿足當前丟包檢測閾值時,對當前數據塊進行丟包檢測,確定當前數據塊的第一未到達數據包。
36.若當前丟包檢測閾值是利用丟包數量表示時,則統計第一已接收數據包的數量,再結合當前數據塊的大小確定第一未到達數據包的數量,若第一未到達數據包的數量等於當前丟包檢測閾值時,則觸發對當前數據塊的丟包檢測;若當前丟包閾值是利用接收到的數據包的數量表示時,則當接收到的數據包的數量等於當前丟包檢測閾值時,則觸發對當前數據塊的丟包檢測。
37.在丟包檢測時,可以記錄第一已接收數據包,再結合當前數據塊的所有數據包,進行對比即可確定當前數據塊的第一未到達數據包。
38.在一些實施方式中,上述s13包括:
39.(1)統計當前數據塊的第一已接收數據包的數量,以確定當前數據塊的第一未到達數據包的數量。
40.(2)當第一未到達數據包的數量達到丟包檢測閾值時,基於當前數據塊的各個數
據包的標識以及第一已接收數據包的標識,確定當前數據塊的第一未到達數據包。
41.以數據塊為單位,啟動計數器,該計數器的初始值為0。每接收到一個數據包,則計數器的值加1。其中,計數器的數值用於表示第一已接收數據包的數量,再利用當前數據塊的數據包的總數減去第一已接收數據包的數量,得到第一未到達數據包的數量。
42.每次計數器的值更新後計算第一未到達數據包的數量,或者,每隔預設時間之後計算第一未到達數據包的數量。當第一未到達數據包的數量達到丟包檢測閾值時,表示此時滿足丟包檢測的時機,進行丟包檢測。由於在將當前數據塊封裝成至少一個數據包時,為了確定各個數據包所屬的數據塊,在數據包中設置有其所屬數據塊的標識以及數據包在當前數據塊中的位置,在下文中將這些統稱為數據包的標識。基於此,提取第一已接收數據包的標識,將這些標識與各個數據包的標識進行比較,即可確定出當前數據塊的第一未到達數據包的標識,從而獲知第一未到達數據包。
43.丟包檢測閾值為觸發丟包檢測時機,是通過統計已接收到的數據包的數量,確定未到達數據包的數量得到的;且在得到未達到數據包的數量時,利用各個數據包的標識,能夠準確地確定出第一未達到數據包。
44.s14,獲取第一未到達數據包,以獲得當前數據塊的數據包。
45.對於第一未到達數據包的獲取,可以是觸發第一未到達數據包的重傳;當然,第一未到達數據包的未到達的原因可能是發送端剛發出還未到達,也可能是丟包。因此,對於第一未到達數據包的獲取可以是重傳,也可以是再等待一段時間;或者,重傳與等待一段時間的結合;等等。在此對其並不做任何限制,具體根據實際需求進行設置。
46.對於當前數據塊的丟包檢測,可以是進行一次檢測檢測,也可以是進行多輪檢測。例如,在當前數據塊的數據包傳輸過程中,每次接收到數據包均會結合當前數據塊的已接收數據包的數量,動態更新當前丟包檢測閾值;通過設置丟包檢測閾值,將更新後的當前丟包檢測閾值高於丟包檢測閾值,開啟新一輪的丟包檢測,直至數據包全部到達為止。
47.本實施例提供的數據傳輸方法,以數據塊為單位進行傳輸和丟包判斷,由於數據塊能被完整地交付給應用層,數據塊之間可以互相獨立交互,這種方式可以在數據塊發生丟包時儘早地發現,不會導致數據塊一直阻塞在丟包上;且在丟包檢測時,以數據包為驅動時間判斷是否發生丟包並及時獲得第一未到達數據包,不需要等待超時觸發或者確認消息,能夠達到更低的丟包回復時間和數據塊傳輸時間,使得該方法能夠應用在對數據塊傳輸有限時要求的短視頻和直播等業務中。
48.在本實施例中提供了一種數據傳輸方法,可用於電子設備,如移動終端、電腦等,圖2是根據本公開實施例的數據傳輸方法的流程圖,如圖2所示,該流程包括如下步驟:
49.s21,獲取當前數據塊的大小以及歷史數據塊的歷史丟包率。
50.其中,所述當前數據塊包括至少一個數據包。
51.詳細請參見圖1所示實施例的s11,在此不再贅述。
52.s22,基於當前數據塊的大小以及歷史丟包率,確定當前數據塊的當前丟包檢測閾值。
53.詳細請參見圖1所示實施例的s12,在此不再贅述。
54.s23,當基於當前數據塊的第一已接收數據包的數量確定滿足當前丟包檢測閾值時,對當前數據塊進行丟包檢測,確定當前數據塊的第一未到達數據包。
55.詳細請參見圖1所示實施例的s13,在此不再贅述。
56.s24,獲取第一未到達數據包,以獲得當前數據塊的數據包。
57.具體地,上述s24包括:
58.s241,獲取第一未到達數據包的發送時間以及當前時間,確定第一未到達數據包的飛行時間。
59.通過與發送端進行數據通信,即可獲知發送端發送各個數據包的時間,從而得到第一未到達數據包的發送時間。再計算當前時間與發送時間的差值,確定出各個第一未到達數據包的飛行時間。
60.s242,基於飛行時間與飛行時間閾值的大小關係,確定獲取第一未到達數據包的方式,並利用第一未達到數據的獲取方式獲取未到達數據包,以獲得當前數據塊的數據包。
61.由於網絡狀態的波動性,對於數據塊丟包率的計算可能會存在誤差,從而導致數據包驅動的丟包檢測和重傳機制重複發送數據包,即過度重傳。基於此,在本實施例中,利用飛行時間閾值來避免過度重傳。其中,飛行時間閾值是根據實際需求進行設置的,在此對其具體數值並不做任何限定。
62.在一些實施方式中,飛行時間閾值是基於當前業務類型確定的。對於直播等延遲要求為秒級的第一業務,飛行時間閾值設置較小,例如,20ms;對於短視頻等有部分緩存的第二業務,飛行時間閾值大於第一業務的飛行時間閾值,例如,200ms;對於文件下載等對延遲沒有太多要求的第三業務,飛行時間閾值大於第二業務的飛行時間閾值,例如,完全回退到超時觸發重傳機制,即,飛行時間閾值等於重傳超時時間。
63.在另一些實施方式中,飛行時間閾值的確定方式包括:獲取歷史數據塊的過度重傳係數,以確定飛行時間閾值,所述飛行時間閾值與過度重傳係數正相關,所述過度重傳係數用於表示歷史數據塊中重複收到同一重傳數據包的比例。
64.具體地,過度重傳係數表示重傳包中重複收到的比例,過渡重傳係數較低的話,可以使用較小的飛行時間閾值;過渡重傳係數越高,則需要調大飛行時間閾值,避免過渡重傳導致的成本開銷。例如,將過渡重傳係數的大小確定為過渡重傳係數;或,在過渡重傳係數的大小的基礎上,乘以預設值確定過渡重傳係數。
65.當飛行時間大於飛行時間閾值時,則表示該第一未到達數據包丟失,需要重傳;若飛行時間小於飛行時間閾值,則表示發送端剛第一未到達數據包,還未到達需要等待。
66.通過使用飛行時間閾值可以平衡傳輸性能和成本,滿足不同業務的需求,可以將飛行時間閾值設置為較小值以獲取高性能,也可以將飛行時間閾值設置為較大值來避免過度重傳,甚至回退到超時觸發重傳機制。
67.在一些實施方式中,上述s242包括:
68.(1)在第一未到達數據包中篩選出飛行時間大於飛行時間閾值的第二未到達數據包以及飛行時間小於飛行時間閾值的第三未到達數據包。
69.利用飛行時間與飛行時間閾值的大小關係,對第一未到達數據包進行分類,得到需要重傳的第二未到達數據包以及需要等待的第三未到達數據包。
70.(2)觸發第二未到達數據包的重傳。
71.將第二未到達數據包的標識告知發送端,相應地,發送端利用該標識確定需要重傳的數據包,從而實現第二未到達數據包的重傳。
72.在一些實施方式中,上述步驟(2)包括:
73.2.1)獲取各個傳輸路徑的丟包率。
74.2.2)基於丟包率最低的傳輸路徑重傳第二未到達數據包。
75.發送端與接收端之間可以是利用多路傳輸路徑進行傳輸,那麼,在需要進行數據包重傳時,利用各個傳輸路徑的丟包率,選擇丟包率最小的傳輸路徑進行第二未到達數據包的重傳,以減小重傳數據包的丟失概率。
76.基於每條傳輸路徑的丟包率,選擇概率最低的傳輸路徑進行重傳,避免重傳數據包丟失再進行多次重傳。
77.(3)降低第三未到達數據包的重傳超時時間,並基於降低後的重傳超時時間獲取第三未到達數據包。
78.如上文所述,第三未到達數據包表示該數據包剛從發送端發出,則更新該數據包的重傳超時時間rto,縮短超時觸發時間。對於第三未到達數據包的重傳超時時間的縮短,可以是直接在重傳超時時間的基礎上減去預設值得到降低後的重傳超時時間;或者,依據預設計算公式重新計算重傳超時時間,等等。在此對降低重傳超時時間的具體方式並不做任何限定,具體根據實際需求進行設置,只需保證第三未到達數據包的重傳超時時間是降低的即可。
79.在一些實施方式中,上述步驟(3)包括:
80.3.1)獲取當前帶寬利用率以及單個連接的往返時間。
81.3.2)計算重傳超時時間與單個連接的往返時間的差值,並計算差值與所述當前帶寬利用率的乘積。
82.3.3)基於乘積與單個連接的往返時間之和,確定降低後的重傳超時時間。
83.具體地,採用如下公式計算降低後的重傳超時時間tail_rto:
84.tail_rto=(rto-rtt)*sessionrate+rtt
85.其中,rto為重傳超時時間,rtt為單個連接的往返時間,sessionrate為當前帶寬利用率,取值在0~1之間,帶寬利用率sessionrate越低則tail_rto越小,更快觸發超時重傳。
86.結合當前帶寬利用率與單個連接的往返時間進行重傳超時時間的估計,能夠保證降低後的重傳超時時間的可靠性。
87.以數據包驅動進行丟包檢測和重傳,滿足檢測條件時對未及時達到的、飛行時間超過飛行時間閾值的數據包進行立即重傳,能夠更早地發現數據包丟失,降低數據塊傳輸時間;對未及時達到、但是飛行時間低於飛行時間閾值的數據進行重傳超時時間的調整,縮短超時觸發條件。
88.本實施例提供的數據傳輸方法,由於網絡狀態的波動性,數據塊丟包率估計可能會有誤差,導致數據包驅動的丟包檢測和重傳機制重複發送數據,即過度重傳。基於此,利用飛行時間閾值進行約束,以避免過度重傳。
89.在本實施例中提供了一種數據傳輸方法,可用於電子設備,如移動終端、電腦等,圖3是根據本公開實施例的數據傳輸方法的流程圖,如圖3所示,該流程包括如下步驟:
90.s31,獲取當前數據塊的大小以及歷史數據塊的歷史丟包率。
91.其中,所述當前數據塊包括至少一個數據包,歷史數據塊包括至少兩個。
92.具體地,上述s31包括:
93.s311,獲取各個歷史數據塊的丟包權重。
94.歷史數據塊的數量是根據實際需求進行設置,例如,以最近n個數據塊作為n個歷史數據塊。且歷史數據塊的丟包權重隨時間流逝而衰減,即歷史數據塊的完成時間約接近當前時間,則歷史數據塊的丟包權重越大,以保證後續確定出的當前數據塊的丟包率符合最新的網絡狀態。
95.s312,基於丟包權重與對應的歷史丟包率的加權,確定當前數據塊的丟包率。
96.在數據包傳輸過程中,每個數據塊下載完成後均會統計該數據塊的丟包率,採用如下公式計算歷史數據塊i的歷史丟包率li:
97.li=(send_data_size
i-recv_data_sizei)/send_data_sizei*100%
98.其中,send_data_sizei為歷史數據塊i的發送數據包的數量,recv_data_sizei為歷史數據塊i的接收數據包的數量。
99.進一步地,當前數據塊的丟包率採用如下公式計算:
100.s313,基於當前數據塊的丟包率與當前數據塊的大小的乘積,確定當前丟包檢測閾值。
101.如上文所述,對每個數據塊維護一個計數器c和一個丟包檢測閾值p,c表示當前已達到數據包的數量,p表示未到達數據包的數量閾值。每次收到數據包時,均會判斷剩餘未到達數據包的數量是否小於或等於p,若小於或等於p則進行丟包檢測。
102.在數據塊剛開始傳輸以及每次觸發丟包檢測時,都會重新計算p,直至p為零或者所有數據包均到達。其中,在當前數據塊的數據包傳輸過程中,丟包檢測閾值p是遞減的,通過這種方式可以達到多次丟包檢測的效果。
103.在計算得到當前數據塊的丟包率之後,計算當前數據塊的丟包率與當前數據塊的大小的乘積,確定當前丟包檢測閾值p。
104.在一些實施方式中,若當前數據塊的丟包數量低於丟包檢測閾值p時,可能會重複注入冗餘數據,基於此,在上文所述的實施例中採用飛行時間閾值來控制冗餘量。
105.若當前數據塊的丟包數量高於丟包檢測閾值p時,可能會長時間未觸發丟包檢測,此時剩下未到達的數據包會回退到rto觸發重傳機制。對於這種情況增加一個超時時間保證這種情況下也能觸發丟包檢測。具體地,在接收當前數據塊的數據包的過程中,記錄接收數據包的飛行時間,將該飛行時間與超時時間進行比較,若高於超時時間則同樣觸發丟包檢測。
106.s32,基於當前數據塊的大小以及歷史丟包率,確定當前數據塊的當前丟包檢測閾值。
107.詳細請參見圖1所示實施例的s12,在此不再贅述。
108.s33,當基於當前數據塊的第一已接收數據包的數量確定滿足當前丟包檢測閾值時,對當前數據塊進行丟包檢測,確定當前數據塊的第一未到達數據包。
109.詳細請參見圖1所示實施例的s13,在此不再贅述。
110.s34,獲取第一未到達數據包,以獲得當前數據塊的數據包。
111.具體地,上述s34包括:
112.s341,噹噹前丟包檢測閾值大於丟包檢測閾值下限時,基於當前數據塊的丟包率以及當前丟包檢測閾值的乘積,對當前丟包檢測閾值進行更新,確定更新後的丟包檢測閾值。
113.通過設置丟包檢測閾值下限,以觸發多輪丟包檢測。在當前丟包檢測閾值大於丟包檢測閾值下限時,表示此處還需要再次進行丟包檢測。一方面觸發基於當前丟包閾值下的第一未到達數據包的獲取;另一方面基於當前數據塊的丟包率以及當前丟包檢測閾值的乘積更新當前丟包檢測閾值,得到更新後的丟包檢測閾值,再利用更新後的丟包檢測閾值進行丟包檢測。
114.s342,當基於當前數據塊的第二已接收數據包的數量確定滿足更新後的當前丟包檢測閾值時,對當前數據塊進行丟包檢測,確定當前數據塊的第四未到達數據包。
115.在經過上述第一方面的處理後,獲取到新的數據包,此處已接收數據包稱之為第二已接收數據包。統計第二已接收數據包的數量,計算剩餘未到達數據包。當剩餘未到達數據包的數量滿足更新後的當前丟包檢測閾值時,則確定當前數據塊的第四未到達數據包。關於第四未到達數據包的確定方式,與上文中確定第一未到達數據包的方式類似,在此不再贅述。
116.s343,獲取第四未到達數據包,以獲得當前數據塊的數據包。
117.關於第四未到達數據包的獲取方式,與第一未到達數據包的獲取方式類似,均是結合飛行時間閾值,將未到達數據包劃分為需要重傳的未到達數據包以及需要等待的未到達數據包。對於需要重傳的未到達數據包是觸發重傳的,對於需要等待的未到達數據包,是降低該未到達數據包的rto,再基於降低後的rto進行重傳檢測。
118.本實施例提供的數據傳輸方法,對當前數據塊之前的至少兩個歷史數據塊的歷史丟包率進行加權,使得當前數據塊的丟包率是融合至少兩個歷史數據塊的歷史丟包率得到的,再進一步結合當前數據塊的大小,能夠得到較準確的當前丟包檢測閾值。對於重傳的數據包而言,也會存在一定概率的丟包,基於此,進行多輪丟包檢測以儘早地發現丟包並重傳。
119.作為本公開實施例的具體應用實例,如圖4所示,客戶端與發送端之間通過多條傳輸路徑進行數據的傳輸。在本實施中數據塊為視頻幀,即將一個視頻幀劃分為至少一個數據包傳輸,且每個數據包中記錄有表示其所屬的視頻幀以及該數據包在視頻幀中的位置的標識。客戶端在接收到數據包之後,送入丟包檢測模塊進行丟包檢測。即,先統計已接收數據包的數量,對當前數據塊進行完整度檢測並計算當前丟包閾值。當未到達數據包的數量小於或等於當前丟包閾值時,觸發丟包檢測。基於已接收數據包的標識確定未到達數據包,再將未到達數據包的飛行時間與飛行時間閾值k進行比較,若大於飛行時間閾值k則選擇傳輸路徑進行重傳;若飛行時間小於或等於飛行時間閾值,則降低未到達數據包的rto,利用降低後的rto進行重傳檢測。將上述丟包檢測模塊以及重傳模塊的檢測結果基於回調函數形成發送請求包,並將該發送請求包發送至發送端,以使得發送端基於該發送請求包進行相應的處理。
120.客戶端在任務下載時,與部署相關文件資源的多個伺服器建立連接,隨後向各個伺服器發送數據下載請求,即,默認將請求隊列中的數據按照輪詢方式向各個伺服器請求。各個伺服器基於請求下發對應數據包,客戶端接收並整合各個傳輸路徑傳輸的數據包,待
數據塊完整是交付給應用層。客戶端動態計算第j輪丟包檢測的丟包檢測閾值pj,每次收到數據包都會觸發未到達數據塊的數量是否滿足丟包檢測閾值的判斷。如果未到達數據塊的數量滿足丟包檢測閾值則進行丟包檢測,並更新p
j+1
開啟下一輪檢測,直到數據塊全部到達。如果進入丟包檢測邏輯,接收端會根據數據塊緩存生成未到達數據包列表,依次計算每個未到達數據包的飛行時間,如果飛行時間超過飛行時間閾值,則判定數據包丟失則立即重傳,否則自適應降低rto。
121.作為本公開實施例的一個具體應用實例,以一次丟包檢測為例。使用兩條傳輸路徑依次傳輸數據塊1、2、3,數據塊大小為512kb,數據塊1、2傳輸丟包率分別為1%、2%,利用數據塊2的丟包率計算數據塊3的丟包檢測閾值p0。即,p0=512*2%=10,基於此,數據塊3在收到第502個(即,512-10=502)數據包時會觸發重傳檢測。經過丟包檢測邏輯,確定丟包檢測時未到達數據包為標號為:10,11,12,77,78,79,80,509,510,511,這些未到達數據包的飛行時間分別為200ms,200ms,201ms,150ms,150ms,151ms,151ms,5ms,5ms,4ms。若飛行時間閾值為150ms,將各個未到達數據包的飛行時間與飛行時間閾值進行比較,則需要重傳的未到達數據包的標號為:10,11,12,77,78,79,80;需要自適應降低rto的未到達數據的標號為:509,510,511。
122.作為本公開實施例的另一個具體應用實例,使用兩條傳輸路徑依次傳輸數據塊1、2、3,數據塊大小為512kb,數據塊1、2傳輸丟包率分別為10%、15%,利用數據塊2的丟包率進行數據塊第一輪丟包檢測的丟包檢測閾值的計算。即,p0=512*15%=76。在本實施例中,丟包檢測閾值的下限為1,由於p0》0,則需要進行第二輪丟包檢測,第二輪丟包檢測的丟包檢測閾值為:p1=p0*15%=76*15%=11;同樣地,由於p1》0,則需要進行第三輪丟包檢測,第三輪丟包檢測的丟包檢測閾值為:p2=p1*15%=11*15%=2。由於第四輪丟包檢測時,進行丟包檢測閾值的計算p3=p2*15%=2*15%=0.3,小於1,則表示需要總共需要進行三輪丟包重傳的檢測。
123.由於p0=76,p1=11,p2=2,則數據塊分別在收到第436、第501、第510個數據包時會觸發重傳檢測,若第一輪丟包檢測的未到達數據包的標號為:51-56,201-230,472-511;第二輪丟包檢測的未到達數據包的標號為:223-231,473,501,第三輪丟包檢測的未到達數據包的標號為231,473。
124.其中,第一輪丟包檢測時未到達數據包51-56,201-230,472-511,其中,未到達數據包51-56的飛行時間為400+ms,未到達數據包201-230的飛行時間為200+ms,未到達數據包472-511的飛行時間為10+ms。飛行時間閾值為150ms,則未到達數據包51-56以及未到達數據包201-230需要重傳,未到達數據包472-511的rto需要自適應降低。
125.第二輪丟包檢測時未到達數據包223-231,473,501,飛行時間為200ms+,則未到達數據包223-231,473,501均需要重傳。
126.第三輪丟包檢測時未到達數據包231,473,其飛行時間為250ms,360ms,由於飛行時間大於飛行時間閾值150ms,則未到達數據包231,473均需要重傳。
127.作為本公開實施例的另一個具體應用實例,使用兩條傳輸路徑依次傳輸數據塊1、2、3,數據塊大小為512kb,數據塊1、2傳輸丟包率分別為0%、0%,利用數據塊2的丟包率計算數據塊3的丟包檢測閾值,即,p0=512*0%=0。基於此,數據塊3傳輸過程中不會觸發丟包檢測重傳,回退到rto超時觸發重傳機制。
128.作為本公開實施例的另一個具體應用實例,使用兩條傳輸路徑依次傳輸數據塊1、2、3,數據塊大小為100kb,數據塊1、2傳輸丟包率分別為5%、5%,利用數據塊2的丟包率計算數據塊的丟包檢測閾值,即,p0=100*5%=5,則數據塊3分別在收到第95個數據包時會觸發重傳檢測。經過丟包檢測,確定未到達數據包的標號為10,15-17,40,飛行時間分別為300ms,280ms,281ms,282ms,220ms。飛行時間閾值為150ms,則未到達數據包10,15-17,40均需要重傳。
129.在本實施例中還提供了一種數據傳輸裝置,該裝置用於實現上述實施例及優選實施方式,已經進行過說明的不再贅述。如以下所使用的,術語「模塊」可以實現預定功能的軟體和/或硬體的組合。儘管以下實施例所描述的裝置較佳地以軟體來實現,但是硬體,或者軟體和硬體的組合的實現也是可能並被構想的。
130.本實施例提供一種數據傳輸裝置,如圖5所示,包括:
131.第一獲取模塊41,用於獲取當前數據塊的大小以及歷史數據塊的歷史丟包率,所述當前數據塊包括至少一個數據包;
132.第一確定模塊42,用於基於所述當前數據塊的大小以及所述歷史丟包率,確定所述當前數據塊的當前丟包檢測閾值;
133.第二確定模塊43,用於當基於所述當前數據塊的第一已接收數據包的數量確定滿足所述當前丟包檢測閾值時,對所述當前數據塊進行丟包檢測,確定所述當前數據塊的第一未到達數據包;
134.第二獲取模塊44,用於獲取所述第一未到達數據包,以獲得所述當前數據塊的數據包。
135.在一些實施方式中,所述歷史數據塊包括至少兩個,第一確定模塊42包括:
136.第一獲取單元,用於獲取各個所述歷史數據塊的丟包權重;
137.第一確定單元,用於基於所述丟包權重與對應的所述歷史丟包率的加權,確定所述當前數據塊的丟包率;
138.第二確定單元,用於基於所述當前數據塊的丟包率與所述當前數據塊的大小的乘積,確定所述當前丟包檢測閾值。
139.在一些實施方式中,第二確定模塊43包括:
140.統計單元,用於統計所述當前數據塊的第一已接收數據包的數量,以確定所述當前數據塊的第一未到達數據包的數量;
141.第三確定單元,用於當所述第一未到達數據包的數量達到所述丟包檢測閾值時,基於所述當前數據塊的各個數據包的標識以及所述第一已接收數據包的標識,確定所述當前數據塊的第一未到達數據包。
142.在一些實施方式中,第二獲取模塊44包括:
143.第二獲取單元,用於獲取所述第一未到達數據包的發送時間以及當前時間,確定所述第一未到達數據包的飛行時間;
144.第四確定單元,用於基於所述飛行時間與飛行時間閾值的大小關係,確定獲取所述第一未到達數據包的方式,並利用所述第一未達到數據的獲取方式獲取所述未到達數據包,以獲得所述當前數據塊的數據包。
145.在一些實施方式中,第四確定單元包括:
146.篩選子單元,用於在所述第一未到達數據包中篩選出飛行時間大於所述飛行時間閾值的第二未到達數據包以及飛行時間小於所述飛行時間閾值的第三未到達數據包;
147.觸發子單元,用於觸發所述第二未到達數據包的重傳;
148.降低子單元,用於降低所述第三未到達數據包的重傳超時時間,並基於降低後的重傳超時時間獲取所述第三未到達數據包。
149.在一些實施方式中,所述飛行時間閾值的確定模塊包括:
150.第五確定單元,用於基於當前業務類型確定所述飛行時間閾值;
151.或者,
152.第六確定單元,用於獲取所述歷史數據塊的過度重傳係數,以確定所述飛行時間閾值,所述飛行時間閾值與所述過度重傳係數正相關,所述過度重傳係數用於表示所述歷史數據塊中重複收到同一重傳數據包的比例。
153.在一些實施方式中,觸發子單元包括:
154.第一獲取子單元,用於獲取各個傳輸路徑的丟包率;
155.重傳子單元,用於基於所述丟包率最低的傳輸路徑重傳所述第二未到達數據包。
156.在一些實施方式中,降低子單元包括:
157.第二獲取子單元,用於獲取當前帶寬利用率以及單個連接的往返時間;
158.計算子單元,用於計算所述重傳超時時間與所述單個連接的往返時間的差值,並計算所述差值與所述當前帶寬利用率的乘積;
159.確定子單元,用於基於所述乘積與所述單個連接的往返時間之和,確定降低後的重傳超時時間。
160.在一些實施方式中,第二獲取模塊44還包括:
161.更新單元,用於當所述當前丟包檢測閾值大於所述丟包檢測閾值下限時,基於所述當前數據塊的丟包率以及所述當前丟包檢測閾值的乘積,對所述當前丟包檢測閾值進行更新,確定更新後的丟包檢測閾值;
162.丟包檢測單元,用於當基於所述當前數據塊的第二已接收數據包的數量確定滿足更新後的當前丟包檢測閾值時,對所述當前數據塊進行丟包檢測,確定所述當前數據塊的第四未到達數據包;
163.第三獲取單元,用於獲取所述第四未到達數據包,以獲得所述當前數據塊的數據包。
164.本實施例中的數據傳輸裝置是以功能單元的形式來呈現,這裡的單元是指asic電路,執行一個或多個軟體或固定程序的處理器和存儲器,和/或其他可以提供上述功能的器件。
165.上述各個模塊的更進一步的功能描述與上述對應實施例相同,在此不再贅述。
166.本公開實施例還提供一種電子設備,具有上述圖5所示的數據傳輸裝置。
167.請參閱圖6,圖6是本公開可選實施例提供的一種電子設備的結構示意圖,如圖6所示,該電子設備可以包括:至少一個處理器51,例如cpu(central processing unit,中央處理器),至少一個通信接口53,存儲器54,至少一個通信總線52。其中,通信總線52用於實現這些組件之間的連接通信。其中,通信接口53可以包括顯示屏(display)、鍵盤(keyboard),可選通信接口53還可以包括標準的有線接口、無線接口。存儲器54可以是高速ram存儲器
(random access memory,易揮發性隨機存取存儲器),也可以是非不穩定的存儲器(non-volatile memory),例如至少一個磁碟存儲器。存儲器54可選的還可以是至少一個位於遠離前述處理器51的存儲裝置。其中處理器51可以結合圖5所描述的裝置,存儲器54中存儲應用程式,且處理器51調用存儲器54中存儲的程序代碼,以用於執行上述任一方法步驟。
168.其中,通信總線52可以是外設部件互連標準(peripheral component interconnect,簡稱pci)總線或擴展工業標準結構(extended industry standard architecture,簡稱eisa)總線等。通信總線52可以分為地址總線、數據總線、控制總線等。為便於表示,圖6中僅用一條粗線表示,但並不表示僅有一根總線或一種類型的總線。
169.其中,存儲器54可以包括易失性存儲器(英文:volatile memory),例如隨機存取存儲器(英文:random-access memory,縮寫:ram);存儲器也可以包括非易失性存儲器(英文:non-volatile memory),例如快閃記憶體(英文:flash memory),硬碟(英文:hard disk drive,縮寫:hdd)或固態硬碟(英文:solid-state drive,縮寫:ssd);存儲器54還可以包括上述種類的存儲器的組合。
170.其中,處理器51可以是中央處理器(英文:central processing unit,縮寫:cpu),網絡處理器(英文:network processor,縮寫:np)或者cpu和np的組合。
171.其中,處理器51還可以進一步包括硬體晶片。上述硬體晶片可以是專用集成電路(英文:application-specific integrated circuit,縮寫:asic),可編程邏輯器件(英文:programmable logic device,縮寫:pld)或其組合。上述pld可以是複雜可編程邏輯器件(英文:complex programmable logic device,縮寫:cpld),現場可編程邏輯門陣列(英文:field-programmable gate array,縮寫:fpga),通用陣列邏輯(英文:generic array logic,縮寫:gal)或其任意組合。
172.可選地,存儲器54還用於存儲程序指令。處理器51可以調用程序指令,實現如本技術任一實施例中所示的數據傳輸方法。
173.本公開實施例還提供了一種非暫態計算機存儲介質,所述計算機存儲介質存儲有計算機可執行指令,該計算機可執行指令可執行上述任意方法實施例中的數據傳輸方法。其中,所述存儲介質可為磁碟、光碟、只讀存儲記憶體(read-only memory,rom)、隨機存儲記憶體(random access memory,ram)、快閃記憶體(flash memory)、硬碟(hard disk drive,縮寫:hdd)或固態硬碟(solid-state drive,ssd)等;所述存儲介質還可以包括上述種類的存儲器的組合。
174.本說明書中的各個實施例均採用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於方法實施例而言,由於其基本相似於設備及系統實施例,所以描述的比較簡單,相關之處參見設備及系統實施例的部分說明即可。
175.可以理解的是,在本公開的具體實施方式中,涉及到數據塊等相關的數據,當本公開以上實施例運用到具體產品或技術中時,需要獲得用戶許可或者同意,且相關數據的收集、使用和處理需要遵守相關國家和地區的相關法律法規和標準。
176.雖然結合附圖描述了本公開的實施例,但是本領域技術人員可以在不脫離本公開的精神和範圍的情況下做出各種修改和變型,這樣的修改和變型均落入由所附權利要求所限定的範圍之內。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀