上网第四十二课:第六周复盘——协议篇快问快答

上网第四十二课:第六周复盘------协议篇快问快答

文章目录

读者留言板炸了:"师傅,这一周 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 让连接不断、直接恢复,几秒就是重连时间。)

下期预告

协议篇收官,进入第四篇章:路由实战与网络安全 。明天开讲第一课:路由原理------数据包是怎么找到路的。路由表长什么样、最长前缀匹配是什么、默认网关为什么叫"最后一跳"------明天见。


本文是上网那点事系列连载第四十二课,从零讲透家庭网络到互联网原理,欢迎关注专栏阅读全部内容。

相关推荐
青春不朽5122 小时前
requests 超时、重试、SSL 报错?9 个高频问题与一整张排错对照表
网络·网络协议·ssl
天天进步20154 小时前
Caddy 实战:5 分钟给域名开启 HTTPS,自动申请 SSL 证书并反向代理
网络协议·https·ssl
xixingzhe27 小时前
正确认知HTTPS:并非万能加密,通信安全需要多层防护
网络协议·安全·https
网络小江7 小时前
组网第九课:光纤与光接口——一根玻璃丝,把千里外的机房“连“起来
网络协议
XiaoMaqqqq18 小时前
市面上正规的IP驱动产业新场景新工具哪家强
运维·python·网络协议·tcp/ip
ShyanZh19 小时前
【Python3基础】19-Socket 与 TCP、UDP 编程
python·网络协议·tcp/ip·udp
DP DPharness21 小时前
StudyMate 从安装到第一节课的完整操作路径
人工智能·websocket·网络协议·智能手机·dpharness
剑锋所指,所向披靡!1 天前
HTTP服务器的基本相关概念
服务器·网络协议·http
2301_777998341 天前
TCP协议:滑动窗口与流量控制
服务器·网络·网络协议·tcp/ip·php