Hi,欢迎来到 卡瓦邦噶!我是 laixintao,现在生活在新加坡。我的工作是 SRE,喜欢在终端完成大部分工作,对各种技术都感兴趣。我从 2013 年开始写这个博客,写的内容很广泛,运维的方法论,编程的思考,工作的感悟,除了技术内容之外,还会分享一些读书感想,旅行游记,电影和音乐等。欢迎留下你的评论。

声明:本博客内容仅代表本人观点,和我的雇主无关。本博客承诺不含有 AI 生成的内容,所有内容未加说明均为博主原创,一经发布自动进入公有领域,本人放弃所有权利。转载无需本人同意。但是依然建议在转载的时候留下本博客的链接,因为这里的很多内容在发布之后会还会不断地继续更新和追加内容。 Not By AI

为何写作

RSS 上出现越来越多用 AI 生成的文章,我想谈谈写作(尤其是写博客)的意义,以及为什么用 AI 生成文章是不好的。

写作最初的意义是记录,如县志,日记等等。这是写作从未失去的意义,写作是可以让自己与自己跨越时空的对话,阅读自己几年前,十几年前的文字,经常感慨万分。人会随着时间而变化,比如我自己以前认为中介对社会没有意义,这个岗位消失,也不会对社会有什么影响;但是如今的我认为这是无法被替代的岗位,对社会效率有重要的作用。又比如我以前曾在德国生活过一段无忧无虑的日子,没有烦恼也没有压力,每天最大的问题就是晚饭吃什么,如今看到那段时间写下的文字都会想起那时的心情。如果没有记录,自己想法的变化就难以被发现,十年之前在写下这些文字时候的细节就无法被回忆起来,读一本书的时候想到的东西就会随时间消散,当初纠结的事情也永远不会再被提起。

所以写作就像创作时间胶囊,可以让自己与未来的自己对话,与过去的自己对话。

如果用 AI 来生成,那么写作最原本的意义是无法达到的。试想一下,如果用 AI 生成日记,那么将来的自己大概是不会看的。

写作的另一个重要的意义是思考。

我记得在十几年前第一次写博客的样子,拌拌磕磕,自己心里想的观点,写到纸上就只剩下 30%,读起来幼稚地可笑。但是这样写了一段时间(没有读者),几年之后发现可以顺利地表达自己的观点,清晰地向读者描述一个问题或者技术了。

论点或是技术,在脑子里有一个轮廓,如果不用文字描述出来,其实就是水中的月亮,只有在尝试用文字向别人解释的时候,才会意识到自己没有思考清楚的部分,需要在研究研究,才能和别人解释清楚。如此之后,虽然这部分技术会随时间遗忘(技术如果不用的话,肯定会生疏的),但是看到当年自己写的文字,自己的解释,几分钟就可以捡起来全部的内容。写过技术博客的朋友,应该都有这样的经历。在工作中遇到很多无法将一个问题准确描述清楚的人,也遇到过能一针见血指出问题的人,我觉得写作技能起的作用很大。

AI 是无法代替思考的,用 AI 就一个技术生成一篇文章,水中的月亮还是水中的月亮。

写作的第三个意义是与人交流,表达自己的观点,影响别人。如同本文一样,为什么试图说服你,你应该写点什么。知己难以遇到,即使遇到了也需要彼此发现是志同道合。如何发现呢?如果我用 AI 写一篇文章,你用 AI 来总结阅读,那么中间隔阂太大,基本上是难以产生共鸣的。人与人之间的直接交流才是最不容易失真的。

除了交流,更宝贵的是表达自己。表达是所有人的需求,高质量的表达可以带给自己自由和快乐。这样解释起来比较困难,以我自己的体验来说,我真正发现写作的乐趣是在没有写作压力的时候,不需要写 600 字的作文,不需要考虑总-分-总的写作结构,不需要考虑阅读的人怎么想,不需要担心阅读量,可以把文章写的很长(博客就是如此,就想一张没有尽头的纸),也可以很短。表达的欲望就得到了实实在在的满足。

显然 AI 也无法满足这一点。

博客还有一个意义,就是可以提高工程师的技术影响力。这一点 AI 依然无法做到,目前读到的 AI 生成的文章基本都是信息密度极低的垃圾,很有可能起到反作用。

