OpenFlow協(xié)議的目的是優(yōu)化特定流在源與目的間的路徑,但是目前我們面臨的挑戰(zhàn)是現(xiàn)有的ASIC能夠支持的流數(shù)目有限:大約在1000到4000條流。有些人認(rèn)為這是個(gè)短期的限制,ASIC很快就會(huì)大幅提升性能;也有些人宣稱這個(gè)問(wèn)題只能通過(guò)基于x86或者網(wǎng)絡(luò)處理器NP的方案來(lái)解決,在損失一定性能的情況下實(shí)現(xiàn)靈活的表規(guī)格;也有些人完全不贊成OpenFlow設(shè)計(jì),質(zhì)疑是否有現(xiàn)實(shí)可行或經(jīng)濟(jì)適用的方案出現(xiàn)。
那么我們是否真的需要幾十萬(wàn)或者上百萬(wàn)條流才能解決網(wǎng)絡(luò)的突出問(wèn)題?目前ASIC的流表實(shí)現(xiàn)主要靠芯片內(nèi)部的TCAM(三態(tài)內(nèi)容尋址存儲(chǔ)器)來(lái)完成流匹配,這是一種成本高昂且功耗頗大的技術(shù)。因此希望通過(guò)TCAM來(lái)擴(kuò)展流條目到5000或者1000條的成本是很高的(無(wú)可避免的導(dǎo)致售價(jià)攀升),等待使用芯片能夠支持百萬(wàn)條流也就成為美好的期望。
我們認(rèn)為問(wèn)題的解決之道在于:通過(guò)提升流分發(fā)規(guī)則設(shè)計(jì)將邏輯流與物理流分離,軟件和硬件分離。通常典型的ToR交換機(jī)具有50個(gè)端口左右,每個(gè)端口最多有幾百條流。對(duì)于任何的數(shù)據(jù)中心或者企業(yè)應(yīng)用這都是不夠用的,更不要說(shuō)匯聚交換機(jī)。但是以主機(jī)托管數(shù)據(jù)中心為例,如果可以通過(guò)VLAN ID和MAC地址來(lái)歸類流量,那么就有可能用不到一百條流來(lái)處理流量。實(shí)際上,大量的網(wǎng)絡(luò)應(yīng)用只需要很少的流就可以分發(fā)業(yè)務(wù),即使是匯聚層也不例外。
回憶一下個(gè)人電腦時(shí)代,當(dāng)時(shí)PC-XT只有256KB DRAM,因此程序員必須想辦法應(yīng)付有限的存儲(chǔ)空間使得程序跑在有限的物理內(nèi)存上。但是隨著技術(shù)的發(fā)展,新的操作系統(tǒng)可以處理物理存儲(chǔ)和邏輯存儲(chǔ):內(nèi)存管理通過(guò)分頁(yè)技術(shù)可以從物理內(nèi)存中將沒有使用的頁(yè)置換到頁(yè)面文件中,同時(shí)將邏輯存儲(chǔ)的相關(guān)頁(yè)面?zhèn)鬟f至物理內(nèi)存。通過(guò)這種方式基本上解決了系統(tǒng)的邏輯內(nèi)存問(wèn)題,極大得提升了PC的可編程性。與此同時(shí),硬件廠家也逐漸通過(guò)技術(shù)的發(fā)展將DRAM從256KB擴(kuò)展到現(xiàn)在的GB級(jí)別容量,在30年的時(shí)間內(nèi)提升了近百萬(wàn)倍。
有理由相信流處理技術(shù)也會(huì)走相同的途徑。如同分頁(yè)技術(shù)從物理存儲(chǔ)中開辟出邏輯內(nèi)存,緩存也可以用來(lái)從物理流中分離出邏輯流。在研究新型硬件芯片的同時(shí),比如斯坦福大學(xué)的Nick Mckeown教授正在領(lǐng)導(dǎo)研究人員設(shè)計(jì)可處理50萬(wàn)條流的新技術(shù)(芯片面積僅增加15%),我們必須專注于SDN[注]軟件和應(yīng)用的開發(fā),真正釋放邏輯流的限制。
從歷史的經(jīng)驗(yàn)來(lái)看,沒有必要等待那些需要耗費(fèi)若干年時(shí)間才能推出的新型芯片,通過(guò)創(chuàng)新設(shè)計(jì)流表分發(fā)就可以現(xiàn)在介入SDN軟件開發(fā)。SDN硬件會(huì)不斷發(fā)展,但軟件總是會(huì)領(lǐng)先于硬件的突破,是時(shí)候加入SDN大潮了!