Android第五次面试总结(网络补充)
DNS 原理、协议及劫持防护深度解析
一、DNS 核心原理体系
1. 域名空间层级架构
根域 (.) → 顶级域 (TLD) → 二级域 → 子域 → 主机名
↳ .com ↳ example.com → www.example.com
↳ .org ↳ open-source.org → docs.open-source.org
2. 资源记录类型详解
类型 | 含义 | 示例 |
---|---|---|
A | IPv4 地址 | www.example.com → 192.0.2.1 |
AAAA | IPv6 地址 | ipv6.example.com → 2001:db8::1 |
CNAME | 别名记录 | mail.example.com → server1.example.com |
MX | 邮件交换记录 | example.com → 10 mx1.example.com |
NS | 权威服务器记录 | example.com → ns1.iana.org |
TXT | 文本记录 | example.com → "v=spf1 ip4:192.0.2.0/24 -all" |
3. 解析流程控制机制
二、DNS 协议深度剖析
1. 协议栈分层结构
应用层: DNS
传输层: UDP(53) / TCP(53)
网络层: IPv4/IPv6
2. 消息格式规范
12字节头部 + 问题段 + 回答段 + 授权段 + 附加段
头部字段解析
struct DNSHeader {
uint16_t id; // 请求ID
uint16_t flags; // QR(1bit) OPCODE(4bit) AA(1bit) TC(1bit) RD(1bit)
// RA(1bit) Z(3bit) RCODE(4bit)
uint16_t qdcount; // 问题数量
uint16_t ancount; // 回答数量
uint16_t nscount; // 授权数量
uint16_t arcount; // 附加数量
};
3. 查询 / 响应机制
- 查询消息:包含域名、查询类型、查询类
- 响应消息:包含 TTL 值、资源记录数据
- TCP 使用场景:响应超过 512 字节时自动切换
DNS 原理中的分层结构深度解析
一、域名空间层级架构
DNS 系统采用树状层级结构,将全球域名组织成层次化命名空间,其核心结构如下:
1. 根域(Root Domain)
- 标识:
.
(通常省略) - 管理机构:ICANN(互联网名称与数字地址分配机构)
- 功能:整个 DNS 系统的起点,存储所有顶级域名服务器信息
- 技术细节:
- 13 组逻辑根服务器(实际部署超 1000 个物理节点)
- 根区文件(Root Zone File)每 12 小时更新一次
- 根服务器采用 Anycast 技术实现全球负载均衡
2. 顶级域名(TLD, Top-Level Domain)
类型 | 示例 | 管理机构 | 特点 |
---|---|---|---|
gTLD | .com | VeriSign | 通用顶级域 |
ccTLD | .cn | CNNIC | 国家 / 地区代码顶级域 |
sTLD | .gov | NTIA | 特殊用途顶级域 |
newTLD | .app | 新通用顶级域(2013 年后新增) |
3. 二级域名(Second-Level Domain)
- 示例:example.com中的 "example"
- 注册机制:
- 需通过 ICANN 认证的注册商申请
- 遵循各 TLD 的注册规则(如.edu 需教育机构申请)
- 技术特性:
- 可配置子域名(如mail.example.com)
- 必须指定权威名称服务器(NS 记录)
4. 子域与主机名
mail.hr.example.com
├─ 主机名: mail
├─ 三级域: hr
├─ 二级域: example
└─ 顶级域: com
二、资源记录层级解析
1. 核心记录类型解析
2. 记录关联示例
www.example.com的解析链:
www.example.com CNAME -> webserver.example.com
webserver.example.com A -> 192.0.2.1
总结:
DNS 作为互联网的核心基础设施,通过分层的分布式数据库架构(根域→顶级域→权威服务器),结合递归与迭代查询机制,利用 UDP/TCP 协议将人类可读的域名解析为 IP 地址,同时通过 DNSSEC 验证、DoH/DoT 加密等技术抵御劫持攻击,未来将深度融合区块链分布式存储和量子安全算法实现架构升级。