02 IPv4 与传输层机制与实现详解

02 IPv4 与传输层机制与实现详解

1. 目录与配置

net/ipv4/~135 文件),依赖 CONFIG_INET

提供 AF_INETPF_INET):IPv4 地址族、TCP/UDP/RAW/ICMPIGMPARPFIB 路由

2. 协议注册

af_inet.c 在初始化时注册 inet_proto_ops

  • socketinet_create
  • 协议号映射到 tcp_protudp_protraw_protstruct proto

3. 传输层

协议 主要源文件 要点
TCP tcp_*.c(ipv4 + 通用) 状态机、拥塞控制(可插拔 CC)、timewait、SACK
UDP udp.c 无连接、udp_sendmsg/udp_recvmsg
RAW raw.c 原始 IP 访问
ICMP icmp.c ping、差错报文

MPTCPnet/mptcp/ 扩展 TCP(CONFIG_MPTCP)。

数据路径(发送简化):

1
sock_sendmsg → tcp_sendmsg → ip_queue_xmit → dst → dev_queue_xmit

4. 路由与 FIB

组件 作用
fib_*.c 转发信息库、策略路由、FIB rules
route.c ip_route_output_keyfib_lookup
arp.c IPv4 ARP

policy routingip rule)在 FIB 规则层实现。

5. Netfilter(IPv4 侧)

net/ipv4/netfilter/iptables 兼容defragNAT 片段 等;核心 hook 框架在 net/netfilter/(见 04 文档)。

Hook 点:NF_INET_PRE_ROUTINGLOCAL_INFORWARDPOST_ROUTING 等。

6. 隧道与特殊

目录/文件 功能
ip_tunnel.c IPIP/GRE 等
xfrm4_*.c IPsec 与 net/xfrm 协作
bpfilter/ 实验性 iptables BPF 代理

7. RK3588 场景

  • 板载以太网:默认 DHCP/静态 IP 走 ipv4 FIB + ARP;
  • NAT/防火墙netfilter + iptables-nft
  • WiFi STA:同一 ipv4 栈,接口为 wlan0
  • 性能:调整 tcp_congestion_controlnetdev_max_backlogsomaxconn

专文:rk3588-kernel-6.1-net-ipv4分析_zh.md

8. 小结

ipv4/ 是 RK3588 最常见 L3/L4 路径;与 drivers/net 分界在 ip_finish_output2 → 邻居解析 → 驱动发送

文章互动

阅读 --

留言

0 条留言

正在加载留言…