精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內(nèi)不再提示

崔鵬程:初識XDP

Linux閱碼場 ? 來源:Linux內(nèi)核之旅 ? 2020-08-03 15:59 ? 次閱讀

在計算機網(wǎng)絡(luò)中,Hook鉤子在操作系統(tǒng)中用于在調(diào)用前或執(zhí)行過程中攔截網(wǎng)絡(luò)數(shù)據(jù)包。Linux內(nèi)核中暴露了多個鉤子,BPF程序可以連接到這些鉤子上,實現(xiàn)數(shù)據(jù)收集和自定義事件處理。

Linux內(nèi)核中的鉤子點很多,比如說網(wǎng)絡(luò)子系統(tǒng)中存在兩個鉤子:XDP和TC。它們結(jié)合在一起,可以用來處理RX和TX上兩個鏈路上靠近NIC的數(shù)據(jù)包,從而實現(xiàn)了許多網(wǎng)絡(luò)應(yīng)用的開發(fā)。今天我們簡單介紹下XDP。

XDP全稱為eXpress Data Path,是Linux內(nèi)核網(wǎng)絡(luò)棧的最底層。它只存在于RX路徑上,允許在網(wǎng)絡(luò)設(shè)備驅(qū)動內(nèi)部網(wǎng)絡(luò)堆棧中數(shù)據(jù)來源最早的地方進行數(shù)據(jù)包處理,在特定模式下可以在操作系統(tǒng)分配內(nèi)存(skb)之前就已經(jīng)完成處理。 XDP暴露了一個可以加載BPF程序的網(wǎng)絡(luò)鉤子。在這個鉤子中,程序能夠?qū)魅氲臄?shù)據(jù)包進行任意修改和快速決策,避免了內(nèi)核內(nèi)部處理帶來的額外開銷。這使得XDP在性能速度方面成為最佳鉤子,例如緩解DDoS攻擊等 DPDK Intel DPDK全稱Intel Data Plane Development Kit,是intel提供的數(shù)據(jù)平面開發(fā)工具集,為Intel architecture(IA)處理器架構(gòu)下用戶空間高效的數(shù)據(jù)包處理提供庫函數(shù)和驅(qū)動的支持,它不同于Linux系統(tǒng)以通用性設(shè)計為目的,而是專注于網(wǎng)絡(luò)應(yīng)用中數(shù)據(jù)包的高性能處理。 DPDK應(yīng)用程序是運行在用戶空間上利用自身提供的數(shù)據(jù)平面庫來收發(fā)數(shù)據(jù)包,繞過了Linux內(nèi)核協(xié)議棧對數(shù)據(jù)包處理過程。Linux內(nèi)核將DPDK應(yīng)用程序看作是一個普通的用戶態(tài)進程,包括它的編譯、連接和加載方式和普通程序沒有什么兩樣。DPDK程序啟動后只能有一個主線程,然后創(chuàng)建一些子線程并綁定到指定CPU核心上運行。

XDP 相對于DPDK,XDP具有以下優(yōu)點:

無需第三方代碼庫和許可

同時支持輪詢式和中斷式網(wǎng)絡(luò)

無需分配大頁

無需專用的CPU

無需定義新的安全網(wǎng)絡(luò)模型

XDP的使用場景包括:

DDoS防御

防火墻

基于XDP_TX的負載均衡

網(wǎng)絡(luò)統(tǒng)計

復雜網(wǎng)絡(luò)采樣

高速交易平臺

XDP輸入參數(shù)XDP暴露的鉤子具有特定的輸入上下文,它是單一輸入?yún)?shù)。它的類型為 struct xdp_md,在內(nèi)核頭文件bpf.h 中定義,具體字段如下所示:


程序執(zhí)行時,data和data_end字段分別是數(shù)據(jù)包開始和結(jié)束的指針,它們是用來獲取和解析傳來的數(shù)據(jù),第三個值是data_meta指針,初始階段它是一個空閑的內(nèi)存地址,供XDP程序與其他層交換數(shù)據(jù)包元數(shù)據(jù)時使用。最后兩個字段分別是接收數(shù)據(jù)包的接口和對應(yīng)的RX隊列的索引。當訪問這兩個值時,BPF代碼會在內(nèi)核內(nèi)部重寫,以訪問實際持有這些值的內(nèi)核結(jié)構(gòu) struct xdp_rxq_info。

