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

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

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

認識以太網(wǎng)幀的整個結(jié)構(gòu)

冬至子 ? 來源:Bug記錄 ? 作者:woodfan ? 2023-06-19 14:59 ? 次閱讀

當你需要使用千兆網(wǎng)發(fā)送數(shù)據(jù)的時候,你需要先傳輸8字節(jié)的前導(dǎo)碼,也就是7個字節(jié)的0xAA和1個字節(jié)的0xAB,但是因為網(wǎng)絡(luò)協(xié)議規(guī)定,傳輸一個字節(jié)時LSB最先傳輸,所以在程序里,需要先發(fā)7個字節(jié)的0x55,再發(fā)1個字節(jié)的0xd5。然后就完成了以太網(wǎng)的數(shù)據(jù)同步和開始。

接下來就要開始二層MAC幀,里面的內(nèi)容包括了發(fā)送目的地址的MAC地址,源地址的MAC地址以及IP類型,因為MAC幀里面除了IP協(xié)議以后,還有其他的比如ATM網(wǎng)絡(luò)類型。所以這個地方的IP類型選擇0x0800,為IPv4類型。

二層發(fā)完就需要發(fā)送三層的IP數(shù)據(jù)報首部,這個首部的內(nèi)容就有點多了。以一個圖片來代表,

圖片

該圖來源網(wǎng)絡(luò)

這里我們只選用最精簡的IP數(shù)據(jù)報首部,其它的可選項都忽略不表。

  • 因為使用IPv4,版本號肯定是4;
  • 這里的頭長度,以4個字節(jié)為一個單位,我們選用最精簡的版本,所以這里為5;
  • 服務(wù)類型默認為0;
  • 總長度以1個字節(jié)為一個單位,所以這個長度需要將UDP數(shù)據(jù)包長度加上4倍的IP包頭長度;
  • 標識是每個數(shù)據(jù)包的計數(shù)器,當然發(fā)送一個包后,這個計數(shù)器就加1;
  • 標志位起到的作用是標志數(shù)據(jù)包是否有分片,如果有分片該包是否是這個分片的最后一包;
  • 片偏移就是在啟用分片的時候標記出,這個數(shù)據(jù)包在整個數(shù)據(jù)中的位置;
  • 生存時間是這個數(shù)據(jù)包能夠經(jīng)過的最大路由器數(shù),當它經(jīng)過一個路由器轉(zhuǎn)發(fā),這個生存時間就會減1,減到0就會丟棄這個數(shù)據(jù)包,也就是代表這個數(shù)據(jù)包找不到它的下家了;
  • 上層協(xié)議標識,也就是IP數(shù)據(jù)包封裝的里面的數(shù)據(jù)包的類型,我們選用相對簡單的UDP協(xié)議,所以這個地方的值為17;
  • 頭部檢驗和,這個檢驗和必須按照規(guī)則來說,否則接收方會認為這個數(shù)據(jù)包已經(jīng)損壞了,它的運算規(guī)則可以從網(wǎng)上的資料查到,操作并不麻煩;
  • 接下來就要我們發(fā)送方的地址——源IP地址,這樣讓接收方收到我們的來信可以給我們回信;
  • 然后就是接收這個數(shù)據(jù)包的收件人的地址——目的IP地址;

至此,我們的IP數(shù)據(jù)包首部已經(jīng)設(shè)置結(jié)束。

接下來就進入了UDP數(shù)據(jù)包首部,相對來說,UDP數(shù)據(jù)包的首部就非常簡單,跟MAC幀一樣簡單。

圖片

該圖來源網(wǎng)絡(luò)

  • 它的首部,2個字節(jié)的源地址端口,2個字節(jié)的目的端口,也就像門牌號一樣,即使給你小區(qū)的名字,還需要給你一個幾期幾單元幾棟才能找得到人;
  • 接下來就是數(shù)據(jù)長度,這里的數(shù)據(jù)長度不是指你要發(fā)送的數(shù)據(jù)長度,而是你要發(fā)送的數(shù)據(jù)長度加上UDP數(shù)據(jù)包的長度,所以這里的長度等于你要發(fā)的數(shù)據(jù)的長度(1個字節(jié)為1個單位)加上8,單位也是1個字節(jié);
  • 最后的檢驗和可以設(shè)置為0,這里設(shè)為0不會影響數(shù)據(jù)的傳輸;

然后你就可以愉快的發(fā)送數(shù)據(jù),發(fā)送完了之后就可以發(fā)送4個字節(jié)的CRC校驗值。至此整個數(shù)據(jù)傳輸結(jié)束。

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

    關(guān)注

    9

    文章

    428

    瀏覽量

    26452
  • 以太網(wǎng)
    +關(guān)注

    關(guān)注

    40

    文章

    5323

    瀏覽量

    170529
  • Mac
    Mac
    +關(guān)注

    關(guān)注

    0

    文章

    1087

    瀏覽量

    51283
  • LSB
    LSB
    +關(guān)注

    關(guān)注

    0

    文章

    37

    瀏覽量

    13226
  • UDP通信
    +關(guān)注

    關(guān)注

    0

    文章

    21

    瀏覽量

    1876
