天天看點

CV工程師用不到的鍊路層知識點

前言

上一篇記錄了一下當主機配置了動态擷取IP之後,連入網絡之後究竟是如何擷取IP得,以及如何根據CIDR(無類型域間選路)資訊擷取子網号、網絡中第一個位址和子網路遮罩。

今天來記錄一下鍊路層相關的理論知識(八股文)

鍊路層

「鍊路層的主要功能」

(1)為IP子產品發送和接收IP資料報

(2)為ARP子產品發送ARP請求和接收ARP應答

(3)為RARP發送RARP請求和接收RARP應答

為IP子產品發送和接收資料報

  • 資料包是發給誰的?誰應該接收?
  • 多個程序一起發,會不會産生混亂?有沒有先發後發的規則
  • 發送過程出現了錯誤,怎麼處理?

「MAC位址」

CV工程師用不到的鍊路層知識點

上圖中标記的就是eno16777736網卡的實體位址,也就是MAC位址,用十六進制辨別。

一個網絡包要從一個地方傳到另一個地方,除了要有确定的位址,還需要又定位功能,而有門牌号碼屬性的IP位址,才有遠端定位功能。

MAC位址更像是一個身份證,而IP位址就是門牌号。

比如可以根據IP查找到主機在哪一棟樓,用MAC可以在用IP找到的樓中查找到對應的主機。

MAC位址有一定的定位功能,不過範圍非常有限,隻能局限在一個子網裡面。

「資料報是發給誰,誰接收?」

此時在資料報中就需要存放源MAC位址以及目标MAC位址。

CV工程師用不到的鍊路層知識點

「多個程序一起發,會不會産生混亂?有沒有先發後發的規則」

MAC的全程是Medium Access Control,即媒體通路控制。控制在往媒體上發資料的時候,誰先發,誰後發的問題。防止發生混亂。此問題中的規則,叫多路通路。

有三種方式解決此問題:

(1)分多車道,每輛車一車道,各走各的,這在計算機網絡裡叫做信道劃分。

(2)限号出行協定,在計網中叫做輪流協定。

(3)先出門,發現很堵,傳回,錯峰出行,叫随機接入協定。以太網用的就是這種方式。

「發送過程出現了錯誤,怎麼處理?」

在上一張圖檔中,最後面有個CRC,也就是循環備援檢測,通過XOR異或的算法,來計算整個包是否在發送的過程中出現了錯誤。

什麼是ARP?

當一台主機把以太網資料幀發送到位于同一區域網路上的另一台主機時,是根據48bit的以太網位址(也就是MAC位址)來确定目的接口的。

位址解析為這兩種不同的位址形式提供映射:32bit的IP位址和資料鍊路層使用的任何類型的位址。

CV工程師用不到的鍊路層知識點

ARP為IP位址到對應的硬體位址之間提供動态映射。從邏輯Internet位址到對應的實體硬體位址,在32 bit的IP位址和采用不同網絡技術的硬體位址之間提供動态映射

「也就是說,通過ARP可以根據IP位址找到對應的MAC位址」

在需要發送一個資料報的時候,通常是有IP位址,但是不知道對方的MAC位址是什麼,這個時候就需要通過ARP請求去擷取IP位址對應主機的MAC位址。

「通過區域網路的交換機進行尋找。」

「ARP高速緩存」

ARP高速運作的關鍵是由于在每個主機上都有一個ARP高速緩存,這個高速緩存存放了最近Internet位址到硬體位址之間的映射記錄,每個元素生存時間是20分鐘。

比如,發送資料報的時候隻知道IP不知道MAC,此時就是發送ARP請求

CV工程師用不到的鍊路層知識點
❝「步驟:」
  • 先檢視本地ARP緩存,沒查到轉下一步
  • 通過交換機廣播ARP請求
  • 對應的機器進行ARP應答
  • 擷取到MAC位址,存入緩存

CV工程師用不到的鍊路層知識點

「ARP代理」

如果ARP請求是從一個網絡的主機發送到另一個網絡的主機,那麼連接配接這兩個網絡的路由器就可以回應該請求。

ARP代理也稱為混合ARP或ARP出租,是由于通過兩個實體網絡之間的路由器可以互相隐藏實體網絡。

「arp指令」

arp -a:顯示ARP高速緩存中的所有内容

CV工程師用不到的鍊路層知識點

可以使用-d删除某項内容

使用-s儲存某項内容

什麼是RARP?

RARP稱為「逆位址解析協定」

就是通過MAC位址擷取對應主機的IP位址。

具有本地磁盤的系統從磁盤檔案中擷取IP位址,但是無盤機需要采用其他方法擷取IP位址。

無盤系統的RARP實作過程是從接口卡上讀取唯一的硬體位址,然後發送一份RARP請求,請求某個主機響應該無盤系統的IP位址。

封包結構如下:

CV工程師用不到的鍊路層知識點

跟ARP封包結構主要差別就是操作代碼:3是RARP的請求,4是RARP的應答

環回接口

大多數的産品都支援環回接口(Loopback Interface),以允許運作在同一台主機上的客戶程式和伺服器程式通過TCP/IP進行通信。A 類網絡号127就是為環回接口預留的。根據慣例,大多數系統把 IP位址127.0.0.1 配置設定給這個接口,并命名為localhost。一個傳給環回接口的IP資料報不能在任何網絡上出現。

一旦傳輸層檢測到目的端位址是環回位址時,應該可以省略部分傳輸層和所有網絡層的邏輯操作。但是大多數的産品還是照樣完成傳輸層和網絡層的所有過程,隻是當IP資料報離開網絡層時把它傳回給自己。

需要指出的關鍵點:

  1. 傳給127.0.0.1的任何資料均作為IP輸入。
  2. 傳給廣播位址或多點傳播位址的資料報複制一份傳給127.0.0.1,然後送到以太網上。
  3. 任何傳給該主機IP位址的資料均送到127.0.0.1。

最大傳輸單元 MTU

以太網和802.3對資料幀的長度都有一個限制,其最大值分别是1500和1492位元組。鍊路層的這個特性稱作MTU,最大傳輸單元。

CV工程師用不到的鍊路層知識點

通過ifconfig指令可檢視每個網卡的MTU

路徑 MTU

兩台通信主機路徑中的最小 MTU,路徑MTU 在兩個方向上不一定是一緻的。