关于计算机端口号的迷思
端口号范围
计算机端口号范围:[0,65535],所以我们在开发项目的时候对于端口的指定要在此范围内;
为什么最大65535?
TCP和UDP等传输协议都会用16位来存储源端口号或者目标端口号,所以共2^16=65536个,而端口号从0开始,所以最大65535.
端口号细分
端口号的取值范围是0-1023是预留端口,1024-49151是注册端口,49152-65535是动态或私有端口。
预留端口
系统预留端口的范围是[0,1023],所谓预留端口是指由于历史原因或某些特定服务的需要而预先指定的端口号,这些端口号通常用于一些系统级别的服务,如FTP服务的20和21端口,SSH服务的22端口等。
注册端口
这些端口号也被用于特定的服务和应用程序,但并不像熟知端口那样广泛使用。例如,MySQL数据库的默认端口号是3306。
动态端口
这些端口号通常由客户端随机选择以与服务器通信。这意味着任何应用程序都可以在此范围内选择一个未被使用的端口号作为其通信端口。
端口号0?
计算机端口号0是保留端口号,它的意义在于为将来分配给某个服务或应用程序保留一个端口号。由于端口号的数量有限,并且许多服务和应用程序需要使用不同的端口号进行通信,因此需要对端口号进行管理和分配。保留端口号可以避免未来出现重复分配的情况,确保每个服务或应用程序都有唯一的端口号可用。另外,端口号0也可以用于检测某个服务或应用程序是否正在使用默认端口号,如果它没有使用默认端口号,那么可能会使用其他端口号,这有助于网络管理员进行故障排除和配置管理。