本公開涉及計算機網絡。
背景技術:
1、在典型的云數(shù)據中心環(huán)境中,存在大量互連的服務器,這些服務器提供計算和/或存儲能力來運行各種應用程序。例如,數(shù)據中心可以包括為用戶(即,數(shù)據中心的客戶)托管應用程序和服務的設施。例如,數(shù)據中心可以托管所有基礎設施設備,諸如聯(lián)網和存儲系統(tǒng)、冗余電源和環(huán)境控制。在典型的數(shù)據中心中,存儲服務器和應用服務器(計算節(jié)點)的集群經由一層或多層物理網絡交換機和路由器提供的高速交換結構相互連接。更復雜的數(shù)據中心為遍布全球的基礎設施提供位于各種物理托管設施中的用戶支持設備。
2、服務器與交換結構之間的連接發(fā)生在稱為網絡接口卡(nic)的硬件模塊上。傳統(tǒng)的nic包括執(zhí)行分組轉發(fā)的專用集成電路(asic),其包括一些基本的第2層/第3層(l2/l3)功能。在傳統(tǒng)的nic中,被稱為“數(shù)據路徑”的分組處理、監(jiān)管和其他高級功能由主機中央處理單元(cpu)(即包括nic的服務器的cpu)來執(zhí)行。因此,服務器上運行的應用程序和數(shù)據路徑處理共享服務器中的cpu資源。例如,在4核x86服務器中,可以保留其中一個核心用于數(shù)據路徑,剩下3個核心(或75%的cpu)用于應用程序和主機操作系統(tǒng)。
3、一些nic供應商已經開始在nic本身中包括額外的處理單元,以將至少一些數(shù)據路徑處理從主機cpu卸載到nic。nic中的處理單元可以例如是多核arm處理器,其具有由數(shù)據處理單元(dpu)、現(xiàn)場可編程門陣列(fpga)和/或asic提供的某種可編程硬件加速。包括這種增強處理能力的nic通常被稱為smartnic。
技術實現(xiàn)思路
1、通常,描述了用于邊緣服務平臺的技術,該平臺利用smartnic的處理單元來增強包括smartnic的服務器的網絡的處理和聯(lián)網功能。邊緣服務平臺提供的功能可以包括:nic的編排;nic上應用編程接口(api)驅動的服務部署;nic添加、刪除和替換;監(jiān)控nic上的服務和其他資源;以及管理nic上運行的各種服務之間的連接。
2、網絡可以包括多個服務器,其中,分組在多個服務器的一對或多對之間在整個網絡中傳播。分組在多個服務器中的兩個服務器之間往返所花費的時間量定義了兩個服務器之間的延遲。確定一對或多對服務器之間的延遲可能是有益的,以便控制器可以監(jiān)控網絡的性能?,F(xiàn)有的延遲測量和監(jiān)控技術包括pingmesh,這是一種使用網格可視化來確定和顯示數(shù)據中心中任意兩個服務器之間的延遲的程序。pingmesh通過使每個服務器向每個其他服務器發(fā)送周期性的“ping”(即因特網控制消息協(xié)議(icmp)回應請求)來創(chuàng)建這樣的圖表,然后這些服務器立即用icmp回應回復來響應。pingmesh可以可選地使用傳輸控制協(xié)議(tcp)和超文本傳輸協(xié)議(http)ping。pingmesh基于ping請求/回復往返時間收集延遲信息,并使用該信息來生成網格可視化。
3、如本文進一步詳細描述的,nic的處理單元可以執(zhí)行代理,該代理確定托管nic的裝置與另一裝置之間的延遲。在確定延遲時,相對于現(xiàn)有技術(諸如依賴于主機生成的ping請求/回復的pingmesh),nic的處理單元使用很少或不使用主機裝置的計算資源,諸如主機cpu和存儲器。在一些示例中,在nic處理單元上執(zhí)行的代理可以通過窺探(snooping)由主機裝置生成和接收的并通過nic上的數(shù)據路徑的數(shù)據或控制流量來確定延遲。例如,代理可以檢測正向分組流的正向分組和反向分組流的反向分組,生成并獲得正向分組和反向分組的時間戳信息,并根據時間戳信息計算往返時間,以確定正向和反向分組流的源裝置與目的地裝置之間的延遲。代理可以針對地址解析協(xié)議(arp)請求/回復執(zhí)行類似的過程。以這種方式,代理可以確定延遲,而無需代理或主機為了延遲測量的目的而單獨地生成和發(fā)送ping請求或響應到另一裝置。代理可以改為窺探裝置之間交換的現(xiàn)有數(shù)據流量。代理也可以對icmp回應請求/回復消息對執(zhí)行類似的過程。此外,因為在nic上執(zhí)行代理,所以分組流、arp請求/回復分組和icmp回應請求/回復分組中的至少一些分組的時間戳不受主機內由內核網絡堆棧引起的延遲、nic存儲器與主機存儲器之間的dma傳輸或存儲器復制、中斷和輪詢、進程上下文切換以及通常影響分組處理的延遲的其他非確定性定時的影響。因此,這些技術可以提高時間戳和往返時間計算的準確性和可靠性。
4、在一些示例中,一種系統(tǒng)包括:第一計算裝置的網絡接口卡(nic),其中,該nic包括:一組接口,被配置為接收一個或多個分組并發(fā)送一個或多個分組;以及處理單元,被配置為:識別指示正向分組的信息;基于對應于正向分組的第一時間和對應于與正向分組相關聯(lián)的反向分組的第二時間,計算第一計算裝置與第二計算裝置之間的延遲,其中,第二計算裝置包括正向分組的目的地和反向分組的源;并且輸出指示第一計算裝置與第二計算裝置之間的延遲的信息。
5、在一些示例中,一種方法包括:由第一計算裝置的網絡接口卡(nic)的處理單元識別指示正向分組的信息,其中,該nic包括一組接口,并且其中,該一組接口被配置為接收一個或多個分組并發(fā)送一個或多個分組;由處理單元基于對應于正向分組的第一時間和對應于與正向分組相關聯(lián)的反向分組的第二時間,計算第一計算裝置與第二計算裝置之間的延遲,其中,第二計算裝置包括正向分組的目的地和反向分組的源;以及由處理單元輸出指示第一計算裝置與第二計算裝置之間的延遲的信息。
6、在一些示例中,一種非暫時性計算機可讀介質包括用于使第一計算裝置的網絡接口卡nic的處理單元執(zhí)行以下操作的指令:識別指示正向分組的信息;基于對應于正向分組的第一時間和對應于與正向分組相關聯(lián)的反向分組的第二時間,計算第一計算裝置與第二計算裝置之間的延遲,其中,第二計算裝置包括正向分組的目的地和反向分組的源;以及輸出指示第一計算裝置與第二計算裝置之間的延遲的信息。
7、在所附附圖和以下描述中闡述本公開的一個或多個實施例的細節(jié)。從說明書和附圖以及權利要求書中,其他特征、目的和優(yōu)點將是顯而易見的。
1.一種計算機網絡系統(tǒng),包括:
2.根據權利要求1所述的計算機網絡系統(tǒng),其中,為了確定所述正向分組是否被配置為當所述第二計算裝置接收到所述正向分組時立即從所述第二計算裝置引出所述反向分組,所述處理單元被配置為確定所述正向分組是否表示在所述處理單元內被配置為對確定延遲有用的一組分組類型中的至少一種分組類型。
3.根據權利要求2所述的計算機網絡系統(tǒng),當所述正向分組被配置為當所述第二計算裝置接收到所述正向分組時立即從所述第二計算裝置引出所述反向分組時,所述第一時間與所述第二時間之間的差值表示所述第一計算裝置與所述第二計算裝置之間的往返時間。
4.根據權利要求2所述的計算機網絡系統(tǒng),其中,為了確定所述正向分組是否表示所述一組分組類型中的所述至少一種分組類型,所述處理單元被配置為:
5.根據權利要求2所述的計算機網絡系統(tǒng),其中,為了確定所述正向分組是否表示所述一組分組類型中的所述至少一種分組類型,所述處理單元被配置為確定所述正向分組是因特網控制消息協(xié)議icmp分組還是地址解析協(xié)議arp分組。
6.根據權利要求1至5中任一項所述的計算機網絡系統(tǒng),還包括:
7.根據權利要求1至5中任一項所述的計算機網絡系統(tǒng),其中,所述正向分組表示第一正向分組,其中,所述反向分組表示第一反向分組,并且其中,所述處理單元被配置為:
8.根據權利要求1至5中任一項所述的計算機網絡系統(tǒng),其中,為了識別指示所述正向分組的所述信息,所述處理單元被配置為:
9.根據權利要求1至5中任一項所述的計算機網絡系統(tǒng),其中,基于識別所述信息,所述處理單元被配置為:
10.根據權利要求9所述的計算機網絡系統(tǒng),其中,所述nic被配置為經由所述一組接口并且向所述第二計算裝置輸出所述正向分組,并且其中,所述處理單元還被配置為:
11.一種計算機聯(lián)網方法,包括:
12.根據權利要求11所述的計算機聯(lián)網方法,其中,確定所述正向分組是否被配置為當所述第二計算裝置接收到所述正向分組時立即從所述第二計算裝置引出所述反向分組包括:確定所述正向分組是否表示在所述處理單元內被配置為對確定延遲有用的一組分組類型中的至少一種分組類型。
13.根據權利要求12所述的計算機聯(lián)網方法,其中,確定所述正向分組表示所述一組分組類型中的所述至少一種分組類型包括:
14.根據權利要求12所述的計算機聯(lián)網方法,其中,確定所述正向分組是否表示所述一組分組類型中的所述至少一種分組類型包括:由所述處理單元確定所述正向分組是因特網控制消息協(xié)議icmp分組還是地址解析協(xié)議arp分組。
15.根據權利要求11至14中任一項所述的計算機聯(lián)網方法,還包括:
16.根據權利要求11至14中任一項所述的計算機聯(lián)網方法,其中,所述正向分組表示第一正向分組,其中,所述反向分組表示第一反向分組,并且其中,所述方法還包括:
17.根據權利要求11至14中任一項所述的計算機聯(lián)網方法,其中,識別指示所述正向分組的所述信息包括:
18.根據權利要求11至14中任一項所述的計算機聯(lián)網方法,其中,基于識別指示所述正向分組的所述信息,所述方法還包括:
19.根據權利要求18所述的計算機聯(lián)網方法,還包括:
20.一種非暫時性計算機可讀介質,編碼有用于使一個或多個可編程處理器變?yōu)楸慌渲米鳛楦鶕嗬?至10中任一項所述的計算機網絡系統(tǒng)或者變?yōu)楸慌渲脼閳?zhí)行根據權利要求11至19中任一項所述的計算機聯(lián)網方法的指令。