## 以太網幀

數據鏈路層接收來自網絡層的IP數據報,通過一定的封裝,讓IP數據報能在數據鏈路層上傳輸。像這樣,裝好了的IP數據報,我們稱之為以太網幀,也叫MAC幀。MAC幀由以下幾個重要的部分組成:
* **目的MAC地址**:MAC幀的目的地址占據6個字節,它標志了目標主機的地址。
* **源MAC地址**:和目的地址一樣,源地址也占據6個字節,它標志的源主機的地址。
* **類型**:類型占據2個字節,它記錄上層使用的協議0X0800表示IP協議。
* **數據部分**:數據部分自然是來自上層的IP數據報。
* **FCS**:FCS占據4個字節,它是用來進行差錯檢測的,如果一個MAC幀發生了錯誤,則不能發送到目的主機上。
## 適配器
說到適配器,其實完全可聯想一下生活中的適配器。比如我們給手機充電的時候需要有電源適配器,電源適配器無非就是轉換的作用,或者作為一個載體,實現能量的轉移。實際上,電腦里的適配器也是一樣。結合下面這張圖來理解:

我們都知道,數據在外部媒介中的傳輸方式是串行傳輸,然而計算機處理內部指令的時候,用的是并行的方式。怎樣把串行傳輸的數據轉換成并行傳輸呢?這就需要適配器了。適配器就像是起到了橋梁的作用,通過它,就可以輕松實現數據傳輸方式的轉換
## CAM表
我們都知道交換機,交換機是一種多端口的網橋,在數據鏈路層使用MAC地址轉發數據。在交換機類不實際存儲以一張表,叫做CAM表。這張表記錄了主機的MAC地址以及對應的接口,看看下面的這張圖

有三臺主機A,B,C和交換機連接在一起,最開始,CAM里沒有存儲任何信息。
突然有一天,主機A(源MAC)想要給主機B(目的MAC)發送消息。這個時候,交換機就會檢查自己的CAM表里是否存儲了主機A的信息,交換機一看沒有A的信息,就把A的信息寫進自己的CAM表里。現在,交換機的CAM表變成了這樣:

這個時候,交換機的CAM表里已經存儲了主機A的信息,但是主機A卻想要給主機B發送信息。這可怎么辦呢?**首先**,交換機會檢查自己的CAM表里是否存在B的信息,**如果存在**,就直接把信息轉發給B。**如果不存在**,那又怎么辦呢?猶豫了一下,交換機又有了一個想法,它把主機A發給主機B的消息以廣播的形式發給了所有連在它身上的主機。主機C也收到了這條消息,但是主機C檢查了一下目的地址,不是發給自己的,就果斷丟棄了這條消息。主機B收到了這條消息后,同樣也檢查了收件人(目的地址),發現是給自己的消息,于是就收下了這條消息。之后,交換機就更新了自己的CAM表,上面增加了一條信息:

就這樣,CAM表里存儲了主機A,和主機B的信息。下一次,主機A想要給主機B發送信息的時候,交換機就不需要廣播了。