网络基础小白入门:IP、MAC、子网掩码、路由、VLAN 一口气讲懂
用生活比喻讲清网络七层里最常用的那几块:IP 地址是哪家哪户、MAC 是身份证、子网掩码负责划小区、路由器负责跨小区送信、VLAN 是把一个大写字楼按公司拆成独立门禁。附 ping/traceroute 等实际命令。
网络基础小白入门:IP、MAC、子网掩码、路由、VLAN 一口气讲懂
网络概念听起来很抽象,但其实就是**“把一封信从你家寄到朋友家”的计算机版**。本章我们把最常见的几个概念都用生活比喻讲透,再配合实际命令去验证,小白也能看懂。
一、先搭个整体模型:寄信的故事
你想给住在隔壁城市的朋友写封信:
| 我们生活里的东西 | 对应计算机网络概念 | 作用 |
|---|---|---|
| 你本人 | 一台电脑 / 手机 | 发件人 |
| 朋友 | 另一台电脑 / 服务器 | 收件人 |
| 朋友身份证号(18 位唯一) | MAC 地址(物理地址) | 物理世界里唯一的身份证明,网卡出厂就烧在芯片里,不会变 |
| “北京市朝阳区建国路 88 号 SOHO A 座 1203 室” | IP 地址(192.168.1.100) | 网络世界里的”现在住哪”,搬家(换网络)IP 就会变 |
| 小区名 + 门牌范围(哪几栋是本小区) | 子网掩码 + 网段 | 判断朋友是不是和你”住在同一个小区(同一个子网)” |
| 小区物业/保安 | 交换机(Switch) | 同一栋楼(同个 LAN / VLAN)内,从”302 给 501 送信”直接交给保安就够,不出小区 |
| 小区门口的收发室 | 路由器(Router)的网关 IP | 跨小区 / 跨城市送信时,你先把信丢给收发室,收发室决定下一步送给谁 |
| 全国邮政运输网络 | 互联网路由系统 | 收发室之间层层接力 |
| 写字楼里的”公司门禁” | VLAN(虚拟局域网) | 同一个物理大楼(交换机)里,A 公司的人不能随便串门到 B 公司 |
| 快递单号上的电话 | 端口号 | 同一台机器上跑着很多应用:微信用一个端口,浏览器用一个端口,邮件用的 25 / 110 —— 端口号用来把数据递给正确的 APP |
| 全国邮政编码查询中心 | DNS 服务器 | 你只知道朋友名字”百度”,不知道它家地址 → 问 DNS,DNS 返回”百度家 IP = 220.181.38.148” |
有了这个模型,后面所有概念都会顺。
二、MAC 地址:身份证,一生不变
MAC(Media Access Control)地址 是网卡的全球唯一硬件地址,由 6 组 16 进制数组成,每组两个字符,用冒号或短横线分开,例如:
8C:85:90:12:34:56 ← Wi-Fi 网卡 MAC
3C:7C:3F:9A:BC:DE ← 手机蓝牙 MAC
- 前 3 组 = 厂商标识(OUI),比如
8C:85:90是苹果,3C:7C:3F是华为。 - 后 3 组 = 厂商出厂序号。
MAC 地址是”本地有效”的:只在同一个局域网(同一个小区 / 同一个交换机)里用来找”隔壁那台机器”。数据包一旦要跨路由器出小区,外层的 MAC 就会被替换成”路由器口的 MAC”,而不是最终目标机器的 MAC。
查看你自己电脑的 MAC:
# macOS
ifconfig en0 | grep ether
# 或
networksetup -getmacaddress en0
# Linux
ip link show | grep link/ether
# Windows PowerShell
Get-NetAdapter | Select-Object Name, MacAddress
三、IP 地址:现在住在哪
IP(Internet Protocol)地址 是网络世界分配给每台主机的可改变的逻辑地址。现在主流有两种:
- IPv4(99% 场景见的这个):32 位,写作 4 段 0~255,用点分开:
192.168.1.100,总共约 43 亿个(早已不够分,所以才有 NAT 内网穿透 + IPv6)。 - IPv6(未来版):128 位,8 段十六进制:
240e:3b1:4f01:1::200,地址多得”地球上每粒沙子都能分到一个”。
这篇重点讲 IPv4。
3.1 三类”常用”的 IP(背下来 80% 场景够用)
| 种类 | 示例 | 能不能上网(公网) | 说明 |
|---|---|---|---|
| 私网 IP(内网 IP) | 10.x.x.x172.16~31.x.x192.168.x.x | ❌ 只在你家 / 公司内网用 | 全球重复使用,靠路由器做 NAT 才能上网 |
| 公网 IP | 220.181.38.148 | ✅ | ISP(电信/联通/移动)分配给你的全球唯一地址 |
| 回环地址(本机) | 127.0.0.1 / localhost | — | 永远指向你自己的机器,不经过网卡 |
| 链路本地地址 | 169.254.x.x | ❌ | 自动配置失败时电脑给自己分的(看到这个基本 = DHCP 挂了拿不到 IP) |
| 组播 / 广播 | 224.0.0.1、255.255.255.255 | — | 发给”一组 / 全部”机器 |
一个反直觉但很重要的事实:世界上绝大多数电脑都没有公网 IP。你家 Wi-Fi 里的手机、电视、笔记本都共享一个公网 IP 出门——这就是 NAT(网络地址转换)。
3.2 看你自己的 IP
# macOS / Linux:看所有网卡 IP
ip a # Linux 最推荐
ifconfig # 旧命令(macOS 也能用)
# Windows PowerShell
ipconfig
Get-NetIPAddress
典型输出:
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 8c:85:90:12:34:56
inet 192.168.1.100 netmask 0xffffff00 broadcast 192.168.1.255
↑ 你的 IP ↑ 子网掩码 ↑ 广播地址
inet6 fe80::10aa:f0ff:feb9:dead%en0 prefixlen 64 scopeid 0x6
同时你还会看到 gateway: 192.168.1.1(路由器的内网口地址,小区收发室)。
3.3 用 ping 验证连通性
网络里最基础的命令:
ping -c 4 127.0.0.1 # ① ping 自己(先确认你自己的网卡/TCP栈是活的)
ping -c 4 192.168.1.1 # ② ping 网关(看和小区收发室通不通)
ping -c 4 223.5.5.5 # ③ ping 公共 DNS(看能不能出小区→出到外面)
ping -c 4 www.baidu.com # ④ ping 域名(再加上 DNS 解析测试)
按照 ① 自己 → ② 网关 → ③ 公网 IP → ④ 公网域名 的顺序排查,哪一步不通问题就在哪。
四、子网掩码 + 网段:划分小区
4.1 子网掩码到底是干嘛的
IP 地址 = “小区名(网络号)” + “门牌号(主机号)” 两部分组合。 子网掩码就是一把”卡尺”,告诉你哪些位是小区名、哪些位是门牌号。
掩码写成 IPv4 的样子,或者用一个斜杠数字(CIDR 前缀)表示:
| 常见写法 | CIDR | 含义 |
|---|---|---|
255.0.0.0 | /8 | 第 1 段 = 小区,后 3 段 = 门牌(能住 ~1677 万台机器,A 类私网 10.0.0.0/8) |
255.255.0.0 | /16 | 前 2 段 = 小区,后 2 段 = 门牌(~65534 台,B 类私网 172.16.0.0/16) |
255.255.255.0 | /24 | 前 3 段 = 小区,最后 1 段 = 门牌(254 台可用,家用路由器最常见的!) |
255.255.255.128 | /25 | 前 25 位 = 小区,主机位只剩 7 位 = 126 台可用(把 /24 对半切两半) |
255.255.255.192 | /26 | 62 台 |
255.255.255.252 | /30 | 只剩 2 台可用(点到点链路常用,比如运营商给你家宽带的上联网段) |
4.2 怎么算”我和目标 IP 在不在同一个小区(子网)”
规则:把 IP 和 子网掩码 做二进制”按位与 AND”,结果相同 = 同网段。
举例:你的 IP 192.168.1.100/24,想去 192.168.1.88 和 192.168.2.88。
掩码 255.255.255.0 11111111.11111111.11111111.00000000
192.168.1.100 AND 掩码 = 192.168.1.0 ← 你的网段
192.168.1.88 AND 掩码 = 192.168.1.0 ← 一样!= 同小区,直接广播找 MAC
192.168.2.88 AND 掩码 = 192.168.2.0 ← 不一样!= 跨小区,先丢给网关路由器
4.3 划分子网的小公式(面试常考)
给定一个 /24,想分 6 个部门:
- 子网个数至少 2^n ≥ 6 → n=3,所以要借 3 位主机位做子网位
- 新前缀 = 24 + 3 =
/27 - 新掩码 =
255.255.255.224(前 27 位都是 1) - 主机位剩下 32-27 = 5 位,所以每个子网可用主机数
2^5 - 2 = 30台(减 2 是”子网网络号 + 广播号”不能用) - 子网之间 步长 = 256 - 224 = 32,所以:
- 子网 1:
192.168.1.0/27(可用 IP:1~30) - 子网 2:
192.168.1.32/27(33~62) - 子网 3:
192.168.1.64/27(65~94) - … 依次 +32 即可
- 子网 1:
一个在线辅助工具:https://www.calculator.net/ip-subnet-calculator.html (做方案时用它验证)
五、ARP:知道 IP,怎么问它的 MAC 是多少?
刚才讲到”同小区”可以直接通信,但网卡只能按 MAC 找机器——你知道对方 IP,但不知道它 MAC,怎么办?
这就是 ARP(Address Resolution Protocol,地址解析协议) 干的活:
- 你大吼一声(广播):
“Who has 192.168.1.88? Tell 192.168.1.100”
- 所有人都听到了,但 IP 是 88 的那个人站出来(单播回复你):
“192.168.1.88 is at 3c:7c:3f:aa:bb:cc”
- 你把这对映射存到 ARP 缓存(
arp -a看),有效期一般 10~20 分钟。
# 查看本机 ARP 表
arp -a # macOS / Linux
# Linux 新命令更好用:
ip neigh show
# Windows
arp -a
Get-NetNeighbor
典型输出:
? (192.168.1.1) at a8:5e:45:01:02:03 on en0 ifscope [ethernet]
? (192.168.1.88) at 3c:7c:3f:aa:bb:cc on en0 ifscope [ethernet]
🔥 安全小提示:ARP 是没有”身份认证”的,恶意用户可以伪造”我是 192.168.1.1(网关)“回复你 → 这就是 ARP 欺骗 / ARP 投毒(中间人攻击、断网攻击的基础)。公司网里靠交换机的 DAI(动态 ARP 检测)+ DHCP Snooping 防。
六、路由:跨小区送信的路线规划
6.1 路由表是什么
每台电脑 / 每个路由器都有一张 路由表,它写着:
要去某网段,应该把包递给**下一跳(Next Hop)的谁,从哪个网卡(Interface)**出去。
看你自己电脑的:
# macOS
netstat -rn
# Linux
ip route show
route -n
# Windows PowerShell
route print
Get-NetRoute
典型输出(Linux):
default via 192.168.1.1 dev en0 ← 默认路由:所有不知道怎么走的,全丢给网关 192.168.1.1
10.8.0.0/24 via 10.8.0.1 dev tun0 ← 走 VPN 的网段(tun0 是虚拟网卡)
192.168.1.0/24 dev en0 proto kernel scope link ← 本机直连小区,不用绕网关
匹配原则:最长前缀匹配(Longest Prefix Match)——
路由表里”前缀越长越精确”的那条优先。比如去 10.8.0.100,既命中 default /0 又命中 10.8.0.0/24,走 /24 那条(更长)。
6.2 数据包走一趟完整路径(北京 → 百度)
你的电脑 192.168.1.100
│ 去 220.181.38.148:80
│ 一查路由 → 不在同小区,下一跳 = 网关 192.168.1.1
▼
家里路由器(内网口 192.168.1.1 / 公网口 100.12.34.56)
│ 查它自己的路由表 → 默认路由到 ISP 电信的 BARS 局端路由器
▼
ISP 电信城域网 → 省级骨干 → 国家级骨干 → 百度接入机房的边界路由器
▼
百度机房里的核心交换机 → 接入交换机 → 最终某台百度 WEB 服务器
(每一跳都做一次:目标 MAC 改成"下一跳 MAC",但 目标 IP 220.181.38.148 永远不变!)
记住:IP(地址)沿途不变,MAC(下一站送达的地址)每跳一变。
6.3 追踪路径:traceroute / tracert
# macOS / Linux
traceroute www.baidu.com # 用 UDP 探测(结果里 *** 代表运营商禁了 ICMP 超时回应,正常)
# Windows
tracert -d www.baidu.com # -d = 不做反向 DNS,快很多
mtr -rw www.baidu.com # 更现代的工具,traceroute + ping 持续统计,强烈推荐
看到每一跳 1 192.168.1.1 2ms → 2 100.12.32.1 5ms → 3 ...,就是数据包从你到百度途经的每一台路由器。某一跳开始全 * 或者延迟突然飙 300ms,基本就是那里运营商堵了。
七、VLAN:一个写字楼里拆成多个独立公司
你公司 1 层楼 100 台机器接在一个 48 口大交换机上,有财务、研发、行政。为了安全:
- 财务电脑不能被研发的随便访问(里面都是工资表、合同)
- 行政广播个打印机,不能把研发 60 台机器都吵一遍(广播风暴)
VLAN(Virtual Local Area Network,虚拟局域网) 就是在同一台物理交换机上,逻辑上切成好几台”虚拟交换机”——不同 VLAN 之间就是不通,必须经过三层(路由器/三层交换机)才能互访,跟它们物理上在不在一起没关系。
7.1 VLAN ID 范围
- 1-4094(标准 802.1Q VLAN 头部 12 bit,所以 2^12 = 4096 个,扣除 0/4095 保留)
- VLAN 1 = 默认 VLAN(所有端口刚出厂都在 VLAN 1,生产建议别用,改 native 到别的)
- 1002-1005 是思科老令牌环保留,别用
7.2 交换机端口的两种模式
| 模式 | 用途 | 进出时 VLAN tag 处理 |
|---|---|---|
| Access(接入端口) | 接 电脑/打印机/摄像头(终端) | 进交换机时加上该 VLAN 的 tag;出交换机时剥掉 tag,所以电脑根本不知道有 VLAN 这回事 |
| Trunk(干线端口) | 接另一台交换机 / 路由器 / 防火墙(设备互联) | 允许带多个 VLAN 的 tag 一起过(除了 Native VLAN 不打 tag,其余都带) |
一个交换机典型配置(伪命令,华三 / 华为 / 思科大同小异):
interface GigabitEthernet 1/0/1 # 接财务电脑
switchport mode access
switchport access vlan 10
interface GigabitEthernet 1/0/2 # 接研发电脑
switchport mode access
switchport access vlan 20
interface GigabitEthernet 1/0/48 # 接上层三层交换机
switchport mode trunk
switchport trunk allowed vlan 10,20,99
switchport trunk native vlan 99
这样 VLAN 10 的机器想跟 VLAN 20 说话,必须绕到上面那台三层交换机去走路由——这就实现了隔离 + 可控访问。
7.3 VLAN 间通信怎么搞?三种做法
- 单臂路由(老):路由器一个口接交换机 Trunk,子接口分别是 VLAN10/20 的网关。便宜但性能差(一个口走所有流量)。
- 三层交换机(现在最常用):交换机本身支持路由,建
interface Vlanif 10和interface Vlanif 20两个 SVI 接口作为网关,转发在背板硬件里做,速度很快。 - 防火墙 / 核心路由器:流量要经过安全策略、NAT、审计的,走它们做 VLAN 间网关。
八、端口 + TCP/UDP:把数据包递给正确的 APP
同一台电脑上跑着微信、Chrome、SSH、远程桌面,IP 都是 192.168.1.100,网卡收到一大包数据,怎么知道给哪个 APP?——靠端口号(16 bit,0~65535)。
| 端口段 | 用途 |
|---|---|
| 0~1023 知名端口 | 特权端口,root/管理员才能绑 |
| 1024~49151 注册端口 | 常见服务占用:3306 MySQL / 6379 Redis / 8080 开发 Web… |
| 49152~65535 动态/临时端口 | 客户端发起连接时操作系统随便挑一个作为”源端口” |
几个必须认识的:
| 端口 | 协议 | 服务 |
|---|---|---|
| 20/21 | TCP | FTP(数据/控制) |
| 22 | TCP | SSH(远程终端) |
| 23 | TCP | Telnet(明文,废弃,别用) |
| 25 | TCP | SMTP 发邮件 |
| 53 | UDP/TCP | DNS 域名解析 |
| 80 | TCP | HTTP 明文 |
| 110 | TCP | POP3 收邮件 |
| 443 | TCP | HTTPS(TLS 加密) |
| 445 | TCP | SMB 共享文件夹(勒索病毒重灾区,公网一定别开) |
| 3306 | TCP | MySQL |
| 3389 | TCP | Windows RDP 远程桌面 |
| 5432 | TCP | PostgreSQL |
| 6379 | TCP | Redis |
| 8080 | TCP | Tomcat / 开发 Web |
TCP vs UDP 一句话区分
| TCP(可靠,打电话) | UDP(快,发微信语音) | |
|---|---|---|
| 连接 | 三次握手建立连接、四次挥手断开 | 无连接,直接发 |
| 可靠性 | 丢了自动重传、按序到达 | 不保证顺序,丢了也不管 |
| 拥塞控制 | 有(慢启动、拥塞避免) | 没有,你发多快就多快 |
| 开销 | 大(首部 20 字节 + 状态机) | 小(首部 8 字节) |
| 典型应用 | HTTP/HTTPS、SSH、邮件、FTP、MySQL | DNS、直播、VoIP 语音、游戏、NTP、Quic(HTTP/3 基于 UDP) |
验证某台机器某个端口开没开:
# 通用:telnet 太老,推荐 nc / ncat
nc -zv 192.168.1.200 22 # 22 SSH 通吗?
nc -zv 192.168.1.200 3306 # 3306 MySQL 通吗?
# Windows PowerShell 自带(不用装任何东西!)
Test-NetConnection 192.168.1.200 -Port 22
# TcpTestSucceeded: True 就是通
# 看你自己本机已经监听了哪些端口
# macOS / Linux
ss -lntp # -l 监听 -n 不解析 -t TCP -p 进程
netstat -lntp # 老命令
# Windows
Get-NetTCPConnection -State Listen
netstat -ano | findstr LISTENING
九、DNS:把 www.baidu.com 翻译成 IP
你在浏览器输 www.baidu.com,电脑不能直接用域名发包(路由器不认中文名),得先去查 IP——这就是 DNS(Domain Name System,域名系统)。
9.1 一条典型查询流程
浏览器输入 baidu.com
→ 先查浏览器缓存 → 系统 hosts 文件 → 系统 DNS 缓存
→ 还没有?去问"本地 DNS 解析器"(一般就是你家路由器 192.168.1.1,或者 223.5.5.5 / 8.8.8.8 这种公共 DNS)
→ 本地解析器"递归查询"从根 (.) → .com 顶级域 → baidu.com 权威 → www.baidu.com 的 A 记录
→ 拿到 220.181.38.148,返回给浏览器
9.2 常用资源记录(RR)类型
| 类型 | 作用 | 示例 |
|---|---|---|
| A | 域名 → IPv4 | www A 220.181.38.148 |
| AAAA | 域名 → IPv6 | www AAAA 240e:...::1 |
| CNAME | 别名 → 另一个域名 | cdn.example.com CNAME example.cdn-dns.com |
| MX | 邮件服务器(数字=优先级) | @ MX 10 mail.example.com |
| TXT | 存文本:SPF 防伪造、DMARC、域名所有权验证 | @ TXT "v=spf1 include:_spf.google.com ~all" |
| NS | 该域的权威 DNS 服务器是谁 | @ NS ns1.example-dns.com |
9.3 DNS 排查命令三件套
# ① nslookup(全平台通用)
nslookup www.baidu.com
nslookup -type=MX gmail.com # 查 MX 邮件记录
nslookup www.baidu.com 223.5.5.5 # 指定 223.5.5.5 作为解析器
# ② dig(Mac/Linux 最好用,推荐)
dig www.baidu.com
dig +short www.baidu.com # 只要结果一行
dig MX gmail.com +noall +answer # 指定记录类型 + 只看答案段
dig @223.5.5.5 www.baidu.com # 指定 DNS 服务器
# ③ Windows 带的 Resolve-DnsName
Resolve-DnsName -Name www.baidu.com -Type A
Resolve-DnsName -Name gmail.com -Type MX
DNS 出问题的典型现象:能 ping 通 8.8.8.8,但 ping 不通 www.baidu.com(报错 “Unknown host” 或 “Name or service not known”)。修法:看 /etc/resolv.conf(Linux)或 ipconfig /all 的 DNS servers 列表,换个靠谱的(阿里 223.5.5.5/223.6.6.6、腾讯 119.29.29.29、114 114.114.114.114、Google 8.8.8.8)。
十、TCP 三次握手 & 四次挥手(为什么面试总考)
TCP 要”可靠”,所以建立连接前双方要”确认对方收发能力 OK”——这就是三次握手(Three-way Handshake):
Client Server
│ SYN seq=x │ ①:我要建立连接,初始序号 x
│ ───────────────────────────▶ │
│ │
│ SYN+ACK seq=y, ack=x+1 │ ②:好的,收到 x,我也发 y,期待你发 x+1
│ ◀─────────────────────────── │
│ │
│ ACK ack=y+1 │ ③:收到 y,期待你发 y+1,连接建立!
│ ───────────────────────────▶ │
为什么不是两次?—— 因为网络里可能有”迟到的旧连接请求 SYN”,两次握手 Server 会直接信并开连接,浪费资源。三次握手 Client 会在第三步发 ACK,Server 收到才真的开,能挡住幽灵包。
断开是四次挥手(数据是双工的,两边都要单独关):
Client Server
│ FIN seq=u │ ①:我没数据啦
│ ───────────────────────────▶ │
│ ACK ack=u+1 │ ②:知道了(但 Server 可能还在发数据)
│ ◀─────────────────────────── │
│ │ Server 发完最后一份数据了
│ FIN seq=v │ ③:我也没数据啦
│ ◀─────────────────────────── │
│ ACK ack=v+1 │ ④:收到,等 2MSL 彻底关闭
│ ───────────────────────────▶ │
抓包验证:sudo tcpdump -i en0 host www.baidu.com and port 80,或用 Wireshark 界面更直观。
十一、一张图速记:数据从 App 出去的封装过程
┌──────────────┐
│ HTTP GET / │ ← 应用层
│ (数据) │
├──────────────┤
│ TCP HEAD │ DATA│ ← 传输层:加"源端口/目标端口 + 序号"
├──────────────┤
│ IP HEAD │ TCP │ DATA│ ← 网络层:加"源 IP / 目标 IP"
├──────────────┤
│MAC │ IP │ TCP │ DATA│ FCS ← 数据链路层:加"源 MAC / 下一跳 MAC + 帧校验"
└──────────────┘
↓
变成一串 01 电信号 / 光信号 / Wi-Fi 载波 → 在物理层发出去 → 对方逐层拆掉 → 露出 HTTP 数据
每一层只关心自己的头,这就是分层模型(TCP/IP 四层 / OSI 七层) 的好处:底层换 WIFI、换 5G、换光纤,上层的 HTTP 完全不用改。
十二、排障通用 Checklist(抄下来不会错)
遇到”上不了网 / 访问不通 / 服务连不上”,按这个顺序来,省 80% 时间:
- 物理层:网线插了吗?Wi-Fi 连上了吗?
ifconfig网卡是 UP? - IP 层:
ipconfig / ip a→ IP/掩码/网关对吗?ping 127.0.0.1→ 自己 TCP/IP 栈ping 网关→ 到小区收发室ping 223.5.5.5→ 出公网ping www.baidu.com→ DNS
- 路由层:
ip route / route print→ 默认网关有吗?traceroute / tracert -d 目标IP→ 哪一跳开始丢/慢
- 端口 / 传输层:
nc -zv / Test-NetConnection 目标 IP 端口→ 端口通吗ss -lntp / netstat -ano→ 服务端真的在监听?
- 应用层:
curl -v http://目标:端口/xxx→ HTTP 状态码(2xx?4xx?5xx?)- 日志看服务端报错:Nginx error.log、应用 app.log
- 安全层(经常被忽略!):
- 本机防火墙:
ufw status/firewall-cmd --list-all/ Windows 高级防火墙 - 云安全组 / ACL:入方向放了目标端口吗?
- SELinux:
getenforce为 Enforcing 时很多 13 Permission denied 都赖它
- 本机防火墙:
参考资料
- TCP/IP 详解(卷 1:协议)—— 经典中的经典(W. Richard Stevens)
- Wireshark 抓包实战:https://www.wireshark.org/
- 图解 TCP/IP(日·竹下隆史)—— 非常适合小白的图解书
- 华为 / 华三认证 HCIA / H3CNE 教材——大量网络基础练习题
- 在线子网计算器:https://www.calculator.net/ip-subnet-calculator.html