计算机“端口”是英文port的义译,可以认为是计算机与外界通讯交流的出口。按端口号可分为3大类:公认端口(Well Known Ports);注册端口(Registered Ports);动态和/私有端口(Dynamic and/or Private Ports)
硬件领域的端口又称接口,如:USB端口、串行端口等。软件领域的端口一般指网络中面向连接服务和无连接服务的通信协议端口,是一种抽象的软件结构,包括一些数据结构和I/O(基本输入输出)缓冲区。
程序(无论是操作系统还是应用软件)需要与外部通信时,为了区别不同的程序,所以用端口号来加以区分,当然了这是端口很通俗的解释,教科书上的解释是:‘用来标识通信设备双方的连接端点。端口用来跟踪网络中不同的会话。当一台主机与一台同时运行多种服务的服务器通信时,端口号就是必不可少的。’(这段话摘自《思科网络技术学院教程》)。当数据包进入电脑时,它不知道这个包是哪个程序所需要的,只有用端口号标识一下,电脑才知道这是哪个程序需要的。
按端口号可分为3大类:
(1)公认端口:从0到1023,它们紧密绑定于一些服务。通常这些端口的通讯明确表明了某种服务的协议。例如:80端口实际上总是HTTP通讯。
(2)注册端口:从1024到49151。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。例如:许多系统处理动态端口从1024左右开始。
(3)动态和/或私有端口:从49152到65535。理论上,不应为服务分配这些端口。实际上,机器通常从1024起分配动态端口。