自定义博客皮肤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:-(

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

原创 瘦客户机的前世今生

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

2013-12-29 15:37:21 2800

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

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

2013-12-29 15:09:12 3726

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

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

2013-12-29 15:04:25 14049 1

原创 各种不合理的设计

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

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

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

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

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

原创 Linux如何实现镜像端口

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

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

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

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

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

原创 唉,大师和学子

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

2013-12-01 23:16:47 2970 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 6706 1

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

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

2013-12-01 22:35:15 14062 1

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