FPGA——UDP包分片概述


一、概述

以太網(Ethernet)數據幀的長度必須在46-1500字節之間,這是由以太網的物理特性決定的.
這個1500字節被稱為鏈路層的MTU(最大傳輸單元).
在實際使用中,單次UDP報文傳輸的數據量有可能會大於1500字節,因此需要用到UDP分片技術

二、UDP分片

(1)UDP封裝

(2)IP首部

  • 分段標識:唯一確定一份IP數據報
  • DF:(Don’t Fragment)0表示允許分片,1表示不許分片
  • MF:除了最后一片外,其他每片都把該位置為1
  • 段偏移:指的是該片偏移原始數據報開始處的位置

(3)分片

  • 每片的總長度值要修改為該片的長度值
  • 任何傳輸層的首部都只出現在第一片數據中,除第一片外,其他片沒有UDP首部

三、FPGA對於分片包的判斷

always @(posedge clk or negedge rst_n)begin
    if(!rst_n)
        fragment_state <= 0;
    else if(cnt_dtlen == 30 & add_cnt_dtlen)begin
        if(fragment_info[12:0] == 0 & fragment_info[14:13] == 0)
            fragment_state <= 0;//不分片        (段偏移 == 0,   MF = 0)
        else if(fragment_info[12:0] == 0 & fragment_info[14:13] == 1)
            fragment_state <= 1;//分片第一段    (段偏移 == 0,   MF = 1,記下分段標識     )
        else if(fragment_info[12:0] != 0 & fragment_info[14:13] == 1)
            fragment_state <= 2;//分片中間段    (段偏移 != 0,   MF = 1,比較分段標識     )
        else if(fragment_info[12:0] != 0 & fragment_info[14:13] == 0)
            fragment_state <= 3;//分片最后一段  (段偏移 != 0,   MF = 0,比較分段標識     )
    end
end

四、參考鏈接

https://www.cnblogs.com/huahuahu/p/UDP-yuIP-fen-pian.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM