自定义博客皮肤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)
  • 收藏
  • 关注

原创 信息论中的信息量为什么表示成对数

声明两个前提,然后根据这两个前提推导信息量的形式:多个事件同时发生的概率是多个事件发生概率的乘积。多个事件同时发生的总信息量等于每个事件信息量的和。翻译成数学语言:设f(x)f(x)f(x)表示事件A的信息量,其中x为事件A发生的概率,则:f(x1x2)=f(x1)+f(x2)f(x_1x_2)=f(x_1)+f(x_2)f(x1​x2​)=f(x1​)+f(x2​)其中x1,x2∈(0,1]x_1,x_2\in\left(0,1\right]x1​,x2​∈(0,1]进一步抽象:已知f(

2021-11-27 07:43:03 13002 1

原创 积累分布用例-洛伦兹曲线和随机游走

洛伦兹曲线洛伦兹曲线其实就是幂律分布密度函数的积累密度函数,从概念上理解即可。以k=2k=2k=2的帕累托分布(为幂律)为例:则积分曲线必然是下凸的。一般也可以用帕累托分布的积累密度函数来拟合洛伦兹曲线。随机游走随机游走,随着时间的延展,曲线越发分开:竖起来看就是正态分布的方差也来越大所以越来越扁平的样子。其实这些随机游走的轨迹曲线本身就是正态分布随着时间的变化。根据正太分布的积累分布曲线可见其常返性:看吧,方差越大,中间的拐点斜率就越小,这个斜率就是概率密度函数在该点的值,也就是期望值

2021-11-27 07:11:20 3455

原创 IDC网络TCP拥塞控制随想录

“若不对症下药,无异于群盲摸象。“ 这是本文第一句话,本文的倒数第二句话在倒数第二句。用广域网拥塞控制的思路做IDC网络拥塞控制无疑会误入歧途。把精力集中在TCP单边优化,企图用一个算法来覆盖IDC网络所有的流量,进行全局拥塞控制,这带来了很多限制。与之相反,如果希望交换机带来更多信息指导拥塞控制,这无疑是另一极端。类似交换机的INT(In-band Network Telemetry)助力HPCC,那就真把IDC网络当成一块主板了,场面过大,多团队需要配置,容易讲述人月神话的故事。有没有简单直接的

2021-11-27 07:06:41 4180 4

原创 归并排序,快速排序为什么快

对于一个nnn个元素的数组,必须要确定两两之间的相对顺序,假设每次都抓取不同的二元组,需要log⁡2n!\log_2n!log2​n!次比较,由于log⁡2n!≈nlog⁡2n\log_2n!\approx n\log_2nlog2​n!≈nlog2​n,O(nlog⁡2n)O(n\log_2n)O(nlog2​n)就是排序算法的下界。前面几周写过一篇散文:https://zhuanlan.zhihu.com/p/429710417但紧接着问题就来了,到底为什么归并排序,快速排序快呢?这里有必要澄清

2021-11-20 08:07:36 10426 2

原创 IDC网络传输优化随想录

在IDC内部,如果你还遵循传统为广域网而生的拥塞控制逻辑做事,那就错了。当然,我下面说的也不一定都对。正确的做法就好像我之前说的一种情况的反例,那种情况是,让你优化长肥链路传输,你却在优化spinlock。IDC的情况相反,把前面的例子反过来说,把spinlock换成ECN(可扩展)就对了。但这就够了吗?广域网传输优化只能基于RTT为周期,你有足够的时间利用足够的资源去做运算,但IDC内部这么做不太现实,在IDC内部,任何误判的代价都会被放大,一个5us的延时除了做重传之外几乎做不了任何事,再靠盲猜,靠

2021-11-20 07:25:28 12231

原创 为什么除法,开方,求对数比乘法,乘方,求指数更难

除法为什么比乘法更难,至少是看上去更麻烦?开nnn次方为什么比乘nnn次方更难?求对数为什么比求指数更难?尺规三等分角为什么难?这些背后有没有一些普遍的规律?我们又如何去利用这些规律?先看乘法,除法,两者互为逆运算:y=a×xy=a\times xy=a×x若x<1x<1x<1,上式则是除法,反之则为乘法。乘法对aaa进行复制,除法对aaa进行分割。此时千万不要引入阿贝尔群,一旦引入加法和减法,乘法和除法就是一回事了,在纯数学有理数看来,333和13\dfrac{1}{3}

2021-11-20 07:23:36 10205

原创 DCTCP之FCT优化随想

IDC网络和广域网有什么不同?如果把网络抽象成BDP管道,那么:广域网:B中等,D超级大。IDC网络:B超级大,D超级小。将一次传输的RTT分为三部分:RTT=Tprocess+Tprop+TqueueRTT=T_{process}+T_{prop}+T_{queue}RTT=Tprocess​+Tprop​+Tqueue​对于广域网,TpropT_{prop}Tprop​维持在10ms~100ms量级,因此可以通过观测或者调整1ms~50ms量级的TqueueT_{queue}Tqueue​

2021-11-13 07:15:33 32068

原创 手工计算对数的方法和对应的C代码

如何手算对数?为简单起见,以222为底数演示。问题:求log⁡2a\log_2alog2​a的值,其中aaa为已知实数。由于人们的思维逻辑普遍是线性的,而对数是非线性的,对数需要规模化思维才更好理解,因此将问题转化成求指数会更直观一些:2x=a2^x=a2x=a,问aaa可以拆成多少222的次幂相乘,将幂加起来即可。下面是过程:将aaa不断除以2,一直到除不尽余bbb:2x=a=21212121b2^x=a=2^12^12^12^1b2x=a=21212121bbbb比222小,它如何写成22

2021-11-13 06:58:47 5224 1

原创 是什么让人们永远在线

如果你是一个原始人,你和野人们如何交流?如果你想找某个野人,你只能亲自肉身去找他,如果他不在,你只能回去,然后随机退避一段时间再去试试运气。这种效率不可能让你认识太多人,因此原始部落一般不会太大。农业社会,有了文书,我们可以通过可以永久保存的竹质纸质信件联络彼此。人们学会了利用buffer。再往后有了电话,效率是比文书信件高了,因为可以实时联络了,但是如果对方不在电话边上,你只能挂掉电话,随机退避一段时间再打电话,这和原始野人面对面找人没什么本质区别,只是突破了空间限制而已。最终,你意识到了什么?是

2021-11-06 07:26:25 5985 7

原创 归并排序与快速排序背后的秘密

到处说归并排序采用了分而治之的方法,所以效率比冒泡排序高:将一个大问题分解成一些小问题,分而治之,各个击破…但这些诠释基本都缺少了最关键的点,即效率必须随规模非线性增加的场景,分而治之才有意义,如果是线性系统,比如计数,分时调度,分而治之反而增加额外开销。此外,可以找到很多递归式,递推式来解释为什么归并排序的时间复杂度是O(nlog⁡2n)O(n\log_2n)O(nlog2​n),在数学上确实也是那个理,但为什么分治就能带来效率的提高呢?到底省了哪里的消耗呢?只要记住,基于比较的排序效率随着规

2021-11-06 07:12:07 12407

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

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