20. 应用层协议族与默认端口(热度 291 / 280 · 进阶)
Q: 列举常见应用层协议、作用与默认端口。
A:
协议与端口总表
| 协议 | 作用 | 传输层 | 端口 |
|---|---|---|---|
| HTTP | 网页传输 | TCP | 80 |
| HTTPS | 加密网页传输 | TCP(HTTP/3 为 UDP/QUIC) | 443 |
| DNS | 域名解析 | UDP(大响应/区域传送 TCP) | 53 |
| FTP | 文件传输(控制/数据双连接) | TCP | 21(控制)/20(主动数据) |
| SSH | 安全远程登录 | TCP | 22 |
| SMTP | 发送邮件 | TCP | 25 / 587(提交) |
| POP3 | 收邮件(下载后本地管理) | TCP | 110 |
| IMAP | 收邮件(服务器端管理/多端同步) | TCP | 143 |
| DHCP | 动态分配 IP | UDP | 67(服务端)/68(客户端) |
| SNMP | 网络管理 | UDP | 161 / 162(Trap) |
| Telnet | 远程登录(明文,已淘汰) | TCP | 23 |
| 相关加密版 | SMTPS/ POP3S/ IMAPS 等 | TCP | 465/995/993 等 |
补充:NTP 123/UDP、Redis 6379、MySQL 3306、PostgreSQL 5432、Kafka 9092;HTTP/3 仍常用 443 但走 UDP/QUIC。
协议细节加分
FTP 主动 vs 被动
- 主动模式: 客户端连接 21 建控制连接;传输时服务器用 20 端口主动连接客户端的数据端口。NAT/防火墙后常失败(外部主动入站被拦)。
- 被动模式(PASV): 服务器告知一个随机高端口,客户端主动连过去。更适合 NAT/防火墙,现代客户端默认更常见。
- 控制连接始终在线传命令;数据连接单独建立传文件/目录列表。
DHCP 四步(DORA)
- Discover(客户端广播,尚无 IP,目的 255.255.255.255)
- Offer(服务器提供 IP 等)
- Request(客户端请求选用)
- ACK(服务器确认)
DNS: 查询默认 UDP 53;区域传送 AXFR/IXFR 用 TCP 53。
邮件三件套: SMTP 发;POP3 拉到本地;IMAP 留在服务器多端同步。企业环境常见 TLS 变体端口。
设计动机
- 知名端口(0–1023): 客户端无需事先约定即可找到标准服务。
- 注册端口(1024–49151)与动态/私有端口(49152–65535): 应用注册与客户端临时源端口。
- 控制/数据分离(FTP): 命令通道稳定,数据通道可按需建立、支持多文件与目录。
- UDP 选择(DNS/DHCP/SNMP): 小消息、广播/查询-响应、低延迟;重要大传输再升级 TCP。
常见追问
追问 1:FTP 为什么两个连接?主动被动区别?为何 NAT 下被动更好?
- 答题要点: 控制/数据分离便于命令与传输并行、多文件。主动是服务器连客户端(入站难);被动是客户端连服务器协商端口(出站易通过 NAT/防火墙)。
追问 2:TCP 53 和 UDP 53 会冲突吗?
- 答题要点: 不会。内核 socket 以协议+端口等区分,可并存。对应主库第 72 题。
追问 3:DHCP 客户端还没 IP,怎么发 Discover?
- 答题要点: 使用源 0.0.0.0、目的 255.255.255.255 的广播;服务器 Offer 后经 DORA 完成配置。跨网段靠 DHCP 中继(giaddr)。
易错点
| 易错说法 | 纠正 |
|---|---|
| 「HTTPS 端口不是 443」 | 默认 443;HTTP/3 仍是 443 但传输 UDP |
| 「FTP 数据固定 20」 | 主动模式常见 20;被动模式是协商高端口 |
| 「DNS 只有 UDP」 | 大响应/区域传送 TCP |
| 「SSH 和 Telnet 差不多」 | SSH 加密认证,Telnet 明文已淘汰 |
| 「端口号决定安全性」 | 端口是约定;安全靠协议本身(TLS/SSH) |
与选择题对照
- 主库 150: 第 72–77 题(端口与 FTP 模式)、第 65 题(用 UDP 的应用)、第 57 题(DHCPDISCOVER 目的地址)、第 79–83 题(DNS)、第 74/91 题(HTTP/HTTPS)、第 134 题(SNMP)、第 75 题(SMTP/POP3 端口)。
- 补题 16: 补-14(SMTP/POP3/IMAP 功能与端口)、补-15(广域网 ATM 53 字节信元,对比分组概念)、补-16(网管 FCAPS,SNMP 背景)。
- 口述联动: 选择题背端口数字;面试要能讲 FTP 主动/被动、DHCP DORA、DNS TCP/UDP 切换。
工程 / 抓包背景
- 探测端口:bash
ss -lntup telnet example.com 443 # 或 nc -vz host port curl -v telnet://127.0.0.1:22 - 抓包: Wireshark 过滤
dns、ftp、ftp-data、dhcp、ssl/tls、ssh。 - Nginx: 80/443 监听;stream 模块可代理非 HTTP(如 TCP 代理)。
- curl:
curl -v ftp://...(支持 FTP)、curl -v https://...;dig +short查 DNS。 - 安全检查: 线上不要暴露 Telnet/FTP 明文;管理端口限制来源 IP;DNS 用 DoH/DoT 时关注 443 上的名称解析流量。