在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

關于DPDK的一些常見問題

Linux愛好者 ? 來源:SDNLAB ? 2024-03-05 11:44 ? 次閱讀

交換機、路由器、防火墻等網絡設備通常需要實時處理大量數據包。在現代網絡中,數據包處理是一個非常重要的環節。傳統上,高效的數據包處理需要使用專門且昂貴的硬件,而數據平面開發套件 ( DPDK )能在低成本商用硬件上做到這一點。通過使用商用硬件,還可以將網絡功能轉移到云端,并在虛擬化環境中運行它們。

DPDK最初是由 Intel 于2010年發起的,Intel 的 Venky Venkatesan 被稱為“ DPDK之父”。2017年4月,DPDK成為Linux基金會下的一個項目。目前,許多開源項目已經采用了DPDK,包括 MoonGen、mTCP、Ostinato、Lagopus、Fast Data (FD.io)、Open vSwitch、OPNFV 和 OpenStack。

5dc0caf0-d9de-11ee-a297-92fbcf53809c.png

| DPDK框架 當然,DPDK也面臨著一些挑戰,包括無法支持某些網卡;對 Windows 的支持有限;調試比較困難;版本兼容性問題等。 01 DPDK如何改進數據包處理? 傳統的數據包處理方式是數據包先到內核最后再到用戶層進行處理。這種方式會增加額外的延遲和CPU開銷,嚴重影響數據包處理的性能。 DPDK 繞過內核,在用戶空間中實現快速數據包處理。它本質上是一組網絡驅動程序和庫。環境抽象層 ( EAL ) 從應用程序中抽象出特定于硬件的操作。下圖顯示了在數據包到達應用程序之前,POSIX調用的傳統處理是如何通過內核空間的。DPDK縮短了這條路徑,并直接在NIC和用戶空間應用程序之間移動數據包。

5ddca05e-d9de-11ee-a297-92fbcf53809c.png

傳統的處理是中斷驅動的,當數據包到達時,NIC會中斷內核。DPDK轉而使用輪詢,避免了與中斷相關的開銷。這是由輪詢模式驅動程序 ( PMD ) 執行的。另一個重要的優化是零拷貝。在傳統網絡中,數據包從內核空間的套接字緩沖區復制到用戶空間。DPDK避免了這種情況。 DPDK的用戶空間對開發人員很有吸引力,因為不需要修改內核。任何基于DPDK 的網絡堆棧都可以針對特定應用進行優化。

02 DPDK采用的數據包處理模型是什么?

大致有兩種處理模型:

# Run-to-Completion

CPU內核處理數據包的接收、處理和傳輸。可以使用多個內核,每個內核與專用端口關聯。通過接收端擴展 ( RSS ),到達單個端口的流量可以分配到多個內核。

# Pipeline

每個內核專用于特定的工作負載。例如,一個內核可能處理數據包的接收/傳輸,而其他內核則負責應用程序處理。數據包通過memory rings在內核之間傳遞。

5dedcc62-d9de-11ee-a297-92fbcf53809c.png

對于單核多CPU部署,一個CPU分配給操作系統,另一個分配給基于DPDK的應用程序。對于多核部署,無論是否使用超線程,都可以為每個端口分配多個內核。 決定使用哪種模型取決于處理每個數據包所需的周期、跨軟件模塊的數據交換范圍、某些內核的特定優化、代碼可維護性等。

03 DPDK是否需要TCP / IP堆棧才能工作?

DPDK不包括TCP / IP堆棧。如果應用程序需要用戶空間網絡堆棧,可以使用 F-Stack、mTCP、TLDK、Seastar 和 ANS 。它們通常提供阻塞和非阻塞套接字API,其中一些是基于 FreeBSD 實現的。 由于省略了網絡堆棧,DPDK不會出現通用實現的低效率問題。應用程序可以包括針對其用例進行優化的網絡模塊,也可能存在一些不需要更高層(L2 以上)處理的用例。

04 在DPDK之前,廠商如何實現高效的數據包處理?

在DPDK之前,有專門的硬件可以進行高效的數據包處理。此類硬件可能使用定制的 ASIC、可編程 FPGA 或網絡處理單元 ( NPU ),這些專用硬件以優化的方式完成數據包分類、流量控制、TCP / IP處理、加/解密、VLAN標記等任務。 然而,此類硬件的購買和維護成本昂貴。升級和安全補丁的應用非常耗時,并且需要全職的網絡管理員。一種解決方案是從專用硬件轉向商用現成 ( COTS ) 硬件。雖然這更具成本效益且更易于維護,但性能卻受到了影響。數據包從網卡 ( NIC ) 移動到操作系統 ( OS ),并通過操作系統內核堆棧進行處理。即使使用快速NIC,內核堆棧也是一個瓶頸。系統調用、中斷、上下文切換、包復制和逐包處理都會降低性能。 DPDK解決了COTS硬件上的性能問題,無需昂貴的定制硬件即可獲得高效的數據包處理。

