1 以太網(wǎng)原理介紹
1.1 以太網(wǎng)幀
在以太網(wǎng)鏈路上的數(shù)據(jù)包稱作以太網(wǎng)幀。以太網(wǎng)幀起始部分由前導(dǎo)碼和幀開始符組成。后面緊跟著一個(gè)以太網(wǎng)報(bào)頭,以MAC地址說明目的地址和源地址。幀的中部是該幀負(fù)載的包含其他協(xié)議報(bào)頭的數(shù)據(jù)包(例如IP協(xié)議、ARP協(xié)議)。以太幀由一個(gè)32位冗余校驗(yàn)碼結(jié)尾。它用于檢驗(yàn)數(shù)據(jù)傳輸是否出現(xiàn)損壞。以太網(wǎng)幀格式如下圖所示。
1.前導(dǎo)碼和幀開始符是固定的,為7個(gè)0x55緊跟著1個(gè)0xd5
2.目的MAC地址指明幀的接受者
3.源MAC地址指明幀的發(fā)送者
4.以太網(wǎng)類型,指示幀的類型,比如0x0800表示該幀是IP數(shù)據(jù)包,0x0806表示該幀是ARP協(xié)議數(shù)據(jù)包
5.數(shù)據(jù)和填充就是所承載的數(shù)據(jù)包,跟前面以太網(wǎng)類型對應(yīng)。
6.幀校驗(yàn)序列是一個(gè)32位的循環(huán)校驗(yàn)碼(FCS)。
每一個(gè)設(shè)備都有一個(gè)不同的MAC地址,當(dāng)一個(gè)設(shè)備A發(fā)送一個(gè)以太網(wǎng)幀,源MAC地址是自己的MAC地址,目的MAC地址如果是0xffffff,此時(shí)就是廣播,所有與之連接的設(shè)備都會(huì)收到該幀,如果目的MAC地址是一個(gè)獨(dú)特的MAC地址,那么本地MAC地址與之相同的設(shè)備將會(huì)接收到該以太網(wǎng)幀,然后通過判斷以太網(wǎng)幀類型,進(jìn)行下一步數(shù)據(jù)包解析。
1.2 ARP協(xié)議
ARP協(xié)議,全稱為Address Resolution Protocol,即地址解析協(xié)議,ARP協(xié)議屬于以太網(wǎng)幀的一種,前面以太網(wǎng)幀介紹中有說到,我們?nèi)绻麖脑O(shè)備A發(fā)送以太網(wǎng)幀到設(shè)備B,我們不可能每次都進(jìn)行廣播,那么設(shè)備A如何知道設(shè)備B的物理地址呢?ARP協(xié)議就是為了解決這個(gè)問題。
首先設(shè)備A廣播,發(fā)送ARP請求,等收到設(shè)備B的ARP應(yīng)答以后就能知道設(shè)備B的MAC地址。ARP幀格式如下圖所示
ARP字段就是前面以太網(wǎng)幀待填充的數(shù)據(jù)。
硬件類型、上層協(xié)議類型、MAC地址長度、IP地址長度均固定不變。
假設(shè)設(shè)備A的IP地址為192.168.0.2,MAC地址為0x00_0a_35_01_fe_c0,我們知道目的IP地址為192.168.0.3,不知道該IP地址對應(yīng)的MAC地址,如果設(shè)備A想要和IP地址為192.168.0.3的設(shè)備B進(jìn)行通信(如UDP或者IP通信),就必須知道它的MAC地址。此時(shí)設(shè)備A就需要廣播發(fā)送ARP請求,接收方MAC地址填0xff_ff_ff_ff_ff_ff。這樣IP地址為192.168.0.3的設(shè)備就會(huì)解析出這是一個(gè)ARP請求,它詢問自身的MAC地址,此時(shí)它就會(huì)做出ARP應(yīng)答,將自身的MAC地址發(fā)送給對應(yīng)IP地址的設(shè)備A。
注意發(fā)送ARP請求時(shí),操作碼為0x0001,應(yīng)答時(shí)操作碼為0x0002。
1.3 IP協(xié)議
TCP/IP協(xié)議定義了一個(gè)在因特網(wǎng)上傳輸?shù)陌Q為IP數(shù)據(jù)包,而IP數(shù)據(jù)報(bào)(IP Datagram)是個(gè)比較抽象的內(nèi)容,是對數(shù)據(jù)包的結(jié)構(gòu)進(jìn)行分析。由首部和數(shù)據(jù)兩部分組成,其格式如下圖圖所示。首部的前一部分是固定長度,共20字節(jié),是所有IP數(shù)據(jù)報(bào)必須具有的。在首部的固定部分的后面是一些可選字段,其長度是可變的。首部中的源地址和目的地址都是IP協(xié)議地址。
1.4 UDP協(xié)議
UDP 協(xié)議是一種不可靠傳輸,發(fā)送方只負(fù)責(zé)將數(shù)據(jù)發(fā)送出去,而不管接收方是否正確的接收。非常類似于 UART 串口傳輸。但是,在很多場合,是可以接受這種潛在的不可靠性的,例如視頻實(shí)時(shí)傳輸顯示。在這類系統(tǒng)中,由于數(shù)據(jù)并不需要進(jìn)行運(yùn)算并得到非常精確的結(jié)果用于其他功能,而僅僅是顯示在屏幕上,因此可以接受一定程度的丟包或者誤碼。此類應(yīng)用在 LED 大屏顯示系統(tǒng)中應(yīng)用非常廣泛。UDP幀組成如下圖所示
審核編輯:劉清
-
FPGA
+關(guān)注
關(guān)注
1644文章
21989瀏覽量
615222 -
以太網(wǎng)
+關(guān)注
關(guān)注
40文章
5600瀏覽量
175099 -
FCS
+關(guān)注
關(guān)注
4文章
32瀏覽量
14639 -
ARP協(xié)議
+關(guān)注
關(guān)注
0文章
10瀏覽量
7013 -
串口傳輸
+關(guān)注
關(guān)注
0文章
33瀏覽量
1971
原文標(biāo)題:FPGA學(xué)習(xí)-以太網(wǎng)原理介紹
文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
基于Xilinx FPGA的千兆以太網(wǎng)控制器的開發(fā)

簡談基于FPGA的千兆以太網(wǎng)

基于FPGA的以太網(wǎng)ARP通信測試(二)

【小梅哥2017力作】詳細(xì)的FPGA以太網(wǎng)設(shè)計(jì)教程,76頁精華PDF
簡談基于FPGA的千兆以太網(wǎng)
簡談基于FPGA的千兆以太網(wǎng)設(shè)計(jì)
基于FPGA的萬兆以太網(wǎng)接口設(shè)計(jì)

基于FPGA的以太網(wǎng)光譜數(shù)據(jù)傳輸系統(tǒng)

一種基于FPGA的以太網(wǎng)高速傳輸平臺(tái)
基于FPGA的萬兆以太網(wǎng)接口的設(shè)計(jì)與實(shí)現(xiàn)
詳解FPGA的10G以太網(wǎng)接口調(diào)試

以太網(wǎng)是什么_以太網(wǎng)怎么連接寬帶

以太網(wǎng)的傳播速率_以太網(wǎng)的傳輸介質(zhì)
FPGA如何為以太網(wǎng)和千兆以太網(wǎng)解決低功耗問題

基于FPGA的UDP千兆以太網(wǎng)光通信

評論