自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大众棋牌管理网最高返水: Netfilter,iptables/OpenVPN/TCP guard:-(

本文来源:http://www.sbo661.com/www_cnr_cn/

申博真人游戏登入,培育和弘扬核心价值观,有效整合社会意识,是社会系统得以正常运转、社会秩序得以有效维护的重要途径,也是国家治理体系和治理能力的重要方面。通过与李昌钰博士的合作,今后所有人都可以在vipabc的教学平台上,接触到优质的法律、鉴识知识和服务。有关普惠性民办幼儿园的收费,将由举办者在与政府约定的最高收费标准范围内确定;其他民办幼儿园的收费项目和标准,由举办者按照办学成本并适当考虑合理回报确定,报县(市、区)价格行政部门备案,依法享受国家和省规定的税费优惠,任何单位和个人不得违反国家和省有关规定向幼儿园收取费用。立德树人,以师为范。

市委书记陈晓东(左一)、李昌钰博士夫妇(左二、三)、国务院侨务办公室副主任谭天星(右一)共同为博物馆揭牌  李昌钰博士是美国历史上第一位出任州级警政首长的华人,一生参与了59个国家的刑案侦查,获得800多项荣誉,获颁无数勋章奖章,被誉为“华人神探”。具体办法由省、自治区、直辖市制定。有人会选择勤工助学,通过打工或兼职获取收入。要用法律来推动核心价值观建设。

“特权”那些事儿发布会伊始,是一部悠长的纪实电影。  2017年将会有一批新的VR设备上市,包括华硕的ZenFoneAR和宏碁的VRHMD等,但是有些市场观察员担心VR/AR生态系统或许尚未成熟,还不足以为厂商们创造可观的收益。JuniperResearch调查结果显示,2014年受OTT服务商抢夺市场影响,全球电信运营商的短信和语音收入减少了140亿美元。●优惠1.5万元  作为国内曾经的中级车龙头之一的本田雅阁,如今在众多新品的打击下,多少显得有些力不从心,如今不得不靠降价来重新吸引消费者。

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

  • 博客(1712)
  • 资源 (4)
  • 论坛 (5)
  • 收藏
  • 关注

原创 闲谈IPv6系列文章集锦

本文总结一个目录提纲,只要是给自己看的,记录一下哪些东西已经总结过了。闲谈IPv6-6to4隧道和ISATAP隧道: /blog_csdn_net/dog250/article/details/88644797闲谈IPv6-说说IPv6地址分配和BGP: /blog_csdn_net/dog250/article/details/88430415闲谈IPv6...

2019-03-18 22:38:43 35782 15

原创 漫谈TCP Vegas如何收敛到公平

TCP Vegas,嗯,TCP维加斯,维加斯,你好。Vegas是一个典型的AIAD算法。我不是常说AIMD可以收敛到公平吗?这是有控制论作为理论基础的,AIAD,MIMD无论如何都不可能收敛,它们要么原地打转,要么正反馈到彻底失控。知道你的魔改为什么让事情更糟糕了吗?因为你不懂控制论,你的魔改可能造成了正反馈,类似把话筒对着喇叭的那种。可是Vegas就是一个AIAD算法啊。Why Vegas?其它算法都是在到达同步点实施Decrease操作的,可是Vegas的同步点是分布式的,所以在任何一个

2021-02-15 20:26:11 170

原创 漫谈TCP Westwood和BBR

我很想知道westwood算法的深意,不仅仅是算法本身,还包括它的名字。是的,为什么叫westwood?有朋友告诉我这是一个地名,并建议我去美国西海岸转一圈,然后我就发现IT圈子里不明所以看起来高大上的名字都是地名,并不比石家庄,驻马店,后厂村,西二旗什么的高级,我就放心了,原来如此。后来我在wiki上确认了一下,果然如此:The name “Westwood” was chosen by S. Mascolo as due homage to the home of UCLA where he w

2021-02-13 22:22:07 267

原创 漫谈bufferbloat以及TCP公平性

昨天大年三十下了一整天雨,去了一趟上海迪士尼,非常惊喜,人非常少,全程不用排队,几乎玩遍了所有的项目,估摸着以后是不会再去了。如果没有人排队,那些占地面积巨大的迂回曲折的综合排队设施就很尴尬地完全成了摆设,但你依然不得不 “迂回曲折” 地经过它们,即便是一路小跑,也要花不少的时间绕过那九曲回廊,如果你是第一次去,还以为穿过这种迷宫式的九曲回廊是项目的一部分呢。…都没人排队了,要这些排队设施还有什么用?本文接着前天那篇接着写:/blog_csdn_net/dog250/article/

2021-02-12 08:31:17 1489 2

原创 漫谈BBR算法的收敛点和公平性

明天大年三十,去趟迪士尼,今天下班早,睡前写下这篇,结束这一农历年。其实写这篇的初衷起因于我对那些看见4个窗口就想加到8个窗口的人鄙视,并且这些人几乎都是狂暴之人,我发现那些做业务逻辑的只要懂点TCP都不会好好说话,事实上他们大多数人什么都不懂,只有什么都不懂的人才会自以为是,天天鄙视别人。对于TCP的优化,我听过无数遍 “丢包就慢点降窗,不丢包就快点增窗呗,这还不简单!” 我只是觉得他们只想炫耀。就像我很讨厌网吧的网管以及阿里巴巴的运维一样,我也很讨厌那些对TCP夸夸其谈却给不出任何建设性建议的人,

2021-02-10 21:59:25 5088 9

原创 请不要裸操作sk_buff,请使用sk_buff的API

写这篇文章,我只是为了嘲笑我自己。我其实什么都不懂。我总是觉得sk_buff的API太难用了,但也可能是我不会用才会这么认为…无论如何,我一直不喜欢这个东西。为了证明TCP/UDP的校验和的脆弱性,我想演示一个效果,即交换一下TCP的payload的两个uint16值,它的校验和保持不变,所以我们必须为每一个文件单独再生成一个MD5文件。我的代码是这么写的:unsigned short *pstart, tmp;...tcph = (struct tcphdr *)((char *)iph +

2021-02-06 12:09:04 1230 1

原创 聊聊运营商对UDP的QoS限制和应对

UDP和运营商有什么关系?这个问题有点大且突兀。只要不是在三大运营商上班的,其实我们都是端到端用户,而端到端用户对于网络的认知必然是盲目的,我们不知道路由器对我们的流量做了什么,我们更没有能力去控制它们,我们只能猜测。本来一个技术范畴的讨论一旦涉及到了猜测,就不是技术讨论了,而是社会学讨论,这往往会带来无休止的辩论,争吵,在此其中,独占鳌头的往往不是靠技术实力,而是靠口才和措辞,或者还有夹杂着各种手势的抑扬顿挫。我是极其讨厌充斥着此类调调的场合的,我在这种场合往往会选择闭嘴,然后离开。人们无休止地讨

2021-02-06 11:33:48 7249 7

原创 漫谈TCP-AIMD/BBR的公平性以及buffer bloat

周三的时候,我发了一则朋友圈:aimd是公平的这个事实很容易从数学上证明,但是朴素的aimd会带来全局同步。解决reno家族全局同步的策略就是概率性随机丢弃,避免所有流同时md,然而bbr却没法从数学上证明这种策略是公平的,至少我是证明不了。。。周六早上3,4点钟自然醒,写篇意识流。了解TCP Reno/CUBIC的都应该知道,基于AIMD的Reno家族的窗口/时间曲线是一个锯齿状。锯齿看似是固有的,不可消除的,因为包括CUBIC在内的Reno家族CC(congestion control)

2021-01-30 08:28:39 6061 7

原创 简单基于tun实现的用户态NAT64

嗯,但还是想实现一个完整的用户态NAT64,今天上班,所以没多少时间,下班到家正好家人还没睡,在看殷墟考古(参与殷墟挖掘的尹焕章是我老婆的外婆的爸爸…鲜卑人的后裔…我老婆也是继承祖业,然而也仅仅是爱好,整天研究盗墓之类的把戏…),我也就可以再折腾一会儿了。写点感悟吧。昨天下午实现了一个NAT64简版,只是一个ICMP单流的NAT64转换,验证一下可信性而已。代码如下:/github_com/marywangran/simpletun/blob/main/tunnat64.c效果写在RE

2021-01-24 22:00:04 1896 2

原创 像玩乐高一样玩simpletun

netcat小巧而灵活,能应付各种你需要的网络测试。但要明白netcat所能应对的网络场景基本都和端到端有关,比如和TCP,UDP有关。网络还有另一面,即链路本身。如果你想模拟一个防火墙,模拟一个NAT怎么办?用netcat能做到吗?这个时候你可能就必须自己写内核模块了吧。Netfilter?eBPF?NFV?这些都太复杂了!可以在用户态完成的时候就尽量在用户态搞,简单稳定最重要。我推荐simpletun。simpletun并不是某个著名的开源软件,但是在网上一找可以找一大片,随便找一个杂耍即可

2021-01-23 08:51:03 7535 9

原创 长肥管道(LFT)中TCP的艰难处境与打法

一年多没有深夜惊起而作文了,又逢雨夜,总结一些思路。带宽一定的情况下,网络的吞吐理论上不受时延的影响,虽然管道长了一点,但截面积是一定的。然而当你用TCP去验证这一结论时,往往得不到你想要的结果:一个长肥管道很难被单条TCP连接填满(一条TCP流很难在长肥管道中达到额定带宽)!我们做以下拓扑:首先我测算裸带宽作为基准。测试接收端为172.16.0.2,执行iperf -s,测试发送端执行:iperf -c 172.16.0.2 -i 1 -P 1 -t 2结果如下:------

2021-01-23 08:19:15 2385 9

原创 谁动了你的五元组-nf_conntrack与NAT的性能

在互联网上一个五元组标识一个应用程序到远端的另一个应用程序的连接。要保证端到端的可达性,显然在全局范围内,五元组必须是唯一的。保证五元组的全局唯一性看起来是个重体力劳动,以IPv4网络为例,仅仅考虑TCP和UDP,一个五元组空间包括两个32位IPv4地址,两个16位端口以及一个协议,总共232×2+16×2+12^{32\times 2+16\times 2+1}232×2+16×2+1种组合。穷尽这么大一个空间来寻找一个没有被使用的元组绝对是重体力劳动。然而在分布式的互联网环境,五元组的全局唯一性其实

2021-01-16 10:50:20 1741 1

原创 网络Midbox处理TCP的方式对TCP吞吐的影响

昨天下班的路上,我发了一则朋友圈:今天抓到一条大鱼,隧道的TCP载荷吞吐提升一倍多,哈哈,周末愉快!很多隧道都用同一个线程处理同一个tcp流,这显然不对,应该用不同的线程分别处理一个流的两个方向。但很多用户态隧道都是同一个线程处理同一条tcp连接的,这是问题。这个问题在很多人看来真的很low,依然是那种不过如此的问题,因为怕被笑话,我故意把事情说的很low,但这只是一种措辞处理的技巧,本来这事儿就这么过去了。但深入思考是我的习惯,我发现这竟然是一个普遍的问题,就准备记录下来。这不是一个和性

2021-01-16 09:14:48 1759

原创 谁动了你的五元组-Linux Netfilter NAT之nf_nat_alloc_null_binding

Linux的Netfilter NAT实现中,为什么会有一个nf_nat_alloc_null_binding(在低版本内核比如2.6,它叫alloc_null_binding)调用?该函数是在一条流没有命中任何NAT规则的时候调用了,其内部实现和对待命中了NAT规则的流的方式几乎一样,唯一的约束是,它只能修改一条流的源端口。问题是,既然没有命中任何规则,为什么要修改流的源端口呢?我早就想好好解释一下这个问题了,但我一直觉得有人已经解释过了,所以就没有写任何东西。周二下午家里有事正好休假,等待期

2021-01-16 07:08:16 1684

原创 手艺人舍bpftrace而取systemtap的代价和思考

上个礼拜我就想喷eBPF了,由于周末时间实在太紧,就准备拖延一周,但还是立了个flag,先发了个朋友圈:ebpf就像牛皮藓一样,已经遍布在linux内核的各个角落,每个调用点都看上去很随意,毫无规划,让人觉得好像自己觉得哪里需要这么一个调用点并不很难…但实际上如果你真的去尝试在某处加一个ebpf调用点时,就会觉得这件事和清除牛皮藓的过程非常类似,修改散落在各个目录的多个文件,还得重新编译,大概率失败,还要重新做一次,很难一次做干净,当你好不容易成功了,会有一种“不过如此”的嗟叹…我曾将ebpf比

2021-01-09 08:25:47 9645 7

原创 Linux Netfilter/NAT的两个典型问题

上周有一天下班回家路上,在一个三流技术群被一群网络新手和大佬一起鄙视是什么感觉?只因为我在讨论Netfilter而没有说eBPF,XDP,DPDK?嗯,我必须好好说道说道。十年前以及更久,那是Netfilter的黄金时期,几乎任何网络相关的功能,均可以在Netfilter上实现,当时懂Netfilter的人绝对是Linux网络领域的大佬,但是随着进入了移动互联网时代,互联网巨头们在大流量大并发的大背景驱使下,Linux内核协议栈已经显得力不从心,于是各种优化手段蜂拥而至,几乎革了内核协议栈的命。人们将协

2021-01-01 11:27:00 2480 1

原创 第一次使用Linux内核的Tracepoint的体验

我并不觉得丢人,一点也不。我是说我工作这么多年做和Linux内核相关的事,竟然在上上周才第一次使用tracepoint。这并不奇怪,我不会的东西还多着呢,比方说,我一直强调的,我不会编程,我也不会用git。言归正传,如果这么多年我都没用过tracepoint,那么作为替代,我用什么呢?如果我调试内核或者调试内核模块,最最最常用的方法就是在代码里加一条printk(如果是用户态程序,我就加一条printf。),我来告诉你理由:printk/printf 不需要安装任何别的依赖包。printk/p

2021-01-01 10:36:55 2323

原创 IPv6 socket侦听in6addr_any的问题

当我们 netstat -lnt 查看本机侦听端口的时候,经常会看到类似下面的展示:tcp6 0 0 :::22 :::* LISTEN 658/sshd: /usr/sbin显然,sshd创建了一个IPv6 socket,在in6addr_any地址上侦听22号端口。此时,我用一个该机器的IPv4地址去连接22号端口,通还是不通呢?为了避开无关的讨论,我假设net.ipv6.bindv6onl

2021-01-01 08:27:10 1762

原创 闲谈IPv6-为了每一粒沙,真实的代价!

周六早上,哈哈,喷一篇无关紧要的。IPv6最经典的广告词,可以为地球上每一粒沙子分配一个IP地址。提起IPv6,人们总是用这句话形容其地址之多,多到一个这么一个形象的天文数字。到底能不能为地球上每一粒沙子分配一个IPv6地址我们姑且不论,假设这是真的,我这里想摆一摆的是,存储所有的IPv6地址需要多大的物理空间。注意!是物理空间,只有这样才能体现出实施IPv6真实的,现实中的代价。一粒沙子到底多大呢?经常看到有人实际计算地球上沙子数量的时候用毫米做尺寸量级,但实际上那不是沙子,那是珠子。真正的沙

2020-12-26 09:10:32 2828 1

原创 Linux soft lockup时远程调试的可能性

曾经写过一个模块,当运行Linux内核的机器死机时,SSH肯定无法登录了,但只要它还响应中断,就尽力让它可以通过网络带回一些信息。陈年的事了:/blog_csdn_net/dog250/article/details/43370611今日重提这件事,不陌生,但纠结。本文不谈sysrq,也不谈别的。Linux内核在发生soft lockup的时候,是可以ping通的,只要没有关中断,ping通一般没有问题。既然可以ping通,何必不带回一些真正重要的信息而不仅仅是echo的reply?

2020-12-19 11:08:14 8885 7

原创 IPv6的TSO/GRO/GSO及其Linux实现的不妥

很明确的一件事是,IPv6不允许中间设备对报文分片。具体为什么这么设计,就是为了简单高效。因此,IPv6报头简洁了不少。但TSO貌似并未违背取消IPv6分片的初衷,硬件把一些都处理的妥妥的,在路由软件层看来,一切好像没有发生过一样。我先简单解释一下TSO和IP分片的区别:我们来看一个简单的实验,用IPv6从服务端拉一个大文件,服务端和客户端的抓包如下:在客户端看来,没有IP分片,因此它不需要做分片重组的动作,它实实在在就是收到了一个完整的7140字节的报文,就好像这个报文就是从服务端真实发出的一

2020-12-19 09:02:21 3000 1

原创 NATv6是个笑话,那么IPv6本身呢?

近期遇到一个IPv6的NAT问题,在解决了之后总想写一点形而上的东西,什么是正确的,什么是错误的,什么合理,什么不合理,无关文档,无关代码,甚至无关技术,仅仅随便聊聊。昨天下班的路上整理了一下思路,周末了,写一点吧。如果一个报文过大却不能分片的时候,比方说携带了DF标志的IPv4报文和所有的IPv6报文,转发设备会给数据的始发站回送一则ICMP消息,意思是你这报文太大了,请缩小数据重新发。对于IPv4的情况,我们不用太在乎这种ICMP消息,因为IPv4网络中,IP报文本身只要没有DF标记,就是可以任意分

2020-12-19 07:27:10 7499 7

原创 多线程并发编程的基本问题

这是个老掉牙的话题,但基本上绝大多数的讨论都跑偏了。绝大多数讨论的核心在于 如何设计一把锁来同步共享变量的访问。 这事实上完全是本末倒置:我们需要设计的一个立交桥,而不是为了设计一个红绿灯!事实上,多线程编程就不应该访问共享变量,如果真的要在多线程访问共享变量,唯一高效的方案就是 严格控制时序。 嗯,先来后到是唯一的方法。至于说设计这样那样的锁,那完全是惰政,只是为了防止出问题而已。早在100多年前,就可以在同一根电话线上传输不同的话路,这得益于严格的时隙分配和复用机制,后来时代进步了,事情反而

2020-10-03 11:40:55 4563 15

原创 周末说说二叉树之重构

老师在讲这个根据前序,中序的结果重建二叉树的时候,事实上是给出了流程图的,但递归的方法更简单:然后看看left和right的构造就行了:那么代码是不是也很简单呢:struct node *rebuild(int *Preorder, int *Inorder, int StartPre, int EndPre, int StartMid, int EndMid){ struct node *root; int distance; if (StartPre > EndPre || S

2020-09-26 08:37:58 5217 7

原创 通过一个小实验认识Linux vDSO

这里不再解释vDSO的概念,而直接谈其意义:vDSO类似一个信息公告板,用户可以直取所需,而无需为此办理任何手续。vDSO相当于内核直接暴露出来的一个C库,作为GLIBC的补充。…类似gettimeofday之类的调用,每次都陷入内核去拿一个时间戳,显得有点昂贵了,不如内核把时间戳放在一个公共的可以暴露给任何用户的地方,用户自己去看就行了,这是vDSO的典型用例。为了简单化描述,我们关闭ASLR:[root@localhost ~]# sysctl -w kernel.randomize.

2020-09-26 06:52:28 5256 2

原创 spin_lock_bh想到的一些事

近日有人问我为什么在PREROUTING这个NF HOOK点的function里需要使用spin_lock/unlock_bh而不是spin_lock/unlock来保护临界区。面对这个问题,有点懵,说到spin_lock族,有很多系列接口:spin_lock/spin_unlockspin_lock_bh/spin_unlock_bhspin_lock_irq/spin_unlock_irqspin_lock_irqsave/spin_unlock_irqrestore…之所以有这么多,

2020-09-24 22:39:23 3666 1

原创 修改Linux的swap空间实现进程注入

连续两夜的大雨,舒服,下班回到家继续杂耍。昨晚杂耍了一把/proc/$pid/mem,写了一个关于进程代码注入的文章:/blog_csdn_net/dog250/article/details/108618568这个方法无非还是利用了内核导出到procfs里的一个mem文件,而且幸亏它可写!这并不是一个通用的方法,至于说ptrace,stap这种,则更多的体现为一种工具,而非手艺。swap空间够通用了吧,哪个系统都有,它是现代操作系统的基础设施的重要组成部分,本文就拿swap空间开涮。

2020-09-17 22:35:03 3357 1

原创 ROP(Return Oriented Programming)原理解析

先看一个代码:#include <stdio.h>#include <stdlib.h>/下面的dummy_libc_part1和dummy_libc_part2假设是GLIBC库里的任意两段函数void dummy_libc_part1(){ /... 这里可能会有别的指令 __asm("mov 0(%rsp), %rdi"); __asm("popq %r13"); __asm("call *%r14"); __asm("ret"); /...

2020-09-17 00:05:26 2984

原创 修改任意Linux进程地址空间实施代码注入

提到进程注入,常规的方案就是使用ptrace,其POKEDATA,POKETEXT命令选项单从名字上就知道是干什么的,这里不再赘述。然而ptrace是个系统化的东西,太复杂,不适合玩手艺,有没有什么适合手工玩的东西呢?当然有!正如读写/dev/mem可以手工完成crash+gdb的功能hack内核一样,每一个用户态进程也有一个mem文件,即 /proc/$pid/mem 。我不敢保证每一个系统该文件都可写,但一旦它可写就好玩了。/proc/$pid/mem文件抽象的一个进程的地址空间,直接写该文

2020-09-16 23:44:29 3415

原创 Linux第一人称侵入进程的好地方

我发现很多hack把戏用惯了下面的伎俩:t = find_taskmodify(t)...这一看就是以第三人称实施动作的。为什么不以第一人称来折腾呢,这不更好隐藏自己并栽赃给运维吗?只要把__schedule().return给hook了,那便是第一人称了,任何进程都要经过此地。这种方法更简单。作为一个例子,请看:/blog_csdn_net/dog250/article/details/108089212再次重申,绝大部分人即便是给了他们root权限,他们能做的事情依然有限

2020-09-13 10:16:02 3882

原创 TCP的SYN报文可以携带payload吗?

对于敲门服务,是不是厌倦了复杂繁琐的服务端配置?Send TCP SYN packet with payload?众所周知,TCP的SYN报文是不能携带payload的,因为:序列号还没有协商号,无法确定数据的序列号区间。接收窗口还没有确定,不知道payload能不能被接收。…等等,等等…烦透了!在过程中,我非常讨厌去讨论标准,讨厌有人在耳旁叨叨类似“RFC规定…但没有强制…”,“Intel手册XXX…但是…”,正如“C语言未初始化的变量到底是多少”这个问题一样无趣。实际动手试一下不

2020-09-12 08:27:57 4510 9

原创 制作一枚有针对性的fork炸弹

恕我不再赘述bash实现的fork炸弹。我们看看把一个内部调用了fork的平常的程序制作成一枚fork炸弹是多么的简单。先看代码:#include <stdio.h>#include <stdlib.h>int main(int argc, char **argv){ if (fork() == 0) { printf("I am child\n"); exit(0); } printf("I am parent\n"); return 0

2020-09-09 22:06:28 2661

原创 用nf_conntrack代替ipset搭建敲门验证程序

昨天晚上,杂耍了一个敲门服务:/blog_csdn_net/dog250/article/details/108479651这里面的trick在于利用了TCP的重传特性:第一个把padding了认证数据,仅用于敲门,注定被丢弃。第二个重传包直接通过第一个敲门包敲开的大门,建立连接。我在服务端使用的是ipset的方案,还是比较清晰的,我觉的不错。早上起来,又思考了另一种方案,基于nf_conntrack来完成,毕竟我玩conntrack玩得那么熟,不拿出来杂耍两下子,总觉得虚度了

2020-09-09 19:43:21 2479 1

原创 利用TCP重传机制来玩端口敲门服务

TCP无法在连接建立之前进行认证,对于无连接的UDP而言,或者也将不能。TCP有fastopen机制,但并不好用,本文的想法就是基于fastopen的,让第一个SYN包携带数据,然而又不能让它到达TCP层,必须在IP层完成认证。于是顺势就有了所谓的敲门服务。敲门的意义旨在避免非法连接的干扰,一来二去的,即便构不成DoS,服务端也需要对非法连接的客户端进行回应,这不但不安全,暴露了开放端口信息,也浪费了带宽资源。互联网是一个开放的环境, 不要与陌生人说话! 默默地丢掉非法连接比回复一个RST要好很

2020-09-09 00:04:58 4152 3

原创 如何使用ftrace实时获取系统中的spinlock快照

接上文:/blog_csdn_net/dog250/article/details/108349046在这篇文章中,我给出了一个拯救panic的方法,其目的更多的是恶作剧性质。但仍然有不足,请看下面代码段中的注释:void stub_panic(const char *fmt, ...){ ... local_irq_enable(); /这个时候如果current持有自旋锁,那可怎么办??? printk("rq:%d %d\n", preempt_cou

2020-09-03 19:50:50 2309

原创 手工拯救Linux kernel panic!

有的时候,kernel panic并不一定非要真的panic,比如说你自己模块里发生了内存违规访问,在你确定发生panic的地方并不会影响整个内核,其危害半径足以收敛的前提下,panic可以有不同的行为:直接将当前task给schedule出去。虽然在中断上下文这样做可能会危害无辜的进程,使其再也调度不回来了,但也总比整体重启要好。下面的代码展示了如何做:/panic_resched.c#include <linux/module.h>#include <linux/k

2020-09-01 23:34:26 2473

原创 10行代码玩转弹性调度的小把戏

Linux的进程调度器是通用的调度器,无论是O(n)O(n)O(n),O(1)O(1)O(1),还是CFS,均是基于统一的指标来对待所有进程的。也就是说,进程甚至无法自主退让。只要确定了一个进程的优先级,无论是是什么调度算法,该进程的地位总是不会变化,如果能做到下面的策略就好了:系统中进程多了,就加速退让。系统中进程少了,就加速抢占。工人来了,就退让。经理来了,就抢占。…考虑一个进程A在一个特定的系统中运行,它最多只能用40%的CPU,此时,如果有另外的待运行进程,那么这些进程自然分摊另外

2020-08-29 11:24:47 3855 1

原创 缉拿隐藏进程以及隐藏CPU利用率的进程

前面我介绍过很多隐藏进程的把戏,随后我对每一种把戏有针对性的给出了反制措施,可以翻看我2020/03~2020/08的文章,太多了,不再一一列举。如今,我要介绍一种超级简单的手段,手艺人必备。无论你是隐藏了进程,还是隐藏了进程的CPU利用率,只要它在CPU上运行,在下面的脚本面前,任何隐藏手段终归徒劳:#!/usr/local/bin/stapglobal tbaseglobal tdeltaprobe scheduler.cpu_on{ a = gettimeofday_us() t

2020-08-26 23:04:38 2426 1

原创 systemtap引用自定义头文件的手艺精简版

先看上一篇:/blog_csdn_net/dog250/article/details/108230157不够精简是不是?那是因为我的水平还不够6,其实stap是可以直接调用system来执行外部命令的,如此就不需要再进入guru模式来stap自己了。脚本如下:#!/usr/local/bin/stap/selftapprobe process("/usr/local/bin/stap").function("make_any_make_cmd"){ ext = "\'E

2020-08-26 22:22:31 2591

原创 systemtap引用自定义头文件的手艺

自从写第一个guru模式的stap脚本,我就再也不写内核模块了。stap简直太方便了,竟然可以将C语言当脚本语言来玩。随着我写的stap脚本越来越复杂,我需要使用一些半吊子设计模式来让代码更好看些,比如我不会再将所有东西写在一个stap脚本里,我会将一些公共的结构体定义,宏定义写在一个头文件里:/common_h#define VAR 100然后在我的stap脚本里引用它们就是了:#!/usr/local/bin/stap -g/aa_stp#!/usr/local/bin/stap

2020-08-25 23:41:48 2273 1

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

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

2009-09-07

一个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

dog250的留言板

发表于 2020-01-02 最后回复 2020-03-21

我的blog为何被屏蔽了,用户名为:dog250

发表于 2009-02-06 最后回复 2017-04-05

《java编程思想》的内容哪里体现了“思想”

发表于 2014-04-01 最后回复 2015-08-26

我的blog被删了,共享文章

发表于 2009-02-07 最后回复 2010-05-14

请删除我的一个资源 【解决并回复】

发表于 2010-04-18 最后回复 2010-05-14

空空如也

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

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除
www.22psb.com 菲律宾申博138娱乐网直营 申博开户网登入 www.88psb.com 申博代理管理网手机登入 下载申博太阳娱乐直营网
菲律宾申博代理登录 菲律宾太阳娱乐管理登入 申博太阳城娱乐中心直营网 申博官网太阳城娱乐网 www.83654.com 申博咨询端下载直营网
菲律宾申博官网 菲律宾太阳娱乐管理登入 申博游戏登入 www.sun8066.com 申博现金网直营网 申博游戏下载登入