跳到主要内容

IP

IP 负责跨网络传送数据报。路由器按目标地址逐跳转发。本文负责寻址、路由、分片和路径诊断。

1. 面试核心​

先记住这几条,再读正文
  • 交付语义。 IP 提供尽力而为的交付,数据报可丢失、重复或乱序。
  • 路由匹配。 路由采用最长前缀匹配,默认路由的前缀长度为 0。
  • 地址与名称。 IP 用于网络寻址,端口区分传输端点,域名用于名称查询。卡 · 面试核心
  • 路径 MTU。 IPv6 路由器遇到超大包会丢弃并回复 Packet Too Big。卡 · 路径 MTU 与分片

2. 地址与逐跳转发​

主机先查本地路由表,决定出口和下一跳。目标位于直连网络时,下一跳就是目标。其他目标经匹配路由的网关转发。

IPv4 在以太网上用 ARP 查询下一跳的 MAC。IPv6 使用邻居发现。远端服务器的 MAC 无需跨路由传播。

路由器根据目标 IP 选择出口,再封装下一跳链路帧。MAC 地址随链路更换。未经过地址转换时,源和目标 IP 保持不变。

3. 子网与路由选择​

192.0.2.0/24 表示 IPv4 地址前 24 位固定。匹配该网段的目标优先使用 /24 路由。/0 默认路由匹配所有目标,优先级低于更长前缀。

IPv4 地址有 32 位,IPv6 地址有 128 位。IPv4 的普通 /24 子网包含 256 个地址。扣除网络地址与广播地址后,可分配 254 个。/31 点对点链路使用不同规则。

端口由传输层处理。同一 IP 的 443 和 8080 可对应不同服务。NAT 可改写地址,NAPT 还可改写端口。返回流量依赖转换映射。

4. 路径 MTU 与分片​

路径 MTU 是路径上可用 MTU 的最小值。包超过下一跳 MTU 时,需要缩小或分片。

IPv4 的 DF 为 0 时,路由器可执行分片。DF 为 1 时,路由器丢包并返回相应 ICMP 错误。IPv6 路由器返回 ICMPv6 Packet Too Big。IPv6 的分片由源端执行。

IP 分片由目标主机重组。丢失任一分片都会影响整份数据报。应用应控制 UDP 数据报大小。

TCP 的 MSS 限制 TCP 数据负载长度。MTU 则限制链路承载的 IP 包长度。两者之间还包含 IP 和 TCP 头部。

5. ICMP 与路径诊断​

IPv4 TTL 和 IPv6 Hop Limit 随逐跳转发递减。计数耗尽后,路由器丢包并报告超时。它们限制报文在环路中存活的跳数。

ping 使用 ICMP 回显请求和响应。traceroute 通过递增 TTL 等方式发现路径。中间设备过滤 ICMP 时,探测会出现空缺。HTTP 是否可用仍需实际访问服务端口。

路径 MTU 探测依赖报文与错误反馈。屏蔽关键 ICMP 错误会造成大包传输停顿。小包正常、大包超时是值得检查的线索。

6. 使用边界​

IP 地址标识网络接口和路由位置。域名可以对应多个地址。传输协议、源目标地址与端口共同区分连接。

7 · 面试题卡片​

本页题目与参考回答

7.1 访问服务器时,IP 地址、端口与域名分别起什么作用?​

考察重点:名称解析、网络转发和端口分发在请求路径中的职责。

相关内容:面试核心、地址与逐跳转发、使用边界。

参考回答

IP 用于寻址和逐跳转发。

端口结合地址与传输协议标识服务或连接。域名通过 DNS 查询对应记录。同一域名可对应多个 IP,一个 IP 也可承载多个服务。

7.2 IPv4 和 IPv6 遇到超过路径 MTU 的包怎样处理?​

考察重点:DF、源端分片与 ICMP 反馈。

相关内容:路径 MTU 与分片。

参考回答

IPv4 在 DF 为 0 时允许路由器分片。

DF 为 1 时,路由器丢弃超大包并反馈 ICMP 错误。IPv6 路由器丢包并发送 Packet Too Big。发送端据此缩小包,或执行允许的源端分片。

7.3 ping 不通能说明 HTTP 服务不可用吗?​

考察重点:ICMP 探测与应用端口访问。

相关内容:ICMP 与路径诊断。

参考回答

ping 失败只说明没有取得预期 ICMP 回显。

设备过滤 ICMP 时,TCP 和 HTTP 仍可成功。应再验证目标服务端口和应用响应。反过来,ping 成功也只验证回显路径。

8. 参考资料​