## 3.1 定義
單純的0和1沒有任何意義,必須規定解讀方式:多少個電信號算一組?每個信號位有何意義?
這就是"鏈接層"的功能,它在"實體層"的上方,確定了0和1的分組方式。
## 3.2 以太網協議
早期的時候,每家公司都有自己的電信號分組方式。逐漸地,一種叫做["以太網"](http://zh.wikipedia.org/wiki/%E4%BB%A5%E5%A4%AA%E7%BD%91)(Ethernet)的協議,占據了主導地位。
以太網規定,一組電信號構成一個數據包,叫做"幀"(Frame)。每一幀分成兩個部分:標頭(Head)和數據(Data)。

"標頭"包含數據包的一些說明項,比如發送者、接受者、數據類型等等;"數據"則是數據包的具體內容。
"標頭"的長度,固定為18字節。"數據"的長度,最短為46字節,最長為1500字節。因此,整個"幀"最短為64字節,最長為1518字節。如果數據很長,就必須分割成多個幀進行發送。
## 3.3 MAC地址
上面提到,以太網數據包的"標頭",包含了發送者和接受者的信息。那么,發送者和接受者是如何標識呢?
以太網規定,連入網絡的所有設備,都必須具有"網卡"接口。數據包必須是從一塊網卡,傳送到另一塊網卡。網卡的地址,就是數據包的發送地址和接收地址,這叫做MAC地址。

每塊網卡出廠的時候,都有一個全世界獨一無二的MAC地址,長度是48個二進制位,通常用12個十六進制數表示。

前6個十六進制數是廠商編號,后6個是該廠商的網卡流水號。有了MAC地址,就可以定位網卡和數據包的路徑了。
## 3.4 廣播
定義地址只是第一步,后面還有更多的步驟。
首先,一塊網卡怎么會知道另一塊網卡的MAC地址?
回答是有一種ARP協議,可以解決這個問題。這個留到后面介紹,這里只需要知道,以太網數據包必須知道接收方的MAC地址,然后才能發送。
其次,就算有了MAC地址,系統怎樣才能把數據包準確送到接收方?
回答是以太網采用了一種很"原始"的方式,它不是把數據包準確送到接收方,而是向本網絡內所有計算機發送,讓每臺計算機自己判斷,是否為接收方。

上圖中,1號計算機向2號計算機發送一個數據包,同一個子網絡的3號、4號、5號計算機都會收到這個包。它們讀取這個包的"標頭",找到接收方的MAC地址,然后與自身的MAC地址相比較,如果兩者相同,就接受這個包,做進一步處理,否則就丟棄這個包。這種發送方式就叫做"廣播"(broadcasting)。
有了數據包的定義、網卡的MAC地址、廣播的發送方式,"鏈接層"就可以在多臺計算機之間傳送數據了。