上网第四十二课:第六周复盘------协议篇快问快答
文章目录
- 上网第四十二课:第六周复盘------协议篇快问快答
-
- [一、七层模型 vs 四层模型:到底分几层](#一、七层模型 vs 四层模型:到底分几层)
- [二、IP 系列:门牌号与转发规则](#二、IP 系列:门牌号与转发规则)
- 三、DNS:互联网的电话簿
- 四、TCP:可靠传输的"快递老大哥"
- [五、UDP 与 QUIC:快的代价与补偿](#五、UDP 与 QUIC:快的代价与补偿)
- [六、HTTP 与 HTTPS:规矩和保险](#六、HTTP 与 HTTPS:规矩和保险)
- 七、串联:从回车到显示
- 小结:一句话记住协议篇
- 下期预告
读者留言板炸了:"师傅,这一周 IP、TCP、UDP、HTTP、HTTPS、QUIC、DNS 七大件串下来,我脑子快炸了,能总结总结吗?"今天就把协议篇的硬核知识浓缩成一份快问快答速查表------每条"问"都是面试高频题,每条"答"都是一句话讲透,配合一张知识地图,把六周内容串成一张完整的拼图。

一、七层模型 vs 四层模型:到底分几层
问:OSI 七层模型和 TCP/IP 四层模型,到底用哪个?
答:实际工程中用TCP/IP 四层模型(应用层、传输层、网络层、链路层),OSI 七层是教科书上的"理论标准"------它把应用层拆成三层、链路层拆成两层。面试时记住"TCP/IP 四层是实际在跑的,OSI 七层是讲概念用的"即可。
| TCP/IP 四层 | 对应 OSI 七层 | 本周讲到的协议 |
|---|---|---|
| 应用层 | 应用、表示、会话 | HTTP / HTTPS / DNS / QUIC |
| 传输层 | 传输 | TCP / UDP |
| 网络层 | 网络 | IP / IPv6 / NAT |
| 链路层 | 数据链路、物理 | 以太网 / WiFi |
二、IP 系列:门牌号与转发规则
问:公网 IP 和内网 IP 有什么区别?
答:公网 IP 全球唯一、互联网上能直接路由到;内网 IP(10.x / 172.16-31.x / 192.168.x)只在局域网里用,出网要靠 NAT 转换。家用宽带拿到公网 IP 的越来越少,运营商用 CGNAT 让几百个用户共享一个公网 IP。
问:子网掩码是干什么用的?
答:把 IP 地址切成"网络号 + 主机号"两段,用来判断"这个目标 IP 跟我是否在同一个网段"------在同一个网段就直接二层送达,不在就走网关。CIDR 是子网掩码的简写(如 /24 = 255.255.255.0)。
问:NAT 是怎么让 IPv4 地址"够用"的?
答:NAT 路由器把内网多个 IP + 端口映射到公网一个 IP 的不同端口上,对外的"门牌"是同一个,内部的"住户"靠端口区分。这就是为什么你家 192.168.1.x 的设备能同时上网------NAT 在路由器上做了"翻译"。
问:IPv6 有什么好处?什么时候能用上?
答:IPv6 地址空间 2^128,理论上够每粒沙子分一个 IP,不用 NAT 也能给每个设备分配全球唯一地址。你家的宽带其实早就支持 IPv6 了,只是很多老应用没用起来。
三、DNS:互联网的电话簿
问:DNS 解析的完整过程是什么?
答:浏览器缓存 → 系统缓存 → 本地 DNS 服务器(递归服务器)→ 根 DNS → 顶级域(.com)DNS → 权威 DNS → 返回 IP。递归服务器替你"跑腿",拿到结果后缓存,下次直接命中。
问:DNS 用 TCP 还是 UDP?
答:默认用 UDP 53 端口(查询就一个包,用 TCP 要握三次手太浪费)。当响应数据超过 512 字节(如 DNSSEC)或做区域传送时才用 TCP。
验证 DNS 用的协议,可以用这条命令:
bash
nslookup -type=A www.example.com 223.5.5.5
# 如果抓包看,走的是 UDP 53 端口
四、TCP:可靠传输的"快递老大哥"
问:三次握手为什么是三次,不是两次或四次?
答:三次刚好验证双向收发都通------第一次证明"客户端能发",第二次证明"服务器能收能发",第三次证明"客户端能收"。两次不够,四次多余。
用 Wireshark 抓包看三次握手:
text
# 过滤条件:tcp.flags.syn == 1
# 正常三连:SYN -> SYN-ACK -> ACK
# 只有 SYN 没有 SYN-ACK:服务器防火墙拦了或服务没起
问:四次挥手为什么要四次,不是三次?
答:TCP 是全双工的,每一方向都要单独"申请关闭 + 确认关闭"。A 先说"我不发了"(FIN),B 回"收到,我把剩下的发完"(ACK),B 发完再说"我也不发了"(FIN),A 回"确认"(ACK)------B 的 ACK 和 FIN 之间可能有剩余数据要发,所以不能合并。
问:滑动窗口和拥塞窗口有什么区别?
答:**滑动窗口(rwnd)**是接收方告诉发送方"我还能收多少",做流量控制;**拥塞窗口(cwnd)**是发送方自己根据网络丢包情况估算"网络还能扛多少",做拥塞控制。实际发送量取两者较小值。
问:快重传为什么比超时重传快?
答:超时重传要等 RTO 超时(可能几百毫秒),快重传收到 3 个重复 ACK 就立刻重传(不等超时),省掉了等待时间。SACK 更进一步,只重传丢失的那几段。
查看 TCP 重传统计:
bash
netstat -s | findstr retrans
# 或 Linux: ss -ti
五、UDP 与 QUIC:快的代价与补偿
问:为什么视频会议用 UDP 不用 TCP?
答:实时数据"旧数据没价值"------3 秒前的画面到了也该扔,重传回来反而卡顿。UDP 发了不管,丢了就丢了,换来的是低延迟。花屏一帧无所谓,卡一秒人人骂。
问:QUIC 解决了 UDP 的什么问题?
答:UDP 裸奔不可靠,QUIC 在 UDP 上面重建了"轻装版 TCP+TLS":握手合并(1-RTT / 0-RTT);流隔离(A 流丢包不阻塞 B 流);Connection ID 换网不断线。HTTP/3 就跑在 QUIC 上。
六、HTTP 与 HTTPS:规矩和保险
问:HTTP 的"无状态"是什么意思?
答:HTTP 每次请求都是独立的,服务器不记得你上一次是谁。靠 Cookie 这张"熟客便签"维持登录状态------每次请求都带 Cookie,服务器一看便签就知道"老熟人来了"。
问:HTTPS 比 HTTP 多了什么?
答:多了 TLS 这层"加密锁",保证三件事:机密性 (偷看了也读不懂)、完整性 (改了立刻发现)、身份认证(证书验明正身,防钓鱼)。代价是多一次 TLS 握手(一两百毫秒)。
问:TLS 握手的大致过程?
答:打招呼(报加密算法)→ 服务器亮证书(含公钥+CA 签名)→ 浏览器验证书(根证书验签+域名+有效期)→ 浏览器生成会话密钥用公钥加密发给服务器 → 双方用会话密钥对称加密传数据。非对称传钥匙,对称传数据,快慢兼顾。
七、串联:从回车到显示
问:输入网址到页面显示,经过哪些步骤?
答:URL 解析 → DNS 解析 → TCP 握手 → TLS 握手 → HTTP 请求 → 服务器处理 → 浏览器渲染。七站接力,每站卡壳有对应的排查命令(nslookup / ping / telnet / F12)。
小结:一句话记住协议篇
| 协议 | 一句话 |
|---|---|
| IP | 互联网的门牌号,管"到哪" |
| NAT | 把一个公网门牌分给一百个住户 |
| IPv6 | 门牌号管够,不用 NAT 也行 |
| DNS | 门牌号翻译官,域名变 IP |
| TCP | 挂号信,不丢不漏但慢 |
| UDP | 广播喇叭,快但不保证到 |
| HTTP | 点菜规矩,请求-响应 |
| HTTPS | HTTP+保险箱,加密+验身 |
| QUIC | UDP 上的轻装 TCP,握手快不堵 |
思考题:你手机用 WiFi 看视频流畅,切到 4G 后视频卡了几秒又恢复。哪些协议/机制在这个过程中起了作用?(提示:TCP 连接因 IP 变化断开→重新 DNS→TCP 握手→TLS 握手→恢复传输;如果是 QUIC/HTTP3 应用,Connection ID 让连接不断、直接恢复,几秒就是重连时间。)
下期预告
协议篇收官,进入第四篇章:路由实战与网络安全 。明天开讲第一课:路由原理------数据包是怎么找到路的。路由表长什么样、最长前缀匹配是什么、默认网关为什么叫"最后一跳"------明天见。
本文是上网那点事系列连载第四十二课,从零讲透家庭网络到互联网原理,欢迎关注专栏阅读全部内容。