论文部分内容阅读
在网络通信中,为了满足应用的需要,常常在数据包中添加特定的协议头部。例如,为了实现从IPv4数据包到IPv6数据包的转换,可以在原IPv4报头前封装上相应的IPv6报头;在以太网中,为了保证应用的QoS需要,可以在数据链路层报头之后封装上MPLS标记。这种在数据报头的固定位置封装固定长度协议头的方式,称为隧道模式。传统的隧道封装方式需要重新在内存中申请skb空间,需要重新拷贝整个数据包,这样的重复内存拷贝降低了系统的性能,并不是必要的。本文在内核代码的层次,分析了数据包的网络处理流程,并修改了Linux的