我们都知道,任何时候多个进程可能同时使用TCP,UDP,SCTP这3种传输层协议中的任何一种,这3种协议都使用16位整数的端口号来区分这些进程。

       当一个客户想要跟一个服务器联系时,它必须标识想要与之通信的这个服务器。TCP.UDP,SCTP定义了一组众所周知的端口号用于标识众所周知的服务。客户通常使用短期存活的临时端口,这些端口号通常由传输层协议自动赋予客户我们通常不关心其临时端口的具体值,而只需确信该端口号在所在主机中是唯一的就行。

       任何TCP/IP实现所提供的服务都是1-1023之间的端口号,这些端口号由IANA分配管理,其中低于255的端口号保留用于公共应用;255-1023之间的端口号分配给各个公司,用于特殊应用。

       常用的保留TCP端口号有:

             HTTP 80, FTP 20/21,Telnet 23,SMTP 25,DNS 53等。

       常用的保留UDP端口号有:

              DNS 53,TFTP 69,SNMP 161等。

       每个TCP报头都包含源端口号和目的端口号,用于标识和区分源端设备和目的端设备的应用进程。


端口号可分为3大类:

       1.众所周知端口号为0~1023.这些端口号由IANA分配和控制,他们绑定于一些服务,可能的话,相同端口号就分配给TCP,UDP和SCTP的同一给定服务,例如,不论TCP还是UDP端口号80都被赋予Web服务器。

       2.已登记的端口号为1024~49151。这些端口号不受IANA控制,不过由IANA登记并提供他们的使用情况清单,以方便整个群体。可能的话,相同端口号也分配给TCP和UDP的同一给定服务。49151这个上限的引入是为了给临时端口留出范围。

       3.动态端口或私有端口号49152~65535.IANA不管这些端口,他们就是我们所称为的临时端口号。