端口号
任何时候,多个进程可能同时使用TCP,UDP和SCTP这三种传输层协议的任何一种。
这三种协议都使用16位的端口号来区分这些进程。
当一个客户想要跟一个服务器联系时,它必须标识想要与之通信的整个服务器,TCP,UDP和SCTP定义了一组众所周知的端口,用于标识众所周知的服务。举例来说,支持FTP的任何TCP/IP实现都把21这个众所周知的端口分配给FTP服务器。
另一方面,客户通常使用短期存活的临时端口,这些端口号通常由传输层协议自动赋予客户。客户通常不关心其临时端口的具体值,而只需确信该端口在所在主机中是唯一就行。传输协议的代码确保这种唯一性。
端口号被划分为以下3个段:
- 众所周知的端口为0~1023。
- 已登记的端口为1024~49151。
- 49152~65535是动态的或私用端口。这就是临时端口。
Unix系统有保留端口的概念,指的是小于1024的任何端口。这些端口只能赋予特权用户进程的套接字。分配使用这些端口的服务器必须以超级用户特权启动。