帶帶弟弟徹底搞懂鏈路層
點擊藍色“程序員cxuan ”關(guān)注我喲
加個“星標”,及時接收最新文章

hey guys,大家好啊,這里是 cxuan 計算機網(wǎng)絡(luò)連載系列的文章第 12 篇文章。本篇文章我來跟你計算機網(wǎng)絡(luò)中的數(shù)據(jù)鏈路層相關(guān)知識。
下面我們把關(guān)注點放在數(shù)據(jù)鏈路層,如果沒有數(shù)據(jù)鏈路層,計算機網(wǎng)絡(luò)也就不復(fù)存在;這就好比大樓沒有了地基,人沒有了腿;所以,數(shù)據(jù)鏈路層的知識也固然重要,不少小伙伴只把關(guān)注點放在 TCP 和 IP 這兩個協(xié)議上,這是一種狹隘的思想,需要及時糾正,計算機網(wǎng)絡(luò)可不只有 TCP 和 IP。下面 cxuan 就和你聊聊計算機中的數(shù)據(jù)鏈路層。
數(shù)據(jù)鏈路層
數(shù)據(jù)鏈路層,按照 OSI 七層模型來劃分的話,就屬于物理層的上層

數(shù)據(jù)鏈路層是一種協(xié)議層,它有很多協(xié)議。數(shù)據(jù)鏈路層用于跨物理層在網(wǎng)段節(jié)點之間傳輸數(shù)據(jù),通常指以太網(wǎng)、無線局域網(wǎng)等通信手段。數(shù)據(jù)鏈路層提供了在網(wǎng)絡(luò)的兩個實體之間傳輸數(shù)據(jù)的功能,并且提供了差錯檢測用于糾正物理層中發(fā)生的錯誤。
關(guān)鍵概念
在數(shù)據(jù)鏈路層中,鏈路層地址有很多種不同的稱謂:LAN 地址、物理地址或者 MAC 地址,因為 MAC 地址是最流行的術(shù)語,所以我們一般稱呼鏈路層地址指的就是 MAC 地址。
下面我們就來認識一下數(shù)據(jù)鏈路層的幾個關(guān)鍵概念
打包成幀
打包成幀(framing): 在每個網(wǎng)絡(luò)層數(shù)據(jù)報在傳輸之前,幾乎所有的鏈路層協(xié)議都會將數(shù)據(jù)報用鏈路層封裝起來。數(shù)據(jù)鏈路層從網(wǎng)絡(luò)層獲取數(shù)據(jù)后將其封裝成為 幀,如果幀太大的話,數(shù)據(jù)鏈路層會將大幀拆分為一個個的小幀,小幀能夠使傳輸控制和錯誤檢測更加高效。
幀就是 0 1 序列的封裝。
一個幀由 Header、Payload Field、Trailer 組成,網(wǎng)絡(luò)層數(shù)據(jù)報就封裝在 Payload Field 字段中。根據(jù)不同的物理介質(zhì),每個幀的結(jié)構(gòu)也不同。幀的組成如下

幀中主要涉及的內(nèi)容如下
幀頭(Frame header):它包含幀的源地址和目的地址。有效載荷(Payload Field):它包含要傳遞的數(shù)據(jù)和信息。尾部標記(Trailer):它包含錯誤檢測和錯誤糾正位。標記(Flag):它標記了幀的開始和結(jié)束。
Flag 位位于幀的開頭和結(jié)尾,兩個連續(xù)的標志指示幀的結(jié)束和開始

