掩碼
計算機領域的術語
掩碼是一串二進位代碼對目標欄位進行位與運算,屏蔽當前的輸入位。
將源碼與掩碼經過按位運算或邏輯運算得出新的操作數。其中要用到按位運算如OR運算和AND運算。用於如將ASCII碼中大寫字母改作小寫字母。
如A的ASCII碼值為65= (01000001)2,a的ASCII碼值為97=(01100001)2,要想把大寫字母A轉化為小寫字母只需要將A的ASCII碼與(00100000)2進行或運算就可以得到小寫字母a。
IP地址的規則255.255.255.0 表示子網掩碼地址。
將子網掩碼轉化為2進位代碼后 例如:192.168.1.2 /24
判斷地址192.168.1.2為C類地址,所以子網掩碼為255.255.255.0,換算為二進位就是11111111.11111111.11111111.00000000。
1代表網路位,0代表主機位。作為子網掩碼1和0 都必須是連續的。
下面主要介紹IP地址(IP Address)的概念及其子網掩碼(Subnet Mask)的計算。
目前使用的IPv4協議對IP地址強行定義了一些保留地址,即:“網路地址”和“廣播地址”。所謂“網路地址”就是指“主機號”全為“0”的IP地址,如:125.0.0.0(A類地址);而“廣播地址”就是指“主機號”全為“255”時的IP地址,如:125.255.255.255(A類地址)。
子網掩碼是用來標識兩個IP地址是否同屬於一個子網。它也是一組32位長的二進位數值,其每一位上的數值代表不同含義:為“1”則代表該位是網路位;若為“0”則代表該位是主機位。和IP地址一樣,人們同樣使用(點式十進位)來表示子網掩碼,如:255.255.0.0。如果兩個IP地址分別與同一個子網掩碼進行按位“與”計算后得到相同的結果,即表明這兩個IP地址處於同一個子網中。也就是說,使用這兩個IP地址的兩台計算機就像同一單位中的不同部門,雖然它們的作用、功能、乃至地理位置都可能不盡相同,但是它們都處於同一個網路中。
子網掩碼計算方法自從各種類型的網路投入各種應用以來,網路就以不可思議的速度進行大規模的擴張,目前正在使用的IPv4也逐漸暴露出了它的弊端,即:網路號佔位太多,而主機號位太少。目前最常用的一種解決辦法是對一個較高類別的IP地址進行細化,劃分成多個子網,然後再將不同的子網提供給不同規模大小的用戶群使用。使用這種方法時,為了能有效地提高IP地址的利用率,主要是通過對IP地址中的“主機號”的高位部分取出作為子網號,從通常的“網路號”界限中擴展或壓縮子網掩碼,用來創建一定數目的某類IP地址的子網。當然,創建的子網數越多,在每個子網上的可用主機地址的數目也就會相應減少。
要計算某一個IP地址的子網掩碼,可以分以下兩種情況來分別考慮:
情況1:無須劃分成子網的IP地址。一般來說,此時計算該IP地址的子網掩碼非常地簡單,可按照其定義就可寫出。例如:某個IP地址為12.26.43.0,無須再分割子網,按照定義我們可以知道它是一個A類地址,其子網掩碼應該是255.0.0.0;若此IP地址是一個B類地址,則其子網掩碼應該為255.255.0.0;如果它是C類地址,則其子網掩碼為255.255.255.0。其它類推。
情況2:要劃分成子網的IP地址。在這種情況下,如何方便快捷地對於一個IP地址進行劃分,準確地計算每個子網的掩碼,方法的選擇很重要。下面我介紹兩種比較便捷的方法:當然,在求子網掩碼之前必須先清楚要劃分的子網數目,以及每個子網內的所需主機數目。
方法一:利用子網數來計算。
1.首先,將子網數目從十進位數轉化為二進位數;
2.接著,統計由“1”得到的二進位數的位數,設為N;
3.最後,先求出此IP地址對應的地址類別的子網掩碼。再將求出的子網掩碼的主機地址部分(也就是“主機號”)的前N位全部置1,這樣即可得出該IP地址劃分子網的子網掩碼。
例如:需將B類IP地址167.194.0.0劃分成28個子網:
1.(28)10=(11100)2;
2.此二進位的位數是5,則N=5;
3.此IP地址為B類地址,而B類地址的子網掩碼是255.255.0.0,且B類地址的主機地址是后2位(即0-255.1-254)。於是將子網掩碼255.255.0.0中的主機地址前5位全部置1,就可得到255.255.248.0,而這組數值就是劃分成 28個子網的B類IP地址167.194.0.0的子網掩碼。
方法二:利用主機數來計算。
1.首先,將主機數目從十進位數轉化為二進位數;
2.接著,如果主機數小於或等於254(注意:應去掉保留的兩個IP地址),則統計由“1”中得到的二進位數的位數,設為N;如果主機數大於254,則 N>8,也就是說主機地址將超過8位;
3.最後,使用255.255.255.255將此類IP地址的主機地址位數全部置為1,然後按照“從後向前”的順序將N位全部置為0,所得到的數值即為所求的子網掩碼值。
例如:需將B類IP地址167.194.0.0劃分成若干個子網,每個子網內有主機500台:
1.(500)10=(111110100)2;
2.此二進位的位數是9,則N=9;
3.將該B類地址的子網掩碼255. 255.0.0的主機地址全部置 1,得到255.255.255.255。然後再從後向前將后9位置0,可得:11111111. 11111111.11111110.00000000即255.255.254.0。這組數值就是劃分成主機為500台的B類IP地址167.194.0.0的子網掩碼。
子網掩碼的主要功能是告知網路設備,一個特定的IP地址的哪一部分是包含網路地址與子網地址,哪一部分是主機地址。網路的路由設備只要識別出目的地址的網路號與子網號即可作出路由定址決策,IP地址的主機部分不參與路由器的路由定址操作,只用於在網段中唯一標識一個網路設備的介面。
如果網路系統中只使用A、B、C這三種主類地址,而不對這三種主類地址作子網劃分或者進行主類地址的匯總,則網路設備根據IP地址的第一個位元組的數值範圍即可判斷它屬於A、B、C中的哪一個主類網,進而可確定該IP地址的網路部分和主機部分,不需要子網掩碼的輔助。但為了使系統在對A、B、C這三種主類網進行了子網的劃分,或者採用無類別的域間選路技術(Classless Inter-Domain Routing,CIDR)對網段進行匯總的情況下,也能對IP地址的網路及子網部分與主機部分作正確的區分,就必須依賴於子網掩碼的幫助。
子網掩碼使用與IP相同的編址格式,子網掩碼為1的部分對應於IP地址的網路與子網部分,子網掩碼為0的部分對應於IP地址的主機部分。將子網掩碼和IP地址作"與"操作后,IP地址的主機部分將被丟棄,剩餘的是網路地址和子網地址。例如,一個IP分組的目的IP地址為:10.2.2.1,若子網掩碼為:255.255.255.0,與之作"與"運算得:10.2.2.0,則網路設備認為該IP地址的網路號與子網號為:10.2.2.0。
中斷掩碼:
中斷掩碼是指在彙編語言中進行中斷前,需要對相應的中斷狀態字進行授權允許或屏蔽相關中斷的操作。即讀OCW1進行命令字的寫入。OCW1要寫入其入口地址,順序為M7~M0,若Mi=1:屏蔽由IRi引入的中斷請求;若Mi=0:允許IRi端中斷的引入。