1.IP地址
MAC地址用於同網段通信,當跨網段通信時,需要使用另一種地址:IP地址。和MAC地址不同,IP地址是邏輯地址,正因為是邏輯地址,所以一個網卡上可能有一個或多個IP地址(其中一個為主IP),甚至出故障的時候網卡上不會分配IP地址。
IP地址用於在網絡上定位尋址,它是網絡層的概念,需要工作在三層的網絡設備(比如路由器、三層交換機)來幫忙識別並作出對應操作。所以數據包要到達非本網段內的對方主機,需要經過一次或多次路由,最終才能找到對方主機並將數據交給對方。
IP地址分為IPv4和IPv6,這里只介紹IPv4。
每個IP地址4個字節共三十二位,全都是0和1,每8位是IP地址的一部分,所以每一部分最小是0(二進制位全為0),最大是255(二進制位全為1)。
IP地址通常采用點分十進制的方式記錄,即使用點將各部分連接起來,例如,192.168.100.10。它對應的二進制格式為1100 0000 1010 1000 0110 0100 0000 1010。
每個IP地址都分為網絡部分和主機部分:
網絡 ID:標識網絡,每個網段分配一個網絡ID,處於高位
主機 ID:標識單個主機,由組織分配給各設備,處於低位
2.IP地址分類
Internet委員會定義了5種IP地址類型,分別是A-E類,其中D和E類為特殊地址。
(1).網絡地址最高位是0的地址為A類地址;
(2).網絡地址最高位是10的地址為B類地址;
(3).網絡地址最高位是110的地址為C類地址;
(4).網絡地址最高位是1110的地址為D類地址;
(5).網絡地址最高位是11110的地址為E類地址。
此外,按照分類標准,A類地址的網絡位占用一個字節,B類地址的網絡位占用兩個字節,C類地址的網絡位占用3個字節。如下圖:
A類地址的網絡部分最高位是0,所以IP的第一部分的格式是0xxx xxxx,那么它的范圍是:
0000 0000=0,0111 1111=127
即A類地址第一部分的十進制范圍是0到127,所以那么1.2.3.4和100.100.120.120都是A類地址。但注意,A類地址的第一部分范圍實際上是1-126,,0和127都不是A類的有效地址,稍后將解釋為什么。
B類地址的網絡部分最高位是10,所以IP的第一部分的格式是10xx xxxx,那么它的范圍是:
1000 0000=128,1011 1111=191
所以,B類網絡地址的第一個字節取值為128-191.
C類地址的網絡部分最高位是110,所以IP的第一部分的格式是110x xxxx,那么它的范圍是:
1100 0000=192,1101 1111=223
所以,C類網絡地址的第一個字節取值為192-223.
D類地址的第一個字節范圍是224-239,D類地址被用於組播地址。
E類地址的第一個字節范圍是240-255,用於科學研究。
雖然組播地址不專門討論,但是每個IT人員都應該記住它的范圍是224-239,因為有些服務器需要配置多播,而且有些軟件或者病毒木馬會發送廣播或多播,記住這個范圍能夠很快地定位是什么問題。
根據第一個字節的范圍,將IP地址分類:
1-126.x.x.x的是A類地址;
128-191.x.x.x的是B類地址;
191-223.x.x.x的是C類地址;
224-239.x.x.x的是D類地址;
239-255.x.x.x的是E類地址。
根據這個范圍,就能很快知道某個地址是哪一類地址。比如172.16.100.3是B類地址,192.168.100.3是C類地址,10.10.10.10是A類地址。
3.共有和私有IP地址
私有IP地址:不直接用於互聯網,通常在局域網中使用
公共IP地址:互聯網上設備擁有的唯一地址
4.保留地址和特殊地址
有些IP地址被保留用於特殊目的,這類保留地址不能被分配某個主機或其他設備。
下面列出了一些保留地址以及保留它們的原因。
(1). 整個IP地址全為1即255.255.255.255
發送給當前網絡所有節點的廣播,也稱1廣播或受限廣播
(2).整個IP地址全為0即0.0.0.0
不同場景意義不同:
在路由表中表示默認路由的目標地址;
在服務監聽時,表示監聽本機上任何有效地址;
在地址沖突時,也會顯示0.0.0.0
(3).主機位全為1
表示當前網絡中的所有節點,也是廣播
(4).主機位全為0
表示當前網段
(5).127.0.0.1
回環地址,表示節點自身,數據只在主機自身流轉,不會產生網絡流量。可用於測試主機的TCP/IP協議棧是否正常工作
5.私有地址
每個公網地址都是獨立擁有的,比如152.16..10.111地址只有某個人能使用,所以公網地址的數量是有限的。
為了節省IP地址,避免每台電腦都分配一個公網地址,還提供了私有地址。任何人都能用私有地址,它們只用於局域網內,不能用於公網。比如公司A能用172.16.100.11,公司B也能用172.16.100.11,因為它是私有地址,只要地址不沖突,可以隨時使用。
在A類、B類、C類地址中,都保留一些范圍的地址作為私有地址。
A類私有地址:10.0.0.0~10.255.255.255,共1個網段;
B類私有地址:172.16.0.0~172.16.255.255,共32個網段;
C類私有地址:192.168.0.0~192.168.255.255,共256個網段;
使用私有地址時,如果需要上網,需要結合NAT(網絡地址轉換)功能,在流量出去的時候,需要轉換公網地址,只有公網地址,才能在網絡上路由。
6.CIDR
子網掩碼必須結合IP地址一起使用,通常會將它們寫在一起。例如:192.168.100.23、255.255.255.0.
但也支持另一種更方便的方式,直接將子網掩碼為1的位數寫在IP地址的后面。例如,255.255.255.0這個子網掩碼中有24個位是1,所以,IP地址和子網掩碼結合的方式可以寫成192.168.100.23/24,172.168.100.23/16等。這種寫法稱為CIDR。
7.子網掩碼
子網掩碼用來表示IP地址中的那些位是網絡位,哪些位是主機位。所以,子網掩碼是決定IP地址屬於哪個網段的。子網掩碼必須結合IP地址一起使用,否則它是是沒有意義的。
子網掩碼中全位1的部分是網絡位,全為0的部分是主機位。0和1必須連續出現,子網掩碼的二進制表示中不能出現類似101、10001這種1和0隔開的情況。
根據A、B、C這些IP地址的分類,其實能推斷出各類的子網掩碼。
每次通信時,首先根據自己的IP地址和子網掩碼來判斷出自己的網段,再用自己的子網掩碼和對方IP地址計算目標所在的網段,如果在同一網段,那么在封裝成幀的時候,封裝的是目標主機的MAC地址,而如果不在同一個網段,則封裝的是本地路由器的MAC地址作為目標MAC地址。
正因為子網掩碼用於決定所屬網段,所以它非常重要,子網掩碼配置錯誤,一定會出現網絡故障。
相關公式:
一個網絡的最多的主機數=2^主機ID位數-2 網絡(段)數=2^網絡ID中可變的位數 網絡ID=IP與netmask
判斷對方主機是否在同一個網段:
用自已的子網掩碼分別和自已的IP及對方的IP相與,比較結果,相同則同一網絡,不同則不同網段
范例: netmask: 255.255.224.0,網絡ID位:19 主機ID位:13,主機數=2^13-2=8190 范例:判斷A和B是否在網一個網段? A: 192.168.1.100 netmask:255.255.255.0 B: 192.168.2.100 netmask:255.255.0.0 范例:一個主機:172.16.1.100/28 1、此主機所在的網段最多有多少主機?主機數=2^(32-28)-2=14 2、網絡ID? IP和子網掩碼相與,172.16.1.96 3、此網段的主機中最小的IP:172.16.1.97,最大的IP?172.16.1.110
8.划分子網
划分子網:將一個大的網絡(主機數多)划分成多個小的網絡(主機數少),主機ID位數變少,網絡ID 位數變多,網絡ID位向主機ID位借n位,將划分2^n個子網
可變長度子網掩碼
范例:
中國移動10.0.0.0/8 給32個各省公司划分對應的子網 1)每個省公司的子網的netmask? 2^5>=32 借5位網絡ID 8+5=13 255.248.0.0 2)每個省公司的子網的主機數有多少? 2^(32-13)-2=524286 3)河南省得到第10個子網,網絡ID? 10.00000 000.0.0/13 10.01001 000.0.0/13 10.72.0.0/13 4)河南省得到第10個子網的最小IP和最大的IP? 10.01001 000.0.1 10.01001 111.11111111.11111110 10.72.0.1---10.79.255.254 5)所有子網中最大,最小的子網的netid? 10.00000 000.0.0/13 10.0.0.0/13 10.11111 000.0.0/13 10.248.0.0/13