幀的類型主要有兩種,固定大小的幀和可變大小的幀。
固定大小的幀(Fixed-sized Framing):表示幀的大小是固定的,幀的長度充當幀的邊界,因此它不需要額外的邊界位來標識幀的開始和結(jié)束。可變大小的幀(Sized Framing):表示每個幀的大小是不固定的,因此保留了其他機制來標記一幀的結(jié)束和下一幀的開始。它通常用于局域網(wǎng),在可變大小的幀中定義幀定界符的兩種方法是長度字段(Length Field): 使用長度字段來確定幀的大小。它用于以太網(wǎng)(IEEE 802.3)結(jié)束定界符(End Delimiter): 經(jīng)常用于令牌環(huán)
鏈路接入
鏈路接入主要指的是 MAC 協(xié)議,MAC(Medium Access Control) 協(xié)議規(guī)定了幀在鏈路上的傳輸規(guī)則。我們知道,數(shù)據(jù)鏈路層是 OSI 標準模型的第二層,數(shù)據(jù)鏈路層向下還能夠細分,主要分為 The logical link control (LLC) 層和The medium access control (MAC) 層。

LLC 層又叫做邏輯控制鏈路層,它主要用于數(shù)據(jù)傳輸,它充當網(wǎng)絡(luò)層和數(shù)據(jù)鏈路層中的媒體訪問控制(MAC)子層之間的接口。LLC 層的主要功能如下
LLC 的主要功能是發(fā)送時在 MAC 層上多路復(fù)用協(xié)議,并在接收時同樣地多路分解協(xié)議。
LLC 提供跳到跳的流和差錯控制,像是路由器和路由器之間這種相鄰節(jié)點的數(shù)據(jù)傳輸稱為
一跳。它允許通過計算機網(wǎng)絡(luò)進行多點通信。
MAC 層負責傳輸介質(zhì)的流控制和多路復(fù)用,它的主要功能如下
MAC 層為 LLC 和 OSI 網(wǎng)絡(luò)的上層提供了物理層的抽象。
MAC 層負責封裝幀,以便通過物理介質(zhì)進行傳輸。
MAC 層負責解析源和目標地址。
MAC 層還負責在沖突的情況下執(zhí)行沖突解決并啟動重傳。
MAC 層負責生成幀校驗序列,從而有助于防止傳輸錯誤。
在 MAC 層中,有一個非常關(guān)鍵的概念就是 MAC 地址。MAC 地址主要用于識別數(shù)據(jù)鏈路中互聯(lián)的節(jié)點,如下圖所示

MAC 地址長 48 bit,在使用網(wǎng)卡(NIC) 的情況下,MAC 地址一般都會燒入 ROM 中。因此,任何一個網(wǎng)卡的 MAC 地址都是唯一的。MAC 地址的結(jié)構(gòu)如下

MAC 地址中的 3 - 24 位表示廠商識別碼,每個 NIC 廠商都有特定唯一的識別數(shù)字。25 - 48 位是廠商內(nèi)部為識別每個網(wǎng)卡而用。因此,可以保證全世界不會有相同 MAC 地址的網(wǎng)卡。
MAC 地址也有例外情況,即 MAC 地址也會有重復(fù)的時候,比如你可以手動更改 MAC 地址。但是問題不大,只要兩個 MAC 地址是屬于不同的數(shù)據(jù)鏈路層就不會出現(xiàn)問題。
可靠交付
網(wǎng)絡(luò)層提供的可靠交付更多指的是端系統(tǒng)到端系統(tǒng)的交付,而數(shù)據(jù)鏈路層提供的可靠交付更多指的是單端鏈路節(jié)點到節(jié)點地的傳送。當鏈路層協(xié)議提供可靠交付時,它能保證無差錯地經(jīng)鏈路層移動每個網(wǎng)絡(luò)層數(shù)據(jù)報。鏈路層提供可靠交付的方法和 TCP 類似,也是使用 確認 和 重傳 取得的。
鏈路層的可靠交付通常用于出錯率很高的鏈路,例如無線鏈路,它的目的是在本地糾正出錯的幀,而不是通過運輸層或應(yīng)用層協(xié)議強制進行端到端的數(shù)據(jù)傳輸。對于出錯率較低的鏈路,比如光纖、同軸電纜和雙絞線來說,鏈路層的交付開銷是沒有必要的,由于這個原因,這些鏈路通常不提供可靠的交付

