一個完整的網絡數據包轉發過程


這篇文章講述了上網時數據包轉發的全過程,下面是電腦和網絡設備連接簡略圖:

以PC1 ping PC3為例講述數據包轉發過程:

1、當PC1 ping PC3時,發現它們的IP不在同一網段,PC1就將數據包發送至網關(1.1.1.1/24),這時需要知道網關的MAC地址,

PC1於是查找自身ARP緩存表,如果沒有則會發出ARP廣播包,包中的地址分別為:

源 IP : 1.1.1.2/24 源 MAC : a.a.a(PC1)

目的 IP : 1.1.1.1/24 目的 MAC : f.f.f

2、交換機SW1從e0/1接口收到數據包,解封后讀取數據包的MAC地址,將其寫入SW1的MAC地址表,發現該數據包是廣播包,加

上幀頭后向來源接口外的所有接口發送數據包,PC2接口收到該數據包發現其目的IP地址(1.1.1.1/24)與自身不符,丟棄該數據

包並不做回應。經過交換機后的源IP、源MAC、目的IP、目的MAC都不改變。

3、路由器R1接收到數據包,發現其MAC地址為廣播地址,接收該包,再解封,發現請求的目的IP地址為自己的IP(1.1.1.1/24),

需要向源地址進行ARP回復。讀取的數據包來源於1.1.1.1/24,源MAC地址為a.a.a。於是向PC1發送數據包,該包中地址為:

源 IP : 1.1.1.1/24 源 MAC : b.b.b(R1、e0/0)

目的 IP : 1.1.1.2/24 目的 MAC : a.a.a(PC1)

4、交換機SW1收到來自R1的數據包,查看源MAC地址為b.b.b,將改地址連同來源的接口號保存到MAC地址表。查看目的MAC地址

a.a.a,查看MAC地址表,找到與a.a.a的匹配項,向指定接口轉發該包,經該接口封裝后向PC1進行單播。PC1收到數據包,解

封后讀到源IP為1.1.1.1/24,源MAC地址為b.b.b,PC1得到網關的MAC地址,並保存到ARP緩存表。

5、PC1向PC3發出數據包,包中地址為:

源 IP : 1.1.1.2/24 源 MAC : a.a.a(PC1)

目的 IP : 2.2.2.2/24 目的 MAC : b.b.b(R1、e0/0)

​ 該包進入SW1,根據目的MAC地址查詢MAC地址表后由上接口轉出向R1發送,到達接口s0/1,查到數據包MAC地址為自己MAC

地址,將包解封到IP層,查詢路由表:在路由表中查到最優匹配項,查找到下一跳接口IP地址,並發送出去;如果沒有最優匹配

項,則按照默認路由發送,沒有默認路由則丟棄數據包,並發送回應包,目的地址不可達。

​ 查詢路由表后得到轉發接口為R1s0/1口,下一跳接口的IP地址為3.3.3.2/24,查詢ARP表中IP地址為3.3.3.2的接口的MAC地址,

得到其MAC地址d.d.d;如果表中無匹配項,則通過s0/1口發送ARP廣播,請求3.3.3.2的MAC地址。封裝好包后,從接口s0/1轉發

數據包,發出去的包MAC地址改變為:

源 IP : 1.1.1.2/24 源 MAC : c.c.c(R1、s0/1)

目的 IP : 2.2.2.2/24 目的 MAC : d.d.d(R2、s0/0)

6、路由器R2接口s0/0接收到數據包,檢驗MAC地址后接收並解封至IP層,查詢路由表,發現轉發接口為E0/0,且目的IP地址與接口

E0/0在同一網段內,查找ARP表中目的IP(2.2.2.2)的MAC地址,得到PC3的MAC地址e.e.e;如果沒有查到,則通過E0/0接口

發送ARP廣播包查詢IP地址為2.2.2.2的MAC地址。

7、E0/0接口將封裝好的數據包發送出去,報地址為:

源 IP : 1.1.1.2/24 源 MAC : g.g.g(R2、E0/0)

目的 IP : 2.2.2.2/24 目的 MAC : e.e.e(PC3)

​ 經過SW2的上接口進入,根據其目的MAC地址查詢MAC地址表,如果找到匹配表項,則根據指定接口轉發出去;如果沒有找

到,則向除進接口外的所有接口轉發出去。

8、PC3接收到SW2發來的數據包,解封檢驗MAC地址為自己MAC地址e.e.e,接收數據包,包地址表為:

源 IP : 1.1.1.2/24 源 MAC : g.g.g(R2、E0/0)

目的 IP : 2.2.2.2/24 目的 MAC : e.e.e(PC3)

然后向源地址發送ICMP應答數據包,過程相似。


參考:https://blog.csdn.net/qq_38668258/article/details/84987881


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM