一、端口的基本概念
- 端口号是16位的非负整数(范围是0 - 65535
- 标准的端日号由Intemet号码分配机构(IANA)分配
二、端口的分类
①熟知端口号(0- 1023)
- 熟知端口号用于识别很多众所周知的服务,例如安全外壳协议(SSH,端口22)、 FTP (端 日20和21)、 Telnet远程终端协议(端日23)、电子邮件/简单邮件传输协议(SMTP,端 日25)、域名系统(DNS,端日53)、超文本传输协议或Web(HTTP和HTTPS,端日80 和443)、交互式邮件访问协议(IMAP和IMAPS,端日143和993)、简单网络管理协议 (SNMP,端口161和162)、轻量级目录访问协议(LDAP,端口389)、以及其他几种服务
- 拥有多个端口的协议(例如HTTP和HTTPS)通常使用不同端口号,这取决于是否将传输层 安全(TLs)与基础的应用层协议共同使用
②注册端口号(1024~49151)
- 注册端口号提供给有特殊权限的客户机或服务器,但IANA会维护一个为特定用途而 保留的注册表,开发新应用时通常应避免使用这些端日号,除非你已购买某些IANA分配的 端口号
- 动态/私有端日号基本不受监管
③临时端口号、动态/私有端口号(49152~65535)
- 在某些情况下(例如在客户 端),端口号的值无关紧要,这是因为它们只是短期被使用。这些端日号又称为临时端口号。
- 它们被认为是临时的,因为客户机只需支持一个应用的客户程序,并不需要被服务器发现以 建立一个连接
三、为什么熟知端口号大多数都是奇数
- 如果我们测试这些标准服务和其他TCP/IP服务(Telnet、 FTP、 SMTP等) 使用的端口号,会发现它们大多数是奇数。这是有历史原困的,这些端口号从 NCP端口号派生而来(NCP是网络控制协议,在TCP之前作为ARPANET的传输 层协议)o NCP虽然简单,但不是全双工的,困此每个应用需要两个连接,并为每 个应用保留奇偶成对的端口号。当TCP和UDP成为标准的传输层协议时,每个应 用只需要一个端口号,困此来自NCP的奇数端口号被使用。