一、IP位址
1、IANA
IANA 就是指(Internet Assigned Numbers Authority) ,Internet号配置設定的機構。負責對IP位址配置設定規劃以及對TCP/UDP公共服務的端口定義。
端口:用于标記程序
0-65535
Socket:ip:port
172.16.100.7:80
172.16.100.8:80
2、IP位址的基本格式
IPv4使用32位(4位元組)位址,是以整個位址空間中有4,294,967,296(2^32)個位址,也就是近43億個位址。IPv4位址在計算機内部是以二進制形式表示,是一個32位的二進制數,通常被分割為4個“8位二進制數”(也就是4個位元組)。
IP位址通常用“點分十進制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之間的十進制整數。
例:點分十進IP位址(100.4.5.6),實際上是32位二進制數(01100100.00000100.00000101.00000110)。
位址格式為:IP位址=網絡位址+主機位址 或 IP位址=網絡位址+子網位址+主機位址。
3、子網路遮罩
子網路遮罩的作用就是擷取主機IP位址中的網絡位址資訊,用于差別主機通信不同情況,選擇不同路由
子網路遮罩與IP位址一樣,也是由32位二進制組成的。它被分成“網絡ID”和“主機ID”兩部分。
“網絡ID”部分全是“1”;“主機ID”部分全是“0”表示。
4、IP位址分類
IPv4位址的基本分類:
五個類别:A、B、C、D和E
A、B和C類用于單點傳播通信中裝置IP位址配置設定,D類屬于多點傳播位址,用于多點傳播通信,E類是保留位址。
它們均有不同的網絡類别(也就是“網絡ID”)長度,用來辨別不同的網絡類别,剩餘的部分被用來識别網絡内的主機(稱之為“主機ID”)。
“網絡ID”用來确定每類網絡中有的網絡數
“主機ID”則用來确定每個網絡中有的IP位址數
最初設計網際網路絡時,為了便于尋址以及階層化構造網絡,每個IP位址包括兩個辨別碼(ID),即網絡ID和主機ID。
同一個實體網絡上的所有主機都使用同一個網絡ID,網絡上的一個主機(包括網絡上工作站,伺服器和路由器等)有一個主機ID與其對應。IP位址根據網絡ID的不同分為5種類型,A類位址、B類位址、C類位址、D類位址和E類位址。
大:0 000 0000-0 111 1111: 0-127 #A類網
中:10 00 0000-10 11 1111: 128-191 #B類網
小:110 0 0000-110 1 1111: 192-223 #C類網
1110 0000-1110 11111: 224-239 #組(多)播位址
1111 0000-1111 1111: 240-255 #留作實驗使用
主機位全0:網絡位址
主機位全1:廣播位址
A類IP位址
A類位址的網絡ID為1~126。
一個A類IP位址由1位元組的網絡位址和3位元組主機位址組成,網絡位址的最高位必須是“0”,
位址範圍從1.0.0.0 到126.0.0.0,預設網絡掩碼為:255.0.0.0;可用的A類網絡有126個,每個網絡能容納1億多個主機。
注意:數字0和 127不作為A類位址,數字127保留給内部回送函數,而數字0則表示該位址是本地主控端,不能傳送。
A:1-126 #127段網絡做回環測試
2^7-2個網絡:126個網絡
每個網絡的主機:2^24-2
B類IP位址
B類位址的網絡ID為128~191。
一個B類IP位址由2個位元組的網絡位址和2個位元組的主機位址組成,網絡位址的最高位必須是“10”,位址範圍從128.0.0.0到191.255.255.255,預設網絡掩碼為:255.255.0.0;可用的B類網絡有16382個,每個網絡能容納6萬多個主機 。
B:128-191
2^14個網絡
每個網絡中的主機:2^16-2
C類IP位址
C類位址網絡ID為192~223。
一個C類IP位址由3位元組的網絡位址和1位元組的主機位址組成,網絡位址的最高位必須是“110”。
範圍從192.0.0.0到223.255.255.255,預設網絡掩碼為:255.255.255.0;C類網絡可達209萬餘個,每個網絡能容納254個主機。
C:192-223
2^21個網絡
每個網絡中的主機:2^8-2
這裡每個網段中的主機數為什麼要減去2?
ip位址中全零(“0.0.0.0”)位址對應于目前主機,全“1”的IP位址(“255.255.255.255”)是目前子網的廣播位址,所有主機數中這裡每個網段都減去了2個
D類位址用于多點廣播(Multicast):
D類IP位址第一個位元組以“1110”開始,它是一個專門保留的位址。它并不指向特定的網絡,目前這一類位址被用在多點廣播(Multicast)中。多點廣播位址用來一次尋址一組計算機,它辨別共享同一協定的一組計算機。
E類IP位址:
以“11110”開始,為将來使用保留。
5、私有IP位址
在IP位址3種主要類型裡,各保留了3個區域作為私有位址,其位址範圍如下:
A類位址:10.0.0.0/8(255.0.0.0 )
10.0.0.0 - 10.0.0.254,1個網絡,每個網絡的主機數:2^24 -2
B類位址:172.16.0.0/12(172.16.0.0,255.255.0.0)
172.16.0.1 - 172.31.255.254,16個網絡,每個網絡的主機數:2^20 -2
C類位址:192.168.0.0/16(255.255.255.0)
192.168.0.0 -192.168.255.0,256個網絡,每個網絡的主機數:2^16 -2
二、常用的幾個ip位址
1、本機位址
通常指的是綁定在實體或虛拟網絡接口上的IP位址,可供其他裝置通路到;
一般情況下,并不會把 127.0.0.1當作本機位址——因為沒必要特别說明,大家都知道。
本機位址是與具體的網絡接口綁定的。比如以太網卡、無線網卡或者PPP/PPPoE撥号網絡的虛拟網卡,想要正常工作都要綁定一個位址,否則其他裝置就不知道如何通路它。
如果服務端套接字綁定在這個ip上面(就是某個服務監聽在這個ip位址上),用戶端程式就可以通過這個ip來通路這個服務。當ip發生變化時,套接字綁定的ip也需要發生改變,否則通路不到。
2、127.0.0.0
整個127.* 網段通常被用作loopback網絡接口的預設位址,按慣例通常設定為127.0.0.1。這個位址在其他計算機上不能通路,就算你想通路,通路的也是自己,因為每台帶有TCP/IP協定棧的裝置基本上都有localhost/127.0.0.1。
如果服務端套接字綁定在它上面,你的用戶端程式就隻能在本機通路
3、localhost
localhost 是個域名,不是位址,它可以被配置為任意的 IP 位址,不過通常情況下都指向 127.0.0.1(ipv4)和 [::1](ipv6)
不能直接綁定套接字,必須先gethostbyname轉成IP才能綁定
4、0.0.0.0
1)嚴格說來,0.0.0.0已經不是一個真正意義上的IP位址了。它表示的是這樣一個集合:所有不清楚的主機和目的網絡。這裡的“不清楚”是指在本機的路由表裡沒有特定條目指明如何到達。對本機來說,它就是一個“收容所”,所有不認識的“三無”人員,一 律送進去。如果你在網絡設定中設定了預設網關,那麼Windows系統會自動産生一個目的位址為0.0.0.0的預設路由。
2)網絡中0.0.0.0的IP位址表示整個網絡,即網絡中的所有主機。
它的作用是幫助路由器發送路由表中無法查詢的包。如果設定了全零網絡的路由,路由表中無法查詢的包都将送到全零網絡的路由中去。
如果服務端套接字綁定在它上面,你的用戶端程式可以通過它上面所有的“本機位址”通路
5、169.254開頭的IPv4位址
“自動專用IP位址”,其位址範圍為:169.254.0.0/16,子網路遮罩為255.255.0.0。
當計算機設定了由DHCP自動配置設定IP位址,而又無法由DHCP得到IP時(網絡斷開、DHCP伺服器、路由器失效等等),就會自動配置設定一個169.254段的IP給自己。
6、localhost與127.0.0.1有什麼不同?
要比較兩個東西有什麼不同,首先要弄清兩者的概念。是以,我們從概念開始:
localhost:也叫local ,正确的解釋是:本地伺服器
127.0.0.1:在windows等系統的正确解釋是:本機位址(本機伺服器)
通過本機的host檔案,windows自動将localhost解析為127.0.0.1
一個是“本地”,一個是“本機”。不過從這兩個詞來看,還是不能比較兩者的差別。我們再看看他們的工作原理。
localhot(local)是不經網卡傳輸!而使用Unix socket這點很重要,它不受網絡防火牆和網卡相關的的限制。
127.0.0.1是通過網卡傳輸,依賴網卡,并受到網絡防火牆和網卡相關的限制。
一般設定程式時本地服務用localhost是最好的,localhost不會解析成ip,也不會占用網卡、網絡資源。
三、子網劃分
1、有類網絡
A、B、C、D、E類IPv4位址
每類IPv4位址都有固定長度的網絡ID,有固定的子網路遮罩
大大降低了IPv4位址的使用率和可用的網絡數
2、無類網絡(VLSM,可變長子網路遮罩)
每個IPv4位址的網絡ID長度都可以不固定
通常把以前的有類網絡稱之為标準網絡,而把網絡ID長度大于對應标準網絡的網絡稱之為“子網”
網絡位址
用來辨別一個有類或無類網絡的位址,是對應網絡或子網的第一個IPv4位址,即“主機ID”部分全為0的IPv4位址
廣播位址
是一個有類或無類網絡中的最後一個IPv4位址,即“主機ID”部分全為1的IPv4位址
主機位址
除了網絡位址和廣播位址這兩個一頭一尾的位址外,中間的其他所有位址都是主機位址,可以直接配置設定給主機使用
IPv4位址字首表示形式
在一個IPv4位址後面先加上一個斜杠(/),然後在這個斜杠後面直接寫出該位址所在網絡的“網絡ID”,或者“子網路遮罩”長度
如:192.168.1.10/24代表的是一個标準的C類網絡IPv4位址,而10.1.0.10/8則代表了一個标準的A類網絡IPv4位址
3、VLSM子網劃分
把原來标準網絡IPv4位址中的“網絡ID”部分向“主機ID”部分借位,把一部分原來屬于“主機ID”部分的位變成“網絡ID”的一部分(通常稱之為“子網ID”)
原來的“網絡ID”+“子網ID”=新“網絡ID”
“子網ID”長度決定了可以劃分子網的數量

全0子網:“全0子網”代表的是對應子網的“子網ID”部分各位都是0,是第一個子網
全1子網:“全1子網”代表的是對應子網的“子網ID”部分各位都是1,是最後一個子網
子網路遮罩是一個網絡或一個子網的重要屬性:
路由器在和相鄰路由器交換路由資訊時,必須把自己所在網絡(或子網)的子網路遮罩告訴相鄰路由器。
路由器的路由表中的每一個項目,除了要給出目的網絡位址外,還必須同時給出該網絡的子網路遮罩。
若一個路由器連接配接在兩個子網上就擁有兩個網絡位址和兩個子網路遮罩。
練習:
1、一公司原來使用的是192.168.1.0/24這個标準網絡,現在想為公司中每個部門(共6個)單獨配置一個子網,其中最大一個部門要配置設定IPv4位址的數量不超過25個。求每個子網的子網路遮罩、位址範圍、網絡位址和廣播位址。
192.168.1.0是C類網絡,預設掩碼為255.255.255.0
子網數: 2^2<6<2^3,就是要像主機位借3個位當作網絡位
子網路遮罩為:/27, 255-(2**5-1)=224 是以掩碼為255.255.255.224
每個子網的可用主機數:主機位還剩下5位:2^5 -2=30>25(減去全是0的網絡位址和全是1廣播位址)
每個子網的位址範圍:
192.168.1.1 - 192.168.1.30 0,31
33 - 62 32,63
65 - 94 64,95
97 - 126 96,127
129 - 158 130,159
161 - 190 161,191
193 - 222 192,223
225 - 254 224,255
就是說192.168.1.30/27和192.168.1.60/27屬于不同網絡,要三層路由能才互通
這個示例是已知要劃分的子網數和最大位址數。具體的劃分方法很簡單,先結合所需的子網數和最大位址數确定子網的“網絡ID”和“主機ID”,然後根據“主機ID”确定子網的位址塊大小,其它的就自然确定了。
下面是具體的計算步驟:
(1)本示例中,部門數為6個,但我們知道VLSM所劃分的子網數都必須是2n數,可以看到與6最接近的就是劃分成8個子網。而劃分8個子網需要向“主機ID”借3位,這樣子網的“主機ID”位數就僅有5位(8-3)了,則每個子網可使用的IPv4位址數為30個(25=32,再減去每個子網中不可配置設定給節點使用的網絡位址和廣播位址),恰好符合該公司中各部門的最大位址數要求。
(2)知道了新“主機ID”大小,也就是知道了各子網的位址塊大小。本示例中新“主機ID”共5位,大小為32(25)。
(3)根據以上得出的位址塊大小,再根據以上節介紹的公式可得出子網路遮罩為:原“網絡ID”(255.255.255).(256-32),即255.255.255.224。
(4)同樣,知道了位址塊大小,也就是知道了每個子網的位址範圍。本示例的位址塊大小為32,也就是把整個原來C類網絡中256個位址按每塊32位址劃分成8等份(要注意的是,第一個位址要從0開始計算),得到的8個子網的位址範圍如下:192.168.1.0~192.168.1.31、192.168.1.32~192.168.1.63、192.168.1.64~192.168.1.95、192.168.1.96~192.168.1.127、192.168.1.128~192.168.1.159、192.168.1.160~192.168.1.191、192.168.1.192~192.168.1.223、192.168.1.224~192.168.1.225。
各子網的位址範圍知道了,自然就知道了它們的網絡位址和廣播位址了。每個子網的網絡位址是對應位址段中的第一個位址,每個子網的廣播位址是對應位址段中的最後一個位址。然後随便選擇其中5個子網使用即可,最好是5個連續的子網,這樣友善進行路由彙總。同時如果你的裝置不支援全0子網和全1子網的話,則不要選擇第一個和最後一個子網。
2、每個子網有不超過58個節點要配置設定IPv4位址,最合适的子網路遮罩是( )。
A:255.255.255.192B:255.255.255.248
C:255.255.255.224D:255.255.255.240
不超過58個主機,肯定是C類位址,标準掩碼為/24
2**5<58<2**6,是以主機位至少要有6位,可以借2位給網絡位,那掩碼為/26,255-(2**6—1)=192
答案:A
3、IPv4位址為202.112.14.137,子網路遮罩為255.255.255.224,求:所在子網的網絡位址和廣播位址各是什麼?
IP: 202.112.14.1000 01001
掩碼:255.255.255.1110 0000
子網:202.112.14.1000 0000
子網數:2^3=8
每個子網的位址範圍:0-31,32-63,64-95,96-127,128-159,160-191,192-223,224-255
答案:網絡位址:202.112.14.128
廣播位址:202.112.14.159
超網(supernetting)
子網劃分是把一個網絡劃分成為多個不同的網絡,而構造超網則是把網絡字首都相同的連續的ip位址組成一個“CIDR位址塊”。
其中CIDR(Classless Inter_Domain Routing)是無分類域間路由選擇。使用超網能夠減少路由表中的項目、減輕路由表的負擔。
CIDR消除了傳統的A類、B類和C類位址以及劃分子網的概念,把32位的IP位址劃分為兩個部分。如:128.14.35.7/20是某個CIDR位址塊中的一個位址,其前20位是網絡字首(用下劃線表示的部分),後面的12位為主機号:
128.14.35.7/20= 10000000 00001110 00100011 00000111
其位址掩碼,也叫子網路遮罩是:11111111 11111111 11110000 00000000 (20個連續的1),即斜線後面的數字就是位址掩碼中1的個數。
若某個公司擁有位址塊 206.0.64.0/18 ,即相當于有64個C類網絡。
再舉個簡單的例子:
192.168.0.0/24 192.168.1.0/24 192.168.2.0/24 192.168.3.0/24 這四個網絡,通過CIDR可以彙總成一個超網192.168.0.0/22 ,因為這四個網絡 的前22 位網絡号相同。
就是向網絡位借主機位咯,增加主機數,
1、利用子網數目計算子網路遮罩
把B類位址172.16.0.0劃分成30個子網絡,它的子網路遮罩是多少?
①将子網絡數目30轉換成二進制表示11110
②統計一下這個二進制的數共有5位
③注意:當二進制數中隻有一個1的時候,所統計的位數需要減1(例如:10000要統計為4位)
④将B類位址的子網路遮罩255.255.0.0主機位址部分的前5位變成1
⑤這就得到了所要的子網路遮罩(11111111.11111111.11111000.00000000)255.255.248.0。
2、利用主機數目計算子網路遮罩
把B類位址172.16.0.0劃分成若幹子網絡,每個子網絡能容納500台主機,它的子網路遮罩是多少?
①把500轉換成二進制表示111110100
②統計一下這個二進制的數共有9位
③将子網路遮罩255.255.255.255從後向前的9位變成0
④這就得到了所要的子網路遮罩(11111111.11111111.11111110.00000000)255.255.254.0。
3、利用子網路遮罩計算最大有效子網數
A類IP位址,子網路遮罩為255.224.0.0,它所能劃分的最大有效子網數是多少?
①将子網路遮罩轉換成二進制表示11111111.11100000.00000000.00000000
②統計一下它的網絡位共有11位
③A類位址網絡位的基礎數是8,二者之間的位數差是3
④最大有效子網數就是2的3次方,即最多可以劃分8個子網絡。
4、利用子網路遮罩計算最大可用主機數
A類IP位址,子網路遮罩為255.252.0.0,将它劃分成若幹子網絡,每個子網絡中可用主機數有多少?
①将子網路遮罩轉換成二進制表示11111111.11111100.00000000.00000000
②統計一下它的主機位共有18位
③最大可用主機數就是2的18次方減2(除去全是0的網絡位址和全是1廣播位址),即每個子網絡最多有262142台主機可用。
5、利用子網路遮罩确定子網絡的起止位址
B類IP位址172.16.0.0,子網路遮罩為255.255.192.0,它所能劃分的子網絡起止位址是多少?
①利用子網路遮罩計算,最多可以劃分2**2個子網絡
②利用子網路遮罩計算,每個子網絡可容納2**14台主機(包括網絡位址和廣播位址)
③用2**14除以2**8(網段内包括網絡位址和廣播位址的全部主機數),結果是2**6
④具體劃分網絡起止方法如下:
172.16.0.0~172.16.63.255
172.16.64.0~172.16.127.255
172.16.128.0~172.16.191.255
172.16.192.0~172.16.255.255
A類IP位址段:1.0.0.0~126.255.255.255 私有位址段:10.0.0.0~10.255.255.255
B類IP位址段:128.0.0.0~191.255.255.255 私有位址段:172.16.0.0~172.31.255.255
C類IP位址段:192.0.0.0~223.255.255.255 私有位址段:192.168.0.0~192.168.255.255