差錯檢測和糾正
鏈路層數(shù)據(jù)以幀的形式發(fā)送,在發(fā)送的過程中,接收方節(jié)點的鏈路層硬件可能會由于信號干擾或者電磁噪音等原因錯誤的把 1 識別為 0 ,0 識別為 1。這種情況下沒有必要轉(zhuǎn)發(fā)一個有差錯的數(shù)據(jù)報,所以許多鏈路層協(xié)議提供一種機制來檢測這樣的比特差錯。通過讓方節(jié)點在幀中包括差錯檢測比特,讓接收節(jié)點進行差錯檢查,以此來完成這項工作。
運輸層和網(wǎng)絡(luò)層通過因特網(wǎng)校驗和來實現(xiàn)差錯檢測,鏈路層的差錯檢測通常更復(fù)雜,并且用硬件實現(xiàn)。差錯糾正類似于差錯檢測,區(qū)別在于接收方不僅能檢測幀中出現(xiàn)的比特差錯,而且能夠準確的確定幀中出現(xiàn)差錯的位置。
差錯檢測和糾正的技術(shù)主要有
奇偶校驗:它主要用來差錯檢測和糾正
校驗和:這是一種用于運輸層檢驗的方法
循環(huán)冗余校驗:它更多應(yīng)用于適配器中的鏈路層
地址映射
因為存在網(wǎng)絡(luò)層地址(IP 地址)和 數(shù)據(jù)鏈路層地址(MAC 地址),所以需要在它們之間進行轉(zhuǎn)換和映射,這就是地址解析協(xié)議所做的工作,更多關(guān)于地址解析協(xié)議的理解,請查閱
數(shù)據(jù)鏈路層的作用
數(shù)據(jù)鏈路層中的協(xié)議定義了互聯(lián)網(wǎng)絡(luò)的兩個設(shè)備之間傳輸數(shù)據(jù)的規(guī)范。數(shù)據(jù)鏈路層需要以通信介質(zhì) 作為傳輸載體,通信媒介包含雙絞銅線、光纖、電波等紅外裝置。在數(shù)據(jù)分發(fā)裝置上有 交換機、網(wǎng)橋、中繼器 等中轉(zhuǎn)數(shù)據(jù)。鏈路層中的任何設(shè)備又被稱為節(jié)點(node),而沿著通信路徑相鄰節(jié)點之間的通信信道被稱為 鏈路(link)。實際上,在鏈路層上傳輸數(shù)據(jù)的過程中,鏈路層和物理層都在發(fā)揮作用。因為在計算機中,信息是以 0 1 這種二進制的形式進行傳輸,而實際的鏈路通信卻是以電壓的高低、光的閃滅以及電波的頻譜來進行的,所以物理層的作用就是把二進制轉(zhuǎn)換成為鏈路傳輸所需要的信息來進行傳輸。數(shù)據(jù)鏈路層傳輸也不只是單個的 0 1 序列,它們通常是以 幀為單位進行的。
現(xiàn)在我們知道了數(shù)據(jù)鏈路層大概是干啥的,那么只有理論不行,你還得有硬通貨,也就是硬件,一切的理論都離不開硬件的支撐。
硬件就可以簡單理解為通信介質(zhì),在通信介質(zhì)上會有不同種類的信息傳遞方式,不過總的來說可以概括為兩種:一種是共享介質(zhì)型網(wǎng)絡(luò),一種是非共享介質(zhì)型網(wǎng)絡(luò),下面我們就要聊一聊這兩種通信類型。
通信類型分類
共享介質(zhì)型網(wǎng)絡(luò)
共享介質(zhì)型網(wǎng)絡(luò)故名思義就是多個設(shè)備共同使用同一個通信介質(zhì)的網(wǎng)絡(luò)。共享介質(zhì)型網(wǎng)絡(luò)的類型主要有以太網(wǎng)(Ethernet)和 光纖分布式數(shù)據(jù)接口(Fiber Distributed Data Interface,F(xiàn)DDI)。
共享說的是,多個設(shè)備會使用同一個載波信道進行發(fā)送和接收,這是一種半雙工的設(shè)計。
什么是半雙工?
半雙工指的是數(shù)據(jù)可以在一個信道上的兩個方向上相互傳輸,但是不能同時傳輸,舉個簡單的例子,就是你能給我發(fā)消息,我也能給你發(fā)消息,但是不能你給我發(fā)消息的同時我也在給你發(fā)消息。
既然多個設(shè)備會共同使用一個信道,那么就可能存在多個數(shù)據(jù)傳輸?shù)酵粋€介質(zhì)上導(dǎo)致的數(shù)據(jù)爭用問題,為此,共享介質(zhì)型網(wǎng)絡(luò)有兩種介質(zhì)訪問控制方式:爭用和令牌傳遞。
爭用
爭用是發(fā)生在共享介質(zhì),載波監(jiān)聽多路訪問(CSMA) 上的數(shù)據(jù)訪問方式。在這種訪問方式下,網(wǎng)絡(luò)中各個介質(zhì)會采用先到先得的方式占用載波信道發(fā)送數(shù)據(jù)。如果多個介質(zhì)同時發(fā)送幀,就勢必會產(chǎn)生沖突,繼而導(dǎo)致通信性能的下降和網(wǎng)絡(luò)擁堵。下面是爭用的處理方式

