路由器的工作原理-路由器是如何工作的
主要知識(shí)點(diǎn):路由器的路由功能,路由器的路由/轉(zhuǎn)發(fā)功能
路由器是一種用于網(wǎng)絡(luò)互連的專用計(jì)算機(jī)設(shè)備,在網(wǎng)路建設(shè)中有著重要的地位.路由器工作在OSI參考模型的第三層(網(wǎng)絡(luò)層),主要的作用是為收到的報(bào)文尋找正確的路徑,并把他們轉(zhuǎn)發(fā)出去.在這個(gè)過程中,路由器被認(rèn)為執(zhí)行了兩個(gè)最重要的基本功能:路由功能和交換功能.
(1)路由功能是指路由器通過運(yùn)行動(dòng)態(tài)路由協(xié)議或其他方法來學(xué)習(xí)和維護(hù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)知識(shí)的機(jī)制,產(chǎn)生和維護(hù)路由表.為了完成路由功能,路由器需要學(xué)習(xí)和維護(hù)以下幾個(gè)基本信息:首先要知道被路由的協(xié)議是什么,一旦在接口上配置了IP地址,子網(wǎng)掩碼,即在接口上啟動(dòng)了IP協(xié)議(缺省情況下IP路由是打開的),而且路由接口狀態(tài)正常的話,就可以利用這個(gè)接口轉(zhuǎn)發(fā)數(shù)據(jù)包;目的網(wǎng)絡(luò)地址是否已存在,通常IP數(shù)據(jù)包的轉(zhuǎn)發(fā)依據(jù)是目的網(wǎng)絡(luò)地址,路由表中必須有能夠匹配得上的路由條目才能夠轉(zhuǎn)發(fā)此數(shù)據(jù)包,否則此IP數(shù)據(jù)包將被路由器丟棄;再次,路由器還包含將數(shù)據(jù)包轉(zhuǎn)發(fā)至目的網(wǎng)絡(luò)需要將此數(shù)據(jù)包從哪個(gè)端口發(fā)送出和應(yīng)轉(zhuǎn)發(fā)到哪一個(gè)下一跳地址等信息.
(2)路由器的交換/轉(zhuǎn)發(fā)功能與以太網(wǎng)交換機(jī)所執(zhí)行的交換功能概念不同,指的是數(shù)據(jù)在路由器內(nèi)部移動(dòng)與處理的過程:從路由器一個(gè)接口接收,然后選擇合適窗口轉(zhuǎn)發(fā),其間做幀的解封裝與封裝,并對(duì)包做相應(yīng)處理,如下圖所示,
首先當(dāng)一個(gè)數(shù)據(jù)幀到達(dá)某一端口,端口對(duì)幀進(jìn)行CRC校驗(yàn)并檢查其目的數(shù)據(jù)鏈路層地址是否與本端口符合.如果通過檢查,則去掉幀的封裝并讀出IP數(shù)據(jù)包中的目的地址信息,查詢路由表,決定轉(zhuǎn)發(fā)接口與下一跳地址.
獲得了轉(zhuǎn)發(fā)接口與下一跳地址信息后路由器將緩存中是否已經(jīng)有了在外出接口上進(jìn)行數(shù)據(jù)鏈路層封裝所需的信息,如果沒有這些信息路由器將通過適當(dāng)?shù)倪M(jìn)程獲得這些信息:外出接口如果是以太網(wǎng),則將通過ARP協(xié)議獲得下一跳IP地址所對(duì)應(yīng)的MAC地址;而如果外出接口是廣域網(wǎng)接口,則將通過手工配置或自動(dòng)實(shí)現(xiàn)的映射過程獲得相應(yīng)的2層地址信息,然后做新的數(shù)據(jù)鏈路層封裝,并依據(jù)外出接口上所做的QOS策略入相應(yīng)的隊(duì)列,等待端口空閑進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā).
(3)路由器工作過程總結(jié):對(duì)于一個(gè)特定的路由協(xié)議,可以發(fā)現(xiàn)到達(dá)目的網(wǎng)絡(luò)的所有路徑,根據(jù)選路算法賦予每一條路徑metric值,比較metric值,選擇metric值最小的路徑為最佳路徑;在路由器的交換過程中查找路由時(shí)可能會(huì)發(fā)現(xiàn)能匹配上多條路由條目.此時(shí)路由器將根據(jù)最長匹配原則進(jìn)行數(shù)據(jù)的轉(zhuǎn)發(fā).路由器會(huì)進(jìn)行匹配最深的,也就是說可以匹配的掩碼長度最長的一條路由進(jìn)行轉(zhuǎn)發(fā).