分層的目的是爲了把複雜的功能模塊化,易於描述,易於實現和維護。通常認爲L3就是負責實現網際互連(internetworking)。好比IP,能夠實現全球的IP網絡的互連,你只須要一個IP地址。 這時就有一個問題。條條大路通羅馬,你怎麼知道走哪條路能到你想去的IP呢?因而發明了動態路由協議,讓它去找路。可是動態路由協議本身的packet也得經過IP packet的封裝發出去。有的選擇是直接用IP包(如OSPF;DSR),有的則先用UDP或TCP包一層,再用IP包一層(如RIP,BGP;AODV, OLSR)。固然它們這麼作有本身的須要和理由。 但無論怎麼說,轉發表(forwarding table)是IP層的。一個結點若是有轉發功能,它在轉發數據包時會且僅會依照這個表。可是這個轉發表不是隨機生成的,而是動態路由協議學習來的,或者由人工配置的靜態路由生成。因此呢,轉發表的數據結構在IP層,但內容倒是由路由協議們提供的。 若是按照報文包糉子的順序,RIP, BGP由於在有運輸層的報頭,能夠算是「應用層」。不過當初分層的目的是爲了區分網絡上的各類功能(functionality),不是針對糉子葉的層數。因此很多的文獻把路由協議都算在網絡層裏。 有人提出了控制面(control plane)和數據面(data plane)的概念。在原來協議分層的基礎上增長分面的概念。報文表示和打包的過程屬於數據面, 而生成轉發表和如何轉發的過程屬於控制面。還有些人把路由協議稱做routing protocol,就是作路由決定的協議;把其它協議稱做routed protocol,被決定的協議,它們只管扛數據,怎麼走路由前者決定。
|