分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
前段时间研究了一下bpf,我一直期待有个什么编译器可以把顺手写来的C代码编译成bpf字节码,然后作为iptables的一个match注入到内核…抑或直接用于我的n+1模型。当我把这个需求告诉温州皮鞋厂老板的时候,温州老板研究了几天后,告诉我一个叫做bcc(http://iovisor.github.io/bcc/)的东西,这玩意儿可以把C语言写成的代码编译成bpf字节码…这不正是我想要的吗?…
这个周六是陌生的一天,凌晨3点起床开始总结这篇文章,这注定是一篇比较轻松的文章。
本文依旧以DDoS防护为背景来说一种新的方案
欲望
在你了解了Linux内核协议栈的运作机理后,你是不是一直都有一种在协议栈的某个部分挂HOOK的欲望,不要说你没有。
人们总是觉得Linux协议栈实现得不够好,特别是性能方面,所以在这种不信任的基调下,人们当然很自信地觉得把数据包从协议栈里拉出来,自己会处理得比内核协议栈要好,但是,真的是这样吗?我来猜测几点背后的原因。
首先,这可能是因为Linux协议栈是作为内核一个子系统套件存在的,它无法脱离内核作为一个模块存在,这就意味着如果你改了其实现的细节,就必然要重新编译内核并重启系统,别看这么简单的一个操作,对于很多线上系统是吃不消的,这就跟Windows装完软件要重启系统(重启系统仅仅就是为了重新加载注册表,windows设计者是省事了,用户烦死了!)一样烦人,所以,人们自然而然地需要一种动态HOOK的机制,在里面可以实现一些自己的逻辑。
其次,Linux内核协议栈说实话真的扛不住高并发,大流量,特别是它是在20世纪90年代作为一个通用操作系统实现的,只是后来从Linux社区迸发的一种文化让其逐渐深入各