為什麼電腦的ip地址要和網關的ip同一個子網才可以上網?
假設一台電腦通過網線連接路由器(LAN:192.168.1.1 WAN:公網ip)上網,現在設置該電腦的的ip為192.168.0.1,網關為192.168.1.1,DNS為8.8.8.8,發現該電腦不能上網。
已知不能上網的原因是主機ip和網關不在同一子網,問:主機ip和網關不在同一子網就不能上網的原因是什麼?
謝邀。
網關的意義是生成一條默認路由。默認路由的意思就是:當我要通信的對象不在我這個子網裡的時候,我該把報文發送給誰?
在Windows命令行中使用route print命令可以列印出本機的路由表,如下圖,第一條就是默認路由:
默認路由的目標網路是0.0.0.0,掩碼是0.0.0.0表示「全部網路」。所以,如果沒有默認路由,那麼你的通信範圍就僅限於當前的子網了,任何外部的網路,包括你指定的DNS:8.8.8.8都無法訪問,因為你的計算機不知道如何訪問到除子網以外的其它網路。當你指定了網關以後,網關必須跟你計算機在同一個網段,否則,計算機無法計算出如何到達網關,也就是計算機不知道當前子網的出口。
如果網關和你當前計算機不在同一個子網,那麼除非你再指定一個轉發設備,並確保這個轉發設備同時能訪問網關和你的計算機(通常,可以稱之為網橋),那麼你在手動指定一條默認路由,那麼計算機就可以訪問外部網路了。
所以,網關的本質是告訴計算機:當前子網的出口在哪。只有子網相同,計算機才能最終計算出出口。誰邀請我的?這不都兩年前的問題了?
舉個栗子
在邏輯上,192.168.1.101如果想對外發送數據,必須經過192.168.1.1這個關口,稱作「網關」。
那麼相應的在物理上,路由器LAN配置IP為192.168.1.1,電腦IP配置為192.168.1.101,並且電腦與路由器的LAN連接。
此種情況下連接與配置正確。
------分割線------
這就好比從北京開車出發去天津,無論你是從北京長安街(192.168.1.101)出城,還是從北京西環(192.168.1.102)出城,都必須經過北京西城門這個關口(192.168.1.1)才能順利出去。
但是你如果從北京長安街出發(192.168.1.101),想從西安的西城門(192.168.2.1)出去,由於長安街並不通向西安西城門,所以那就沒辦法成行。
同樣的就像你所舉的例子,
從南京的西城門(192.168.0.1)出發,想從北京的西城門出去,同樣無法成行。
------再分割------
事實上,不同的網段(北京與西安)之間並非無法通信,只是缺少已經修好的路線而已。想要跨網段通信就需要配置路由信息,告訴數據轉發者,西安到北京怎麼走就可以了,而這也正是路由的含義所在。
想詳細了解這方面知識,建議按順序補充下列知識:
1,TCP/IP網路基礎2,互聯網交換技術3,路由器技術4,windows server(重點看DNS、DHCP、WEB)就像主機有IP地址一樣,網路是有網路號的,(路由器根據網路號決定轉發目標)如最常見的內網網路號為192.168.1.0。為什麼我們還經常看到子網掩碼255.255.255.0呢。 這個掩碼後八位為0,代表可以容納256個IP地址(主機)。
但是剛才說了,網路號佔用了一個IP。還有廣播號也佔用了最尾部的255(比如主機啟動向DHCP伺服器請求IP地址時就用的廣播,因為他自己沒有IP,他也不知道要把請求發給誰。(額,其實第一個包應該是discover包)所以廣播有時特別有用)。現在題主的問題來了,為什麼還要有子網掩碼這個東西呢?因為網路有隔離管理的需要。一般的時候我們感覺不到。舉個不太恰當的例子(嗯,只是打個比方,→_→),比如美國白宮會有很多部門吧,奧巴馬跟FBI通信的網路是要跟其他普通工作人員的網路隔離開吧,但是呢,他們對外又要表現為同一網路號。所以就需要子網號隔離開咯。就跟酒店一樣,開會在303,知道3樓還不夠,還得找到03號房間才行。只有知道子網號,才能正確的找到目標主機。涉及到具體的應用程序間通信(socket本身就是一種進程間通信的方式)呢,還需要找到正確的監聽埠,額,這是後話。網路理論這一塊是很有意思的,題主有興趣可以看看潘愛民老師的《計算機網路》。推薦閱讀:
※如果電腦用網線連接了路由器,但是我並不知道wifi密碼,如何可以知道wifi密碼呢?
※有哪些性價比高的千兆WAN口雙頻路由器?
※網線從路由器接出來, 再接一個路由器怎麼設置?
※寧靜的家時尚北歐風,華為路由是你家居實用美觀的必備品
※路由器的 USB 介面速率較慢到底是什麼原因啊?
TAG:路由器 |