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