自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 资源 (4)
  • 收藏
  • 关注

原创 eBPF/sockmap实现socket转发offload

我们已经对eBPF将网络转发offload到XDP(eXpress Data Path)耳熟能详,作为Linux内核的一把 “瑞士军刀” ,eBPF能做的事情可不止一件,它是一个多面手。socket数据offload问题通过代理服务器在两个TCP接连之间转发数据是一个非常常见的需求,特别是在CDN的场景下,然而这个代理服务器也是整条路径中的瓶颈之所在,代理服务器的七层转发行为极大地消耗着单机性...

2019-12-25 22:46:24 10904 3

原创 eBPF程序之间的协作-简单实现一个xdpdump

前不久,很多人问我有没有用过xdpdump,它是什么原理。当然,当时我是没有用过的,也就没有多说,不过我答应大家一旦我了解了之后,肯定会第一时间给大家介绍。最近在写一些测试小程序的时候,偶然间也有了XDP抓包的需求,也就顺便熟悉了一下xdpdump,最终,我自己写了一个简单的,主要是阐明它的原理。当然了,经理没有看这篇文章的必要。在XDP抓包不能使用tcpdump,因为tcpdump是基于...

2019-12-24 21:38:10 13847 2

原创 也谈谈公有云

先看一篇文章:Building backbone network infrastructure: https://connectivity.fb.com/news/fiber-optic-cable/看看FB干的事情,够宏伟吧。其实,不光FB,Google,AWS,甚至BAT都正在干或者准备干类似的事情…发生了什么。很早之前就看过一篇文章,就有人预测,公有云巨头最终会吃掉所有的网络设备厂...

2019-12-22 18:20:56 6143 5

原创 Linux 5.4一个关于SCHED_IDLE的小优化

一直在关注Linux内核调度器的相关进展,最近的一个关于SCHED_IDLE的小优化特别有意思。详情参见下面的lwn:https://lwn.net/Articles/805317/下面是其包含的patchset:https://lore.kernel.org/lkml/cover.1561523542.git.viresh.kumar@linaro.org/简单来讲,就是说:为一个进...

2019-12-21 09:05:29 4647

原创 eBPF对TCP listen socket lookup的逻辑进行重定义

eBPF让Linux内核(其它OS内核对eBPF的支持,我不清楚,仅谈Linux)本身变得可编程,前面我已经展示了eBPF很多的trick用法,本文我来展示如何让eBPF干涉socket的查找。我们知道,数据包到达四层后,会进行socket查找,以TCP为例,这个过程在tcp_v4_rcv函数中执行,所谓的查找过程就是一个简单的hash查找,然而hash查找算法的执行过程会随着输入数据的不同而产...

2019-12-20 17:28:28 4643

原创 Netfilter-Add support for hardware offloads

终于,该来的陆续都来了。例行浏览lnw,发现了个好玩的:netfilter: add hardware offload infrastructure: https://lwn.net/Articles/793080/玩Netfilter已经好多年了,这么多年Netfilter因为性能问题一直被诟病,但是说实话,直到现在我都不觉得Netfilter的性能低是个问题:iptables规则太...

2019-12-13 16:10:31 12169

原创 OpenVSwitch数据面流表cache机制浅谈

稍许笔墨写了一篇关于OpenVSwitch(以下简称OVS)的文章:https://blog.csdn.net/dog250/article/details/103492099但有些事情并没有说清楚。关于OVS的流表是如何映射成数据平面的Flow cache的,有必要单独写一篇文章来说一下。下面的Paper描述了整个过程的来龙去脉,不可不读:http://www.openvswitch....

2019-12-12 20:20:04 6110 3

原创 从总线式以太网到SDN交换机OpenVSwitch

本文结合自己的经历梳理一下以太网交换机发展的脉络。史前注定爆发的,必有缘由。以太网已经发展了30~40多年,我们必须从头说起。总线以太网最开始的以太网是总线以太网,所有的站点主机均连接在一条总线上,通过网桥可以连接两根总线:#####pic此时以太网的所有操作均在站点主机侧完成。总线以太网唯一的智能操作就是传输仲裁,这个是通过CSMA/CD来完成。总线以太网的特征在于: 中间没有盒...

2019-12-11 22:42:08 5482 1

原创 我对智能网卡offload的认识

传统的互联网服务处理模型是这样的:这是一个必须拆东墙补西墙的模型,整天不是这里CPU高了就是那里CPU爆表了,完全就是一脬屎。协议栈处理在软中断中进行,它可能是附着在任意进程上下文的,取决于中断发生时的current,如果这部分处理路径过长,留给业务处理的CPU时间便不多了,此外,CPU cache亲和力也是必须要考虑的。反之,如果业务逻辑处理很繁重,那就势必会造成网卡和软中断处理的积压。...

2019-12-08 09:02:52 7756 1

原创 Linux flow offload提高路由转发效率

凡是正确的东西,该来的最终还是会来的。 (当然了,经理可能也有同感。)来看看几年前我写的文章:利用nf_conntrack机制存储路由,省去每包路由查找: https://blog.csdn.net/dog250/article/details/24101425在Linux的连接跟踪(nf_conntrack)中缓存私有数据省去每次查找: https://blog.csdn.net/dog...

2019-12-07 08:38:52 19264 1

一个iptables的stateless NAT模块实现

如果你在寻找Linux上配置诸如Cisco设备上的static双向NAT的方法,这个或许就是你想要的; what?你觉得它完不成PAT?是的,它不行。但是想做PAT为何不使用现有的iptables实现呢?它可以自动为你解决元组唯一性问题。不要从概念上分析,事实上,static双向NAT是完全对称的,一对一的 ,也只有在BOX两边的网络在拓扑级别是完全对等的情形下,这种NAT或许才是有用的,Cisco设备经常处在这样的位置,比如一个很大的stub节点的出口位置,比如两个domain的中间位置... 我将名字取为STATIC-2-WAY-NAT,比较长也比较怪,完全不符合UNIX的小写短名传统,我的想法是:这样可以少写很多的帮助信息,因为名字就是自解释的。

2014-12-27

模块化的nf-HiPAC

原版的nf-hipac需要为内核打patch,且只支持较低版本的内核,构建起来相对比较麻烦。 模块化后的nf-hipac可以直接作为内核可加载模块编译,且适配了高版本的Linux内核。为了移植工作简化,去掉了和iptables模块的联动支持!

2014-11-21

配置文件还有一些other

代码和配置iptables配置文件,还有一些别的东西

2010-04-16

关于linux内核以及其他个人体会的文集

本文集是我用将近两年的时间写成的,大多数文章是关于linux内核的,另外还有一些我自己对计算机的理解,还有一些历史,音乐方面的东西。适合于对linux内核思想感兴趣的阅读,文章偏重于对于思想的理解。

2009-09-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除