最近在看内核网络协议栈的代码,打算写几篇文章记录下。本文是关于IPv4及IPv6相关的内核源码走读,包括IPv4/IPv6的初始化,以及IP报文的接收和发送。
2025年08月05日
最近在看内核网络协议栈的代码,打算写几篇文章记录下。本文是关于IPv4及IPv6相关的内核源码走读,包括IPv4/IPv6的初始化,以及IP报文的接收和发送。
2025年08月05日
用户层:用户数据
传输层:8个字节udp头+用户层
网络层:20个字节的ip头 + 传输层
链路层:14个字节的以太网头 + 网络层
2025年08月05日
首先要从术语offload说起,offload指的是将一个本来有软件实现的功能放到硬件上来实现,这样就可以将本来在操作系统上进行的一些数据包处理(如分片、重组等)放到网卡硬件上去做,降低系统CPU消耗的同时,提高处理性能。在neutron中,基于VXLAN的网络虚拟技术给服务器的CPU带来了额外的负担,比如封包、解包和校验等,VXLAN的封包和解包都是由OVS来完成的,使用VXLAN offload技术后,VXLAN的封包和解包都交给网卡或者硬件交换机来做了,那么网卡的VXLAN offload技术就是利用网卡来实现VXLAN的封包和解包功能。
2025年08月05日
Surftrace 是由系统运维 SIG 推出的一个 ftrace 封装器和开发编译平台,让用户既能基于 libbpf 快速构建工程进行开发,也能作为 ftrace 的封装器进行 trace 命令编写。
项目包含 Surftrace 工具集和 pylcc、glcc(python or generic C language for libbpf Compiler Collection),提供远程和本地 eBPF 的编译能力。通过对 krobe 和 ftrace 相关功能最大化抽象,同时对各种场景下的追踪能力增强(比如网络协议抓包),使得用户非常快速的上手,对定位问题效率提升 10 倍以上。