划分子網 子網分組轉發算法


  1、從兩級IP地址到三級IP地址

現在隨着因特網的普及和技術的發展,早期ARPANET的設計之缺陷顯露無疑:
(1)IP地址空間的利用率有時會很低:一個A類IP地址網絡可連接超過1000萬台主機,而每個B類IP地址網絡可連接超過6萬台。可是有些網絡對連接在網絡上的主機數有限制,甚至遠小於這樣的數量。
(2)給每個物理網絡分配一個網絡號會使路由表變得龐大臃腫,降低網絡性能。
(3)兩級IP地址不夠靈活:只能在申請完IP地址后才能進行下一步工作,而無法按自己的需求變更。
為了解決這個問題,從1985年起,在IP地址中又增加了一個“子網號字段”,使兩級IP地址變為三級IP地址。這種做法叫作划分子網,或子網尋址或子網路由選擇~

 

划分子網的基本思路如下
(1)一個擁有許多物理網絡的單位,可將所屬的物理網絡划分為若干個子網(subnet)。划分子網只是單位內部的事情,本單位以為無法得知這個網絡具體的子網數及組成,這個單位對外仍然只表現為一個網絡
(2)划分子網的方法是從網絡的主機號借用若干位作為子網號subnet-id,與此同時主機號也減少相應位數(總位數32位不變)。由此兩級IP地址可變為三級IP地址:    IP地址 ::= {<網絡號>,<子網號>,<主機號>}
(3)從外部網絡發送給本單位某主機的IP數據報仍根據目的網絡號找到連接在本單位網絡上的路由器。但隨后在本網絡內部,路由器根據目的網絡號和子網號找到目的子網,將IP數據報交付目的主機。
注意:划分子網只是把IP地址的主機號這部分進行再划分,並不改變IP地址原來的網絡號~

2、子網掩碼

子網掩碼是干什么的呢?我們知道,從IP數據報的首部無法看出源主機和目的主機所連接的網絡是否進行了子網划分,所以機智的人們想到了子網掩碼(subnet mask)的方法~

做法:將三級IP地址的子網掩碼(根據子網划分而變)和收到的數據報的目的IP地址逐位“與”(AND),就可得出所要找的子網的網絡地址~即主機號對應的位置為0,其他位均為1~

子網掩碼是一個網絡或一個子網的重要屬性,路由器的路由表中除了有目的網絡地址,還有該網絡的子網掩碼,這是現在因特網的標准規定~

A類地址的默認子網掩碼是255.0.0.0;
B類地址的默認子網掩碼是255.255.0.0;
C類地址的默認子網掩碼是255.255.255.0。

 

 

使用子網時分組的轉發

使用子網划分后,路由表必須包含以下三項內容:目的網絡地址、子網掩碼和下一跳地址。

在划分子網的情況下,路由轉發分組的算法如下:
(1)從收到的數據報的首部提取目的IP地址D。
(2)先判斷是否為直接交付。對路由器直接相連的網絡逐個進行檢查:用各網絡的子網掩碼和D逐位相“與”(AND操作),看結果是否和相應的網絡地址匹配。若匹配,則把分組進行直接交付(還需把D轉換成物理地址,把數據報封裝成幀發送出去),轉發任務結束。否則就是間接交付,執行(3)。
(3)若路由表中有目的地址為D的特定主機路由,則把數據報傳送給路由表中所指明的下一跳路由器;否則,執行(4)。
(4)對路由表中的每一行(目的網絡地址、子網掩碼、下一跳地址),用其中的子網掩碼和D逐位相“與”(AND),其結果為N。若N與該行的目的網絡地址匹配,則把數據報傳送給該行指明的下一跳路由器;否則,執行(5)。
(5)若路由表中有一個默認路由,則把數據報傳送給路由表中所指明的默認路由器;否則,執行(6)。
(6)報告轉發分組出錯。

Ps:可以和沒划分子網的情況比較下,發現大體的流程是不變的:提取IP地址、判斷是否在同一網絡、判斷是否有特定路由、判斷間接交付、判斷是否有默認路由。
只是沒有和子網掩碼的“與”操作而已~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM