原创: 刘欣 码农翻身 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. VC++定义全局变量及extern用法

    基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义.此外extern也可用来进行链接指定. 也就是说extern有两 ...

  2. [转]VS 2012环境下使用MFC进行OpenGL编程

    我就不黏贴复制了,直接给出原文链接:VS 2012环境下使用MFC进行OpenGL编程 其它好文链接: 1.OpenGL系列教程之十二:OpenGL Windows图形界面应用程序

  3. VS2015+OpenGL4.0开发编译时弹出错误:glaux.lib(tk.obj) : error LNK2019: 无法解析的外部符号 _sscanf,该符号在函数 _GetRegistrySysColors@8 中被引用

    一.问题描述: VS2015+OpenGL4.0开发编译时弹出如下所示的错误: 1>glaux.lib(tk.obj) : error LNK2019: 无法解析的外部符号 _sscanf,该符 ...

  4. RedHat Enterprise Linux 6.4使用Centos 6的yum源问题

    RedHat Enterprise Linux 6.4使用Centos 6的yum源问题 作为一名新手,学习Linux已经一个月了,其间遇到了不少问题,而今天笔者遇到的问题是 #yum install ...

  5. python+selenium+chrome driver 64位环境配置

    新换了电脑,重新配置下环境,备忘下 1.python2安装 https://www.python.org/downloads/release/python-2714/ 下载64位Windows x86 ...

  6. 参照示例搭建一个Quertz + Topshelf的一个作业调度服务(基础)

    学习网址:Quartz.NET 入门.使用Topshelf创建Windows服务 来自七七资料 1.直接下载源码 2.配置完成后,安装服务测试应用. 以下是遇到情况和加入的一些内容 1.在进行服务安装 ...

  7. hdu 1505 City Game (hdu1506加强版)

    # include <stdio.h> # include <algorithm> # include <string.h> # include <iostr ...

  8. CSS之Header--我的头部我做主

    <div class='header'> <div class="header-left"> <span class='iconfont back-i ...

  9. 服务发现比较:Consul vs Zookeeper vs Etcd vs Eureka

    原文:https://blog.csdn.net/dengyisheng/article/details/71215234 服务发现比较:Consul vs Zookeeper vs Etcd vs ...

  10. WPF EventTrigger,BeginStoryboard

    <Window x:Class="WpfApplication2.LoginWind" xmlns="http://schemas.microsoft.com/wi ...