- ABCD四臺主機屬於
10.0.0.0
子網,網關指向路由器1的10.0.0.1
- EFGH四臺主機屬於
10.0.1.0
子網,網關指向路由器2的10.0.1.1
子網內通信
- A向C發送數據
- A知道C的ip地址,發現它倆在同一網段
- 物理子網內尋址是通過MAC地址的,A並不知道C的MAC地址,於是A發送了一個ARP廣播包
- ARP廣播用的地址是
ff:ff:ff:ff:ff:ff
- ARP廣播用的地址是
- 交換機收到ARP廣播後,首先會學習到主機A是連接到1端口的,然後緩存起來,同時在緩存中查找C的MAC地址,沒找到便將這個廣播包從所有端口發出去(1端口除外)
- C收到廣播後便會進行迴應,來告知自己的身份
- 之後交換機便記憶了主機A和主機C的ip地址和mac地址,AC找到彼此後,便可以在同一子網內依靠mac地址進行相互通信
跨子網通信
- A向E發送數據
- A知道E的ip地址,發現它倆在同一網段,於是A同樣發送ARP廣播包
- BCD沒有響應,但是路由器1收到廣播後,爲了避免廣播風暴,會把自己的mac地址告訴A
- A等待超時後,會知道E不在當前物理子網內,於是會向路由器1發送數據包
- 二層(指向路由1)與三層(指向E)指示的目的地址並不一致
- 路由1沒有緩存E的ip地址,於是通過路徑尋址計算協議找到路由器2
- 路由器2便開始在自己的物理子網內尋找E,進過一次廣播後,發現E在自己子網內,於是向前一跳,找到離自己最近的路由器1,反饋自己離E主機最近
- 數據包在路由1和2中的1,4端口中進行轉發時,因爲是在設備內部,因此可以直接轉發,不用變換幀頭,從而提高效率