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

原创 CUBIC拥塞控制算法是天生干坏事的吗

这是一篇没有意义的即兴随笔,不长也不必推敲。        最近经常有人问我BBR算法和CUBIC竞争的话是不是有劣势。我的回答是不一定。这倒不是说我在维护CUBIC所宣称的”公平性“(CUBIC将公平性作为一个特性来为自己拉票),相反,我倒认为CUBIC所谓的公平性是名不副实的。基于丢包的算法,能公平到哪儿?唯一公平的特征无非就是出来混,早晚要还的。        CUBIC比BBR看起来更加激

2016-11-27 11:31:55 7435 1

原创 不同位置的tcptrace分析以及FQ如何减少TCP无效重传

昨晚,前同事发微信给我,说之前公司的领导又在夸我了,还截了图...我看了之后好感动,这是必然的。好了,感性的话到此为止。今天下了一天的雨,心情也不错,我觉得继续分享一些技术上的东西是对我之前的公司,现在的公司以及各种帮助过我的同道中人最大的感激。这段话写在前面,简述了我写本文的心情。        在前面描述tcptrace图的几篇文章中,我有个基本的假设,那就是抓包的位置都在TCP的发送端,因此

2016-11-27 01:04:40 7224 2

原创 Wireshark tcptrace图关于丢包重传细节图解

上周六写了《在Wireshark的tcptrace图中看清TCP拥塞控制算法的细节(CUBIC/BBR算法为例)》,收到一封邮件,说我文中的图示画错了。        确实,关于CUBIC,我只说了缠绕,关于BBR我只说了顺延,并没有说具体如何,甚至我没有提一嘴关于重传的细节,更别说在图示里展现了。这是我的错。话不能说一半,因此才写下本文,把另一半也写出来。        炒股的人喜欢看K线,并且

2016-11-23 20:45:45 24185 1

原创 在Wireshark的tcptrace图中看清TCP拥塞控制算法的细节(CUBIC/BBR算法为例)

这是一个令人愉快的周末,老婆上周从上海回来,这周末小小幼儿园组织去坪山秋游,比较远,因此大家都必须早早起来,而我更加有理由起床更早一些来完成这篇短文,因为要出去一整天,如果早上起不来,一天都没什么时间了。        另外,最近有人问我,为什么我总是喜欢在技术文章后面加一些与技术毫不相关的话,我说,咱们小时候学古文的时候,那些古代的作者不也是喜欢在文章最后写一段毫不相关的“呜呼...”“嗟夫..

2016-11-19 07:17:57 32564 12

原创 基于统计复用的分组交换网络拥塞控制的科普解释

最近收到很多邮件咨询各种问题,一般而言我能回答的就都回答了,我自有自知之明,绝不是什么大牛,然而也并不是菜鸟,所以说不管什么问题,我不一定能完美回答,但却也不是一点都不懂,因此我会尝试着去作答。        由于最近写了几篇关于TCP拥塞控制的文章,就有人咨询我关于NCL,New Vegas,BBR等相关的问题,其实我知道他们的目的,不外乎两种原因,要么是自己想学习一下原理但可能遇到了看不懂的地

2016-11-12 09:32:54 15407 2

原创 Linux x86_64内核终止D状态的进程

在上一篇文章《Linux x86内核终止D状态的进程》中,我展示了32位x86系统中如何编码杀死D进程。本文我将展示一种64位x86系统上的方法。        说实话,64位系统上做这样的事是比较难的,因为你无法通过修改p->thread.ip来到达将进程拽出死循环的目的。要想知道64位系统上到底该怎么把进程执行绪引出,我们得先看看”标准“的做法是什么。        标准的做法就是fork时的

2016-11-07 21:36:32 12533 2

原创 Linux x86内核终止D状态的进程

在《Linux如何终止D状态的进程》,我浮光掠影般描述了一种非规范的结束D进程的方法,只是一种方法,几乎没有可操作性。今天收到了一位朋友的邮件,问我exit_task1到底该怎么写。说实话,我本来不想把故事说完的,但是既然有人问了,我就再写两篇短文吧。本文介绍x86 32位系统中的详细方法,下一篇文章将介绍64位系统的方法。        我的exit_task1是以下这么写的:void exit

2016-11-07 21:25:41 7348

原创 最短路径算法正确性和操作性闲杂谈-Dijkstra&Floyd算法

今天在帮圈子里一位朋友规划第七层网络路径规划的时候,又一次遇到了最短路径算法的问题,我不想在这里贴Dijkstra算法或者Floyd算法的源码,也不想去刻意分辨什么动态规划和贪心算法的联系和区别,只是闲来记录几笔而已。鉴于之前写了很多关于TCP/IP网络的文章且专业性都比较强,自然的,其可读性和可查阅性就会很弱,所以,关于本文,我想写的随意一些。--------------------------

2016-11-06 00:46:49 6537 2

原创 Linux如何终止D状态的进程

在百忙中抽出点时间帮温州皮鞋厂老板解决一个杀掉D进程的问题,虽然最终线上的机器被老板蹂躏挂了,我也没帮上什么实质性的忙,还是写点记录,以备查阅。        碰到这个问题,我第一个反应就是网搜解决方案,后来发现了自己的文章《linux内核模块的强制删除-结束rmmod这类disk sleep进程》,正好,老板碰到的也是这类问题。不过本文将介绍一种不触动内核模块本身,而是触动D进程的方案。

2016-11-05 08:53:42 16901

原创 TCP拥塞控制算法-从BIC到CUBIC

本文旨在帮助大家理解TCP CUBIC拥塞控制算法背后的点点滴滴以及其方程式为什么就是那样子的。一直以来,很多人都觉得CUBIC算法非常复杂,涉及到复杂的天书般的”3次曲线“...然而,CUBIC并不像大家以为的那样复杂,之所以觉得复杂是因为没有理解其历史和背景。本文就是介绍CUBIC的历史和背景的...BIC算法BIC算法对窗口可能的最大值进行二分查找,它基于以下的事实:1.如果发生丢包的时候,

2016-11-02 22:23:17 41957 15

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

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