使用 eBPF 技术实现更快的网络数据包传输
出处:
mp.weixin.qq.com
作者:
张晓辉
在 上篇文章 用了整篇的内容来描述网络数据包在 Kubernetes 网络中的轨迹,文章末尾,我们提出了一种假设:同一个内核空间中的两个 socket 可以直接传输数据,是不是就可以省掉内核网络协议栈处理带来的延迟? 不论是同 pod 中的两个不同容器,或者同节点的两个 pod 间的网络通信,实际上都发生在同一个内核空间中,互为对端的两个 socket 也都位于同一个内存中。而在上篇文章的开头也总结了数据包的传输轨迹实际上是 socket 的寻址过程,可以进一步将问题展开:同一节点上的两个 socket 间的通信,如果可以 快速定位到对端的 socket -- 找到其在内存中的地址,我们就可以省掉网络协议栈处理带来的延迟。