為什麼 RIP 協議是裝在 UDP 報文里,而 OSPF 卻直接通過 IP 數據報發出?

相關:計算機網路


勉強回答一下:RIP出現的早,1982年就出現了,那時候網路都很小,RIP就夠用了,另一方面TCP/IP構架才剛剛出現,不規範,沒有考慮到UDP跑在IP層之上,而在沒有IP路由的情況下,IP層還沒有完全建立起來的問題。

OSPF則是1988年才出現的,這時候網路已經有了比較清晰的構架,先有網路層才有傳輸層的概念已經建立起來了,所以OSPF就直接通過IP發送了。

更有意思的是BGP,BGP為了保證可靠性採用了TCP,又變成了跑在傳輸層上的路由協議了,所以到現在還有學院派的人對於BGP到底是路由協議還是被路由協議糾纏不清,不過這個不重要了,實際中好用就行了。


以前的網路是非常小的,都是主機與主機之間通信較多,用rip協議的目的也很簡單,主機可以直接裝個應用就能使用rip協議了。目前的linux和windows server系統都是支持rip協議的。


1982年,伯克利發布的UNIX4.2BSD版本中,通過一個為「routed」的守護進程實現了rip協議;很多後來的UNIX版本都是基於流行的UNIX4.2BSD版本,並且通過一個成為「routed「或」gated「的進程支持rip協議。直到1988年才發布了一個rip協議的標準。所以說rip協議使用UDP是有它的歷史原因的。當時的網路環境沒有現在這麼複雜,rip協議在開發時就沒有考慮過多的原因,所以導致rip更新數據包不可靠。後來由IETF開發的OSPF協議來代替一些存在問題的rip協議。都是基於傳輸服務的,所以封裝在IP數據報裡面。


rip是被當作一個應用層進程(雖然它是一個能操作UNIX內核中的轉發表的特殊進程)來實現的,所以它能在一個標準套接字上發送和接收報文,並且使用一個標準的運輸層協議。RIP是一個運行在UDP上的應用層協議。

以上,摘自《計算機網路-自頂向下方法》


首先 個人認為RIP和OSPF完全沒有可比性 由於當初設計的背景 RIP所要承載的網路是非常小的 前面的回答也說了兩種協議的出現年份 所以說RIP的設計是要落後於OSPF的設計的 不管是從演算法還是機制上來說

網路協議的是一種非常有意思的設計 它會根據現實情況去優化改良 但是又要遵循前面所規定的既有標準 個人認為OSPF再設計之初肯定就考慮到了四層UDP的不穩定性 所以就將OSPF報文封裝進IP 這麼做的好處就是基於三層 不再依靠四層UDP 錯誤率變低和識別轉發能力的加強

RIP作為一個即將被或者說已經淘汰的技術 的確註定只能被寫入歷史 而不是讓樓主繼續糾結於為什麼裝在UDP中發送 樓主有興趣的話可以研究下距離矢量協議RIP的升級版本EIGRP


推薦閱讀:

TCP、UDP與分組交換、電路交換之間的關係?
分組交換網路、電路交換網路與TCP/IP協議的關係?
我考了ccie,現在是學雲計算好還是考紅帽好呢?
在暴走漫畫工作是怎樣的體驗?
怎麼最快的將一張圖片在電腦和手機間傳輸?

TAG:協議 | 計算機網路 |