IP 协议的工作原理主要包括以下几个方面:
IP 数据报的封装与传输
- 数据封装:当上层数据(如来自传输层的 TCP 或 UDP 数据段)传递到网络层时,IP 协议会将其封装成 IP 数据报。IP 数据报由首部和数据两部分组成,首部包含了各种控制信息,如版本号、首部长度、服务类型、总长度、标识、标志位、片偏移、生存时间、协议、首部校验和、源 IP 地址、目的 IP 地址等字段,而数据部分则是上层传来的实际数据14.
- 传输方式:IP 协议采用无连接的传输方式,即每个 IP 数据报都是独立地进行传输,不需要事先建立连接。源设备在发送数据报时,只需将目的 IP 地址等必要信息封装在数据报首部,然后将数据报发送出去,而无需关心目的设备是否准备好接收,也不确定数据报将经过哪些路径到达目的设备1.
IP 数据报的路由选择
- 路由表的作用:网络中的路由器会维护一张路由表,路由表中包含了目的网络地址、下一跳 IP 地址、子网掩码等信息。当路由器收到一个 IP 数据报时,它会根据数据报中的目的 IP 地址,在路由表中查找匹配的路由条目3.
- 路由查找过程:路由器将数据报中的目的 IP 地址与路由表中的子网掩码进行按位与操作,得到目的网络地址,然后将其与路由表中的目标网络进行对比。如果找到匹配的目标网络,则根据对应的下一跳 IP 地址将数据报转发出去;如果没有找到匹配的目标网络,但路由表中有默认路由,则将数据报转发给默认路由指定的下一跳路由器;如果两者都没有,则丢弃数据报并报告错误13.
IP 数据报的分片与重组
- 分片原因:不同的网络链路有不同的最大传输单元(MTU)限制,如以太网帧的 MTU 通常为 1500 字节。当一个 IP 数据报的大小超过了出口链路的 MTU 时,就需要对数据报进行分片,以便能够在该链路上传输14.
- 分片操作:路由器在进行分片时,会将原始 IP 数据报的数据部分分割成若干个较小的数据片,并为每个分片重新封装一个 IP 数据报首部。这些分片后的 IP 数据报将独立地在网络中传输,每个分片都有自己的标识、标志位和片偏移等字段,用于在目的主机上进行重组14.
- 重组过程:目的主机收到分片后的 IP 数据报后,会根据数据报首部中的标识、标志位和片偏移等字段,将属于同一个原始数据报的分片重新组合成完整的数据报,然后再将其递交给上层协议进行处理14.
IP 协议的服务类型与生存时间
- 服务类型:IP 首部中的服务类型字段用于指示期望获得的服务类型,如最小延时、最大吞吐量、最高可靠性、最小费用等。不过,在实际应用中,大多数情况下该字段并未被充分利用,通常取值为 014.
- 生存时间:生存时间(TTL)字段用于限制 IP 数据报在网络中的生存时间,防止数据报在网络中无限循环转发。每经过一个路由器,TTL 的值就会减 1,当 TTL 的值减为 0 时,路由器会丢弃该数据报