端口号:
TCP和UDP采用16bit的端口号来识别应用程序。那么这些端口号是如何选择的呢?
服务器一般都是通过知名端口号来识别的。例如,对于每个TCP/IP实现来说,FTP服务器的TCP端口号都是21,每个telnet服务器的TCP端口号都是23,每个FTP(简单文件传送协议)服务器的UDP端口号由internet号分配机构(Internet Assigned Number Authority,IANA)来管理的。
到1992年为止,知名端口号介于1~255之间。256~1023之间的端口号通常是由Unix系统占用的,以提供一些服务。现在IANA管理1~1023之间的端口号。
客户端通常对他所使用的端口号并不关心,只需要保证该端口号在本机上是唯一的就可以了。客户端口号又称作临时端口号。这是因为他通常只是在用户运行该客户程序时才存在,而服务器则只要主机开着的,其服务就一直运行着。
大多数TCP/IP实现给临时端口分配1024~5000之间的端口号。大于5000端口号是为其他服务器预留的。我们可以在后面看见许多这样的给临时端口分配端口的例子。
lgy@lgy-HP:~$ grep telnet /etc/services
telnet 23/tcp
rtelnet 107/tcp # Remote Telnet
rtelnet 107/udp
telnets 992/tcp # Telnet over SSL
telnets 992/udp
tfido 60177/tcp # fidonet EMSI over telnet
lgy@lgy-HP:~$ grep domain /etc/services
domain 53/tcp # Domain Name Server
domain 53/udp
lgy@lgy-HP:~$ grep ftp /etc/services
ftp-data 20/tcp
ftp 21/tcp
tftp 69/udp
sftp 115/tcp
ftps-data 989/tcp # FTP over SSL (data)
ftps 990/tcp
venus-se 2431/udp # udp sftp side effect
codasrv-se 2433/udp # udp sftp side effect
gsiftp 2811/tcp
gsiftp 2811/udp
frox 2121/tcp # frox: caching ftp proxy
zope-ftp 8021/tcp # zope management by ftp
保留端口号:
Unix系统有保留端口号的概念。只有具有超级用户特权的进程才允许给他自己分配一个保留端口号。
这些端口号介于1~1023之间,一些应用程序将他作为客户与服务器之间身份认证的一部分。
其他:
一个互联网是网络的网络。构造互联网的共同基石是路由器,他们在IP层把网络连在一起。地一个字母大写的Internet是指分布在世界各地的大型网络,其中包括1万多个网络和超过100万台主机。
在一个互联网上,每个接口都有IP地址来标识,尽管用户习惯使用主机名而不是IP地址。域名系统为主机名和IP地址之间提供动态的映射。端口号用来标识互相通信的应用程序。服务器使用知名端口号,而客户端使用临时设定的端口号。