先來個注意事項 (-> ->)服務器
這種在協議層間的抽象的協議端口是軟件端口,和硬件端口是徹底不一樣的概念。硬件端口是不一樣設備進行交互的接口,而軟件端口是應用層的各類協議進程與運輸實體進行層間交互的一種地址。接口
TCP/IP的運輸層用一個16位端口號來標誌一個端口。端口號只具備本地意義,它只是爲了標誌本計算機應用層中的各個進程在和運輸層交互時的層間接口。在因特網不一樣計算機中,相同的端口號是沒有關聯的。16位的端口號可容許有65535個不一樣的端口號。進程
(1) 一類是熟知端口號(well-known port number)(或系統端口號),數值爲0 ~ 1023。可在www.iana.org查到。IANA把這些端口號指派給了TCP/IP最重要的一些應用程序,讓全部的用戶都知道。當一種新的應用程序出現後,IANA必須爲它指派一個熟知端口號,不然因特網上的其餘應用進程就沒法與它通訊。get
應用程序 | FTP | TELNET | SMTP | DNS | TFTP | HTTP | SNMP | SNMP(trap) |
---|---|---|---|---|---|---|---|---|
熟知端口號 | 21 | 23 | 25 | 53 | 69 | 80 | 161 | 162 |
(2) 另外一類叫作登記端口號,數值爲1024 ~ 49151。這類端口號是爲沒有熟知端口號的應用程序使用的。使用這類端口號必須在IANA按照規定的手續登記,以防止重複。table
數值爲49152 ~ 65535。因爲這類端口號僅在客戶進程運行時才動態選擇,所以又叫作短暫端口號。這類端口號是留給客戶進程選擇暫時使用。當服務器進程收到客戶進程的報文時,就知道了客戶進程所使用的端口號,於是能夠把數據及時發送給客戶進程。通訊結束後,剛纔已使用過的客戶端口號就不復存在,這個端口號就能夠供其餘客戶進程使用。class