6.1 网络层次模型
网络通信极其复杂,工程师把它分成"层",每层只关心自己的事。
| OSI 七层 | TCP/IP 四层 | 这一层关心什么 | 协议示例 |
|---|---|---|---|
| 应用层 | ✅ 应用层 | 浏览器怎么请求网页 | HTTP、DNS、FTP |
| 表示层 | ✅ 应用层 | 数据格式转换 | SSL/TLS、JPEG |
| 会话层 | ✅ 应用层 | 建立/维护/断开连接 | SSH、RPC |
| 传输层 | ✅ 传输层 | 可靠传输、端口号 | TCP、UDP |
| 网络层 | ✅ 网际层 | 路由选择、IP地址 | IP、ICMP |
| 数据链路层 | ✅ 网络接口层 | 相邻节点通信、MAC地址 | Ethernet、WiFi |
| 物理层 | ✅ 网络接口层 | 0和1怎么传输 | 网线、光纤、无线电 |
实际开发中最常用的是TCP/IP 四层模型。
6.2 IP 地址
IP 地址是网络中每台设备的"门牌号"。
IPv4(32位,约43亿个地址,已经不够用了):
192.168.1.100 ← 点分十进制
11000000.10101000.00000001.01100100 ← 实际是32个0和1
IP 地址分类:
| 类型 | 范围 | 用途 |
|---|---|---|
| 公网 IP | 全球唯一 | 服务器、家庭宽带 |
| 私有 IP | 10.x.x.x / 172.16-31.x.x / 192.168.x.x | 局域网 |
| 回环地址 | 127.0.0.1 | 指向本机 |
IPv6(128位,多到每粒沙子都能分一个):
2001:0db8:85a3:0000:0000:8a2e:0370:7334
6.3 域名与 DNS
人类记 IP 太痛苦了,于是有了域名系统(DNS)。
你在浏览器输入 www.baidu.com
↓
1. 浏览器查缓存:有没有这个域名的IP?
↓ 没有
2. 操作系统查 /etc/hosts
↓ 没有
3. 问本地 DNS 服务器(通常是路由器)
↓ 没有缓存
4. 问根 DNS → .com DNS → baidu.com DNS
↓
5. 返回 IP 地址:110.242.68.66
↓
6. 浏览器用这个 IP 连接百度服务器
6.4 子网掩码和网关
子网掩码决定一个 IP 的网络部分和主机部分:
IP: 192.168.1.100
掩码: 255.255.255.0
网络号: 192.168.1.0 (IP & 掩码)
主机号: 0.0.0.100
网关(Gateway) 是局域网通往外网的"门口",通常是路由器的 IP:
你的电脑(192.168.1.100) → 网关(192.168.1.1) → 互联网
6.5 常用网络命令
# Windows 和 Linux 都可用
ipconfig / ifconfig # 查看本机 IP 配置
ping baidu.com # 测试和目标是否连通
traceroute baidu.com # 显示到达目标经过的路由
nslookup baidu.com # 查询域名的 IP 地址
curl -I baidu.com # 查看 HTTP 响应头
netstat -an # 查看所有网络连接
📖 上一篇:[第5章:软件与程序](05-软件与程序.html)