计算机网络
约 599 字大约 2 分钟
计算机网络TCP/IPHTTP
2024-08-13
OSI 七层模型
| 层级 | 名称 | 典型协议 | 典型设备 |
|---|---|---|---|
| 7 | 应用层 | HTTP, FTP, SMTP | - |
| 6 | 表示层 | JPEG, ASCII | - |
| 5 | 会话层 | RPC, SQL | - |
| 4 | 传输层 | TCP, UDP | - |
| 3 | 网络层 | IP, ICMP | 路由器 |
| 2 | 数据链路层 | Ethernet, PPP | 交换机 |
| 1 | 物理层 | 光纤, 电缆 | 集线器 |
TCP/IP 四层模型
| 层级 | 协议 |
|---|---|
| 应用层 | HTTP, FTP, DNS |
| 传输层 | TCP, UDP |
| 网络层 | IP, ICMP |
| 网络接口层 | Ethernet |
网络层 (IP)
IPv4 地址
- 32 位地址,通常用点分十进制表示 (如 192.168.1.1)
- 分类: A, B, C, D (多播), E (保留)
- 私有地址:
- 10.0.0.0 - 10.255.255.255
- 172.16.0.0 - 172.31.255.255
- 192.168.0.0 - 192.168.255.255
子网掩码
- 用于区分网络 ID 和主机 ID
- 常见: 255.255.255.0 (/24)
- CIDR 表示法: 192.168.1.0/24
DNS
域名系统,负责域名到 IP 地址的解析。
# 常用 DNS 命令
nslookup example.com
dig example.com传输层
TCP 协议
三次握手 (建立连接)
客户端 ──── SYN ────▶ 服务端
客户端 ◀─── SYN+ACK ── 服务端
客户端 ──── ACK ────▶ 服务端四次挥手 (断开连接)
客户端 ──── FIN ────▶ 服务端
客户端 ◀─── ACK ──── 服务端
客户端 ◀─── FIN ──── 服务端
客户端 ──── ACK ────▶ 服务端UDP 协议
- 无连接
- 不可靠但效率高
- 用于实时应用 (视频流、DNS)
应用层
HTTP 协议
HTTP 1.0 vs 1.1 vs 2.0
| 特性 | 1.0 | 1.1 | 2.0 |
|---|---|---|---|
| 持久连接 | 需声明 | 默认开启 | 默认开启 |
| 管道化 | 不支持 | 可选 | 支持 |
| 多路复用 | 不支持 | 不支持 | 支持 |
| 服务器推送 | 不支持 | 不支持 | 支持 |
| 首部压缩 | 不支持 | 不支持 | 支持 |
HTTP 请求方法
| 方法 | 描述 | 幂等性 |
|---|---|---|
| GET | 获取资源 | 是 |
| POST | 提交资源 | 否 |
| PUT | 更新资源 | 是 |
| DELETE | 删除资源 | 是 |
| PATCH | 部分更新 | 否 |
HTTPS
- HTTP over TLS/SSL
- 默认端口: 443
- 握手过程:
- Client Hello
- Server Hello + 证书
- 密钥交换
- 加密通信
网络安全
XSS (跨站脚本攻击)
攻击者向网页注入恶意脚本代码。
防御措施:
- 输入过滤
- 输出编码
- HttpOnly Cookie
- CSP (Content Security Policy)
CSRF (跨站请求伪造)
攻击者诱导用户发起恶意请求。
防御措施:
- Token 验证
- Referer 检查
- SameSite Cookie
SQL 注入
通过输入注入恶意 SQL 语句。
防御措施:
- 参数化查询
- 输入验证
- 最小权限原则
