本技術涉及通信,尤其涉及一種負載分擔方法、裝置、網絡節點、存儲介質及計算機程序產品。
背景技術:
1、相關技術中,智算中心間的數據傳遞會存在大象流,對于同一條大象流就是一條五元組信息固定的大帶寬流量。當流量引入到基于互聯網協議第六版(ipv6,internetprotocol?version?6)的段路由(srv6,segment?routing?ipv6)策略(srv6-policy)之后,路由器節點按照流量的五元組信息進行哈希,流量會在活躍的一組段列表(sl,segmentlist)之間進行逐流負載分擔。
2、但是,由于同一條大象流具有固定的五元組信息,會導致srv6-policy所有流量都哈希到某一個固定的sl,當sl的出接口是聚合接口時,流量僅會在聚合接口的某一個固定的成員口上轉發,會引發流量擁塞和流量負載分擔不均的問題。
技術實現思路
1、為解決相關技術問題,本技術實施例提供一種負載分擔方法、裝置、網絡節點、及存儲介質。
2、本技術實施例的技術方案是這樣實現的:
3、本技術實施例提供了一種負載分擔方法,應用于第一節點,所述方法包括:
4、基于第一數據流的報文攜帶的第一標識,對所述第一數據流進行負載分擔;其中,第一標識指示報文屬于的報文容器,同一個報文容器的報文攜帶的第一標識相同,不同的報文容器的報文攜帶的第一標識不同。
5、上述方案中,所述基于第一數據流的報文攜帶的第一標識,對所述第一數據流進行負載分擔,包括:
6、基于第一信息和報文攜帶的第一標識,確定報文的哈希值;第一信息表征所述第一數據流的相關信息;
7、基于報文的哈希值,在多條報文轉發路徑和/或聚合接口的多個成員端口上對所述第一數據流進行負載分擔。
8、上述方案中,所述方法還包括:
9、將所述第一數據流的報文劃分為多個報文容器。
10、上述方案中,所述方法還包括:
11、基于以下一項或多項,將所述第一數據流的報文劃分為多個報文容器:
12、報文個數;
13、報文發送時間長度;
14、報文發送時長;
15、報文長度。
16、上述方案中,所述方法還包括:
17、接收攜帶第一標識的報文。
18、上述方案中,每個報文容器的最后一個報文攜帶第二標識。
19、本技術實施例還提供了一種負載分擔方法,應用于第二節點,所述方法包括:
20、接收第一數據流的報文,報文攜帶第一標識,第一標識指示報文所屬的報文容器,同一個報文容器的報文攜帶的第一標識相同,不同報文容器的報文攜帶的第一標識不同;
21、基于報文攜帶的第一標識,對所述第一數據流的報文進行重組和/或轉發。
22、上述方案中,報文還攜帶第二標識,第二標識指示報文屬于的報文容器的最后一個報文。
23、上述方案中,所述方法還包括:
24、基于報文攜帶的第一標識和/或第二標識,對所述第一數據流的報文進行重組和/或轉發。
25、上述方案中,對所述第一數據流的報文進行轉發,包括:
26、在滿足設定條件的情況下,轉發報文或報文容器的部分或全部報文。
27、上述方案中,所述在滿足設定條件的情況下,轉發報文或報文容器的部分或全部報文,包括以下一項或多項:
28、在報文未亂序,和/或,第一報文攜帶的第一標識與記錄的第一標識相同的情況下,直接轉發第一報文;記錄的第一標識表征最近一次轉發的第二報文攜帶的第一標識,或者基于第二報文攜帶的第一標識或緩存的最后一個報文攜帶的第一標識更新得到;
29、在報文亂序,和/或,第一報文攜帶的第一標識與記錄的第一標識不同的情況下,緩存第一報文;記錄的第一標識表征最近一次轉發的第二報文攜帶的第一標識,或者基于第二報文攜帶的第一標識或緩存的最后一個報文攜帶的第一標識更新得到;
30、在接收到第一報文容器的最后一個報文的情況下,轉發第一報文容器的部分或全部報文;
31、在接收到第一報文容器的最后一個報文的情況下,轉發第一報文容器的部分或全部報文和緩存的第二報文容器的部分或全部報文;其中,在所述第一數據流中第二報文容器的報文位于第一報文容器的報文之后;
32、在定時器超時的情況下,轉發緩存的所有報文,所述定時器在報文亂序的情況下啟動。
33、上述方案中,所述方法還包括以下一項或多項:
34、在第一報文攜帶的第一標識與記錄的第一標識不同的情況下,啟動定時器;
35、在緩存為空的情況下,取消定時器;
36、在接收到第一報文容器的最后一個報文的情況下,遞增記錄的第一標識;
37、在定時器超時的情況下,將記錄的第一標識更新為緩存的最后一個報文攜帶的第一標識。
38、上述方案中,定時器的計數值大于或等于報文轉發路徑的最大時延差。
39、上述方案中,所述設定條件包括以下一項或多項:
40、接收到的報文攜帶的第一標識與最近一次轉發的報文攜帶的第一標識相同;
41、最近一次轉發的報文不是報文容器的最后一個報文;
42、接收到報文容器的最后一個報文;
43、定時器超時,所述定時器在報文亂序的情況下啟動。
44、本技術實施例還提供了一種負載分擔裝置,包括:
45、第一處理單元,用于基于第一數據流的報文攜帶的第一標識,對所述第一數據流進行負載分擔;其中,第一標識指示報文屬于的報文容器,同一個報文容器的報文攜帶的第一標識相同,不同的報文容器的報文攜帶的第一標識不同。
46、本技術實施例還提供了一種負載分擔裝置,包括:
47、第一接收單元,用于接收第一數據流的報文,報文攜帶第一標識,第一標識指示報文所屬的報文容器,同一個報文容器的報文攜帶的第一標識相同,不同報文容器的報文攜帶的第一標識不同;
48、第二處理單元,用于基于報文攜帶的第一標識,對所述第一數據流的報文進行重組和/或轉發。
49、本技術實施例還提供了一種第一節點,包括:第一處理器及第一通信接口;其中,
50、所述第一處理器,用于基于第一數據流的報文攜帶的第一標識,對所述第一數據流進行負載分擔;其中,第一標識指示報文屬于的報文容器,同一個報文容器的報文攜帶的第一標識相同,不同的報文容器的報文攜帶的第一標識不同。
51、本技術實施例還提供了一種第二節點,包括:第二處理器及第二通信接口;其中,
52、所述第二通信接口,用于接收第一數據流的報文,報文攜帶第一標識,第一標識指示報文所屬的報文容器,同一個報文容器的報文攜帶的第一標識相同,不同報文容器的報文攜帶的第一標識不同;
53、所述第二處理器,用于基于報文攜帶的第一標識,對所述第一數據流的報文進行重組和/或轉發。
54、本技術實施例還提供了一種網絡節點,所述網絡節點包括第一節點或第二節點,所述網絡節點包括處理器和用于存儲能夠在處理器上運行的計算機程序的存儲器,
55、其中,所述處理器用于運行所述計算機程序時,執行第一節點側任一方法的步驟,或者執行第二節點側任一方法的步驟。
56、本技術實施例還提供了一種存儲介質,其上存儲有計算機程序,所述計算機程序被處理器執行時實現第一節點側任一方法的步驟,或實現第二節點側任一方法的步驟。
57、本技術實施例還提供了一種計算機程序產品,包括計算機程序,其特征在于,所述計算機程序在被處理器執行時上述任一方法的步驟。
58、在本技術實施例提供的負載分擔方法、裝置、網絡節點、及存儲介質中,第一節點基于第一數據流的報文攜帶的第一標識,對所述第一數據流進行負載分擔,第一標識指示報文屬于的報文容器,同一個報文容器的報文攜帶的第一標識相同,不同的報文容器的報文攜帶的第一標識不同;第二節點接收第一數據流的報文,報文攜帶第一標識,基于報文攜帶的第一標識,對所述第一數據流的報文進行重組和/或轉發。可以看出,在本技術實施例中,可以將單條數據流的報文劃分為多個報文容器,由于同一個報文容器的報文攜帶的第一標識相同,不同的報文容器的報文攜帶的第一標識不同,因此,使得攜帶相同的第一標識的報文能夠通過同一個sl和/或聚合接口的同一個成員接口傳輸,攜帶不同的第一標識的報文能夠通過不同的sl和/或聚合接口的不同成員接口傳輸,可以實現流量負載分擔均衡,可以大幅提升網絡帶寬的總體利用率,提高了報文傳輸效率,降低了發生流量擁塞的概率。