[英]Why my routing tables stores a mac address?
我是一名學習計算機網絡的學生。
這是我的網絡的樣子:
Router(NAT)
/ \
My PC My iPad
我查看了我的計算機的路由表,它顯示以下內容:
$ netstat -r
Routing tables
Internet:
Destination Gateway Flags Netif Expire
default 172.22.128.1 UGScg en0
127.0.0.1 127.0.0.1 UH lo0
172.22.128.1 0:74:9c:96:72:55 UHLWIir en0 1200
172.22.161.13 ba:2e:b1:6f:69:39 UHLWI en0 740
我確認 ip 172.22.161.13
的網關ba:2e:b1:6f:69:39
是我的 iPad 的 MAC 地址。
我有幾個疑問:
netstat -r
也查找 arp 表,它應該如何在不通過路由器的情況下向我的 iPad 發送數據包?這里的問題是理解網絡中第 2 層和第 3 層的功能。
將數據包轉發到位於同一子網的設備和位於不同子網的設備之間是有區別的。
我認為沒有比可以通過第 2 層協議相互通信的設備更好的子網定義了。 路由器用於在不同子網的設備之間轉發數據包,也就是說,同一子網中的兩個設備不通過路由器進行通信,至少不通過路由器的“路由器”部分。
位於同一子網中的設備應分配相同的 IP 前綴(即網絡掩碼覆蓋的位相同)。 “應該”表示如果不是這樣,那么你的網絡配置錯誤,可能無法正常工作。 這樣,您的 PC 和 IPad 可以確定它們在同一子網中,並且不需要通過默認網關進行 go。
由於您的 PC 和您的 IPad 位於同一子網中,因此它們將使用第 2 層相互通信。從您的配置中,我不確定實際上有多少接口是無線的。 如果兩個接口都是無線的,它們實際上可能能夠直接通話(我不確定 AP 模式下的 wifi 協議是否允許,我認為可以)。 如果您的 PC 通過以太網連接,那么您的路由器還充當交換機/網橋(這是第 2 層設備)並根據以太網規范轉發數據包。 您可以通過谷歌搜索 MAC 學習來了解它。
這應該回答第二個問題,現在回答第一個問題。
實際上,我想知道為什么該表存儲 IP 地址。 IP 下一跳地址不用於轉發。 首先,請注意,從第 3 層(即路由器)的角度來看,距離為兩跳的設備之間的通信使用第 2 層進行。當設備做出路由決策時,in 從 IP header 獲取目標地址並查找下一跳,其中設備需要的是 a) 出接口 b) 如何使用接口的第 2 層協議到達下一跳。 然后設備構造一個適當的第 2 層 header 並將數據包發送到下一跳設備,這或多或少是相同的。 因此,實際上您的 PC 需要路由器接口的 MAC 地址,以便將數據包發送到子網之外的某個位置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.