当在浏览器地址栏输入 baidu.com 并回车,首页“秒开”的背后,家庭网络里发生了大量协同工作:DHCP 给设备发地址、ARP 解析 MAC、DNS 解析域名、CIDR 判断同网段、NAT 出公网、回包再映射……这篇通识按照真实链路,把每一步拆开讲清,折腾软路由前先把底层搞透。
一、家庭网络基线拓扑
典型家用网络:
- 运营商光猫(可能桥接或路由模式)
- 自购路由器:
WAN
接光猫、LAN
接交换机/Wi-Fi - 路由器拨号获取公网(PPPoE)或从光猫拿内网地址
- 路由器
LAN
侧地址:192.168.1.1
(示例),既是管理地址,也是全网默认网关
口径统一:下文示例使用
192.168.1.0/24
作为家庭网段,网关 192.168.1.1
;示例主机拿到 192.168.1.3
。
二、DHCP:自动获取 IP 的“入网第一步”
新设备插网线或连上 Wi-Fi 时,若设置“自动获取 IP”,会走 DHCP 流程:
1)请求如何发出
- 传输层:UDP,源端口
68
→ 目标端口67
- 网络层:源 IP
0.0.0.0
→ 目标 IP255.255.255.255
(广播) - 链路层:源 MAC 为本机网卡 MAC,目标 MAC 为全
FF:FF:FF:FF:FF:FF
(广播) - 交换机只看 MAC,不看 IP/端口;见到广播就泛洪到所有端口
2)路由器上的 DHCP 服务响应
- 路由器内置 DHCP 服务监听 UDP/67,收到请求后从地址池挑一个空闲地址(如
192.168.1.3
) - 下发信息:IP、子网掩码、网关、DNS、租约(例如 12 小时)
- 续租:租约过半尝试续期;若失败,会在四分之一、八分之一时再次尝试;到期未续上则释放
3)常见异常与判断
- 拿到
169.254.x.x
:说明局域网内没有可用 DHCP 响应(APIPA 自保网段) - 多台设备开 DHCP:地址冲突、掉线、间歇上不去网(避免“多 DHCP 服务器”)
- 公共场所租期短(几分钟到十几分钟),家庭默认常见 12 小时,可按需调整或做“静态地址绑定”
补充:也可手动配置静态 IP(例如
192.168.1.20
/ 掩码 255.255.255.0
/ 网关 192.168.1.1
/ DNS 指向网关),或在路由器做 DHCP 静态绑定(按 MAC → 永远发同一 IP)。
三、ARP:找网关的 MAC,然后才能发包
设备要把 DNS 请求交给网关,需要先知道网关的 MAC:
- 发送 ARP 广播:“我是 192.168.1.3,谁是 192.168.1.1?”
- 路由器应答:“我是 192.168.1.1,我的 MAC 是 BB:…”,双方缓存对方 IP→MAC 映射(ARP 缓存)
- 后续与网关通信,直接查缓存填目标 MAC,无需再次广播(直到缓存过期)
四、DNS:把域名换成 IP
浏览器要访问 baidu.com
,首先发起 DNS 查询:
- 传输层:UDP,源端口(随机,如
9527
)→ 目标端口53
- 网络层:源 IP
192.168.1.3
→ 目标 IP(本地配置的 DNS,一般指向路由器192.168.1.1
) - 路由器作为 DNS 转发器/缓存:向上游(运营商 DNS/自定义 DNS)查询 → 回答并缓存 TTL
- 客户端也会缓存 TTL 时间内的解析结果,避免重复查询
提示:家中做软路由时,DNS 经常叠加分流/广告过滤。确保 关键站点 解析链路可靠(国内/国外),否则会出现“能 ping 不能打开”的现象。
五、CIDR 与同网段判断:该直达还是找网关
以 192.168.1.3/24
举例:
- /24 表示前 24 位是网络号(即
192.168.1
),后 8 位是主机号 - 目标 IP 若满足前 24 位相同 → 同网段直达(通过目标主机的 MAC)
- 否则 → 交给默认网关 转发(因为出网或跨网段)
访问百度服务器 IP 与本机不在同网段 → 把报文交给网关。
六、建立到服务器的连接:HTTP/HTTPS 与三次握手(简述)
- HTTP 默认端口
80/TCP
,HTTPS 默认端口443/TCP
- 浏览器用随机本地端口(例如
9527
)发起 TCP 连接(三次握手)后,发送请求报文 - 现代网站几乎都走 HTTPS,真实流程会多出 TLS 握手(证书验证、密钥协商)
本文重心在家庭局域网链路,TCP/TLS 细节不展开。
七、NAT:把内网地址换成公网地址再出门
内网地址(如 192.168.1.3
)不能在公网路由,路由器在出 WAN
前做 NAT:
- 将源 IP
192.168.1.3
改为路由器WAN
口公网 IP(如2.2.2.2
) - 通常会把源端口重写为一个空闲端口(如
4134
),并在 NAT 表里记录映射关系:
192.168.1.3:9527 → 2.2.2.2:4134
- 公网回来的响应包命中
2.2.2.2:4134
→ 查 NAT 表还原回192.168.1.3:9527
→ 局域网投递到主机浏览器
注意:若光猫在“路由模式”且后面路由器也 NAT,会形成“双 NAT”。多数家用场景可用,但端口映射与内网穿透会更麻烦。
八、交换机与“只看二层”的转发方式
- 普通交换机工作在二层,只依据 MAC 学习与转发,不解析 IP/端口
- 广播帧(全 F)会被泛洪至所有端口;单播帧按 MAC 表项精准转发
- MAC 表项会老化(超时删除),设备迁移接口后会重新学习
九、把“访问 baidu.com”的整条链路串起来
- 设备连网 → DHCP 获取
192.168.1.3
、网关192.168.1.1
、DNS - ARP 问问:谁是
192.168.1.1
→ 记住网关 MAC - DNS 询问
baidu.com
→ 得到百度服务器 IP(带 TTL) - CIDR 判断目标不在
192.168.1.0/24
→ 交给网关 - TCP(TLS)建连 → 发起 HTTP/HTTPS 请求
- 路由器出 WAN 前做 NAT:
192.168.1.3:9527 → 2.2.2.2:4134
- 报文经公网多跳路由到百度 → 返回响应
- 回包命中 NAT 表还原 → 局域网交付到
192.168.1.3:9527
→ 浏览器渲染首页
十、常见排错清单(家庭/软路由现场很实用)
- 拿到 169.254.x.x:DHCP 失效或被拦;检查路由器 DHCP 是否开启、是否多台设备“顶牛”
- 能 ping 网关,不能上网:DNS 配置异常/劫持;临时把 DNS 指向公共 DNS 做对比
- 局域网互访不通:检查是否跨网段、掩码是否一致、是否有防火墙/隔离规则
- 端口映射失败:是否双 NAT、运营商 CGNAT、映射到错设备/错端口
- 延迟/抖动大:Wi-Fi 信道拥塞/功率、LAN 速率协商、光猫/交换机端口是否降速
附:名词快查
- DHCP:动态主机配置协议,分配 IP/网关/DNS/租期
- ARP:地址解析协议,查找“IP→MAC”的映射
- DNS:域名系统,把域名解析为 IP
- CIDR:无类域间路由,
/24
表示网络号长度 - NAT:网络地址转换,内网地址改成公网地址转发
说明:为利于阅读,文中对某些报文细节做了取舍;真实链路还包含 TCP/TLS 细节、MTU/分片、QoS、队列等因素。
No responses yet