專利名稱:交換網的流量控制方法和裝置的制作方法
技術領域:
本發明涉及通信技術領域,尤其涉及一種交換網的流量控制方法和裝置。
背景技術:
在一種由多個線卡和交換網板構成的典型交換網系統中,線卡與線卡之間進行數據的交互,例如,如圖1所示,在第一線卡11中,目的端為第二線卡12的以太網包21經過交換網板3交換后到達第二線卡12,目的端為第三線卡13的以太網包21經過交換網板3 交換后到達第三線卡13。第一線卡11速率為10(ibpS,第二線卡12的速率為lGbps,第三線卡13的速率為lOGbps,當第一線卡11中的以太網包21以10(ibpS的速率發到第二線卡 12時,如果交換網板3連接第二線卡12的出端緩存31不夠大,不能存下所有從第一線卡 11發往第二線卡12的以太網包21,交換網板3連接第二線卡12的出端緩存31處就會出現丟包。為解決上述問題,現有技術將交換網板3連接第二線卡12的出端緩存31設置為不丟包模式,當出端緩存31出現輸入流量大于輸出流量時,經過一段時間,出端緩存31出現反壓,反壓傳遞到交換網板3連接第一線卡11的入端緩存33,表現為當第一線卡11收到交換網板3的暫停(pause)幀時,第一線卡11停止發送以太網包21,即第一線卡11的以太網包21不再發送到出端緩存31。第一線卡11收到pause幀后,由于第一線卡11的緩存隊列為單隊列,所以其中所有的以太網包21都被阻塞,即使交換網板3連接第三線卡13的出端緩存32空閑,由于入端緩存33中目的端為第二線卡12的以太網包21阻塞了后面的目的端為第三線卡13的以太網包21,使其得不到調度,降低了數據的傳輸效率。
發明內容
本發明的實施例所解決的技術問題在于提供一種交換網的流量控制的方法和裝置,實現降低丟包率并且提高數據的傳輸效率。一方面,本發明的實施例提供一種交換網的流量控制方法,包括獲得至少一個目的端接收數據包的速率;將對應所述目的端的數據包發送給所述目的端,其中,發送所述數據包的速率小于或等于所述目的端接收所述數據包的速率。另一方面,本發明的實施例又提供了一種交換網的流量控制裝置,包括處理器,用于獲得至少一個目的端接收數據包的速率;發送器,用于將對應所述目的端的數據包發送給所述目的端,其中,發送所述數據包的速率小于或等于所述目的端接收所述數據包的速率。 采用上述技術方案后,本發明實施例提供的一種交換網的流量控制方法和裝置通過控制數據包的發送速率小于等于目的端的數據接收速率,減少了同一目的端接收到的突發數據包,同時發送端數據包的發送不會停止,從而降低了丟包率且提高了數據的傳輸效率。
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。圖1為現有技術中一種典型交換網系統示意圖;圖2為本發明實施例提供的一種交換網的流量控制方法的流程圖;圖3為本發明實施例提供的一種交換網系統示意圖;圖4為本發明實施例提供的運用于基站控制器的一種交換網系統示意圖;圖5為本發明實施例提供的一種采用本發明實施例中交換網的流量控制方法的裝置示意圖;圖6為圖5中發送器的示意圖。
具體實施例方式下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述。應當明確,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。實施例一本發明實施例提供一種交換網的流量控制方法,如圖2所示,該方法為交換網的數據包發送端進行的流量控制,該方法具體包括步驟101、獲得至少一個目的端接收數據的速率;本步驟具體包括步驟102、將對應所述目的端的數據包發送給所述目的端,其中,發送所述數據包的速率小于或等于所述目的端接收所述數據包的速率。根據數據包對應的目的端接收數據的速率將數據包緩存于對應目的端的數據流中,數據流中數據包的發送速率小于或等于數據包對應的目的端接收數據的速率。可選地, 在將數據包緩存于對應目的端的數據流中時可以按照預設的優先級,以使數據流可以按照優先級發送數據包。數據包總的發送速率小于或等于發送端的發送數據包的速率,以避免由于數據包的發送速率大于發送端的發送速率而在發送端產生丟包。通過控制發送端發送數據包的速率小于或等于目的端接收數據的速率,減少了目的端因為緩存不夠而出現丟包的情況,并且,由于發送端數據包的發送不會停止,因此也提高了數據傳輸效率。實施例二如圖3所示,以下通過一種由多個線卡和交換網板3構成的交換系統為例,說明本發明的技術方案。在本實施例中發送的數據包為以太網包21。假設第一線卡11為發送端,其發送以太網包21的速率為10(ibpS ;第二線卡12和第三線卡13為目的端,第二線卡12的接收速率為Kibps,第三線卡13的接收速率為10(ibpS,第一線卡11將以太網包21分別發送到第二線卡12和第三線卡13。具體的數據交互為第一線卡11首先獲得第二線卡12和第三線卡13的接收以太網包的速率;然后識別第一線卡11需要發送的以太網包21的目的地址中包含的目的端信息, 對于第一線卡11中目的端為第二線卡12的以太網包21,可以將其緩存在作為一條數據流的第一緩存隊列14中;可選地,在將目的端為第二線卡12的以太網包21緩存在第一緩存隊列14中時,可以按照預設的優先級順序進行緩存。同理,對于第一線卡11中目的端為第三線卡13的以太網包21按照預設的優先級緩存在作為另一條數據流的第二緩存隊列15 中,可選地,在將目的端為第三線卡13的以太網包21緩存在第二緩存隊列15中時,可以按照預設的優先級順序進行緩存。考慮到交換網板的緩存較小,上述第一緩存隊列14和第二緩存隊列15可以在第一線卡11上實現。之后調度緩存隊列,將第一緩存隊列14中的以太網包21按照優先級的順序發送給第二線卡12,并且使第一緩存隊列14發送以太網包21的速率小于或等于第二線卡12 的接收以太網包21的速率,例如,將第一緩存隊列14的發送以太網包21的速率設置為 IGbps ;將第二緩存隊列15中的以太網包21按照優先級的順序發送給第三線卡13,并且使第二緩存隊列1發送以太網包21的速率小于或等于第三線卡13接收以太網包21的速率, 例如,將第二緩存隊列15的發送以太網包21的速率設置為10(ibpS。將第一緩存隊列14和第二緩存隊列15總的發送以太網包21的速率設置為第一線卡11的發送速率10(ibpS,以避免以太網包21的發送速率大于第一線卡11的發送速率而產生丟包。其中緩存隊列的調度可以采用輪詢的方式,例如,第一段時間發送第一緩存隊列 14中的以太網包21,第二段時間發送第二緩存隊列15中的以太網包21,第三段時間又發送第一緩存隊列14中的以太網包21,如此交替進行。本發明實施例提供的交換網的流量控制方法與現有技術相比,當第一線卡11中有連續的目的端為第二線卡12的以太網包21需要發送時,由于對第一緩存隊列14發送以太網包21的速率做了控制,因而第一線卡11以mbps的速率發送以太網包21給第二線卡 12,不會因為交換網板3連接第二線卡12的出端緩存31不夠大而造成擁塞丟包,并且由于有兩列緩存隊列發送以太網包21,使第二線卡12和第三線卡13可以相對平均地接收第一線卡11發送的以太網包21,不會造成第三線卡13長時間空閑而第一線卡11中目的端為第三線卡13的以太網包21無法發送的情況,從而提高了傳輸以太網包的效率。實施例三如圖4所示,運用于基站控制器的一種交換網系統,包括兩塊接口板16,一塊交換網板3,十塊處理板17,接口板16的處理能力為10(ibpS,處理板17的處理能力為Kibps,交換板3的交換能力大于40(ibpS,處理板17作為資源池使用,總的處理能力為10(ibpS。接口板16和處理板17之間傳輸的數據為報文,作為發送端的接口板16發送作為數據包的報文給作為目的端的處理板17。具體的數據交互過程為首先獲得處理板17接收報文的速率,也就是處理板17的處理能力,為Kibps ;
然后識別接口板16需要發送的報文的目的地址中包含的目的端信息,按照目的端信息將兩個接口板16中的報文按照目的端分別緩存在雙倍速率同步動態隨機存儲器 (Double Data Rate, DDR)中,對應按照預設的優先級形成對應目的端十塊處理板17的數列緩存隊列18,每塊處理板17對應按照預設的優先級形成的一列或數列緩存隊列18,每塊處理板17對應的一列或數列緩存隊列18作為一條數據流,使每條數據流按照優先級發送報文,根據處理板17的處理能力使每條數據流的發送速率小于等于處理板17的處理能力, 優選為0. 5Gbps ;之后,現場可編程門陣列(Field-ProgrammableGate Array, FPGA)對接口板 16 中的緩存隊列18進行調度,將報文按照優先級的順序以0. 5Gbps的速率發送給處理板17。 每一個接口板16中發送報文總的速率根據接口板16的處理能力進行限制,例如將發送報文的速率限制為10(ibpS,以避免由于報文的發送速率大于接口板16的發送速率而產生丟包。其中對于每條數據流或每條數據流中緩存隊列18的調度可以采用輪詢的方式, 依次發送各數據流或各緩存隊列18。本發明實施例提供的交換網的流量控制方法與現有技術相比,當每條數據流的發送速率為0. 5(ibpS,短時間兩個接口板16同時向一個處理板17發送報文時,若采用輪詢的方式調度各數據流,處理板17足以處理兩個接口板16同時發送的報文,不會發生流量突發時,由于交換網板3和處理板17接口的出端口緩存31較少,不能將突發時間內的報文都緩存下來從而擁塞丟包的情況。需要說明的是,每條數據流的發送速率可以根據情況設定,比如當兩個接口板16 中的一個壞了,無法發送報文時,則設置每條數據流的發送速率為mbps,以提高交換網的效率。當每條數據流的發送速率設置為mbps,短時間兩個接口板16同時向一個處理板 17發送報文時,由于對每一個處理板17對應的數據流的發送速率做了限制,減少了同一個處理板17收到的突發報文,從而降低了丟包率。并且由于每個接口板16對應設置有數列緩存隊列18發送報文,使各處理板17可以相對平均地接收接口板16發送的報文,接口板16不會停止發送報文,從而提高了數據傳輸的效率。實施例四本發明實施例還提供采用上述交換網的流量控制方法的裝置,如圖5所示,該裝置包括處理器51和發送器52。處理器51,用于獲得至少一個目的端接收數據包的速率;發送器52,用于將對應所述目的端的數據包發送給所述目的端,其中,發送所述數據包的速率小于或等于所述目的端接收所述數據包的速率。進一步地,如圖6所示,發送器52包括緩存模塊521和發送模塊522。緩存模塊521,用于根據數據包的目的端接收數據包的速率將所述數據包緩存于對應所述目的端的數據流中,發送模塊522,用于發送所述數據流中的數據包,其中,發送所述數據流中數據包的速率小于或等于所述目的端接收數據包的速率。進一步地,所述目的端有多個,發送器52還用于使發送所述數據包總的速率小于或等于發送端的發送數據包的速率。進一步地,所述目的端有多個,發送模塊522具體用于依次發送對應每個目的端的數據流中的數據,其中,發送數據流中數據包的速率小于或等于所述每個目的端接收數據包的速率。進一步地,緩存模塊521具體用于根據數據包的目的端接收數據包的速率將數據包按照預設的優先級緩存于對應目的端的數據流中。通過根據處理器51獲得的目的端的數據接收速率,發送器52發送數據包的速率小于等于所發送目的端的數據接收速率,且發送器52調度緩存模塊521中對應目的端的數據流以小于等于發送端的數據包發送速率發送其中的數據包,還可以依次發送各數據流, 并以數據流的發送速率發送緩存于其中的數據包,從而減少了同一目的端接收到的突發數據包,同時發送端數據包的發送不會停止,降低了丟包率且提高了數據傳輸的效率。所有上述實施例中發送端可以為線卡或接口板等,用于發送數據包;目的端可以為端口、CPU中的核、線卡或處理板等,用于接收數據包。本領域普通技術人員可以理解實現上述方法實施例的全部或部分流程可以通過計算機程序指令相關的硬件來完成,前述的程序可以存儲于一計算機可讀取存儲介質中, 該程序在執行時,執行包括上述方法實施例的步驟;而前述的存儲介質包括R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質。以上所述,僅為本發明的具體實施方式
,但本發明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發明揭露的技術范圍內,可輕易想到變化或替換,都應涵蓋在本發明的保護范圍之內。因此,本發明的保護范圍應以所述權利要求的保護范圍為準。
權利要求
1.一種交換網的流量控制方法,其特征在于,包括獲得至少一個目的端接收數據包的速率;將對應所述目的端的數據包發送給所述目的端,其中,發送所述數據包的速率小于或等于所述目的端接收所述數據包的速率。
2.根據權利要求1所述的方法,其特征在于,將對應所述目的端的數據包發送給所述目的端,其中,發送所述數據包的速率小于或等于所述目的端接收數據包的速率之前進一步包括根據所述目的端接收數據包的速率將所述數據包緩存于對應所述目的端的數據流中, 其中,發送所述數據流中數據包的速率小于或等于所述目的端接收數據包的速率。
3.根據權利要求1或2所述的方法,其特征在于,當所述目的端有多個時,發送所述數據包總的速率小于或等于發送端的發送數據包的速率。
4.根據權利要求2所述的方法,其特征在于,所述目的端有多個,將對應所述目的端的數據包發送給所述目的端包括依次發送對應每個目的端的數據流中的數據,其中,發送所述數據流中數據包的速率小于或等于所述每個目的端接收數據包的速率。
5.根據權利要求2或4所述的方法,其特征在于,所述根據所述目的端接收數據包的速率將所述數據包緩存于對應所述目的端的數據流中包括根據所述目的端接收數據包的速率將所述數據包按照預設的優先級緩存于對應所述目的端的數據流中。
6.一種交換網的流量控制裝置,其特征在于,包括處理器,用于獲得至少一個目的端接收數據包的速率;發送器,用于將對應所述目的端的數據包發送給所述目的端,其中,發送所述數據包的速率小于或等于所述目的端接收所述數據包的速率。
7.根據權利要求6所述的裝置,其特征在于,所述發送器包括緩存模塊,用于根據所述目的端接收數據包的速率將所述數據包緩存于對應所述目的端的數據流中;發送模塊,用于發送所述數據流中的數據包,其中,發送所述數據流中數據包的速率小于或等于所述目的端接收數據包的速率。
8.根據權利要求6或7所述的裝置,其特征在于,所述目的端有多個,所述發送器還用于使發送所述數據包總的速率小于或等于發送端的發送數據包的速率。
9.根據權利要求7所述的裝置,其特征在于,所述目的端有多個,所述發送模塊具體用于依次發送對應每個目的端的數據流中的數據,其中,發送所述數據流中數據包的速率小于或等于所述每個目的端接收數據包的速率。
10.根據權利要求7或9所述的裝置,其特征在于,所述緩存模塊具體用于根據所述目的端接收數據包的速率將所述數據包按照預設的優先級緩存于對應所述目的端的數據流中。
全文摘要
本發明的實施例提供了一種交換網的流量控制的方法和裝置,涉及通信技術領域,實現降低丟包率并且提高交換網的效率。該方法包括獲得至少一個目的端接收數據包的速率;將對應所述目的端的數據包發送給所述目的端,其中,發送所述數據包的速率小于或等于所述目的端接收所述數據包的速率。該裝置包括處理器,用于獲得至少一個目的端接收數據包的速率;發送器,用于將對應目的端的數據包發送給目的端,其中,發送數據包的速率小于或等于所述目的端接收所述數據包的速率。
文檔編號H04L12/56GK102356609SQ201180001854
公開日2012年2月15日 申請日期2011年8月24日 優先權日2011年8月24日
發明者雷春, 項能武 申請人:華為技術有限公司