日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

UDP千兆以太网FPGA_verilog实现(四、代码前期准备-UDP和IP协议构建)

發布時間:2025/4/5 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UDP千兆以太网FPGA_verilog实现(四、代码前期准备-UDP和IP协议构建) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

UDP:user Datagram protocol 用戶數據報協議
無連接的傳輸層協議,提供面向事務的簡單不可靠信息傳送服務,IETF RFC 768是UDP的正式規范。UDP在IP報文的協議號是17(0x11)
UDP協議的主要作用是將網絡數據流量壓縮成數據包的形式。一個典型的數據包就是一個二進制數據的傳輸單位。每一個數據包的前8個字節用來包含包頭信息,剩余字節則用來包含具體的傳輸數據。
UDP報頭使用兩個字節存放端口號,所以端口號的有效范圍是從0------65535

熟知端口號(well-known prot number)

數值為0-1023,這些數值可以在網址www.iana.rog查到,IANA把這些端口號指派給TCP/IP最重要的一些應用程序,讓所有的用戶都知道。

登記端口號

數值在1024-49151。這類端口號是為沒有熟知端口號的應用程序使用的。使用這類端口號必須在IANA按照規定的手續登記,防止重復。

客戶端使用的端口號

數值在49152-65535。由于這類端口號僅在客戶進程運行時才動態選擇,因此又叫短暫端口號。這類端口號是留給客戶進程選擇暫時使用。當服務器進程收到客戶進程的報文時,就知道了客戶進程使用的端口號,因此可以把數據發送個客戶進程。通信結束后,剛才已使用過的客戶端端口號不復存在,這個端口號就可以供其他客戶進程使用。


----UDP的長度是指包括包頭和數據部分在內的總字節數。因為報頭的長度是固定的,所以該域主要被用來計算可變長度的數據部分(又稱為數據負載)。數據報的最大長度根據操作環境的不同而各異。理論上,包含報頭在內的數據報的最大長度為65535字節。

---- UDP協議使用報頭中的校驗值來保證數據的安全。校驗值首先通過特殊的算法計算得出,在傳遞到了接收方之后,還需要再重新計算。因此UDP協議可以檢測是否出錯。雖然UDP提供有錯誤檢測,但檢測到錯誤時,UDP不做錯誤校正,知識簡單地把損壞的消息段扔掉,或者給應用程序提供警告信息。
‘’’’’'由于每次需要發送的數據都不相同,而且校驗和內容在發送數據段之前就需要計算出來,不像MAC層是在所有數據都發送完成之后才發送CRC校驗值,因此在UDP組包時,校驗值的計算是一個不太好處理的地方,在UDP要求不是很嚴格的地方校驗和其實是可以忽略的,因此,在使用verilog實現,為了提升效率并節約FPGA資源,將校驗和字段忽略。這樣一來,UDP數據包的組包就百年的非常簡單了。
’ -----------------------------------------------------------------------------------------------------------------------------------------------------‘
IP協議的介紹

IP首部:20個固定字節+可選字段
每一行32位bit
4字節的32bit值按照以下次序來傳輸,首先0-7bit,其次8-15比特,然后16-23bit,最后是24-31bit。(這種傳輸次序稱之為big—endian)

首部長度,說明了首部必須為4的倍數,最大值15(說明IP首部長度最大為60bit)。當IP首部長度為20時(無可選字段),該值為5.(5*4=20)
總長度指整個IP數據報的長度,包括首部和數據部分,16bit,最長可達65535

服務類型:指示了報文的優先權等,默認全部0
片標識:是否屬于同一個數據段,IP報文的分片ID。全0即可
片偏移:全0即可
生存周期:TTL,典型值32or64
上層協議類型:指封包所使用的網絡協議類型,常用協議號:00IP,01ICMP,06TCP,17UDP

IP報頭校驗和:是根據IP首部計算的校驗和,不對首部后面的數據進行計算,其計算方法為:
在發送數據時候,為了計算IP的校驗和,應該按照如下步驟:
1.將校驗和字段置0,然后將IP包頭按照16bit分為多個單元,如包頭長度不是16bit的倍數,則用0bit填充到16bit的倍數。
2.對各個單元采用反碼加法運算(即高位溢出位會加到低位,通常的補碼運算是直接丟掉溢出的高位),將得到的和的反碼填入校驗和字段
例如,我們使用IP協議發送一個數據長度為30個字節的數據包,發送端IP為192.168.0.2,接收端IP為192.168.0.3 則IP包頭如下所示:




總結

以上是生活随笔為你收集整理的UDP千兆以太网FPGA_verilog实现(四、代码前期准备-UDP和IP协议构建)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。