TCP/IP之大明王朝邮差

一位大神的精华之作,原创2016-05-12 刘欣

来自码农翻身!

时间:

大明王朝天启四年, 清晨

天色刚蒙蒙亮,我就赶着装满货物的马车来到了南城门,这里是集中处理货物的地方,一队一队的马车都来到这里, 城头的士兵带着头盔,身披盔甲,手持长枪,虎视眈眈的注视这下面的动静。

地点:
城门口的大棚里乱哄哄的,是一群人围在一起赌钱, 这些家伙都穿着同样的衣服, 前胸和后背写着三个大字 “TCP邮差”。

我知道这就是我要找的人, 他们会帮我把货物发出去。

我下了车,在大棚里四处查看, 找到一个无聊的坐着独自喝闷酒的小伙子。

 事件:

"邮差小哥 ,帮我把这车货发了呗"

小伙子懒洋洋的站起来说: “你从哪儿来,要到哪儿而去啊?”

我赶紧拿出写好的地址说: ”我住在咱们城里北拐街224号, 要发一车货物到内乡县衙“。(源地址和目的地址)

“内乡县衙有很多门,你的货进那个门啊?” 邮差小哥接着问。

“出发的时候老板给我说,发到80号门。”(端口号80)

邮差小哥说: “走吧,咱们到前面去。”

大棚的前面是一大批开阔地, 可能我们来的早,现在只有我,邮差小哥,当然,还有我的马车。

“你等等,我先给内乡县衙建立个连接 ”邮差说着,吹了个口哨,一匹马跑了过来。

他拿起毛笔在一张纸写了一封信:“县衙县衙, 我是京城, 我想和你建立连接, 我的序号1024 , 收到请回话! ”(第一次握手)
信封上写着:发货地:京城北拐街224号收货地:内乡县衙, 80号门

然后把这这个纸放到了马背上的褡裢里, 拍了拍马屁股: “快走吧。”

过了两个时辰, 那匹马回来了, 邮差掏出了马运回来的那封信, 上面写着:

“京城京城,收到了你的信, 你的信里边有个序号是1024,对不对? 同意建立咱们的连接, 我这边序号是2048”。(第二次握手)

邮差喜形于色 : “ 看看, 连接快要建立了, 我再给他们发一封信就行了”

”县衙县衙, 我收到你的确认信了, 也看到了你的序号是2048, 我开始发货了”。(第三次握手)

我问他: “这就是连接吗, 我没看见你扯一条线把京城和县衙连起来啊”

邮差说: “这你就不懂了吧,这就是TCP连接, 是虚拟的,  连接的状态信息并不会在路上保存; 相反, 连接的状态信息是在两端维持的, 也就是在我这里和县衙那里一起维持的。 ”

“那你们为啥要发三封信呢? ”

“这就是三次握手啊, 我给你分析一下啊, 这三次握手主要是为了验证我这边和县衙那边的发信/收信能力没问题, 这样就证明连接是通的, 可以正式发货了。”

第一次握手:京城发信,县衙收到了,此时县衙就会明白:京城发信能力和自己的收信能力是没问题的。 

第二次握手:县衙发信,京城收到了,此时京城就会明白:京城的发信和收信都是好的, 县衙的发信和收信也都是没问题的。 要不然收不到县衙的回信 , 但是县衙还不知道自己的发信功能如何?所以需要第三次握手:

第三次握手:京城发信,县衙收到了,此时京城已经确认,双发的收信,发信都是没问题的, 这次回应的目的只是消除县衙对自己的发信功能和京城的收信功能的担忧而已。 

说实在的, 我有点晕, 邮差小哥说 : “你多琢磨琢磨就明白了。”

我问他: “你这么辛苦的建立连接, 难道不亲自去送货吗?”

邮差说:“ 我才不去呢! 本朝新皇登基以来,整天像木匠一样做木工,不理朝政, 导致民不聊生, 大片田地荒芜, 强盗,野兽横行, 早就没有人敢冒着风险去送货了。所以内阁的那帮大臣们就想了个招,修建四通八达的官道, 让马,驴这些牲畜去送货, 即使被老虎吃掉也没啥损失, 天朝还是挺以人为本的。”

“那这些马怎么知道把我的货送的内乡县衙啊”

“不用担心, 它们都是训练过的, 会沿着官道走,在每一个每个岔路口朝廷都会修建一个驿站,马累了可以吃草喝水休息,更关键的是,每个驿站的衙役会看看我刚才写的信,他们知道路,然后把马领到一个新的正确的官道,继续走, 最终就能到内乡县衙。 对了,大家给这些驿站起来个别名:路由器

“万一马跑丢了, 或者被老虎吃掉,到不了,或者回不来怎么办?”

“那就是我们TCP邮差要干的事儿了, 你马上就会看到, 我来看看你的货,哎啊,你这个柜子太大了,一匹马驮不走,得分成小包裹, 一个一个运”

我没办法, 只好把一件大货物拆开, 分成小包裹。

“ 给每个包裹编个号吧”  邮差说到。 “这样到了内乡县衙他们就能组装起来,原样恢复了”

