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

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

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

3天內不再提示

網絡中發送長度小于64字節的報文時如何傳送

FPGA之家 ? 來源:FPGA之家 ? 作者:FPGA之家 ? 2022-10-17 17:26 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

電磁波在雙絞線上傳輸的速度為0.7倍光速,在1km電纜的傳播時延約為5us。傳統的網絡信道比較差,需要有重傳機制保障可靠性。于是,在節點A向節點B發送數據進行通信的時候,要保證以太網的重傳,必須保證A收到碰撞信號的時候,數據包沒有傳完,要實現這一要求,A和B之間的距離很關鍵,也就是說信號在A和B之間傳輸的來回時間必須控制在一定范圍之內。IEEE定義了這個標準,一個碰撞域內,最遠的兩臺機器之間的round-trip time 要小于512bit 時間。(來回時間小于512位時,所謂位時就是傳輸一個比特需要的時間)。因此,傳統以太網有如下特點:

1、最大覆蓋距離(兩個站點最遠的距離):2500m; 2、爭用期(即一個信號最遠來回的傳播時間):51.2us;過來這個時間還未監聽到沖突,則說明無沖突; 3、最小幀長:64字節;因為傳統以太網速率是10Mbps,爭用期是51.2us;即在這個時間內,幀的數據不能發完,否則將不能監聽到沖突了(CSMA/CD協議是邊發邊聽、不發不聽;因為如果幀發完,則不在監聽,這個時候即使來了有沖突的信號,不在監聽,也不知道已經沖突了),這樣的話CSMA/CD協議可靠性也就大大折扣了;即:B/10M >= 51.2us;即512bit,64個字節; 4、幀間最小間隔:9.6us;相當于發送96bit;即在CSDM/CD協議下,一個站點在監測到信道空閑后,需要等待9.6us才能發送數據;(主要目的是留給剛剛接收數據的站點清理接收緩存,做好接下一陣的準備----------流量控制其實也是) 上述所說的以太網幀是針對以太網Ⅱ型幀進行的描述。幀格式如下:

9486e7d8-4c25-11ed-a3b6-dac502259ad0.png

那么,現在互聯網中發送長度小于64字節的報文時如何傳送呢?比如ARP報文。有效長度如下: ARP報文:4字節+4字節+6字節+4字節+6字節+4字節=28字節,遠不夠64字節。 事實上,在傳送ARP報文時,需要進行填充。

948dd516-4c25-11ed-a3b6-dac502259ad0.png

arp程序代碼里,會增加一個填充程序,填充字段 18字節, 這樣以太網數據部分=ARP28字節+填充18字節=46字節。這樣,Dmac 6字節+S mac 6字節+ type 2字節+ARP 46字節+FCS4字節=64字節。 從而保證了互聯網上可以有效的傳輸小于64字節的報文。上述內容來源于網絡,如有侵權,請聯系我刪除。網上有很多很多討論為什么以太網幀最短幀為64字節的文章,大家可以自行百度。我們關注的問題是,如果不填充,而是強行傳送小于64字節的報文呢?我們搭建了一個上板實驗進行了驗證。

實驗環境

開發板:Zedboard。 網絡:雙絞線接Zedboard四端口擴展板1口和3口并形成回環。 EDA工具:Vivado2018.2、ModelSim10.5。 真實硬件驗證環境如下圖(請忽略圖中紙箱子等雜物):

949aae94-4c25-11ed-a3b6-dac502259ad0.png

回環結構

實驗目的:為了驗證,在實際鏈路中短于64字節的mac數據幀能否通過雙絞線在phy層之間傳輸,以及mac核對于長度不符合要求的數據幀的處理情況。

事實上,在上圖中,最短幀能否通過MAC1對應的RJ45網口發出來的前提是能否順利的通過PHY芯片,FPGA芯片、PHY芯片以及RJ45接口的關系圖如下:

94b5c68e-4c25-11ed-a3b6-dac502259ad0.png

