原创: 刘欣 码农翻身 2016-11-02
本文是《TCP/IP之大明王朝邮差》的前传,  讲一讲大明内阁的各位大人是怎么设计TCP/IP网络的。大明天启年间,  明熹宗朱由校醉心于木工, 重用宦官魏忠贤, 不上朝已经很久了。
内阁内阁首辅叶大人忧心忡忡, 大明各地民不聊生,大片田地荒芜, 强盗,野兽横行, 之前修建的官道也基本废弃了, 不但收不到各地送来的奏报,  自己昨天好不容易摆脱魏忠贤,面见了一次皇上, 但是请求颁发的一道圣旨竟然无法送到各个府县, 送信的邮差都被半路抢劫了,或者失踪了!
叶首辅决定召开一次内阁会议,研究下怎么建立一个可靠的,稳定的、通畅的上情下达机制。虚电路前来开会的大人们听了叶首辅说的情况, 立刻都是愁眉苦脸的, 面对这么一个艰巨的挑战, 没人愿意开口, 都是在不住的叹气摇头。
过了一炷香功夫, 韩大人看到首辅不断的给自己使眼色,只好开口了: “各位大人, 我有个不成熟的想法, 说出来大家评判一下。 现在主要的问题是强盗横行、野兽出没, 我想我们可以派出我们的大军, 沿路站岗, 五步一岗, 三部一哨, 给官道建立一个可靠的保障。 ”
朱大人道:“韩大人此法差矣!  我大明这么多官道, 大军再多也不够用啊。”
韩大人笑道: “朱大人, 看来你没明白, 我的意思不是把所有的官道都布上岗哨, 而是说我们要建立一个连接通道!”
“连接?  什么连接? ” 朱大人说 “没听说过”
“假如我们京城要和开封府通信, 中间会经过很多的市镇,  我们只需要派出一队官兵,把从京城到开封府的道路给保护好就可以了, 这样就不怕那些强盗虎豹, 等到双方通信一完,大军即可撤回, 去保护另外一个通信通道,  这就是用官兵建立一个连接!”
叶首辅道: ”韩大人说的有道理,至少能解决问题, 不过我们的主力大军都被派到东北对付努尔哈赤去了,  所以我们需要和沿途的市镇、驿站协商,主要让他们出兵, 和京城的大军一起建立安全的通道。“
“这样的话在一次通信中都可以走这个安全的通道, 很宽敞,很可靠, 但是代价也很高, 为了通信一次,得动用这么多士兵,还得和中间节点协商。 ”    朱大人也学会了抽象, 造出了”中间节点“这样的新词儿。
韩大人道:“嗯, 还有一点就是如果通道暂时不发信件的话, 就闲置浪费了。”
叶首辅道: “那也是没有办法的事情, 我们先这么试行一段时间吧。 ”

(码农翻身公众号注: 这就是所谓的虚电路, 绿色部分为连接通道, 所有的消息都从同一个通道上发送)
分组交换“虚电路”运行了半年, 终于勉强上情下达了,  但是被魏忠贤得知,添油加醋的给皇帝朱由校说了很多坏话, 木匠皇帝雷霆大怒,大骂内阁浪费国家人力物力, 下令立即停止。
内阁恨透了魏忠贤, 但是又不得不停止。
这一天皇上又没上早朝, 大家愁眉苦脸的聚到一起商议。
礼部右侍郎孙承宗突然想起了一件事情:“我巡防边关的时候听说袁崇焕使用了一个奇怪的办法来传递军务物资, 他不用军队在官道站岗,不用建立安全的连接通道,完全依靠马匹、骡子这样的牲畜进行通信。”
“怎么可能? 马匹不通人性,跑丢了怎么办?”
孙承宗道:“他这些马是训练过的,身上带着信件或者物资, 可以在官道上走,每到一个驿站或者市镇,里边的衙役看看信件的目的地,喂喂马,然后把马引到下一个官道就可以了, 很省事。 当然具体到那个官道是衙役决定的, 他会搜集各种消息,确定那个官道匪患少、虎狼少。 ”
(码农翻身注:驿站类似路由器,需要构建路由表, 转发数据分组)
“这还解决不了问题, 路上没官兵保护, 马可能会把抢走,或者被虎豹吃掉, 这样物资还是丢了。”
孙承宗道: “这一点袁崇焕他们也想到了, 他们发明了一种叫失败重传的方法, 如果收不到对方的确认回信, 就会重新发送。 ”

“重新发送的代价太高了吧, 毕竟是物资啊!”