我突然想到一个严重问题:“万一马被强盗抢走了。我这个柜子的一条腿岂不就丢了  ”

邮差见怪不怪: “没办法, 内阁的大人们说了, 这种情况, 就重新发送那一个包裹。”

擦, 我心头有一万头羊驼跑过:  这帮大人们真是站着说话不腰疼啊,  万一柜子的腿儿丢了, 我还得重做啊。

邮差把包裹按编号摆成一列, 1, 2, 3, ...... 10 ,一共10个包裹。

“按规定我们每次最多发3个包裹,按序号发, 先发 1, 2, 3号包裹” 邮差说着叫来3匹马, 装上货,马一溜烟的跑掉了。

我在那里提心吊胆的等着,生怕一个包裹丢了。

可是怎么知道包裹是不是到了县衙了呢。

邮差似乎看出了我的心思, 从怀里掏出一个沙漏说: 如果漏完了, 县衙还没给咱们确认, 那就是丢了, 只有重发了。

过了一个时辰, 我期盼的县衙的马终于来了,  里边的信里说: 1号包裹收到了。

“好了” 邮差说, “县衙确认收到了 1号包裹,  咱们可以再发一个了”, 说着叫来一匹马, 把第4号包裹发了出去。

我现在有点理解了, 邮差的做法是每次只保证有3个包裹发出去并且没有确认

又过了一会, 县衙一下子来了3匹马, 带来了2,3,4号包裹的确认。

邮差说: " 看来你的运气还不错, 我在把5,6,7 号发出去“  说着他把沙漏掉了个个, 重新开始计时。

5号包裹的确认很快来了,  邮差又把8号发了出去, 这样已经发送但是没有确认的包裹还是三个。

现在6,7,8号包裹都发出去了, 可是6号包裹的确认迟迟不来, 我心急如焚。

正在此时, 沙漏漏完了, 我不安的向邮差看去。

他倒是满不在乎:“ 哎呀, 超时了,有可能是运送6号包裹的马被老虎吃了, 县衙没收到”

“那怎么办啊” 我焦急的问。

“我们只好从6号包裹开始重新发送了, 6号包裹恰好是柜子的一条腿儿, 回去给你老板说说, 再做做个柜子腿儿吧, 一定要保证和之前发出去的一模一样。”

我问他: “那7,8号包裹呢?  县衙收到没有?”

“我们现在还不知道,如果收到了, 他们会暂时存下来。 如果没收到, 那还得像6号包裹一样,继续重发。”

我的忍耐力到了极限, 真想跳起来揍邮差一顿。

冷静下来, 我想了想说:“不对,你为什么一下发了3个包裹, 你不能发一个等着确认一个吗?  我要告你去 。”

邮差说: “随便你了, 反正你是告不赢的, 这是内阁首辅大人确定的, 我们用的叫滑动窗口协议, 如果窗口N=1 ,  即发一个等着确认一个, 那样就太慢了, 我这个邮差也不能一直被你占用,  我们把N的值设大一点, 例如N=3, 就是为了能够像流水线那样做事,   一边发包裹, 一边收确认, 这样快一点。”

没办法,只好回去找老板做柜子腿儿, 这耽误了很多时间。

邮差把6号包裹又发了出去, 再次重新计时。

6号包裹的确认还是没有收到!7号的确认也没收到,但是8号包裹的确认先收到了!

邮差说: “恩,不错,6,7号的确认包裹估计是在路上丢了,没关系,只要县衙说收到了8号包裹,暗含的意思就是 6,7 号都收到了。 要不然他们不会发8号的确认。”

接下来就发9,10号包裹,这次还行,总算没丢,终于把整个柜子全发出去了。

内乡县衙那边也把柜子给组装了起来。 我的任务总算完成了。

后来我得知, 县衙其实是收到了第6号包裹,只是他们的发给京城的确认包裹在路上给弄丢了, 我们没收到, 导致我们重新发了一份。

我算是明白了这所谓的TCP, 无非就是在那些不可靠马匹运输的基础上建立一个可靠的发送办法, 基本上就是失败重发, 受苦的还是我们这些底层老百姓。

我给邮差付了2两银子作为费用 , 拉着马车,头也不回的走了。

只听到邮差在后边喊:“ 欢迎再来, 内阁首辅正在研究新的协议呢, 下次一定要来试试啊。”

我没理他, 因为我再也不想来到这个鬼地方了!

时间: 2024-08-29 23:14:25

TCP/IP之大明王朝邮差的相关文章

【转载】TCP/IP 之 大明王朝邮差

原文:TCP/IP 之 大明王朝邮差 原创 2016-05-12 刘欣 码农翻身 前言: 本文主要想说一下TCP的知识, 比喻有不恰当之处,敬请包涵. 大明王朝天启四年, 清晨. 天色刚蒙蒙亮,我就赶着装满货物的马车来到了南城门, 这里是集中处理货物的地方 , 一队一队的马车都来到这里, 城头的士兵带着头盔,身披盔甲, 手持长枪, 虎视眈眈的注视这下面的动静. 城门口的大棚里乱哄哄的,是一群人围在一起赌钱, 这些家伙都穿着同样的衣服, 前胸和后背写着三个大字  “TCP邮差” 我知道这就是我要找

