1. 程式人生 > >計算機網路埠詳解

計算機網路埠詳解

網路埠網路技術中,埠(Port)有好幾種意思。集線器交換機路由器的埠指的是連線其他網路裝置介面,如RJ-45埠、Serial埠等。我們 這裡所指的埠不是指物理意義上的埠,而是特指TCP/IP協議中的埠,是邏輯意義上的埠電腦執行的系統程式,其實就像一個閉合的圓圈,但是電腦是為人服務的,他需要接受一些指令,並且要按照指令調整系統功能來工作,於是系統程式設計者,就把這個圓圈截成好多段,這些線段介面就叫埠(通俗講是斷口,就是中斷),系統執行到這些埠時,一看埠是否開啟或關閉,如果關閉,就是繩子接通了,系統往下執行,如果埠是開啟的,系統就得到命令,有外部資料輸入,接受外部資料並執行網路埠分類TCP埠:TCP是一種面向可連線的
,可靠的,基於位元組流的傳輸層通訊協議.UDP埠:UDP是一種面向無連線的,提供面向事務的簡單不可靠資訊傳送服務協議埠詳解如果把IP地址比作成一棟房子的話,那埠就類似這棟房子的門,一般實際上房子只有幾扇門,但是IP地址確有65536(2^16)個門,每個埠用整數來表示,範圍:0~65535ip能鎖定一臺物理機器,對應著一張網絡卡,外界發來的資料包網絡卡都會接收。但是問題來了,網絡卡給程式提供了介面,你監聽一下我,要是有訊息來了,我就轉發給你。這樣應用程式就能收到資料了。但是問題來了,程式A和程式B都需要監聽網絡卡接發資料,網絡卡說那我把接到的資料都發給你兩,你們自己看著辦吧。好,小A小B都接受了。但是又來了CDEF......,不行了,每個包都被髮到了所有應用程式,每個應用程式都累得不行,最終垮了。


好,那網絡卡說我給你們加個表示吧,我們之間可以用一個號碼來作為標識,我和小A之間就用1來標識,如果外界發給1號標識的資料我就轉發給你,你監聽我的時候得告訴我你監聽的時1,我就轉發1的資料包給你。好了其他的BCD...都自己弄一個標識號,只要不重複就行。這樣大家都省事了。
最後設計到安全,一個標識號只能被一個應用程式監聽,因為如果小A程式和小B同時監聽一個標識號號,那就壞了,我傳的資料都被AB接到,這樣資料安全性就沒辦法保證了。(參考來自知乎https://www.zhihu.com/question/22577025,樓主)
埠機制的由來在不同的機器上實現資料傳輸依靠的是TCP/IP協議,將資料從源機器根據IP地址送到目的機器,在現在大多數的機器上都支援多執行緒(程式)的執行,那麼這麼多程式,又是由哪一個程式負責接收資料包呢,由此埠機制就應運而生埠的作用
本地機器會根據有需求的程式分配協議埠(也就是我們常說的埠),這些埠號是隨機從1024~65535之間產生的,接著源機器給目的機器傳送資料,目的機器收到資料後,會根據報文的埠地址,把資料送到對應的埠處,訊息進入埠就相當於進入了一支隊伍,排著隊,等待被處理。同樣的道理,源機器埠處也是一支隊伍,訊息等待被髮送。剛剛我們提到埠號的隨機分配,可為什麼是大於1024呢,原因是埠號0~1023是分配給固定特殊的網路服務的,如: WWW 選擇 80 而 FTP 則以 21 為正常的聯機通道!顯然我們知道一臺IP地址上的機器可以提供不同的服務,那麼我們怎麼能通過IP地址來判斷我們需要什麼服務呢,顯然不能,實際上是以IP地址+埠號的形式來確定的,需要注意的是,不同機器使用同一種服務的埠號可能不同,當我需要使用WWW服務時,WWW伺服器提供的埠號是80,但是我的請求機器有可能使用的埠號是4433面向連線服務和無連線服務可以先了解面向連線和無連線協議(Connection-Oriented and ConnectionlessProtocols)面向連線服務的主要特點有:面向連線服務要經過三個階段:建立連線,傳輸資料,釋放連線。面向連線服務,可確保資料傳送的次序和傳輸的可靠性無連線服務的特點是:無連線服務只有傳輸資料階段。消除了除資料通訊外的其它開銷。只要傳送實體是活躍的,無須接收實體也是活躍的。它的優點是靈活方便、迅速,特別適合於傳送少量零星的報文,但無連線服務不能防止報文的丟失、重複或失序。區分"面向連線服務"和"無連線服務"的概念區分特別簡單、形象的例子是:打電話和寫信。兩個人如果要通電話,必須先建立連線--撥號,等待應答後才能相互傳遞資訊,最後還要釋放連線--掛電話。寫信就沒有那麼複雜了,地址姓名填好以後直接往郵筒一扔,收信人就能收到。TCP/IP協議在網路層是無連線的(資料包只管往網上發,如何傳輸和到達以及是否到達由網路裝置來管理)。而"埠",是傳輸層的內容,是面向連線的。協議裡面低於1024的埠都有確切的定義,它們對應著因特網上常見的一些服務。