天庭,巴府。
厅堂之上,大将巴戈正襟危坐,惊堂木一拍:“汇报这几天牛郎织女的情况!”
一只小喜鹊战战兢兢地走出来:“回禀巴戈大人,近期牛郎织女并无明显异动。”
“他们的通行也被全数截获,但都是家长里短卿卿我我的闲谈,并无有用的信息。”
“不过,微臣发现,近几日,牛郎织女的通信,多了好多无用的内容,比如‘你好’‘再见’这种无聊的用词。”
巴戈想了想,说:“此事怪异,我稍后将禀明王母。虽然不知道牛郎在搞什么,但是通信的变化,必然隐藏着阴谋。”
“咱们也不能坐以待毙,让他们一直聊得这么嗨,王母肯定也看着不爽。”
“军师,咱们能否加强月宫兵力,拦截所有喜鹊?”
一位老者站了出来,捋了捋斑白的胡子,慢慢说道:“大将,您也知道,这是不可能的。”
巴戈重重拍了一下惊堂木:“不能也要能!王母将此事全权交付于我,出了差错那可是要掉脑袋的!”
“除去情报兵之外,其他兵力全部驻守月宫,拦截喜鹊!军师,你看这样能全拦下吗?”
老者想了想,说:“既然将军心意已定,我必当全力支持。咱们可以在月宫的重要关口部兵。”
“如此,全部兵力出动的话,应该可以做到八成的拦截率。”
“唉——”巴戈叹了口气,“这么多兵力,才能做到八成啊……”
老者说道:“八成已经很高了,也就是说,5条信息能拦截4条。即使牛郎一条信息发10遍,理论上也是有概率被全部拦截的。”
“无法确定信息是否送达,对牛郎来说一定是非常大的困扰了。”
巴戈再次拍下惊堂木:“好,就这么办!”
鹊山脚下。
“牛郎——”小皮的声音划破了清晨的宁静。
牛郎早已起身,赶紧前去开门,只见小艾和小皮早已站在门口。
小皮继续说道:“这新的方案,可能不太行啊。”
牛郎赶紧请两位进来:“茶已经准备好了,进来详谈。最近我也发现,发送一次消息的时间变长了。”
三人在客厅的茶桌前坐好,牛郎给每个人斟茶。
小皮先开口了:“最近月宫那边,很多喜鹊被拦截下了,大概有八成。”
“虽然他们无权将喜鹊抓起来,但是这样拦截一下,平均每个消息要重试三到四次,消耗成本挺高的。”
小艾补充了一句:“不过,你这个方案的厉害之处,是将‘握手’‘挥手’交付喜鹊进行,失败了由喜鹊自行重试。”
“所以,你和织女感知到的只是通信时间变长了,但你们两人的通信过程依旧是简单与稳定的。”
牛郎有些不好意思地说:“在分层结构中,每一层都对自己的上层隐藏自己的实现细节。”
“这是我设计的原则,基于这层封装,我给织女发消息,还是简单地告诉你们内容就好了。”
“而喜鹊们需要进行‘三次握手’‘四次挥手’,是喜鹊通信层面的事情,我和织女不需要也不应该知道其细节。”
“虽然结构很合理,但确实也是牛郎在设计时有些自私了,让喜鹊的工作量陡然上升。”
“既然知错,还不快改?”小皮做出生气的样子,瞪了瞪牛郎。
牛郎则是一脸无辜:“可惜,牛某现在的实力,还改不了。”
小皮拍了一下桌子:“你……”
牛郎说:“不过,我想到一种剑走偏锋的方式,或可一试。”
“什么方式?”
“咱们,给王母发个消息吧,让她不要做这些无意义的拦截了。”
“你有病吧……”
“你才有病……”
小艾打破了争论:“行了,你们别争了!牛郎提出如此策略,必然有其原因,咱们可以一起聊聊。”
牛郎说:“很简单,从月宫无名渊,不像是南天门,一夫当关万夫莫开。从无名渊的位置与周围情况看,完全拦截喜鹊,是不可能的。”
“所谓百密一疏,即使倾整个天庭之力,我推断也必然会有至少百分之一的疏漏。现在听你们说拦截率在百分之八十,可以说,这应该接近他们的极限了。”
“虽然养兵千日用兵一时,但天庭的代价比喜鹊大太多了,而且付出这么多依旧无法拦截通信,即是白费资源。”
“咱们的消耗是有意义的,而王母那边的消耗,只是增加了我们的成本,这成本虽然让我们有些累,但却一直可以承受,而且通信也一直正常。”
“而王母那边有失无得,得失比接近于0。咱们把这些描述清楚,王母一定会下令撤军的,否则,她就不配指导天庭了。”
“看你说的这么自信,那咱们就试试吧。具体要怎么做呢?”小艾问道。
“稍等我把上面的内容整理下,然后发给织女就好了。”牛郎说道。
小皮有些疑惑了:“不是要给王母发消息吗?”
牛郎笑了笑:“是的,但是,没有必要那么麻烦。我与织女的通信,王母一定是有监听的,所以,直接给织女发送就好了。”
小皮竖起了大拇指:“真有你的,竟然可以反过来利用这些。”
牛郎说:“哈哈,都是小问题。另外,我这边这几天也想出来了另一个优化的策略,不知两位是否有时间一听?”
“我们要是说没时间,你明天又回抛到山上找我们吧……所以说,现在赶紧说。”小皮催促到。
牛郎解释道:“你们想,现在通信链路建立的成本其实很高,有着握手和挥手过程。但实际发送信息,却只携带一条,这明显有些浪费。”
“所以,本次我想解决的问题,一个是长信息的发送优化,另一个就是多条信息的发送优化。”
“先说长信息。比如,我想给织女发一封千字情书。每只喜鹊的记忆有限,因此,不可能一次发送完,必然要拆分多次。”
“理论上说,拓展每只喜鹊的记忆量几乎是不可能的,因此,拆分是必然事件。只是,核心在于,其实,我和织女,没有必要知道拆分与组装的过程。”
小艾好像想到了什么:“难道要和之前的TCP一样,将这部分封装到喜鹊的层面处理?”
小皮也跟着附和:“真是好心的牛郎啊,又要增加我们的工作量了!”
“两位别急,且听我说完。”
牛郎接着说:“我将这套新的方案,叫做‘HTTP’。首先,明确几个概念。”
“发送方发出的消息,我们称之为‘请求’,接收方返回的回应,我们称之为‘响应’。”
“一个‘请求’,分为3部分,请求行,请求头,请求体。”
“请求体,就是我要发送的内容。如果文本过长,请喜鹊们按一百字左右拆分就好,每个我们称为一个‘包’,注意进行编号。”
“请求头,是对整个请求的概括,以及一些辅助信息。主要包含总字数,拆分的包数目,用于接收方重组原始文本。”
“请求行,只要2点信息,版本,接收者。目前版本固定为1.1,后面可能升级,不同版本将对应不同的解析策略。”
“喜鹊拿到我要发送的内容,自动拆分为这3部分,请求行与请求头随第一个请求体发出。”
“接收的喜鹊通过请求行与请求头,确认总的包数量,按照编号组装文本,然后校验组装好的文本是否与请求头的字数一致。”
“这中间可能有丢包,比如一共10个包,3号包一直没来,那么,你们自行重传就好。”
“最终,把整合好且确认无误的信息传递给织女,才算是完成了任务。”
“请求行和请求头是给喜鹊看的,我和织女真正关系的是请求体。”
“‘响应’的结构与之完全一样,这里不重复了。”
“当一个‘请求’成功发出,一个‘响应’成功回来时,一次HTTP通信则算完美成功。否则,任意一步出错,都将进行重试。”
小艾皱了皱眉头,看着牛郎,说:“意思我理解,但总觉得,喜鹊做的事情,越来越多越来越乱了,好像有些失去条理了。”
牛郎与之相视一笑,说:“哈哈,我早就想到,你们可能有这样的疑惑了。所以,让我来给你们‘有条理地解释一下’吧!”
牛郎起身,走到旁边的桌子旁,拿起纸笔,回到茶桌一遍画一边讲解:
“看似所有的事情都交付喜鹊们执行,但是,这里面,确实可以分为4个层面的。让我们从下往上说。”
“首先,一切都是基于喜鹊可以飞行并向附近喜鹊传递信息这一基础。这是整个通信链路的根基,没有它就没有这一切。我们称之为‘链路层’。”
“其次,是根据IP寻找并准确与每一只喜鹊沟通,从而形成喜鹊网络。这一层,称为‘网络层’。”
“接着,就是之前通过TCP传输数据,从而形成稳定的传输通路。因此,这里称之为‘传输层’。”
“最后,是基于传输的优化与应用,是文本等信息传输的最终解决方案,这也就是‘应用层’了。”
“这就是目前的‘四层网络模型’。怎么样,两位,理清思绪了吗?”
小艾和小皮仿佛醍醐灌顶:“听君一席话,胜读十年书!这个简直太强了!是我们之前想的太简单了。”
小艾继续说道:“唉,要是能有人像这样透彻地讲解法术,说不定我和小皮就能更上一层楼了。”
牛郎无意说道:“传言说有两只连低级法术都只学了个皮毛的废柴神仙……”
小皮那柔弱的拳头已经落在了牛郎的头上:“你可以闭嘴了……”
“牛郎失言,咱们接着聊优化的事情。”牛郎给小艾和小皮满上茶水,继续说道:
“接下来,咱们说说多个请求的优化。”
“之前,是每一个‘请求-响应’,都会对应一套‘握手-挥手’流程。”
“而优化的核心就是,在一次‘握手’捡来连接之后,允许发送多个‘请求’。我称之为‘连接复用’,或者叫做‘长连接’。”
“具体的做法是这样的。”
“一次请求发送后,不要立即进行‘挥手’,而是等待1个小时之后,再进行‘挥手’关闭连接。”
“在这一个小时内,如果有新的请求要发送,那么,就直接复用原来已经‘握手’成功的连接即可,并重置1小时的等待时间。”
“这样,我们减少了‘握手-挥手’次数,从而减少了资源消耗。”
“当然,稳定性方面也不会打折扣的,因为之前建立过连接,所以复用该连接,大概率是通畅的。”
“当然,也一定会存在复用时连接中断的情况,此时,就需要重新‘握手’建立连接了。”
这时,小艾突然问道:“既然如此,何必1小时后挥手关闭呀,为什么不一直保持连接呢?”
“好问题!”牛郎夸赞道,“但是,一直维持连接,对于链路上的喜鹊,也是一种浪费。”
“而且,由于王母的拦截,连接的长时间维护很难,必然中断概率很高,下次可能还免不了新建连接。”
“再者,若长时间不进行请求发送,那么维护连接的成本,远比新建连接的成本要高得多。”
牛郎拍了拍手:“好了,理论都讲完了,接下来该干活了!”
小艾与小皮没有动,也没有说话。
小艾看着疲惫的牛郎,轻声问道:“这样值得吗?”
牛郎愣了一下,旋即坚定的回答:“值得。”
接着,牛郎低下头,许久的沉默后,牛郎低声说道:
“我从不否认自己的目标,也对自己所迈出的每一步坚定不移。”
“只是,有时候我也会迷茫,仿佛看不到这一切的未来。”
“我只是一介凡人而已,我不知道如何让王母真正承认自己。”
“天数契约可能只是个开始,即使我完成了,王母之后肯定也不会善罢甘休的……”
声音有些听不清了,夹杂着那强忍住的啜泣。
小艾轻轻拍了拍牛郎的肩膀,说:“你有没有想过,像我们一样,踏上仙途?”
牛郎没有回答。小艾与小皮也没有继续追问。
“我们先走了,HTTP相关的事情,一定会办好的。不用送了,你也多保重。”小艾和小皮起身告别。
“再见。”牛郎挥手告别,然后继续低下头,陷入了沉思中。
星夜,牛郎的内心独白。
“我本想沿着通信学专家的路线,一直走下去的。”
“我本想继续研究第三代HTTP协议,本想接下来与织女一起探索通信加密的奥妙。”
“但是,我所做的这么多研究,没人关注,没人点赞,没什么阅读量,让我好伤心啊……”
“所以,是时候做出一些改变了……”
虽然很遗憾,但是,我们再也回不到过去了。