使網(wǎng)絡(luò)流對準處理資源的技術(shù)的制作方法
【專利說明】
【背景技術(shù)】
[0001]現(xiàn)代的計算設(shè)備已經(jīng)變成個人、商業(yè)和社會使用的普遍工具。如此,許多現(xiàn)代計算設(shè)備能夠連接到各種數(shù)據(jù)網(wǎng)絡(luò)(其包括互網(wǎng)絡(luò)化和企業(yè)內(nèi)網(wǎng)絡(luò)化)以通過這樣的網(wǎng)絡(luò)檢索并且接收數(shù)據(jù)通信。連接到一個網(wǎng)絡(luò)的計算設(shè)備經(jīng)常需要與在不同網(wǎng)絡(luò)上連接的計算設(shè)備通信。
[0002]軟件定義網(wǎng)絡(luò)化(SDN)是這樣的網(wǎng)絡(luò)化架構(gòu),其中關(guān)于要如何處理網(wǎng)絡(luò)業(yè)務(wù)的決策和實際處理網(wǎng)絡(luò)業(yè)務(wù)的設(shè)備或部件解耦成獨立平面(即,控制平面和數(shù)據(jù)平面)。在SDN環(huán)境中,集中式SDN控制器用于對網(wǎng)絡(luò)業(yè)務(wù)而不是網(wǎng)絡(luò)設(shè)備(例如網(wǎng)絡(luò)交換機)做出轉(zhuǎn)發(fā)決策。典型地,轉(zhuǎn)發(fā)決策傳送到在SDN環(huán)境中操作的網(wǎng)絡(luò)設(shè)備,其進而基于由SDN控制器做出的轉(zhuǎn)發(fā)決策將與網(wǎng)絡(luò)業(yè)務(wù)關(guān)聯(lián)的網(wǎng)絡(luò)包轉(zhuǎn)發(fā)到下一個目的地。然而,SDN控制器通常缺乏對網(wǎng)絡(luò)業(yè)務(wù)做出細粒度轉(zhuǎn)發(fā)決策的能力。具體地,典型的SDN控制器關(guān)于系統(tǒng)級而不是設(shè)備架構(gòu)級做出轉(zhuǎn)發(fā)決策。即,典型的SDN控制器不能基于最佳地接收和處理特定類型的網(wǎng)絡(luò)業(yè)務(wù)的目的計算設(shè)備的個體部件和/或部件組做出轉(zhuǎn)發(fā)決策。
【附圖說明】
[0003]本文描述的概念通過示例而非限制的方式在附圖中圖示。為了圖示的簡單和清楚起見,在圖中圖示的元件不一定按比例繪制。在認為適當?shù)牡胤剑瑯颂栐趫D之中重復(fù)來指示對應(yīng)或類似元件。
[0004]圖1是對于用于使網(wǎng)絡(luò)流對準計算設(shè)備的處理資源的系統(tǒng)的至少一個實施例的簡化框圖;
圖2是圖1的系統(tǒng)的計算設(shè)備的環(huán)境的至少一個實施例的簡化框圖;
圖3是圖1的系統(tǒng)的網(wǎng)絡(luò)控制器的環(huán)境的至少一個實施例的簡化框圖;
圖4是圖1的系統(tǒng)的網(wǎng)絡(luò)交換機的環(huán)境的至少一個實施例的簡化框圖;
圖5是用于使網(wǎng)絡(luò)流對準可由圖1和3的網(wǎng)絡(luò)控制器執(zhí)行的處理資源的方法的至少一個實施例的簡化流程圖;
圖6是用于使網(wǎng)絡(luò)流對準可由圖1和2的計算設(shè)備執(zhí)行的處理資源的方法的至少一個實施例的簡化流程圖;
圖7是用于使網(wǎng)絡(luò)流對準可由圖1和4的網(wǎng)絡(luò)交換機執(zhí)行的處理資源的方法的至少一個實施例的簡化流程圖;
圖8是用于使網(wǎng)絡(luò)流對準可由圖1和4的網(wǎng)絡(luò)交換機執(zhí)行的處理資源的方法的至少一個其他實施例的簡化流程圖。
【具體實施方式】
[0005]盡管本公開的概念易受各種修改和備選形式影響,其特定示范性實施例已通過圖中的示例示出并且將在本文詳細描述。然而應(yīng)該理解沒有將本公開的概念限制于公開的特別形式的意圖,而相反,意圖是要涵蓋所有與本公開和附上的權(quán)利要求一致的所有修改、等同物和備選項。
[0006]在說明書中對“一個實施例”、“實施例”、“說明性實施例”等的引用指示描述的實施例可包括特定特征、結(jié)構(gòu)或特性,但每個實施例可包括或可不一定包括該特定特征、結(jié)構(gòu)或特性。此外,這樣的短語不一定指相同的實施例。此外,當特定特征、結(jié)構(gòu)或特性連同實施例描述時,認為連同其他無論是否明確描述的實施例實現(xiàn)這樣的特征、結(jié)構(gòu)或特性,這在本領(lǐng)域內(nèi)技術(shù)人員的知識內(nèi)。另外,應(yīng)意識到采用“A、B和C中的至少一個”形式包括在列表中的項可以意指(A) ;(B) ;(C) ;(A和B);(八和0;(8和0 ;或(六、8和0。相似地,采用“A、B或C中的至少一個”形式列出的項可以意指(A) ;(B) ;(C) ;(A和B) ;(A和C) ;(B和C);或(八、8和0。
[0007]公開的實施例在一些情況下可采用硬件、固件、軟件或其任何組合來實現(xiàn)。公開的實施例還可實現(xiàn)為由一個或多個暫時性或非暫時性機器可讀(例如,計算機可讀)存儲介質(zhì)攜帶或存儲在其上的指令,這些指令可由一個或多個處理器讀取并且執(zhí)行。機器可讀存儲介質(zhì)可體現(xiàn)為用于采用機器可讀的形式存儲或傳輸信息的任何存儲設(shè)備、機構(gòu)或其他物理結(jié)構(gòu)(例如,易失性或非易失性存儲器、媒體盤或其他媒體設(shè)備)。
[0008]在圖中,一些結(jié)構(gòu)或方法特征可采用特定設(shè)置和/或排序示出。然而,應(yīng)意識到可不需要這樣的特定設(shè)置和/或排序。相反,在一些實施例中,這樣的特征可采用與在說明性圖中示出的不同的方式和/或順序設(shè)置。另外,在特定圖中包括結(jié)構(gòu)或方法特征并不意在暗指在所有實施例中需要這樣的特征,并且在一些實施例中,可不包括這樣的特征或其可與其他特征組合。
[0009]現(xiàn)在參考圖1,在說明性實施例中,用于使網(wǎng)絡(luò)流對準處理資源的系統(tǒng)100包括計算設(shè)備110、網(wǎng)絡(luò)控制器170、遠程計算設(shè)備180和網(wǎng)絡(luò)交換機190,其中的每個可能夠在軟件定義網(wǎng)絡(luò)化(SDN)環(huán)境中操作。在使用中,網(wǎng)絡(luò)交換機190可從遠程計算設(shè)備180接收網(wǎng)絡(luò)包。在一些實施例中,網(wǎng)絡(luò)包可針對或用別的方式定向到由計算設(shè)備110的處理節(jié)點112 (例如,處理節(jié)點114或處理節(jié)點116)中的一個的處理器(例如,處理器120或處理器140)執(zhí)行的應(yīng)用。在這樣的實施例中,網(wǎng)絡(luò)交換機190請求從網(wǎng)絡(luò)控制器170轉(zhuǎn)發(fā)對于接收網(wǎng)絡(luò)包的信息,其包括與計算設(shè)備110和/或SDN環(huán)境關(guān)聯(lián)的架構(gòu)信息(例如,拓撲數(shù)據(jù)、配置數(shù)據(jù)、布局數(shù)據(jù)和/或描述計算設(shè)備110和/或網(wǎng)絡(luò)的硬件或軟件部件的任何其他類型的數(shù)據(jù))。在一些實施例中,網(wǎng)絡(luò)控制器170還包括指示在計算設(shè)備110的哪個處理節(jié)點112內(nèi)執(zhí)行什么應(yīng)用的信息。使用架構(gòu)信息,網(wǎng)絡(luò)控制器170確定和/或生成對應(yīng)于接收網(wǎng)絡(luò)包的網(wǎng)絡(luò)流信息。該網(wǎng)絡(luò)流信息可識別或用別的方式指示執(zhí)行接收網(wǎng)絡(luò)包所針對的應(yīng)用的特定處理節(jié)點112 (例如,處理節(jié)點114或處理節(jié)點116)。在一些實施例中,網(wǎng)絡(luò)流信息還可識別或用別的方式指示接收網(wǎng)絡(luò)包應(yīng)轉(zhuǎn)發(fā)到的特定處理節(jié)點112的網(wǎng)絡(luò)適配器(例如,NIC 136 或 NIC 156)。
[0010]在確定網(wǎng)絡(luò)流信息后,網(wǎng)絡(luò)控制器170將網(wǎng)絡(luò)流信息傳輸?shù)接嬎阍O(shè)備110,其對識別的網(wǎng)絡(luò)適配器(例如,NIC 136或NIC 156)中的流過濾器編程或用別的方式配置它。在一些實施例中,流過濾器可配置成將與網(wǎng)絡(luò)流(例如,接收的網(wǎng)絡(luò)包和任何后續(xù)網(wǎng)絡(luò)包)關(guān)聯(lián)的網(wǎng)絡(luò)包復(fù)制到分配給識別的網(wǎng)絡(luò)適配器(例如,NIC 136或NIC 156)的特定網(wǎng)絡(luò)存儲器隊列(例如,Q0 132、Q1 134、Q2 152、Q3 154)。在一些實施例中,網(wǎng)絡(luò)存儲器隊列(例如,Q0 132、Q1 134、Q2 152、Q3 154)可配置成作為雙向或單向存儲器隊列操作。
[0011]在流過濾器已經(jīng)由計算設(shè)備110編程后,網(wǎng)絡(luò)控制器170基于流信息確定對于接收網(wǎng)絡(luò)包的轉(zhuǎn)發(fā)信息。該轉(zhuǎn)發(fā)信息可識別或用別的方式指示接收網(wǎng)絡(luò)包應(yīng)轉(zhuǎn)發(fā)到的特定處理節(jié)點112的網(wǎng)絡(luò)適配器(例如,NIC 136或NIC 156)。在一些實施例中,轉(zhuǎn)發(fā)信息可包括指示通信耦合于識別的網(wǎng)絡(luò)適配器(例如,NIC 136或NIC 156)的網(wǎng)絡(luò)交換機190的特定接口或端口(例如,PA 192、PB 194、PC 196)的信息。網(wǎng)絡(luò)控制器170可將轉(zhuǎn)發(fā)信息傳輸?shù)骄W(wǎng)絡(luò)交換機190,其可利用轉(zhuǎn)發(fā)信息來將接收的網(wǎng)絡(luò)包轉(zhuǎn)發(fā)到通信耦合于識別的網(wǎng)絡(luò)適配器(例如,NIC 136或NIC 156)的網(wǎng)絡(luò)交換機190的特定端口(例如,PA 192、PB 194, PC196)。應(yīng)意識到通過維持與計算設(shè)備110和/或SDN環(huán)境關(guān)聯(lián)的架構(gòu)信息,網(wǎng)絡(luò)控制器170可使網(wǎng)絡(luò)流對準執(zhí)行特定應(yīng)用的特定處理節(jié)點112。那樣,與特定網(wǎng)絡(luò)流關(guān)聯(lián)的網(wǎng)絡(luò)包的處理以及該流所針對的應(yīng)用的執(zhí)行可在相同處理節(jié)點112內(nèi)出現(xiàn),這是存儲器資源和可用網(wǎng)絡(luò)帶寬的更高效使用、降低網(wǎng)絡(luò)和/或處理延遲、使計算設(shè)備110能夠消耗更少的功率并且使更少的處理資源能夠用于處理網(wǎng)絡(luò)包。例如,處理與在執(zhí)行目標應(yīng)用的處理節(jié)點相同的處理節(jié)點112內(nèi)的網(wǎng)絡(luò)流的網(wǎng)絡(luò)包比處理一個處理節(jié)點112 (例如,處理節(jié)點112)中的網(wǎng)絡(luò)流的網(wǎng)絡(luò)包更高效并且將那些包傳輸(例如,轉(zhuǎn)發(fā)、發(fā)送,等)到不同處理節(jié)點112 (例如,處理節(jié)點114),在該處理節(jié)點112內(nèi)經(jīng)由一個或多個通信鏈路(例如,QuickPath互連(QPI)118、點到點鏈路、總線鏈路、線、電纜、光導(dǎo)、印刷電路板跡線,等)執(zhí)行目標應(yīng)用。采用這樣的方式在處理節(jié)點112之間傳輸網(wǎng)絡(luò)包可潛在地影響計算設(shè)備110的延遲、抖動和吞吐量。這在其中存在需要大量新的和/或現(xiàn)有網(wǎng)絡(luò)流或網(wǎng)絡(luò)包(其需要在與其中執(zhí)行目標應(yīng)用的那個不同的處理節(jié)點112中處理)的情況下可尤其真實。
[0012]計算設(shè)備110可體現(xiàn)為或用別的方式包括能夠執(zhí)行本文描述的功能的任何類型的計算設(shè)備,其包括但不限于服務(wù)器計算機、臺式計算機、膝上型計算設(shè)備、消費者電子設(shè)備、移動計算設(shè)備、移動電話、智能電話、平板計算設(shè)備、個人數(shù)字助理、可佩戴計算設(shè)備、智能電視、智能家電和/或其他類型的計算設(shè)備。在一些實施例中,計算設(shè)備110能夠在軟件定義網(wǎng)絡(luò)化(SDN)環(huán)境中操作。如在下文更詳細論述的,說明性計算設(shè)備110包括多個處理節(jié)點112,其中的每個包括處理器、存儲器和網(wǎng)絡(luò)適配器。如在圖1中示出的,說明性計算設(shè)備110還包括輸入/輸出(I/O)子系統(tǒng)162和數(shù)據(jù)存儲164。當然,在其他實施例中,計算設(shè)備110可包括其他或額外部件,例如通常在計算機(例如,各種輸入/輸出設(shè)備)中發(fā)現(xiàn)的那些。
[0013]在一些實施例中,計算設(shè)備110的每個處理節(jié)點112可體現(xiàn)為非均勻存儲器訪問(NUMA)節(jié)點。在說明性實施例中,計算設(shè)備110包括處理節(jié)點114和處理節(jié)點116。說明性處理節(jié)點114包括處理器120、存儲器126和網(wǎng)絡(luò)接口卡(NIC)136。在一些實施例中,處理節(jié)點114內(nèi)的處理器120、存儲器126和NIC 136可經(jīng)由一個或多個通信鏈路(例如,點到點鏈路、總線鏈路、線、電纜、光導(dǎo)、印刷電路板跡線,等)而通信耦合于彼此。另外,在一些實施例中,處理節(jié)點114的說明性部件中的一個或多個可包含在另一個部件中或用別的方式形成其一部分。例如,在一些實施例中,存儲器126或其部分可包含在處理器120中。
[0014]處理節(jié)點114的處理器120可體現(xiàn)為能夠執(zhí)行本文描述的功能的任何類型的處理器。例如,在一些實施例中,處理器120可體現(xiàn)為單核處理器、數(shù)字信號處理器、微控制器或其他處理器或處理/控制電路。在其他實施例(例如在圖1中說明性地示出的)中,處理器120可體現(xiàn)為多核處理器,其具有多個處理器核(例如,核A 122和核B 124)。在這樣的實施例中,處理器120的每個處理器核122、124能夠執(zhí)行一個或多個應(yīng)用。
[0015]處理節(jié)點114的存儲器126可體現(xiàn)為能夠執(zhí)行本文描述的功能的任何類型的易失性或非易失性存儲器或數(shù)據(jù)存儲。在操作中,存儲器126可存儲在計算設(shè)備110的操作期間使用的各種數(shù)據(jù)和軟件,例如操作系統(tǒng)、應(yīng)用、程序、庫和驅(qū)動器。例如,在一些實施例中,可分配或用別的方式預(yù)留存儲器126的一部分(例如,應(yīng)用存儲器空間128)以供由處理器核A 122和/或處理器核B 124執(zhí)行的應(yīng)用使用。另外,在一些實施例中,可分配或用別的方式預(yù)留存儲器126的另一個部分(例如,NIC存儲器空間130)以用于存儲要由NIC 136發(fā)送的數(shù)據(jù)和/或由NIC 136接收的數(shù)據(jù)的存儲。在這樣的實施例中,NIC存儲器空間130可包括一個或多個存儲器隊列(例如,Q0 132和Q1 134),用于存儲要經(jīng)由NIC 136的端口 P1137 (例如,接口)發(fā)送或接收的數(shù)據(jù)(例如,網(wǎng)絡(luò)包,等)。在說明性實施例中,存儲器126經(jīng)由一個或多個通信鏈路(即,點到點鏈路、總線鏈路、線、電纜、光導(dǎo)、印刷電路板跡線,等)通信耦合于處理器120。
[0016]計算節(jié)點110的處理節(jié)點114的NIC 136可體現(xiàn)為能夠經(jīng)由一個或多個通信網(wǎng)絡(luò)(例如,局域網(wǎng)、個人區(qū)域網(wǎng)、廣域網(wǎng)、蜂窩網(wǎng)絡(luò)、例如互聯(lián)網(wǎng)等全局網(wǎng)絡(luò),等)在計算設(shè)備110和/或計算設(shè)備110的處理節(jié)點114與其他計算設(shè)備之間實現(xiàn)通信的任何類型的通信電路、設(shè)備或其集合。例如,在一些實施例中,處理節(jié)點114的NIC 136可能夠在計算設(shè)備110的處理節(jié)點114與遠程計算設(shè)備180之間實現(xiàn)通信。NIC 136可配置成使用任意一個或多個通信技術(shù)(例如,無線或有線通信)和關(guān)聯(lián)協(xié)議(例如,以太網(wǎng)、W1-Fi?, WiMAX,等)來實施這樣的通信。在說明性實施例中,NIC 136包括或用別的方式通信耦合于端口(例如,P1 137)或通信接口。端口(例如,P1 137)可配置成使處理節(jié)點114通信耦合于任何數(shù)量的其他計算設(shè)備(例如,遠程計算設(shè)備180)和/或網(wǎng)絡(luò)(例如,物理或邏輯網(wǎng)絡(luò))。例如,說明性端口 137使處理節(jié)點114的NIC 136通信耦合于網(wǎng)絡(luò)交換機190,其可通信耦合于遠程計算設(shè)備180、網(wǎng)絡(luò)控制器170和/或任何數(shù)量的其他計算設(shè)備或網(wǎng)絡(luò)。
[0017]在說明性實施例中,NIC 136經(jīng)由一個或多個通信鏈路(S卩,點到點鏈路、總線鏈路、線、電纜、光導(dǎo)、印刷電路板跡線,等)通信耦合于處理器120。例如,在一些實施例中,NIC136體現(xiàn)為外圍部件互連高速(PCIe)設(shè)備,其經(jīng)由處理節(jié)點114的PCIe I/O總線而通信耦合于處理器120。當然,應(yīng)意識到NIC 136可體現(xiàn)為通信耦合于處理節(jié)點114的處理器120的任何其他類型的通信設(shè)備。
[0018]在一些實施例中,NIC 136還可包括一個或多個流過濾器138。如在下文更詳細論述的,一個或多個流過濾器138可在NIC 136中由計算設(shè)備110至少部分基于從網(wǎng)絡(luò)控制器170接收的流信息或用別的方式作為該流信息的函數(shù)而編程。在一些實施例中,流過濾器138在NIC存儲器空間130中規(guī)定被指派或用別的方式分配以用于存儲由NIC 136接收的網(wǎng)絡(luò)包和/或要由NIC 136傳輸?shù)木W(wǎng)絡(luò)包的特定存儲器隊列(例如,Q0 132、Q1 134,等)。另外,在一些實施例中,流過濾器138在NIC存儲器空間130中規(guī)定分配以用于存儲由NIC 136的特定端口(例如,P1 137)接收的網(wǎng)絡(luò)包和/或要由NIC 136的特定端口(例如,P1 137)傳輸?shù)木W(wǎng)絡(luò)包的特定存儲器隊列(例如,Q0 132、Q1 134,等)。另外或備選地,在一些實施例中,NIC 136 (或NIC 136或驅(qū)動器)可在NIC存儲器空間130中對NIC 136內(nèi)包括的每個端口(例如,P1 137)預(yù)先分配或預(yù)先指派存儲器隊列(例如,Q0 132、Q1 134,等)。SP,在計算設(shè)備110在NIC 136中對流過濾器138編程之前可在NIC存儲器空間130中對NIC 136的每個端口(例如,PI 137)分配或用別的方式指派特定存儲器隊列(例如,QO 132、Q1 134,等)。例如,在一些實施例中,NIC 136和/或關(guān)聯(lián)的驅(qū)動器可在計算設(shè)備110的初始化期間在處理節(jié)點114的NIC存儲器空間130中預(yù)先分配一個或多個存儲器隊列(例如,QO 132、Q1 134,等)。那樣,在與NIC 136相同的處理節(jié)點114內(nèi)為NIC 136內(nèi)包括的每個端口(例如,P1 137)分配存儲器隊列(例如,QO 132、Q1 134,等)。應(yīng)意識到,在一些實施例中,網(wǎng)絡(luò)存儲器隊列(例如,QO 132、Q1 134、Q2 152、Q3 154)可配置成作為雙向存儲器隊列(即,傳輸和接收)或單向存儲器隊列(即,傳輸或接收)操作。
[0019]說明性處理節(jié)點116包括處理器140、存儲器146和NIC 156。處理節(jié)點116的處理器140可包括多個處理器核(例如,核A 142和核B 114)。處理節(jié)點116的存儲器146包括分配以供由處理器核A 142和/或處理器核B 144執(zhí)行的應(yīng)用使用的存儲器的一部分(例如,應(yīng)用存儲器空間148)、分配以用于存儲要由NIC 156發(fā)送和/或由NIC 156接收的數(shù)據(jù)(例如,網(wǎng)絡(luò)包等)的存儲器的一部分(例如,NIC存儲器空間150)和要經(jīng)由NIC 156的端口 157 (例如,接口)發(fā)送或接收的一個或多個存儲器隊列(例如,Q2 152和Q3 154)。說明性NIC 156包括或用別的方式通信耦合于端口(例如,P2 157)。另外,在一些實施例中,NIC 156包括一個或多個流過濾器158。處理節(jié)點116的那些部件可與處理節(jié)點114的對應(yīng)部件相似,其的描述能適用于處理節(jié)點116的對應(yīng)部件并且為了描述的清楚起見而不在本文重復(fù)。
[0020]在一些實施例中,NIC 136和NIC 156可結(jié)合、集群或用別的方式聚合(如由邏輯連接160說明性示出的)以便增加吞吐量、實現(xiàn)負載平衡和/或提供容錯。在這樣的實施例中,NIC 136和NIC 156可形成邏輯網(wǎng)絡(luò)接口,可對其指派單個互聯(lián)網(wǎng)協(xié)議(IP)地址用于從其他計算設(shè)備(例如,遠程計算設(shè)備180)接收網(wǎng)絡(luò)包。當然,應(yīng)意識到盡管由使NIC 136和NIC 156結(jié)合而形成的邏輯網(wǎng)絡(luò)接口可被指派單個IP地址,NIC 136和NIC 156中的每個可