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