七夕缘起-第2.5章-HTTP与连接复用

七夕缘起-第2.5章-HTTP与连接复用

01
天庭,巴府。
厅堂之上,大将巴戈正襟危坐,惊堂木一拍:“汇报这几天牛郎织女的情况!”
一只小喜鹊战战兢兢地走出来:“回禀巴戈大人,近期牛郎织女并无明显异动。”
“他们的通行也被全数截获,但都是家长里短卿卿我我的闲谈,并无有用的信息。”
“不过,微臣发现,近几日,牛郎织女的通信,多了好多无用的内容,比如‘你好’‘再见’这种无聊的用词。”

巴戈想了想,说:“此事怪异,我稍后将禀明王母。虽然不知道牛郎在搞什么,但是通信的变化,必然隐藏着阴谋。”
“咱们也不能坐以待毙,让他们一直聊得这么嗨,王母肯定也看着不爽。”
“军师,咱们能否加强月宫兵力,拦截所有喜鹊?”

一位老者站了出来,捋了捋斑白的胡子,慢慢说道:“大将,您也知道,这是不可能的。”
巴戈重重拍了一下惊堂木:“不能也要能!王母将此事全权交付于我,出了差错那可是要掉脑袋的!”
“除去情报兵之外,其他兵力全部驻守月宫,拦截喜鹊!军师,你看这样能全拦下吗?”
老者想了想,说:“既然将军心意已定,我必当全力支持。咱们可以在月宫的重要关口部兵。”
“如此,全部兵力出动的话,应该可以做到八成的拦截率。”

“唉——”巴戈叹了口气,“这么多兵力,才能做到八成啊……”
老者说道:“八成已经很高了,也就是说,5条信息能拦截4条。即使牛郎一条信息发10遍,理论上也是有概率被全部拦截的。”
“无法确定信息是否送达,对牛郎来说一定是非常大的困扰了。”
巴戈再次拍下惊堂木:“好,就这么办!”


02
鹊山脚下。
“牛郎——”小皮的声音划破了清晨的宁静。
牛郎早已起身,赶紧前去开门,只见小艾和小皮早已站在门口。
小皮继续说道:“这新的方案,可能不太行啊。”
牛郎赶紧请两位进来:“茶已经准备好了,进来详谈。最近我也发现,发送一次消息的时间变长了。”

三人在客厅的茶桌前坐好,牛郎给每个人斟茶。
小皮先开口了:“最近月宫那边,很多喜鹊被拦截下了,大概有八成。”
“虽然他们无权将喜鹊抓起来,但是这样拦截一下,平均每个消息要重试三到四次,消耗成本挺高的。”
小艾补充了一句:“不过,你这个方案的厉害之处,是将‘握手’‘挥手’交付喜鹊进行,失败了由喜鹊自行重试。”
“所以,你和织女感知到的只是通信时间变长了,但你们两人的通信过程依旧是简单与稳定的。”

牛郎有些不好意思地说:“在分层结构中,每一层都对自己的上层隐藏自己的实现细节。”
“这是我设计的原则,基于这层封装,我给织女发消息,还是简单地告诉你们内容就好了。”
“而喜鹊们需要进行‘三次握手’‘四次挥手’,是喜鹊通信层面的事情,我和织女不需要也不应该知道其细节。”
“虽然结构很合理,但确实也是牛郎在设计时有些自私了,让喜鹊的工作量陡然上升。”


03
“既然知错,还不快改?”小皮做出生气的样子,瞪了瞪牛郎。
牛郎则是一脸无辜:“可惜,牛某现在的实力,还改不了。”
小皮拍了一下桌子:“你……”
牛郎说:“不过,我想到一种剑走偏锋的方式,或可一试。”
“什么方式?”
“咱们,给王母发个消息吧,让她不要做这些无意义的拦截了。”
“你有病吧……”
“你才有病……”

小艾打破了争论:“行了,你们别争了!牛郎提出如此策略,必然有其原因,咱们可以一起聊聊。”
牛郎说:“很简单,从月宫无名渊,不像是南天门,一夫当关万夫莫开。从无名渊的位置与周围情况看,完全拦截喜鹊,是不可能的。”
“所谓百密一疏,即使倾整个天庭之力,我推断也必然会有至少百分之一的疏漏。现在听你们说拦截率在百分之八十,可以说,这应该接近他们的极限了。”
“虽然养兵千日用兵一时,但天庭的代价比喜鹊大太多了,而且付出这么多依旧无法拦截通信,即是白费资源。”

