來源丨經(jīng)授權(quán)轉(zhuǎn)自 小白debug(ID:xiaobaidebug) 來講個故事。 小張今天很興奮,說什么也要請大家喝奶茶。 因為他說他感覺要跟喜歡的女生小呂修成正果了。 一問為什么。 他耳朵都紅了,說'我覺得小呂在暗示我了,她說她喜歡看阿凡達,正好我長得就像阿凡達'。 聽了讓人皺眉。 他繼續(xù)說:'她說她喜歡射手座,正好我就是' 我撓撓頭:'行,別說了,懂了。她住上海,你也住上海,你兩算是同居了” 他愣了一會,看了看我:'別說這種話,但你說的其實有點道理,上次她讓我?guī)退揠娔X,我發(fā)現(xiàn)她家的ip是192.168.xx.xx,巧了,我家的也是,我懷疑我們住的很近'。 很感動。 我甚至沒敢告訴他,我家里的IP也是192.168開頭的,我猜你家的也是,就現(xiàn)在正在看這篇文章的你。 但問題就來了,為什么大家的IP都是192.168.xx.xx? 我們今天來聊下這個話題。 我們知道,網(wǎng)絡(luò)通訊的本質(zhì)就是收發(fā)數(shù)據(jù)包。如果說收發(fā)數(shù)據(jù)包就跟收發(fā)快遞一樣。那IP地址就類似于快遞上填的收件地址和發(fā)件地址一樣,有了它,路由器就可以開始充當快遞員的角色,在這個紛繁復雜的網(wǎng)絡(luò)世界里找到該由誰來接收這個數(shù)據(jù)包。 ![]()
這個IP大概長這樣。 ![]() 在控制臺里執(zhí)行 $ ifconfig 說白了,它就是個特殊點的編號,用于在互聯(lián)網(wǎng)中唯一定位到某臺機子。 為了表示這個編號,IP地址一共分為 貌似。。。有點少? 2021年全球就有 ![]() 為此好多年前,就在說 IPv6用了更多的字節(jié)數(shù),因此能表示更多的地址。大概長這樣。 ![]() 是不是很陌生,感覺沒怎么見過。 這就對了。 大家有沒有發(fā)現(xiàn),用了這么多年,大部分人其實還在用IPV4地址,不是說要耗盡了嗎? 為什么大家還一直在用IPV4? 先別急,我們再聊個前置知識點,IP地址的分類。 IP地址的分類 為了更好的管理這42億個IP地址的用途。我們應該也在教科書上看過這樣一張IP分類的圖。 大概的意思是 網(wǎng)絡(luò)號和主機號的關(guān)系,就像是某個停車場編號和停車位號的關(guān)系。一個城市里有很多停車場,而停車場里又有很多個停車位。每個停車位可以停一輛車,這里的一輛車,其實就是一臺電腦(主機)。 大型停車場少,但是能停的車巨多,對應A類地址的網(wǎng)絡(luò)號少,但是主機號多。 小型停車場到處都是,但是一般能停的車就少,對應C類地址的網(wǎng)絡(luò)號多,但主機號少。 大佬們一開始這么劃分網(wǎng)絡(luò),其實也是為了方便管理,比如A類地址,是給大型組織機構(gòu)用的,主機地址的位數(shù)高達 這個差距就有點懸殊了,放在今天就不太合理了,我開個網(wǎng)吧可能都不止200臺機子對吧,用C類嫌主機號少,用A類又嫌主機號太多。因此現(xiàn)在這套分類機制其實已經(jīng)很少用了。 取而代之的是方案是,將所謂的ABC分類直接取消,只保留網(wǎng)絡(luò)號和主機號,并且網(wǎng)絡(luò)號的位數(shù)也不像以前限制的那么死,用一個斜杠告訴用戶多少位是網(wǎng)絡(luò)號,其余的都是主機號。比如 ![]() 這就是,所謂的CIDR,(Classless Inter-Domain Routing, 無類別域間路由)。 IP地址不夠用了嗎? 那既然加法不行,那我們就用乘法。但不管你怎么去分類,在32位下的限制下,你就算玩得再花,只要將 啥意思?
假設(shè)將6拆成 一開始,我們理解的網(wǎng)絡(luò)世界只有一層,每人一個IP,那就只有6個人能上網(wǎng)。 ![]() 現(xiàn)在我們將網(wǎng)絡(luò)分成兩層。像下面這樣。 ![]() 每2個人構(gòu)成一個'小網(wǎng)絡(luò)',對外共用一個IP,而內(nèi)部每個人的IP都不一樣,4個小網(wǎng)絡(luò)共同構(gòu)成一個'大網(wǎng)絡(luò)'。比如小明的電腦是1號網(wǎng)絡(luò)下的6號機子,小紅的電腦是2號網(wǎng)絡(luò)下的6號機子。這樣也能做到唯一標識某臺機子的效果。 像上面這樣,每個2人構(gòu)成的小網(wǎng)絡(luò),就叫做局域網(wǎng),也就是所謂的內(nèi)網(wǎng),用的IP(上面的5,6)也叫私有IP或內(nèi)網(wǎng)IP,而上面提到的'大網(wǎng)絡(luò)',則是廣域網(wǎng),用的IP則被稱為公有IP或公網(wǎng)IP。 通過這種方式,原本只能讓6人上網(wǎng),現(xiàn)在卻能讓8人同時上網(wǎng)。這還是IP只有6個的情況下,如果讓數(shù)字變回42億,那就能支持遠大于42億的機子上網(wǎng)了。 ![]() 按照這樣的思路,回到上面的ABC類IP地址,大佬們也將它們分成了私有和公有兩部分。 在
這時候,你再看看C類里的私有地址范圍,眼熟不?
于是,就變成了一條街或者一個小區(qū),又或者小區(qū)內(nèi)的幾幢樓共用一個公網(wǎng)IP,而內(nèi)部就用 ![]() 但其實只要你想,A類和B類的私有地址也是可以用在局域網(wǎng)里的。 你到了公司里執(zhí)行下 這是因為在公司內(nèi)網(wǎng)里,需要的IP數(shù)量會更大,172和10開頭的IP能表示的主機更多,比如10開頭的能表示1600w+個。 就不說別的,光A類地址,只拿了個10開頭的網(wǎng)絡(luò)號出來當內(nèi)網(wǎng)IP就能表示1600w+個主機號,其余的100+個A類網(wǎng)絡(luò)號都拿來當公網(wǎng)地址。按上面提到算法去進行個相乘, 而且上面只考慮了一層局域網(wǎng),其實局域網(wǎng)內(nèi)還能再分成多層,局域網(wǎng)內(nèi)再嵌套局域網(wǎng)。就像下面這樣,這樣能用的IP數(shù)量就更多了。 ![]() 所以說,IP地址雖然不多,但其實完全夠用,這也是我們一直以來遲遲不切換成IPv6的原因。夠用,能跑,為什么要換? 聊到這里,其實就回答了文章標題的問題,為什么大家的IP都是192.168開頭的,是因為IPv4地址有限,為了有效利用這些有限的地址,我們可以將網(wǎng)絡(luò)分為局域網(wǎng)和廣域網(wǎng),將IP分為了私有IP和公網(wǎng)IP,一個局域網(wǎng)里的N多臺機器都可以共用一個廣域網(wǎng)IP,從而達到了'做乘法'的效果,大大增加了'可用IP數(shù)量',小區(qū)里幾幢樓可以共用一個公網(wǎng)IP,且因為設(shè)備數(shù)量不多,一般選用C類的私有地址,也就是 但問題就來了,怎么知道我的公網(wǎng)IP地址是什么? 查詢自己的公網(wǎng)IP地址 在家里的電腦上,通過 $ ifconfig 但如果你想知道你的公網(wǎng)IP地址的話,該怎么做呢? 有個簡單的方法。你直接在 ![]()
如果你用的是某里云的機子。你也會發(fā)現(xiàn)你的機子既有私有IP地址,也有一個公有IP地址。 ![]()
當你去ping上面的私有地址
而公網(wǎng)地址 $ ping 46.101.121.11 這時候,用過他們家服務器的人可能會有個疑問。 只要申請一臺云服務,某里云就能給你一個公網(wǎng)IP地址,怎么做到的? 這。。。這么富的嗎? 其實,某里云跟管IP的機構(gòu),租用了的一批IP地址,在你需要的時候,就能付費租給你,不用了也能回收分配給其他人。 而且公網(wǎng)IP地址下面,其實也可以掛多臺云服務器,用上文提到的方式,讓多臺云服務器共用一個IP。 因此不太需要擔心IP耗盡的問題。
差不多了,給大家留個問題吧 上面提到,網(wǎng)絡(luò)分為廣域網(wǎng)和局域網(wǎng),IP分為公有和私有。一個局域網(wǎng)內(nèi)所有機子對外使用一個公有IP,對內(nèi)則使用私有IP。 那么問題來了,公網(wǎng)里不使用私有IP,一個局域網(wǎng)里的私有IP想訪問局域網(wǎng)外的公有IP,必然要做個IP轉(zhuǎn)換,這是在哪里做的轉(zhuǎn)換呢? ![]() 2、暴雪國服正式停服,與網(wǎng)易14年合作結(jié)束!數(shù)百萬玩家紛紛祭奠,再見青春 4、微軟停止發(fā)布舊版Win10更新,網(wǎng)友:正合我意 ![]() |
|
來自: 斷劍圖書館 > 《技術(shù)人生》