如上圖所示,假如 A 想要給 C 發(fā)送數(shù)據(jù),那么介質(zhì) A 會在確認周圍沒有其他介質(zhì)要給 C 發(fā)送數(shù)據(jù)后,也就是經(jīng)過一段時間后,A 會把數(shù)據(jù)馬上發(fā)送給 C。

每個介質(zhì)在接受到 A 發(fā)送的數(shù)據(jù)后,會從 A 報文中解析出來 MAC 地址判斷是否是發(fā)送給自己的數(shù)據(jù)包,如果不是的話就是丟棄這條數(shù)據(jù)。

上面這種方式會使用在一部分以太網(wǎng)中,但是另外一部分以太網(wǎng)卻使用了 CSMA 的改良方式 - CSMA/CD 。CSMA/CD 會要求每個介質(zhì)提前檢查一下鏈路上是否有可能產(chǎn)生沖突的現(xiàn)象,一旦發(fā)生沖突,那么盡可能早地釋放信道。它的具體工作原理大致如下:
監(jiān)聽載波信道上是否會有數(shù)據(jù)流動,如果沒有的話,那么任何介質(zhì)都可以發(fā)送數(shù)據(jù)。
介質(zhì)會檢查是否發(fā)生沖突,一旦發(fā)生沖突就會丟棄數(shù)據(jù),同時立即釋放載波信道。
放棄數(shù)據(jù)后,會經(jīng)過一段時間重新爭用介質(zhì)。
下面是 CSMA/CD 的改良版

上圖這個過程是 CSMA(Carrier Sense Multiple Access),首先介質(zhì)會監(jiān)控載波信道上是否有數(shù)據(jù)存在,如果沒有再發(fā)送,如果有,等一段時間再發(fā)送。
下面是 CD(Collision Detection) 的示意圖