“咱们的消耗是有意义的,而王母那边的消耗,只是增加了我们的成本,这成本虽然让我们有些累,但却一直可以承受,而且通信也一直正常。”
“而王母那边有失无得,得失比接近于0。咱们把这些描述清楚,王母一定会下令撤军的,否则,她就不配指导天庭了。”


04
“看你说的这么自信,那咱们就试试吧。具体要怎么做呢?”小艾问道。
“稍等我把上面的内容整理下,然后发给织女就好了。”牛郎说道。
小皮有些疑惑了:“不是要给王母发消息吗?”
牛郎笑了笑:“是的,但是,没有必要那么麻烦。我与织女的通信,王母一定是有监听的,所以,直接给织女发送就好了。”
小皮竖起了大拇指:“真有你的,竟然可以反过来利用这些。”

牛郎说:“哈哈,都是小问题。另外,我这边这几天也想出来了另一个优化的策略,不知两位是否有时间一听?”
“我们要是说没时间,你明天又回抛到山上找我们吧……所以说,现在赶紧说。”小皮催促到。

牛郎解释道:“你们想,现在通信链路建立的成本其实很高,有着握手和挥手过程。但实际发送信息,却只携带一条,这明显有些浪费。”
“所以,本次我想解决的问题,一个是长信息的发送优化,另一个就是多条信息的发送优化。”
“先说长信息。比如,我想给织女发一封千字情书。每只喜鹊的记忆有限,因此,不可能一次发送完,必然要拆分多次。”
“理论上说,拓展每只喜鹊的记忆量几乎是不可能的,因此,拆分是必然事件。只是,核心在于,其实,我和织女,没有必要知道拆分与组装的过程。”

小艾好像想到了什么:“难道要和之前的TCP一样,将这部分封装到喜鹊的层面处理?”
小皮也跟着附和:“真是好心的牛郎啊,又要增加我们的工作量了!”
“两位别急,且听我说完。”


05
牛郎接着说:“我将这套新的方案,叫做‘HTTP’。首先,明确几个概念。”
“发送方发出的消息,我们称之为‘请求’,接收方返回的回应,我们称之为‘响应’。”
“一个‘请求’,分为3部分,请求行,请求头,请求体。”
“请求体,就是我要发送的内容。如果文本过长,请喜鹊们按一百字左右拆分就好,每个我们称为一个‘包’,注意进行编号。”
“请求头,是对整个请求的概括,以及一些辅助信息。主要包含总字数,拆分的包数目,用于接收方重组原始文本。”
“请求行,只要2点信息,版本,接收者。目前版本固定为1.1,后面可能升级,不同版本将对应不同的解析策略。”

“喜鹊拿到我要发送的内容,自动拆分为这3部分,请求行与请求头随第一个请求体发出。”
“接收的喜鹊通过请求行与请求头,确认总的包数量,按照编号组装文本,然后校验组装好的文本是否与请求头的字数一致。”
“这中间可能有丢包,比如一共10个包,3号包一直没来,那么,你们自行重传就好。”
“最终,把整合好且确认无误的信息传递给织女,才算是完成了任务。”

“请求行和请求头是给喜鹊看的,我和织女真正关系的是请求体。”
“‘响应’的结构与之完全一样,这里不重复了。”
“当一个‘请求’成功发出,一个‘响应’成功回来时,一次HTTP通信则算完美成功。否则,任意一步出错,都将进行重试。”


06
小艾皱了皱眉头,看着牛郎,说:“意思我理解,但总觉得,喜鹊做的事情,越来越多越来越乱了,好像有些失去条理了。”
牛郎与之相视一笑,说:“哈哈,我早就想到,你们可能有这样的疑惑了。所以,让我来给你们‘有条理地解释一下’吧!”

牛郎起身,走到旁边的桌子旁,拿起纸笔,回到茶桌一遍画一边讲解:
“看似所有的事情都交付喜鹊们执行,但是,这里面,确实可以分为4个层面的。让我们从下往上说。”
“首先,一切都是基于喜鹊可以飞行并向附近喜鹊传递信息这一基础。这是整个通信链路的根基,没有它就没有这一切。我们称之为‘链路层’。”
“其次,是根据IP寻找并准确与每一只喜鹊沟通,从而形成喜鹊网络。这一层,称为‘网络层’。”
“接着,就是之前通过TCP传输数据,从而形成稳定的传输通路。因此,这里称之为‘传输层’。”
“最后,是基于传输的优化与应用,是文本等信息传输的最终解决方案,这也就是‘应用层’了。”

