本技術(shù)屬于通信,尤其涉及一種基于長鏈接管理的數(shù)據(jù)傳輸方法和相關(guān)設(shè)備。
背景技術(shù):
1、隨著互聯(lián)網(wǎng)和移動通信技術(shù)的快速發(fā)展,長鏈接(long?connection)技術(shù)在實時通信、物聯(lián)網(wǎng)(internet?ofthings,iot)、在線游戲、視頻會議等領(lǐng)域得到了廣泛應(yīng)用。長鏈接允許客戶端與服務(wù)器保持持久連接,從而實現(xiàn)即時數(shù)據(jù)傳輸和實時交互。
2、在長鏈接技術(shù)的發(fā)展過程中,websocket協(xié)議和http/2協(xié)議是兩個重要的里程碑。websocket協(xié)議實現(xiàn)了雙向通信,極大地提高了實時通信的效率。http/2協(xié)議通過多路復(fù)用(multiplexing)、頭部壓縮(header?compression)和服務(wù)器推送(serverpush)等技術(shù),進(jìn)一步優(yōu)化了數(shù)據(jù)傳輸性能。盡管這些協(xié)議在一定程度上解決了長鏈接通信中的一些問題,但長鏈接通信在實際應(yīng)用中仍面臨許多技術(shù)挑戰(zhàn)。
3、鏈接狀態(tài)管理不便是長鏈接通信所面臨的諸多挑戰(zhàn)中的之一,已知技術(shù)在長鏈接的建立和維護(hù)過程中,常常由于鏈接狀態(tài)不可控、管理不便而導(dǎo)致通信中斷或延遲,難以保證鏈接的連續(xù)性和穩(wěn)定性,影響了長鏈接通信系統(tǒng)的穩(wěn)定性和用戶體驗;除此之外,在基于長鏈接的數(shù)據(jù)傳輸過程中所傳輸數(shù)據(jù)容易受到截獲和篡改,安全性得不到保障。
技術(shù)實現(xiàn)思路
1、有鑒于此,本技術(shù)公開一種基于長鏈接管理的數(shù)據(jù)傳輸方法和相關(guān)設(shè)備,以至少解決長鏈接通信中的鏈接狀態(tài)管理不便和數(shù)據(jù)安全性低的問題,確保鏈接的連續(xù)性和穩(wěn)定性,提升長鏈接通信系統(tǒng)的穩(wěn)定性和數(shù)據(jù)安全性。
2、具體方案如下:
3、一種基于長鏈接管理的數(shù)據(jù)傳輸方法,應(yīng)用于第一設(shè)備,所述方法包括:
4、獲取第二設(shè)備發(fā)起的用于請求建立長鏈接的鏈接請求;
5、基于所述鏈接請求,建立與所述第二設(shè)備之間的長鏈接;
6、對所述長鏈接進(jìn)行狀態(tài)檢測,得到狀態(tài)檢測結(jié)果;
7、如果所述狀態(tài)檢測結(jié)果表征所述長鏈接產(chǎn)生鏈接異常,向所述第二設(shè)備發(fā)送重連請求;所述重連請求用于觸發(fā)所述第二設(shè)備重新向所述第一設(shè)備發(fā)起用于請求建立長鏈接的鏈接請求,以使所述第一設(shè)備重建與所述第二設(shè)備之間的長鏈接;
8、基于與所述第二設(shè)備之間的長鏈接,使用預(yù)設(shè)安全加密策略執(zhí)行與所述第二設(shè)備之間的數(shù)據(jù)傳輸處理;其中,所述預(yù)設(shè)安全加密策略用于基于所述第一設(shè)備約定的目標(biāo)密鑰對待傳輸數(shù)據(jù)進(jìn)行加密,所述目標(biāo)密鑰在由所述第一設(shè)備同步至所述第二設(shè)備之前被所述第一設(shè)備加密為安全密鑰。
9、可選的,所述對所述長鏈接進(jìn)行狀態(tài)檢測,得到狀態(tài)檢測結(jié)果,包括:
10、接收所述第二設(shè)備基于心跳機制周期性發(fā)送的心跳包;
11、基于對心跳包的接收情況,檢測所述長鏈接的狀態(tài),得到所述狀態(tài)檢測結(jié)果。
12、可選的,在向所述第二設(shè)備發(fā)送重連請求之后,所述方法還包括:
13、響應(yīng)于檢測到所述長鏈接重建失敗且重建失敗次數(shù)達(dá)到設(shè)定次數(shù),向目標(biāo)對象發(fā)送用于表征鏈接異常的通知信息。
14、可選的,所述基于與所述第二設(shè)備之間的長鏈接,使用預(yù)設(shè)安全加密策略執(zhí)行與所述第二設(shè)備之間的數(shù)據(jù)傳輸處理,包括下列至少之一:
15、使用所述目標(biāo)密鑰加密待發(fā)送的第一數(shù)據(jù),得到第一加密數(shù)據(jù),并通過所述長鏈接將所述第一加密數(shù)據(jù)發(fā)送至所述第二設(shè)備,以使所述第二設(shè)備通過使用所述目標(biāo)密鑰解密所述第一加密數(shù)據(jù)得到所述第一數(shù)據(jù);
16、接收所述第二設(shè)備發(fā)送的第二加密數(shù)據(jù),使用所述目標(biāo)密鑰解密所述第二加密數(shù)據(jù),得到所述第二加密數(shù)據(jù)對應(yīng)的第二數(shù)據(jù);
17、其中,所述目標(biāo)密鑰由所述第一設(shè)備基于預(yù)設(shè)生成方式而生成,所述第二設(shè)備持有的所述目標(biāo)密鑰,為所述第一設(shè)備通過使用預(yù)設(shè)公鑰對所述目標(biāo)密鑰進(jìn)行加密,將通過加密所得的目標(biāo)加密密鑰發(fā)送至所述第二設(shè)備,并由所述第二設(shè)備通過使用預(yù)設(shè)私鑰解密所述目標(biāo)加密密鑰而得到。
18、可選的,所述方法還包括:
19、如果所述目標(biāo)密鑰達(dá)到更新條件,基于所述預(yù)設(shè)生成方式重新生成用于數(shù)據(jù)加密的目標(biāo)密鑰,以對所述第一設(shè)備和所述第二設(shè)備持有的所述目標(biāo)密鑰進(jìn)行更新。
20、可選的,所述基于與所述第二設(shè)備之間的長鏈接,使用預(yù)設(shè)安全加密策略執(zhí)行與所述第二設(shè)備之間的數(shù)據(jù)傳輸處理,包括下列數(shù)據(jù)發(fā)送處理和數(shù)據(jù)接收處理中的至少之一:
21、數(shù)據(jù)發(fā)送處理:
22、使用所述目標(biāo)密鑰加密待發(fā)送的第一數(shù)據(jù),得到第一加密數(shù)據(jù);
23、響應(yīng)于所述第一加密數(shù)據(jù)滿足壓縮條件,對所述第一加密數(shù)據(jù)進(jìn)行壓縮處理,得到第一壓縮數(shù)據(jù);
24、響應(yīng)于所述第一壓縮數(shù)據(jù)滿足切片條件,對所述第一壓縮數(shù)據(jù)進(jìn)行切片處理,得到多個第一分片數(shù)據(jù);
25、通過所述長鏈接將所述多個第一分片數(shù)據(jù)分批發(fā)送至所述第二設(shè)備,以使所述第二設(shè)備通過整合所述多個第一分片數(shù)據(jù)得到所述第一壓縮數(shù)據(jù),并對所述第一壓縮數(shù)據(jù)進(jìn)行解壓縮和使用所述目標(biāo)密鑰對通過解壓縮所得的所述第一加密數(shù)據(jù)進(jìn)行解密得到所述第一數(shù)據(jù);
26、數(shù)據(jù)接收處理:
27、通過所述長鏈接分批接收所述第二設(shè)備發(fā)送的多個第二分片數(shù)據(jù);每個第二分片數(shù)據(jù)為所述第二設(shè)備使用所述目標(biāo)密鑰加密待發(fā)送的第二數(shù)據(jù),并對加密所得的第二加密數(shù)據(jù)進(jìn)行壓縮和切片處理后所得的數(shù)據(jù);
28、整合所述多個第二分片數(shù)據(jù),得到第二壓縮數(shù)據(jù);
29、對所述第二壓縮數(shù)據(jù)進(jìn)行解壓縮,得到所述第二加密數(shù)據(jù);
30、使用所述目標(biāo)密鑰對所述第二加密數(shù)據(jù)進(jìn)行解密,得到所述第二數(shù)據(jù);
31、其中,所述目標(biāo)密鑰由所述第一設(shè)備基于預(yù)設(shè)生成方式而生成,所述第二設(shè)備持有的所述目標(biāo)密鑰,為所述第一設(shè)備通過使用預(yù)設(shè)公鑰對所述目標(biāo)密鑰進(jìn)行加密,將加密所得的目標(biāo)加密密鑰發(fā)送至所述第二設(shè)備,并由所述第二設(shè)備通過使用預(yù)設(shè)私鑰解密所述目標(biāo)加密密鑰而得到。
32、可選的,在通過所述長鏈接分批接收所述第二設(shè)備發(fā)送的多個第二分片數(shù)據(jù)之后,還包括:
33、基于每個第二分片數(shù)據(jù)對應(yīng)的校驗碼,對每個第二分片數(shù)據(jù)進(jìn)行完整性或正確性校驗;
34、如果存在未通過校驗的目標(biāo)第二分片數(shù)據(jù),向所述第二設(shè)備發(fā)送用于請求重傳所述目標(biāo)第二分片數(shù)據(jù)的重傳請求;
35、通過所述長鏈接接收所述第二設(shè)備重傳的所述目標(biāo)第二分片數(shù)據(jù)。
36、可選的,所述執(zhí)行與所述第二設(shè)備之間的數(shù)據(jù)傳輸處理,包括下列至少之一:
37、通過所述長鏈接,將各個待發(fā)送數(shù)據(jù)按與對應(yīng)的傳輸優(yōu)先級相匹配的先后順序依次發(fā)送至所述第二設(shè)備;
38、通過所述長鏈接,接收所述第二設(shè)備按各個待發(fā)送數(shù)據(jù)對應(yīng)的傳輸優(yōu)先級依次發(fā)送的各個待發(fā)送數(shù)據(jù)。
39、一種基于長鏈接管理的數(shù)據(jù)傳輸方法,應(yīng)用于第二設(shè)備,所述方法包括:
40、向第一設(shè)備發(fā)起用于請求建立長鏈接的鏈接請求,以便所述第一設(shè)備基于所述鏈接請求建立與所述第二設(shè)備之間的長鏈接;
41、響應(yīng)于接收到所述第一設(shè)備發(fā)送的重連請求,重新向所述第一設(shè)備發(fā)起用于請求建立長鏈接的鏈接請求,以便所述第一設(shè)備重建與所述第二設(shè)備之間的長鏈接;
42、基于與所述第一設(shè)備之間的長鏈接,使用預(yù)設(shè)安全加密策略執(zhí)行與所述第二設(shè)備之間的數(shù)據(jù)傳輸處理;其中,所述預(yù)設(shè)安全加密策略用于基于所述第一設(shè)備約定的目標(biāo)密鑰對待傳輸數(shù)據(jù)進(jìn)行加密,所述目標(biāo)密鑰在由所述第一設(shè)備同步至所述第二設(shè)備之前被所述第一設(shè)備加密為安全密鑰。
43、一種基于長鏈接管理的數(shù)據(jù)傳輸裝置,應(yīng)用于第一設(shè)備,所述裝置包括:
44、請求獲取模塊,用于獲取第二設(shè)備發(fā)起的用于請求建立長鏈接的鏈接請求;
45、鏈接建立模塊,用于基于所述鏈接請求,建立與所述第二設(shè)備之間的長鏈接;
46、狀態(tài)檢測模塊,用于對所述長鏈接進(jìn)行狀態(tài)檢測,得到狀態(tài)檢測結(jié)果;
47、異常處理模塊,用于如果所述狀態(tài)檢測結(jié)果表征所述長鏈接產(chǎn)生鏈接異常,向所述第二設(shè)備發(fā)送重連請求;所述重連請求用于觸發(fā)所述第二設(shè)備重新向所述第一設(shè)備發(fā)起用于請求建立長鏈接的鏈接請求,以使所述第一設(shè)備重建與所述第二設(shè)備之間的長鏈接;
48、第一傳輸處理模塊,用于基于與所述第二設(shè)備之間的長鏈接,使用預(yù)設(shè)安全加密策略執(zhí)行與所述第二設(shè)備之間的數(shù)據(jù)傳輸處理;其中,所述預(yù)設(shè)安全加密策略用于基于所述第一設(shè)備約定的目標(biāo)密鑰對待傳輸數(shù)據(jù)進(jìn)行加密,所述目標(biāo)密鑰在由所述第一設(shè)備同步至所述第二設(shè)備之前被所述第一設(shè)備加密為安全密鑰。
49、一種基于長鏈接管理的數(shù)據(jù)傳輸裝置,應(yīng)用于第二設(shè)備,所述方法包括:
50、請求發(fā)起模塊,用于向第一設(shè)備發(fā)起用于請求建立長鏈接的鏈接請求,以便所述第一設(shè)備基于所述鏈接請求建立與所述第二設(shè)備之間的長鏈接;以及響應(yīng)于接收到所述第一設(shè)備發(fā)送的重連請求,重新向所述第一設(shè)備發(fā)起用于請求建立長鏈接的鏈接請求,以便所述第一設(shè)備重建與所述第二設(shè)備之間的長鏈接;
51、第二傳輸處理模塊,用于基于與所述第一設(shè)備之間的長鏈接,使用預(yù)設(shè)安全加密策略執(zhí)行與所述第二設(shè)備之間的數(shù)據(jù)傳輸處理;其中,所述預(yù)設(shè)安全加密策略用于基于所述第一設(shè)備約定的目標(biāo)密鑰對待傳輸數(shù)據(jù)進(jìn)行加密,所述目標(biāo)密鑰在由所述第一設(shè)備同步至所述第二設(shè)備之前被所述第一設(shè)備加密為安全密鑰。
52、一種電子設(shè)備,包括:
53、存儲器,用于至少存儲一組計算機指令集;
54、處理器,用于通過執(zhí)行所述存儲器中存儲的所述指令集,實現(xiàn)如上文任一項所述的應(yīng)用于第一設(shè)備的基于長鏈接管理的數(shù)據(jù)傳輸方法,或如上文所述的應(yīng)用于第二設(shè)備的基于長鏈接管理的數(shù)據(jù)傳輸方法。
55、一種計算機可讀介質(zhì),其上存儲有計算機指令集,所述計算機指令集在被處理器執(zhí)行時,用于實現(xiàn)如上文任一項所述的應(yīng)用于第一設(shè)備的基于長鏈接管理的數(shù)據(jù)傳輸方法,或如上文所述的應(yīng)用于第二設(shè)備的基于長鏈接管理的數(shù)據(jù)傳輸方法。
56、綜上所述,本技術(shù)提供的基于長鏈接管理的數(shù)據(jù)傳輸方法和相關(guān)設(shè)備中,第一設(shè)備在基于第二設(shè)備發(fā)起的鏈接請求建立與第二設(shè)備之間的長鏈接后,通過基于動態(tài)的鏈接管理機制監(jiān)控長鏈接的狀態(tài),并在長鏈接異常(如斷開)時自動重連,解決了已知技術(shù)中鏈接狀態(tài)管理不便、不完善的問題,確保了鏈接的連續(xù)性和穩(wěn)定性,顯著提高了長鏈接通信系統(tǒng)的穩(wěn)定性。此外,本技術(shù)通過基于安全加密策略采用多重加密方式對數(shù)據(jù)進(jìn)行基于長鏈接的加密傳輸處理,進(jìn)一步確保了數(shù)據(jù)傳輸?shù)母甙踩裕鉀Q了已知技術(shù)的長鏈接通信中數(shù)據(jù)傳輸安全性低的問題,滿足了長鏈接通信的高要求。