1. 程式人生 > >資料鏈路層-1 什麼是資料鏈路層和工作原理

資料鏈路層-1 什麼是資料鏈路層和工作原理

目的:

物理層負責將位元流轉換成訊號,並傳遞給線纜。既不知道訊號會發往何處,也不在意某一位是否會在某處丟失。

資料鏈路層提供了一種能夠正確且穩定地傳輸位元流的結構,把資料傳輸到目的地。

資料鏈路層在意的是,資料是從哪個埠來的,應該送到哪個埠。

(這個埠是指物理交換機上的物理埠,也就是介面)

傳輸資料格式:

在資料鏈路層會把資料進行封閉,封裝後的資料叫作幀。幀的組成如下:

    前導碼(8位元組)+目的MAC地址(6位元組)+源MAC地址(6位元組)+型別(2位元組)+資料包(46~1500位元組)+FCS(位元組)

MAC地址是由48位組成的唯一資訊,其中前24位是運營商地址,由IEEE管理分配。後24位是運營商管理的唯一資訊。

傳播方式:

乙太網中的通訊分3種:單播,廣播,多播。

單播:一對一通訊。

廣播:一對所有通訊。例如:ARP(地址解析協議)

多播:對特定的小組通訊。

L2交換機原理(資料鏈路層工作原理):

在資料鏈路層的裝置種類很多,但我們只要掌握了L2(資料鏈路層)交換機,基本上能應對所有網路環境了。

轉發地址的切換叫作“交換”,L2交換機根據資料鏈路層的資訊(也就是MAC地址的資訊)對幀進行L2交換。

L2交換機是根據記憶體中的MAC地址表對幀進行交換的。MAC地址表由埠(這個埠是指物理交換機上的物理埠,也就是介面)和源MAC地址的資訊構成,

看地址表,就知道哪個節點連線哪個埠。L2交換機主要有3項職責:

  1,登記收到幀的埠和源MAC地址

  2,將不知道對應哪個埠的MAC地址進行泛洪(後面介紹泛洪和廣播的區別)

  3,刪除不再需要的資訊(過期的MAC地址表)

L2交換機是如何利用地址表進行交換的呢?

  1,MAC-A的節點(或電腦)準備傳送幀到MAC-B的節點,幀的源MAC地址是:MAC-A的MAC地址,目的MAC地址是:MAC-B的MAC地址。

     這時,我們假設MAC地址表中是空的:

    (注意,這時候MAC-A節點是已經知道MAC-B節點的MAC地址的。在實際情況中一般並不知道MAC-B節點的MAC地址,

      所以節點MAC-A要先通過ARP廣播確定節點MAC-B的MAC地址後,才能開始通訊。什麼ARP廣播,在後面介紹)

   

2,MAC-A節點發送資料到交換機,交換機收到幀後,將節點A的埠號和源MAC地址作為新的條目,新增到MAC地址表中。這時MAC地址表內容如下:

      這裡的埠號為1號,意思是這個節點連線到了交換機的1號物理埠上了。

   
   

3,由於交換機不知道節點MAC-B的MAC地址連線的是哪個埠,所以會將幀複製併發給其它所有埠,節點B接收到幀後,發現幀上的目的MAC地址和自己的相同,

      則生成一個幀給交換機一個迴應,幀的源MAC地址是:MAC-B的MAC地址,目的MAC地址是:MAC-A的MAC地址。這的MAC地址表還是和上面一樣。

   

4,交換機收到MAC-B節點發過來的幀後,把MAC-B節點的MAC地址也登入到MAC地址表中。

     

5,上面的MAC表建立完成後,MAC-A節點就可以和MAC-B節點直接通訊了。

      但裡面的條目並不是一直儲存下去。有兩種情況下會被刪除掉:

      (1)線纜被拔掉時

      (2)超過一定時間未收到幀。(也就是過期了)

其實MAC地址表裡還有一列“型別”,這個列有兩個值,一個是“Static”,另一個是“Dynamic”。

Static表示是本機靜態設定的或是系統上已經佔用的MAC地址,不會被自動刪除;

Dynamic是指通過幀動態學到的內容(就像上面一樣),過了老化時間就會被刪除。

關於VLAN:

VLAN是在物理網路上劃分出來的邏輯網路。VLAN有3個特點:

(1):不受網路埠的實際物理位置的限制。

(2):有著和物理網路同樣的屬性。

(3):L2層的單播,多播和廣播只會在同一VLAN中起作用,不會進入其它VLAN中。

             有時候,想把所有的節點都納入到廣播域中,不是一件好事,會影響廣播的效率。

例子:

    在企業中,經常有這樣一種情況:同一個公司的同一個部門有多個不同的辦公地點(比如在不同的樓層),

    但是這兩個地點的同事的電腦又要求能夠相互訪問。如果將這兩個地點的主機接在同一個交換機下,佈線將是一個麻煩的事情。

VLAN本質上就是代表VLAN ID的一些數字。其原理只是將VLAN ID的資料分配給各個埠,由此去識別埠而已。

如何設定VLAN:

VLAN有兩種設定方法,一種是埠VLAN,另一種是打標VLAN。

埠VLAN:就是將VLAN分配給埠。例如:把埠1和2分配給VLAN1,把埠3,4,5分配給VLAN2。

打標VLAN:就是給VLAN打上標籤。如何打標籤?就是給幀上加上一個段包含VLAN的資訊而已。實現方式就是在幀上,加上4個位元組的VLAN標籤。

分配完VLAN後,VLAN1內的廣播,VLAN2就不會收到。如果要讓VLAN1和VLAN2之間產生通訊,必須通過L3交換機或路由器等L3層裝置進行中轉才行。

(為什麼不能跨網段(物理或邏輯)通訊,必須通過路由裝置中轉,後面講解)

埠VLAN有一個不好的地方,就是如果跨交換機設定VLAN的話,有多少個VLAN,就要準備多少個埠和線纜。

例如:交換機1上有3個VLAN(VLAN1,VLAN2,VLAN3),交換機2上也有3個VLAN(VLAN1,VLAN2,VLAN3),要讓這3個VLAN連通的話,

就要在交換機1上準備3個埠,和交換機2準備的3個埠相連線,並且還要準備3根線。

打標VLAN就不需要這麼多埠和線纜,兩臺交換機上,只需要1個埠和根線纜就可以了。

打標VLAN還有一個特點,就是存在一個VLAN叫作:本徵VLAN(Native VLAN)。這個VLAN上的資料不會被打標(可能是為了設定一個預設VLAN,傳輸資料快)

為什麼不能跨網段(物理或邏輯)通訊,必須通過路由裝置中轉?

因為資料鏈路層的核心是“MAC地址表”,MAC地址表記錄的只有“埠“和”MAC地址“還有一些其它設定,沒有記錄”IP地址“。

也就是說,他不是針對IP地址進行轉發的,而是針對MAC地址進行轉發的。而在轉發時,交換機只能把資料轉發到和交換機埠繫結的MAC地址,

也就是MAC地址表中的地址。或者是不在同一交換機上,在其它交換機上,但這兩臺交換機必須相連線,而且源節點和目的節點的VLAN ID必須一致。

這樣就限定了能夠直接通訊的節點在物理上,必須是同一個網段裡(雖然有可能在同一個物理網路裡,因為VLAN ID不同也不能通訊,但如果不在同一個物理網路裡,

就算VLAN ID一致,也是不能通訊的)。

兩個物理網段如何通訊呢,這就需要路由器了。為什麼路由器能夠跨網段,等講網路層的時候再講。

(用網橋也可以實現兩個網段連線,具體請參考網橋的資料)


補充:

泛洪和廣播的區別:

泛洪是指交換機在轉發資料時,在MAC表中無法找到與資料包目標地址一致的條目,就將資料包從所有埠傳送出去(除了接收該資料包的埠),以期找到目標主機來接收資料包,可以瞭解為2層的行為。範圍是VLAN或交換機上的所有節點。

廣播是指向所有節點發資訊。分為第2層廣播和第3層廣播。 第2層廣播也稱硬體廣播,用於在區域網內向所有的結點發送資料,通常不會穿過區域網的邊界(路由器),除非它變成一個單播。廣播將是一個二進位制的全1或者十六進位制全F的地址。 廣播(第3層)用於在這個網路內向所有的結點發送資料。第3層廣播也支援平面的老式廣播。廣播資訊是指以某個廣播域所有主機為目的的資訊。這些被稱為網路廣播。常用的ARP就是用廣播的方式進行的。