在發(fā)送數(shù)據(jù) -> 發(fā)送完成后,如果電壓一直處于規(guī)定范圍內(nèi),就會認為數(shù)據(jù)已經(jīng)正常發(fā)送。
發(fā)送途中,如果電壓超過了一定范圍,就會認為是數(shù)據(jù)沖突。
發(fā)生沖突時會先發(fā)送一個阻塞報文,繼而放棄數(shù)據(jù),在延遲一段時間后再次發(fā)送
令牌環(huán)
第二種共享介質(zhì)型網(wǎng)絡(luò)的傳輸方式就是令牌環(huán)了,令牌環(huán)顧名思義就是有一個令牌一樣的東西,以環(huán)為一圈進行令牌傳輸,那么令牌是啥呢?你想啊,我們最終的目的不就是為了傳輸數(shù)據(jù)嗎?那么這個令牌,它可不可以作為數(shù)據(jù)呢?
其實,在這種傳輸方式中,令牌環(huán)是作為一種特殊報文來傳輸?shù)模强刂苽鬏數(shù)囊环N方式,在數(shù)據(jù)傳輸?shù)倪^程中同時會將令牌進行傳遞,只有獲得令牌的介質(zhì)才能夠傳輸數(shù)據(jù)。這種方式有兩個優(yōu)點,即
持有令牌的介質(zhì)才能夠傳輸數(shù)據(jù),這樣能夠保證不會有報文沖突情況。
每個介質(zhì)都有平等獲取令牌的機會,這樣保證了即使網(wǎng)絡(luò)擁堵也不會導(dǎo)致性能下降。
但是這種令牌環(huán)的傳遞方式也是有缺點的,因為只有持有令牌的介質(zhì)才能發(fā)送數(shù)據(jù),所以即使在網(wǎng)絡(luò)不太擁堵的情況下,其利用率也達不到 100%。
下面是令牌的傳遞示意圖

最一開始,令牌位于介質(zhì) A 處,此時介質(zhì) A 擁有數(shù)據(jù)傳輸?shù)哪芰?,然后介質(zhì) A 把令牌傳遞給介質(zhì) B。

此時 B 持有令牌,所以介質(zhì) B 具有發(fā)送數(shù)據(jù)的能力。

這個數(shù)據(jù)最終會由 D 接收,然后 D 就會設(shè)置一個已接收數(shù)據(jù)的標志位,然后數(shù)據(jù)會繼續(xù)向下發(fā)送。

令牌環(huán)是一項很成功的技術(shù),尤其是在公司環(huán)境中使用,但后來被更高版本的以太網(wǎng)所取代。
在了解完共享網(wǎng)絡(luò)之后,我們來探討一波非共享網(wǎng)絡(luò)
非共享介質(zhì)型網(wǎng)絡(luò)
如果說共享介質(zhì)型網(wǎng)絡(luò)是共享介質(zhì)的話,那么非共享介質(zhì)型網(wǎng)絡(luò)就是不共享介質(zhì),那么如何通信呢?在這種方式下,網(wǎng)絡(luò)中的每個介質(zhì)會直接連上交換機,由交換機來轉(zhuǎn)發(fā)數(shù)據(jù)幀。發(fā)送端和接收端不會共享通信介質(zhì),共享通信介質(zhì)的意思就是介質(zhì)之間直接通信。這種網(wǎng)絡(luò)傳輸方式一般采用的是全雙工通信。
非共享介質(zhì)型網(wǎng)絡(luò)比較適合應(yīng)用于搭建虛擬局域網(wǎng)(VLAN),但是這種通信方式有一個及其致命的弱點:一旦交換機發(fā)生故障,那么與交換機相連的所有計算機都無法通信。
下面是非共享介質(zhì)型網(wǎng)絡(luò)的通信示意圖

如圖所示,主機 A 發(fā)送了一個目標地址為 B,源地址為 A 的交換機,由交換機負責將數(shù)據(jù)轉(zhuǎn)發(fā)給介質(zhì) B,如下圖所示

非共享型網(wǎng)絡(luò)是一種全雙工通信的方式,每個介質(zhì)在發(fā)送數(shù)據(jù)的同時也能夠接受來自交換機傳遞過來的數(shù)據(jù)。
交換集線器
交換集線器是一種共享型網(wǎng)絡(luò)通信介質(zhì),它是使用同軸電纜作為傳輸介質(zhì),通常用于以太網(wǎng)中,交換集線器也叫做以太網(wǎng)交換機。

以太網(wǎng)交換機中的各個端口會根據(jù)介質(zhì)的 MAC地址來轉(zhuǎn)發(fā)數(shù)據(jù),那么轉(zhuǎn)發(fā)數(shù)據(jù)肯定得有所依靠啊,這時可以參考的表就叫做轉(zhuǎn)發(fā)表(Forwarding Table),轉(zhuǎn)發(fā)表中記錄著每個介質(zhì)的 MAC 地址。轉(zhuǎn)發(fā)表當然不需要我們手動維護,交換機會自動維護轉(zhuǎn)發(fā)表。交換機會自學(xué)每個數(shù)據(jù)包的經(jīng)過介質(zhì)的 MAC 地址,如下圖所示

