TCP/IP 之 大明内阁

2024-02-05 17:50
文章标签 ip tcp 大明 内阁

本文主要是介绍TCP/IP 之 大明内阁,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文是《TCP/IP之大明王朝邮差》的前传,  讲一讲大明内阁的各位大人是怎么设计TCP/IP网络的。

大明天启年间,  明熹宗朱由校醉心于木工, 重用宦官魏忠贤, 不上朝已经很久了。

 

内阁内阁首辅叶大人忧心忡忡, 大明各地民不聊生,大片田地荒芜, 强盗,野兽横行, 之前修建的官道也基本废弃了, 不但收不到各地送来的奏报,  自己昨天好不容易摆脱魏忠贤,面见了一次皇上, 但是请求颁发的一道圣旨竟然无法送到各个府县, 送信的邮差都被半路抢劫了,或者失踪了!

 

叶首辅决定召开一次内阁会议,研究下怎么建立一个可靠的,稳定的、通畅的上情下达机制。

虚电路

前来开会的大人们听了叶首辅说的情况, 立刻都是愁眉苦脸的, 面对这么一个艰巨的挑战, 没人愿意开口, 都是在不住的叹气摇头。

 

过了一炷香功夫, 韩大人看到首辅不断的给自己使眼色,只好开口了: “各位大人, 我有个不成熟的想法, 说出来大家评判一下。 现在主要的问题是强盗横行、野兽出没, 我想我们可以派出我们的大军, 沿路站岗, 五步一岗, 三部一哨, 给官道建立一个可靠的保障。 ”

 

朱大人道:“韩大人此法差矣!  我大明这么多官道, 大军再多也不够用啊。”

 

韩大人笑道: “朱大人, 看来你没明白, 我的意思不是把所有的官道都布上岗哨, 而是说我们要建立一个连接通道!”

 

“连接?  什么连接? ” 朱大人说 “没听说过”

 

“假如我们京城要和开封府通信, 中间会经过很多的市镇,  我们只需要派出一队官兵,把从京城到开封府的道路给保护好就可以了, 这样就不怕那些强盗虎豹, 等到双方通信一完,大军即可撤回, 去保护另外一个通信通道,  这就是用官兵建立一个连接!”

 

叶首辅道: ”韩大人说的有道理,至少能解决问题, 不过我们的主力大军都被派到东北对付努尔哈赤去了,  所以我们需要和沿途的市镇、驿站协商,主要让他们出兵, 和京城的大军一起建立安全的通道。“

 

“这样的话在一次通信中都可以走这个安全的通道, 很宽敞,很可靠, 但是代价也很高, 为了通信一次,得动用这么多士兵,还得和中间节点协商。 ”    朱大人也学会了抽象, 造出了”中间节点“这样的新词儿。

 

韩大人道:“嗯, 还有一点就是如果通道暂时不发信件的话, 就闲置浪费了。”

 

叶首辅道: “那也是没有办法的事情, 我们先这么试行一段时间吧。 ”

(码农翻身公众号注: 这就是所谓的虚电路, 绿色部分为连接通道, 所有的消息都从同一个通道上发送)

分组交换

“虚电路”运行了半年, 终于勉强上情下达了,  但是被魏忠贤得知,添油加醋的给皇帝朱由校说了很多坏话, 木匠皇帝雷霆大怒,大骂内阁浪费国家人力物力, 下令立即停止。

 

内阁恨透了魏忠贤, 但是又不得不停止。

 

这一天皇上又没上早朝, 大家愁眉苦脸的聚到一起商议。

 

礼部右侍郎孙承宗突然想起了一件事情:“我巡防边关的时候听说袁崇焕使用了一个奇怪的办法来传递军务物资, 他不用军队在官道站岗,不用建立安全的连接通道,完全依靠马匹、骡子这样的牲畜进行通信。”

 

“怎么可能? 马匹不通人性,跑丢了怎么办?”

 

孙承宗道:“他这些马是训练过的,身上带着信件或者物资, 可以在官道上走,每到一个驿站或者市镇,里边的衙役看看信件的目的地,喂喂马,然后把马引到下一个官道就可以了, 很省事。 当然具体到那个官道是衙役决定的, 他会搜集各种消息,确定那个官道匪患少、虎狼少。 ”

 

(码农翻身注:驿站类似路由器,需要构建路由表, 转发数据分组)

 

“这还解决不了问题, 路上没官兵保护, 马可能会把抢走,或者被虎豹吃掉, 这样物资还是丢了。”

 

孙承宗道: “这一点袁崇焕他们也想到了, 他们发明了一种叫失败重传的方法, 如果收不到对方的确认回信, 就会重新发送。 ”

 

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

 

“是这样, 他们一般把一个大件的物资拆成小块, 因为一匹马也拉不了多少, 然后给每个小块变编号,哪个小块丢了, 就只发送那个编号的,  袁崇焕说他们有个叫‘幻月宝镜’的东西, 丢了的东西可以从中再取出来!”

 

“这真是个宝贝啊, 一般人怎么可能有啊。”

 

(插播寻人启事:感谢网友提供了幻月宝镜这个主意, 我忘记是谁了, 看到请和我联系。)

 

