理论课40分钟

25课:端口与套接字

应用程序的通信入口

教学目标

1理解端口号的分类和作用
2掌握套接字的概念
3学会使用netstat查看端口状态

📖 课前导入

一台电脑上可能同时运行着浏览器、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查看网络连接
// 模拟终端 - 点击"执行下一条"或按回车运行命令
// 共 3 条命令,已执行 0
C:\>

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查看本机端口状态,找出占用特定端口的进程,以及排查端口冲突问题

8:00
端口号与netstat实战推荐视频8:00

演示如何用netstat查看本机端口状态,找出占用特定端口的进程,以及排查端口冲突问题

✅ 课堂小测

随堂测验

1/5

HTTP服务的默认端口号是多少?

📋 本课小结

1

端口号:16位数字(0-65535),标识主机上的应用进程。分为知名、注册、动态三段。

2

套接字:IP地址+端口号,唯一标识通信端点。TCP连接由四元组唯一确定。

3

netstat:查看本机端口和连接状态的核心命令,排障必备。

4

常用端口:HTTP(80)、HTTPS(443)、SSH(22)、DNS(53)、FTP(21)等必须记住。