2. 网络基础回顾

中央网关是整车网络的“交通枢纽”,它同时面对 CAN、LIN、以太网、FlexRay 等多种链路,还要完成跨网段报文转发、诊断路由与服务发现。若对 OSI/TCP/IP 分层、IP 编址、交换与路由的基本机制没有清晰认识,后续做网关路由表配置、VLAN 划分、静态路由与诊断寻址时就容易“知其然不知其所以然”。本章把与网关工程最相关的网络基础做一次系统回顾。

一、OSI 与 TCP/IP 模型:分层是排障的地图

OSI 七层模型把通信拆成物理层、数据链路层、网络层、传输层、会话层、表示层、应用层;TCP/IP 模型则简化为网络接口层、网际层、传输层、应用层。对网关工程师而言,分层的价值在于定位问题:链路不通先看物理层与数据链路层,IP 不可达看网络层,端口或连接异常看传输层,服务无响应看应用层。

在车载以太网中,物理层对应 100BASE-T1/1000BASE-T1 的 PHY 与线束;数据链路层对应 MAC、VLAN、ARP;网络层对应 IPv4/IPv6 与 ICMP;传输层对应 TCP/UDP;应用层则包括 DoIP、SOME/IP、HTTP 等。网关通常工作在三层(路由)或二层(桥接),部分场景还需做应用层协议转换。

分层排障口诀:先物理、再链路、后网络、再传输、最后应用。每层都有对应的工具与判据,避免一上来就怀疑应用代码。

二、IP 地址与子网划分:网关寻址的根基

IPv4 地址 32 位,常写成点分十进制。地址由网络号和主机号组成,子网掩码决定分界。例如 192.168.10.20/24 表示前 24 位为网络号,可用主机地址范围是 192.168.10.1~192.168.10.254,广播地址为 192.168.10.255。网关接口必须与所连子网同网段,否则无法直接通信。

子网划分的本质是“借主机位当网络位”。借 1 位得到 2 个子网,借 2 位得到 4 个子网。工程中常用 VLSM 按需分配,避免地址浪费。判断两个 IP 是否同网段,可用“IP 与掩码按位与”得到网络地址后比较。

# 判断 192.168.10.20/24 与 192.168.10.130/24 是否同网段
192.168.10.20  & 255.255.255.0 = 192.168.10.0
192.168.10.130 & 255.255.255.0 = 192.168.10.0
# 网络地址相同,属于同一子网,可直接二层通信

# 查看本机地址与路由(Linux 网关常用)
ip addr show
ip route show

车载网关常见做法是按功能域划分子网,如动力域 192.168.10.0/24、车身域 192.168.20.0/24、诊断域 192.168.30.0/24,网关在各子网各有一个接口地址,形成“多宿主”结构。

三、交换与路由基础:二层转发与三层选路

交换机工作在数据链路层,依据 MAC 地址表转发帧。它通过源 MAC 学习、目的 MAC 查表、未知单播泛洪、广播泛洪来完成转发。VLAN 用于隔离广播域,Trunk 口用 802.1Q 标签承载多 VLAN,Access 口则属于单一 VLAN。

路由器工作在网络层,依据路由表选路。路由来源包括直连路由、静态路由和动态路由。网关工程中最常用的是静态路由,因为它可控、可预测。路由匹配遵循“最长前缀匹配”原则:掩码越长越优先。

# 在网关 Linux 侧添加静态路由示例
ip route add 192.168.20.0/24 via 192.168.10.1 dev eth0
ip route add 192.168.30.0/24 via 192.168.10.2 dev eth0

# 查看路由表
ip route show
# 192.168.20.0/24 via 192.168.10.1 dev eth0
# 192.168.30.0/24 via 192.168.10.2 dev eth0

交换与路由的关键区别:交换看 MAC、在同一广播域内转发;路由看 IP、跨广播域转发。网关往往两者兼具——内部用 VLAN 交换,跨域用路由转发。

四、常见网络设备与接口类型

