首页 > 技术文章 > 端口号的分类

daanzhijia 2017-06-15 20:25 原文

一、什么是端口

  计算机“端口”[1] 是英文port的义译,可以认为是计算机与外界通讯交流的出口。其中硬件领域的端口又称接口,如:USB端口、串行端口等。软件领域的端口一般指网络中面向连接服务和无连接服务的通信协议端口,是一种抽象的软件结构,包括一些数据结构和I/O(基本输入输出)缓冲区。

二、什么是端口号:

1、什么是端口号
  在一台主机上运行了多个服务,主机为了区分这些服务,所以给每个服务都分配一个端口号,端口号唯一的标识这台主机上的某个服务。
IP地址唯一标识网络上的一台主机,服务器用通过端口号来区分不同的网络服务。所以IP地址+端口号就表示网络中唯一的一个服务。
  客户端通常对它所使用的端口号并不关心,只要保证该端口在本主机上是唯一的就可以了。所以客户端端口号又叫做临时端口号,这是因为他们通常只是在用户运行该客户程序时临时分配的。而服务器则不同,因为服务器是要被许多客户进行访问的,所以服务器的端口号应该是众所周知的。
  端口号的范围从0~65535。任何TCP/IP实现所提供的服务都使用1~1023之间的端口,大多数TCP/IP实现给临时端口分配1023~5000之间的端口号,大于5000的端口号是为其他服务器预留的。
  比如:http端口号是80,ftp端口号是21,ssh是22。由于端口号数量比较多,所以要对端口号进行分类管理。
  在/etc/services中保存着各种服务的端口号。

三、端口的分类

按端口号可分为3大类:

  (1)公认端口(Well Known Ports):从0到1023,它们紧密绑定(binding)于一些服务。通常这些端口的通讯明确表明了某种服务的协议。例如:80端口实际上总是HTTP通讯。
  (2)注册端口(Registered Ports):从1024到49151。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。例如:许多系统处理动态端口从1024左右开始。
  (3)动态和/或私有端口(Dynamic and/or Private Ports):从49152到65535。理论上,不应为服务分配这些端口。实际上,机器通常从1024起分配动态端口。但也有例外:SUN的RPC端口从32768开始。
  更详细见百度百科
  http://baike.baidu.com/item/端口#4

推荐阅读