路由器是工作在OSI模型网络层第3层的网络设备其核心功能是根据数据包中的目的IP地址查询路由表选择最优路径将数据包转发到下一跳next-hop或目标网络。它不关心传输层端口号如TCP/UDP端口或数据链路层MAC地址除非需要ARP解析下一跳的MAC而是基于IP地址进行逻辑寻址与跨网段转发。与之对比交换机传统二层工作在数据链路层依据MAC地址转发三层交换机或支持路由功能的交换机可同时处理MAC和IP但路由决策仍由IP地址驱动防火墙、负载均衡器等可能工作在更高层如传输层或应用层但基础路由功能仍依赖网络层IP寻址。典型路由过程简述 1. 接收IP数据包 → 提取目的IP地址 2. 查找路由表最长前缀匹配→ 确定出接口和下一跳IP 3. 若下一跳不在直连网段递归查找至直连路由 4. 通过ARPIPv4或NDPIPv6获取下一跳MAC地址 5. 封装为新数据帧从对应接口转发出去。路由器通过最长前缀匹配Longest Prefix Match, LPM从路由表中选择最具体的路由条目来转发数据包。其核心原则是在所有能匹配目的IP地址的网络前缀中选择子网掩码最长即网络位最多、前缀长度最大的那条路由因为该条目代表最精确、最具体的可达网络。✅ 原因更长的前缀意味着更小的网络范围优先匹配它可确保流量被精准导向目标子网避免误发到汇总路由或默认路由。 举例说明假设路由器路由表中有以下4条IPv4路由CIDR表示前缀/掩码长度网络地址下一跳说明192.168.1.0/24192.168.1.0R1主机所在局域网192.168.0.0/16192.168.0.0R2汇总路由含/24192.0.0.0/8192.0.0.0R3更粗粒度汇总0.0.0.0/0默认路由R4最后兜底当收到一个目的IP为192.168.1.100的数据包时路由器依次检查各前缀是否匹配即目的IP是否属于该网络192.168.1.0/24→ 掩码255.255.255.0 →192.168.1.100 255.255.255.0 192.168.1.0✅ 匹配前缀长度24192.168.0.0/16→ 掩码255.255.0.0 →192.168.1.100 255.255.0.0 192.168.0.0✅ 匹配前缀长度16192.0.0.0/8→ 掩码255.0.0.0 →192.168.1.100 255.0.0.0 192.0.0.0✅ 匹配前缀长度80.0.0.0/0→ 通配所有IP始终匹配前缀长度0→ 所有4条都匹配但**/24 是最长前缀** → 路由器选择192.168.1.0/24对应的下一跳R1进行转发通常是直连本地网段无需再查ARP直接二层交付。 补充现代路由器使用高效数据结构如Trie树、LPM专用ASIC或Cuckoo Hash实现纳秒级查找保障高速转发。