由于不知道主機 B 的 MAC 地址,所以主機 A 發(fā)送的數(shù)據(jù)會經(jīng)過交換機廣播給以太網(wǎng)內(nèi)的其他主機,主機 B 接收到數(shù)據(jù)后,會給主機 A 回送消息。

在主機 B 給主機 A 回送消息后,交換機就知道主機 A 和主機 B 的 MAC 地址了,從此以后雙方通信會在各自相連的端口之間進行。
由于 MAC 地址沒有層次性,轉(zhuǎn)發(fā)表中的記錄個數(shù)與所有網(wǎng)絡(luò)設(shè)備的數(shù)量有關(guān),當設(shè)備增加時,轉(zhuǎn)發(fā)表的記錄也會越來越多,檢索時間會逐漸增加。所以如果需要連接多個終端時,需要將網(wǎng)絡(luò)分成多個數(shù)據(jù)鏈路,采用類似 IP 地址一樣對地址進行分層管理。
在網(wǎng)絡(luò)通信的過程中,由于網(wǎng)絡(luò)鏈路的冗余或者路由線路冗余可能會造成閉環(huán),也就是我們所稱的環(huán)路。環(huán)路會導(dǎo)致數(shù)據(jù)報文在網(wǎng)絡(luò)中不斷重復(fù)復(fù)制,最終導(dǎo)致網(wǎng)絡(luò)設(shè)備負載過重,無法正常運行。影響的范圍可能會擴散至整個局域網(wǎng),導(dǎo)致整個局域網(wǎng)里的計算機無法正常使用網(wǎng)絡(luò)。

那么如何檢測網(wǎng)絡(luò)中出現(xiàn)的環(huán)路呢?
環(huán)路檢測方法
目前有兩種檢測環(huán)路的方式,一種是生成樹,一種是源路由法。
生成樹:生成樹指的是每個網(wǎng)橋必須在 1 - 10 秒內(nèi)相互交換生成樹協(xié)議單元包,以此來判斷哪些接口使用,從而消除環(huán)路,一旦發(fā)生故障后就會立刻切換線路,利用沒有被使用的端口進行傳輸。
源路由法:源路由法通常是用來解決令牌環(huán)路。這種方式可以判斷發(fā)送數(shù)據(jù)的源地址是通過哪個網(wǎng)橋?qū)崿F(xiàn)傳輸?shù)?,并將幀寫?RIF,網(wǎng)橋會根據(jù)這個 RIF 信息發(fā)送給目標地址,即使網(wǎng)橋中出現(xiàn)了環(huán)路,數(shù)據(jù)幀也不存在被反復(fù)轉(zhuǎn)發(fā)的可能。
虛擬局域網(wǎng) VLAN
網(wǎng)絡(luò)通信過程中經(jīng)常會遇到網(wǎng)絡(luò)負載過高,通信性能下降的情況,往往遇到這種情況,就需要分散網(wǎng)絡(luò)負載,變換部署網(wǎng)絡(luò)設(shè)備的位置等。在虛擬局域網(wǎng)出現(xiàn)之前,往往需要管理員手動變更網(wǎng)絡(luò)的拓撲結(jié)構(gòu),比如變更主機網(wǎng)段,進行硬件線路改造等,但是使用了虛擬局域網(wǎng),就可以不用再做如此復(fù)雜的操作了,只需要修改網(wǎng)絡(luò)結(jié)構(gòu)即可。
那么虛擬局域網(wǎng)究竟是什么呢?

