一个端口号由一个16位数字表示,范围0~65535。端口号由IANA负责分配,主要分为3大类:
系统端口(Well known port)
系统端口范围:0~1023
系统端口由IANA负责分配。需要走申请流程,申请手续最为严格。
用户端口(Registered port)
用户端口范围:1024~49151
用户端口由IANA负责分配。需要走申请流程,申请手续相对系统端口来说不那么严格。
动态端口(Private port)
动态端口范围:49152~65535
动态端口不在IANA的分配范围,应用程序可以在不用申请这些端口的情况下使用这些端口,但是,有个问题,因为这些端口可能会被其他应用程序或者操作系统使用,所以,我们不能假定这些端口在任意时间都可用,因此,不能将这些端口用于标示一个服务。
结论
系统端口通常紧密绑定于一些比较常用的服务,用户端口也绑定了其他的许多服务。动态端口不固定分配给某个服务,但是有可能使用前已经被其他服务占用。当使用动态端口的进程退出,端口资源释放。