Skip to content

Latest commit

 

History

History
53 lines (34 loc) · 1.65 KB

Chapter_2.md

File metadata and controls

53 lines (34 loc) · 1.65 KB

IP 协议详解

要点:

  1. IP 头大小
  2. IP 分片(MTU)
  3. IP 路由过程(route 命令,路由的选择)
  4. IP 转发过程(TTL)

IP 头部

IP 协议头结构

IP 协议头一般为 20 字节,另外有 40 字节的可选部分,所以最长 60 字节。

IP 分片

以太网帧的 MTU 为 1500 字节,超过此大小的数据需要分片传输。

MTU 可通过 ifconfig 查看: 查看 mtu

由于 IP 头至少占用 20 字节,所以以太网 IP 数据报最多携带数据为 1480 字节。

IP 路由

IP 路由过程:IP 数据包应该发送到那个下一跳的路由(或目标机),以及经过那个网卡来发送。

使用 route 命令查看路由表 route查看路由表

路由机制(数据报走向的匹配顺序):

  • 查找完全匹配的主机 IP 地址
  • 查找匹配的网络地址的 IP 地址
  • 使用默认路由项,这通常意味着数据报的下一跳路由是网关。

IP 转发

不是发送给本机的 IP 数据报将由数据报转发子模块处理。路由器都能执行转发操作,但主机一般只发送和接收数据报,这是因为主机配置 /proc/sys/net/ipv4/ip_forward 默认设为 0 的缘故。

转发过程:

  • 检查数据报头 TTL 值,若为 0 丢弃
  • 查看报头严格源路由选择选项,若已被设置,验证目标 IP 是否为本机 IP,若不是发送一个 ICMP 失败报文给发送端
  • 若由必要,给源端发送 ICMP 重定向报文,告诉合理的下一跳
  • TTL - 1
  • 处理 IP 头部选项
  • 若有必要进行 IP 分片

重定向、IPv6 略