1.1 接收过程
Linux 在网络包接收在 IP 层的入口函数是 ip_rcv。网络在这里包碰到的第一个 HOOK 就是 PREROUTING。当该钩子上的规则都处理完后,会进行路由选择。...return NF_HOOK(NFPROTO_IPV4, NF_INET_LOCAL_IN, skb, skb->dev, NULL,
ip_local_deliver_finish..., skb, NULL,
skb_dst(skb)->dev, dst_output);
}
上面的 NF_HOOK 将发送数据包送入到 NF_INET_LOCAL_OUT (OUTPUT...其实除了接收和发送过程以外,Linux 内核还可以像路由器一样来工作。...return NF_HOOK(NFPROTO_IPV4, NF_INET_FORWARD, skb, skb->dev,
rt->dst.dev, ip_forward_finish)