IP 转发是网络通信中通过中间设备(如路由器或启用了转发功能的主机)将接收到的 IP 数据包根据路由表的指引发送到目标网络的过程。以下是 IP 转发的详细流程及转发过程中各个环节的说明:
IP 转发的流程详解
- 数据包到达路由器或主机:
- 链路层:接收端从网卡接收到数据包后,解封装链路层帧,提取 IP 数据包。
- 检查目的地址:检查 IP 数据包的目标地址,判断是否是本地地址。
- 如果目标 IP 地址是本地的,交由本地主机的上层协议栈处理。
- 如果目标地址不是本地地址,进入转发流程。
- 查找路由表:
- 使用数据包的目标 IP 地址在设备的路由表中进行匹配。
- 匹配结果确定:
- 下一跳地址:转发目标的路由器 IP 地址。
- 出接口:设备上用于发送数据包的网络接口。
- 更新数据包信息:
- TTL 减一:
- 每次转发,IP 数据包的 TTL(Time to Live)字段减一。如果 TTL 减至 0,设备丢弃数据包并向源地址发送 ICMP 超时消息。
- 重新封装链路层信息:
- 将目标 MAC 地址设置为下一跳设备的 MAC 地址。
- TTL 减一:
- 转发数据包: