IPv6 网络数据包处理机制详解
在当今的网络环境中,IPv6 已经逐渐成为主流,其数据包的处理机制对于网络的高效运行至关重要。下面将详细介绍 IPv6 数据包的接收、转发、组播处理以及相关协议的工作原理。
1. IPv6 数据包转发机制
IPv6 数据包的转发与 IPv4 有很多相似之处,但也存在一些细微的差别。例如,在 IPv6 中,转发数据包时不计算校验和,因为 IPv6 报头中根本没有校验和字段。
以下是 ip6_forward() 方法的详细分析:
int ip6_forward(struct sk_buff *skb)
{
struct dst_entry *dst = skb_dst(skb);
struct ipv6hdr *hdr = ipv6_hdr(skb);
struct inet6_skb_parm *opt = IP6CB(skb);
struct net *net = dev_net(dst->dev);
u32 mtu;
// 检查 IPv6 procfs 转发项是否设置
if (net->ipv6.devconf_all->forwarding == 0)
goto error;
// 处理 Large Receive Offload (LRO)
if (skb_warn_if_lro(skb))
goto drop;
// 检查安全策略
if (!xfrm6_policy_check(NULL, XFR
超级会员免费看
订阅专栏 解锁全文
58

被折叠的 条评论
为什么被折叠?



