跳转至

网络通信基础

网络通信的本质是把应用数据封装成一层层报文,通过链路发送到目标,再由目标按相反方向解封装。

封装过程

以浏览器访问网站为例:

HTTP 请求
  -> TLS 记录(HTTPS 时)
    -> TCP 段
      -> IP 包
        -> 以太网帧

每一层都会添加自己的头部。头部中包含地址、长度、标志位、校验信息和控制字段。

地址与端口

名称 作用
MAC 地址 本地链路内识别网卡
IP 地址 跨网络定位主机
端口 定位主机上的进程或服务
域名 便于人类记忆的名称,通过 DNS 解析为地址

常见的四元组可以标识一条 TCP/UDP 通信:

源 IP、源端口、目的 IP、目的端口

客户端与服务端

客户端通常主动发起连接,服务端监听固定端口。例如浏览器连接 Web 服务器的 443 端口。客户端源端口通常由系统临时分配。

抓包分析顺序

  1. 确认通信双方 IP 和端口。
  2. 判断使用 TCP 还是 UDP。
  3. 查看是否存在 DNS 查询。
  4. 查看 TCP 握手、重传和关闭。
  5. 对 TLS 判断证书和 SNI。
  6. 对应用层提取请求、响应、错误码和正文。

抓包中的单个报文只是片段。分析时应结合完整会话和时间顺序。