計算機網(wǎng)絡(luò)與通信原理——端口介紹

世界上有各種各樣的計算機操作系統(tǒng),各種各樣的編碼方式,那么我們要實現(xiàn)全球的通信,是不是要建立一個普適的網(wǎng)絡(luò)模型,來滿足各種各樣不同的計算機之間的通信需求?這時,TCP/IP協(xié)議定義的網(wǎng)絡(luò)模型和國際標準化組織ISO定義的OSI(Open System Interconnection開放式系統(tǒng)互聯(lián))模型就應(yīng)運而生了。TCP/IP協(xié)議要早于OSI模型,并且現(xiàn)實生活中主要用到的是TCP/IP協(xié)議,OSI模型幾乎沒有實現(xiàn)過,不過OSI模型仍有其理論價值。
1. OSI模型
OSI模型定義了7個層,每個層提供不同的服務(wù)并且將功能封裝起來供上一層使用。

這張圖表示了每個層傳輸?shù)臄?shù)據(jù)單元名稱以及每一層用到的協(xié)議。
這張圖表示在最高層是原始數(shù)據(jù),每往下一層就需要封裝一次,傳輸?shù)臄?shù)據(jù)單元會越來越大。
2. TCP/IP
TCP/IP協(xié)議是四層模型,它與OSI模型的對比如下
TCP/IP四層模型由上到下我們也通常稱為:應(yīng)用層、傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層。
在簡單了解了網(wǎng)絡(luò)模型的層次,我們看看計算機之間是怎么來通信的吧!
3. 尋址
地址其實在計算機網(wǎng)絡(luò)通信中占有非常重要的作用,每臺計算機都有它唯一的地址——IP地址。比如百度服務(wù)器(一臺性能很好的計算機)的IP地址220.181.112.244,它的別名,也就是域名為www.baidu.com。
其實我們熟知的IP地址只是地址的一種,它工作在網(wǎng)絡(luò)層,在傳輸?shù)倪^程中是不可變的。
地址分為四種:物理地址、邏輯地址、端口地址和專有地址。
A. 物理地址
物理地址工作在最底層,即數(shù)據(jù)鏈路層和物理層的幀(一種數(shù)據(jù)單位,由比特構(gòu)成)中,它每一次傳輸都會改變,比如從幀A一臺計算機a到一個路由器b使用了一組地址,該幀A在路由器b到路由器c中就會換另一組地址,它是可變的。
B. 邏輯地址
即世界上所有的計算機都有一個32位的地址(IPv4),它唯一的表示每一臺計算機,后來IPv4地址不夠用了,就出現(xiàn)了IPv6地址,128位長。只需記住一點,無論IPv4還是IPv6地址都是邏輯地址,它們是唯一的表示一臺計算機的IP地址。它工作在網(wǎng)絡(luò)層,在傳輸?shù)倪^程中是不會變的。
C. 端口地址
我們通過邏輯地址實現(xiàn)了計算機之間的通信,但是這樣并沒有什么意義,比如你在打英雄聯(lián)盟,這時你需要把數(shù)據(jù)傳輸?shù)狡渌婕业挠嬎銠C上還是傳輸?shù)狡渌婕业挠⑿勐?lián)盟上呢?你打出了100點傷害,這樣一個數(shù)字,傳到計算機上毫無意義,但是傳輸?shù)接⑿勐?lián)盟中,英雄聯(lián)盟就知道你造成了100點傷害,并在游戲里計算。
這樣一個簡單的例子說明計算機之間的通信實質(zhì)上是不同計算機之間進程的通信。而端口號就是唯一的表示這些進程的編號。(進程:運行著的程序)端口號有16位,0到65535,一共有2^16個端口號。通過端口號可以找到計算機運行的應(yīng)用程序。如Web服務(wù)器對應(yīng)的端口號是80,我們通過80端口實現(xiàn)了上網(wǎng)的功能。端口地址工作在傳輸層,在傳輸?shù)倪^程中是不會變的,端口地址就是端口號。
D. 專用地址
最典型的例子就是郵箱地址,每個郵箱被郵箱地址唯一指定,它會被轉(zhuǎn)換成對應(yīng)的端口地址和邏輯地址進行傳輸。專用地址工作在應(yīng)用層,在傳輸?shù)倪^程中是不會變的。
我們可以發(fā)現(xiàn),計算機地址分為4類剛好對應(yīng) TCP/IP4層模型,由上到下分別為:
專用地址——應(yīng)用層
端口地址——傳輸層
邏輯地址——網(wǎng)絡(luò)層
物理地址——數(shù)據(jù)鏈路層和物理層
4. 端口
所以我們常說的端口指的是我們訪問主機上的某一進程的標識號,通過端口實現(xiàn)了計算機之間進程的通信。例如,我們訪問百度主頁,實際上是我們計算機上的瀏覽器這一進程訪問百度服務(wù)器(一臺計算機)上的Web服務(wù)器(一款軟件,也就是一個大型程序)進程。
Web服務(wù)器對應(yīng)的端口號是80。就是說我們訪問一個Web頁面的正確輸入應(yīng)該是IP:80。比如百度服務(wù)器(一臺計算機)的IP地址220.181.112.244,也可以通過域名www.baidu.com訪問(域名就是IP地址的),要訪問百度頁面(百度服務(wù)器上的Web程序)正確的輸入應(yīng)該是220.181.112.244:80或www.baidu.com:80。而我們通過在瀏覽器上輸入www.baidu.com就能訪問百度頁面的原因是瀏覽器默認訪問80端口。