天天看點

《深入淺出DPDK》—第1章1.3節解讀資料包處理能力

本節書摘來自華章出版社《深入淺出dpdk》一書中的第1章,第1.3節解讀資料包處理能力,作者朱河清,梁存銘,胡雪焜,曹水 等,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

1.3 解讀資料包處理能力

不管什麼樣的硬體平台,對于包處理都有最基本的性能訴求。一般常被提到的有吞吐、延遲、丢包率、抖動等。對于轉發,常會以包轉發率(pps,每秒包轉發率)而不是比特率(bit/s,每秒比特轉發率)來衡量轉發能力,這跟包在網絡中傳輸的方式有關。不同大小的包對存儲轉發的能力要求不盡相同。讓我們先來溫習一下有效帶寬和包轉發率概念。

線速(wire speed)是線纜中流過的幀理論上支援的最大幀數。

我們用以太網(ethernet)為例,一般所說的接口帶寬,1gbit/s、10gbit/s、25gbit/s、40gbit/s、100gbit/s,代表以太接口線路上所能承載的最高傳輸比特率,其機關是bit/s(bit per second,位/秒)。實際上,不可能每個比特都傳輸有效資料。以太網每個幀之間會有幀間距(inter-packet gap,ipg),預設幀間距大小為12位元組。每個幀還有7個位元組的前導(preamble),和1個位元組的幀首定界符(start frame delimiter,sfd)。具體幀格式如圖1-7所示,有效内容主要是以太網的目的位址、源位址、以太網類型、負載。封包尾部是校驗碼。

《深入淺出DPDK》—第1章1.3節解讀資料包處理能力

是以,通常意義上的滿速帶寬能跑有效資料的吞吐可以由如下公式得到理論幀轉發率:

《深入淺出DPDK》—第1章1.3節解讀資料包處理能力

而這個最大理論幀轉發率的倒數表示了線速情況下先後兩個包到達的時間間隔。

按照這個公式,将不同包長按照特定的速率計算可得到一個以太幀轉發率,如表1-1所示。如果仔細觀察,可以發現在相同帶寬速率下,包長越小的包,轉發率越高,幀間延遲也越小。

《深入淺出DPDK》—第1章1.3節解讀資料包處理能力

滿足什麼條件才能達到無阻塞轉發的理論上限呢?如果我們把處理一個資料包的整個生命周期看做是工廠的生産流水線,那麼就要保證在這個流水線上,不能有任何一級流水處理的延遲超過此時間間隔。了解了這一點,對照表1-1,就很容易發現,對任何一個資料包處理流水線來說,越小的資料包,挑戰總是越大。這樣的紅線對任何一個硬體平台,對任何一個在硬體平台上設計整體流水線的設計師來說都是無法逃避并需要積極面對的。