1. 程式人生 > 其它 >網路七層-物理層、資料鏈路層、網路層

網路七層-物理層、資料鏈路層、網路層

第一層、物理層

MAC地址:一個網絡卡的全球唯一標識,實體地址、硬體地址,長度為 48 位,前 24 位(00-16-EA)代表網路硬體製造商的編號,後 24 位(AE-3C-40)是該廠家自己分配的,一般表示系列號

對於接收到訊息的裝置進行判斷:

  1. 根據頭部的目標 MAC 地址資訊,判斷這個資料包的確是發給自己的,於是便收下
  2. 根據頭部的目標 MAC 地址資訊,判斷這個資料包並不是發給自己的,於是便丟棄

第二層、資料鏈路層

組成了乙太網,多了交換機裝置。可以通過交換機中儲存的MAC地址表明確找到目標地址。

資料包增加了資料鏈路層頭部

第三層、網路層

新增了路由器,它的功能就是,作為一臺獨立的擁有 MAC 地址的裝置,並且可以幫我把資料包做一次轉發

你把它定在了網路層

資料包增加了網路層頭部

新增了一些列概念:

  1. IP(IPV4)
  2. 子網掩碼
  3. 閘道器

其他關鍵概念

arp

假如你(A)此時不知道你同伴 B 的 MAC 地址(現實中就是不知道的,剛剛我們只是假設已知),你只知道它的 IP 地址,你該怎麼把資料包準確傳給 B 呢?

答案很簡單,在網路層,我需要把 IP 地址對應的 MAC 地址找到,也就是通過某種方式,找到 192.168.0.2 對應的 MAC 地址 BBBB

這種方式就是 arp 協議,同時電腦 A 和 B 裡面也會有一張 arp 快取表,表中記錄著 IP 與 MAC 地址的對應關係。

IP 地址 MAC 地址
192.168.0.2 BBBB

一開始的時候這個表是空的,電腦 A 為了知道電腦 B(192.168.0.2)的 MAC 地址,將會廣播一條 arp 請求,B 收到請求後,帶上自己的 MAC 地址給 A 一個響應。此時 A 便更新了自己的 arp 表。

這樣通過大家不斷廣播 arp 請求,最終所有電腦裡面都將 arp 快取表更新完整。

總結

從各個節點的視角來看

電腦視角:

  • 首先我要知道我的 IP 以及對方的 IP
  • 通過子網掩碼判斷我們是否在同一個子網
  • 在同一個子網就通過 arp 獲取對方 mac 地址直接扔出去
  • 不在同一個子網就通過 arp 獲取預設閘道器的 mac 地址直接扔出去

交換機視角:

  • 我收到的資料包必須有目標 MAC 地址
  • 通過 MAC 地址表查對映關係
  • 查到了就按照對映關係從我的指定埠發出去
  • 查不到就所有埠都發出去

路由器視角:

  • 我收到的資料包必須有目標 IP 地址
  • 通過路由表查對映關係
  • 查到了就按照對映關係從我的指定埠發出去(不在任何一個子網範圍,走其路由器的預設閘道器也是查到了)
  • 查不到則返回一個路由不可達的資料包

如果你嗅覺足夠敏銳,你應該可以感受到下面這句話:

網路層(IP協議)本身沒有傳輸包的功能,包的實際傳輸是委託給資料鏈路層(乙太網中的交換機)來實現的。

涉及到的三張表分別是

  • 交換機中有 MAC 地址表用於對映 MAC 地址和它的埠
  • 路由器中有路由表用於對映 IP 地址(段)和它的埠
  • 電腦和路由器中都有 arp 快取表用於快取 IP 和 MAC 地址的對映關係

這三張表是怎麼來的

  • MAC 地址表是通過乙太網內各節點之間不斷通過交換機通訊,不斷完善起來的。
  • 路由表是各種路由演算法 + 人工配置逐步完善起來的。
  • arp 快取表是不斷通過 arp 協議的請求逐步完善起來的。

參考

圖解 | 原來這就是網路