“这就是目前的‘四层网络模型’。怎么样,两位,理清思绪了吗?”
小艾和小皮仿佛醍醐灌顶:“听君一席话,胜读十年书!这个简直太强了!是我们之前想的太简单了。”
小艾继续说道:“唉,要是能有人像这样透彻地讲解法术,说不定我和小皮就能更上一层楼了。”
牛郎无意说道:“传言说有两只连低级法术都只学了个皮毛的废柴神仙……”
小皮那柔弱的拳头已经落在了牛郎的头上:“你可以闭嘴了……”


07
“牛郎失言,咱们接着聊优化的事情。”牛郎给小艾和小皮满上茶水,继续说道:
“接下来,咱们说说多个请求的优化。”
“之前,是每一个‘请求-响应’,都会对应一套‘握手-挥手’流程。”

“而优化的核心就是,在一次‘握手’捡来连接之后,允许发送多个‘请求’。我称之为‘连接复用’,或者叫做‘长连接’。”
“具体的做法是这样的。”
“一次请求发送后,不要立即进行‘挥手’,而是等待1个小时之后,再进行‘挥手’关闭连接。”
“在这一个小时内,如果有新的请求要发送,那么,就直接复用原来已经‘握手’成功的连接即可,并重置1小时的等待时间。”
“这样,我们减少了‘握手-挥手’次数,从而减少了资源消耗。”

“当然,稳定性方面也不会打折扣的,因为之前建立过连接,所以复用该连接,大概率是通畅的。”
“当然,也一定会存在复用时连接中断的情况,此时,就需要重新‘握手’建立连接了。”

这时,小艾突然问道:“既然如此,何必1小时后挥手关闭呀,为什么不一直保持连接呢?”
“好问题!”牛郎夸赞道,“但是,一直维持连接,对于链路上的喜鹊,也是一种浪费。”
“而且,由于王母的拦截,连接的长时间维护很难,必然中断概率很高,下次可能还免不了新建连接。”
“再者,若长时间不进行请求发送,那么维护连接的成本,远比新建连接的成本要高得多。”


08
牛郎拍了拍手:“好了,理论都讲完了,接下来该干活了!”
小艾与小皮没有动,也没有说话。

小艾看着疲惫的牛郎,轻声问道:“这样值得吗?”
牛郎愣了一下,旋即坚定的回答:“值得。”
接着,牛郎低下头,许久的沉默后,牛郎低声说道:
“我从不否认自己的目标,也对自己所迈出的每一步坚定不移。”
“只是,有时候我也会迷茫,仿佛看不到这一切的未来。”
“我只是一介凡人而已,我不知道如何让王母真正承认自己。”
“天数契约可能只是个开始,即使我完成了,王母之后肯定也不会善罢甘休的……”
声音有些听不清了,夹杂着那强忍住的啜泣。

小艾轻轻拍了拍牛郎的肩膀,说:“你有没有想过,像我们一样,踏上仙途?”
牛郎没有回答。小艾与小皮也没有继续追问。

“我们先走了,HTTP相关的事情,一定会办好的。不用送了,你也多保重。”小艾和小皮起身告别。
“再见。”牛郎挥手告别,然后继续低下头,陷入了沉思中。

星夜,牛郎的内心独白。
“我本想沿着通信学专家的路线,一直走下去的。”
“我本想继续研究第三代HTTP协议,本想接下来与织女一起探索通信加密的奥妙。”
“但是,我所做的这么多研究,没人关注,没人点赞,没什么阅读量,让我好伤心啊……”
“所以,是时候做出一些改变了……”
虽然很遗憾,但是,我们再也回不到过去了。


附录

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容

  • 沉思良久,织女对喜鹊小麦说:“规则:原路返回。消息内容就用你们的三条规则。”“然后,小麦你现在立即出发,完成后回来...
    七色瑾林阅读 235评论 0 2
  • 牛郎喝了一口茶水,说道:“小皮,前面说到小艾给你发消息了,那么,你收到消息后,要怎样再给小艾回复消息呢?”“跟前面...
    七色瑾林阅读 172评论 0 1
  • 月宫,无名渊。这是一处四面环山的峡谷。峡谷面积不算大,也就只有3平方公里吧。但这里并不荒凉,甚至还有些繁华。要是织...
    七色瑾林阅读 170评论 0 1
  • 天河之东有织女,天帝之女也,年年机杼劳役,织成云锦天衣,容貌不暇整。天帝怜其独处,许嫁河西牵牛郎,嫁后遂废织衽。天...
    七色瑾林阅读 385评论 0 1
  • 咏七夕小姐赋讽诗 且说珠儿双手托着下巴,盯着碧海青天,看着点点繁星闪烁,听着姐姐哥哥论诗评文,遂揉了揉眼睛曼声道...
    司马星耀阅读 1,523评论 41 45