路由
分組轉發
1)從數據報的首部提取目的主機的IP地址D,得出目的網絡地址N
2)若N就是與此路由器直接相連的某個網絡地址,則進行直接交付,不需要經過其他路由器,直接將數據報交付給目的主機(這里包括將目的主機地址D轉為具體硬件地址,把數據報封裝為MAC幀,再發送此幀);否則間接交付,執行(3);
3)若路由表中有目的地址為D的特定主機路由,則把數據報送給路由表中下一條路由器;否則執行4
4)若路由表中有到達網絡N的路由,則把數據報傳送給路由表中所指明的下一條路由器;否則,執行5
5)若路由表中有一個默認路由,則把數據報傳送給路由表中指明的默認路由器;否則執行6)
6)報告轉發分組出錯
在互聯網上轉發分組時,都是從一個路由器轉發到下一個路由器。對于每條路由最主要的時以下兩個信息(目的網絡地址,下一條地址)
現在互聯網所有分組的轉發都是基于目的主機所在的網絡,但大多數情況下都允許有這樣的特例,即對特定的目的主機指明一個路由。這個路由也叫做特定主機路由。特定主機路由的子網掩碼時255.255.255.255.要在所有路由器上添加。
默認路由
默認路由(Default route),是對IP數據包中的目的地址找不到存在的其他路由時,路由器所選擇的路由。目的地不在路由器的路由表里的所有數據包都會使用默認路由。這條路由一般會連去另一個路由器,而這個路由器也同樣處理數據包: 如果知道應該怎么路由這個數據包,則數據包會被轉發到已知的路由;否則,數據包會被轉發到默認路由,從而到達另一個路由器。每次轉發,路由都增加了一跳的距離。
默認路由和靜態路由的命令格式一樣。只是把目的地ip和子網掩碼改成0.0.0.0和0.0.0.0。
主機里的默認路由通常被稱作默認網關。默認網關通常會是一個有過濾功能的設備,如防火墻和代理服務器。
路由還可以采用默認路由以交少路由表所占用的空間和搜索路由表所用的時間。這種轉發方式在一個網絡只有很少的對外連接時時很有用的。默認路由用0.0.0.0表示
子網劃分
子網劃分的基本思路:
1)一個擁有很多物理網絡的單位,可將所屬的物理網絡劃分為若干個子網。劃分子網純屬一個單位內部的事情,本單位意外看不到這個網絡是由多少個子網構成的,因為這個單位對外仍然表現為一個網絡。
2)劃分子網的方法時從網絡主機號借用若干位作為子網號當然主機號也就相應的減少了同樣的位數。于是兩級IP地址在本單位內部變為三級IP地址:網絡號、子網號和主機號。也可記為:
IP地址 ::={,,}
3)凡是從其他網絡發送給本單位某臺主機的IP數據報,仍然是根據IP數據報的目的網絡號找到連接本單位網絡上的路由器。但此路由器收到IP數據報后,再按照目的網絡號和子網號找到目的子網,再把OP數據報交付給目的主機。
子網掩碼
子網掩碼
再IP數據報的首部無法看出源主機和目的主機所連接的網絡是否進行了子網的劃分。這是因為32為的IP地址本身以及數據報的首部都沒有包含任何有關子網劃分的信息。因此必須寧外想辦法,這就是使用子網掩碼。
把三級地址的子網掩碼與收到的數據報的目的IP地址逐位相“與”,就能得出所要找的子網的網絡地址。
使用子網掩碼的好處是:不論有沒有劃分子網,只要把子網掩碼與IP地址進行與運算,就能立即得出網絡地址。這樣再路由器處理到來的分組時就可采用同樣的算法。
互聯網規定:所有的網絡都必須使用子網掩碼,同時再路由器的路由表也必須有子網掩碼一欄。不劃分子網,那么該網絡的子網掩碼就是默認子網掩碼。
A類地址的默認子網掩碼是255.0.0.0
B類地址的默認子網掩碼是255.255.0.0
C類地址的默認子網掩碼是255.255.255.0
使用子網掩碼時的分組轉發
在使用子網劃分之后,路由表中現必須包含以下三項內容:目的網路地址、子網掩碼和下一跳地址。
在劃分子網的情況下,路由器轉發分子算法
1)從收到的數據報的首部提取目的IP地址D;
2)先判斷是否位直接交付。對路由器直接相連的網絡逐個進行檢查:用各個網絡的子網掩碼與D逐位相與,看結果是否和相應的網絡地址匹配。若匹配,則把分組進行直接交付(當然還要將D轉為物理地址,將數據報封裝成幀發送出去),轉發任務結束。否則就間接交付,執行3)
3)若路由表中有目的地址位D的特定主機路由,則把數據報傳送給路由表中所執行的下一條路由器;否則執行4)
4)對路由表中的每一行(目的網絡地址,子網掩碼,下一跳地址),用其中的子網掩碼和D逐位相與,得到結果N。若N與改行的目的網絡地址匹配,則把數據傳送給改行指明下一跳路由器;否則執行5)
5)若路由表中有一個默認路由,則把數據報傳送給路由表中指明的默認路由器;否則,執行6)
6)報告轉發分組出錯