自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 实践和原则,哪个更重要?tcp syncookie的问题和解法

测了一次tcp syncookie的抗D性能,发现了一件有趣的事情,周末写一篇随笔出来。请看下面的时序:简单讲就是在syncookie被触发的时候,客户端可能会被静默丢掉最多3个字节,所谓静默就是客户端认为这些字节被收到了(因为它们被确认了),然而服务端真真切切没有收到。关于这个POC也非常简单://$ cat poc.c#include <stdio.h>#include <stdlib.h>#include <string.h>#include &l

2021-04-17 07:51:55 12954 9

原创 从电话网到IP互联网再到CDN

电话网中的操作,最终目标是找到一根通往被叫端的插口,然后把主叫来自的电线插入被叫的插口。这显然是一个中心化的操作。TCP/IP网络中的操作,最终目标是找到一台标识目标IP地址的主机,中间节点的操作显然只是找到下一跳即可,这显然是一个分布式的操作。NDN/CDN网的操作,最终目标是找到内容,只要遇到匹配(摘要签名对应,这涉及到了非对称密码技术)的内容,返回即可。我们一直都觉得TCP/IP网络很完美,但我们在互联网中的所有操作真的是为了寻址一个IP地址吗?我们寻址的明明是内容啊。进一步,地址能标识内.

2021-04-10 11:25:44 6655 6

原创 UDP实现高并发其实非常简单(续集)

上周放假时跟着小小学python,就写了一个所谓 “高并发UDP服务器” ,详见:https://blog.csdn.net/dog250/article/details/115413967之所以这么写是因为我想让UDP服务看起来像TCP服务而已,但还是发现了新东西。我所谓的 服务 ,专门指的是那种长连接,高并发的服务。在上面这个随笔里,我的观点是 让socket的数量上去,并发也就上去了,剩下的就交给CPU了 ,因此最直接的方式就是预先创建海量的reuseport UDP socket,bind到

2021-04-10 09:56:56 6957 1

原创 伪造ACK实现TCP数据注入

TCP创造并发展于1970年代~1980年代,这注定了它能工作但脆弱。在TCP伊始,最重要的是可用,而不是高效,也不是安全,因此,在端到端TCP连接的中间,利用伪造的ACK,你很容易完成一种叫做 中间人攻击 的事情。如果你用“TCP劫持”,“TCP中间人”,“TCP注入”等作为关键词百度或者Google,绝大部分内容都在SYN报文上做文章,诸如会话Reset,会话劫持,SYN Flood攻击等等,但实际上还有更好玩的恶作剧。通过在中间路径上伪造ACK,你可以:提前确认数据,扰乱TCP的ACK时钟,

2021-04-04 13:09:23 6561 8

原创 UDP实现高并发其实非常简单

UDP越来越被重视了,人们期望它和TCP一样,但是呢?…UDP能不能像TCP那样做高并发?内核早在3.9版本就支持REUSEPORT了,但直到2015年底,我也只能做个表面上(看起来像那么回事,但实际上就是垃圾的东西)的东西:https://blog.csdn.net/dog250/article/details/17061277但也只是看起来像,除此之外,我当时的想法相当于垃圾。UDP做高并发非常简单,和TCP的accept模型似乎没有什么区别,下面是一个随手撸的代码,主要是跟着小小学pytho

2021-04-03 11:30:03 6734

原创 隐藏与篡改Linux命令行参数

如果一个程序的命令行是一个password之类的不便展示的字符串,如何不让ps打印出来呢?ps是从/proc/$pid/cmdline里拿的命令行,而/proc/$pid/cmdline则是在内核空间解析用户程序的stack区域获取的数据,那么答案很简单,只需要覆盖掉这个区域即可,下面是个示例:#include <stdio.h>#include <stdlib.h>#include <string.h>int main(int argc, char **ar

2021-04-03 08:31:10 11492 8

一个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关注的人

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