雜談 沒有公網IP的電腦如何與外部通訊

2022-04-07 01:37:27 字數 1419 閱讀 3657

前幾天突然想到的問題,自己先猜測推理了一番,最後在謝希仁版《計算機網路》找到了權威的解答。這裡記錄一下自己的思考過程。

我們知道,網際網路中的兩台電腦要進行通訊,就必須彼此知曉對方的位置。ip位址就是對電腦位址的一種表示。其中公網ip具有全網唯一性,可以唯一標識一台電腦,故可以依此進行定址並通訊。

但是,學生使用校園網,電腦沒有公網ip,只有區域網的ip,不具有全網唯一性,一樣可以訪問外部網路,接收**的響應訊息。我們知道,**肯定是有公網ip的,我們找到它沒問題,問題就在於**是如何找到我們的?

確實我們的電腦沒有公網ip,但是我們區域網的閘道器(有ip位址的路由器)是有的,我們所有訪問外部的請求,都是通過這個閘道器來處理的。所以,從網際網路角度看,是**伺服器、區域網閘道器,這兩個裝置在進行通訊。它們都有公網ip,找到彼此肯定沒問題。也就是說它外部**響應請求的時候不需要找到我們,知道閘道器位址即可。

底層構建ip資料報時,肯定要填寫源位址,問題是源位址填的是什麼,是我們電腦的ip,還是閘道器的ip?

如果是我們電腦的ip,服務端反過來不就找不到我們的電腦了;如果是閘道器的ip,那服務端確實可以找到閘道器,把資料發給它,但是問題來了,閘道器收到資料後,該**給區域網內的哪台電腦呢?

我依稀記得,有個nat位址轉換的概念,可能跟這個有關。於是今天回學校翻開書本,果然就找到了答案。

工作原理圖

下面這張圖就很直觀地展示了nat路由器的工作原理。

1.前面說到的源位址的填寫問題,也得到了解決,即主機a填寫的就是它的ip位址。但是當資料報到達nat路由器時,它會把ip資料報中的這個源位址替換成它自己的ip位址。

2.對於主機b來說,它根本不知道主機a的存在,它只知道它在跟nat路由器進行通訊。

3.我猜測的位址轉換表也確實存在,如表4-10。出乎我意料的是,nat路由器可以有多個公網ip,使得可以有多個區域網主機同時接入網際網路。一般,乙個時刻乙個公網ip只能供一台區域網使用。如果只有乙個公網ip,那情況就是,區域網主機輪流使用這個公網ip。

1.啟動程式監聽某個埠

2.設定進站規則,開放埠

在沒有公網ip的情況下,區域網外的電腦無法通過你的ip位址定位到你,所以無法接受你提供的服務。但是對於區域網內的電腦,這個ip位址還是有效的,這些電腦可以使用你的服務,如ftp檔案服務。

[1] 謝希仁. 計算機網路[m].第六版.北京:電子工業出版社,2013:179-181

如果沒有固定的公網IP

在我們的工作或生活中,可能會遇到以下場景 由於工作需要,需要遠端登入處於某個地市的一台計算機,但是這台計算機沒有vpn接入也沒有固定的公網ip,那麼沒有可接入的ip我們是很難訪問到這台機器的,這個時候我們會怎麼辦?由於智慧型家居在我們的生活中越來越盛行,如果我們的總控制計算機或裝置在我們家中,而又沒...

如果沒有固定的公網IP

在我們的工作或生活中,可能會遇到以下場景 由於工作需要,需要遠端登入處於某個地市的一台計算機,但是這台計算機沒有vpn接入也沒有固定的公網ip,那麼沒有可接入的ip我們是很難訪問到這台機器的,這個時候我們會怎麼辦?由於智慧型家居在我們的生活中越來越盛行,如果我們的總控制計算機或裝置在我們家中,而又沒...

網域名稱與公網IP之間的關係

網路是基於tcp ip協議進行通訊和連線的,每一台主機都有乙個唯一的標識固定的ip位址,以區別在網路上成千上萬個使用者和計算機。網路在區分所有與之相連的網路和主機時,均採用了一種唯 一 通用的位址格式,即每乙個與網路相連線的計算機和伺服器都被指派了乙個獨一無二的位址。為了保證網路上每台計算機的ip位...