协议端口号(protocol port number)
先来个注意事项 (-> ->)
这种在协议层间的抽象的协议端口是软件端口,和硬件端口是完全不同的概念。硬件端口是不同设备进行交互的接口,而软件端口是应用层的各种协议进程与运输实体进行层间交互的一种地址。
TCP/IP的运输层用一个16位端口号来标志一个端口。端口号只具有本地意义,它只是为了标志本计算机应用层中的各个进程在和运输层交互时的层间接口。在因特网不同计算机中,相同的端口号是没有关联的。16位的端口号可允许有65535个不同的端口号。
1. 服务器端使用的端口号
(1) 一类是熟知端口号(well-known port number)(或系统端口号),数值为0 ~ 1023。可在www.iana.org查到。IANA把这些端口号指派给了TCP/IP最重要的一些应用程序,让所有的用户都知道。当一种新的应用程序出现后,IANA必须为它指派一个熟知端口号,否则因特网上的其他应用进程就无法与它通信。
表:常用的熟知端口号
应用程序 | FTP | TELNET | SMTP | DNS | TFTP | HTTP | SNMP | SNMP(trap) |
---|---|---|---|---|---|---|---|---|
熟知端口号 | 21 | 23 | 25 | 53 | 69 | 80 | 161 | 162 |
(2) 另一类叫做登记端口号,数值为1024 ~ 49151。这类端口号是为没有熟知端口号的应用程序使用的。使用这类端口号必须在IANA按照规定的手续登记,以防止重复。
1. 客户端使用的端口号
数值为49152 ~ 65535。由于这类端口号仅在客户进程运行时才动态选择,因此又叫做短暂端口号。这类端口号是留给客户进程选择暂时使用。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的端口号,因而可以把数据及时发送给客户进程。通信结束后,刚才已使用过的客户端口号就不复存在,这个端口号就可以供其他客户进程使用。