谈一些对计算机网络的一些理解和看法。
标题里“协议网络”的定义是:认同/使用某个同样(应用层)协议的主体(比如主机)的连接状态。这是我自定的一个概念,应该有类似的事物。
今天在具体化个人研究的部分架构时候想到一个问题:我一开始做两个设备之间通信的工具,如何扩展到多个设备呢?一种自然的想法是某种集中化的机制,无论是这个机制运行在专门设备上(server-client)还是在不同设备间根据某种原则选择(Raft)。但这对于这个轻量的计算共享工具而言会导致实时性严重破坏,而且会本末导致。
虽然物理层传输已经很快了,但中心化的设备/机制会让设备之间产生巨大沟通成本,这对于解决某些允许延迟的事情比如数据存储(MapReduce)可以,但实时系统中,一个人一次只与一人最多两人沟通是更好的。
于是我想到了另一种可能:还是两个设备连接的模式,不要集中化机制,但一个设备可以选择再连接一个新设备,与它共享、传递信息。比如小红有一个计算任务,一部分分给小李,小李不能完全有效消化,于是找到小陈,这样任务多次分解。
然而这里有一个问题:小李和小陈得到了什么?单纯给小红做(tian)事(gou)吗?由于我这个工具设定的是双向传输,没有MPI之类的从单设备多处理器、进程化消息传输模式延续来的东西,不会有像信道堵塞之类的事情,如果小李帮小红做事,也可能得到小红的帮助,这样把这个分享/支持链扩大,如果再来小明、小敏等加入进来,只要大家都1帮一个人做事2同时把一些任务分给别人,那么终究会形成一个良性循环、彼此互助的机制。小李虽然得到小红传递来的计算任务,但有些任务是源于更前面的小明的,而自己的一部分任务最终传到小敏哪里被更适合解决这个任务的她所帮助解决。
这个机制是去中心化的,但彼此直接维系着纽带。
目前的互联网,主要的计算机网络(至少底层)是面向连接的,抽象的主体是IP地址,数据传输阶段的网络协议是所有主体原则上共同分担的(转发数据包)。当然你可以安置防火墙等利用自定规则拒绝与某些主体(比如坏家伙小强)单向或双向沟通,但也面临着失去来自别人经过他那里传递来的好东西的风险。无条件隔离的主体越多,安全性越强,但信息越孤立。
其实当初阿帕网是个局域网,还是特殊机构用的,能接上来的设备都是有数的,用更早更传统的分布式系统的原理(比如消息中间件)解决不是更好吗?我没有这方面历史的研究,但很明显互联网最终走向了自愿、合作、责任分担的连接模式,潜在的逻辑每个主体都可以(通过他人)传递信息,同时每个主体也有义务帮助他人,在互通中彼此受益。
这与“协议网络”有什么关系?随着互联网的发展,特别是Web2.0的出现,其中心化的趋势越来越明显,人们不在以给自己认识的人发邮件为主要活动,而是越来越多关注少数信息中枢(从门户网站到up主)、使用少数流行的交流平台,网络上的主体不再同质,不同中心化的力量把用户群吸引起来又彼此在竞争中融合。
某个up主的铁粉形成的连接关系可以视为一个“协议网络”,某个app的重度使用者也是一个协议网络的范围。这里的“协议”我认为是某种有约束力的网络结构(明星的吸引力、应用的功能etc)。某流行app的服务器与用户建立连接的数量和频率是远远大于这些用户之间可能建立的连接,而同时大家还在以同质化的连接方式进行沟通,因为理论上,从当前互联网的物理结构而言这些连接没有本质差异。
5G技术中有一个网络分层的概念(internet slicing),指的是表明上同质化的网络内部有不同子网络管道,这些子网络与终端主体是选择性连通的,而且有明确的物理设备支持(非虚拟网络)。比方说所有人都能上网,但A公司作为一个互联网巨头它的产品有专门的网络频段/流量区间,在这个专用网络(分层)中A公司享有独特的权力,他的信息传输相比使用所有人都可以用的公用网络部分要快得多,如果它愿意它可以让使用它产品的用户接入这个网络,这样既解决了用户体验又降低了运行成本。
这个图片(来自参考4第17页)
它说的是终端对不同切片的直接支持,但也侧面说明了切片分割了互联网,一些主要的切片(比如常用app)成为了互联网的主要内容。
这种趋势已经很久了,只是没有直接影响物理层面,原因是Internet的设计。
看起来十分高效的方案,然而,互联网巨头通过操控网络分层可能给用户带来比当前互联网内容(带节奏、引流)和产品操控带来更强的影响,因为总的网络带宽是有限的,一个平台占用专门分层空间哪怕比重小,蛋糕大架不住蚂蚁多。
基于目前网络中心化的特点,内容和产品的因素是主要的,如果未来网络分层巩固了这一情况本质是还是内容和产品,后来如果内容和产品不行了,强势主体终究会衰落被并新兴的取代(一个原因可能是昂贵的专用网络费用),但被取代的主体可以有先入效应再维持一段强势。
而基于以上,现在来看我这个小项目的存在意义的设定,从计算机网络角度来说是默认或假定了“协议网络”的长期存在——如果一些人觉得某个app/功能实现/协作理念好用,哪怕人很少也能有网络空间让它存在,而且有效运作。此“协议”更接近“contract”。因此我把这个工具定位的为非中心化(本来就没有,不用“去”)的自发协作机制的产物,并假定这种机制能使一些问题的解决相比中心化的方案(比如亚马逊云)更加容易。
我会继续学习并汲取消息中间件的一些有用原理,但这个小工具基于更简单也是从互联网发展角度被证明更活力持久的信息传输原理——自愿互通、合作共享。设计思路方面,要建立一种机制,在各设备上运行的工具内核部分不负责设备的资源分配,只要任务到达便最大限度执行,由非常小的外部管理模块来负责,但有一个公共的交流空间(“广场”)让不同设备彼此考虑是否适合建立连接,如果获益连接就会保持,默认总有有益的连接或连接后总会收到有益资源这一前提。
其实这种机制并不是刻意建立在软件设计中,而是软件设计避免给这种“自发秩序”的机制带来干扰即可,比如复杂的通信机制、中心化或预设好一切的协调机制。
或许互联网一开始就是基于这种自发、简单的理念而形成的。
ps:
5G采用高频段导致传输距离缩短、覆盖范围减小,有利于近距离的端对端不利于长距离的中心化,如果在中间连接
通常的情况下距离和速度都不是问题,那维持一个非中心化的机制成本不会高。我觉得有可能未来一段时间内由短距离组成的长范围通讯系统(与现在的物联网部分重合)会成为热点。
参考
1 为什么说5G网络切片是物联网应用的咽喉?
2 5G切片,切的究竟是什么?
3 5G网络切片:是什么,为何重要,有哪些挑战以及如何解决
4 5G Service-Guaranteed Network Slicing White Paper