我們都知道,任何時候多個進程可能同時使用TCP,UDP,SCTP這3種傳輸層協議中的任何一種,這3種協議都使用16位整數的端口號來區分這些進程。
當一個客戶想要跟一個服務器聯繫時,它必須標識想要與之通信的這個服務器。TCP.UDP,SCTP定義了一組衆所周知的端口號用於標識衆所周知的服務。客戶通常使用短期存活的臨時端口,這些端口號通常由傳輸層協議自動賦予客戶我們通常不關心其臨時端口的具體值,而只需確信該端口號在所在主機中是唯一的就行。
任何TCP/IP實現所提供的服務都是1-1023之間的端口號,這些端口號由IANA分配管理,其中低於255的端口號保留用於公共應用;255-1023之間的端口號分配給各個公司,用於特殊應用。
常用的保留TCP端口號有:
HTTP 80, FTP 20/21,Telnet 23,SMTP 25,DNS 53等。
常用的保留UDP端口號有:
DNS 53,TFTP 69,SNMP 161等。
每個TCP報頭都包含源端口號和目的端口號,用於標識和區分源端設備和目的端設備的應用進程。
端口號可分爲3大類:
1.衆所周知端口號爲0~1023.這些端口號由IANA分配和控制,他們綁定於一些服務,可能的話,相同端口號就分配給TCP,UDP和SCTP的同一給定服務,例如,不論TCP還是UDP端口號80都被賦予Web服務器。
2.已登記的端口號爲1024~49151。這些端口號不受IANA控制,不過由IANA登記並提供他們的使用情況清單,以方便整個羣體。可能的話,相同端口號也分配給TCP和UDP的同一給定服務。49151這個上限的引入是爲了給臨時端口留出範圍。
3.動態端口或私有端口號49152~65535.IANA不管這些端口,他們就是我們所稱爲的臨時端口號。