Netfilter,iptables/OpenVPN/TCP guard:-(

我不会编程,但也不是一点都不会,我稍微会一些 :-)

Linux socket hash查找的持续优化历程

最新的Linux 4.17内核为TCP Listener socket的查找增加了一个2nd hash,这大大提升了协议栈收到连接建立请求包时查询Listener socket的效率。我们先从下面的汇总中管中窥豹:https://lkml.org/lkml/2018/1/31/589: 4...

2018-05-30 08:19:04

阅读数:3156

评论数:6

关于Linux UDP/TCP reuseport 二三事

聊到reuseport,大致要从四年前说起。 OpenVPN-以往的故事 当时要优化OpenVPN的并发性能,了解到socket有一个reuseport特性,于是非常兴奋,本着拿来主义的想法,无非就是在OpenVPN的源码里加一个setsockopt吧…我们当时基于Linux 2.6.32...

2018-05-26 08:19:23

阅读数:11953

评论数:2

关于TUN/TAP网卡二三事以及物理网卡Ring buffer

初识TUN/TAP虚拟网卡是因为OpenVPN,至今已有八个年头了,后来断断续续跟这块网卡打交道,从OpenVPN,到用户态协议栈,再到packetdrill。不管怎么说,我觉得这块虚拟网卡是那种可以让人眼前一亮的东西,小巧,简单,用它可以做很多比较复杂的事情。   也因此,我曾经几乎没有关注过...

2018-05-25 05:31:51

阅读数:3523

评论数:5

架构决定可扩展性--重排和压缩/分组交换网

最近跟朋友又聊起我对iptables规则的重排优化,同时就想到了压缩。 重排和压缩 按照matches重排而不是按照rule排列规则,这便可以将一系列线性的规则组织成一棵查找树,差别是什么?差别就是定位规则的时间变短了,同时代价重排后的规则集占用的空间变大了,毕竟我们进行了小区间的细分。 ...

2018-05-20 07:38:55

阅读数:11478

评论数:3

架构决定可扩展性--聊聊用户态协议栈的意义

嗯,很多人都是DPDK粉,所以不能得罪。就像我只要一写编程者怎么怎么地就会得到一堆踩一样,我不得罪群体。

2018-05-19 06:30:26

阅读数:11830

评论数:2

Linux系统下深究一个malloc/brk/sbrk新内存后的page fault问题

有耳可听的,就应当听 —《马可福音》 周四的休假团建又没有去,不因别的,只因年前东北行休假太多了,想缓缓…不过真实原因也确实因为假期剩余无几了…思考了一些问题,写下本文。   本文的缘起来自于和同事讨论一个关于缺页中断按需调页的讨论。真可谓是三人行必有我师,最近经常能从一些随意的比划...

2018-05-18 16:49:59

阅读数:10749

评论数:12

非常有意思的Flowlet

周五了解到一个叫做Flowlet的东西,比较有意思。大体上说来,它是由一个问题而引出的一个解决方案,由于理解还不够深入,所以也暂时只能这么说。   我先从问题说起。 ISP的动态负载均衡 由于公共骨干网上流量的不确定性,每一条链路的负载不尽相同,为了保证总带宽的最佳利用率,ISP往往会做一些...

2018-05-12 10:41:01

阅读数:11998

评论数:4

六度分隔,邓巴数和幂律如何主宰我们的社交网络

在研究社交网络的时候,首先要知道社交网络是一种无标度网络,而无标度网络受幂律的控制,这个要作为基本前提。   接下来,我们来看一下什么是六度分隔。   六度分隔说的是,你只需要经由最多6个人,就能联系到世界上任何地方的任何其它人。注意,仅仅是通过6个人建立联系,而这并不意味着你们可以通过6个人...

2018-05-09 08:31:18

阅读数:3225

评论数:2

合并N个有序链表与FQ公平调度

下大雨了,于是就想表达一些只有下雨才能表达的东西。夜半酒酣惊觉起,使我流泪忆江南…前天晚上下班带着小小在暴雨中狂奔,非常舒服,其实也算是流言终结者吧。反驳一下几千年来在我国北方通过长辈代代相传的淋雨和感冒之间的因果关系。   昨天早上很早起来,听雨作文,今天早上继续,文章不算太长。 合并两个有...

2018-05-09 06:11:55

阅读数:11154

评论数:3

简单的算法编程题-任意段落按照单词逆序输出

把这个问题抛给温州皮鞋厂老板,老板直接就说这个题目的本意是让你提出stack的解决方案。   what?stack?too low!   因为这么个问题还要实现一个stack有点场面大了,事实上谁不知道你把一个个单词push进去,然后再pop出来不就好了吗?所以说stack方案太通用,不足挂齿...

2018-05-06 02:15:03

阅读数:11806

评论数:3

NAT后面的设备如何定位

这是一篇trick短文,这是一篇不靠谱的hack短文。   系统中有一个数据集,即peer metric,在sysctl中就是: net.ipv4.tcp_no_metrics_save 这么一个参数。它包含了任意一个peer的以下字段: enum { RTAX_UNSPE...

2018-05-06 00:58:11

阅读数:10872

评论数:1

我对TCP协议的一点形而上的看法

近期和朋友交流聊到一个话题,即TCP的未来。我的观点很简单,即: 从纯技术的角度,TCP已经不再合时宜,早该被淘汰了; 从生态的角度,TCP会持续进化下去,且会越来越庞大臃肿。 我们知道,TCP/IP构成的互联网本身就是一个巨大的持续进化的生态系统,其中任何一个组件都不能被统一替换,你想让...

2018-05-06 00:33:22

阅读数:10960

评论数:5

TCP BBR失速控制的一个小trick一个小patch

昨晚凌晨抵达深圳,今早时间有限,于是就长话短说,但无论如何还是会有一些输出的,这次关于BBR。我曾经说过,我是不需要太多睡眠的,凌晨3点睡,照样早上6点起,应该可以把华为的人熬到cusi吧…不得而知了。   晚上的火车上,手机充电很难,于是我拿着纸笔比划着一些传统的东西,好不容易蹭到了一个充电桩...

2018-05-05 11:37:38

阅读数:11381

评论数:5

有序链表合并C语言递归版--我稍微会一点编程

假期最后一天,闲着没事编个程,天天吆喝自己不会编程,其实还是稍微会一点的。   以下是一个有序链表合并的代码,一刻钟内盲写,花了10分钟左右调试通过,通篇只有一个if语句作为递归退出条件! #include <stdio.h> #include ...

2018-05-01 11:14:07

阅读数:10710

评论数:5

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