XDP輸出參數(shù)在處理完一個數(shù)據(jù)包后,XDP程序會返回一個動作(Action)作為輸出,它代表了程序退出后對數(shù)據(jù)包應(yīng)該做什么樣的最終裁決,也是在內(nèi)核頭文件bpf.h 定義了以下5種動作類型:

可以看出這個動作的本質(zhì)是一個int值。前面4個動作是不需要參數(shù)的,最后一個動作需要額外指定一個NIC網(wǎng)絡(luò)設(shè)備名稱,作為轉(zhuǎn)發(fā)這個數(shù)據(jù)包的目的地。

XDP的位置

最顯而易見的是,竟然可以在如此低的層面上把數(shù)據(jù)包丟棄或者回彈回去,如果面臨DDoS攻擊,采用這種方式的話,數(shù)據(jù)包就沒有必要上升到Netfilter層面再被丟棄了。說白了,XDP允許數(shù)據(jù)包在進入Linux協(xié)議棧之前就能受到判決。這相當于在網(wǎng)卡驅(qū)動層面運行了一個eBPF程序,該程序決定數(shù)據(jù)包何去何從。 而且,假設(shè)我們經(jīng)過目標網(wǎng)絡(luò)設(shè)備的Ingress流量被我們的XDP程序drop了,專業(yè)術(shù)語叫RX流向。那么Egress流量是否也會被drop掉呢? 答案是,不會。XDP hook不會作用到Egress流量,也就是TX流向。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    3

    文章

    1363

    瀏覽量

    40228
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11227

    瀏覽量

    208925
  • 網(wǎng)絡(luò)設(shè)備

    關(guān)注

    0

    文章

    308

    瀏覽量

    29609

原文標題:崔鵬程: 初識XDP

