网络协议简介¶
网络协议定义通信双方如何交换信息。没有协议,设备即使连在同一条链路上,也无法知道对方发送的数据代表地址、命令、正文还是错误。
协议解决的问题¶
- 寻址:数据发给谁,例如 MAC 地址、IP 地址、端口和域名。
- 封装:上层数据如何放入下层报文。
- 分片与重组:大数据如何拆分和恢复。
- 可靠性:是否需要确认、重传和顺序控制。
- 会话状态:连接如何建立、保持和关闭。
- 安全性:身份认证、完整性和加密如何实现。
- 错误处理:异常如何报告和恢复。
分层理解¶
常见学习方式是按 TCP/IP 模型分层:
| 层次 | 典型协议 | 关注点 |
|---|---|---|
| 网络接口层 | Ethernet、ARP、PPP | 本地链路传输 |
| 网络层 | IP、ICMP、IGMP | 跨网络寻址与路由 |
| 传输层 | TCP、UDP | 端到端进程通信 |
| 应用层 | HTTP、DNS、SSH、FTP | 具体应用语义 |
分层的好处是把复杂通信拆开分析。抓包时可以从外到内依次观察:链路帧、IP 包、TCP/UDP 段、应用层数据。
安全分析中的关注点¶
- 明文协议是否泄露凭据或敏感数据。
- 服务端是否正确验证协议字段长度和状态。
- 客户端是否信任伪造响应。
- 加密协议是否验证证书和主机名。
- 抓包中是否出现异常重传、重定向或错误码。
CTF 网络题常要求从流量、日志或服务交互中恢复协议状态。理解协议比记忆单个工具命令更重要。