网络通信基础¶
网络通信的本质是把应用数据封装成一层层报文,通过链路发送到目标,再由目标按相反方向解封装。
封装过程¶
以浏览器访问网站为例:
每一层都会添加自己的头部。头部中包含地址、长度、标志位、校验信息和控制字段。
地址与端口¶
| 名称 | 作用 |
|---|---|
| MAC 地址 | 本地链路内识别网卡 |
| IP 地址 | 跨网络定位主机 |
| 端口 | 定位主机上的进程或服务 |
| 域名 | 便于人类记忆的名称,通过 DNS 解析为地址 |
常见的四元组可以标识一条 TCP/UDP 通信:
客户端与服务端¶
客户端通常主动发起连接,服务端监听固定端口。例如浏览器连接 Web 服务器的 443 端口。客户端源端口通常由系统临时分配。
抓包分析顺序¶
- 确认通信双方 IP 和端口。
- 判断使用 TCP 还是 UDP。
- 查看是否存在 DNS 查询。
- 查看 TCP 握手、重传和关闭。
- 对 TLS 判断证书和 SNI。
- 对应用层提取请求、响应、错误码和正文。
抓包中的单个报文只是片段。分析时应结合完整会话和时间顺序。