PHY與FPGA之間的接口為RGMII接口。在FPGA內部構建的長度小于64字節的以太網幀,通過FPGA芯片與PHY芯片之間的RGMII接口首先發給PHY芯片,如果能夠順利的通過PHY芯片,才能從RJ45接口(MAC1)通過雙絞線發送給MAC2的RJ45接口,進而再經過MAC2對應的RJ45接口、PHY芯片,最后送回到FPGA芯片內部。如下圖所示,左側MAC1采用自己寫的超短幀產生和接收模塊,右側MAC2采用Opencores上的開源MAC核。

94bdfc00-4c25-11ed-a3b6-dac502259ad0.png

數據流

Step1:通過data_gen模塊循環發送定長數據32’h12_34_56_78,通過8位數據端口傳給ephy_source模塊。

Step2:ephy_source模塊根據接收的數據,以及長度進行mac幀封裝,并填寫固定目的mac地址:48’h01_01_01_01_01_01以及源mac地址:48’h08_08_08_08_08_08之后依次按單字節發送數據域內數據,并進行crc計算。

Step3:通過rgmii接口模塊進行8位gmii接口數據到4位rgmii接口數據的轉換后接到phy層。

Step4:經雙絞線傳輸后來到另一端的phy層,并依次經過phy層、rgmii轉換送入mac處理。

Step5:mac接收的數據,在去掉前導碼、crc校驗后,以32位寬的形式將數據部分發送給用戶側,這里直接將數據通過回環發送到mac2的用戶發送數據端口,再次通過mac2的組幀、crc計算、8位gmii到4位rgmii的轉換之后通過phy2的tx發送回phy1的接收端口。

超短幀長度設置為40字節。從MAC1發出,經過PHY1芯片,經過雙絞線和MAC2的PHY2芯片,可以在MAC2的RGMII接口處收到。

94c5573e-4c25-11ed-a3b6-dac502259ad0.png

仿真及上板結果如下:

94d468d2-4c25-11ed-a3b6-dac502259ad0.png

可以看到在數據幀長度不符合標準的時候,是沒有辦法通過MAC2的mac核的,但是能夠到達接收端的rgmii_rx部分。

經檢查,發現開源IP核接收數據文件mac_rx_ctrl.v中對接收到的數據幀進行了長度判斷,把不滿足64字節的數據幀給過濾掉了。

94e3bef4-4c25-11ed-a3b6-dac502259ad0.png

通過寄存器可以配置LTU MTU大小,默認的LTU=64bytes MTU=1530bytes。

950a3624-4c25-11ed-a3b6-dac502259ad0.png

為了能接收到長度為40直接的數據幀,我們進行了如下修改:

9515d7b8-4c25-11ed-a3b6-dac502259ad0.png

LTU限制改為34, payload=34-4=30,由于接收控制的最小幀長信號是在寄存器組里配置,所以對需要在reg_init中更改。

修改完之后,在MAC2處即能接收到40字節的以太網幀了。

95286b6c-4c25-11ed-a3b6-dac502259ad0.png

數據流可以在MAC2處回環了。但從MAC2的發送口收到的數據幀長度被自動填充到64字節了。如下圖中的打紅叉處。

95332868-4c25-11ed-a3b6-dac502259ad0.png

經檢查,發現開源代碼的發送模塊部分會自動的填充補零。相關模塊代碼如下:

953b3c6a-4c25-11ed-a3b6-dac502259ad0.png

修改成支持傳輸40字節的超短幀,如下圖:

954cf55e-4c25-11ed-a3b6-dac502259ad0.png

修改過之后,超短幀數據即可形成回環。

955e7e1e-4c25-11ed-a3b6-dac502259ad0.png

上板抓取超短幀

MAC1超短幀發送端

9586e174-4c25-11ed-a3b6-dac502259ad0.png

ephy_send側的發送數據,對應抓取數據幀位置如下圖。

95ac2e3e-4c25-11ed-a3b6-dac502259ad0.png

