計算機網絡與通信原理——端口

我們知道,世界上有各種各樣的計算機操作系統 ,各種各樣的編碼方式,那麼我們要實現全球的通信,是不是要建立一個普適的網絡模型,來滿足各種各樣不同的計算機之間的通信需求?這時,TCP/IP協議定義的網絡模型和國際標準化組織ISO定義的OSI(Open System Interconnection開放式系統互聯)模型就應運而生了。TCP/IP協議要早於OSI模型,並且現實生活中主要用到的是TCP/IP協議,OSI模型幾乎沒有實現過,不過OSI模型仍有其理論價值。

一、OSI模型

OSI模型定義了七個層,每個層提供不同的服務並且將功能封裝起來供上一層使用。

計算機網絡與通信原理——端口


這張圖表示了每個層傳輸的數據單元名稱以及每一層用到的協議

計算機網絡與通信原理——端口


這張圖表示在最高層是原始數據,每往下一層就需要封裝一次,傳輸的數據單元就會越來越大。

二、TCP/IP

TCP/IP協議是四層模型,它與OSI模型的對比如下

計算機網絡與通信原理——端口


TCP/IP四層模型由上到下我們也通常稱為:應用層、傳輸層、網絡層、數據鏈路層。

在簡單瞭解了網絡模型的層次,我們看看計算機之間是怎麼來通信的吧!

三、尋址

大家都知道,逛淘寶買東西需要提供什麼呀?自己的收貨地址!不論是顯示生活中的信件、快遞還是網絡中計算機之間的通信,我們都需要地址對吧,地址其實在計算機網絡通信裡佔有非常重要的地位。想想生活中你的家是不是有一個唯一的地址?其實每臺計算機也有它唯一的地址——IP地址(邏輯地址)。比如百度服務器(一臺性能很好的計算機)的IP地址220.181.112.244,它的別名,也就是域名為www.baidu.com。

其實我們熟知的IP地址只是地址的一種,它工作在網絡層,在傳輸的過程中是不可變的。

地址分為四種:物理地址、邏輯地址、端口地址和專有地址。

a.物理地址

物理地址工作在最底層,即數據鏈路層和物理層的幀(frame,一種數據單位,由比特構成)中,它每一次傳輸都會改變,比如從幀A一臺計算機a到一個路由器b使用了一組地址,該幀A在路由器b到路由器c中就會換另一組地址,它是可變的。

b.邏輯地址

即世界上所有的計算機都有一個32位的地址(IPv4),它唯一的表示每一臺計算機,後來IPv4地址不夠用了,就出現了IPv6地址,128位長。只需記住一點,無論IPv4還是IPv6地址都是邏輯地址,它們是唯一的表示一臺計算機的IP地址。它工作在網絡層,在傳輸的過程中是不會變的。

c.端口地址

我們通過邏輯地址實現了計算機之間的通信,但是這樣並沒有什麼意義,比如你在打英雄聯盟,這時你需要把數據傳輸到其他玩家的計算機上還是傳輸到其他玩家的英雄聯盟上呢?你打出了100點傷害,這樣一個數字,傳到計算機上毫無意義,但是傳輸到英雄聯盟中,英雄聯盟就知道你造成了100點傷害,並在遊戲裡計算。這樣一個簡單的例子說明計算機之間的通信實質上是不同計算機之間進程的通信。而端口號就是唯一的表示這些進程的編號。(進程:運行著的程序)端口號有16位,0到65535,一共有2^16個端口號。通過端口號可以找到計算機運行的應用程序。如Web服務器對應的端口號是80,我們通過80端口實現了上網的功能。端口地址工作在傳輸層,在傳輸的過程中是不會變的,端口地址就是端口號。

d.專用地址

最典型的例子就是郵箱地址,每個郵箱被郵箱地址唯一指定,它會被轉換成對應的端口地址和邏輯地址進行傳輸。專用地址工作在應用層,在傳輸的過程中是不會變的。

我們可以發現,計算機地址分為4類剛好對應 TCP/IP4層模型,由上到下分別為:

專用地址——應用層

端口地址——傳輸層

邏輯地址——網絡層

物理地址——數據鏈路層和物理層

四、端口

所以我們常說的端口指的是我們訪問主機上的某一進程的標識號,通過端口實現了計算機之間進程的通信。例如,我們訪問百度主頁,實際上是我們計算機上的瀏覽器這一進程訪問百度服務器(一臺計算機)上的Web服務器(一款軟件,也就是一個大型程序)進程。

Web服務器對應的端口號是80。就是說我們訪問一個Web頁面的正確輸入應該是IP:80。比如百度服務器(一臺計算機)的IP地址220.181.112.244,也可以通過域名www.baidu.com訪問(域名就是IP地址的),要訪問百度頁面(百度服務器上的Web程序)正確的輸入應該是220.181.112.244:80或www.baidu.com:80。而我們通過在瀏覽器上輸入www.baidu.com就能訪問百度頁面的原因是瀏覽器默認訪問80端口。



分享到:


相關文章: