个人感言:真正的知识是深入浅出的,码农翻身” 公共号将苦涩难懂的计算机知识,用形象有趣的生活中实例呈现给我们,让我们更好地理解。感谢“码农翻身” 公共号,感谢你们的成果,谢谢你们的分享。
本文源地址:TCP/IP之大明内阁
本文是《TCP/IP之大明王朝邮差》的前传,讲一讲大明内阁的各位大人是怎么设计TCP/IP网络的。
大明天启年间,明熹宗朱由校醉心于木工,重用宦官魏忠贤,不上朝已经很久了。
内阁首辅叶大人忧心忡忡,大明各地民不聊生,大片田地荒芜,强盗、野兽横行。之前修建的官道也基本废弃了,不但收不到各地送来的奏报, 自己昨天好不容易摆脱魏忠贤,面见了一次皇上,但是请求颁发的一道圣旨竟然无法送到各个府县,送信的邮差都被半路抢劫了,或者失踪了!
叶首辅决定召开一次内阁会议,研究下怎么建立一个可靠的、稳定的、通畅的上情下达机制。
虚电路(Virtual Circuit)
首先来看一下“360百科(虚电路)”给出的解释:虚电路是分组交换的两种传输方式中的一种。在通信和网络中,虚电路是由分组交换通信所提供的面向连接的通信服务。在两个节点或应用进程之间建立起一个逻辑上的连接或虚电路后,就可以再两个节点之间一次发送每一个分组,接收端收到分组的顺序必然与发送端的发送顺序一致,因此接收端无须负责在收集分组后重新进行排序。虚电路协议向高层协议隐藏了将数据分割成段、包或帧的过程。
虚电路是建立一条逻辑连接,发送方和接收方不需要预先建立连接。
好了,下面继续原文。
前来开会的大人们听了叶首辅说的情况,立刻都是愁眉苦脸的,面对这么一个艰巨的挑战,没人愿意开口,都是在不住的叹气摇头。
过了一炷香功夫,韩大人看到首辅不断的给自己使眼色,只好开口了: “各位大人,我有个不成熟的想法,说出来大家评判一下。现在主要的问题是强盗横行、野兽出没。我想我们可以派出我们的大军,沿路站岗,五步一岗,三部一哨, 给官道建立一个可靠的保障。”
朱大人道:“韩大人此法差矣!我大明这么多官道,大军再多也不够用啊。”
韩大人笑道: “朱大人,看来你没明白,我的意思不是把所有的官道都布上岗哨, 而是说我们要建立一个连接通道!”
“连接?什么连接? ” 朱大人说 ,“没听说过”。
“假如我们京城要和开封府通信,中间会经过很多的市镇。我们只需要派出一队官兵,把从京城到开封府的道路给保护好就可以了,这样就不怕那些强盗虎豹,等到双方通信一完,大军即可撤回,去保护另外一个通信通道,这就是用官兵建立一个连接!”
叶首辅道:“韩大人说的有道理,至少能解决问题。不过我们的主力大军都被派到东北对付努尔哈赤去了。所以,我们需要和沿途的市镇、驿站协商,主要让他们出兵, 和京城的大军一起建立安全的通道。”
“这样的话在一次通信中都可以走这个安全的通道,很宽敞、很可靠。但是代价也很高,为了通信一次,得动用这么多士兵,还得和中间节点协商。” 朱大人也学会了抽象,造出了”中间节点“这样的新词儿。
韩大人道:“嗯, 还有一点就是如果通道暂时不发信件的话,就闲置浪费了。”
叶首辅道:“那也是没有办法的事情,我们先这么试行一段时间吧。”
(码农翻身公众号注:这就是所谓的虚电路,绿色部分为连接通道,所有的消息都从同一个通道上发送)
虚电路的特点
关于“虚电路”,从上面可以总结出其如下特点:
虚电路通信与电路交换类似,两者都是面向连接的,即数据按照正确的顺序发送,并且在连接建立阶段都需要额外开销。但是,电路交换提供稳定的比特率和延迟时间,而虚电路服务的比特率和延迟时间要取决于以下因素:
1.网络节点上包队列的长度,
2.应用程序产生数据的比特率,
3.使用统计多路复用技术时,共享同一网络资源的其他用户的负荷。
4.许多虚电路协议通过数据重传,包括检错纠错和自动重传请求(ARQ),提供可靠的通信服务。
虚电路是在分组交换散列网络上的两个或多个端点站点间的链路。它为两个端点间提供临时或专用面向连接的会话。它的固有特点是,有一条通过多路径网络的预定路径。提前定义好一条路径,可以改进性能,并且消除了帧和分组对头的需求,从而增加了吞吐率。从技术上看,可以通过分组交换网络的物理路径进行改变,以避免拥挤和失效线路,但是两个端系统要保持一条连接,并根据需要改变路径描述。
分组交换
先看一下摘选自“360百科(分组交换)”上的解释:
在通信过程中,通信双方以分组为单位、使用存储-转发机制实现数据交互的通信方式,被称为分组交换(PS:packet switching)。
分组交换也称为包交换,它将用户通信的数据划分成多个更小的等长数据段,在每个数据段的前面加上必要的控制信息作为数据段的首部,每个带有首部的数据段就构成了一个分组。首部指明了该分组发送的地址,当交换机收到分组之后,将根据首部中的地址信息将分组转发到目的地,这个过程就是分组交换。能够进行分组交换的通信网被称为分组交换网。
分组交换网一般由分组交换机、网络管理中心、远程集中器、分组装拆设备、分组终端/非分组终端和传输线路等基本设备组成。
分组交换的本质就是存储转发,它将所接受的分组暂时存储下来,在目的方向路由上排队,当它可以发送信息时,再将信息发送到相应的路由上,完成转发。其存储转发的过程就是分组交换的过程。
分组交换的思想来源于报文交换,报文交换也称为存储转发交换,它们交换过程的本质都是存储转发,所不同的是分组交换的最小信息单位是分组,而报文交换则是一个个报文。由于以较小的分组为单位进行传输和交换,所以分组交换比报文交换快。报文交换主要应用于公用电报网中。
分组由分组头和其后的用户数据部分组成,分组头包含接收地址和控制信息,其长度为3-10B,用户数据部分长度是固定的,平均为128B,最长不超过256B。分组交换路由选择确定了输出端口和下一个节点后,必须使用交换技术将分组从输入端口传送到输出端口,实现输送比特通过网络节点。
好,下面继续正文:
“虚电路”运行了半年,终于勉强上情下达了。但是被魏忠贤得知,添油加醋的给皇帝朱由校说了很多坏话,木匠皇帝雷霆大怒,大骂内阁浪费国家人力物力,下令立即停止。
内阁恨透了魏忠贤,但是又不得不停止。
这一天皇上又没上早朝,大家愁眉苦脸的聚到一起商议。
礼部右侍郎孙承宗突然想起了一件事情:“我巡防边关的时候听说袁崇焕使用了一个奇怪的办法来传递军务物资,他不用军队在官道站岗,不用建立安全的连接通道,完全依靠马匹、骡子这样的牲畜进行通信。”
“怎么可能? 马匹不通人性,跑丢了怎么办?”
孙承宗道:“他这些马是训练过的,身上带着信件或者物资,可以在官道上走,每到一个驿站或者市镇,里边的衙役看看信件的目的地,喂喂马,然后把马引到下一个官道就可以了。很省事! 当然具体到那个官道是衙役决定的,他会搜集各种消息,确定那个官道匪患少、虎狼少。”(码农翻身注:驿站类似路由器,需要构建路由表, 转发数据分组)
“这还解决不了问题,路上没官兵保护,马可能会把抢走,或者被虎豹吃掉,这样物资还是丢了。”
孙承宗道:“这一点袁崇焕他们也想到了,他们发明了一种叫失败重传的方法,如果收不到对方的确认回信,就会重新发送。”
“重新发送的代价太高了吧,毕竟是物资啊!”(在计算机中,物资是很廉价的数据分组)
“是这样,他们一般把一个大件的物资拆成小块,因为一匹马也拉不了多少,然后给每个小块变编号,哪个小块丢了,就只发送那个编号的。袁崇焕说他们有个叫‘幻月宝镜’的东西,丢了的东西可以从中再取出来!”
“这真是个宝贝啊, 一般人怎么可能有啊。”
叶首辅道:“不过这倒是一个有意思的思路,不需要事先建立真正的连接通道,每个编号小块走的路可能也不一样,完全由中间节点的衙役们来决定马匹的下一个路径是哪一个。”
(码农翻身注: 这叫做分组交换)
孙承宗补充道:”叶大人看的很透彻,不仅路径不同,这些小块也可能不按次序(失序)到达。他用这种方法其实是说中间节点并不承诺提供可靠的连接通道,物资完全可能失序、重复、甚至丢失。所谓可靠的传输完全由两个端点(例如京城和开封府)来实现。”
(码农翻身注:京城午门给内乡县衙发了A1、A2,京城德胜门给开封府发送B1、B2、B3,图中显示分组的路径)
韩大人道:“首辅大人,要不我们也试试?不过我们得想办法把幻月宝镜弄来。 ”
叶首辅道:“我们奏请皇上让袁崇焕进京述职,让他把宝镜带来,这一次一定得让皇上支持,要不然还会中途夭折,我马上进宫,大家静候佳音吧。”
分组交换的特点
补充知识,从上面的形象案例总结一下分组交换的特点,如下:
1、线路利用率高:分组交换以虚电路的形式进行信道的多路复用,实现资源共享,可在一条物理线路上提供多条逻辑信道,极大地提高线路的利用率。使传输费用明显下降。
2、不同种类的终端可以相互通信:分组网以X.25协议向用户提供标准接口,数据以分组为单位在网络内存储转发,使不同速率终端,不同协议的设备经网络提供的协议变换功能后实现互相通信。
3、信息传输可靠性高:在网络中每个分组进行传输时,在节点交换机之间采用差错校验与重发的功能,因而在网中传送的误码率大大降低。而且在网内发生故障时,网络中的路由机制会使分组自动地选择一条新的路由避开故障点,不会造成通信中断。
4、分组多路通信:由于每个分组都包含有控制信息,所以分组型终端可以同时与多个用户终端进行通信,可把同一信息发送到不同用户。
5、计费与传输距离无关:网络计费按时长、信息量计费,与传输距离无关,特别适合那些非实时性,而通信量不大的用户。
(END)
补充知识
除了虚电路、分组交换技术,还有电路交换和报文交换。
电路交换
电路交换就是计算机终端之间通信时,一方发起呼叫,独占一条物理线路。当交换机完成接续,对方收到发起端的信号,双方即可进行通信(主要应用于电话通信网中)。在整个通信过程中双方一直占用该电路。它的特点是实时性强,时延小,交换设备成本较低。但同时也带来线路利用率低,电路接续时间长,通信效率低,不同类型终端用户不能通信等缺点。电路交换比较适用于信息量大、长报文,经常使用的固定用户之间的通信。
报文交换
将用户的报文存储在交换机的存储器中。当所需要的输出电路空闲时,再将该报文发向接收交换机或终端,它以"存储-转发"方式在网内传输数据。报文交换的优点是中继电路利用率高,可以多个用户同时在一条线路上传送,可实现不同速率、不同规程的终端间互通。但它的缺点也是显而易见的。以报文为单位进行存储转发,网络传输时延大,且占用大量的交换机内存和外存,不能满足对实时性要求高的用户。报文交换适用于传输的报文较短、实时性要求较低的网络用户之间的通信,如公用电报网。电子邮件系统(E-mail)也适合采用报文交换方式。
“码农翻身” 公共号 : 由工作15年的前IBM架构师创建,分享编程和职场的经验教训。
长按二维码, 关注码农翻身