一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

網(wǎng)絡(luò)是否允許小于64字節(jié)的以太網(wǎng)幀或者報(bào)文傳輸?

FPGA之家 ? 來(lái)源:CSDN技術(shù)社區(qū) ? 作者:CSDN技術(shù)社區(qū) ? 2020-09-05 11:46 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

同學(xué)們?cè)趯W(xué)網(wǎng)絡(luò)課程的時(shí)候都知道,除巨幀外,常見(jiàn)的以太網(wǎng)幀的長(zhǎng)度范圍是64字節(jié)到1518字節(jié),并且因?yàn)樽畛蹩偩€(xiàn)型半雙工的組網(wǎng)原因,人們制定了CSMA/CD協(xié)議,規(guī)定了以太網(wǎng)中最短幀為64字節(jié)。然而,互聯(lián)網(wǎng)的發(fā)展日新月異,今天的網(wǎng)絡(luò)早已不是當(dāng)初的半雙工模式,CSMA/CD協(xié)議也早已不再使用,那么現(xiàn)在網(wǎng)絡(luò)是否允許小于64字節(jié)的以太網(wǎng)幀或者報(bào)文傳輸呢?本文搭建硬件環(huán)境進(jìn)行了驗(yàn)證。

回顧

電磁波在雙絞線(xiàn)上傳輸?shù)乃俣葹?.7倍光速,在1km電纜的傳播時(shí)延約為5us。傳統(tǒng)的網(wǎng)絡(luò)信道比較差,需要有重傳機(jī)制保障可靠性。于是,在節(jié)點(diǎn)A向節(jié)點(diǎn)B發(fā)送數(shù)據(jù)進(jìn)行通信的時(shí)候,要保證以太網(wǎng)的重傳,必須保證A收到碰撞信號(hào)的時(shí)候,數(shù)據(jù)包沒(méi)有傳完,要實(shí)現(xiàn)這一要求,A和B之間的距離很關(guān)鍵,也就是說(shuō)信號(hào)在A和B之間傳輸?shù)膩?lái)回時(shí)間必須控制在一定范圍之內(nèi)。IEEE定義了這個(gè)標(biāo)準(zhǔn),一個(gè)碰撞域內(nèi),最遠(yuǎn)的兩臺(tái)機(jī)器之間的round-trip time 要小于512bit 時(shí)間。(來(lái)回時(shí)間小于512位時(shí),所謂位時(shí)就是傳輸一個(gè)比特需要的時(shí)間)。因此,傳統(tǒng)以太網(wǎng)有如下特點(diǎn): 1、最大覆蓋距離(兩個(gè)站點(diǎn)最遠(yuǎn)的距離):2500m; 2、爭(zhēng)用期(即一個(gè)信號(hào)最遠(yuǎn)來(lái)回的傳播時(shí)間):51.2us;過(guò)來(lái)這個(gè)時(shí)間還未監(jiān)聽(tīng)到?jīng)_突,則說(shuō)明無(wú)沖突; 3、最小幀長(zhǎng):64字節(jié);因?yàn)閭鹘y(tǒng)以太網(wǎng)速率是10Mbps,爭(zhēng)用期是51.2us;即在這個(gè)時(shí)間內(nèi),幀的數(shù)據(jù)不能發(fā)完,否則將不能監(jiān)聽(tīng)到?jīng)_突了(CSMA/CD協(xié)議是邊發(fā)邊聽(tīng)、不發(fā)不聽(tīng);因?yàn)槿绻麕l(fā)完,則不在監(jiān)聽(tīng),這個(gè)時(shí)候即使來(lái)了有沖突的信號(hào),不在監(jiān)聽(tīng),也不知道已經(jīng)沖突了),這樣的話(huà)CSMA/CD協(xié)議可靠性也就大大折扣了;即:B/10M >= 51.2us;即512bit,64個(gè)字節(jié); 4、幀間最小間隔:9.6us;相當(dāng)于發(fā)送96bit;即在CSDM/CD協(xié)議下,一個(gè)站點(diǎn)在監(jiān)測(cè)到信道空閑后,需要等待9.6us才能發(fā)送數(shù)據(jù);(主要目的是留給剛剛接收數(shù)據(jù)的站點(diǎn)清理接收緩存,做好接下一陣的準(zhǔn)備----------流量控制其實(shí)也是) 上述所說(shuō)的以太網(wǎng)幀是針對(duì)以太網(wǎng)Ⅱ型幀進(jìn)行的描述。幀格式如下:

那么,現(xiàn)在互聯(lián)網(wǎng)中發(fā)送長(zhǎng)度小于64字節(jié)的報(bào)文時(shí)如何傳送呢?比如ARP報(bào)文。有效長(zhǎng)度如下: ARP報(bào)文:4字節(jié)+4字節(jié)+6字節(jié)+4字節(jié)+6字節(jié)+4字節(jié)=28字節(jié),遠(yuǎn)不夠64字節(jié)。 事實(shí)上,在傳送ARP報(bào)文時(shí),需要進(jìn)行填充。

arp程序代碼里,會(huì)增加一個(gè)填充程序,填充字段 18字節(jié), 這樣以太網(wǎng)數(shù)據(jù)部分=ARP28字節(jié)+填充18字節(jié)=46字節(jié)。這樣,Dmac 6字節(jié)+S mac 6字節(jié)+ type 2字節(jié)+ARP 46字節(jié)+FCS4字節(jié)=64字節(jié)。 從而保證了互聯(lián)網(wǎng)上可以有效的傳輸小于64字節(jié)的報(bào)文。上述內(nèi)容來(lái)源于網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系我刪除。網(wǎng)上有很多很多討論為什么以太網(wǎng)幀最短幀為64字節(jié)的文章,大家可以自行百度。我們關(guān)注的問(wèn)題是,如果不填充,而是強(qiáng)行傳送小于64字節(jié)的報(bào)文呢?我們搭建了一個(gè)上板實(shí)驗(yàn)進(jìn)行了驗(yàn)證。

實(shí)驗(yàn)環(huán)境

開(kāi)發(fā)板:Zedboard。 網(wǎng)絡(luò):雙絞線(xiàn)接Zedboard四端口擴(kuò)展板1口和3口并形成回環(huán)。 EDA工具:Vivado2018.2、ModelSim10.5。 真實(shí)硬件驗(yàn)證環(huán)境如下圖(請(qǐng)忽略圖中紙箱子等雜物):

回環(huán)結(jié)構(gòu)

實(shí)驗(yàn)?zāi)康模簽榱蓑?yàn)證,在實(shí)際鏈路中短于64字節(jié)的mac數(shù)據(jù)幀能否通過(guò)雙絞線(xiàn)在phy層之間傳輸,以及mac核對(duì)于長(zhǎng)度不符合要求的數(shù)據(jù)幀的處理情況。

事實(shí)上,在上圖中,最短幀能否通過(guò)MAC1對(duì)應(yīng)的RJ45網(wǎng)口發(fā)出來(lái)的前提是能否順利的通過(guò)PHY芯片,FPGA芯片、PHY芯片以及RJ45接口的關(guān)系圖如下:

PHY與FPGA之間的接口為RGMII接口。在FPGA內(nèi)部構(gòu)建的長(zhǎng)度小于64字節(jié)的以太網(wǎng)幀,通過(guò)FPGA芯片與PHY芯片之間的RGMII接口首先發(fā)給PHY芯片,如果能夠順利的通過(guò)PHY芯片,才能從RJ45接口(MAC1)通過(guò)雙絞線(xiàn)發(fā)送給MAC2的RJ45接口,進(jìn)而再經(jīng)過(guò)MAC2對(duì)應(yīng)的RJ45接口、PHY芯片,最后送回到FPGA芯片內(nèi)部。如下圖所示,左側(cè)MAC1采用自己寫(xiě)的超短幀產(chǎn)生和接收模塊,右側(cè)MAC2采用Opencores上的開(kāi)源MAC核。

數(shù)據(jù)流

Step1:通過(guò)data_gen模塊循環(huán)發(fā)送定長(zhǎng)數(shù)據(jù)32’h12_34_56_78,通過(guò)8位數(shù)據(jù)端口傳給ephy_source模塊。

Step2:ephy_source模塊根據(jù)接收的數(shù)據(jù),以及長(zhǎng)度進(jìn)行mac幀封裝,并填寫(xiě)固定目的mac地址:48’h01_01_01_01_01_01以及源mac地址:48’h08_08_08_08_08_08之后依次按單字節(jié)發(fā)送數(shù)據(jù)域內(nèi)數(shù)據(jù),并進(jìn)行crc計(jì)算。

