負(fù)載分擔(dān)的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明實(shí)施例涉及網(wǎng)絡(luò)通信領(lǐng)域,尤其涉及一種負(fù)載分擔(dān)的方法和裝置。
【背景技術(shù)】
[0002] 隨著高速網(wǎng)絡(luò)技術(shù)的發(fā)展,對(duì)網(wǎng)絡(luò)設(shè)備和服務(wù)器的網(wǎng)絡(luò)數(shù)據(jù)處理能力提出了越來(lái) 越高的需求。負(fù)載分擔(dān)技術(shù)能夠增加吞吐量,加強(qiáng)網(wǎng)絡(luò)的數(shù)據(jù)處理能力。負(fù)載分擔(dān)技術(shù)分 為逐包負(fù)載分擔(dān)技術(shù)和逐流負(fù)載分擔(dān)技術(shù)。
[0003] 在現(xiàn)有的逐流負(fù)載分擔(dān)技術(shù)中,可采用不同的哈希算法實(shí)現(xiàn)。例如,循環(huán)兀余校驗(yàn) (切CliCRe化ndan巧化eck,簡(jiǎn)稱CRC)、折半異或或者素?cái)?shù)運(yùn)算。然而,現(xiàn)有的負(fù)載分擔(dān)技 術(shù)中,多個(gè)端口中不同端口承載的流的數(shù)量的差距較大。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明實(shí)施例提供一種負(fù)載分擔(dān)的方法和裝置,有助于縮小多個(gè)端口中不同端口 承載的流的數(shù)量的差距,提高負(fù)載分擔(dān)的均勻度。
[0005] 第一方面,本發(fā)明實(shí)施例提供一種負(fù)載分擔(dān)方法,包括:
[0006] 負(fù)載分擔(dān)裝置確定多個(gè)目的端口的數(shù)量n,所述多個(gè)目的端口是所述負(fù)載分擔(dān)裝 置的物理端口;
[0007] 所述負(fù)載分擔(dān)裝置確定S大于第一預(yù)設(shè)闊值,其中,
i表示根據(jù)第一負(fù)載分擔(dān)算法n個(gè)端口中第i個(gè)端口需要 承載的多個(gè)流中的流的數(shù)量,X表示所述多個(gè)流的數(shù)量與n的商;
[0008] 所述負(fù)載分擔(dān)裝置確定m,S'小于第二預(yù)設(shè)闊值,所述第二預(yù)設(shè)闊值小于所述第 一預(yù)設(shè)闊值,其中,
'表示根據(jù)第二負(fù)載分擔(dān)算法m個(gè) 端口中第j個(gè)端口需要承載的所述多個(gè)流中的流的數(shù)量,玄'表示所述多個(gè)流的數(shù)量與m的 商,m大于n;
[0009] 所述負(fù)載分擔(dān)裝置根據(jù)m確定承載所述多個(gè)流中的每個(gè)流的端口,其中,所述多 個(gè)流中每個(gè)流將被所述多個(gè)目的端口中的一個(gè)端口承載;
[0010] 所述負(fù)載分擔(dān)裝置通過(guò)承載所述多個(gè)流中的每個(gè)流的端口發(fā)送對(duì)應(yīng)的流。
[0011] 上述技術(shù)方案中,S可W用于標(biāo)識(shí)根據(jù)第一負(fù)載分擔(dān)算法n個(gè)端口承載多個(gè)流中 的流的數(shù)量的均勻度。S'可W用于標(biāo)識(shí)根據(jù)第二負(fù)載分擔(dān)算法m個(gè)端口承載多個(gè)流中的 流的數(shù)量的均勻度。S'小于S則表明根據(jù)第二負(fù)載分擔(dān)算法m個(gè)端口承載的流的數(shù)量的 均勻度優(yōu)于根據(jù)第一負(fù)載分擔(dān)算法n個(gè)端口承載的流的數(shù)量的均勻度。因此,根據(jù)m確定 承載所述多個(gè)流中的每個(gè)流的端口有助于提高承載多個(gè)流中的流的數(shù)量的均勻度。
[0012] 結(jié)合第一方面,在第一方面的第一種可能的實(shí)施方式中,所述負(fù)載分擔(dān)裝置確定S 大于第一預(yù)設(shè)闊值具體包括:
[0013] 所述負(fù)載分擔(dān)裝置通過(guò)Wn為查找關(guān)鍵字在表中查找與n匹配的表項(xiàng)獲得S, 所述與n匹配的表項(xiàng)中包含S,S是所述負(fù)載分擔(dān)裝置根據(jù)所述第一負(fù)載分擔(dān)算法W及
I確定的,其中,所述第一負(fù)載分擔(dān)算法被所述負(fù)載分擔(dān)裝置用 于確定所述n個(gè)端口中承載所述多個(gè)流中的每個(gè)流的一個(gè)端口,其中,所述多個(gè)流中第t個(gè) 流將被所述n個(gè)端口中端口號(hào)碼為P的端口承載,P= {f化t)}%n,ht等于所述第t個(gè)流 的特征信息,f化t)是ht的哈希函數(shù);
[0014] 所述負(fù)載分擔(dān)裝置確定m具體包括:
[0015] 所述負(fù)載分擔(dān)裝置通過(guò)WS'為查找關(guān)鍵字在所述表中查找與S'匹配的表項(xiàng)獲 得m,所述與S'匹配的表項(xiàng)中包含m,S'是所述負(fù)載分擔(dān)裝置根據(jù)所述第二負(fù)載分擔(dān)算法 W及
確定的,其中,所述第二負(fù)載分擔(dān)算法被所述負(fù)載分擔(dān) 裝置用于確定所述m個(gè)端口中承載所述多個(gè)流中的每個(gè)流的一個(gè)端口,其中,所述多個(gè)流 中所述第t個(gè)流將被所述m個(gè)端口中端口號(hào)碼為Q的端口承載,Q= {f化ht等于 所述第t個(gè)流的特征信息,fOO是ht的哈希函數(shù)。
[0016] 結(jié)合第一方面的第一種實(shí)施方式,在第一方面的第二種實(shí)施方式中,所述負(fù)載分 擔(dān)裝置根據(jù)m確定承載所述多個(gè)流中的每個(gè)流的端口具體包括:
[0017] 所述負(fù)載分擔(dān)裝置根據(jù)第H負(fù)載分擔(dān)算法確定承載所述多個(gè)流中的每個(gè)流的 端口,其中,所述多個(gè)流中每個(gè)流將被所述多個(gè)目的端口中端口號(hào)碼為R的端口承載,在 {f化t)} %m小于n的場(chǎng)景中,R等于{f化t)} %m,在{f化t)} %m大于或者等于n的場(chǎng)景中, R等于{f化t)} %n。
[0018] 結(jié)合第一方面或第一方面的第一種實(shí)施方式或第一方面的第二種實(shí)施方式,在 第一方面的第H種實(shí)施方式中,S'包括k個(gè)數(shù)值,分別為S/至Sk' ,Si'至Sk'根據(jù)
分別對(duì)應(yīng)叫至nik,所述負(fù)載分擔(dān)裝置確認(rèn)m具體包括:
[0019] m等于叫至Hik中最小的值。
[0020] 結(jié)合第一方面的第一種實(shí)施方式或第一方面的第二種實(shí)施方式,在第一方面的第 四種實(shí)施方式中,所述第t個(gè)流的特征信息包括所述第t個(gè)流的源網(wǎng)際協(xié)議IP地址和目的 IP地址。
[0021] 第二方面,本發(fā)明實(shí)施例提供一種負(fù)載分擔(dān)的裝置,包括:
[0022] 第一確定單元,用于確定多個(gè)目的端口的數(shù)量n,所述多個(gè)目的端口是所述負(fù)載分 擔(dān)裝置的物理端口;
[0023] 第二確定單元,用于確定S大于第一預(yù)設(shè)闊值,其中,
Xi表示根據(jù)第一負(fù)載分擔(dān)算法n個(gè)端口中第i個(gè)端口需要 承載的多個(gè)流中的流的數(shù)量,玄表示所述多個(gè)流的數(shù)量與n的商;
[0024] 第H確定單元,用于確定m,S'小于第二預(yù)設(shè)闊值,所述第二預(yù)設(shè)闊值小于所述第 一預(yù)設(shè)闊值,其中,
X,'表示根據(jù)第二負(fù)載分擔(dān)算法m個(gè) 端口中第j個(gè)端口需要承載的所述多個(gè)流中的流的數(shù)量,寵'表示所述多個(gè)流的數(shù)量與m的 商,m大于n;
[0025] 第四確定單元,用于根據(jù)m確定承載所述多個(gè)流中的每個(gè)流的端口,其中,所述多 個(gè)流中每個(gè)流將被所述多個(gè)目的端口中的一個(gè)端口承載;
[0026] 發(fā)送單元,用于通過(guò)所述第四確定單元確定的承載所述多個(gè)流中的每個(gè)流的端口 發(fā)送對(duì)應(yīng)的流。
[0027] 結(jié)合第二方面,在第二方面的第一種可能實(shí)施方式中,所述第二確定單元具體用 于;通過(guò)Wn為查找關(guān)鍵字在表中查找與n匹配的表項(xiàng)獲得S,所述與n匹配的表項(xiàng)中包含 S,S是所述負(fù)載分擔(dān)裝置根據(jù)所述第一負(fù)載分擔(dān)算法W及
I確 定的,其中,所述第一負(fù)載分擔(dān)算法被所述負(fù)載分擔(dān)裝置用于確定所述n個(gè)端口中承載所 述多個(gè)流中的每個(gè)流的一個(gè)端口,其中,所述多個(gè)流中第t個(gè)流將被所述n個(gè)端口中端口號(hào) 碼為P的端口承載,P= {f化t)} %n,ht等于所述第t個(gè)流的特征信息,f化t)是ht的哈希 函數(shù);
[0028] 所述第H確定單元具體用于;通過(guò)WS'為查找關(guān)鍵字在所述表中查找與S'匹 配的表項(xiàng)獲得m,所述與S'匹配的表項(xiàng)中包含m,S'是所述負(fù)載分擔(dān)裝置根據(jù)所述第二負(fù) 載分擔(dān)算法W及:
確定的,其中,所述第二負(fù)載分擔(dān)算法被所 述負(fù)載分擔(dān)裝置用于確定所述m個(gè)端口中承載所述多個(gè)流中的每個(gè)流的一個(gè)端口,其中, 所述多個(gè)流中所述第t個(gè)流將被所述m個(gè)端口中端口號(hào)碼為Q的端口承載,Q= {f化t)} % m,ht等于所述第t個(gè)流的特征信息,f化t)是ht的哈希函數(shù)。
[0029] 結(jié)合第二方面的第一種實(shí)施方式,在第二方面的第二種實(shí)施方式中,所述第四確 定單元具體用于:
[0030] 根據(jù)第H負(fù)載分擔(dān)算法確定承載所述多個(gè)流中的每個(gè)流的端口,其中,所述多個(gè) 流中每個(gè)流將被所述多個(gè)目的端口中端口號(hào)碼為R的端口承載,在{f化t)} %m小于n的場(chǎng) 景中,R等于{f化t)} %m,在{f化t)} %m大于或者等于n的場(chǎng)景中,R等于{f化t)} %n。
[0031] 結(jié)合第二方面或第二方面的第一種實(shí)施方式或第二方面的第二種實(shí)施方式,在 第二方面的第H種實(shí)施方式中,S'包括k個(gè)數(shù)