計算機網絡關於IP協議的思考

首先我們知道目前的互聯網在邏輯上分爲五層:物理層,數據鏈路層,網絡層,運輸層和應用層.在這五層中,IP協議是屬於網絡層的範圍,那什麼要引入IP地址的概念,網絡層是用來實現什麼功能的呢?

在現實世界中,其實存在着不同的網絡,比如電腦使用的以太網等,手機使用的無線網,衛星使用的衛星組網等,不同的網絡使用的是不同的數據鏈路層協議,不同的數據鏈路層協議的幀格式又是不同的.當然,在同一個網絡中通過數據鏈路層通信是完全沒有問題,但是如果一個網絡中的主機A想要和另一個網絡中的主機B直接通信則就不可行了,原因是主機A發出消息包裝成幀後發給主機B,主機B無法解析該消息,因爲兩個網絡的幀格式是不同的.所以爲了實現不同網絡之間的通信,我們需要在數據鏈路層之上規定一個所有網絡都遵守的協議(IP協議),這樣便可以實現不同網絡之間的通信.

那IP協議爲什麼能實現不同網絡之間的通信呢?

當主機A解析主機B的IP地址後會有兩種情況:

(1)主機B和主機A在同一個網絡中,這時主機A將消息打包成數據幀後直接根據主機B的MAC地址將消息發送給A即可,至於如何根據IP地址找到MAC地址,這就需要用到ARP協議(地址解析協議),這個協議會在主機的高速緩存中產生一個IP地址和MAC地址的映射表.

(2)主機B和主機A不在同一個網絡中.這時需要一個在網絡中十分重要的硬件設備路由器了,路由器是網絡層中一個十分重要的硬件設備,其功能是用來連接不同的網絡.路由器會有兩個及以上的IP接口,這就意味着他有兩個及以上的IP地址,但他只有一個MAC地址,其實感覺上IP地址像是一個邏輯地址,而MAC地址像是一個物理地址.當主機A解析主機B的IP地址發現主機B在另一個網絡中時,主機A就會將消息打包成數據幀後發送給路由器,路由器收到後會先將數據幀解包成IP包,通過IP包拿到目標IP地址後,路由器再通過路由協議(一種尋找到目標IP地址最優路徑的協議)找到下一步要通過的網絡,然後將IP包按照該網絡的數據鏈路層協議把IP包打包成數據包,將該數據包發送到下一個地址.

我理解的主要的通信過程就是上文所述的了.或許有人會問,既然實際尋址用的都是MAC地址,那還要IP地址幹什麼,其實這和網絡層中IP協議存在的目的是一樣的,是爲了屏蔽差異,不同網絡的MAC地址編碼是不同的,沒法制作出一個可以兼容各種網絡MAC地址的軟硬件設備,只有指定一個大家都遵守的IP地址來解決這個問題.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章