網路七層-物理層、資料鏈路層、網路層
阿新 • • 發佈:2021-09-01
第一層、物理層
MAC地址:一個網絡卡的全球唯一標識,實體地址、硬體地址,長度為 48 位,前 24 位(00-16-EA)代表網路硬體製造商的編號,後 24 位(AE-3C-40)是該廠家自己分配的,一般表示系列號。
對於接收到訊息的裝置進行判斷:
- 根據頭部的目標 MAC 地址資訊,判斷這個資料包的確是發給自己的,於是便收下。
- 根據頭部的目標 MAC 地址資訊,判斷這個資料包並不是發給自己的,於是便丟棄。
第二層、資料鏈路層
組成了乙太網,多了交換機裝置。可以通過交換機中儲存的MAC地址表明確找到目標地址。
資料包增加了資料鏈路層頭部。
第三層、網路層
新增了路由器,它的功能就是,作為一臺獨立的擁有 MAC 地址的裝置,並且可以幫我把資料包做一次轉發,
資料包增加了網路層頭部。
新增了一些列概念:
- IP(IPV4)
- 子網掩碼
- 閘道器
其他關鍵概念
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 協議的請求逐步完善起來的。