车载网络中常见设备包括:交换机(含 TSN 交换机)、网关、域控制器、诊断接口 OBD、以太网 PHY、CAN 收发器。接口类型则包括 100BASE-T1、1000BASE-T1、CAN/CAN FD、LIN、FlexRay,以及诊断常用的 DoIP 以太网口。

设备/接口工作层次典型用途网关关注点
TSN 交换机二层车载以太网多节点互联VLAN、优先级、时间同步
中央网关二/三层跨域路由与协议转换路由表、防火墙、诊断路由
100BASE-T1物理层车载以太网 100MPHY 状态、链路速率
CAN FD数据链路层动力/车身报文报文路由、信号映射
DoIP 接口应用层诊断刷写与读取诊断地址、逻辑连接

五、案例场景:一次跨域诊断路由配置

假设诊断仪通过 OBD 以太网口接入网关,诊断域为 192.168.30.0/24,目标 ECU 位于车身域 192.168.20.0/24。网关需在诊断接口与车身域接口之间建立路由,并放行 DoIP 端口 13400。

# 网关路由与防火墙配置示意
ip route add 192.168.20.0/24 via 192.168.20.1 dev eth1
iptables -A FORWARD -p tcp --dport 13400 -j ACCEPT
iptables -A FORWARD -p udp --dport 13400 -j ACCEPT

# 验证连通性
ping -c 3 192.168.20.10
tcpdump -i eth1 port 13400

若诊断仪无法访问目标 ECU,按分层排查:先确认物理链路与 PHY 状态,再确认 VLAN 与 MAC 学习,然后检查网关路由表与防火墙,最后确认 DoIP 逻辑地址与目标 ECU 响应。

工程建议:网关路由表应保持“最小必要”原则,只放行确实需要的网段与端口;每条静态路由都要有注释说明用途与责任人,便于后期维护与审计。

六、常见误区与复盘

  • 误区一:同网段却配了网关。同子网通信不需要网关,错误配置可能导致流量绕行或丢包。
  • 误区二:掩码写错导致“看似同网段”。例如 /24 写成 /16,会把不同子网误判为同网段,造成路由异常。
  • 误区三:只配路由不配防火墙。Linux 网关默认 FORWARD 策略可能丢弃流量,需显式放行。
  • 误区四:忽略 VLAN 与 Trunk 配置。二层不通时,先查 Access/Trunk 与 PVID,再查三层。
  • 复盘要点:每次跨域不通,按“物理→链路→网络→传输→应用”逐层验证,并保留 tcpdump 与路由表快照。
OSI/TCP-IP 分层 · IP 子网 · 交换与路由 · 网关接口 OSI 七层 / TCP-IP 四层 应用层 DoIP / SOME-IP / HTTP 传输层 TCP / UDP · 端口 网络层 IPv4 / IPv6 · ICMP · 路由 数据链路层 MAC · VLAN · ARP 物理层 100/1000BASE-T1 · PHY 分层排障顺序 物理 → 链路 → 网络 → 传输 → 应用 每层有独立判据与工具 避免越层猜测 IP 子网与路由决策 动力域 192.168.10.0/24 车身域 192.168.20.0/24 诊断域 192.168.30.0/24 最长前缀匹配 /32 > /24 > /16 > 默认路由 掩码越长,优先级越高 路由表关键字段 目的网段 / 掩码 / 下一跳 出接口 / 度量值 直连 · 静态 · 动态 交换 vs 路由 交换:MAC 表 · 同广播域 路由:IP 表 · 跨广播域 VLAN 隔离广播域 中央网关与接口 中央网关 二层桥接 + 三层路由 100BASE-T1 / 1000BASE-T1 车载以太网 PHY CAN / CAN FD 报文路由与信号映射 LIN / FlexRay 低速与确定性链路 DoIP / OBD 诊断口 端口 13400 · 逻辑地址 网关配置要点 路由表最小必要 防火墙显式放行 VLAN 与 PVID 一致 保留 tcpdump 快照 分层 承载

掌握以上基础后,再看中央网关的路由表、VLAN 配置与诊断路由,就能把“报文从哪来、到哪去、经过哪几层、在哪一跳被丢弃”讲清楚。这是后续学习网关路由策略、网络管理与诊断路由的必要前提。