自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(2158)
  • 资源 (4)
  • 收藏
  • 关注

原创 关于CentOS 6.7之一个TCP重传细节的证实

如果你真的就看完了《packetdrill框架点滴剖析以及TCP重传的一个细节》,我觉得你应该有一个疑问,那就是RH发行版使用的2.6.32内核真的使用了PRR降窗算法吗?为此,我把故事再撸一遍。        按照标准的2.6.32内核,第一次收到SACK的时候,在进入重传之前,拥塞窗口的值应该是in_flight+1,即2+1=3个段,也就是说可以重传1个段,但是抓包发现重传了2个段,tcpp

2016-07-18 21:45:39 7154

原创 packetdrill框架点滴剖析以及TCP重传的一个细节

本来周末想搞一下scapy呢,一个python写的交互式数据包编辑注入框架,功能异常强大。然而由于python水平太水,对库的掌握程度完全达不到信手拈来的水平,再加上前些天pending的关于OpenVPN的事情,还有一系列关于虚拟网卡的事情,使我注意到了一个很好用的packetdrill,可以完成本应该由scapy完成的事,恰巧这个东西跟我最近的工作也有关系,就抛弃scapy了,稍微研究了一下它

2016-07-17 21:12:04 8833

原创 通过packetdrill构造的包序列理解TCP快速重传机制

TCP的逻辑是极其复杂的,其学习曲线虽然很平缓但其每一步都是异常艰难,好在这些都是体力活,只要肯花时间也就不在话下了。想彻底理解一个TCP的机制,有个四部曲:1.读与其相关的RFC;2.看Linux协议栈的TCP实现;3.通过抓包以及其它工具来确认事实就是如此;4.解决一个与之相关的网络问题。经历了以上四步骤,相信任何人都可以在相关领域内稍微装逼一把了...        本文的内容是TCP快速重

2016-07-16 10:46:16 14081 3

原创 关于TCP Zero Window Update感知的非常棒的优化

本文从“然而有一种丢包...”开始步入正题。此前的胡扯可以直接跳过。这个周末是搬入新家的第二个周末,感觉整个人比在罗湖时状态更加好了。也许这个房子的色调跟我上海的家更像吧...不管怎么说,这是我到深圳以后第一个感到振作的地方,以前曾经好几次都想离开了,但是这个家让我决定可以继续坚持。说实话我并不喜欢深圳,虽然我比较喜欢下雨,但是喜欢的是那种持续不断的雨,而不是亚热带雨林式的十分钟暴雨十分钟烈日那种

2016-07-09 08:58:13 27042 3

原创 关于“TCP segment of a reassembled PDU”

为什么大家看到这个以后总是会往MSS,TSO上联系呢?也许第一个解释这个的人是个高手,而且以MSS/MTU/TSO的观点解释了这个问题,还有一种可能就是TSO等技术让人觉得太牛逼,毕竟是底层硬件机制吧,抓包机制又是作用于网卡层面的,所以很自然会觉得TSO会有关联。        事实上,这个跟TSO没有关系!跟MSS有一定的关系但不是全部因果关系,在阐述“TCP segment of a reas

2016-07-02 09:02:03 26689 11

原创 独立双(N)拥塞窗口的TCP单边加速思想

让TCP以流水线方式工作靠谱吗?也许你听说过MPTCP,也许你听过P2P下载是多么的天下人为我而我负天下人。        如果我能将一个TCP流拆分成多个TCP流,理论上来讲传输速度会有很大的提升,因为TCP拥塞控制算法是必须携带公平性收敛特征的(不然paper不会通过...),TCP反馈系统会为每一个加入的流分配一张船票,反馈系统不会管你们几个是不是一伙儿的,它只按人头计数,不会分组,这样就有

2016-07-02 07:54:51 16269 1

原创 如何抓取访问特定URL的HTTP流的数据包

工作中遇到了一个问题,需要抓取访问特定URL的TCP流的包。这也许不是什么问题,很多人会觉得使用tcpdump抓包,然后用Wireshark来过滤即可,但如果不能那么做呢?如果必须要仅仅抓取特定URL访问的TCP包呢?也许你会说,这又有何难...       我先来告诉你直接的难度吧,间接且更加重要问题的后面再谈。直接的难度就是抓包这个动作发生在网卡层面,特别底层,BPF是无状态的,它能过滤的只能

