端口號(port number):16位整數(shù),用來區(qū)分不同的進(jìn)程。
服務(wù)器使用的端口號:TCP和UDP定義了一組眾所周知的端口(well-known port),用于標(biāo)識眾所周知的服務(wù)。
客戶端使用的端口號:通常使用短期存活的臨時端口(ephemeral port)。這些端口號通常由傳輸層協(xié)議自動賦予客戶。客戶一般不關(guān)心其臨時端口的具體值,而只需確信它在所在主機(jī)中是唯一的就行。傳輸層協(xié)議的代碼確保這種唯一性。
端口號被劃分成三段:
(1)眾所周知的端口為0-1023. 這些端口由IANA分配和控制。可能的話,相同的端口號就分配給TCP、UDP和SCTP的同一給定服務(wù)。例如,端口號80不論是TCP還是UDP都被賦予Web服務(wù)器,盡管目前它所有的實現(xiàn)都單純使用TCP。
(2)已登記的端口(registered port)為1024-49151. 這些端口不受IANA控制,不過由IANA登記并提供它們的使用情況清單,以方便整個群體。可能的話,相同端口號也分配給TCP和UDP的同一給定服務(wù)。
(3)動態(tài)的(dynamic)或私用的(PRivate)端口:49152-65535. IANA不管這些端口,它們就是我們所稱的臨時端口。(49152這個魔數(shù)是65535的四分之三。)
注意:
套接口對和套接口
一個TCP連接的套接口對(socket pair)是一個定義該連接的兩個端點的四元組:本地ip地址、本地TCP端口號、遠(yuǎn)地IP地址、遠(yuǎn)地TCP端口號。一個套接口對唯一標(biāo)識互聯(lián)網(wǎng)上的一個TCP連接。
就SCTP而言,一個關(guān)聯(lián)由一組本地IP地址、一個本地端口、一組遠(yuǎn)地IP地址、一個遠(yuǎn)地端口標(biāo)識。
標(biāo)識每個端點的兩個值(IP地址和端口號)通常稱為一個套接口(socket)。
舉例來說,應(yīng)用程序通過bind函數(shù)為TCP、UDP或SCTP套接口指定本地IP地址和本地端口號。
新聞熱點
疑難解答