收藏 人收藏

    評論

    相關(guān)推薦

    以太網(wǎng)怎么連接 以太網(wǎng)組網(wǎng)結(jié)構(gòu)分析

    以太網(wǎng)的組網(wǎng)結(jié)構(gòu)涉及多個層面和組件。首先,從網(wǎng)絡(luò)結(jié)構(gòu)的角度來看,以太網(wǎng)分為物理層、數(shù)據(jù)鏈路層和高層用戶層。其中,物理層采用特定的通信媒體,如50Ω基帶同軸電纜,實現(xiàn)數(shù)據(jù)的傳輸。數(shù)據(jù)鏈路
    的頭像 發(fā)表于 03-08 17:19 ?2811次閱讀
    <b class='flag-5'>以太網(wǎng)</b>怎么連接 <b class='flag-5'>以太網(wǎng)</b>組網(wǎng)<b class='flag-5'>結(jié)構(gòu)</b>分析

    FPGA學(xué)習(xí)-以太網(wǎng)的原理介紹

    以太網(wǎng)鏈路上的數(shù)據(jù)包稱作以太網(wǎng)。以太網(wǎng)起始部分由前導(dǎo)碼和開始符組成。后面緊跟著一個
    的頭像 發(fā)表于 04-02 16:26 ?1476次閱讀
    FPGA學(xué)習(xí)-<b class='flag-5'>以太網(wǎng)</b>的原理介紹

    怎么使用以太網(wǎng)發(fā)送字節(jié)?

    您好,我有一個PIC32以太網(wǎng)啟動器套件,這個套件連接到一個進行人員計數(shù)的照相機上,收集的數(shù)據(jù)是以字節(jié)為單位的的形式。我想實現(xiàn)一個代碼,在計算機上發(fā)送這些字節(jié),并使用以太網(wǎng)鏈接(T
    發(fā)表于 03-26 09:24

    以太網(wǎng)結(jié)構(gòu)

    以太網(wǎng)結(jié)構(gòu)
    發(fā)表于 01-21 12:00 ?4次下載

    基于以太網(wǎng)間隙的同相時鐘信息傳輸袁文燕

    基于以太網(wǎng)間隙的同相時鐘信息傳輸_袁文燕
    發(fā)表于 03-15 08:00 ?0次下載

    以太網(wǎng)的拓撲結(jié)構(gòu)_以太網(wǎng)的通信協(xié)議

    本文首先闡述了以太網(wǎng)的拓撲結(jié)構(gòu),其次介紹了以太網(wǎng)拓撲結(jié)構(gòu)優(yōu)缺點,最后介紹了以太網(wǎng)的通信協(xié)議。
    發(fā)表于 03-20 10:07 ?9070次閱讀

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

    同學(xué)們在學(xué)網(wǎng)絡(luò)課程的時候都知道,除巨外,常見的以太網(wǎng)的長度范圍是64字節(jié)到1518字節(jié),并且因為最初總線型半雙工的組網(wǎng)原因,人們制定了CSMA/CD協(xié)議,規(guī)定了以太網(wǎng)中最短
    的頭像 發(fā)表于 09-05 11:46 ?7992次閱讀
    網(wǎng)絡(luò)是否允許小于64字節(jié)的<b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>幀</b>或者報文傳輸?

    工業(yè)以太網(wǎng)有何優(yōu)勢?工業(yè)以太網(wǎng)物理層介紹

    現(xiàn)代生活中,工業(yè)以太網(wǎng)發(fā)揮的作用愈來愈重要。為增進大家對工業(yè)以太網(wǎng)認識,本文將基于 3 方面介紹工業(yè)以太網(wǎng):1.何為工業(yè)以太網(wǎng)物理層,2.
    的頭像 發(fā)表于 11-09 15:15 ?608次閱讀

    Xilinx平臺以太網(wǎng)接口(一)TCP/IP基礎(chǔ)

    在完成以太網(wǎng)通信實驗之前,必須要對以太網(wǎng)基礎(chǔ)知識進行了解。時間充裕的可以看看《圖解TCP/IP》作為掃盲。本文重點對以太網(wǎng)結(jié)構(gòu)進行介紹。
    的頭像 發(fā)表于 02-19 17:54 ?2252次閱讀
    Xilinx平臺<b class='flag-5'>以太網(wǎng)</b>接口(一)TCP/IP基礎(chǔ)

    基于FPGA的千兆以太網(wǎng)ARP和UDP的實現(xiàn)

    1 以太網(wǎng)原理介紹 1.1 以太網(wǎng)以太網(wǎng)鏈路上的數(shù)據(jù)包稱作以太網(wǎng)。
    的頭像 發(fā)表于 02-16 16:35 ?2352次閱讀

    工業(yè)以太網(wǎng)協(xié)議的歷史及其優(yōu)勢

    用戶不能使用標準以太網(wǎng)介質(zhì)訪問控制(MAC)來實現(xiàn)大多數(shù)工業(yè)以太網(wǎng)標準;相反,需要專用的應(yīng)用特定型集成電路(ASIC)或現(xiàn)場可編程門陣列(FPGA),因為以太網(wǎng)作為“直通”接收,指在
    發(fā)表于 03-20 09:54 ?559次閱讀
    工業(yè)<b class='flag-5'>以太網(wǎng)</b>協(xié)議的歷史及其優(yōu)勢

    以太網(wǎng)的拓撲結(jié)構(gòu)是什么

    以太網(wǎng)的拓撲結(jié)構(gòu)通常采用總線型或星型拓撲結(jié)構(gòu)。在總線型拓撲結(jié)構(gòu)中,所有計算機都連接到同一條總線上,數(shù)據(jù)通過總線進行傳輸。
    發(fā)表于 05-17 15:17 ?2478次閱讀

    簡單認識以太網(wǎng)技術(shù)

    以太網(wǎng)(Ethernet)是一種常見的局域網(wǎng)(LAN)技術(shù),它使用多種協(xié)議來實現(xiàn)數(shù)據(jù)通信。Ethernet的協(xié)議分為多層,其中二層協(xié)議主要涉及數(shù)據(jù)鏈路層。在Ethernet中,數(shù)據(jù)鏈路層使用(frame)來傳輸數(shù)據(jù),而
    的頭像 發(fā)表于 01-07 09:52 ?646次閱讀

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

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

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

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