Step3:通過(guò)rgmii接口模塊進(jìn)行8位gmii接口數(shù)據(jù)到4位rgmii接口數(shù)據(jù)的轉(zhuǎn)換后接到phy層。

Step4:經(jīng)雙絞線(xiàn)傳輸后來(lái)到另一端的phy層,并依次經(jīng)過(guò)phy層、rgmii轉(zhuǎn)換送入mac處理。

Step5:mac接收的數(shù)據(jù),在去掉前導(dǎo)碼、crc校驗(yàn)后,以32位寬的形式將數(shù)據(jù)部分發(fā)送給用戶(hù)側(cè),這里直接將數(shù)據(jù)通過(guò)回環(huán)發(fā)送到mac2的用戶(hù)發(fā)送數(shù)據(jù)端口,再次通過(guò)mac2的組幀、crc計(jì)算、8位gmii到4位rgmii的轉(zhuǎn)換之后通過(guò)phy2的tx發(fā)送回phy1的接收端口。

超短幀長(zhǎng)度設(shè)置為40字節(jié)。從MAC1發(fā)出,經(jīng)過(guò)PHY1芯片,經(jīng)過(guò)雙絞線(xiàn)和MAC2的PHY2芯片,可以在MAC2的RGMII接口處收到。

仿真及上板結(jié)果如下:

可以看到在數(shù)據(jù)幀長(zhǎng)度不符合標(biāo)準(zhǔn)的時(shí)候,是沒(méi)有辦法通過(guò)MAC2的mac核的,但是能夠到達(dá)接收端的rgmii_rx部分。

經(jīng)檢查,發(fā)現(xiàn)開(kāi)源IP核接收數(shù)據(jù)文件mac_rx_ctrl.v中對(duì)接收到的數(shù)據(jù)幀進(jìn)行了長(zhǎng)度判斷,把不滿(mǎn)足64字節(jié)的數(shù)據(jù)幀給過(guò)濾掉了。

通過(guò)寄存器可以配置LTU MTU大小,默認(rèn)的LTU=64bytes MTU=1530bytes。

為了能接收到長(zhǎng)度為40直接的數(shù)據(jù)幀,我們進(jìn)行了如下修改:

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

修改完之后,在MAC2處即能接收到40字節(jié)的以太網(wǎng)幀了。

數(shù)據(jù)流可以在MAC2處回環(huán)了。但從MAC2的發(fā)送口收到的數(shù)據(jù)幀長(zhǎng)度被自動(dòng)填充到64字節(jié)了。如下圖中的打紅叉處。

經(jīng)檢查,發(fā)現(xiàn)開(kāi)源代碼的發(fā)送模塊部分會(huì)自動(dòng)的填充補(bǔ)零。相關(guān)模塊代碼如下:

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

修改過(guò)之后,超短幀數(shù)據(jù)即可形成回環(huán)。

上板抓取超短幀

MAC1超短幀發(fā)送端

ephy_send側(cè)的發(fā)送數(shù)據(jù),對(duì)應(yīng)抓取數(shù)據(jù)幀位置如下圖。

注意:這里沒(méi)有抓發(fā)送側(cè)的rgmii_txd是因?yàn)樗莖ddr型的驅(qū)動(dòng),沒(méi)有辦法驅(qū)動(dòng)寄存器,所以沒(méi)法打拍抓信號(hào),更不能直接抓,所以抓了轉(zhuǎn)換前的8位數(shù)據(jù)。

MAC2超短幀接收端

值得注意的是,這里的rgmii_rx是buf型的驅(qū)動(dòng),所以是可以抓的信號(hào),并且還未進(jìn)行4到8的轉(zhuǎn)換,所以這里只有上升沿采到的高半字節(jié)偶數(shù),而低半字節(jié)需要下降沿采樣。抓取位置對(duì)應(yīng)于下圖中的箭頭處。

結(jié)論

