計算機網絡基礎之數據鏈路層

目錄

數據鏈路層的作用

以太網

以太網幀格式

理解MAC地址

理解ARP協議

理解MTU


        數據鏈路層介於物理層和網絡層之間,在物理層提供的服務的基礎上向網絡層提供服務。數據鏈路層解決的是在局域網內點到點的問題。

 

數據鏈路層的作用

        兩個設備(同⼀種數據鏈路節點)之間進行數據傳遞。


以太網

        以太網是⼀種技術標準,既包含了數據鏈路層的內容, 也包含了⼀些物理層的內容。例如:規定了網絡拓撲結構訪問控制方式傳輸速率等。


以太網幀格式

     


理解MAC地址

  MAC地址:

  • 用於識別同一數據鏈路中互聯的節點(識別連接到同一傳輸介質上的設備 / 標識同一鏈路中不同計算機的一種識別碼)        
  • 長度爲48位,即6字節。一般用16進制數字加上冒號的形式來表示,例如08:00:27:03:fb:19.                                                        
  •  Mac地址在網卡出廠時就確定了,不能修改。MAC地址通常是唯一的

理解ARP協議

 ARP協議:從分組數據包的IP地址中解析出物理地址(MAC地址)的協議。(建立了主機IP地址和MAC地址的映射關係

                     它不是⼀個單純的數據鏈路層的協議,是介於數據鏈路層和網絡層之間的一個協議。

 

原理:以目標IP地址爲線索,用來定位下一個應該接收數據分包的網絡設備對應的MAC地址。如果目標主機不在同一個鏈路上,             可以通過ARP查找下一跳路由器的MAC地址。(ARP只適用於IPv4)

工作機制:ARP是藉助ARP請求與ARP響應兩種類型的包確定MAC地址的。           

                    

                    

總結:從一個IP地址發送ARP請求包以瞭解其MAC地址,目標地址將自己的MAC地址填入其中的ARP響應包返回到IP地址,由               此可以通過ARP從IP地址獲得MAC地址,實現鏈路內的IP通信。


理解MTU

        MTU意爲最大傳輸單元 (相當於發快遞時對包裹尺寸的限制),是指一種通信協議的某一層上所能通過的最大數據報大小,以字節爲單位。大部分網絡設備的MTU都是1500。

  • 以太網幀中的數據長度規定最小46字節,最大1500字節。ARP數據包的長度不夠46字節,就要在後面補填充位。
  • 如果一個數據包從以太網路由到撥號鏈路上,數據包長度大於撥號鏈路的MTU了,就需要對數據包進行分片。分片是在網絡層進行的。
  • 不同的數據鏈路層標準的MTU是不同的。在Linux下,MTU的值爲1500。  

 

一、MTU對IP協議的影響
       由於數據鏈路層MTU的限制,對於較大的IP數據包要進行分片。將較大的IP包分成多個小包,並給每個小包打上標籤。每個小包IP協議頭的16位標識(id)都是相同的。每個小包的IP協議頭的3位標誌字段中,第2位置爲0,表示允許分片,第3位來表示結束標記(當前是否是最後一個小包,是的話置爲1,否則置爲0)。到達對端時再將這些小包按序重組,拼裝到一起返回給傳輸層。一旦這些小包中任意一個小包丟失,接收端的重組就會失敗,但IP層不會負責重新傳輸數據分片和組裝都是在網絡層進行

 

二、MTU對UDP協議的影響
        UDP攜帶的數據一旦超過1472(1500-20(IP首部)-8(UDP首部)),那麼就會在網絡層分成多個IP數據報。這多個IP數據報有任意一個丟失,都會引起接收端網絡層重組失敗,這就意味着,如果UDP數據報在網絡層被分片,整個數據被丟失的概率就會大大增加。

 

三、MTU對TCP協議的影響
        和UDP一樣,TCP的一個數據報也不能無限大,還是要受制於MTU。TCP的單個數據報的最大消息長度,稱爲MSS。

        TCP在建立連接過程中,通信雙方會進行MSS協商。最理想的情況,就是MSS的值正好是在IP不會被分片處理的最大長度,即1460(1500-20(IP首部)-20(TCP首部))。雙方在發送SYN的時候,會在TCP頭部寫入自己能支持的MSS值,然後雙方得知對方的MSS值之後,選擇較小的作爲最終的MSS。MSS的值在TCP首部的40字節變長選項中。

 

注:Linux下,使用ifconfig命令,即可查看IP地址、MAC地址和MTU等。
 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章