TCP/IP 之 大明王朝邮差

本系列文章全部摘选自"码农翻身"公众号,仅供个人学习和分享之用.文章会给出原文的链接地址,希望不会涉及到版权问题. 个人感言:真正的知识是深入浅出的,码农翻身" 公共号将苦涩难懂的计算机知识,用形象有趣的生活中实例呈现给我们,让我们更好地理解.感谢"码农翻身" 公共号,感谢你们的成果,谢谢你们的分享. 本文源地址:http://mp.weixin.qq.com/s?__biz=MzAxOTc0NzExNg==&mid=2665513094&

TCP/IP之大明内阁---协议的制定

个人感言:真正的知识是深入浅出的,码农翻身" 公共号将苦涩难懂的计算机知识,用形象有趣的生活中实例呈现给我们,让我们更好地理解.感谢"码农翻身" 公共号,感谢你们的成果,谢谢你们的分享. 本文源地址:TCP/IP之大明内阁 本文是<TCP/IP之大明王朝邮差>的前传,讲一讲大明内阁的各位大人是怎么设计TCP/IP网络的. 大明天启年间,明熹宗朱由校醉心于木工,重用宦官魏忠贤,不上朝已经很久了.内阁首辅叶大人忧心忡忡,大明各地民不聊生,大片田地荒芜,强盗.野兽横行.

TCP/IP协议详解——邮差与邮局

信号的传输总要符合一定的协议.比如说长城上放狼烟,是因为人们已经预先设定好狼烟这个物理信号代表了“敌人入侵”这一抽象信号.这样一个“狼烟=敌人入侵”就是一个简单的协议. 信号的传输总要符合一定的协议(protocol).比如说长城上放狼烟,是因为人们已经预先设定好狼烟这个物理信号代表了“敌人入侵”这一抽象信号.这样一个“狼烟=敌人入侵”就是一个简单的协议.协议可以更复杂,比如摩尔斯码(Morse Code),使用短信号和长信号的组合,来代表不同的英文字母.比如SOS(***—***, *代表短信

TCP/IP 这猝不及防的爱情

前言 前几天看了老刘的一篇文章,TCP/IP 大明邮差.正好最近也在读<计算机自顶向下>一书 心血来潮,想写一个女版的TCP/IP 正文 一天,我正在百花会上赏花,赏着赏着,就出现了一个令花都黯然失色的公子. 谦谦公子,温润如玉,这匆匆一瞥,我恨不得飞奔而去.可是大家闺秀,要中规中矩. 我按住我这一颗躁动,狂热,颤抖的心.立马派遣我的贴身丫鬟去打探是哪家公子. 来参加百花会的公子太多了,好不容易打听到他在80号门 一眼,与公子想见 回到家中,我立马写了一封信,“我是某家小姐,请问你是某家公子吗

戏说西游||TCP/IP协议的由来(灵感来自“码农翻身”微信公众号)

引子 话说唐僧师徒四人西行取经,终于来到了西方极乐世界,取得真经,然而如何运回真经成了大问题,故事就这样展开了: 大唐王朝贞观八十一年,某日清晨 "悟空,为师带领你们终于取得真经,可是奈何如何将真经运回东土大唐呢?" "师傅,不用担心,俺老孙在筋斗云的基础上开发出了运输真经的法术--'TCP协议',只要严格学习俺法术的口诀,严格遵守俺定制的规则,只需要不断的往筋斗云上放经文,筋斗云就会自动往返运输真经,俺可保真经运回大唐!" "不愧是悟空,既然如此,悟能,

http、TCP/IP协议与socket之间的区别

网络由下往上分为:  www.2cto.com 物理层-- 数据链路层-- 网络层--                       IP协议 传输层--                       TCP协议 会话层-- 表示层和应用层--           HTTP协议 1.TCP/IP连接 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接.TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上. 建立起一个TCP连

TCP/IP四层模型和OSI七层模型的概念

转:http://blog.csdn.net/superjunjin/article/details/7841099/ TCP/IP四层模型 TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇.TCP/IP协议簇分为四层,IP位于协议簇的第二层(对应OSI的第三层),TCP位于协议簇的第三层(对应OSI的第四层).   TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求.这4层分别为: 应用层:应用程序间沟通的层,如简单电子邮件传

《TCP/IP详解》

[TCP的那些事儿]TCP是个巨复杂的协议,而且不断地改进中.所以学习TCP本身是个比较痛苦的过程,但这个过程却能让人有很多收获.希望这篇快餐科普性文章能在快餐文化下让你对TCP有了解,并可以促发你对基础知识的兴趣和学习欲望. http://coolshell.cn/articles/11564.html http://coolshell.cn/articles/11609.html 大家知道,TCP/IP已成为计算机网络的事实上的标准.在关于TCP/IP的论著中,最有影响的就是两部著作.一部是