叶首辅道:“不过这倒是一个有意思的思路, 不需要事先建立真正的连接通道, 每个编号小块走的路可能也不一样, 完全由中间节点的衙役们来决定马匹的下一个路径是哪一个。 ”

 

(码农翻身注: 这叫做分组交换

 

孙承宗补充道:”叶大人看的很透彻, 不仅路径不同, 这些小块也可能不按次序(失序)到达。 他用这种方法其实是说中间节点并不承诺提供可靠的连接通道, 物资完全可能失序、重复、甚至丢失。  所谓可靠的传输完全由两个端点(例如京城和开封府)来实现“。

(码农翻身注: 京城午门给内乡县衙发了A1,A2,  京城德胜门给开封府发送B1,B2,B3, 图中显示分组的路径)

 

韩大人道: “首辅大人, 要不我们也试试?, 不过我们得想办法把幻月宝镜弄来。 ”

 

叶首辅道: “我们奏请皇上让袁崇焕进京述职, 让他把宝镜带来,这一次一定得让皇上支持,要不然还会中途夭折, 我马上进宫, 大家静候佳音吧。”

 

(完)

 

PS: 我会争取再写一篇前传,讲讲袁督师是怎么实现失败重传的。 

 

这篇关于TCP/IP 之 大明内阁的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/681703

相关文章

Linux系统中配置静态IP地址的详细步骤

《Linux系统中配置静态IP地址的详细步骤》本文详细介绍了在Linux系统中配置静态IP地址的五个步骤,包括打开终端、编辑网络配置文件、配置IP地址、保存并重启网络服务,这对于系统管理员和新手都极具... 目录步骤一:打开终端步骤二:编辑网络配置文件步骤三:配置静态IP地址步骤四:保存并关闭文件步骤五:重

Linux配置IP地址的三种实现方式

《Linux配置IP地址的三种实现方式》:本文主要介绍Linux配置IP地址的三种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录环境RedHat9第一种安装 直接配置网卡文件第二种方式 nmcli(Networkmanager command-line

Linux虚拟机不显示IP地址的解决方法(亲测有效)

《Linux虚拟机不显示IP地址的解决方法(亲测有效)》本文主要介绍了通过VMware新装的Linux系统没有IP地址的解决方法,主要步骤包括:关闭虚拟机、打开VM虚拟网络编辑器、还原VMnet8或修... 目录前言步骤0.问题情况1.关闭虚拟机2.China编程打开VM虚拟网络编辑器3.1 方法一:点击还原VM

Nginx实现动态封禁IP的步骤指南

《Nginx实现动态封禁IP的步骤指南》在日常的生产环境中,网站可能会遭遇恶意请求、DDoS攻击或其他有害的访问行为,为了应对这些情况,动态封禁IP是一项十分重要的安全策略,本篇博客将介绍如何通过NG... 目录1、简述2、实现方式3、使用 fail2ban 动态封禁3.1 安装 fail2ban3.2 配

Ubuntu固定虚拟机ip地址的方法教程

《Ubuntu固定虚拟机ip地址的方法教程》本文详细介绍了如何在Ubuntu虚拟机中固定IP地址,包括检查和编辑`/etc/apt/sources.list`文件、更新网络配置文件以及使用Networ... 1、由于虚拟机网络是桥接,所以ip地址会不停地变化,接下来我们就讲述ip如何固定 2、如果apt安

查询SQL Server数据库服务器IP地址的多种有效方法

《查询SQLServer数据库服务器IP地址的多种有效方法》作为数据库管理员或开发人员,了解如何查询SQLServer数据库服务器的IP地址是一项重要技能,本文将介绍几种简单而有效的方法,帮助你轻松... 目录使用T-SQL查询方法1:使用系统函数方法2:使用系统视图使用SQL Server Configu

使用Java实现获取客户端IP地址

《使用Java实现获取客户端IP地址》这篇文章主要为大家详细介绍了如何使用Java实现获取客户端IP地址,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 首先是获取 IP,直接上代码import org.springframework.web.context.request.Requ

C++实现获取本机MAC地址与IP地址

《C++实现获取本机MAC地址与IP地址》这篇文章主要为大家详细介绍了C++实现获取本机MAC地址与IP地址的两种方式,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 实际工作中,项目上常常需要获取本机的IP地址和MAC地址,在此使用两种方案获取1.MFC中获取IP和MAC地址获取

C/C++通过IP获取局域网网卡MAC地址

《C/C++通过IP获取局域网网卡MAC地址》这篇文章主要为大家详细介绍了C++如何通过Win32API函数SendARP从IP地址获取局域网内网卡的MAC地址,感兴趣的小伙伴可以跟随小编一起学习一下... C/C++通过IP获取局域网网卡MAC地址通过win32 SendARP获取MAC地址代码#i

shell脚本快速检查192.168.1网段ip是否在用的方法

《shell脚本快速检查192.168.1网段ip是否在用的方法》该Shell脚本通过并发ping命令检查192.168.1网段中哪些IP地址正在使用,脚本定义了网络段、超时时间和并行扫描数量,并使用... 目录脚本:检查 192.168.1 网段 IP 是否在用脚本说明使用方法示例输出优化建议总结检查 1