网络:分层、路由、TCP 与 TLS
先掌握源/目标地址端口和观察位置,再沿 DNS、最长前缀路由、TCP、TLS 分层判断。离线路径证据例把 DNS 失败与缺少回包分开,不连接真实网络。
解析器、权威和缓存
DNS缓存问题要区分系统解析器、浏览器缓存、递归服务器和权威服务器。TTL限制记录可缓存多久,并不使所有观察点同时刷新。A和AAAA是地址,CNAME引导别名查询;NXDOMAIN表示名字不存在,SERVFAIL表示解析失败。保留查询名、类型、响应码和时间,刷新本机缓存无法修复权威配置。
最长前缀与返回路径
路由表通常先按最长前缀匹配,再按策略、度量等选择路径。默认路由只在没有更具体匹配时使用。发出包的路径和返回路径可能不同;客户端能把SYN送出,仍可能因服务端回程缺失而超时。先确认源地址、所处路由表和下一跳,再判断是否需要NAT,不能把增加默认路由当通用修复。
TCP、UDP与超时
TCP握手以SYN、SYN-ACK、ACK建立序列空间,应用收到的是字节流而不是一次send对应一条消息。TCP可靠交付不代表业务事务成功。UDP保留数据报边界,应用自己处理丢失与重排。超时既可能是过滤、回程、拥塞,也可能是服务端处理慢;RST表示某节点主动复位,并不自动证明目标进程不存在。
捕获过滤与显示过滤
Wireshark显示过滤只改变可见包,原文件仍保留全部捕获数据;捕获过滤决定哪些包进入文件,事后无法找回被排除的包。显示表达式ip.addr == 192.0.2.10匹配任一端,ip.src只匹配来源。抓包点决定能看到哪段流量;交换网络中看不到别人的单播通常是正常边界。TLS加密流量不能仅凭包内容读出业务正文。
NAT、ICE与中继边界
ICE收集候选地址并检查可连接的候选对,STUN帮助发现映射,TURN提供中继。不能仅按旧文的四类NAT标签保证打洞一定成功。信令成功与媒体路径成功是两个条件,WebRTC还涉及安全上下文、DTLS和媒体加密。本课程保留WebRTC与Coturn参考,未交付可运行音视频应用,也不继承历史长寿命证书和静态弱口令。
练习与参考解答
练习:同一路由表中有可用的默认路由经G1和192.0.2.0/24经G2,无策略路由。目标192.0.2.8选择哪条?若发出SYN却未见响应,仅据此能否认定DNS错误?补出两个应采集字段。
参考解答
最长前缀选择/24经G2。若本次连接已使用正确地址,SYN无响应不能单凭现象归咎DNS,也不能证明服务没启动。记录源/目标四元组与观察点时间,并对齐服务端收包、回程路由及过滤证据;单端抓不到包仅是该观察点未见。
HTTP 消息、方法、表示与错误判读
HTTP Content-Type 与 Content-Encoding 有何区别,202 和 307 各说明什么? HTTP 语义要与线上编码和传输分开。方法、目标、字段与可选内容组成消息抽象,HTTP/1 的文本行不能直接套成 HTTP/2 的帧图。版本升级不改变“收到成功响应仍需核对业务结果”的要求;旧草稿关于固定浏览器连接数、方法新增年表和推送效果的泛化说法撤回。TCP 提供字节流、UDP 保留数据报边界,不能仅用“效率高低”选择应用协议。OSI 空标题、CORS、证书认证及 SQL/XSS/CSRF 空目录没有教程正文,旧锚点仅保留撤回说明,不声称已迁成安全课程。IP 文本长度也不能单凭“至少39位”确定数据库模型,应区分地址值、前缀、端口和展示形式。
方法决定请求意图:GET 读取表示,HEAD 获取相应元信息而不返回内容,POST 交给资源处理,PUT 替换目标状态,DELETE 请求删除关联,OPTIONS 询问通信选项,CONNECT 建立隧道,TRACE 回显诊断;PATCH 是局部修改的独立扩展。不要把方法简单等同 CRUD 或把超时当作写入未发生。Content-Type 表示媒体类型,Content-Encoding 描述内容编码,Content-Length 表示相应长度信息;旧 IE/Netscape gzip 支持限制与 Servlet 缓冲配方撤回为通用 HTTP 结论。text/html、application/json、application/octet-stream 等是表示类型,不是文件安全保证。
状态分类用于定位响应语义:1xx 中间信息,2xx 成功,3xx 后续处理/重定向,4xx 请求方面错误,5xx 服务端错误。200 不证明业务正确,202 不证明处理完成,204 没有响应内容,206 是部分内容,304 用于条件请求的缓存验证。401 需身份验证,403 拒绝,404 可能不愿披露存在性,405 关联方法限制,409 冲突,412 条件失败,413 内容过大,415 媒体类型不支持;502/503/504 要结合代理链和阶段取证。307/308 保持方法的跳转不能照搬成旧表的“改用 GET”;301/302 的历史行为和 303 的其他资源获取需分别理解。旧整表中 101 必须“升到更高级协议”、305 代理部署建议等简化撤回。
缓存与导航还需区分 Date、Expires、Last-Modified/条件字段、Location、Allow、Set-Cookie 与 WWW-Authenticate;不能把 Server 标识当可信身份,Refresh 扩展也不是定时任务机制。字段处理以HTTP Semantics,RFC 9110为基础,PATCH 见RFC 5789。旧消息截图未逐图验读,不能以其证明线格式正确。
继续阅读
- 应用实践
- 命令与对象入口
- 知识专题