使用子網時的分組轉發流程
當使用子網划分之后,路由表中每一項都包含三個內容:目的網絡地址、子網掩碼、下一跳地址
分組轉發算法如下:
- 先從要轉發的數據報中,提取出目的IP地址D,注意D包含了網絡號和主機號
- 首先判斷,D是否與路由器直接相連,即,將每個與路由器直接相連的網絡的子網掩碼,與D進行“與”操作,若得出的結果和與路由器直接相連的網絡號匹配,就直接交付,將數據報交給數據鏈路層,並填入新的源MAC地址和目的MAC地址。
- 若D不與路由器直接相連,則查看路由表中是否有目的地址為D的特定主機路由,若有從相應的接口轉發出去,若沒有執行第四步操作
- 對路由表中的每一行,使用子網掩碼和D進行與操作,若結果與相應的網絡地址匹配,則從相應的接口轉發出去,若不存在這樣的路由,執行第五步操作
- 若主機中有默認路由,則轉發給默認路由,否則報告分組轉發錯誤
當使用CIDR構成超網時
路由表中每一項只包含兩個內容:網絡前綴,下一跳地址,這樣一來就有可能出現在查找路由表時得到多個匹配的結果,我們應該從匹配結果中選擇具有最長前綴匹配的路由。