一、概念
在网络技术中,端口(Port)包括逻辑端口和物理端口两种类型。物理端口指的是物理存在的端口,如ADSL、Modem、集线器、交换机、路由器上用于连接其他网络设备的接口,如RJ-45端口、SC端口等等。
逻辑端口是指逻辑意义上用于区分服务的端口,如TCP/IP协议中的服务端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等。
由于物理端口和逻辑端口数量较多,为了对端口进行区分,将每个端口进行了编号,这就是端口号。
本文主要来讨论逻辑上的端口号。
二、端口分类
根据不同的端口号,我们将端口分为三类.
1.公认端口
公认端口:0~1023。
这个范围内的端口系统一般保留给一些常用的系统服务,比如WEB服务使用80端口,FTP服务使用21端口。因为这些端口和服务形成了一一对应关系,已被大家所公认,所以这些端口叫做公认端口。
2.注册端口
注册端口:1024~49151。
这个范围内的端口比较松散地绑定于一些服务,也就是说,和公认端口相比,这些端口和服务并没有形成一一对应关系,许多服务可绑定于这些端口,这些端口同样可用于许多其它目的。
3.动态端口
动态端口:49152-65535
这个范围内的端口一般不为服务所使用,它常常被动态分配给客户端,因而这个范围内的端口叫做动态端口。需要注意的是在实际应用中,端口从1024起就开始动态分配了。
三、端口状态
一个端口可以有多个状态。端口的状态不同,在电脑中所起的作用就不相同。
下面介绍几个常见的端口状态:
LISTENING:即端口的监听状态。处于这种状态的端口就是我们常说的监听端口,这种状态的端口一般由某个服务程序打开,等待其它主机来连接,因而这种端口又叫做服务端口。
ESTABLISHED:即端口的连接状态。如果处于监听状态的端口已和其它主机建立了连接,那么端口的“LISTENING”状态就会变为“ESTABLISHED”状态。
SYN_SENT:大多数情况下,我们的电脑会主动打开一个端口去连接其它机器,这时端口的状态就表现为“SYN_SENT”。处于这种状态的端口一般是由客户端程序打开,所以这种端口也叫做客户端口。客户端口如果和服务端口建立了连接,那么端口的状态就会由“SYN_SENT”状态变为“ESTABLISHED”状态。
TIME_WAIT:处于“ESTABLISHED”状态的端口,如果连接被结束,那么端口的状态就会变为“TIME_WAIT”状态,它表示该端口曾经被访问过,现在访问结束了。