网络层在互连网络之间提供逻辑寻址和尽力而为的数据包传送。在互联网协议族中,IPv4 和 IPv6 承载数据包,路由器则为每个目标选择下一跳。
网络基础 · 第 7 课
网络层
学习 IP 寻址、前缀、路由表和跳数限制如何在网络之间传送数据包。
IP 数据包
IP 标头包含源地址和目标地址,以及转发与协议处理所需的字段。其载荷通常包含 TCP 段、UDP 数据报或 ICMP 消息。IP 不保证数据包到达、按序传送或不重复。
IP 本身提供哪种传送服务?
前缀与子网
地址和前缀长度共同定义从开头起哪些位组成网络前缀。主机使用这些信息和路由,判断目标是否在链路上,还是需要经过下一跳路由器。子网是某个前缀与策略下的地址范围;不同子网不会自动相互连接。
什么帮助主机判断 IPv4 目标是否位于本地链路?
路由决策
Linux 查询路由策略和路由表,以选择传出接口、下一跳和首选源信息。在其他条件都符合的路由中,通常优先选择匹配最具体前缀的路由。使用以下命令检查某个目标的实际决策:
$ ip route get 203.0.113.10
这只是本地路由查询,不能证明每台下游路由器都有正常路由,也不能证明目标会接受流量。
在到达同一目标的合格路由中,通常哪一条胜出?
跳数限制与转发变化
每个 IPv4 数据包都有 TTL,每个 IPv6 数据包都有 Hop Limit。路由器会将其递减;当值到达零时,路由器丢弃数据包,并可以发送 ICMP 错误。这能防止数据包在转发环路中无限循环。
路由器通常保留端到端 IP 地址,但 NAT、隧道、代理和其他中间设备可能转换或封装数据包。无论如何,链路层标头都会在每个路由跳点改变。
为什么路由器要递减 TTL 或 Hop Limit?
课程已完成
你已完成 网络层
现在,你可以解释 IP 主机如何选择通向目标的下一步。
将 IP 传送视为尽力而为。
使用前缀和路由区分本地链路目标与经过路由的目标。
将最长前缀匹配应用到路由选择。
认识跳数限制如何约束转发环路。