對於網絡方面的知識,本身是一竅不通,因而打算開始學習網絡,遇到了一個問題,如何區別 localhost,127.0.0.1 和本機IP這三者?因而,在百度上面學習了一番,寫下這篇文章,記錄下本身的學習成果。web
環回地址: 主機用於向自身發送通訊的一個特殊地址(也就是一個特殊的目的地址)。shell
能夠這麼說:同一臺主機上的兩項服務若使用環回地址而非分配的主機地址,就能夠繞開 TCP/IP協議棧 的下層。(也就是說:不用再經過什麼鏈路層,物理層,以太網傳出去了,而是能夠直接在本身的 網絡層,運輸層 進行處理了)網絡
IPv4的環回地址爲: 127.0.0.0 到127.255.255.255 都是環回地址(只是有兩個特殊的保留),此地址中的任何地址都不會出如今網絡中svg
網絡號爲127的地址 根本就不是一個網絡地址(由於產生的 IP 數據報就不會到達外部網絡接口中,是不離開主機的包)oop
當操做系統初始化本機的 TCP/IP 協議棧時,設置協議棧自己的 IP 地址爲 127.0.0.1(保留地址),並注入路由表 。當IP層接收到目的地址爲 127.0.0.1(準確的說是:網絡號爲 127 的 IP )的數據包時,不調用網卡驅動進行二次封裝,而是當即轉發到本機 IP 層進行處理,因爲不涉及底層操做。所以,ping 127.0.0.1 通常做爲測試本機 TCP/IP 協議棧正常與否的判斷之一。學習
因此說:127.0.0.1 是保留地址之一,只是被常常的使用,來檢驗本機 TCP/IP 協議棧而已測試
若是咱們能夠 ping 通的話,就說明:本機的網卡和 IP 協議安裝都沒有問題。(跟咱們當前主機有沒有聯網沒有一點關係)spa
127.0.0.1 這個地址一般分配給 loopback 接口。loopback 是一個特殊的網絡接口(可理解成虛擬網卡),用於本機中各個應用之間的網絡交互。只要操做系統的網絡組件是正常的,loopback 就能工做。Windows 中看不到這個接口,Linux 中這個接口叫 lo:操作系統
#ifconfig eth0 Link encap:Ethernet hwaddr 00:00:00:00:00:00 inet addr :192.168.0.1 Bcase:192.168.0.255 Mask:255.255.255.0 ...... lo Link encap:Local Loopback inetaddr: 127.0.0.1 Mask: 255.0.0.0 ......
localhost: 首先是一個域名(如同:www.baidu.com ),也是本機地址,它能夠被配置爲任意的 IP 地址(也就是說,能夠經過 hosts 這個文件進行更改的),不過一般狀況下都指向:(以下)
IPv4: 指向 127.0.0.1.net
IPv6: 指向 [::1]
cmd 輸入: ping localhost ,便可看到對應的主機地址
「本機地址」並非一個規範的名詞。一般狀況下,指的是「本機物理網卡所綁定的網絡協議地址」。因爲目前經常使用網絡協議只剩下了 IPV4,IPX/Apple Tak 消失了,IPV6 還沒普及,因此一般僅指 IP 地址甚至 ipv4 地址。通常狀況下,不會把 127.0.0.1 看成本機地址。
本機地址是與具體的網絡接口綁定的。好比以太網卡、無線網卡或者 PPP/PPPoE 撥號網絡的虛擬網卡,想要正常工做都要綁定一個地址,不然其餘設備就不知道如何訪問它。
局域網內能夠設置固定的IP地址,也能夠隨機獲得不一樣的IP地址,能夠人爲控制。
在互聯網通常都是電信商隨機分配一個IP,每次撥號的IP地址都是不一樣的,是不可控的。從新撥號上網或重啓路由器,IP地址就會產生變化。
IP地址是可變的,電腦的MAC地址纔是不變的。
最後,從開發度來看
參考連接:
https://blog.csdn.net/weixin_43970743/article/details/89670998
做者:文小白