色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

崔鵬程:初識XDP

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

在計算機網絡中,Hook鉤子在操作系統中用于在調用前或執行過程中攔截網絡數據包。Linux內核中暴露了多個鉤子,BPF程序可以連接到這些鉤子上,實現數據收集和自定義事件處理。

Linux內核中的鉤子點很多,比如說網絡子系統中存在兩個鉤子:XDP和TC。它們結合在一起,可以用來處理RX和TX上兩個鏈路上靠近NIC的數據包,從而實現了許多網絡應用的開發。今天我們簡單介紹下XDP。

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

XDP 相對于DPDK,XDP具有以下優點:

無需第三方代碼庫和許可

同時支持輪詢式和中斷式網絡

無需分配大頁

無需專用的CPU

無需定義新的安全網絡模型

XDP的使用場景包括:

DDoS防御

防火墻

基于XDP_TX的負載均衡

網絡統計

復雜網絡采樣

高速交易平臺

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


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

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

可以看出這個動作的本質是一個int值。前面4個動作是不需要參數的,最后一個動作需要額外指定一個NIC網絡設備名稱,作為轉發這個數據包的目的地。

XDP的位置

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

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

    關注

    3

    文章

    1373

    瀏覽量

    40308
  • Linux
    +關注

    關注

    87

    文章

    11312

    瀏覽量

    209689
  • 網絡設備
    +關注

    關注

    0

    文章

    316

    瀏覽量

    29667

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

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