通過(guò)以上實(shí)驗(yàn)可知,超短幀是可以經(jīng)過(guò)雙絞線(xiàn)傳輸?shù)?,PHY芯片不會(huì)對(duì)其進(jìn)行過(guò)濾。但筆者沒(méi)有對(duì)商用的交換機(jī)進(jìn)行測(cè)試,也許會(huì)出現(xiàn)文中提到的MAC那樣,硬件芯片會(huì)自動(dòng)補(bǔ)零到64字節(jié)了。

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

    關(guān)注

    41

    文章

    5632

    瀏覽量

    175889
  • 網(wǎng)絡(luò)
    +關(guān)注

    關(guān)注

    14

    文章

    7814

    瀏覽量

    90921

原文標(biāo)題:【實(shí)測(cè)】網(wǎng)絡(luò)中可以傳小于64字節(jié)的數(shù)據(jù)包嗎?

文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    以太網(wǎng)入門(mén):從零開(kāi)始,掌握以太網(wǎng)基礎(chǔ)知識(shí)!

    ?以太網(wǎng)是一種基于異步載波偵聽(tīng)多路訪(fǎng)問(wèn)/沖突檢測(cè)(CSMA/CD)協(xié)議的通信技術(shù)。它支持的有效負(fù)載大小為46-1500個(gè)八位字節(jié),數(shù)據(jù)速率可達(dá)10Mbps、10
    的頭像 發(fā)表于 06-09 14:00 ?2643次閱讀
    <b class='flag-5'>以太網(wǎng)</b>入門(mén):從零開(kāi)始,掌握<b class='flag-5'>以太網(wǎng)</b>基礎(chǔ)知識(shí)!

    下位機(jī)CY7C68013A發(fā)送數(shù)據(jù),上位機(jī)C#讀取數(shù)據(jù),510字節(jié),會(huì)丟幀或者內(nèi)錯(cuò)位是怎么回事?

    下位機(jī)CY7C68013A發(fā)送數(shù)據(jù),上位機(jī)C#在1個(gè)while循環(huán)內(nèi)不斷地讀取數(shù)據(jù),510字節(jié)1,1秒333、1秒667、1秒1333
    發(fā)表于 05-30 07:43

    如何將小于1024字節(jié)的緩沖區(qū)從FPGA發(fā)送到PC?

    的 PC 請(qǐng)求讀取時(shí)出現(xiàn)錯(cuò)誤,然后我嘗試從 FPGA 連續(xù)發(fā)送到 PC。 最后,我意識(shí)到 PC(主機(jī))只能讀取 1024 個(gè)字節(jié)。 非常糟糕,如何將小于1024字節(jié)的緩沖區(qū)從FPGA發(fā)送到PC?
    發(fā)表于 05-09 08:18

    是否可以使用DMA和LPSPI的3字節(jié)大???

    DMA 傳輸為24字節(jié)。 我不需要 CPU 干預(yù),所以一切都需要在 DMA 設(shè)置中進(jìn)行配置,否則就違背了使用 DMA 的目的。 此時(shí),除非我們進(jìn)一步深入研究,否則我不會(huì)分享我的代碼,但我
    發(fā)表于 03-17 06:47

    工業(yè)與IT網(wǎng)絡(luò)中的以太網(wǎng)數(shù)據(jù):格式與用途全解析

    以太網(wǎng)數(shù)據(jù)是計(jì)算機(jī)網(wǎng)絡(luò)通信的基本單位,在不同的應(yīng)用場(chǎng)景中,它的格式有所不同。從互聯(lián)網(wǎng)和工業(yè)自動(dòng)化常見(jiàn)的以太網(wǎng) II ,到 VLAN 組網(wǎng)
    的頭像 發(fā)表于 03-14 17:35 ?852次閱讀
    工業(yè)與IT<b class='flag-5'>網(wǎng)絡(luò)</b>中的<b class='flag-5'>以太網(wǎng)</b>數(shù)據(jù)<b class='flag-5'>幀</b>:格式與用途全解析

    百問(wèn)MQTT協(xié)議分析 - MQTT簡(jiǎn)述及協(xié)議報(bào)文格式組成

    )1字節(jié)固定報(bào)頭,2字節(jié)心跳報(bào)文報(bào)文結(jié)構(gòu)緊湊 e)消息QoS支持,可靠傳輸保證 16.1.3 應(yīng)用 ?MQTT協(xié)議廣泛應(yīng)用于物聯(lián)網(wǎng)、移動(dòng)互
    發(fā)表于 12-13 09:29

    為什么MPLS仍是以太網(wǎng)傳輸技術(shù)的首選

    WAN 電路、以太網(wǎng) WAN 或簡(jiǎn)稱(chēng)為運(yùn)營(yíng)商以太網(wǎng)。該技術(shù)由城域以太網(wǎng)論壇 (MEF) 標(biāo)準(zhǔn)化,并制定了其使用的技術(shù)規(guī)范和實(shí)施協(xié)議。 傳輸技術(shù)對(duì)于運(yùn)營(yíng)商
    的頭像 發(fā)表于 11-29 09:14 ?1021次閱讀
    為什么MPLS仍是<b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>傳輸</b>技術(shù)的首選

    以太網(wǎng)速率對(duì)網(wǎng)絡(luò)性能的影響

    以太網(wǎng)作為最廣泛使用的局域網(wǎng)技術(shù)之一,其速率的提高對(duì)網(wǎng)絡(luò)性能有著直接的影響。從最初的10Mbps發(fā)展到今天的100Gbps甚至更高,以太網(wǎng)速率的提升帶來(lái)了更快的數(shù)據(jù)傳輸速度和更高的
    的頭像 發(fā)表于 11-08 09:11 ?1215次閱讀

    以太網(wǎng)協(xié)議的種類(lèi)和特點(diǎn)

    以太網(wǎng)是一種局域網(wǎng)(Local Area Network, LAN)技術(shù),它定義了一組用于在局域網(wǎng)傳輸數(shù)據(jù)的規(guī)則和標(biāo)準(zhǔn)。以太網(wǎng)協(xié)議的種類(lèi)和
    的頭像 發(fā)表于 11-08 09:10 ?3413次閱讀

    以太網(wǎng)交換模式有哪幾種

    以太網(wǎng)交換模式是指以太網(wǎng)交換機(jī)在數(shù)據(jù)傳輸過(guò)程中所采用的處理和轉(zhuǎn)發(fā)數(shù)據(jù)的方式。以太網(wǎng)交換機(jī)作為局域網(wǎng)
    的頭像 發(fā)表于 10-08 10:12 ?1980次閱讀

    以太網(wǎng)傳輸介質(zhì)和工作模式

    以太網(wǎng)是一種廣泛應(yīng)用的局域網(wǎng)(LAN)技術(shù),它通過(guò)特定的傳輸介質(zhì)和工作模式,在多個(gè)設(shè)備之間高效地傳輸數(shù)據(jù)。本文將從以太網(wǎng)
    的頭像 發(fā)表于 10-08 10:07 ?2126次閱讀

    以太網(wǎng)格式和功能詳解

    以太網(wǎng)(Ethernet Frame)是以太網(wǎng)(Ethernet)協(xié)議用于在局域網(wǎng)(LAN)中傳輸數(shù)據(jù)的基本單位。理解
    的頭像 發(fā)表于 10-08 10:03 ?3949次閱讀

    以太網(wǎng)結(jié)構(gòu)是怎樣的

    以太網(wǎng)(Ethernet Frame)是以太網(wǎng)(Ethernet)協(xié)議用于在局域網(wǎng)(LAN)中傳輸數(shù)據(jù)的基本單位。理解
    的頭像 發(fā)表于 10-08 10:00 ?2882次閱讀

    以太網(wǎng)端口的類(lèi)型和特性

    以太網(wǎng)端口,即以太網(wǎng)接口,是網(wǎng)絡(luò)中用于連接設(shè)備并進(jìn)行數(shù)據(jù)交換的端口。它基于IEEE 802.3標(biāo)準(zhǔn),并使用以太網(wǎng)協(xié)議進(jìn)行數(shù)據(jù)傳輸。
    的頭像 發(fā)表于 08-07 15:27 ?3204次閱讀

    車(chē)載以太網(wǎng)與傳統(tǒng)以太網(wǎng)的區(qū)別

    車(chē)載以太網(wǎng)與傳統(tǒng)以太網(wǎng)在多個(gè)方面存在顯著的差異,這些差異主要體現(xiàn)在傳輸速率、實(shí)時(shí)性、可靠性、物理層標(biāo)準(zhǔn)、應(yīng)用場(chǎng)景以及技術(shù)發(fā)展等方面。
    的頭像 發(fā)表于 07-25 11:12 ?3393次閱讀