“是这样, 他们一般把一个大件的物资拆成小块, 因为一匹马也拉不了多少, 然后给每个小块变编号,哪个小块丢了, 就只发送那个编号的,  袁崇焕说他们有个叫‘幻月宝镜’的东西, 丢了的东西可以从中再取出来!”
“这真是个宝贝啊, 一般人怎么可能有啊。”
(插播寻人启事:感谢网友提供了幻月宝镜这个主意, 我忘记是谁了, 看到请和我联系。)
叶首辅道:“不过这倒是一个有意思的思路, 不需要事先建立真正的连接通道, 每个编号小块走的路可能也不一样, 完全由中间节点的衙役们来决定马匹的下一个路径是哪一个。 ”
(码农翻身注: 这叫做分组交换
孙承宗补充道:”叶大人看的很透彻, 不仅路径不同, 这些小块也可能不按次序(失序)到达。 他用这种方法其实是说中间节点并不承诺提供可靠的连接通道, 物资完全可能失序、重复、甚至丢失。  所谓可靠的传输完全由两个端点(例如京城和开封府)来实现

(码农翻身注: 京城午门给内乡县衙发了A1,A2,  京城德胜门给开封府发送B1,B2,B3, 图中显示分组的路径)
韩大人道: “首辅大人, 要不我们也试试?, 不过我们得想办法把幻月宝镜弄来。 ”
叶首辅道: “我们奏请皇上让袁崇焕进京述职, 让他把宝镜带来,这一次一定得让皇上支持,要不然还会中途夭折, 我马上进宫, 大家静候佳音吧。”
(完)

TCP/IP之大明内阁 转的更多相关文章

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

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

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

    本系列文章全部摘选自"码农翻身"公众号,仅供个人学习和分享之用.文章会给出原文的链接地址,希望不会涉及到版权问题. 个人感言:真正的知识是深入浅出的,码农翻身" 公共号将 ...

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

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

  4. TCP/IP之大明邮差

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

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

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

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

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

  7. TCP/IP之蓟辽督师

    真正的知识是深入浅出的,码农翻身" 公共号将苦涩难懂的计算机知识,用形象有趣的生活中实例呈现给我们,让我们更好地理解. 本文源地址:TCP/IP之蓟辽督师 本文续<TCP/IP之大明内 ...

  8. TCP/IP之蓟辽督师 转

    原创: 刘欣 码农翻身 2016-11-07 本文续<TCP/IP之大明内阁>, 不了解背景的同学可以先看看上一篇文章, 当然这篇也是<TCP/IP之大明邮差>的前传, 主要讲 ...

  9. TCP/IP 这猝不及防的爱情

    前言 前几天看了老刘的一篇文章,TCP/IP 大明邮差.正好最近也在读<计算机自顶向下>一书 心血来潮,想写一个女版的TCP/IP 正文 一天,我正在百花会上赏花,赏着赏着,就出现了一个令 ...

随机推荐

  1. Python2.7-argparse

    argparse模块,用于方便地编写用户友好的命令行接口,可以自动生成帮助信息,用法信息和错误处理 1.模块对象 1.1 ArgumentParser 对象 1.1.1 初始化构建类:Argument ...

  2. neo4j----创建索引

    创建索引 create index on:Student(name) 删除索引 drop index on:Student(name) 创建唯一索引 create constraint on (s:T ...

  3. Java面试题,Java三大特性之一——多态的理解

    首先我们知道Java是一门面向对象的语言 面向对象三大特性,封装.继承.多态. 封装.继承.多态 ↓ 无论是学习路线,还是众人的口语习惯,都是按照这个这样进行排序,这是有原因的.因为封装好了才能继承, ...

  4. Php的常见错误及错误分析

    我们在进行开发工作的时候,难免会遇到PHP的报错,解决这些错误,也是作为PHPer必须掌握的一种技能. 如果程序发生错误,我们能大致的分析出出现错误的原因,对于我们解决这戏错误会有很大的帮助. Not ...

  5. 大数据入门第二十二天——spark(二)RDD算子(1)

    一.RDD概述 1.什么是RDD RDD(Resilient Distributed Dataset)叫做分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变.可分区.里面的元素可并行计算的 ...

  6. 大数据入门第十二天——sqoop入门

    一.概述 1.sqoop是什么 从其官网:http://sqoop.apache.org/ Apache Sqoop(TM) is a tool designed for efficiently tr ...

  7. 大数据入门第十二天——flume入门

    一.概述 1.什么是flume 官网的介绍:http://flume.apache.org/ Flume is a distributed, reliable, and available servi ...

  8. 20155238 2016-2017-2 《JAVA程序设计》第九周学习总结

    教材学习内容总结 第十六章 JDBC SQL的解决方案是JDBC,在Java中,JDBC API主要用来存取数据库. *JDBC API是一个Java API,可以访问任何类型表列数据,特别是存储在关 ...

  9. 20155325 Exp9 Web安全基础

    本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验后回答问题 (1)SQL注入攻击原理,如何防御 原理:SQL注入即是指web应用程序对用户输入数据的合法性没有判断,攻击 ...

  10. Could not obtain transaction-synchronized Session for current thread原因及解决方案

            在开发中,碰到到了Could not obtain transaction-synchronized Session for current thread异常,因此特意记录下. 一.问 ...