問題描述 既然子網(wǎng)掩碼是為了讓路由器能夠決定一個(gè)數(shù)據(jù)包在局域網(wǎng)內(nèi)發(fā)送還是發(fā)到公網(wǎng),那么按道理只有路由器需要知道子網(wǎng)掩碼,為什么在固定IP時(shí)每臺(tái)計(jì)算機(jī)都需要單獨(dú)設(shè)置子網(wǎng)掩碼?有沒有什么情況同一局域網(wǎng)內(nèi)各計(jì)算機(jī)所設(shè)置的子網(wǎng)掩碼有不同的?
正文 有一種網(wǎng)絡(luò)場(chǎng)景,電腦其實(shí)不需要要用網(wǎng)絡(luò)掩碼的,這個(gè)網(wǎng)絡(luò)場(chǎng)景就是電腦通過PPP撥號(hào)上網(wǎng)。
電腦PPP撥號(hào)上網(wǎng) 同學(xué)們會(huì)很疑惑,為何PPP撥號(hào)上網(wǎng),就不需要網(wǎng)絡(luò)掩碼? 在電腦眼里只有2種通信
還有嗎? 沒有了!
電腦通過撥號(hào)上網(wǎng)獲得IP = 6.6.6.6,不需要網(wǎng)絡(luò)掩碼,看看電腦能否判斷出是以上哪種通信方式?
簡(jiǎn)單的二叉樹判斷邏輯,如果電腦訪問 IP = 6.6.6.6,那么就是和自己通信。TCP/IP協(xié)議棧將要發(fā)送的IP報(bào)文在體內(nèi)循環(huán)一下,又被自己接收了回來。 如果電腦訪問的IP ≠6.6.6.6,那么就是與其它電腦通信。TCP/IP協(xié)議棧將要發(fā)送的IP報(bào)文,朝著撥號(hào)接口的方向向下流動(dòng),順著網(wǎng)線/光纖流動(dòng)到盡頭。至于對(duì)端如何處理,壓根不需要關(guān)心,也關(guān)心不了。如同射出去的箭、潑出去的水,天要下雨,女神要嫁人,隨她去吧。。。 是不是這樣?
但是,電腦連入以太網(wǎng)、或無線局域網(wǎng),卻面臨著三種通信方式。
自己與自己的通信 與自己相同網(wǎng)段的電腦通信 與除了以上兩種的其它電腦通信
這里有三個(gè)判斷分支,不依靠網(wǎng)絡(luò)掩碼的幫助,單純依靠對(duì)方IP是否和自己相同的時(shí)代結(jié)束了!
電腦連入以太網(wǎng),獲得IP = 6.6.6.6,網(wǎng)絡(luò)掩碼 = 255.255.255.0,網(wǎng)關(guān) = 6.6.6.1,看看電腦是如何完成三個(gè)分支的判斷邏輯。
自己與自己的通信 電腦訪問 IP = 6.6.6.6,那么就是和自己通信,和上文一樣的處理。
與自己相同網(wǎng)段的電腦通信 電腦訪問 IP = 6.6.6.8,使用網(wǎng)絡(luò)掩碼255.255.255.0的“255.255.255”,從左到右對(duì)齊掩蓋6.6.6.8,被遮住的數(shù)字為“6.6.6”,這個(gè)“6.6.6”就是對(duì)方的網(wǎng)段,和自己的是相同的。 相同網(wǎng)段的通信,需要使用ARP廣播獲取對(duì)方的MAC地址。成功獲得之后,TCP/IP協(xié)議棧完成了以太網(wǎng)頭的封裝,就可以將封裝好的報(bào)文朝著網(wǎng)卡接口的方向向下流動(dòng),順著網(wǎng)線/無線流動(dòng)出去,最后被對(duì)方接收。
與除了以上兩種的其它電腦通信 電腦訪問IP = 8.8.8.8,使用網(wǎng)絡(luò)掩碼255.255.255.0的“255.255.255”,從左到右對(duì)齊掩蓋8.8.8..8,被遮住的數(shù)字為“8.8.8”,而自己的卻是“6.6.6”,很顯然8.8.8 ≠6.6.6,這是不同網(wǎng)段的通信。
既然被訪問的主機(jī)位于另外的網(wǎng)段(廣播域),很顯然不可能通過ARP廣播來發(fā)現(xiàn)對(duì)方的MAC地址,對(duì)嗎?
電腦遇到這種情況,唯一的選擇就是求助網(wǎng)關(guān)。網(wǎng)關(guān)的存在價(jià)值,就是幫助電腦完成不同網(wǎng)段的通信,否則要你網(wǎng)關(guān)有何用啊?
既然求助于網(wǎng)關(guān),需要先知道網(wǎng)關(guān)的MAC地址。
網(wǎng)關(guān)的網(wǎng)段 = 6.6.6,和自己是一摸一樣的,所以是相同網(wǎng)段(廣播域),那么使用ARP廣播就可以獲得了。
成功獲得了網(wǎng)關(guān)的MAC地址,就可以將訪問IP = 8.8.8.8的IP報(bào)文打包了,目的MAC = 網(wǎng)關(guān)的MAC。TCP/IP協(xié)議棧就將打包好的報(bào)文,朝著網(wǎng)卡接口的方向向下流動(dòng),順著網(wǎng)線/無線流動(dòng)到網(wǎng)關(guān)。
至于網(wǎng)關(guān)如何處理,也不需要關(guān)心,因?yàn)殡娔X已經(jīng)成功完成自己的判斷邏輯,完成了自己的任務(wù)。
網(wǎng)關(guān)的歷史使命 互聯(lián)網(wǎng)由億萬萬個(gè)不同網(wǎng)段(廣播域)融合在一起的大型網(wǎng)絡(luò),網(wǎng)關(guān)通常連接著多個(gè)廣播域,使得不同廣播域主機(jī)之間的通信成為可能。
廣播報(bào)文到了網(wǎng)關(guān),生命就走到了終點(diǎn)。只有單播報(bào)文才有可能跨越網(wǎng)關(guān),在不同廣播域之間傳播!
|