問題解答
問題1:小編 0.0.0.0與127.0.0.1有什么區(qū)別?
其實這個問題問的很好,說明對網(wǎng)絡(luò)有概念了,但是還是有點不夠有深度,那我來補充一下:
localhost、127.0.0.1、0.0.0.0和本機地址的區(qū)別?
localhost
localhost其實是域名,對于IPv4,windows默認將localhost指向127.0.0.1,而如果是IPv6,將指向 [::1]
,但是localhost并不等于127.0.0.1,localhost指向的IP地址是可以配置的,如果大家閑得蛋疼的話,可以隨意配置試試,一般在hosts文件中。
不信我們可以來試試 ping localhost
。
127.0.0.1
問題來了,那什么是127.0.0.1?好像有點繞、、、
首先我們要好好地看看上一篇文章,要先知道一個概念,凡是以127開頭的IP地址,都是回環(huán)地址(Loop back address),其所在的回環(huán)接口一般可以被理解為虛擬網(wǎng)卡,并不是真正網(wǎng)卡接口。主要是用于測試本機的協(xié)議棧配置是否正常,這樣子就不需要經(jīng)過真正的網(wǎng)卡。
所謂的回環(huán)地址,通俗的講,就是我們在主機上發(fā)送給127開頭的IP地址的數(shù)據(jù)包會被發(fā)送的主機自己接收,根本傳不出去,外部設(shè)備也無法通過回環(huán)地址訪問到本機。
我們也可以試試,隨意ping一個以127開頭的地址,那都是回環(huán)地址。
ping 127.0.0.1
ping 127.0.0.2
ping 127.0.0.10
ping 127.25.52.10
ping 127.xxx.xxx.xxx
0.0.0.0
首先,0.0.0.0是不能被ping通的,0.0.0.0就是任何地址IPADDRANY,任何地址的意思,也包括環(huán)回地址,它表示本機中所有的IPv4地址。
它有什么用呢?
在服務(wù)器中,監(jiān)聽0.0.0.0的端口,就是監(jiān)聽本機中所有IP的端口。不管主機有多少個網(wǎng)口,多少個IP,如果監(jiān)聽本機的0.0.0.0上的端口,就等于監(jiān)聽機器上的所有IP端口。數(shù)據(jù)報的目的地址只要是機器上的一個IP地址,就能被接收到。
在路由中,0.0.0.0表示的是默認路由,即當(dāng)路由表中沒有找到完全匹配的路由的時候所對應(yīng)的路由。作用是幫助路由器發(fā)送路由表中無法查詢的包,路由表中無法查詢的包都將送到全零網(wǎng)絡(luò)的路由中去。
DHCP分配前,表示本機。
從上一篇文章我提到:
IP地址32bit全為0的地址(0.0.0.0)表示的是本網(wǎng)絡(luò)本主機,這個IP地址在IP數(shù)據(jù)報中只能用作源IP地址,這發(fā)生在當(dāng)設(shè)備啟動時但又不知道自己的IP地址情況下。在使用DHCP分配IP地址的網(wǎng)絡(luò)環(huán)境中,這樣的地址是很常見的,主機為了獲得一個可用的IP地址,就給DHCP服務(wù)器發(fā)送IP數(shù)據(jù)報,并用這樣的地址(0.0.0.0)作為源地址,目的地址為255.255.255.255(因為主機這時還不知道DHCP服務(wù)器的IP地址),然后DHCP服務(wù)器就會知道這個主機暫時沒有IP地址,那么就會分配一個IP給這個主機。
比如在LwIP中,我們使用HDCP動態(tài)獲取IP地址,就是這樣子實現(xiàn)的。
就簡單提一下好了(DHCP依賴UDP協(xié)議):
IPADDRBROADCAST 就是255.255.255.255。
IP4ADDRANY 就是 0.0.0.0。
udp_sendto_if_src(dhcp_pcb, p_out, IP_ADDR_BROADCAST, LWIP_IANA_PORT_DHCP_SERVER, netif, IP4_ADDR_ANY);
總之:
綜合起來可以說0.0.0.0就是任意地址.....
本機地址
其實我覺得本機地址并不是一個規(guī)范的叫法,應(yīng)該指的是“本機物理網(wǎng)卡所綁定的網(wǎng)絡(luò)協(xié)議地址”,這是與網(wǎng)卡綁定的地址。
本機地址通常僅指在同一個局域網(wǎng)內(nèi),能同時被外部設(shè)備訪問和本機訪問的那些IP地址(可能不止一個)。像127.0.0.1這種一般是不被當(dāng)作本機IP的。本機IP是與具體的網(wǎng)絡(luò)接口綁定的,比如以太網(wǎng)卡、無線網(wǎng)卡或者PPP/PPPoE撥號網(wǎng)絡(luò)的虛擬網(wǎng)卡,想要主機正常工作都要綁定一個地址,否則其他設(shè)備就不知道如何訪問它。
問題2:A類是0-127,其中0和127不是A類的,還有126個其中3個是特殊用的,不是應(yīng)該還有123個?怎么是125個?
可能是我沒說清楚,A類地址是包括0和127開頭的IP地址,因此A類地址有128個,但是事實上,能用的A類地址不包括0和127,所以我說0和127不是有效的A 類網(wǎng)絡(luò)地址號,因為他們是特殊的IP地址,除此之外,還有 10 開頭的IP地址也是被保留下來了,原因我也不知道,這是規(guī)定的。
類別 | 地址范圍 | 網(wǎng)絡(luò)號個數(shù) |
---|---|---|
A類 | 10.0.0.0~10.255.255.255 | 1 |
B類 | 172.16.0.0~172.31.255.255 | 16 |
C類 | 192.168.0.0~192.169.255.255 | 256 |
上面說的這些IP地址,是專用的網(wǎng)絡(luò)地址,那什么是專用網(wǎng)絡(luò)?簡單來說,就是你自己的網(wǎng)絡(luò),比如我可以在一個區(qū)域內(nèi)自行組網(wǎng),假設(shè)就用常見的C類IP地址,192.168.0.10,我可以在一個區(qū)域內(nèi)搭建很多個以這個地址為核心的網(wǎng)絡(luò),比如192.168.0.11、192.168.0.12,反正就是私有的,無需驗證,就是局域網(wǎng)。
專用網(wǎng)絡(luò)不和其他網(wǎng)絡(luò)共享資源:可以有獨立的IP地址空間,這種地址不需要申請獲得。由于接入專用網(wǎng)絡(luò)的子網(wǎng)都是內(nèi)部子網(wǎng),因此發(fā)送端和接收端的身份無需鑒別。
但是這種網(wǎng)絡(luò)IP地址是不允許進入外網(wǎng)(公網(wǎng)),只有合法的IP地址才能進入外網(wǎng),詳情見我另一篇文章。
使用 ipconfig
看看我們電腦的IP地址是什么?很明顯,它是一個私有地址,可能有人又問了。那為什么我的電腦能上網(wǎng),詳情還是看我另一篇文章吧:TCP/IP協(xié)議棧掃盲班
所有,綜上所述,A類IP地址中 0、10、127開頭的地址的3個網(wǎng)絡(luò)號在外網(wǎng)上是不能使用的,因此只有125個網(wǎng)絡(luò)號。
-
IPv6
+關(guān)注
關(guān)注
6文章
689瀏覽量
59389 -
ip地址
+關(guān)注
關(guān)注
0文章
301瀏覽量
17032 -
IPv4
+關(guān)注
關(guān)注
0文章
142瀏覽量
19890
發(fā)布評論請先 登錄
相關(guān)推薦
評論