话又说回来,无论用不用 AI 写作,博客都已经没有办法带来技术影响力了,因为以后也不会有人通过阅读博客学习什么技术了。但是博客可以带来朋友,所以,还是要让写作回归它的本质——记录,思考,表达,与交流。这些都是现在 AI 无法替代的。

 

读《金阁寺》

读其他的书知道了《金阁寺》这本书,就找来读了。读完合上最后一页,心里久久不能平静。说这本书是「惊世骇俗」一点也不为过。

书讲述的日本战后年代,一位有口吃的贫穷青年,被患有绝症的父亲送入鹿苑寺成为建系僧人,母亲最大的愿望,就是看到「我」成为住持。书中的「我」痴迷于金阁寺的美。因为在寺里发生的种种违背于「美」的事情(抑或许「我」本身就是这样的一个人?),给「我」带来煎熬的思想斗争。心理的内耗由于无法了解,「我」的老师对此也不做评论,导致「我」越陷越深,沉迷于自己的世界中。想要承认错误却又因为懦弱而无法行动,导致最终的行为是通过犯下更大的错误来祈求得到老师正面的批评,越陷越深,加上母亲对自己的寄托沉重地无法背负,最终犯下被世人唾弃的滔天大罪。

因为年轻与贫穷,能力受限制,无法掌控自己的生活,我对这种处境很有共鸣。我想起来初中的住校生活,一个月有25天都住在学校里,8 个学生生活在15平米的宿舍里面,老师会随意进出宿舍,翻看学生的物品,没有隐私可言。每一个人都被贴上了无法摘掉的标签:来自农村,如果你学习好,那就是人穷志不穷,是大家学习的榜样,如果学习不好,那就是家境贫寒还不知道努力,是耻辱中的耻辱;家里有钱,如果学习好,就是家里有钱但是还要强,如果学习不好,那就是纨绔子弟;长得漂亮,学习好,那就是天生财貌双全,学习不好,那就是心思都用在了打扮上面。总之,老师无法将事情分开单独看待,无法接受一个学习不好只是不努力,学习好是努力,和家境,长相无关。

虽然这是和本书不想关的东西,但是我想,就是处在这种环境中,没有能力做出改变,才愈发想要尽一切可能打破这一切。对于虚伪之人,「我」能做的,就是做出不符合他们预期的事情,不让他们的预期得逞。书中的「我」其实非常软弱,尝试出走,只是遇到警察就被遣送回寺了,花学费去嫖娼也会受到妓女的教育,没有人看得起。最后火烧金阁寺的时候,也是被一连串的事件推动进行的,中间几次打了退堂鼓,如果不是这些机缘巧合,可能最后不会有这样惊天之举,也许就是一事无成的落魄僧人,被寺里赶出来,落得一个流落街头,最终被人遗忘的命运。

生活在自己没有能力掌控生活的环境中,能做的,就只有顺从掌权者的想法,必须要小心翼翼。这和掌权者没有关系,即使权力的座位上是一个好人,迫于权力的不对称,也会带来极大的心理压力。三岛由纪夫把这种压迫感描写的淋漓尽致。如果一步走错,会陷入深深的怀疑中,想要打破这一切,放弃一切。甚至希望事情朝着糟糕的方向发展,因为这样的话,也就不必再抱有希望,可以心安理得地迎接最坏的结果了。

三岛由纪夫的文笔非常好,摘录书中的几段:

在描写口吃的时候,写道:

显而易见,口吃的毛病成了我与外界交流的一道巨大障碍。每当我想说话时,第一个音总是发不准,这第一个音成了我打开外部世界之门的一把钥匙。遗憾的是,这把钥匙从没打开过门上的锁。其他人都可以通过语言自由自在地打开自己与外界之间的这扇大门,而我无论如何努力也做不到。我的钥匙生锈了。

对口吃的人来说,最难受的就是如何发出第一个音,这让人备受煎熬,就如内心有一只小鸟想飞出去,但浑身沾满了黏稠物,只能慌乱无用地扑扇翅膀。好不容易挣脱出来时,已经赶不上对话节奏了。

在我挣扎着扑扇翅膀的时候,门外的世界偶尔会暂停脚步等我赶上,但在我赶上的时候,那个世界已不再是我尽力要赶上的现实世界了。当我费尽全力挣脱并到达外部世界时,才发现这个世界已经瞬间发生改变,完全背离了我的期待……

描写看热闹的人:

看热闹的人在一田之隔观望,后来人越来越多,大家肩挨着肩沉默观看,连头上的月亮好像都被挤小了。