05 業界誰在使用DPDK? 負載均衡、流分類、路由、訪問控制(防火墻)和流量監管是DPDK的典型用途。DPDK不僅適用于電信行業,也已在云環境和企業中使用。流量生成器 (TRex) 和存儲應用(SPDK) 使用DPDK。下圖列出了DPDK支持的開源項目。

5dfe9b64-d9de-11ee-a297-92fbcf53809c.png

Open vSwitch ( OVS ) 移植到DPDK后表現出了 7 倍的性能提升。在物聯網應用中,數據包很小,DPDK減少了延遲并允許每秒處理更多此類數據包。 在 5G 中,用戶平面功能 ( UPF ) 處理用戶數據包。延遲、抖動和帶寬是需要滿足的關鍵性能指標。一些研究人員已經提出將DPDK用于5G UPF的實現。在邊緣網絡部署UPF時, 可以使用DPDK API連接UPF應用 ( UPF -C) 和 SmartNIC ( UPF -U)。

06 DPDK面臨哪些挑戰? DPDK需要一定的專業知識,開發人員需要學習DPDK的編程模型。他們需要知道如何管理內存、如何在不復制的情況下傳遞數據包,以及如何使用多核架構。 例如,PID 命名空間可能會導致管理fbarray出現問題;使用mmap而不指定地址的進程可能會導致問題;線程必須正確分配給CPU內核,才能獲得一致的性能;此外,DPDK庫還給開發人員提供了多種實現選擇,選擇錯誤會影響性能。 由于繞過了內核,失去了Linux 內核提供的所有保護、實用程序( ifconfig、tcpdump)和協議(ARP 、IPSec)。調試和確定網絡問題的根本原因也是一項挑戰。最后,由于使用輪詢而不是中斷,因此即使只處理幾個數據包,DPDK也會導致 100% 的CPU使用率。

07 還有哪些替代選擇?

使用 Snabbswitch、Netmap 或 StackMap 可以通過內核旁路實現更快的數據包處理。與DPDK一樣,它們在用戶空間中處理數據包。數據包完全繞過內核堆棧。Snabbswitch 是用 Lua 編寫的,而DPDK是用 C 編寫的。PacketShader 對基于GPU的硬件進行內核旁路。 另一種方法是修改 Linux 內核。例如 eXpress Data Path ( XDP ) 和基于遠程直接內存訪問 ( RDMA ) 的網絡堆棧。其他有效的工具還包括 packet_mmap (但不會繞過內核)和 PF_RING (帶有 ZC 驅動程序)。 推薦閱讀點擊標題可跳轉

審核編輯:黃飛

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 防火墻
    +關注

    關注

    0

    文章

    417

    瀏覽量

    35614
  • 交換機
    +關注

    關注

    21

    文章

    2640

    瀏覽量

    99646
  • 路由器
    +關注

    關注

    22

    文章

    3732

    瀏覽量

    113788
  • TCP
    TCP
    +關注

    關注

    8

    文章

    1353

    瀏覽量

    79077
  • DPDK
    +關注

    關注

    0

    文章

    13

    瀏覽量

    1725