2016-06-26 01:07:35 19189 2

原创 关于ping命令的-I选项的一个问题

在排查网络问题的时候,ping是一个不可或缺的工具(比ping更不可或缺的是www.baidu.com...),在Cisco上,可以指定源IP地址去ping任意IP,但是在Linux上指定源IP地址却并不是那么直观。通过ping的manual,发现一个-I选项,可以从指定网卡发送出去数据包,我天真以为后面携带的那个IP地址就是指定的源IP地址了,其实并不是。        通过抓包,发现-I选项后

2016-06-25 22:43:27 20595 2

原创 HTTP的KeepAlive与TCP的LINGER

用IE访问一个网页下载一个文件,抓包获取HTTP的Request和Response,发现在Response后面有一个RST:这是怎么回事呢?没有正常发FIN断开连接。我们看HTTP的GET细节:有一个KeepAlive,这说明客户端希望保持住TCP连接,它可能会重用这个TCP连接发送另一个HTTP请求或者别的HTTP数据。然后我们看Response的细节:服务器把KeepAlive给echo回来了

2016-06-25 22:20:41 9232

原创 关于TCP传输速率的测量方法

人们非常关心下载速度,对于使用非包月宽带以及使用付费CDN的用户而言,这是典型的拿钱买时间的行为,我支付的费用越高,希望的下载速度越快,所使用的累积带宽越大。关于各种测速方法也是汗牛充栋了,本文介绍一下TCP传输的测速。TCP速率概述首先,TCP速率受到多方面时延的影响,其中包括:1.本机以及对端机器的处理时延这部分指的是发送端和接收端主机由于操作系统调度,中断,网卡数据包调度等处理引入的时延,基

2016-06-25 08:32:24 24557 2

原创 Linux 3.5之后取消route cache后的一个组播问题和解决

Linux3.5之前的协议栈实现在IP层是支持路由cache的,这个cache曾受到了诸多的吐槽,比如面临hash抖动,容易被攻击利用等等,于是去掉了路由cache。此后引入一个叫做下一跳cache的机制,这纯粹是为了将路由表和下一跳在逻辑上分开。        下一跳cache逻辑可在我写过的《Linux3.5内核以后的路由下一跳缓存》一文中管中窥豹,这会儿没有太多时间,就不重复解释了,在那篇文

2016-06-18 10:03:20 9082

原创 流量整形,延迟以及ACK丢失对TCP发送时序的影响

TCP是一个连续不断的涓涓细流或者滚滚长江,但这只是理想情况!经过诸多中间网络设备,最终一个TCP流到达接收端的时候,将可能不再保持一个流的形式,而变成了一阵阵的突发...这些突发产生的ACK反过来反馈到发送端,进而对发送端的发送时序产生影响,也就是说对发送端的数据流进行整形,这真是一个典型的涡轮增压反馈系统,根本不是通常认为的那样不可控或者说另一个极端,仅仅是端到端!想驾驭它其实不是那么难,如果

2016-06-18 08:18:26 20297 2

原创 TCP自时钟/拥塞控制/带宽利用之脉络半景解析

0.说明搬家公司的人很多都穿皮鞋!Why?这个题目不是很明确,而且这个文章比较长,也算是我的一个阶段性总结,既然是总结,就不必为题目而纠结了。在端午假期的最后来做这个总结也实属不易(假期前两天加班,没有完成预期的计划,低落),记得很早以前写那篇《TCP协议疑难杂症全景解析》的时候跟现在一个心情。翻翻以前的记录,写那个的时候是2011年的7月初,小小才刚刚半个月,如今小小已经马上5岁了,时间过得真快

2016-06-16 21:52:18 20337 2

原创 什么是TCP的混合型自时钟

