教学目标
📖 课前导入
一台电脑上可能同时运行着浏览器、QQ、微信、邮件客户端等多个程序,它们都在使用网络。IP地址标识的是一台主机,那同一台主机上不同的程序怎么区分呢?
答案就是端口号——它标识主机上的具体应用进程。IP地址+端口号的组合叫做套接字(Socket),是网络通信的完整地址。
📚 一、端口号详解
什么是端口号?
端口号(Port Number)是一个16位的数字(0~65535),用于标识主机上的具体应用进程。TCP和UDP各自独立维护端口号空间——即TCP的80端口和UDP的80端口是不同的。
端口号的分类
| 类别 | 范围 | 说明 | 示例 |
|---|---|---|---|
| 知名端口 | 0~1023 | 分配给常用服务,由IANA管理 | HTTP(80), SSH(22) |
| 注册端口 | 1024~49151 | 分配给特定应用,需向IANA注册 | MySQL(3306), RDP(3389) |
| 动态/临时端口 | 49152~65535 | 客户端临时分配,通信结束后释放 | 客户端随机端口 |
常用端口号速查 ⭐必背
20/21
FTP(数据/控制)
22
SSH
23
Telnet
25
SMTP(发邮件)
53
DNS
67/68
DHCP(服务器/客户端)
80
HTTP
110
POP3(收邮件)
143
IMAP(收邮件)
443
HTTPS
3306
MySQL
3389
RDP(远程桌面)
蓝色=TCP,绿色=UDP,DNS同时使用TCP和UDP。
📚 二、套接字(Socket)
什么是套接字?
套接字(Socket)= IP地址 + 端口号,它唯一标识网络中一个应用进程的通信端点。
一个TCP连接由一对套接字唯一确定:
客户端套接字
192.168.1.10:52341
服务器套接字
93.184.216.34:80
客户端的端口52341是操作系统随机分配的临时端口,服务器端口80是HTTP的知名端口。
一个服务器端口可以同时服务多个客户端
一台Web服务器的80端口可以同时处理成千上万个客户端的请求。因为每个TCP连接由四元组唯一标识:
(源IP, 源端口, 目的IP, 目的端口)
不同客户端的源IP和源端口不同,所以即使目的端口都是80,每个连接仍然是唯一的。
📚 三、查看端口状态——netstat命令
netstat常用参数
| 参数 | 作用 |
|---|---|
| -a | 显示所有连接和监听端口 |
| -n | 以数字形式显示地址和端口(不解析域名) |
| -o | 显示关联的进程PID |
| -p tcp | 只显示TCP连接 |
| -s | 按协议显示统计信息 |
TCP连接状态
LISTENING
等待客户端连接
ESTABLISHED
连接已建立,正在通信
SYN_SENT
已发SYN,等待SYN+ACK
SYN_RECEIVED
已收SYN,已发SYN+ACK
FIN_WAIT_1/2
等待关闭确认
TIME_WAIT
等待2MSL后关闭
CLOSE_WAIT
等待本端关闭
LAST_ACK
等待最后一个ACK
CLOSED
连接已关闭
端口号与netstat实战
演示如何用netstat查看本机端口状态,找出占用特定端口的进程,以及排查端口冲突问题
演示如何用netstat查看本机端口状态,找出占用特定端口的进程,以及排查端口冲突问题
✅ 课堂小测
随堂测验
第 1/5 题HTTP服务的默认端口号是多少?
📋 本课小结
端口号:16位数字(0-65535),标识主机上的应用进程。分为知名、注册、动态三段。
套接字:IP地址+端口号,唯一标识通信端点。TCP连接由四元组唯一确定。
netstat:查看本机端口和连接状态的核心命令,排障必备。
常用端口:HTTP(80)、HTTPS(443)、SSH(22)、DNS(53)、FTP(21)等必须记住。