收藏 人收藏

    評論

    相關推薦

    東樹:預計今年中國新能源乘用車銷量1330萬輛滲透率57%

    行業芯事行業資訊
    電子發燒友網官方
    發布于 :2025年01月02日 13:56:28

    初識光模塊之光模塊的分類

    高速先生成員--周偉 說到光模塊,很多用過光模塊的人肯定很清楚光模塊有很多種,但還有很多人只是見過或者知道有光模塊,但光模塊具體怎么分類的,我相信很多人都和我們一開始接觸光模塊一樣都是一知半解,甚至云里霧里的只知道都是光模塊,但具體有什么不一樣就有點摸不著頭腦了。閑話少說,接下來我們就來給大家介紹一下我們今天的主人公吧。 光模塊(optical module)由光電子器件、功能電路和光接口等組成,光電子器件包括發射和接收兩部分。簡單的說,光模塊的作用就是發送端把電信號轉換成光信號,通過光纖傳送后,接收端再把光信號轉換成電信號。常見的傳輸方式如下圖所示。 從結構組成上看,絕大多數基礎性光模塊均采用了收發一體形式,其內部主要由光發射組件TOSA(Transmitting Optical Sub-Assembly)、光接收組件ROSA(Receiving Optical Sub-Assembly)、發射驅動電路(激光器芯片)、接收信號處理電路(探測器芯片)構成,另外還有一種將發射組件與接收組件合二為一的BOSA(Bi-Directional Optical Sub-Assembly)組件,形成的單纖雙向光模塊,BOSA可以看作是TOSA與ROSA的集成體,同時具有光發射與接收的功能。簡單的光模塊內部構成大致如下圖所示。 在發射端,驅動芯片對原始電信號進行處理,然后驅動半導體激光器(LD)或發光二極管(LED)發射出調制光信號。在接收端,光信號進來之后,由光探測器芯片轉換為電信號,經前置放大器后輸出電信號。 為什么說光模塊很難弄明白呢,主要是它的種類太多,同時可以按照不同的角度去進行分類,通俗來說就是本來同一個東西但有很多種不同的叫法,更BT的是有時同樣的叫法可以有很多種不同的東西,所以就經常會被人搞混,云里霧里的。常用的可以按照單口最大傳輸速率(單口帶寬)、接口封裝類型、波長、傳輸模式、傳輸距離和調制格式等去進行分類,下面我們分別介紹幾種常見的分類方式。 按照單口最大傳輸速率(單口最大傳輸帶寬更合適些)來分: 1、按單口最大傳輸速率分類: 按照單口最大的傳輸帶寬,也就是一個光口總的傳輸速率可以分為:3.2Tbps(3.2TE)光模塊、1.6Tbps(1.6TE)光模塊、800Gbps(800GE)光模塊、400Gbps(400GE)光模塊、200Gbps(200GE)光模塊、100Gbps(100GE)光模塊、40Gbps(40GE)光模塊、25Gbps(25GE)光模塊、10Gbps(10GE)光模塊、1.25Gbps(1GE)光模塊、FE光模塊等。我們說的1.6T光模塊,其實指的是這個光模塊單口最大的傳輸速率是1.6Tbps。 2、按單對最大傳輸速率分類(這種分類一般用的少,主要是設計和仿真人員會關注) 按照光器件所能承載的單對無誤碼傳輸的最大電信號速率來進行分類,也就是我們設計和仿真時關心的單對差分信號的傳輸速率,可以分為:125Mbps、1.25Gbps、10.3125Gbps、25/28Gbps、50/56Gbps、100/112Gbps和200G/224Gbps等光模塊。單對差分速率乘以發送或接收對數就決定了上面單口最大的速率,同時也決定了這個光模塊每秒可以傳輸多少數據。如上面的1.6TE光模塊一般就是由200G/224Gbps的單對差分速率乘以8對得到的,也就是說我們現在做的1.6TE光模塊它的單對差分信號速率最高到了200/224Gbps,這么高速的傳輸速率在PCB板上傳輸,對PCB的設計和制板工藝考驗巨大,這種情況下就需要在設計過程中通過精確的仿真來確保通道的性能,同時還需要有靠譜的加工才能保證最終產品的落地,哪一個環節都不能出現太大的偏差。 3、按接口封裝類型分類(最常見的) 傳輸速率越高,結構越復雜,由此產生了不同的接口封裝類型。常見的光模塊封裝類型有:SFP(1GE)光模塊、SFP+(10GE)光模塊、SFP28(25GE)光模塊、QSFP+(40GE)光模塊、CFP(40GE-100GE)光模塊、CFP2 /CFP4(100GE-400GE)光模塊、QSFP28(100GE)光模塊、QSFP-DD(400GE-800GE)光模塊、OSFP(800GE)光模塊、OSFP-XD/OSFP224(1.6TE)光模塊等。還有早期速率比較低的GBIC,就是Giga Bit-rate Interface Converter(千兆接口轉換器)光模塊在2000年之前,GBIC是最流行的光模塊封裝,也是應用最廣泛的千兆模塊形態。下面可以看看每種具體光模塊的介紹。 SFP,全稱Small Form Pluggable,即小型可熱插拔光模塊。它的小,就是相對GBIC封裝來說的。SFP的體積比GBIC模塊減少了一半,可以在相同的面板上配置多出一倍以上的端口數量。在功能上,兩者差別不大,都支持熱插拔。SFP支持最大帶寬是4Gbps。 XFP,是10-Gigabit Small Form-factor Pluggable的簡稱,又叫萬兆SFP。XFP采用一條XFI(10Gb串行接口)連接的全速單通道串行模塊。 SFP+,它和XFP一樣是10G的光模塊。SFP+的尺寸和SFP一致,比XFP更緊湊(縮小了30%左右),功耗也更低(減少了一些信號控制功能)。此外,為了增加容量和空間,還會把多個SFP+口做成一個器件,延生出了zSFP+等。 QSFP,Quad Small Form-factor Pluggable的簡稱,也即四通道SFP接口,很多XFP中成熟的關鍵技術都應用到了該設計中。根據速度可將QSFP分為4x10GQSFP+、4x25GQSFP28、8x25GQSFP28-DD光模塊等。以QSFP28為例,它適用于4x25GE接入端口。使用QSFP28可以不經過40G直接從25G升級到100G,大幅簡化布線難度以及降低成本。和SFP+一樣,為了容量和空間考慮,會把多個QSFP接口上下左右堆成多個接口作為一個整體,這樣就衍生出了QSFP+、zQSFP+和microQSFP等接口,如下圖所示。 QSFP-DD,DD指的是“Double Density(雙倍密度)”。將QSFP的4通道增加了一排通道,變為了8通道。它可以與CDFP方案兼容,原先的QSFP28模塊仍可以使用,只需再插入一個模塊即可。QSFP-DD的電口金手指數量是QSFP28的2倍。QSFP-DD每路采用25Gbps NRZ或者50Gbps PAM4信號格式。采用PAM4,最高可以支持400Gbps速率。 OSFP,Octal Small Form Factor Pluggable的簡稱,“O”代表“八進制”,它被設計為使用8個電氣通道來實現400GbE(8*56GbE,但56GbE的信號由25G的DML激光器在PAM4的調制下形成),尺寸略大于QSFP-DD,更高瓦數的光學引擎和收發器,散熱性能稍好。 CFP,Centum gigabits Form Pluggable的簡稱,也叫密集波分光通信模塊。傳輸速率可達100-400Gbps。CFP是在SFP接口基礎上設計的,尺寸更大,支持100Gbps數據傳輸。CFP可以支持單個100G信號,一個或多個40G信號。 CFP、CFP2、CFP4、CFP8的區別在于體積。CFP2的體積是CFP的二分之一,CFP4是CFP的四分之一。CFP8是專門針對400G提出的封裝形式,其尺寸與CFP2相當。支持25Gbps和50Gbps的通道速率,通過16x25G或8x50G電接口實現400Gbps模塊速率。 在光口側主要是使用8路53Gbps PAM4或者4路106Gbps PAM4實現400G的信號傳輸,在電口側使用8路53Gbps PAM4電信號,采用OSFP或QSFP-DD的封裝形式。 相比較來說,QSFP-DD封裝尺寸更小(和傳統100G光模塊的QSFP28封裝類似),更適合數據中心應用。 OSFP封裝尺寸稍大一些,由于可以提供更多的功耗,所以更適合電信應用。 其他的幾種不常見的分類方式: 按照傳輸距離分類,有100米、300米、550米、10千米、20千米、40千米、80千米、120千米和160千米等光模塊; 按照傳輸波長分類,有850nm、1310nm、1490nm、1550nm等光模塊; 按照傳輸模式分類,有單模(黃色)、多模(橘黃色、藍綠色)等光模塊; 本期問題:關于光模塊更深層次的介紹,您還有哪些想知道的?我們會根據大家的回復來針對性的解答。
    發表于 12-10 08:59

    初識光模塊之光模塊的分類

    高速先生成員--周偉 說到光模塊,很多用過光模塊的人肯定很清楚光模塊有很多種,但還有很多人只是見過或者知道有光模塊,但光模塊具體怎么分類的,我相信很多人都和我們一開始接觸光模塊一樣都是一知半解,甚至云里霧里的只知道都是光模塊,但具體有什么不一樣就有點摸不著頭腦了。閑話少說,接下來我們就來給大家介紹一下我們今天的主人公吧。 光模塊(optical module)由光電子器件、功能電路和光接口等組成,光電子器件包括發射和接收兩部
    的頭像 發表于 12-10 08:58 ?150次閱讀
    <b class='flag-5'>初識</b>光模塊之光模塊的分類

    廈門市領導蒞臨海辰儲能調研

    近日,廈門市委副書記、市長伍斌率隊蒞臨海辰儲能調研,深入了解企業發展現狀與未來規劃。海辰儲能聯合創始人、總裁王鵬程熱情接待并陪同調研。
    的頭像 發表于 10-24 11:03 ?740次閱讀

    中興通訊麗:AI與5G-A共融共創

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

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

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

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

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

    東樹:進口車增量助力消費增長,年內潛力巨大

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

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

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

    三星顯示CEO:中韓OLED顯示器企業技術差距僅1年

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

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

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

    初識FPGA需要關注的注意事項!

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

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

    該系列主要有兩款產品,XDP700主要用于電信基礎設施,XDP710則更適合服務器、工業和數據中心電源系統等應用中,以實現安全的熱插拔操作和系統保護。
    的頭像 發表于 02-20 15:23 ?737次閱讀

    三星顯示器公司CEO榮任韓國顯示器產業協會會長

    據相關行業消息,韓國顯示器產業協會任命周善為新任會長,周善被任命為協會會長,沿襲了三星顯示器和LG顯示器的會長輪流擔任協會會長的慣例。
    的頭像 發表于 01-22 11:25 ?879次閱讀

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

    恰好有這么好的機會,當然也有緣份讓我有幸成為試讀者,特此感謝電子發燒友論壇。 【初識有感】 我今天剛拿到的書,認真的閱讀了推薦語、序、前言這幾篇,讓我深有感觸。 第一,通過這幾篇我得知劉歧老師,是一位
    發表于 01-07 19:48
    主站蜘蛛池模板: 黄色片软件大全| 狼人大香伊蕉国产WWW亚洲| 国产在线播放精品视频| 欧美最猛性XXX孕妇| 姉调无修版ova国语版| 精品美女国产互换人妻 | 国产精品v欧美精品v日韩| 秋霞在线看片无码免费| 99re28久久热在线观看| 美国VICTORY DAY在线| 征服丝袜旗袍人妻| 久久久黄色片| 中文人妻熟妇精品乱又伧| 久久精品国产色蜜蜜麻豆国语版| 亚洲精品中文字幕无码A片蜜桃| 国内久经典AAAAA片| 亚洲春色AV无码专区456| 果冻传媒AV精品一区| 亚洲日韩视频免费观看| 精品亚洲AV无码蜜芽麻豆| 伊人综合在线影院| 美女裸露100%奶头视频| 99精品视频免费观看| 欧美特级另类xxx| 第一次处破女18分钟免费| 色www永久免费| 国产亚洲精品第一区香蕉| 高h原耽肉汁动漫视频| 日本最新免费区中文| 动漫女主被扒开双腿羞辱| 牲高潮99爽久久久久777| 国产美女视频一区二区二三区| 亚洲欧美日韩精品久久奇米色影视| 精品午夜视频| 99久久婷婷国产麻豆精品电影 | ping色堂| 婷婷激情综合色五月久久竹菊影视 | 国产精品日本不卡一区二区| 亚洲精品色婷婷在线蜜芽| 久久精品视频91| couo福利姬图库|