大明王朝天启四年,清晨。 

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

城门口的大棚里乱哄哄的,是一群人围在一起赌钱,这些家伙都穿着同样的衣服, 前胸和后背写着三个大字“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 两银子作为费用,拉着马车,头也不回的走了。

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

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

·END·

TCP/IP 之大明王朝邮差相关推荐

  1. TCP/IP之大明王朝邮差

    TCP/IP之大明王朝邮差 一位大神的精华之作,原创2016-05-12 刘欣 来自码农翻身! 时间: 大明王朝天启四年, 清晨. 天色刚蒙蒙亮,我就赶着装满货物的马车来到了南城门,这里是集中处理货物 ...

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

    原文:TCP/IP 之 大明王朝邮差 原创 2016-05-12 刘欣 码农翻身 前言: 本文主要想说一下TCP的知识, 比喻有不恰当之处,敬请包涵. 大明王朝天启四年, 清晨. 天色刚蒙蒙亮,我就赶 ...

  3. TCP/IP 之 大明王朝邮差

    大明王朝天启四年, 清晨. 天色刚蒙蒙亮,我就赶着装满货物的马车来到了南城门, 这里是集中处理货物的地方 , 一队一队的马车都来到这里, 城头的士兵带着头盔,身披盔甲, 手持长枪, 虎视眈眈的注视这下 ...

  4. TCP/IP 之 大明王朝邮差 (转)

    原创: 刘欣 码农翻身 2016-05-12 前言: 本文主要想说一下TCP的知识, 比喻有不恰当之处,敬请包涵. 大明王朝天启四年, 清晨. 天色刚蒙蒙亮,我就赶着装满货物的马车来到了南城门, 这里 ...

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

    个人感言:真正的知识是深入浅出的,码农翻身" 公共号将苦涩难懂的计算机知识,用形象有趣的生活中实例呈现给我们,让我们更好地理解.感谢"码农翻身" 公共号,感谢你们的成果, ...

  6. TCP/IP之大明内阁

    本文是<TCP/IP之大明王朝邮差>的前传, 讲一讲大明内阁的各位大人是怎么设计TCP/IP网络的. 大明天启年间, 明熹宗朱由校醉心于木工, 重用宦官魏忠贤, 不上朝已经很久了. 内阁内 ...

  7. TCP/IP之大明邮差

    大明王朝天启四年, 清晨. 天色刚蒙蒙亮,我就赶着装满货物的马车来到了南城门, 这里是集中处理货物的地方 , 一队一队的马车都来到这里, 城头的士兵带着头盔,身披盔甲, 手持长枪, 虎视眈眈的注视这下 ...

  8. TCP/IP 之 大明邮差

    前言: 本文主要想说一下TCP的知识, 比喻有不恰当之处,敬请包涵. 大明王朝天启四年, 清晨. 天色刚蒙蒙亮,我就赶着装满货物的马车来到了南城门, 这里是集中处理货物的地方 , 一队一队的马车都来到 ...

  9. 前端快速入门 TCP/IP

    1. 协议的概念和作用 # 为了让计算机能够通信,计算机需要定义通信规则,这些规则就是协议 规则是多种,协议也有多种 协议就是数据封装格式+传输 1.1 服务+协议实现数据传输 摩尔斯电码 2. OS ...

最新文章

  1. CouchDB 简单HTTP接口使用说明
  2. 去掉微软认证的WINDOWS盗版标志
  3. 2019年十大AI创业死亡名单:无人车机器人为主,B轮阵亡最多
  4. tensorboard 使用教程
  5. Kafka 入门和 Spring Boot 集成
  6. zabbix-agent客户端安装
  7. IE9 Platform Preview 3昨天发布
  8. (三)pscc学习笔记
  9. (转)AI vs 深度学习 vs 机器学习:人工智能的 12 大应用场景
  10. java代码 软件_适合新手的java代码编写软件有哪些?
  11. 非标自动化3D选型软件三维SW合集solidworks标准件机械设计电机库
  12. viper4android还用酷狗,viper4windows_viper4android_viper4蝰蛇音效
  13. Autoencoder理解(2): 自动编码器的作用之稀疏编码
  14. Win10家庭中文版 如何启用组策略
  15. QtSQL的使用心得
  16. 国际直拨电话号码格式
  17. You Apple Developer Program membership expires in 12 days
  18. 37手游基于云平台的大数据建设实践
  19. 报表控件Stimulsoft报告中的数据矩阵条形码介绍
  20. Linux下8723be网卡,Ubuntu 12.04 安装RTL8723BE无线网卡驱动

热门文章

  1. 免费的视频压缩软件,踩了好多坑之后,终于找到了——Handbrake
  2. Exception————c3p0
  3. Threejs系列--11游戏开发--沙漠赛车游戏【初步加载地面】
  4. python获取当前时间的函数_Python日期与时间
  5. 布隆过滤器之误识别率FPP公式的推导
  6. 黑客新型攻击技术,使用智能灯泡窃取数据
  7. python的图导入origin,导入Numpy或OriginPro和Python时出现问题
  8. spring-boot-mvc启动流程
  9. ggplot2的自定义调色板
  10. GObject对象系统