1. 子網划分
-
一個擁有許多物理網絡的單位,可將所屬的物理網絡划分為
若干個子網
(subne)。這個單位對外仍然表現為一個網絡. -
划分子網的方法是從網絡的主機號借用若干位作為子網號(subnet-id),於是兩級IP地址在本單位內部就變為三級IP地址:網絡號、子網號和主機號。標記法如下:
IP地址::={<網絡號>,<子網號>,<主機號>}
-
其他網絡發送給本單位某台主機的IP數據報,仍然是根據IP數據報的目的網絡號找到連接在本單位網絡上的路由器。但此路由器在收到IP數據報后,再按目的網絡號和子網號找到目的子網,把IP數據報交付目的主機。
下面用例子說明划分子網的概念。圖4-18表示某單位網絡地址是145.13.0.0
(網絡號是145.13)。凡目的地址為145.13.x.x
的數據報都被送到該單位的路由器R1。
對上述網絡以8位網絡號進行子網划分。所划分的三個子網分別是:145.13.3.0
,145.13.7.0
和145.13.21.0
。在划分子網后,整個網絡對外部仍表現為一個網絡,其網絡地址仍為145.13.0.0
。但網絡145.13.0.0
上的路由器R1在收到外來的數據報后,再根據數據報的目的地址把它轉發到相應的子網。
總之,當沒有划分子網時,IP地址是兩級結構。划分子網后IP地址變成了三級結構划分子網只是把IP地址的主機號這部分進行再划分,而不改變IP地址原來的網絡號。
2. 子網掩碼
假定有一個數據報(其目的地址是145.13.3.10
)已經到達了路由器R1。那么這個路由器如何把它轉發到子網145.13.3.0
呢?
-
圖 a 是IP地址為
145.13.3.10
的主機本來的兩級P地址結構。 -
圖 b 是這個兩級IP地址的子網掩碼。
-
圖 c 是同一地址的三級IP地址結構,請注意,現在子網號為3的網絡的網絡地址是
145.13.3.0
-
圖 d 是三級IP地址的子網掩碼,它也是32位,由一串24個1和跟隨的一串8個0組成。子網掩碼中的1
對應於IP地址中原來二級地址中的16位網絡號加上新增加的8位子網號,而子網掩碼中的
0對應於現在的8位主機號。 -
圖 e 表示
R1
把三級IP地址的子網掩碼和收到的數據報的目的IP地址145.13.3.10
逐位相“與”,得出了所要找的子網的網絡地址145.13.3.0
。
使用子網掩碼的好處就是:不管網絡有沒有划分子網,只要把子網掩碼和IP地址進行逐位的“與”運算(AND),就立即得出網絡地址來。
子網掩碼是一個網絡或一個子網的重要屬性。路由器和相鄰路由器交換路由信息時,必須把自己所在網絡的子網掩碼告訴相鄰路由器。在路由器的路由表中的每一個項目,除了要給出目的網絡地址外,還必須同時給出該網絡的子網掩碼。若一個路由器連接在兩個子網上就擁有兩個網絡地址和兩個子網掩碼。
3. 子網分組轉發
在划分子網的情況下,路由器轉發分組的算法如下:
- 從收到的數據報的首部提取目的IP
地址D
。 - 先判斷是否為直接交付。對路由器直接相連的網絡逐個進行檢查:用各網絡的
子網掩碼
和D
逐位相“與”,看結果是否和相應的網絡地址匹配。若匹配,則把分組進行直接交付(當然還需要把D轉換成物理地址,把數據報封裝成幀發送出去),轉發任務結束。否則就是間接交付,執行(3)。 - 若路由表中有目的地址為D的特定主機路由,則把數據報傳送給路由表中所指明的下一跳路由器;否則,執行(4)
- 對路由表中的每一行(目的網絡地址,子網掩碼,下一跳地址),用其中的子網掩碼和D逐位相“與”,其結果為N。若N與該行的目的網絡地址匹配,則把數據報傳送給該行指明的下一跳路由器;否則,執行(5)
- 若路由表中有一個默認路由,則把數據報傳送給路由表中所指明的默認路由器;否則,執行(6)
- 報告轉發分組出錯。
下圖有三個子網、兩個路由器,現在源主機H1想目的地主機H2發送分組:
- 源主機H1向目的主機H2發送的分組的目的地址是H2的
IP地址128.30.33.138
- 源主機H1首先要進行的操作是要判斷:發送的這個分組,是在本子網上進行直接交付還是要通過本子網上的路由器進行間接交付?
- 源主機H1把本子網的
子網掩碼255.255.255.128
與目的主機H2的IP地址128.30.33.138
逐位相“與”,得出128.30.33.128
,它不等於H1的網絡地址。這說明H2與H1不在同一個子網上。因此交給子網上的默認路由器R1,由R1來轉發。 - 路由器R1在收到一個分組后,就在其路由表中逐行尋找有無匹配的網絡地址先看R1路由表中的第一行。用這一行的子網掩碼
255.255.255.128”
和收到的分組的目的地址128.30.33.138
逐位相“與”,得出128.30.33.128
。與路由表中的目的網絡地址(128.30.33.0
)比較。但比較的結果不一致。 - 繼續用第二行的子網掩碼
255.255.255.128
和該分組的目的地址128.30.33.138
逐位相“與”,結果也是128.30.33.128
。這個結果和第二行的目的網絡地址128.30.33.128
相匹配,說明這個網絡(子網2)就是收到的分組所要尋找的目的網絡。於是不需要再繼續查找下去。R1把分組從接口1直接交付主機H2(它們都在一個子網上)。