真是一张不可思议的脸,这样的表情在刚被砍倒的树桩上也能看到。尽管色泽还鲜艳,但成长已不再可能,被迫沐浴在本不该沐浴到的阳光和秋风里,暴露在本不该属于自己的世界里。有为子的脸如同那有着美丽木纹的木桩,想拒绝这个世界,却被拖拽到这个世界上,呈现出不可思议的美……

描述金阁寺顶的金铜合金的凤凰:

我还想起屋顶上那只金铜合金的凤凰,这只历经几百年风吹雨打的神秘的金色大鸟,既不报时,也不飞翔,似乎完全忘了自己是鸟儿。但是,如果认为它不在飞,那就错了。别的鸟儿都在空中飞,而它却展开闪亮的翅膀,永远在时间里翱翔。时间如风,掠过它的双翅向后流逝。金凤凰以亘古不变的姿势,双翼高振,怒目含威,尾翼伸展,双腿稳稳站立,翱翔在时间的长河中。

临近闭园时好像来了一个旅游团,从金阁方向传来了阵阵喧闹声。围墙外的脚步声和人声虽然吵闹嘈杂,但经春日的夕暮吸收后,并未有尖锐刺耳的感觉,反而显得柔和且饱满。没过一会儿,脚步声如潮水般远远退去,犹如这片土地上来来往往的芸芸众生的足音。我抬头凝视着金阁顶上的金凤凰,此刻,它正沐浴在落日余晖的残红里。

描述自己梯度之后的头:

我刚落发的头上泛着青光,与空气完美贴合。感觉自己脑中所想之事,与外界仅隔了一层薄薄的、敏感且易破的头皮而已,这是一种奇妙且危险的感觉。我仰起光溜溜的头颅凝望金阁,感觉它不仅进入了我的视界,还通过这颗光头渗进了我的体内,与我融为一体,跟我的头一样,在骄阳暴晒下感受到热,而在夕阳西下时又会凉下来。

我在绝望中等待,因为我相信,这澄清的早春晴空就像闪亮的玻璃窗一样,虽然我们看不见,但其背后一定隐藏着强大的火力和毁灭一切的力量。如前所述,我这个人不擅表达对人的关爱,父亲的死及母亲的困窘都没有在我的心里激起一片涟漪。我幻想着某天天空中突然出现一台巨大的碾压机,能将一切灾祸、世界末日和人间惨剧,无论是人还是物,无论是美还是丑,无差别地统统碾碎。那个早春异常灿烂的晴空,似一把可覆盖整个大地的巨大利斧,闪着寒光。我期待那把斧尽快砍下,不给任何人思考的余地。

对于友情的描述:

是的,有时候我甚至觉得,鹤川是一位炼金术大师,他善于从铅里炼出黄金。如果我是照片的底片,鹤川就是照片的正片。我惊讶地发现,很多时候,一旦经他的过滤,我的浑浊不堪的心情不仅瞬间消失殆尽,还会转变成纯净透明、光彩熠熠的感情。当我结结巴巴、踌躇无措时,鹤川就会伸出援手,将我的感情翻转过来展示给外界看。一次次的惊愕让我明白,如果仅停留在感情层面,那么这世上最善和最恶的感情其实并非截然不同的东西,其效果也是相同的。而且,从表面上看,杀意和慈悲心也没什么不同。我想,关于这些,无论我如何费尽口舌地向鹤川说明,他也不会相信吧,但对我来说,这却是一个非常可怕的发现。因为鹤川的存在,让我不再惧怕伪善,但对我来说,伪善只不过是一种相对的罪恶而已。

瞥见那一抹青痕时,我顿感不安。眼前的这位少年和我不同,他的生命将在纯洁的末端燃烧,在燃烧之前,未来隐藏不见。未来的灯芯浸在冰冷透明的油里。如果留给未来的只有纯洁和无瑕的话,谁还有必要预测自己的纯洁和无瑕呢?

描写下雪:

究竟顶的大门今天依旧对着天空敞开。仰望它时,我的心却随着雪花飞舞:飘进敞开的大门,在空无一物的究竟顶狭小的空间里飞舞,接着落在墙壁一片生锈的金箔上,失去活力,停止呼吸,最后变成一颗透着金色的露珠。

希望破灭之后的绝望感:

这时,我心里产生了异样的冲动,如同有满腹话语想要表达,却因口吃妨碍而欲说不能,话语一直卡在喉咙里燃烧一样。我想寻求解脱。眼下,不仅是母亲曾经暗示过的继承老师衣钵的希望已然渺茫,就连上大学的希望也已荡然无存。我想从这无声地桎梏着我、重重地挤压着我的窒息感中解脱出来。

一种可怕的不满让我们这样的人和这个世界处于对立状态,我们和世界必须有一方肯妥协并做出改变,这种不满才有可能得到治愈。但我讨厌渴望改变的梦想,也讨厌毫无意义的白日梦。但是,我又喜欢在“世界若变化,我就不复存在;我若变化,世界也将烟消云散”这样的问题上刨根问底。这样的确信,反过来倒像我与这个世界的某种和解、某种融合。像我这样肢体有残障的人是不会被世人所爱的,因为我有这样的想法才能得以和这个世界共存。但是,残障人士最容易陷入的陷阱,不是和外部世界的对立状态得以消除,而是全盘接受自己与世界对立的状态。于是,残疾就成了让你和这个世界格格不入的不可调和的存在……

在这个逃课的午后,和煦的春光和阵阵和风就像新做的衬衣,轻柔地触碰着肌肤。

这是因为美可以委身于任何人,但又不专属于任何人。该怎么跟你解释才好呢?对了,美这种东西就像虫牙,它通过与舌头触碰、牵连舌头、引发痛感等宣示自己的存在。最后,人们会因为无法忍受疼痛而请医生将之拔掉。当人们将刚被拔掉的血淋淋的、脏兮兮的、茶垢色的虫牙放在手掌上,一定会说:就是它呀!让我痛苦的就是这小小的东西吗?是它不断对我宣示存在感,让我寝食难安吗?像这样在我身体里顽固存在的东西难道就是这种死掉的物质吗?这个和那个真的是同一种东西吗?这个本应是我身体外部的东西是因何缘由与我的身体内部结合,成了令我痛苦的根源呢?这东西存在的依据是什么呢?而这依据本就存在于我的身体内部吗?或者就是依据它自身呢?不管怎么说,刚从我身上拔下来的这东西绝对不是我身体的一部分,也断然不是那个东西。

总的来说,我的体验中仿佛有一种神秘的巧合在悄然运作,宛如一条挂满镜子的长廊,一个影像无限地延伸到深处。新遇见的事物,清晰地映射出过去所见之物的影子。人最容易被这种相似性所牵引,不知不觉就走到走廊尽头,迈向那深不见底的幽暗深处。命运并非突如其来,它如同一个潜伏的影子,悄无声息地渗透进生活的每个角落。比如,那个日后被判死刑的男人,平日里经过路旁的电线杆或铁道口时,意识中或许时常浮现绞刑架的幻影,甚至对它怀有一种莫名的亲近感。

因此,我的体验中没有堆积物。没有层层堆积的地层,也没有足以堆砌成山峦的厚重积淀。除了金阁,我对世间万物都毫无亲近之感,甚至对自己的体验也未曾有过特别的眷恋。但我深知,在这些体验中,仍有一些尚未被时间之海的黑暗完全吞噬的碎片,以及还没陷入毫无意义的无限重复的部分,这些小部分正在悄然聚拢,逐渐形成卑鄙而不祥的图画。

我经常思索,这些细小的部分又是什么呢?这些闪烁的碎片,甚至比路旁丢弃的啤酒瓶碎片更没有意义,更加杂乱无章。

尽管我如此说,却也不能就此断定这些片段就是那些曾经被塑造成美丽而完整的形态所丢失的碎片。它们因毫无存在意义、缺乏规律而被世人当作丑陋的东西,惨遭抛弃,却仍在各自默默憧憬着未来。以卑微的碎片之身,无所畏惧地、诡异地、静谧地……憧憬着未来!憧憬着那个绝无可能痊愈的、无法企及的、闻所未闻的未来!

我非蜜蜂,故不受夏菊诱惑;我非夏菊,故亦不会招来蜜蜂。所有的形态和生之间的融洽已然消逝,世界再度坠入相对性之中,唯有时间永恒流淌。

细节的描写:

这时,背后有人影闪现。阴沉的天空渗出一丝微光,摆放在玄关的鞋柜上的木纹瞬间鲜亮起来。

看到了永生的幻象;而具有永恒不灭之美的金阁,却让我感受到一股死亡的气息。为什么鲜有人意识到,其实人类这种寿命有限的生物是无法根绝的,但金阁这样具有不灭之躯的东西却很容易被消灭。

