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

原创 瘦客户机的前世今生

最初,人们排队等待将自己的程序录入机器,然后执行,机房门前排起来了长队,直到终端出现!终端的物理形式很多种,常见的终端可以通过一条线榄接入主机;逻辑上,此时多处理机制大规模应用,在串行处理器上,通过分时机制模拟出了一个并行处理的假象,如此一来,多个终端前的用户就可以同时工作。随着计算需求的增加和多样化,计算机接受输入和给出的输出更加丰富了,鼠标的出现,显示技术的发展,催生了X体系结构,即X Win

2013-12-29 15:37:21 9346

原创 为何不将仅仅路过的数据包导入本地协议栈呢

此事来自于一次故障!我的windows的wireshark彻底不能用了,不知道为什么...因此我需要另外一种抓包方式。由于我曾经曾经深入过VMware的桥接机制,我知道所有的到达宿主机的数据包也会到达Linux虚拟机的桥接网卡,正如我所了解的那样,虽然不是很顺利,但是最终摸索到为一个桥接模式的网卡设置promisc之后就可以了: ifconfig eth2 promisc就这么简单,于是我可以在L

2013-12-29 15:09:12 10308

原创 终于搞定Linux的NAT即时生效问题

引:超长的前言Linux的NAT不能及时生效,因为它是基于ip_conntrack的,如果在NAT的iptables规则添加之前,此流的数据包已经绑定了一个ip_conntrack,那么该NAT规则就不会生效,直到此ip_conntrack过期,如果一直有数据在鲁莽地尝试传输,那么就会陷入僵持状态。       在Linux系统中,ip_conntrack创建成功是按照一个流的头包是否成功被传输出

2013-12-29 15:04:25 17442 3

原创 各种不合理的设计

世界远不是完美的!造物主设计我们丰富又复杂的系统时,其考量仅仅是可用性,因此上帝远不是哲学家,而是类似于理工科偏工科方向硕士或者工程师那样的being。食管和气管为何要有个交叉,这是一个重大BUG,类似这样的BUG还有很多。上帝既然都不是完美主义者,我们自己就更不是了,很多东西只要脱离了设计图纸,几乎就不会再被重新设计了,这就是事实,可能唯一的例外就是减数分裂带来的有性生殖了,所有的个体都是从一个

2013-12-22 17:18:34 6194 1

原创 刑侦,考古,运维,程序员

提出一些最近的想法,旨在剖析一下为什么工作这么累以及我做不到什么程序员累,尤其是互联网程序员,网络运维人员其实比程序员更累,然而比这些更累的还有,比如刑侦人员,最后,我认为考古人员的辛苦程度远在刑侦人员之上。当然,我如此提出这种以“累的程度”为度量的说法并没有站在作业者和雇主任何一方,我的意思是,假设你对你的工作是极其感兴趣的,不是为了得到什么报酬,你想得到的仅仅是成就感,解决问题后的快感,诸如此

2013-12-22 16:28:11 4351 1

原创 Linux如何实现镜像端口

在所有高端型号,大多数中端型号以及部分低端型号的交换机/路由器上,都可以配置一个或者多个镜像端口,它是流量分析的利器。然而,Linux上没有现成的技术可以实现镜像端口,当然,我指的不是Linux 3.x(x是几,忘了)以上的内核,这些内核已经支持了镜像,但不够好。起码2.6.35的内核是不能支持的,那么Linux实现的软交换机属于哪个档次呢?关键是,很多高端的网络产品也是基于Linux实现的,没有

2013-12-22 16:24:36 15759 2

原创 Linux下使用虚拟网卡的ingress流控(入口流控)

Linux内核实现了数据包的队列机制,配合多种不同的排队策略,可以实现完美的流量控制和流量整形(以下统称流控)。流控可以在两个地方实现,分别为egress和ingress,egress是在数据包发出前的动作触发点,而ingress是在数据包接收后的动作触发点。Linux的流控在这两个位置实现的并不对称,即Linux并没有在ingress这个位置实现队列机制。那么在ingress上就几乎不能实现流控

2013-12-08 17:34:20 10207 1

原创 唉,大师和学子

学子们还真的就喜欢较真儿!我说大师喜欢简单,学子们就说不复杂不行,实际上这就是一个价值观的区分,不能简单地说谁对谁错,就像很多人不喜欢任大炮,但是人家还是保持立场一样!知道张三丰为何不和周芷若打吗?难道张三丰打不过小丫头片子?也许有人又要说我在用电影说事,虽然不是美国大片,但是你知道在DNA发现之前有多少学子们提出过复杂的多的结构吗?图灵机复杂吗?冯诺依曼的理论复杂吗?可能还没你现在加班写的代码复

2013-12-01 23:16:47 4049 3

原创 splice系统调用实现的TCP代理

正如Linus所说,splice实际上是内核空间的read/write,而tee则是内核空间的memcpy,至于sendfile,它只是一种特定的优化,该优化对于可以使用page cache的文件系统有效。       Linus反复强调buffer,用来回答关于“为何splice和tee都要依赖管道”,也就是说,文件描述符的IO依赖于一种buffer,至于说sendfile为何没有使用buffe

2013-12-01 22:46:51 7916 1

原创 基于UDP服务的负载均衡方法

网络socket伊始,也是UNIX的童年!基于TCP socket的accept/fork模式俨然已经成了圣经戒律。fork模型和accept模型是多么的相似,这也是UNIX手笔的表现。接下来,inetd/xinetd之类的程序便抽象出来了,如今,TCP应用几乎都有MPM机制,不管是预先建立进程池,还是每到一个连接创建新线程/进程,总之都是accept/fork的变体。       被遗忘的是UD

2013-12-01 22:35:15 18549 2

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

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