1. 程式人生 > >如何使處於不同區域網的計算機實現遠端通訊

如何使處於不同區域網的計算機實現遠端通訊

我們知道處於同一區域網的兩臺計算機,進行通訊的方式很簡單,可以直接通過區域網內的私有ip定位計算機。但是如果要訪問外網即非本區域網的計算機就相對而言比較複雜。

下邊為了更好的理解這個過程,我從幾個問題說起:

1.要訪問一臺遠端非區域網的計算機,哪些是必須知道的?

         我們知道,網路中IP地址+埠號可以唯一鎖定一臺網路中的計算機。所以,必須要知道這臺計算機在網路中的IP,以及要通訊的埠號。如果這臺計算機處於另一個區域網,則我們無法讀到它的私網ip,但是我們可以得到這個區域網的公網IP及對應的埠號。

2.那通過什麼方式獲得這臺計算機的公網IP和對應的埠號呢?

        據我所瞭解,可以通過使用公共伺服器來達到此目的。比如說,以新浪的伺服器為例,兩臺計算機都可以訪問新浪的伺服器,那麼新浪的伺服器肯定會有兩臺計算機的公網IP及對應的埠號,其實也不一定就是,但肯定是處於兩者之間,進而可以一步步實現通訊的中間路由器的IP及埠號。當需要訪問另一臺計算機時,新浪伺服器會將這臺計算機的公網IP和埠號發給本地計算機的公網IP及埠號,繼而就得到了需要訪問的計算機的埠號和公網IP地址。

3.本地計算機訪問遠端計算機是資料幀中的MAC地址是填寫的什麼?

        本地計算機的源MAC是本地主機的網絡卡MAC地址,目標地址是區域網預設閘道器的MAC地址,IP源地址是主機地址,IP目的地址就是另一臺計算機的公網IP,TCP/UDP裡邊的埠號是本地埠號和另一臺計算機的公網對映的埠號。在 經過NAT(網路地址轉換後),IP源地址變成本地公網IP地址,埠號也為對應的公網埠號,之後每經過一跳,對應的MAC地址即資料幀的幀頭和幀尾會做相應的調整,其他的不會改變。

4.。遠端計算機的公網路由器接收到資料幀後怎麼轉發給指定的計算機

      做相應的NAT轉換, 根據埠和私網的IP地址找到需要通訊的計算機,再將資料幀傳送給指定計算機的相應的埠號。