任何事情都需要一定的节拍来驱动,最典型的就是时钟,它规定了什么时间要干什么事。在古代没有精确的机械时钟时,人们使用太阳,月亮来计时,因此就像年,四季,月,日,时辰,都是时钟的体现,另外像生肖,星座也一样,其实,任何时钟都是一系列的周期轮回组成的。在农业民族看来,时钟始终都是精确的,这也就是为什么中国人总结出了二十四节气的原因,古代的中国是没有12月的,这个是古罗马的历法,也叫凯撒历法,翻译为儒略历

2016-06-04 10:47:05 8316

原创 排队理论解释TCP/IP网络拥塞是如何影响TCP的RTT的波动

部门团建,大家都去长隆了,也有去澳门广西的...我去了梦里...本来我也报了名的,想单独带着女儿独处两天,不光为了培养跟女儿的感情,也是想让老婆歇两天...只可惜女儿最近生病,去不了了,六一儿童节的表演也由于生病被拒绝了,很是失落,更失落的是我,于是带着失落和愤怒,又有些许对不公道的无能的宣泄,我半夜爬起来,把这一切都诉诸给TCP/IP吧!        就像上学时一样,大家临考前还在打牌,就我一

2016-06-04 10:15:31 21443 1

原创 Linux 4.6内核对TCP REUSEPORT的优化

繁忙了一整天,下班回家总会有些许轻松,这是肯定的。时间不等人,只要有剩余的时间,就想来点自己喜欢的东西。下班的班车上,用手机那令人遗憾的屏幕目睹了Linux 4.6的一些新特性,让我感兴趣的有两点,第一是关于reuseport的,这也是本文要阐释的,另外一个是关于KCM(Kernel Connection Multiplexor)的,而这个是我本周末计划要写的内容,这些都是回忆,且都是我本身经历过

2016-05-26 21:55:00 26699 1

原创 TCP SYN-Cookie的原理和扩展

SYN-Cookie概述预防半连接攻击,SYN-Cookie是一种有效的机制,它的基本原理非常简单,那就是“完成三次握手前不为任何一个连接分配任何资源”,它是怎么做到的呢?也是非常简单。1.编码信息将一些本应该在本地保存的信息编码到返回给客户端的SYN-ACK的初始化序列号或者时间戳里面。握手尚未完成不分配任何资源(Linux即不分配request结构体)。2.解码信息等到客户端的ACK最终到来的

2016-05-21 08:11:04 19106

原创 TCP核心概念-慢启动,ssthresh,拥塞避免,公平性的真实含义

本文主要阐述TCP拥塞控制中ssthresh的来历以及为什么拥塞避免探测到丢包的时候,ssthresh会被设置为当前窗口的一半。进入证实内容之前,不得不再次吐槽!目前在网上搜的,任何资料上看的,甚至RFC上,都没有讲明白到底什么是ssthresh,它的值有什么讲究,几乎所有的资料都是在说,如果窗口大于ssthresh,那么就执行线性增窗的拥塞避免阶段,否则执行慢启动...这让几乎所有人记住了这个结

2016-05-17 22:02:44 43902 8

原创 TCP进入快速恢复时的窗口下降算法

夜深人静...夜深人静...TCP在发现丢包的时候,会采取一定的措施,至于如何发现丢包不是本文的内容,本文主要描述发现丢包以后TCP采取什么措施。以Linux为例,降窗发生在进入快速恢复的当时(暂时不考虑RTO以及本地拥塞),在降窗之前是一个Disorder的状态,指的是系统发现了异常,比如收到了重复ACK或者说收到一个推进的ACK携带了SACK信息,然而还不至于到重传的地步,比如还没有达到乱序度

2016-05-14 10:59:55 22575 1

原创 TCP拥塞控制ABC(Appropriate Byte Counting)的利弊说

TCP在慢启动阶段,每一个RTT拥塞窗口按指数级增长,TCP在拥塞避免阶段,每一个RTT拥塞窗口线性增加1。这些都是书上讲的,不必太认真,真实的情况要比这个复杂的多!        首先我们看大部分的资料里讲的TCP是怎么实现每RTT增窗的,一切都是扯理论,没什么现实意义!        在慢启动阶段,每收到一个ACK(数据包从发出到收到其ACK,就是一个RTT),窗口增加1,在拥塞避免阶段,每收

2016-05-08 23:43:33 13928 1

原创 关于Linux LOOPBACK网口抓包的一个细节

