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

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

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

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

一種基于FPGA的以太網(wǎng)高速傳輸平臺
詳解FPGA的10G以太網(wǎng)接口調試

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

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

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

評論