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