这个问题其实是我几个月前碰到,只是那时好像还在回忆着什么,心系上海,还没有完全适应这个新环境,加上这个问题也不是什么太深奥的问题,觉得太简单了,就搁置了。今天周末闲来无事就顺便写来来了。加上深圳经常下雨,越来越喜欢了。本文没什么深度,仅为记录,以及阐述一个“看文档学习原理->猜测并自行实现->对比标准实现确认”的方法。问题是这样的:在Linux上如果使用tcpdump去抓取lo口的数据包,你只能抓

2016-05-07 11:27:16 14205

原创 TCP对SACK的处理以及乱序的处理细节

不容易啊,天气热得厉害,终于到了周末却哪里也去不了,昨晚就特意向老婆申请了一段不长不短的周末时间用来总结近期的工作,也实属不易,如果申请没有获得批准,我也只好利用夜晚了,因为我几乎是一个不用怎么睡觉,可吃可不吃的人,只要有水,烧酒,就好了...大早上的,热醒了,看来也用不到我申请的时间了。...此时是早上4点半...RFC2018描述了TCP SACK的规范,主要是规范了SACK的定义以及在使用该

2016-05-07 11:17:08 16334 1

原创 TCP发送端收到ACK后对传输队列的4次扫描

TCP如果收到ACK后,不管是顺序ACK还是重复ACK(可能带有SACK选项),都可能对传输队列进行4次扫描,它们先后顺序分别是:1.第一遍扫面,分别做以下事情:1.1.标记被SACK的数据包1.2.标记哪些已经重传的包可能丢失1.3.更新网络乱序度reordering整个故事如下图所示:如果UNA向前推进了,我们就不多说了,如果没有推进UNA,而且有SACK标记(请注意,FACK并不是一种特殊的

2016-05-04 23:08:54 12106 1

原创 TCP拥塞控制图解(不包括RTO,因为它太简单了) 【勘误1】

熬过了几个夜晚,终于把TCP的拥塞处理的Linux撸了一遍,仓促中也总结了一幅巨大的图,然而今天下午的例会讨论后,我自己说着说着发现还有一些值得商榷的地方,有的是笔误,也有的是一些细节依然没有搞清楚,因此特此勘误,原文我只修改了文字,因为重新贴图代价实在太大,再者,我希望留下一些错误的印记,这样也能看清楚整个发展的历程,希望两篇一起看。虽然在大师级的神看来,这不算什么,但是对于我,这是一个比较浩大

2016-05-03 21:43:10 13493 2

原创 连接一切 or 拆除链接

到底是连接一切呢还是拆掉一些连接?好像二者是对立的。但是,请了解一下电话/电报刚刚风靡的时候,美国是个什么场景,整个城市就是一个大型蜘蛛网!然而当时的人却引以为豪,只有少数人预示到了危机!懂网络的人都知道,连接一切并不是什么好事,环路,风暴...于是就有了spanning tree,就连人工智能领域,有一个规则也约定俗成,那就是剪枝而不是连通!连接一切意味着什么?意味着你会被信息埋没,这些信息就两

2016-05-02 12:18:42 9278 1

原创 悲哀!作为服务器,Top 1却是fib_table_lookup

越是靠海的地方,海鲜越贵!但那是骗外地的以种田为生的人的...作为服务器,你敢想象系统的开销大部分都在“路由查找”上吗?        如果你的系统中10w+条量级以上的路由表项的话,这个无可厚非,然而系统就是一个服务器,一共两块网卡,连接在一个可怜的万兆以太网中,该以太网一共两个出口,一个默认网关,一个内网网关,我勒个去,一共就2条路由...爆炸!            然而该服务器的pps/t

2016-05-01 09:16:17 12640 2

原创 TCP拥塞控制图解(不包括RTO,因为它太简单了)

五一假期放假,我感到莫名地轻松,因为这是一个三天无比快乐的工作时间,今天一天在家,修正了上周末的图表,终于完成了初稿。千万不要吵醒熟睡中的老婆,一旦吵醒了就什么都完了,那就必须通宵了,可是明天还要去西冲,到头来垂头丧气,还是完蛋!不管怎么说,今天总的东西希望对别的人有用(如果你觉得对你没有用的话) 1.网上有很多讲TCP拥塞控制的文章,但是几乎没有一篇能够讲清楚的,关于很多细节充其量只是描述一下代

2016-04-30 17:33:22 28469 5

原创 Linux3.5内核以后的路由下一跳缓存

在Linux3.5版本(包括)之前,存在一个路由cache,这个路由cache的初衷是美好的,但是现实往往是令人遗憾的。以下是陈列得出的两个问题:1.面临针对hash算法的ddos问题(描述该问题的文章已经汗牛充栋,不再赘述);2.缓存出口设备是p2p设备的路由项会降低性能。这些问题本质上是由于路由cache的查找方式和路由表的查找方式互不相容引起的。路由cache必须是精确的元组匹配,因此它必须

2016-03-05 17:27:20 9127

原创 上海到深圳的长途搬家认识到了农业民族和航海民族的差异

由于工作地更替,我觉得我将有很长的一段时间在深圳了,因此决定举家从上海搬到深圳,虽然舍不得上海的朋友,同事,以及已经居住了3年的房子,但是还是不得不举家搬迁。从2015年9月份面试,到2015年11月上旬入职,这期间经历了工作交接,醉酒以及离别,从11月份到2016年春节,一直忙着搬家。其实我的想法是简单的,上海的房子不租,到深圳租个稍微差一点的房子,只要小小上学方便即可,这样我也就不需要搬太多的

2016-02-27 14:21:55 5742 9

原创 Linux3.5内核对路由子系统的重构对Redirect路由以及neighbour子系统的影响

几年前,我记得写过好几篇关于Linux去除对路由cache支持的文章,路由cache的下课来源于一次对路由子系统的重构,具体原因就不再重复说了,本文将介绍这次重构对Redirect路由以及neighbour子系统的影响。事实上,直到最近3个月我才发现这些影响是如此之大,工作细节不便详述,这里只是对关于开放源代码Linux内核协议栈的一些实现上的知识进行一个汇总,以便今后查阅,如果有谁也因此获益,则

2016-02-27 13:23:47 6565 1

原创 关于jiffies回绕以及time_after,time_before

系统中有很多变量用来记录一个单调递增的现实,典型的有两个,一个是TCP的序列号,另一个就是jiffies,但是由于计算机内表示的数字都是有限无界的,所以任何数字都不能做到完全意义的单调递增,它们只是在绕圈圈,就像钟表一样,值域就是那些有限的数字,周而复始。实际上不管是TCP序列号还是jiffies,都面临一类问题,就是回绕问题。就像我们看钟表,1点时在11点前呢,还是在11点后呢?其实这个问题并没

2016-01-17 11:37:18 5747

原创 Linux内核4.4版本带来的网络新特性

本文题目有点大,但其实我只想描述一些我个人一直比较关注的特性,并且不会太详细,跟往常一样,主要是帮忙理清思路的,不会分析源码。这主要是为了哪一天突然忘了的时候,一目十行扫一眼就能记忆当时的理解,不然写的太细节了,自己都看不懂了。Lockless TCP listener先从TCP的syncookie说起,如果都能使用syncookie机制该有多好,但是不能,因为它会丢失很多选项协商信息,这些信息对

2016-01-16 15:42:22 10833

原创 Linux内核中网络数据包的接收-第二部分 select/poll/epoll

和前面文章的第一部分一样,这些文字是为了帮别人或者自己理清思路的,而不是所谓的源码分析,想分析源码的,还是直接debug源码最好,看任何文档以及书都是下策。因此这类帮人理清思路的文章尽可能的记成流水的方式,尽可能的简单明了。Linux 2.6+内核的wakeup callback机制Linux内核通过睡眠队列来组织所有等待某个事件的task,而wakeup机制则可以异步唤醒整个睡眠队列上的task

2016-01-16 15:36:56 11483 1

原创 Linux内核中网络数据包的接收-第一部分 概念和框架

与网络数据包的发送不同,网络收包是异步的的,因为你不确定谁会在什么时候突然发一个网络包给你,因此这个网络收包逻辑其实包含两件事:1.数据包到来后的通知2.收到通知并从数据包中获取数据这两件事发生在协议栈的两端,即网卡/协议栈边界以及协议栈/应用边界:网卡/协议栈边界:网卡通知数据包到来,中断协议栈收包;协议栈栈/应用边界:协议栈将数据包填充socket队列,通知应用程序有数据可读,应用程序负责接收

2016-01-16 15:26:51 14909 4

原创 关于ICMP Redirect路由的一个不是bug的bug

在新公司碰到的第一个网络问题竟然是关于重定向路由的,这个不常被关注的问题竟然花费了我整整一下午时间来整理,本文介绍Linux协议栈是如何对待重定向路由的。路由项的生成方式任何具备网络功能的设备在内部都有有一张路由表,该表指示数据包如何从该设备发出以及下一站发送到哪里。路由表由一项一项组成,每一项称为一条路由项,这些路由项有以下的生成方式:1.自动发现的路由项网卡启动并且配置上IP地址的时候,会自动

2015-11-22 14:31:10 8429 3

原创 当心!TCP本机客户端连接本机服务器

上周,在我们进行性能测试的时候,发现了一个问题。我们的服务器上启了一个redis服务端,侦听0.0.0.0的1234端口,同处在本机的另外一个进程会频繁发起到该服务端的短连接,结果导致了两个问题:1.大量的TIME_WAIT状态的连接;2.发起连接的进程的CPU占用率接近100%。这两个结果严重影响了我们网关的性能,在分析具体原因之前,首先做一个提倡,那就是:本机连接本机,首选UNIX域套接字而不

2015-09-27 23:07:30 9972 9

原创 Linux内核中几个比较有意思的解释(进程调度算法,页面调度算法,非线性工作集)

1.O(1)调度器的时间计算公式与CFS调度器Linux 2.6.23之前普遍采用了O(1)调度器,它是一种基于优先级的时间片调度算法,所谓的O(1)只是它的一些精巧的数据结构使然,在不考虑动态补偿/惩罚的情况下,只要优先级确定,那么时间片就是固定的。2.6.23以后的CFS呢,它是一种基于权重的非时间片调度算法,进程每次执行的时间并不是固定的,而是根据进程数在一个准固定周期内按照其权重比例的时间

2015-09-26 12:31:34 8738 3

原创 Linux TCP实现优化的背后想法

想象一下当初为什么不让多个进程/线程在一个相同的IP地址和端口上侦听,很简单,这是因为TCP/IP模型将一个端口作为一个四层复用解复用的唯一标识,也就是一个四层地址,正如IP地址属于一个主机一样(属于一块网卡?),一个IP/端口对属于一台主机上一个特定的进程,它只是一个保证唯一性的静态标识。世界上不同的主机不能有相同的IP地址,一台主机上绑定特定IP地址的不同进程也不能有相同的端口,否则就不知道一

2015-09-25 00:03:33 7981 7

原创 同样思路解决不同的问题,集大成者

1.BFS调度器与O(1)调度器O(1)调度器采用二级分类,第一级是CPU,即每一个CPU一个队列,第二级是优先级,每CPU队列又细分为140个优先级队列。第一级采用负载均衡调度,第二级采用优先级调度。虽然很清晰,但是要加入“小手段”来补偿/惩罚。本质上CFS调度器也一样,只是采用了红黑树以及新增了一个虚拟时钟层屏蔽了补偿/惩罚操作。BFS调度器同样采用二级队列,第一级是优先级分类,第二级是个简单

2015-09-24 09:25:05 4787 1

原创 上海虹桥机场点烟器与UNIX哲学

今天外出,资深烟民在机场安检后怎能不找吸烟室...上海虹桥机场,我看到了下面的设施:很简单,不先进,也许你会说我孤陋寡闻,但我不反驳。这个装置真的让我怦然心动,真的!这种设计不会出自传统中国设计师之手,因为传统设计师希望让自己的设计很复杂以提高门槛,觉得自己很牛X。这个设计组合了最简单的几个小物件,一把锁,几个打火机,一个固定铁架子,足够了,难道不是吗?很美!       我老婆质问我:谁会去拿几

2015-09-23 23:59:01 7686 3

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

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