如上圖所示,交換機按照端口區(qū)分了多個網(wǎng)段,從而區(qū)分了廣播數(shù)據(jù)的傳播范圍,提高網(wǎng)絡(luò)安全性。然而異構(gòu)的兩個網(wǎng)段之間,需要利用具有路由功能的交換機才能實現(xiàn)通信。
由于交換機端口有兩種 VLAN 屬性,一個是 VLANID,一個是 VLANTAG,分別對應(yīng) VLAN 對數(shù)據(jù)包設(shè)置 VLAN 標簽和允許通過的 VLANTAG(標簽)數(shù)據(jù)包,不同 VLANID 端口,可以通過相互允許 VLANTAG,構(gòu)建 VLAN。
以太網(wǎng)
以太網(wǎng)提了這么多次,那么以太網(wǎng)到底是什么?
數(shù)據(jù)鏈路層有很多分類,包括以太網(wǎng)、無線通信、PPP、ATM、POS、FDDI、Token Ring、HDMI 等,其中最著名的通信鏈路就是以太網(wǎng)了。
以太網(wǎng)最開始的時候,一般使用的是以同軸電纜為傳輸介質(zhì)的共享介質(zhì)型連接方式,這也是以太網(wǎng)的第一種方式,叫做經(jīng)典以太網(wǎng)。而現(xiàn)在,隨著互聯(lián)設(shè)備的處理能力和傳輸速度的提高,現(xiàn)在都采用終端和交換機之間連接方式,這也是第二種方式,叫做交換式以太網(wǎng)。以太網(wǎng)使用的是 CSMA/CD 的總線技術(shù),我們前面也介紹過了。
以太幀格式
在以太網(wǎng)鏈路上的數(shù)據(jù)包被稱為以太幀,以太幀開頭有一個叫做前導(dǎo)碼(Preamble) 的部分,它是由 0、1 數(shù)字交替組合而成。前導(dǎo)碼的末尾最后是一個叫做 SFD(Start Frame Delimiter) 的域,值為 11。前導(dǎo)碼與 SFD 共同占用 8 個字節(jié)。

以太網(wǎng)最后 2 bit 稱為 SDF,而 IEEE802.3 中將最后 8 bit 稱為 SDF。
IEEE802.3 是電氣和電子工程師協(xié)會 (IEEE)標準的集合制定的標準。
這是以太幀的前導(dǎo)碼部分,下面是以太幀的本體部分

以太幀體格式也有兩種,一種是以太幀格式,一種是 IEEE802.3 標準以太幀格式。
在以太幀格式中,以太幀的本體的前端是以太網(wǎng)的首部,總共占用 14 字節(jié),分別是 6 字節(jié)的目標 MAC 地址、6 字節(jié)的源 MAC 地址和 2 字節(jié)的上層協(xié)議類型,后面是數(shù)據(jù)部分,占用 46 - 1500 字節(jié),最后是 FCS(Frame Check Sequence,幀檢驗序列) 4 個字節(jié)。FCS 用于檢查幀是否有所損壞,因為在通信過程中由于噪聲干擾,可能會導(dǎo)致數(shù)據(jù)出現(xiàn)亂碼位。
IEEE802.3 以太幀的格式有區(qū)別,一般以太幀中的類型字段卻在 IEEE802.3 表示幀長度,此外新增加了 LLC 和 SNAP 字段。
數(shù)據(jù)鏈路層在細化的話可以分為兩層,介質(zhì)訪問控制層和邏輯鏈路控制層
介質(zhì)訪問會根據(jù)以太網(wǎng)等不同鏈路特有的首部信息進行控制,邏輯鏈路層則根據(jù)以太網(wǎng)等不同鏈路共有的幀頭信息進行控制。
LLC 和 SNAP 就是邏輯鏈路控制的首部信息,那么現(xiàn)在你應(yīng)該明白怎么回事兒了吧。
完
往期推薦
??
如何系統(tǒng)學(xué)習計算機網(wǎng)絡(luò)?
我畫了 40 張圖就是為了讓你搞懂計算機網(wǎng)絡(luò)層
另外,cxuan 肝了六本 PDF,公號回復(fù) cxuan ,領(lǐng)取作者全部 PDF 。

