(一)輸入處理:主要是指路由器協(xié)議軟件對在520號UDP端口收到的數(shù)據(jù)報進(jìn)行的處理。對于輸入處理,首先必須先作一定格式檢查,檢查通過后,再分別對幾種輸入消息做相應(yīng)的處理。
請求報文:路由器在開始運(yùn)行時,為了從鄰機(jī)處獲取路由表的初始值,通常會發(fā)一個請求。報文的Command字段為(request)。對所有或部分路由表的請求,一般以廣播形式從520號UDP端口發(fā)送。實(shí)際中,這種請求有兩種格式:請求獲取路由表的全部和請求獲取路由表的某些特定路由項。
不論收到什么樣的響應(yīng),RIP處理程序就開始更新它的路由表。路由表的每一項至少都要包括如下內(nèi)容:
·目的站點(diǎn)的地址;
·通往目的站點(diǎn)的量度值;
·“下一個路由器”的地址;
·“最近更新過”的標(biāo)志;
·幾個定時器。
因?yàn)樘幚眄憫?yīng)可能修改主機(jī)路由表,所以必須作嚴(yán)格的有效性檢查。對于
RIP Veon1數(shù)據(jù)報,對must be zero 域必須進(jìn)行查零處理,對RIP Version2 數(shù)據(jù)報則可忽略。數(shù)據(jù)報驗(yàn)證有效后,還要對其路由項逐個進(jìn)行驗(yàn)證。全部通過后,我們設(shè)置metric = MIN ( metric + cost , 16 ),16代表無限長,然后檢查是否已有路由到達(dá)該地址,假如沒有,則加入路由表,但是假如metric是無限長,則不要將其加入路由表;假如現(xiàn)有路由不比新加的路由差,我們也不將其加入路由表。對此,需要執(zhí)行以下動作:
·根據(jù)收到的數(shù)據(jù)報設(shè)置目的地和metric
·根據(jù)數(shù)據(jù)報的來源主機(jī)設(shè)置路由器
·為該路由設(shè)置超時值,假如垃圾回收定時器正在運(yùn)行,將其停止
·設(shè)置路由改變標(biāo)志,給輸出進(jìn)程發(fā)信號,觸發(fā)一次修改
假如現(xiàn)存一個路由,首先比較路由器,假如來自同一路由器,對超時值重新進(jìn)行初始化,然后比較metric。假如數(shù)據(jù)報來自與現(xiàn)存路由同樣的路由器且新的metric值與舊的不同,或者新的比舊的低,進(jìn)行如下動作:
·將新的metric填入,并將該路由器設(shè)置為數(shù)據(jù)報的來源
·為此路由初始化超時值
·設(shè)置路由改變標(biāo)志,給輸出進(jìn)程發(fā)信號,觸發(fā)一次修改
·假如新metric是16,啟動刪除進(jìn)程(只是在metric剛剛被設(shè)為16時啟動)
·假如新的metric值與舊的相等,除了重新初始化超時值外什么也不干
(二)輸出處理:用于產(chǎn)生包含全部或部分路由表的響應(yīng)信息的處理,可能由于輸入進(jìn)程發(fā)現(xiàn)請求或路由修改而觸發(fā)。
先看后兩種情況下如何選擇目的地址。假如一個響應(yīng)要發(fā)送給所有目的地,則響應(yīng)信息發(fā)送給每個點(diǎn)到點(diǎn)連接的網(wǎng)絡(luò)的對端,而且響應(yīng)在支持廣播的網(wǎng)絡(luò)上進(jìn)行廣播。但是假如網(wǎng)絡(luò)不支持廣播,或者在沉默的路由器,就有必要指定一張實(shí)際的臨近主機(jī)和路由器表,顯式地向每一個發(fā)送數(shù)據(jù)報。觸發(fā)的修改因?yàn)閮蓚€方面需要處理:
第一, 觸發(fā)的修改在容量有限或有許多路由器的網(wǎng)絡(luò)上可能導(dǎo)致格外大的
負(fù)載,因此協(xié)議要求實(shí)現(xiàn)方在限制觸發(fā)式修改出現(xiàn)的頻率上采取一定的措施,觸發(fā)式修改發(fā)送后,需要隨機(jī)地將一個定時器設(shè)置成1到5秒,假如在定時器超時前發(fā)生其它修改,需要到定時器超時才觸發(fā)其中之一,然后定時器再隨機(jī)地設(shè)置成1到5秒,觸發(fā)式修改可能被一般修改所禁止;
第二, 觸發(fā)式修改可能不必包括整個路由表,原則上說,只有改變過的
路由才需要包括,作為觸發(fā)式修改一部分的信息至少包括設(shè)置了路由修改標(biāo)志的路由,也可以包括附加路由和全部路由。假如完整的修改需要多個數(shù)據(jù)報,則發(fā)送全部路由極有可能被打斷;而觸發(fā)式修改處理時,需要產(chǎn)生每個直連網(wǎng)絡(luò)的信息。產(chǎn)生觸發(fā)式修改或一般修改時,都需要進(jìn)行水平分割操作。
假如產(chǎn)生輸出的同時也答應(yīng)輸入處理,則必須建立相應(yīng)的互斥機(jī)制,產(chǎn)生觸發(fā)式修改信息時,路由改變標(biāo)志不得因處理輸入而改變。觸發(fā)式修改與其它修改的唯一不同之處在于:可能會忽略某些改變過的路由,今后推出的其它機(jī)制恐怕要適應(yīng)觸發(fā)式修改。
新聞熱點(diǎn)
疑難解答
圖片精選