文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    廈門市領(lǐng)導蒞臨海辰儲能調(diào)研

    近日,廈門市委副書記、市長伍斌率隊蒞臨海辰儲能調(diào)研,深入了解企業(yè)發(fā)展現(xiàn)狀與未來規(guī)劃。海辰儲能聯(lián)合創(chuàng)始人、總裁王鵬程熱情接待并陪同調(diào)研。
    的頭像 發(fā)表于 10-24 11:03 ?635次閱讀

    中興通訊麗:AI與5G-A共融共創(chuàng)

    7月16日資訊,2024世界人工智能大會匯聚了全球頂尖的科學家、企業(yè)領(lǐng)袖及投資精英,共襄盛舉,深入探討AI技術(shù)的最新進展、產(chǎn)業(yè)趨勢以及道德治理的創(chuàng)新路徑。中興通訊首席發(fā)展官麗受邀出席央視網(wǎng)《科技新觀察》節(jié)目,就人工智能時代下的數(shù)智化轉(zhuǎn)型發(fā)表了獨到見解。
    的頭像 發(fā)表于 07-16 16:24 ?572次閱讀

    【《軟件開發(fā)珠璣》閱讀體驗】+ 初識

    非常感恩電子發(fā)燒友論壇,讓我有幸閱讀如此優(yōu)秀的作品。 今天收到了的書,非常精美! 在書的扉頁中,有劉總的簽名: 太有意義了。 書中大佬們讀了《推薦序》 還有21位大佬為此書寫了《推薦語》,給本書以極其高度的評價: 本文的譯者為“死月”,他在譯者序中,表達了翻譯完本書之后的收獲“ 在翻譯完這本書之后,我對軟件工程,對需求、設(shè)計、項目管理、文化與團隊合質(zhì)量和過程改進有了全新的認知,我也可以嘗試著為自己摘下“只會寫代碼”的標簽了。相信在未來的職業(yè)生涯中,這本書給我?guī)淼闹R能讓我在各個地方發(fā)光發(fā)熱,在某種意義上可以幫我突破一些瓶頸。 同樣,我期望這本書也能在正在閱讀此書的你未來的職業(yè)生涯中,以某種形式為你帶來一些不一樣的視角,幫你更輕松地解決一些可能本來不那么容易解決的問題。能翻譯這本書,對我來說,已經(jīng)很值了;如果這本書還能為更多人提供價值,那真的是超值了。 在《序言》中,作者解釋了”珠璣“,珠璣的即為珍珍,在于不斷的成長。我在想,譯者為何不直接譯為”珍珠“。 在《關(guān)于作者》中,介紹了作者Karl Wiegers 學位、作品,以及他是一位愛好廣泛,同時又非常有愛心的一位大神。
    發(fā)表于 06-21 16:33

    海辰儲能王鵬程:新型儲能+綠色城市,共筑包容發(fā)展之路

    5月22日至23日,2024重慶國際友好城市合作大會在重慶召開。
    的頭像 發(fā)表于 05-28 09:33 ?378次閱讀

    東樹:進口車增量助力消費增長,年內(nèi)潛力巨大

    東樹指出,隨著我國汽車產(chǎn)業(yè)的發(fā)展壯大以及電動化轉(zhuǎn)型帶來的市場需求變化,燃油車需求逐漸萎縮,進口燃油車需求亦隨之降低。鑒于國際關(guān)系日益復雜,他建議應(yīng)提前規(guī)劃并建立多元化的進口模式,以保持進口車市場的穩(wěn)定。
    的頭像 發(fā)表于 05-27 10:30 ?457次閱讀

    韓國26萬億韓元激勵計劃助力芯片業(yè),力挺三星電子和SK海力士

    該計劃包括17萬億韓元的專項投資資金與稅收優(yōu)惠,比韓國財長相穆兩周前提議的10萬億韓元高出近一倍。據(jù)悉,韓國將于六月敲定具體實施細則。
    的頭像 發(fā)表于 05-24 09:23 ?343次閱讀

    大語言模型:原理與工程實踐+初識2

    前言 深度學習是機器學習的分支,而大語言模型是深度學習的分支。機器學習的核心是讓計算機系統(tǒng)通過對數(shù)據(jù)的學習提高性能,深度學習則是通過創(chuàng)建人工神經(jīng)網(wǎng)絡(luò)處理數(shù)據(jù)。近年人工神經(jīng)網(wǎng)絡(luò)高速發(fā)展,引發(fā)深度學習的一系列變革。 大語言模型是深度學習的應(yīng)用之一,可以認為,這些模型的目標是模擬人類交流,為了理解和生成人類語言。為此,模型需要在大量文本數(shù)據(jù)上訓練,用來理解人類語言,進而,實現(xiàn)與人類的無障礙對話交流。關(guān)于其應(yīng)用,大火的ChatGPT就是典型的例子。所以,提起大語言模型,看似離我們很遠,其實不然,他就貫穿在我們生活中,或是悄無聲息或是驚天動地的改變著我們的生活。 通過這本書,我對大語言模型的認識更深一步,不再局限于只識其名,不知其意,而是真正的了解了他的前生今世,他的意義非凡。我希望我能夠有機會把我所學付諸實踐,當然這需要真正的領(lǐng)悟和堅定的信心,但我相信,我可以做到!
    發(fā)表于 05-13 00:09

    三星顯示CEO:中韓OLED顯示器企業(yè)技術(shù)差距僅1年

    三星Display社長周善表示:“與中國顯示器企業(yè)的技術(shù)差距縮小到1年或1年半。為了維持技術(shù)超差距,有必要聚集人才,提高研發(fā)的效率。”
    的頭像 發(fā)表于 03-08 14:54 ?1037次閱讀

    三星顯示CEO:microOLED或于2027-2028年商業(yè)化,市場前景看好

    在KAIST大學的專題講座之后,周善明確指出,microOLED市場前景廣闊。然而,這項針對XR設(shè)備的顯示技術(shù)仍需經(jīng)過3至4年才能進入商業(yè)階段。
    的頭像 發(fā)表于 03-07 14:15 ?550次閱讀

    初識FPGA需要關(guān)注的注意事項!

    1.基礎(chǔ)問題 FPGA的基礎(chǔ)就是數(shù)字電路和HDL語言,想學好FPGA的人,建議床頭都有一本數(shù)字電路的書,不管是哪個版本的,這個是基礎(chǔ),多了解也有助于形成硬件設(shè)計的思想。在語言方面,建議初學者學習Verilog語言,VHDL語言語法規(guī)范嚴格,調(diào)試起來很慢,Verilog語言容易上手,而且,一般大型企業(yè)都是用Verilog語言。 2.EDA工具問題 熟悉幾個常用的就可以的,開發(fā)環(huán)境QuartusII ,或ISE 就可以了,這兩個基本是相通的,會了哪一個,另外的那個也就很Easy了。功能仿真建議使用Modelsim ,如果你是做芯片的,就可以學學別的仿真工具,做FPGA的,Modelsim就足夠了。綜合工具一般用Synplify,初學先不用太關(guān)心這個,用Quartus綜合就OK了。當然最推薦的是各個廠商推薦的開發(fā)環(huán)境,容易進行demo測試體驗。 3.硬件設(shè)計思想問題 對于初學者,特別是從軟件轉(zhuǎn)過來的,設(shè)計的程序既費資源又速度慢,而且很有可能綜合不了,這就要求我們熟悉一些固定模塊的寫法,可綜合的模塊很多書上都有,語言介紹上都有,不要想當然的用軟件的思想去寫硬件。 4.學習習慣問題 FPGA學習要多練習,多仿真,signaltapII是很好的工具,可以看到每個信號的真實值,建議初學者一定要自己多動手,光看書是沒用的。關(guān)于英文文檔問題,如果要學會Quartus II的所有功能,只要看它的handbook就可以了,很詳細,對于IT行業(yè)的人,大部分知識來源都是英文文檔,一定要耐心看,會從中收獲很多的。 5.算法問題 做FPGA的工程師,最后一般都是專攻算法了,這些基礎(chǔ)知識都是順手捏來的,如果你沒有做好搞理論的準備,學FPGA始終只能停留在初級階段上。 對于初學者,數(shù)字信號處理是基礎(chǔ),應(yīng)該好好理解,往更深的方向,不用什么都學,根據(jù)你以后從事的方向,比如說通信、圖像處理,雷達、聲納、導航定位等。
    發(fā)表于 02-22 10:57

    凌感英飛凌XDP7系列熱插拔控制器介紹

    該系列主要有兩款產(chǎn)品,XDP700主要用于電信基礎(chǔ)設(shè)施,XDP710則更適合服務(wù)器、工業(yè)和數(shù)據(jù)中心電源系統(tǒng)等應(yīng)用中,以實現(xiàn)安全的熱插拔操作和系統(tǒng)保護。
    的頭像 發(fā)表于 02-20 15:23 ?680次閱讀

    三星顯示器公司CEO榮任韓國顯示器產(chǎn)業(yè)協(xié)會會長

    據(jù)相關(guān)行業(yè)消息,韓國顯示器產(chǎn)業(yè)協(xié)會任命周善為新任會長,周善被任命為協(xié)會會長,沿襲了三星顯示器和LG顯示器的會長輪流擔任協(xié)會會長的慣例。
    的頭像 發(fā)表于 01-22 11:25 ?810次閱讀

    《深入理解FFmpeg閱讀體驗》初識有感

    恰好有這么好的機會,當然也有緣份讓我有幸成為試讀者,特此感謝電子發(fā)燒友論壇。 【初識有感】 我今天剛拿到的書,認真的閱讀了推薦語、序、前言這幾篇,讓我深有感觸。 第一,通過這幾篇我得知劉歧老師,是一位
    發(fā)表于 01-07 19:48

    初識電阻與電阻器

    初識電阻與電阻器
    的頭像 發(fā)表于 12-08 17:24 ?600次閱讀
    <b class='flag-5'>初識</b>電阻與電阻器

    什么是DDS?初識CP AUTOSAR平臺下的DDS規(guī)范

    數(shù)據(jù)分發(fā)服務(wù)(DDS)[1]是一個來自對象管理組(OMG)的中間件協(xié)議和API標準。它將系統(tǒng)的組件集成在一起,提供低延遲的數(shù)據(jù)連接,極高的可靠性,和可擴展的架構(gòu)。
    的頭像 發(fā)表于 12-05 18:18 ?3676次閱讀
    什么是DDS?<b class='flag-5'>初識</b>CP AUTOSAR平臺下的DDS規(guī)范