當(dāng)你需要使用千兆網(wǎng)發(fā)送數(shù)據(jù)的時候,你需要先傳輸8字節(jié)的前導(dǎo)碼,也就是7個字節(jié)的0xAA和1個字節(jié)的0xAB,但是因?yàn)?a target="_blank">網(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類型,因?yàn)镸AC幀里面除了IP協(xié)議以后,還有其他的比如ATM網(wǎng)絡(luò)類型。所以這個地方的IP類型選擇0x0800,為IPv4類型。
二層發(fā)完就需要發(fā)送三層的IP數(shù)據(jù)報首部,這個首部的內(nèi)容就有點(diǎn)多了。以一個圖片來代表,
該圖來源網(wǎng)絡(luò)
這里我們只選用最精簡的IP數(shù)據(jù)報首部,其它的可選項都忽略不表。
- 因?yàn)槭褂肐Pv4,版本號肯定是4;
- 這里的頭長度,以4個字節(jié)為一個單位,我們選用最精簡的版本,所以這里為5;
- 服務(wù)類型默認(rèn)為0;
- 總長度以1個字節(jié)為一個單位,所以這個長度需要將UDP數(shù)據(jù)包長度加上4倍的IP包頭長度;
- 標(biāo)識是每個數(shù)據(jù)包的計數(shù)器,當(dāng)然發(fā)送一個包后,這個計數(shù)器就加1;
- 標(biāo)志位起到的作用是標(biāo)志數(shù)據(jù)包是否有分片,如果有分片該包是否是這個分片的最后一包;
- 片偏移就是在啟用分片的時候標(biāo)記出,這個數(shù)據(jù)包在整個數(shù)據(jù)中的位置;
- 生存時間是這個數(shù)據(jù)包能夠經(jīng)過的最大路由器數(shù),當(dāng)它經(jīng)過一個路由器轉(zhuǎn)發(fā),這個生存時間就會減1,減到0就會丟棄這個數(shù)據(jù)包,也就是代表這個數(shù)據(jù)包找不到它的下家了;
- 上層協(xié)議標(biāo)識,也就是IP數(shù)據(jù)包封裝的里面的數(shù)據(jù)包的類型,我們選用相對簡單的UDP協(xié)議,所以這個地方的值為17;
- 頭部檢驗(yàn)和,這個檢驗(yàn)和必須按照規(guī)則來說,否則接收方會認(rèn)為這個數(shù)據(jù)包已經(jīng)損壞了,它的運(yùn)算規(guī)則可以從網(wǎng)上的資料查到,操作并不麻煩;
- 接下來就要我們發(fā)送方的地址——源IP地址,這樣讓接收方收到我們的來信可以給我們回信;
- 然后就是接收這個數(shù)據(jù)包的收件人的地址——目的IP地址;
至此,我們的IP數(shù)據(jù)包首部已經(jīng)設(shè)置結(jié)束。
接下來就進(jìn)入了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é);
- 最后的檢驗(yàn)和可以設(shè)置為0,這里設(shè)為0不會影響數(shù)據(jù)的傳輸;
然后你就可以愉快的發(fā)送數(shù)據(jù),發(fā)送完了之后就可以發(fā)送4個字節(jié)的CRC校驗(yàn)值。至此整個數(shù)據(jù)傳輸結(jié)束。
-
FPGA設(shè)計
+關(guān)注
關(guān)注
9文章
428瀏覽量
26466 -
以太網(wǎng)
+關(guān)注
關(guān)注
40文章
5343瀏覽量
170814 -
Mac
+關(guān)注
關(guān)注
0文章
1095瀏覽量
51341 -
LSB
+關(guān)注
關(guān)注
0文章
37瀏覽量
13234 -
UDP通信
+關(guān)注
關(guān)注
0文章
21瀏覽量
1880
發(fā)布評論請先 登錄
相關(guān)推薦
評論