本發(fā)明實(shí)施方式涉及數(shù)據(jù)通訊
技術(shù)領(lǐng)域:
,尤其涉及一種基于SDN(SoftwareDefinedNetwork,軟件定義網(wǎng)絡(luò))的最小連接負(fù)載均衡方法和系統(tǒng)。
背景技術(shù):
:負(fù)載均衡提供了一種廉價(jià)有效透明的方法擴(kuò)展網(wǎng)絡(luò)設(shè)備和服務(wù)器的帶寬、增加吞吐量、加強(qiáng)網(wǎng)絡(luò)數(shù)據(jù)處理能力、提高網(wǎng)絡(luò)的靈活性和可用性。調(diào)度算法指對(duì)需要負(fù)載均衡的流量,按照一定的策略分發(fā)到指定的服務(wù)器群中的服務(wù)器或指定鏈路組的某條鏈路上,使得各臺(tái)服務(wù)器或鏈路盡可能地保持負(fù)載均衡。調(diào)度算法以連接為粒度,同一條連接的所有報(bào)文都會(huì)分發(fā)到同一個(gè)服務(wù)器或鏈路上。這種細(xì)粒度的調(diào)度在一定程度上可以避免單個(gè)用戶訪問的突發(fā)性引起服務(wù)器或鏈路間的負(fù)載不平衡。負(fù)載均衡技術(shù)持豐富的負(fù)載均衡調(diào)度算法。不同調(diào)度算法所實(shí)現(xiàn)的負(fù)載均衡效果不同,可以需要根據(jù)具體的應(yīng)用場景采用不同的算法。其中最小連接(LeastConnectionScheduling)負(fù)載均衡算法,是通過負(fù)載均衡設(shè)備根據(jù)當(dāng)前各服務(wù)器或鏈路的連接數(shù)來估計(jì)服務(wù)器或鏈路的負(fù)載情況,把新的連接分配給連接數(shù)最小的服務(wù)器或鏈路。該最小連接負(fù)載均衡算法能把負(fù)載差異較大(連接保持時(shí)長差異較大)的請(qǐng)求平滑分發(fā)到各個(gè)服務(wù)器或鏈路上。在實(shí)施本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在如下問題:傳統(tǒng)的最小連接負(fù)載均衡算法是基于某一臺(tái)設(shè)備,無法對(duì)全網(wǎng)絡(luò)的服務(wù)器進(jìn)行統(tǒng)一計(jì)算。應(yīng)該注意,上面對(duì)技術(shù)背景的介紹只是為了方便對(duì)本發(fā)明的技術(shù)方案進(jìn)行清楚、完整的說明,并方便本領(lǐng)域技術(shù)人員的理解而闡述的。不能僅僅因?yàn)檫@些方案在本發(fā)明的
背景技術(shù):
部分進(jìn)行了闡述而認(rèn)為上述技術(shù)方案為本領(lǐng)域技術(shù)人員所公知。技術(shù)實(shí)現(xiàn)要素:針對(duì)上述問題,本發(fā)明實(shí)施方式的目的在于提供一種基于SDN的最小連接負(fù)載均衡方法和系統(tǒng),能夠?qū)θW(wǎng)絡(luò)的服務(wù)器進(jìn)行統(tǒng)一計(jì)算,把負(fù)載差異較大的請(qǐng)求平滑分發(fā)到各個(gè)服務(wù)器或鏈路上,并且整個(gè)策略高效而簡單。為實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施方式提供一種基于SDN的最小連接負(fù)載均衡方法,所述方法應(yīng)用于SDN中的控制器上,包括:控制器預(yù)先設(shè)置最小連接負(fù)載均衡配置表和會(huì)話協(xié)議表,所述最小連接負(fù)載均衡配置表包括連接數(shù)閾值,所述會(huì)話協(xié)議表包括服務(wù)器的連接數(shù);當(dāng)接收到SDN中的交換機(jī)上報(bào)的服務(wù)器協(xié)議報(bào)文時(shí),根據(jù)所述服務(wù)器協(xié)議報(bào)文生成所述會(huì)話協(xié)議表中的會(huì)話協(xié)議表項(xiàng);當(dāng)獲取到客戶端發(fā)送的服務(wù)請(qǐng)求時(shí),根據(jù)所述服務(wù)請(qǐng)求查找會(huì)話協(xié)議表,若在所述會(huì)話協(xié)議表中沒有匹配的會(huì)話協(xié)議表項(xiàng),如果所述服務(wù)請(qǐng)求中請(qǐng)求的服務(wù)器的連接數(shù)小于所述連接數(shù)閾值,則選擇所述請(qǐng)求的服務(wù)器進(jìn)行連接;如果所述服務(wù)請(qǐng)求中請(qǐng)求的服務(wù)器的連接數(shù)已達(dá)到所述連接數(shù)閾值,則選擇所述會(huì)話協(xié)議表中服務(wù)器連接數(shù)最小的服務(wù)器進(jìn)行重定向連接。進(jìn)一步地,所述最小連接負(fù)載均衡配置表的配置項(xiàng)包括最小連接負(fù)載均衡功能和連接數(shù)閾值,其中所述最小連接負(fù)載均衡功能用于設(shè)置打開和關(guān)閉最小連接負(fù)載均衡功能,所述連接數(shù)閾值用于設(shè)置連接數(shù)閾值。進(jìn)一步地,所述會(huì)話協(xié)議表包括服務(wù)器IP字段、連接數(shù)字段、協(xié)議字段、客戶端IP字段和會(huì)話字段,其中服務(wù)器IP字段用于指明服務(wù)器IP,連接數(shù)字段用于指明此服務(wù)器的連接數(shù),協(xié)議字段用于指明服務(wù)協(xié)議號(hào),客戶端IP字段用于指明客戶端IP,會(huì)話字段用于指明會(huì)話ID。進(jìn)一步地,所述當(dāng)接收到SDN中的交換機(jī)上報(bào)的服務(wù)器協(xié)議報(bào)文時(shí),根據(jù)所述服務(wù)器協(xié)議報(bào)文生成所述會(huì)話協(xié)議表中的會(huì)話協(xié)議表項(xiàng),包括:交換機(jī)通過私有的Experimenter報(bào)文向控制器上報(bào)交換機(jī)自己的MAC地址和端口ID,來建立SDN中交換機(jī)和控制器的通道;交換機(jī)分別向控制器上報(bào)所連接的服務(wù)器的服務(wù)器協(xié)議報(bào)文,控制器分別從所述服務(wù)器協(xié)議報(bào)文提取服務(wù)器IP、客戶端IP、會(huì)話ID和服務(wù)協(xié)議號(hào),并計(jì)算服務(wù)器的連接數(shù),生成所述會(huì)話協(xié)議表中的會(huì)話協(xié)議表項(xiàng)。進(jìn)一步地,所述當(dāng)獲取到客戶端發(fā)送的服務(wù)請(qǐng)求時(shí),根據(jù)所述服務(wù)請(qǐng)求查找會(huì)話協(xié)議表,若在所述會(huì)話協(xié)議表中沒有匹配的會(huì)話協(xié)議表項(xiàng),如果所述服務(wù)請(qǐng)求中請(qǐng)求的服務(wù)器的連接數(shù)小于所述連接數(shù)閾值,則選擇所述請(qǐng)求的服務(wù)器進(jìn)行連接;如果所述服務(wù)請(qǐng)求中請(qǐng)求的服務(wù)器的連接數(shù)已達(dá)到所述連接數(shù)閾值,則選擇所述會(huì)話協(xié)議表中服務(wù)器連接數(shù)最小的服務(wù)器進(jìn)行重定向連接,包括:當(dāng)客戶端通過SDN網(wǎng)絡(luò)向服務(wù)器發(fā)送服務(wù)請(qǐng)求時(shí),控制器截獲所述服務(wù)請(qǐng)求,并將所述服務(wù)請(qǐng)求中的客戶端IP、請(qǐng)求的服務(wù)器IP、會(huì)話ID和服務(wù)協(xié)議號(hào)與所述會(huì)話協(xié)議表中的會(huì)話協(xié)議表項(xiàng)進(jìn)行匹配;若在所述會(huì)話協(xié)議表中有匹配的會(huì)話協(xié)議表項(xiàng),則對(duì)所述服務(wù)請(qǐng)求不做處理;若在所述會(huì)話協(xié)議表中沒有匹配的會(huì)話協(xié)議表項(xiàng),則判斷請(qǐng)求的服務(wù)器的連接數(shù);如果所述服務(wù)請(qǐng)求中請(qǐng)求的服務(wù)器的連接數(shù)小于所述連接數(shù)閾值,則選擇所述請(qǐng)求的服務(wù)器進(jìn)行連接,并將所述請(qǐng)求的服務(wù)器的連接數(shù)加一;如果所述服務(wù)請(qǐng)求中請(qǐng)求的服務(wù)器的連接數(shù)已達(dá)到所述連接數(shù)閾值,則選擇所述會(huì)話協(xié)議表中服務(wù)器連接數(shù)最小的服務(wù)器進(jìn)行重定向連接,并將選擇的服務(wù)器的連接數(shù)加一。進(jìn)一步地,所述方法還包括:當(dāng)客戶端通過SDN網(wǎng)絡(luò)向服務(wù)器發(fā)送服務(wù)中斷請(qǐng)求時(shí),控制器截獲所述服務(wù)中斷請(qǐng)求,并將所述服務(wù)中斷請(qǐng)求中的客戶端IP、請(qǐng)求的服務(wù)器IP、會(huì)話ID和服務(wù)協(xié)議號(hào)與所述會(huì)話協(xié)議表中的會(huì)話協(xié)議表項(xiàng)進(jìn)行匹配;若在所述會(huì)話協(xié)議表中沒有匹配的會(huì)話協(xié)議表項(xiàng),則對(duì)所述服務(wù)中斷請(qǐng)求不做處理;若在所述會(huì)話協(xié)議表中有匹配的會(huì)話協(xié)議表項(xiàng),則刪除匹配的會(huì)話協(xié)議表項(xiàng),并將請(qǐng)求的服務(wù)器的連接數(shù)減一。為實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施方式還提供一種基于SDN的最小連接負(fù)載均衡系統(tǒng),包括:交換機(jī),用于和控制器建立通道,并向控制器上報(bào)服務(wù)器協(xié)議報(bào)文;控制器,用于預(yù)先設(shè)置最小連接負(fù)載均衡配置表和會(huì)話協(xié)議表,所述最小連接負(fù)載均衡配置表包括連接數(shù)閾值,所述會(huì)話協(xié)議表包括服務(wù)器的連接數(shù);當(dāng)接收到SDN中的交換機(jī)上報(bào)的服務(wù)器協(xié)議報(bào)文時(shí),根據(jù)所述服務(wù)器協(xié)議報(bào)文生成所述會(huì)話協(xié)議表中的會(huì)話協(xié)議表項(xiàng);當(dāng)獲取到客戶端發(fā)送的服務(wù)請(qǐng)求時(shí),根據(jù)所述服務(wù)請(qǐng)求查找會(huì)話協(xié)議表,若在所述會(huì)話協(xié)議表中沒有匹配的會(huì)話協(xié)議表項(xiàng),如果所述服務(wù)請(qǐng)求中請(qǐng)求的服務(wù)器的連接數(shù)小于所述連接數(shù)閾值,則選擇所述請(qǐng)求的服務(wù)器進(jìn)行連接;如果所述服務(wù)請(qǐng)求中請(qǐng)求的服務(wù)器的連接數(shù)已達(dá)到所述連接數(shù)閾值,則選擇所述會(huì)話協(xié)議表中服務(wù)器連接數(shù)最小的服務(wù)器進(jìn)行重定向連接。由上可見,本發(fā)明實(shí)施方式提供的一種最小連接負(fù)載均衡方法和系統(tǒng),通過控制器可以對(duì)全網(wǎng)絡(luò)的服務(wù)器進(jìn)行統(tǒng)一計(jì)算連接數(shù),從而當(dāng)客戶端的服務(wù)請(qǐng)求中請(qǐng)求的服務(wù)器已達(dá)到連接數(shù)閾值時(shí),能夠及時(shí)將服務(wù)請(qǐng)求重定向到連接數(shù)少的服務(wù)器,而且整個(gè)策略高效而簡單。附圖說明為了更清楚地說明本發(fā)明實(shí)施方式或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施方式或現(xiàn)有技術(shù)描述中所需要使用的附圖逐一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施方式,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實(shí)施方式提供的基于SDN的最小連接負(fù)載均衡系統(tǒng)的架構(gòu)示意圖;圖2為本發(fā)明實(shí)施方式提供的基于SDN的最小連接負(fù)載均衡方法的流程示意圖;圖3為本發(fā)明實(shí)施方式擴(kuò)展的Experimenter消息格式的示意圖;圖4為基于圖2方法的應(yīng)用實(shí)例示意圖。圖5為本發(fā)明另一實(shí)施方式提供的基于SDN的最小連接負(fù)載均衡方法的流程示意圖。具體實(shí)施方式為使本發(fā)明實(shí)施方式的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施方式中的附圖,對(duì)本發(fā)明實(shí)施方式中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施方式是本發(fā)明一部分實(shí)施方式,而不是全部的實(shí)施方式。基于本發(fā)明中的實(shí)施方式,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施方式,都屬于本發(fā)明保護(hù)的范圍。SDN是一種新型網(wǎng)絡(luò)創(chuàng)新架構(gòu),其通過開放流(OpenFlow)將網(wǎng)絡(luò)設(shè)備控制面與數(shù)據(jù)面分離開來,由集中的控制器管理,無須依賴底層網(wǎng)絡(luò)設(shè)備(路由器、交換機(jī)、防火墻),屏蔽了來自底層網(wǎng)絡(luò)設(shè)備的差異,從而實(shí)現(xiàn)了網(wǎng)絡(luò)流量的靈活控制,使網(wǎng)絡(luò)作為管道變得更加智能。SDN是將網(wǎng)絡(luò)設(shè)備上的控制權(quán)分離出來,由集中的控制器管理,無須依賴底層網(wǎng)絡(luò)設(shè)備(路由器、交換機(jī)、防火墻),屏蔽了來自底層網(wǎng)絡(luò)設(shè)備的差異。此外,控制權(quán)是完全開放的,用戶可以自定義網(wǎng)絡(luò)路由和傳輸規(guī)則策略,從而更加靈活和智能。本發(fā)明實(shí)施方式提供一種基于SDN的最小連接負(fù)載均衡系統(tǒng),如圖1所示,SDN網(wǎng)絡(luò)中包括控制器和交換機(jī),其中SDN網(wǎng)絡(luò)中的交換機(jī)由集中的控制器管理。此外,客戶端和服務(wù)器分別和交換機(jī)連接,通過SDN網(wǎng)絡(luò)進(jìn)行通訊。本發(fā)明實(shí)施方式提供一種基于SDN的最小連接負(fù)載均衡方法。請(qǐng)參閱圖2,所述方法應(yīng)用于SDN中的控制器上,包括以下步驟:步驟S21:控制器預(yù)先設(shè)置基于SDN的最小連接負(fù)載均衡配置表和會(huì)話協(xié)議表。在本實(shí)施方式中,控制器預(yù)先設(shè)置最小連接負(fù)載均衡配置表,該最小連接負(fù)載均衡配置表中的配置項(xiàng)包括最小連接負(fù)載均衡功能和連接數(shù)閾值,其中最小連接負(fù)載均衡功能用于設(shè)置打開和關(guān)閉最小連接負(fù)載均衡功能,連接數(shù)閾值用于設(shè)置連接數(shù)閾值,缺省值可以為128個(gè)連接數(shù),具體如表1所示。表1在本實(shí)施方式中,控制器還預(yù)先設(shè)置會(huì)話協(xié)議表,該會(huì)話協(xié)議表包括服務(wù)器IP字段、連接數(shù)字段、協(xié)議字段、客戶端IP字段和會(huì)話字段,具體如表2所示。表2字段含義服務(wù)器IP字段(索引)指明服務(wù)器IP地址連接數(shù)字段指明此服務(wù)器的連接數(shù)協(xié)議字段指明服務(wù)協(xié)議號(hào)客戶端IP字段指明客戶端IP地址會(huì)話字段指明會(huì)話ID步驟S22:控制器和交換機(jī)的建立通道。在本實(shí)施方式中,SDN交換機(jī)首先需要建立和控制器的通道,即需要初始化開放流(OpenFlow)通道。交換機(jī)通過私有的Experimenter報(bào)文向控制器上報(bào)交換機(jī)自己的MAC地址和端口ID。和現(xiàn)有技術(shù)相比,本實(shí)施方式對(duì)私有Experimenter報(bào)文進(jìn)行了擴(kuò)展,擴(kuò)展的Experimenter消息格式如圖3所示,Experimenter值為255需要向ONF組織申請(qǐng);Experimentertype值為1表明是從交換機(jī)到控制器,Experimentertype值為2表明是從控制器到交換機(jī)。此外,在擴(kuò)展的Experimenter消息中,還包括自己的MAC地址(OwnMACaddress)和端口ID(PortID),其中端口ID最大支持128個(gè)。步驟S23:控制器接收SDN中的交換機(jī)上報(bào)的服務(wù)器協(xié)議報(bào)文,根據(jù)所述服務(wù)器協(xié)議報(bào)文生成預(yù)先設(shè)置的會(huì)話協(xié)議表中的會(huì)話協(xié)議表項(xiàng)。在本實(shí)施方式中,SDN中的交換機(jī)和控制器的通道建立完成后,交換機(jī)向控制器上報(bào)所連接的服務(wù)器的服務(wù)器協(xié)議報(bào)文,服務(wù)器協(xié)議報(bào)文進(jìn)入到控制器,控制器分別提取服務(wù)器IP、客戶端IP、會(huì)話ID和服務(wù)協(xié)議號(hào),并計(jì)算每個(gè)服務(wù)器的連接數(shù),從而生成會(huì)話協(xié)議表中的會(huì)話協(xié)議表項(xiàng)。步驟S24:當(dāng)控制器獲取到客戶端發(fā)送的服務(wù)請(qǐng)求時(shí),根據(jù)服務(wù)請(qǐng)求查找會(huì)話協(xié)議表,如果有匹配的會(huì)話協(xié)議表項(xiàng),忽略所述服務(wù)請(qǐng)求;如果沒有匹配的會(huì)話協(xié)議表項(xiàng),進(jìn)行步驟S25。在本實(shí)施方式中,當(dāng)客戶端通過SDN網(wǎng)絡(luò)向服務(wù)器發(fā)送服務(wù)請(qǐng)求時(shí),控制器截獲該服務(wù)請(qǐng)求,該服務(wù)請(qǐng)求中包括客戶端IP、請(qǐng)求的服務(wù)器IP、會(huì)話ID和服務(wù)協(xié)議號(hào)。控制器將服務(wù)請(qǐng)求中的客戶端IP、服務(wù)器IP、會(huì)話ID和服務(wù)協(xié)議號(hào)和會(huì)話協(xié)議表進(jìn)行匹配。如果有匹配的會(huì)話協(xié)議表項(xiàng),則此次截獲的服務(wù)請(qǐng)求不是新的服務(wù)請(qǐng)求,因此忽略該服務(wù)請(qǐng)求,無需進(jìn)行操作。步驟S25,判斷請(qǐng)求的服務(wù)器的連接數(shù),如果小于連接數(shù)閾值,進(jìn)行步驟S26;如果達(dá)到連接數(shù)閾值,進(jìn)行步驟S27。在本實(shí)施方式中,控制器將服務(wù)請(qǐng)求中的客戶端IP、服務(wù)器IP、會(huì)話ID和服務(wù)協(xié)議號(hào)和會(huì)話協(xié)議表進(jìn)行匹配,如果沒有匹配的會(huì)話協(xié)議表項(xiàng),則此次截獲的服務(wù)請(qǐng)求是新的服務(wù)請(qǐng)求,需要進(jìn)一步繼續(xù)判斷該服務(wù)請(qǐng)求中請(qǐng)求的服務(wù)器的連接數(shù)是否達(dá)到預(yù)先配置的最小連接負(fù)載均衡配置表中的連接數(shù)閾值。步驟S26,選擇請(qǐng)求的服務(wù)器進(jìn)行連接,并將請(qǐng)求的服務(wù)器的連接數(shù)加一。在本實(shí)施方式中,如果請(qǐng)求的服務(wù)器的連接數(shù)小于預(yù)先配置的最小連接負(fù)載均衡配置表中的連接數(shù)閾值,則根據(jù)服務(wù)器IP來選擇請(qǐng)求的服務(wù)器進(jìn)行連接,并將請(qǐng)求的服務(wù)器的連接數(shù)加一。步驟S27,選擇連接數(shù)最小的服務(wù)器進(jìn)行重定向連接,并將選擇的服務(wù)器的連接數(shù)加一。在本實(shí)施方式中,如果請(qǐng)求的服務(wù)器的連接數(shù)達(dá)到預(yù)先配置的最小連接負(fù)載均衡配置表中的連接數(shù)閾值,則請(qǐng)求的服務(wù)器已經(jīng)飽和,無法與客戶端進(jìn)行連接??刂破鞑檎視?huì)話協(xié)議表中連接數(shù)最小的服務(wù)器,將服務(wù)請(qǐng)求重定向到該連接數(shù)最小的服務(wù)器進(jìn)行連接,并將選擇的服務(wù)器的連接數(shù)加一。圖4為基于圖2方法的應(yīng)用實(shí)例示意圖。如圖4所示,F(xiàn)TP(FileTransferProtocol,文件傳輸協(xié)議)客戶端通過SDN網(wǎng)絡(luò)和FTP服務(wù)器通訊,其中FTP服務(wù)器1的連接數(shù)為100個(gè),F(xiàn)TP服務(wù)器2的連接數(shù)為128個(gè)。預(yù)先設(shè)置連接數(shù)閾值為128。當(dāng)SDN中的控制器截獲FTP客戶端發(fā)送的服務(wù)請(qǐng)求,請(qǐng)求連接FTP服務(wù)器2時(shí),由于FTP服務(wù)器2的連接數(shù)為128個(gè)已經(jīng)達(dá)到連接數(shù)閾值,因此控制器將FTP重定向和FTP服務(wù)器1連接。本發(fā)明的另一實(shí)施方式還提供一種基于SDN的最小連接負(fù)載均衡方法。請(qǐng)參閱圖5,所述方法應(yīng)用于SDN中的控制器上,包括以下步驟:步驟S51~S53和步驟S21~S23類似,故在此不再贅述。步驟S54:如果控制器獲取到客戶端發(fā)送的服務(wù)中斷請(qǐng)求,根據(jù)服務(wù)中斷請(qǐng)求查找會(huì)話協(xié)議表,如果沒有匹配的會(huì)話協(xié)議表項(xiàng),忽略所述服務(wù)中斷請(qǐng)求;如果有匹配的會(huì)話協(xié)議表項(xiàng),進(jìn)行步驟S55。在本實(shí)施方式中,當(dāng)客戶端通過SDN網(wǎng)絡(luò)向服務(wù)器發(fā)送服務(wù)中斷請(qǐng)求時(shí),控制器截獲該服務(wù)中斷請(qǐng)求,該服務(wù)中斷請(qǐng)求中包括客戶端IP、請(qǐng)求的服務(wù)器IP、會(huì)話ID和服務(wù)協(xié)議號(hào)??刂破鲗⒎?wù)中斷請(qǐng)求中的客戶端IP、服務(wù)器IP、會(huì)話ID和服務(wù)協(xié)議號(hào)和會(huì)話協(xié)議表進(jìn)行匹配。如果沒有匹配的會(huì)話協(xié)議表項(xiàng),則忽略該服務(wù)中斷請(qǐng)求。S55:刪除匹配的會(huì)話協(xié)議表項(xiàng),并將請(qǐng)求的服務(wù)器的連接數(shù)減一。通過上述實(shí)施例中的基于SDN的最小連接負(fù)載均衡方法,控制器可以對(duì)全網(wǎng)絡(luò)的服務(wù)器進(jìn)行統(tǒng)一計(jì)算,能夠把負(fù)載差異較大的請(qǐng)求平滑分發(fā)到各個(gè)服務(wù)器或鏈路上,從而提高整個(gè)網(wǎng)絡(luò)的負(fù)載均衡能力。請(qǐng)參閱圖1。本發(fā)明實(shí)施方式提供一種基于SDN的最小連接負(fù)載均衡系統(tǒng),包括:交換機(jī),用于和控制器建立通道,并向控制器上報(bào)服務(wù)器協(xié)議報(bào)文;控制器,用于預(yù)先設(shè)置最小連接負(fù)載均衡配置表和會(huì)話協(xié)議表,所述最小連接負(fù)載均衡配置表包括連接數(shù)閾值,所述會(huì)話協(xié)議表包括服務(wù)器的連接數(shù);當(dāng)接收到SDN中的交換機(jī)上報(bào)的服務(wù)器協(xié)議報(bào)文時(shí),根據(jù)所述服務(wù)器協(xié)議報(bào)文生成所述會(huì)話協(xié)議表中的會(huì)話協(xié)議表項(xiàng);當(dāng)獲取到客戶端發(fā)送的服務(wù)請(qǐng)求時(shí),根據(jù)所述服務(wù)請(qǐng)求查找會(huì)話協(xié)議表,若在所述會(huì)話協(xié)議表中沒有匹配的會(huì)話協(xié)議表項(xiàng),如果所述服務(wù)請(qǐng)求中請(qǐng)求的服務(wù)器的連接數(shù)小于所述連接數(shù)閾值,則選擇所述請(qǐng)求的服務(wù)器進(jìn)行連接;如果所述服務(wù)請(qǐng)求中請(qǐng)求的服務(wù)器的連接數(shù)已達(dá)到所述連接數(shù)閾值,則選擇所述會(huì)話協(xié)議表中服務(wù)器連接數(shù)最小的服務(wù)器進(jìn)行重定向連接。具體地,所述交換機(jī),通過私有的Experimenter報(bào)文向控制器上報(bào)交換機(jī)自己的MAC地址和端口ID,來建立和控制器的通道;分別向控制器上報(bào)所連接的服務(wù)器的服務(wù)器協(xié)議報(bào)文,所述服務(wù)器協(xié)議報(bào)文包括服務(wù)器IP、客戶端IP、會(huì)話ID和服務(wù)協(xié)議號(hào),以使控制器生成所述會(huì)話協(xié)議表中的會(huì)話協(xié)議表項(xiàng)。所述控制器,當(dāng)客戶端通過SDN網(wǎng)絡(luò)向服務(wù)器發(fā)送服務(wù)請(qǐng)求時(shí),截獲所述服務(wù)請(qǐng)求,并將所述服務(wù)請(qǐng)求中的客戶端IP、請(qǐng)求的服務(wù)器IP、會(huì)話ID和服務(wù)協(xié)議號(hào)與所述會(huì)話協(xié)議表中的會(huì)話協(xié)議表項(xiàng)進(jìn)行匹配;若在所述會(huì)話協(xié)議表中有匹配的會(huì)話協(xié)議表項(xiàng),則對(duì)所述服務(wù)請(qǐng)求不做處理;若在所述會(huì)話協(xié)議表中沒有匹配的會(huì)話協(xié)議表項(xiàng),則判斷請(qǐng)求的服務(wù)器的連接數(shù);如果所述服務(wù)請(qǐng)求中請(qǐng)求的服務(wù)器的連接數(shù)小于所述連接數(shù)閾值,則選擇所述請(qǐng)求的服務(wù)器進(jìn)行連接,并將所述請(qǐng)求的服務(wù)器的連接數(shù)加一;如果所述服務(wù)請(qǐng)求中請(qǐng)求的服務(wù)器的連接數(shù)已達(dá)到所述連接數(shù)閾值,則選擇所述會(huì)話協(xié)議表中服務(wù)器連接數(shù)最小的服務(wù)器進(jìn)行重定向連接,并將選擇的服務(wù)器的連接數(shù)加一。所述控制器,還用于:當(dāng)客戶端通過SDN網(wǎng)絡(luò)向服務(wù)器發(fā)送服務(wù)中斷請(qǐng)求時(shí),截獲所述服務(wù)中斷請(qǐng)求,并將所述服務(wù)中斷請(qǐng)求中的客戶端IP、請(qǐng)求的服務(wù)器IP、會(huì)話ID和服務(wù)協(xié)議號(hào)與所述會(huì)話協(xié)議表中的會(huì)話協(xié)議表項(xiàng)進(jìn)行匹配;若在所述會(huì)話協(xié)議表中沒有匹配的會(huì)話協(xié)議表項(xiàng),則對(duì)所述服務(wù)中斷請(qǐng)求不做處理;若在所述會(huì)話協(xié)議表中有匹配的會(huì)話協(xié)議表項(xiàng),則刪除匹配的會(huì)話協(xié)議表項(xiàng),并將請(qǐng)求的服務(wù)器的連接數(shù)減一。上述的涉及到的基于SDN的最小連接負(fù)載均衡系統(tǒng)的具體技術(shù)細(xì)節(jié)和基于SDN的最小連接負(fù)載均衡方法中的類似,故不再具體贅述。由上可見,本發(fā)明實(shí)施方式提供的一種基于SDN的最小連接負(fù)載均衡方法和系統(tǒng),通過控制器可以對(duì)全網(wǎng)絡(luò)的服務(wù)器進(jìn)行統(tǒng)一計(jì)算連接數(shù),從而當(dāng)客戶端的服務(wù)請(qǐng)求中請(qǐng)求的服務(wù)器已達(dá)到連接數(shù)閾值時(shí),能夠及時(shí)將服務(wù)請(qǐng)求重定向到連接數(shù)少的服務(wù)器,而且整個(gè)策略高效而簡單。本說明書中的各個(gè)實(shí)施方式均采用遞進(jìn)的方式描述,各個(gè)實(shí)施方式之間相同相似的部分互相參見即可,每個(gè)實(shí)施方式重點(diǎn)說明的都是與其他實(shí)施方式的不同之處。最后應(yīng)說明的是:上面對(duì)本發(fā)明的各種實(shí)施方式的描述以描述的目的提供給本領(lǐng)域技術(shù)人員。其不旨在是窮舉的、或者不旨在將本發(fā)明限制于單個(gè)公開的實(shí)施方式。如上所述,本發(fā)明的各種替代和變化對(duì)于上述技術(shù)所屬領(lǐng)域技術(shù)人員而言將是顯而易見的。因此,雖然已經(jīng)具體討論了一些另選的實(shí)施方式,但是其它實(shí)施方式將是顯而易見的,或者本領(lǐng)域技術(shù)人員相對(duì)容易得出。本發(fā)明旨在包括在此已經(jīng)討論過的本發(fā)明的所有替代、修改、和變化,以及落在上述申請(qǐng)的精神和范圍內(nèi)的其它實(shí)施方式。當(dāng)前第1頁1 2 3