注意:這里沒有抓發送側的rgmii_txd是因為他是oddr型的驅動,沒有辦法驅動寄存器,所以沒法打拍抓信號,更不能直接抓,所以抓了轉換前的8位數據。

MAC2超短幀接收端

95b22884-4c25-11ed-a3b6-dac502259ad0.png

值得注意的是,這里的rgmii_rx是buf型的驅動,所以是可以抓的信號,并且還未進行4到8的轉換,所以這里只有上升沿采到的高半字節偶數,而低半字節需要下降沿采樣。抓取位置對應于下圖中的箭頭處。

95b855ba-4c25-11ed-a3b6-dac502259ad0.png

結論

通過以上實驗可知,超短幀是可以經過雙絞線傳輸的,PHY芯片不會對其進行過濾。但沒有對商用的交換機進行測試,也許會出現文中提到的MAC那樣,硬件芯片會自動補零到64字節了。

審核編輯:郭婷

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

    關注

    40

    文章

    5610

    瀏覽量

    175396
  • 電磁波
    +關注

    關注

    21

    文章

    1480

    瀏覽量

    54555

原文標題:【實測】網絡中可以傳小于64字節的數據包嗎?

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    下位機CY7C68013A發送數據,上位機C#讀取數據,510字節一幀,會丟幀或者幀內錯位是怎么回事?

    下位機CY7C68013A發送數據,上位機C#在1個while循環內不斷地讀取數據,510字節1幀,1秒333幀、1秒667幀、1秒1333幀,會整幀丟幀或者幀內丟部分字節導致錯位(幀頭不在開始的位置),這個怎么回事?
    發表于 05-30 07:43

    如何將小于1024字節的緩沖區從FPGA發送到PC?

    的 PC 請求讀取時出現錯誤,然后我嘗試從 FPGA 連續發送到 PC。 最后,我意識到 PC(主機)只能讀取 1024 個字節。 非常糟糕,如何將小于1024字節的緩沖區從FPGA
    發表于 05-09 08:18

    如何使用PN7制作具有5180字節UID的身份驗證mifare plus?

    我正在開發的讀卡器使用 PN5180。 我想讀取 7 字節 UID 的 Mifare Plus ev1 卡 但 PN5180數據表僅解釋了4字節 UID 卡。 如何使用 PN7 制作具有 5180 字節 UID 的身份驗證 mi
    發表于 04-01 06:37

    FM24C64 64KB的串行存儲器中文手冊

    AT24C64是一款串行電可擦除編程只讀存儲器 (EEPROM),存儲容量為8192字節,分為256頁,每頁32字節。 具有低功耗CMOS技術,自定時編程周期,支持SOP-8和DIP-8封裝。 適用于智能儀器儀表、筆記本電腦、計
    發表于 02-28 15:48 ?0次下載

    DS1338 I2C RTC,帶有56字節NV RAM技術手冊

    DS1338串行實時時鐘(RTC)是低功耗、全二進制編碼的十進制(BCD)時鐘/日歷,外加56字節NV SRAM。地址與數據通過I2C總線串行傳送。時鐘/日歷可以提供秒、分、時、日、月、年信息。對于
    的頭像 發表于 02-26 17:29 ?448次閱讀
    DS1338 I2C RTC,帶有56<b class='flag-5'>字節</b>NV RAM技術手冊

    信而泰網絡測試儀校準解決方案

    端口設置端口速率1Gbps,發送64Byte字節長度報文,幀頭觸發器檢測到以太網信號中幀頭速率,即產生對應速率的計數脈沖,脈沖信號通過BNC
    發表于 01-13 15:29

    百問MQTT協議分析 - 報文分析①

    16.3 報文分析 16.3.1 CONNECT-連接服務端 ?客戶端到服務端的網絡連接建立(完成三次握手)后,客戶端發送給服務端的第一個報文必須是 CONNECT
    發表于 12-13 09:41

    百問MQTT協議分析 - MQTT簡述及協議報文格式組成

    )1字節固定報頭,2字節心跳報文報文結構緊湊 e)消息QoS支持,可靠傳輸保證 16.1.3 應用 ?MQTT協議廣泛應用于物聯網、移動互聯網、智能硬件、車聯網、電力能源等領域。 a
    發表于 12-13 09:29

    什么是IPV4?什么是IPV6?

    號進行地址分配。 本身不強制要求安全性,但可以通過IPsec等技術來提供安全保障,實施相對復雜。 IPv4報文格式特性: 報文格式較為復雜,包含多個可選字段。 報頭長度可變,最小為20字節
    的頭像 發表于 09-23 14:13 ?979次閱讀

    MAX9877將數據發送到NVM中,發送數據時,必須要填滿128個字節嗎?

    想請問一下9877將數據發送到NVM中,一頁的數據傳輸,最多可以發送128字節。想問一下發送數據時,必須要填滿128個字節嗎,還是可以只要
    發表于 07-24 07:00

    請問esp_init_data_default.bin的第108字節如何設置?

    esp_init_data_default.bin的第108字節的值如何設置,該值代表的意義是什么,會執行什么操作
    發表于 07-22 07:23

    TL16C752D具有64字節FIFO的雙路UART數據表

    電子發燒友網站提供《TL16C752D具有64字節FIFO的雙路UART數據表.pdf》資料免費下載
    發表于 07-10 09:19 ?0次下載
    TL16C752D具有<b class='flag-5'>64</b><b class='flag-5'>字節</b>FIFO的雙路UART數據表

    請問esp8266官方spi的例子是不是都是4字節傳輸的?

    esp8266的官方例子可有1字節傳輸的啊,兩字節傳輸的我改成1字節的接收數據總是錯誤,也不知道哪里錯了,請問有單字節傳輸的嗎?我試試看數據可對?
    發表于 07-09 06:01

    具有128字節FIFO的TL16C750E UART數據表

    電子發燒友網站提供《具有128字節FIFO的TL16C750E UART數據表.pdf》資料免費下載
    發表于 07-08 09:10 ?0次下載
    具有128<b class='flag-5'>字節</b>FIFO的TL16C750E UART數據表

    TL16C752B-EP帶64字節FIFO的3.3 V雙通道UART數據表

    電子發燒友網站提供《TL16C752B-EP帶64字節FIFO的3.3 V雙通道UART數據表.pdf》資料免費下載
    發表于 07-03 12:53 ?0次下載
    TL16C752B-EP帶<b class='flag-5'>64</b><b class='flag-5'>字節</b>FIFO的3.3 V雙通道UART數據表
    主站蜘蛛池模板: 成年女人毛片 | 色婷婷在线观看视频 | 农村女人的一级毛片 | 天天看视频 | 国产人成高清视频观看 | 色综合天天综合网国产成人 | 看真人一一级毛片 | 色综合久久丁香婷婷 | 亚洲伊人久久大香线蕉啊 | bt天堂网www连接 | 天堂视频在线免费观看 | 亚洲成a人不卡在线观看 | 四虎国产精品永久在线 | 九九re6精品视频在线观看 | 国产色爽女小说免费看 | 久久国产精品免费 | 婷婷社区五月天 | 站长工具天天爽视频 | 成年大片免费视频播放手机不卡 | 四虎影裤| 7m凹凸精品分类大全免费 | 男人j桶进女人j的视频 | 欧美四级在线 | 欧美黄色免费网站 | 国产三级日产三级日本三级 | 久久狠狠色噜噜狠狠狠狠97 | 乱码中文字幕人成在线 | 在线亚洲日产一区二区 | 精品国产自在现线看久久 | 亚洲一区二区视频 | 狠狠干亚洲色图 | 毛片的网站 | 97久草| 色天使网 | 老师下面好紧 | 性欧美高清极品猛交 | 久久精品影院永久网址 | 亚洲一区二区黄色 | 7777奇米影视 | 在线免费黄色 | 国产成人毛片亚洲精品不卡 |