那天晚上她留在金刚院里的血,仅像早起开窗时,被惊飞的蝴蝶留在窗框上的磷粉而已。

书中对细节的描写,真实地不像虚构小说,于是读完之后我去查了金阁寺的维基百科:1950年7月2日凌晨(与书中描写的时间相同),京都市消防队收到火警,称鹿苑寺起火。等到消防队到了鹿苑寺的时候舍利殿(俗称金阁)已经燃起熊熊大火,消防队员无法靠近。这起纵火事件中并没有人员伤亡,但是舍利殿被全部烧毁,创建者室町幕府的第三代将军足利义满的木像,观音菩萨像和如来佛祖像以及众多古本佛经被焚毁。

经过事后调查,发现鹿苑寺的见习僧人林承贤在纵火事件后失踪。后来警方在寺院后面的左大文字山发现林承贤已经切腹,蹲坐在地上。经过抢救,林承贤捡回一条性命。但是被判处7年的惩役(坐牢加罚役),最后病死狱中。

在现实生活中同样对他期望很高的妈妈,经警察传唤返家时,从行驶中的山阴本线列车跳下保津峡自杀。

三岛由纪夫 (作者 土门拳

金阁寺在 1955 年开始重建,今日文明世界的鹿苑寺舍利殿,是根据在明治时代翻修时留下的图纸重建的。比重建之前的还要豪华。

《金阁寺》以第一人称书写,其实和作者本人,三岛由纪夫有很多相似的地方。三岛由纪夫也是体弱多病,不过后来为了不被身体的自卑困扰,开始健身,变成了一个肌肉男。

三岛由纪夫其实是一个变态。

三岛对日本传统的武士道精神和严厉的爱国主义深为赞赏,对日本第二次世界大战战败后社会的西化和日本主权受制于美国非常不满。经过长时间的准备,和盾会(也是他创立的)成员,跑到日本陆军基地,绑架了一个中将,发表演说,企图发动政变。

各位好好听一听。静一静,请安静,请听我讲。一个男人正在赌上生命和你们讲话。好吗?这个,现在,各位日本人,如果在这里不站起来的话,自卫队如果不在这里站起来的话,宪法是不可能改变的。各位只会永远的成为区区美国的军队而已啊……。
我已经等了四年了,(等著)自卫队站起来的日子……已经等了四年了,……我再等……最后的三十分钟。各位是武士吧?如果是武士的话,为何要保护“将自己否定”的宪法呢?为何要为了“将各位否定”的宪法,向着“将各位否定”的宪法低头呢?只要这(宪法)还在,各位是永远无法得到救赎的啊!

——三岛由纪夫,于总监部阳台(译)

然而,没有人回应他,甚至嘲笑三岛是一个疯子。

三岛随后从阳台退入室内,按照日本传统仪式切腹自杀。

1999年,在富士山旁边建立了一个三岛由纪夫文学馆,来纪念他。

 

雨季又来

「未来两周受季风交替影响,本地多数日子的下午,预计会出现短暂雷阵雨,有几天的最高气温可能达到35摄氏度。未来两周全岛降雨量,预计接近常年平均水平。多数下午,部分地区将出现短暂雷阵雨,有时可能持续至傍晚;也可能有几天降雨不多。」联合早报这么说。最近会下雨已经出现在了新闻上,而不是天气预报上。

春季到了,太阳跑到了赤道的北边。我住的房子朝北,每天起床阳光会射进屋里,晒得玻璃发烫。

高温伴随着雨季,雨水降下来马上又被蒸发,每一天的空气都湿漉漉的。有时候太阳还在天上,没有什么乌云,竟然也下起来雨。

除湿机派上了大用场。每天可以从空气中吸出来两桶水。

说到除湿机,我买的 Novita 牌子,这个公司曾经把自己的产品线全部升级了一遍,从空气净化器到滤水器,所有的型号后面加上了一个 plus——和之前唯一的区别就是必须用他们自己生产的滤芯,售价高昂,而且滤芯到期之后机器会强制停止工作,必须更换。

但是之前非 plus 型号的滤芯还是在售,并且无法在 plus 上使用。用 Shopee 搜出来,非 plus 居然还排在前面,我就上当了,白白浪费了钱,得重新买。

真是气人。

 

MTU Probe 引起的初始延迟

答案是 MTU 设置错误1,链路可以发送的最大 MTU 小于 1500 bytes,但是客户端侧配置的 MTU 却是 1500 bytes。所以 TCP 连接建立之后的包,无法到达另一端。在等待 3.5s 左右,发送端觉得链路存在问题,尝试降低发出的包的大小,这时候就可以发过去了,链路上才开始数据传输。

要定位这个问题,我们现在抓包文件中,找到传输数据最多的那个 TCP flow,就是传输数据最多的那个。这个连接是我们重点研究的对象。右键选择 Follow > TCP Stream,来只展示这一个会话。(如何追踪某一个 TCP 流,在前面 重新认识 TCP 的握手和挥手2 中也介绍过)。

TCP connection 建立之后,客户端一下发了 10 个包,大小都为 1500 bytes。但是服务端一个都没有 ACK。

前10个包都没有得到服务端的 ACK,前两个包也可以看到 TCP 两端协商的 MSS 是 1460 bytes

然后客户端开始重传。

前 3 次重传分别发生在 0.3s, 0.8s, 1.7s,也都没有收到 ACK。

第 4 次重传发生在 3.5s 这个包不再以 1500 bytes 发送了,而是 1076 bytes (TCP 层是 1024 bytes) 发送。这个包得到了服务端的 ACK。

第 4 次重传降低了 MTU,并且收到了 ACK

于是客户端知道,1076 bytes 的包可以被服务端收到,所以后续都用 1076 bytes 作为 MTU 发送。过一段时间之后尝试更大的包,1288 bytes,1394 bytes,发现也没有被 drop,就继续 probe 并且增大 MTU,最后用 1399 bytes,接近链路的真实 MTU (实际链路 MTU 是 1400 bytes)。

这就是每一个连接都会卡 3.5s 的原因。

为什么要重传 3 次才开始降低 MTU 呢?

这是通过 tcp_retries1 设置的。man 是这么说的:

The number of times TCP will attempt to retransmit a packet on an established connection normally, without the extra effort of getting the network layers involved. Once we exceed this number of retransmits, we first have the network layer update the route if possible before each new retransmit. The default is the RFC specified minimum of 3.

即 TCP 会尝试 tcp_retries1 次数的重传,而不涉及 IP (network) layer.

如果超过了 tcp_retries1 还没有重传成功的话,(默认第 4 次)就会认为链路存在异常了,需要 IP 层接入,比如开始 mtu probe 尝试解决问题。

如果设置为 1,那么在卡的时间就会降低到 1s 左右。(当然,最好的解决方式还是设置正确的 MTU)。

而根据 TCP 的重传时间,大概就是在 3.5s 左右了。

前面说,第 4 次重传的包是从 1076 bytes 开始发送,为什么是这个数字呢?

这个是 sysctl 参数 net.ipv4.tcp_base_mss = 1024 控制的。TCP payload 是 1024 bytes,加上 TCP 的 header,就是 1076 bytes 了。

如果读者尝试复现这个例子,会发现在 MTU 设置错误的情况下,会一直卡住。这是因为 MTU 出现问题的时候,默认的工作机制是靠 ICMP 消息 “Fragmentation Needed” (Type 3, Code 4 in IPv4) 来提示需要降低 MTU 的。但是现实情况中,这个 ICMP 一般是收不到的(因为各种设备为了所谓的「安全问题」丢弃了 ICMP),这样就会出现 blackhole,一直重试缺卡在这里。默认情况下,MTU 错误的设置地大了,是会一直卡住的。

但是可以通过 sysctl 参数设置 net.ipv4.tcp_mtu_probing,默认是 0,即不用 probe。

如果是 1 的话,在出现 blackhole 的时候就会尝试降低 segment 的大小看能不能通。即本文中的情况。

如果是 2,是一直启用,即 TCP 不管对方说的 MSS,发送的时候总是从一个小的 MSS 开始发,如果没有问题,再逐渐加大。

MTU 常见的原因,以及一些其他的相关讨论,可以参考下面列出来的 有关 MTU 和 MSS 的一切 一文。

  1. 有关 MTU 的详细分析,可以参考之前的文章:有关 MTU 和 MSS 的一切 ↩︎
  2. 重新认识 TCP 的握手和挥手:答案和解析 ↩︎


==抓包破案录==

这篇文章是抓包破案录系列文章(之前叫做《计算机网络实用技术》,后来改名了)中的一篇,这个系列正在连载中,我计划用这个系列的文章来分享一些网络抓包分析的实用技术。这些文章都是总结了我的工作经历中遇到的问题,经过精心构造和编写,每个文件附带抓包文件,通过实战来学习网络抓包与分析。

如果本文对您有帮助,欢迎扫博客右侧二维码打赏支持,正是订阅者的支持,让我公开写这个系列成为可能,感谢!

如果您正在阅读的是题目类的文章,这个目录内容正好用来隔离其他读者的评论。读完题目可以稍作暂停,进行思考,继续向下滑动,可能会被其他的读者剧透答案。

没有链接的目录还没有写完,敬请期待……

  1. 序章
  2. 抓包技术以及技巧
  3. 理解网络的分层模型
  4. 数据是如何路由的
  5. 网络问题排查的思路和技巧
  6. 不可以用路由器?答案和解析
  7. 网工闯了什么祸?答案和解析阅读加餐!
  8. 重新认识 TCP 的握手和挥手答案和解析
  9. 3.5 秒初始延迟问题答案和解析
  10. 网络断断续续……答案和解析
  11. 延迟增加了多少?答案和解析
  12. 压测的时候 QPS 为什么上不去?答案和解析
  13. TCP 下载速度为什么这么慢?答案和解析
  14. 请求为什么超时了?答案和解析
  15. 0.01% 的概率超时问题答案和解析
  16. 后记:学习网络的一点经验分享
与本博客的其他页面不同,本页面使用 署名-非商业性使用-禁止演绎 4.0 国际 协议。
 

3.5 秒的固定延迟问题

一天工作日,你拿着刚买的咖啡来到了办公室,准备开始做计划好的工作,度过本该是平平无奇的一天,直到——一位用户发过来消息说他们有新的机器上线之后,所有的 TCP 连接都自带3.5s左右的延迟!他们的服务在使用新的服务器之后,延迟都上升了 3.5s!

经过他们自己的 debug,他们发现,延迟增加之后,在 TCP 连接建立之后,有3.5s 的时间没有发送数据,之后,网络就正常了!然后我们知道,不光服务器是新的,机架,网络设备,都是新的。这批服务器本不该你来负责,但是这个现象也太怪了!所有人都知道你是公司里的网络专家,如果有有解决不了的网络问题,就会来找你。

你让用户用 iperf 测试一下带宽1,用户测试了一下,结果如下:

还真是和用户说的一样!

这必须要抓包一下才知道原因了!用户又做了一次 iperf,并且同时执行 tcpdump 进行抓包,过一会儿,就发来了抓包文件。

你看了一会,然后马上就发现了不对劲的地方……

请分析这个抓包文件,找出固定3.5s延迟的问题在哪里。

  1. https://iperf.fr/ ↩︎

==抓包破案录==

这篇文章是抓包破案录系列文章(之前叫做《计算机网络实用技术》,后来改名了)中的一篇,这个系列正在连载中,我计划用这个系列的文章来分享一些网络抓包分析的实用技术。这些文章都是总结了我的工作经历中遇到的问题,经过精心构造和编写,每个文件附带抓包文件,通过实战来学习网络抓包与分析。

如果本文对您有帮助,欢迎扫博客右侧二维码打赏支持,正是订阅者的支持,让我公开写这个系列成为可能,感谢!

如果您正在阅读的是题目类的文章,这个目录内容正好用来隔离其他读者的评论。读完题目可以稍作暂停,进行思考,继续向下滑动,可能会被其他的读者剧透答案。

没有链接的目录还没有写完,敬请期待……

  1. 序章
  2. 抓包技术以及技巧
  3. 理解网络的分层模型
  4. 数据是如何路由的
  5. 网络问题排查的思路和技巧
  6. 不可以用路由器?答案和解析
  7. 网工闯了什么祸?答案和解析阅读加餐!
  8. 重新认识 TCP 的握手和挥手答案和解析
  9. 3.5 秒初始延迟问题答案和解析
  10. 网络断断续续……答案和解析
  11. 延迟增加了多少?答案和解析
  12. 压测的时候 QPS 为什么上不去?答案和解析
  13. TCP 下载速度为什么这么慢?答案和解析
  14. 请求为什么超时了?答案和解析
  15. 0.01% 的概率超时问题答案和解析
  16. 后记:学习网络的一点经验分享
与本博客的其他页面不同,本页面使用 署名-非商业性使用-禁止演绎 4.0 国际 协议。