本技術涉及通信,具體而言,提供一種丟包優化方法、裝置、電子設備及存儲介質。
背景技術:
1、rohc(robust?header?compression,健壯報頭壓縮)為一種壓縮數據包頭部的協議,通過rohc可以壓縮數據報文的頭部開銷,提高無線網絡的傳輸效率。
2、當rohc應用于lte(long?time?evolution,長期演進)協議棧時,lte協議棧通過pdcp(packet?data?convergence?protocol,分組數據匯聚協議)層控制數據包基于rohc進行壓縮后進行傳輸。而在lte協議的pdcp層中,會通過discard(丟棄)定時器控制壓縮后的數據包在緩存區中的緩存時間,當定時器超時后,會將緩存區中的數據包丟棄。
3、在一些異常情況下,如上行長時間無授權、小區切換或連接重建導致傳輸中斷、網絡擁堵或其他異常等,可能使得discard定時器異常超時,使得數據包異常丟失。而rohc在進行數據壓縮時會將解壓縮的信息壓縮為數據包并發送,若包括解壓縮信息的數據包丟失,則可能影響接收方設備對接收到數據包進行解壓縮。
4、目前,會通過緩存回滾的方式提高使得接收方設備能夠進行解壓縮,緩存回滾通過將未丟棄的數據包基于rohc重新壓縮并傳輸,以使得接收方設備接收到完整、準確的數據包進行解壓縮。但緩存回滾方式會產生較大的計算開銷,影響設備性能。
技術實現思路
1、有鑒于此,本技術旨在提供一種丟包優化方法、裝置、電子設備及存儲介質,以當數據包壓縮應用于lte網絡時出現丟包的情況下,減少數據壓縮技術的算力開銷,降低功耗,以便于在低算力設備上使用。
2、第一方面,本技術實施例提供一種丟包優化方法,應用于發送方設備,所述丟包優化方法包括:在向接收方設備發送壓縮數據包的過程中,監測丟包情況;所述壓縮數據包包括經預設壓縮方式得到的普通數據包和關鍵包;所述關鍵包包括所述普通數據包的解壓縮信息;通過所述丟包情況判斷是否存在所述目標關鍵包需被丟棄;在確定存在所述目標關鍵包被丟棄的情況下,獲取所述目標關鍵包;重新將所述目標關鍵包發送至接收方設備,以使所述接收方設備基于所述目標關鍵包對接收到的普通數據包進行解壓縮。
3、關鍵包包括對普通數據包的解壓縮信息,關鍵包的丟失會使得經預設壓縮方式的普通數據包無法被解壓,在語音業務中,關鍵包的丟失則可能出現語音中斷或雜音。在本技術實施例中,檢測丟包情況,判斷是否存在關鍵包被丟棄,如果存在目標關鍵包被丟棄,則獲取該目標關鍵包并重新發送至接收方設備,以使得接收方設備能夠正常對接收到的數據包進行解壓。其中,因為普通數據包對已傳輸的數據包解壓縮無影響,因此,在本技術實施例中僅獲取關鍵包,而不獲取普通數據包,以減少所需獲取、傳輸的壓縮數據包的數量,降低算力開銷,減少緩存的數據包數量。以及,相較于緩存回滾中基于未發出和未丟棄的數據重新進行壓縮生成新的關鍵包的方式,本技術監測與獲取丟棄的關鍵包,可以有效減少因重新進行壓縮所帶來的算力開銷,減少功耗,以便于在一些低算力設備上使用。同時,該方法有助于減少壓縮協議應用于語音業務時所產生的語音中斷、雜音等情況。
4、一實施例中,所述丟包情況包括被確定為需被丟棄的第一壓縮數據包的數據包信息;所述監測丟包情況,包括:監測丟棄定時器是否超時;其中,所述壓縮數據包在所述丟棄定時器超時的情況下被丟棄;在確定所述丟棄定時器存在超時的情況下,獲取所述第一壓縮數據包的數據包信息,得到所述丟包情況。
5、壓縮數據包被丟棄的情況有多種,而在丟棄定時器超時的情況被丟棄的壓縮數據包屬于異常丟棄,因此,本技術實施例中,可以對丟棄定時器進行監測,判斷其是否超時,在超時的情況下再去獲取需被丟棄的第一壓縮數據包的數據包信息。該方式無需對所有被丟棄的壓縮數據包進行監測,有助于減少算力開銷和功耗。
6、一實施例中,所述在確定所述丟棄定時器存在超時的情況下,獲取所述第一壓縮數據包的數據包信息,包括:響應于所述丟棄定時器的超時,觸發預設的回調函數,以通過所述回調函數調用因所述丟棄定時器超時所述第一壓縮數據包的數據包信息,得到所述丟包情況。
7、本技術實施例中,通過配置回調函數,以在丟棄定時器超時的情況下通過回調函數調用第一壓縮包的數據包信息。由此,無需對lte協議棧和壓縮協議進行修改與調整,降低實現難度,有助于擴展本技術所提供方法的適用范圍,使得本技術所提供的方案能夠在現有設備上進行配置,減少現有設備的算力開銷和功耗。
8、一實施例中,所述預設壓縮方式包括健壯報頭壓縮rohc協議;所述第一壓縮數據包的數據包信息包括所述第一壓縮數據包的頭部信息;所述通過所述丟包情況判斷是否存在所述目標關鍵包需被丟棄,包括:通過所述丟包情況中獲取所述第一壓縮數據包的頭部信息;基于所述頭部信息確定所述第一壓縮數據包是否為經rohc得到的壓縮數據包;若確定所述第一壓縮數據包為經rohc得到的壓縮數據包,則通過所述頭部信息判斷所述第一壓縮數據包是否為關鍵包;所述頭部信息包括表征所述第一壓縮數據包為關鍵包的標識信息;若所述第一壓縮數據包為關鍵包,則確定所述第一壓縮數據包為所述目標關鍵包。
9、rohc對數據進行壓縮后,會在壓縮數據包的頭部信息中留下表征該壓縮數據包經rohc壓縮得到的標識信息,本技術實施例中,通過頭部信息即可判斷是否為關鍵包,無需遍歷數據包全部信息,可以有效提高判斷關鍵包的效率,以及減少算力需求和功耗。
10、一實施例中,在通過所述頭部信息判斷所述第一壓縮數據包是否為關鍵包之后,所述方法還包括:若所述第一壓縮數據包為所述普通數據包,則將所述普通數據包丟棄。
11、lte協議棧會在丟棄定時器超時的情況下將已緩存的數據包進行丟棄,本技術實施例中,將普通數據包丟棄,而不進行保留,符合lte協議棧的定義,由此,無需對設備所配的lte協議棧進行修改,使得本技術所提供的方法更易于在設備上實現,擴大適用范圍。同時,對普通數據包進行丟棄,能夠減少緩存區所緩存的數據包數量,從而減少設備的負擔。
12、一實施例中,所述獲取所述目標關鍵包,包括:攔截對所述目標關鍵包的丟棄操作;將所述目標關鍵包存入緩存區。
13、相較于重新生成目標關鍵包,本技術實施例中,通過攔截丟棄操作,使得目標關鍵包不被丟棄,并重新存入緩存區,由此,可以無需重新生成目標關鍵包,減少因重新生成目標關鍵包所需的算力資源需求及減少所產生的功耗。
14、一實施例中,所述將所述目標關鍵包存入緩存區之后,所述方法還包括:提高所述目標關鍵包的傳輸優先級,以使所述發送方設備在獲得上行授權后,優先調度所述目標關鍵包傳輸至所述接收方設備。
15、本技術實施例中,為目標關鍵包提高傳輸優先級,可以使得目標關鍵包更快地被傳輸,減少傳輸延遲,使得接收方設備能夠更快接收目標關鍵包執行解壓縮,減少因長時間無法進行解壓縮導致的負面影響。
16、第二方面,本技術實施例提供一種丟包優化裝置,應用于發送方設備,所述丟包優化裝置包括:監測模塊,用于在向接收方設備發送壓縮數據包的過程中,監測丟包情況;所述壓縮數據包包括經預設壓縮方式得到的普通數據包和關鍵包;所述關鍵包包括所述普通數據包的解壓縮信息;所述監測模塊,還用于通過所述丟包情況判斷是否存在所述目標關鍵包需被丟棄;攔截模塊,用于在確定存在所述目標關鍵包被丟棄的情況下,獲取所述目標關鍵包;傳輸模塊,用于重新將所述目標關鍵包發送至接收方設備,以使所述接收方設備基于所述目標關鍵包對接收到的普通數據包進行解壓縮。
17、第三方面,本技術實施例提供一種電子設備,包括存儲器和處理器,所述存儲器中存儲有計算機可讀指令,所述計算機可讀指令被所述處理器執行時,使得所述處理器執行如第一方面任一項所述的丟包優化方法。
18、第四方面,本技術實施例提供一種計算機可讀存儲介質,所述可讀存儲介質中存儲有計算機程序,當所述計算機程序在計算機上運行時,使得所述計算機執行如第一方面任一項所述的丟包優化方法。