原文標題:全面了解DPDK

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    MSP430入門的一些常見問題

    講了MSP430入門的一些常見問題,初學者很有幫助。
    發表于 11-07 22:55

    4418開發板常見問題及解決方法

    這里有我們總結的一些關于4418開發板的一些常見問題和解決方法,供大家參考
    發表于 09-27 10:38

    設計師在使用高速放大器時遇到的一些常見問題

    在使用高速放大器進行設計時,定要熟悉其通用的規格并了解其特定概念。在本文中,高速放大器是指增益帶寬積(GBW)大于或等于50 MHz的運算放大器(op amps),但這些概念也適用于低速器件。以下設計師在使用高速放大器時遇到的一些常見
    發表于 01-06 06:44

    MM32F103產品中的一些常見問題

    LQFP100、LQFP64、LQFP48、LQFP32 和 QFN32 共 5 種封裝形式。根據不同的封裝形式,器件中的外設配置不盡相同。該產品適合使用在電機驅動和應用控制,醫療和手持設備,工業應用以及警報系統等。下面英尚微代理商解答關于MM32F103產品中的一些
    發表于 01-07 06:00

    STM32中串口的一些常見問題有哪些?

    STM32中串口的一些常見問題有哪些?
    發表于 02-18 08:00

    充電器常見問題匯編

    充電器常見問題匯編 關于充電池充電器的常見問題解答 出處:PConline 作者:李俊 ??我們這里應廣大讀者的要求,回答一些
    發表于 11-05 17:16 ?704次閱讀

    變壓器繞制、特性等一些常見問題分析

    變壓器繞制、特性等一些常見問題分析   、變壓器的制作中,線圈的機器繞制和手工繞制各有什么優缺點?
    發表于 12-11 10:00 ?1353次閱讀

    關于HPLC的常見問題及解答

    關于HPLC的常見問題及解答 、問:用HPLC進行分析時保留時間有時發生漂移,有時發生快速變化,原因何在?如何解決?答:關于
    發表于 12-25 16:34 ?1308次閱讀

    關于等離子電視機九大常見問題的解答

    關于等離子電視機九大常見問題的解答 對于等離子電視,可能還有很多人不是特別了解,長期以來受到一些錯誤的輿論導向,認為等
    發表于 02-09 13:15 ?869次閱讀

    NIOS II 常見問題總結

    NIOS II 常見問題總結,如果你想要Altera的FPGA做嵌入式設計,肯定要涉及到NIOS II的使用,本文總結了一些NIOS II的常見問題與解決方法
    發表于 12-01 15:43 ?14次下載

    關于一些手機信號放大器安裝的常見問題

    隨著時代的發展,手機信號放大器也普布出現在的家庭中。最近收集了一些關于手機信號放大器在安裝時會遇到的一些問題,整理了四大類常見問題與處理方式,具體內容可以看詳細介紹哦~
    發表于 09-01 14:35 ?1160次閱讀

    關于ROM和RAM有哪些常見問題

    關于ROM和RAM的常見問題分析。
    的頭像 發表于 11-19 15:51 ?2852次閱讀

    STM32中遇到的問題--關于串口的一些常見問題

    在單片機的開發過程中,最常用的外設就是串口了,是用來進行bug糾錯、log輸出的常用工具,也是用來與外部通訊的常見協議之。 但是在使用串口的過程中難免會遇到一些問題,下面就我在工作遇到的一些
    發表于 12-24 18:51 ?2次下載
    STM32中遇到的問題--<b class='flag-5'>關于</b>串口的<b class='flag-5'>一些</b><b class='flag-5'>常見問題</b>

    納米軟件科普:一些關于S參數常見問題的問答

    網絡分析儀常用被用來測試器件的S參數,本篇文章納米軟件Namisoft小編將為大家整理一些關于S參數的常見問題問答,下面起來看看吧。
    的頭像 發表于 02-02 10:49 ?1254次閱讀

    DHCP服務器的工作原理及常見問題總結

    關于一些DHCP服務器的工作原理、常見問題總結和虛擬機部署DHCP服務器時出現的問題
    的頭像 發表于 02-11 09:26 ?2505次閱讀
    主站蜘蛛池模板: 福利片第一页| 天天视频黄| 久久午夜网| 久久久久国产精品免费网站 | 狠狠躁夜夜躁人人爽天天段| 五月天婷亚洲| 在线一区二区观看| 色欧美在线视频| 亚洲成网777777国产精品| 五月婷亚洲| 国产成人a| 色爱综合区五月小说| 亚洲成色www久久网站| 国产乱码精品一区二区三| 国内精品久久久久影院免费| 淫欲高三| 国产三级一区| 色yeye在线观看| 四虎永久免费地址在线网站| 欧美成人综合在线| 天天草视频| 91福利社在线观看| 狠狠色噜噜狠狠狠狠狠色综合久久 | 欧美国产三级| 色爱综合网| 手机福利片| 亚洲综合亚洲综合网成人| 国产在线97色永久免费视频| 在线播放免费人成毛片乱码| 欧美日韩一区二区三区毛片| 久青草国产在线视频_久青草免| 久久精品美女久久| 性久久久久久久久久| 97理论片| 在线观看网站黄| 日韩卡1卡2卡三卡四卡二卡免| 停停五月天| 一区二区三区国模大胆| 99综合久久| 男女吃奶一进一出动态图| 狠狠色丁香久久婷婷综|