理解架构这个词的意思是十分重要的。它可能被过度使用,并且使用在各种环境中。如果缺少一致的理解,将会有交流失败的风险。那么架构这个词到底是什么意思呢?
理解架构这个词的意思是十分重要的。它可能被过度使用,并且使用在各种环境中。如果缺少一致的理解,将会有交流失败的风险。那么架构这个词到底是什么意思呢?
通过下面这张图片开始我们今天的内容分享。
什么是架构?网络架构中都有什么?终于有人讲明白了
01 什么是架构?
架构是一个过程、一个结果和一门学科。
作为一个过程,它涉及将组件与设计元素结合,以此来形成一个有目的的实体。
作为一个结果,它描述了由其形式所定义的一系列实体。对于我们熟知的“哥特式大教堂”这种架构形式,它的特点是一系列公认的设计元素与方法,目的可能是构建一个礼拜场所,但“哥特式大教堂”实际上意味着更多。
最后,作为一门学科,架构就是架构师接受训练要掌握的本领。计算机科学领域从设计物理实物的学科中借用了这个术语,例如建筑物和城市,其中包含广受认可的培训与认证过程。
架构的三个方面都适用于“真实的建筑”与计算机科学。
1. 作为一个过程
我的定义有两个重要的方面:将组件整合在一起并应用于某个目的。
将组件整合在一起:这是计算机科学家在考虑模块、接口、依赖、分层、抽象以及组件复用等问题时所做的工作。这些都是设计模式,计算机科学家接受了相关的训练,在思量设计挑战时需要考虑这些设计模式。
应用于某个目的:设计过程必须按照工件的预期目的来塑造,例如,是一所医院而不是一座监狱,是一个低功率处理器而不是超级计算机,是汽车中将刹车踏板挂在刹车上的网络而不是因特网。作为架构的一部分,设计师必须解决系统不能做什么(或者做得很好)以及将要做什么。
在计算机科学中,系统设计存在着一种危险,这是众所周知的,它被称为第二系统综合征,即首先构建一个或许把一些事做得很好的系统,然后再提出一个试图把所有事情都做得很好的替代方案的趋势。
2. 作为一个结果
在建筑设计实践中,设计通常会产生一份结果。也有一些例外,例如排房,其中一个设计师会建造很多次,但大多数建筑物都只有一座。在描述结果时,架构这个术语通常意味着一类设计,以其最显著的特征为代表(例如飞拱)。这个术语适用于这个抽象类,尽管架构师必须在建筑团队接管之前将建筑描述到非常精细的程度。
当计算机科学家重新使用架构这个术语时,他们稍微重新定义了一下。关于因特网,有很多不同的网络都是基于同样的设计:我们称之为“因特网”的公共全球网络,属于企业、军队等的私有网络,以及金融网络等特殊用途的网络。
在这种环境下,架构一词仅描述所构建的部分内容,给定示例的大部分设计过程都发生在之后的环节中,可能由不同的组来描述。
这个级别的设计决策构建在核心架构之上,但是没有被核心架构指定。那么,我们应该在这个核心架构中看到什么呢?
什么是网络体系结构
网络体系结构(network architecture)是指计算机之间相互通信的层次、各层次中的协议和层次之间接口的集合[1]。它为网络硬件、软件、协议、存取控制和拓扑提供标准。它广泛采用的是国际标准化组织(ISO)在1979年提出的开放系统互连(OSI-Open System Interconnection)的参考模型。
协议定义
网络体系结构
1、网络体系结构(network architecture):是计算机之间相互通信的层次,以及各层中的协议和层次之间接口的集合。
2、网络协议:是计算机网络和分布系统中互相通信的对等实体间交换信息时所必须遵守的规则的集合。
3、语法(syntax):包括数据格式、编码及信号电平等。
4、语义(semantics):包括用于协议和差错处理的控制信息。
5、定时(timing):包括速度匹配和排序。
网络结构的形成:
计算机网络的组成
计算机网络的组成分为如下几类:
(1)从组成部分上看,一个完整的计算机网络主要由硬件、软件、协议三大部分组成,缺一不可。硬件主要由主机(也称端系统)、通信链路(如双绞线、光纤)、交换设备(路由器、交换机等)和通信处理机(如网卡)等组成。软件主要包括各种实现资源共享的软件和方便用户使用的各种工具软件(如网络操作系统、邮件收发系统、FTP程序、聊天程序等)。软件部分多属于应用层。协议是计算机网络的核心,协议规定网络传输数据是所遵循的规范。
(2)从工作方式上看,计算机网络(这里主要指Internet)可分为边缘部分和核心部分。边缘部分由所有连接到因特网上、供用户直接使用的主机组成,用来进行通信(如传输数据、音频或视频)和资源共享;核心部分由大量的网络和连接这些网络的路由器组成,它为边缘部分提供连通性和交换服务。
(3)从功能组成上看,计算机网络由通信子网和资源子网组成。通信子网由各种传输介质、通信设备和相应的网络协议组成,他使网络具有数据传输、交换、控制和存储的能力,实现联网计算机之间的数据通信。资源子网是时效件资源共享功能的设备及其软件的结合,向网络用户提供共享其他计算机上的硬件资源、软件资源和数据资源的服务。
计算机网络的功能
计算机网络主要有以下五大功能:
数据通信
它是计算机网络最基本和最重要的功能,用来实现联网计算机之间的各种信息的传输,并将分散在不同地理位置的计算机联系起来进行统一的调配、控制和管理。比如,文件传输、电子邮件等应用,离开了计算机网络将无法实现。
资源共享
资源共享可以使软件共享、数据共享,也可以是硬件共享。使计算机网络中的资源互通有无、分工协作,从而极大地提高硬件资源,软件资源和数据资源的利用率。
分布式处理
当计算机网络中的某个计算机系统负荷过重时,可以将其处理的某个复杂任务分配给网络中的其他计算机系统,从而利用空闲计算机资源可以提高整个系统的利用率。
提高可靠性
计算机网络中的各台计算机可以通过网络互为替代机。
负载均衡
将工作 任务均衡地分配给计算机网络中的各台计算机。
计算机网络的分类
按分布范围分类
(1)广域网(WAN)
广域网的任务是提供部分长距离通信,运送主机所发送的数据,其覆盖范围通常是几十千米到几千千米的区域,有时也称远程网。广域网是因特网的核心部分。链接广域网的各结点交换机的链路一般是高速链路,具有较大的通信容量。
(2)城域网(MAN)
城域网的覆盖范围可以跨越几个街区甚至几个城市,覆盖范围约为5-50km。城域网大多采用以太网技术,因此有时也并入局域网的范围进行讨论。
(3)局域网(LAN)
局域网一般用微机或工作站通过高速线路相连,覆盖范围较小,通常为几十米到几千米的区域。局域网在计算机配置的数量上没有太多的限制,少的可以只有两台,多的可达几百台。传统上,局域网使用广播技术,而广域网使用交换技术。
(4)个人局域网(PAN)
个人局域网指在个人工作的地方将消费电子设别(平板电脑,智能手机等)用无线技术连接起来的网络,也称为无线个人区域网(WPAN),覆盖区域直径约为10m。
注: 若中央处理器之间的距离非常近(如仅1m的数量级甚至更小),则一般就称之为多处理器系统,而不是称它为计算机网络。
计按传输技术分类(1)广播式网络
所有联网计算机都共享一个公共通信信道。当一台计算机利用共享通信信道发送报文分组时,所有其他的计算机都会收听到这个分组。接收到该分组的计算机将通过检查目的地址来决定是否接受该分组。
(2)点对点网络
每条物理线路连接一对计算机。如果通信的两台主机之间没有直接连接的线路,那么他们之间的分组传输就要通过中间节点的接收、存储和转发,直至目的节点,是否采用分组存储转发与路由选择机制是点对点式网络与广播式网络的重要区别,广域网基本都属于点对点网络。
按拓扑结构分类网络拓扑结构是指由网络节点(路由器、主机等)与通信线路(网线)之间的几何关系(如总环形、环形)表示的网络结构,主要指通信子网的拓扑结构。
按网络的拓扑结构,主要分为总线形,星形,环形和网状形网络等。
总线形和环形多用于局域网,网状形网络多用于广域网。
(1)总线形网络
用单根传输线把计算机连接起来。
优点:建网容易,增减结点方便、节省线路。
缺点:重负载时通信效率不高、总线任意一处对故障敏感。
(2)星形网络
每个终端或计算机都以单独的线路与中央设备相连。中央设备早期是计算机,现在一般是交换机或路由器。
优点:便于集中控制和管理,因为用户之间的通信必须经过中央设备。
缺点:成本高,中心结点对故障敏感。
(3)环形网络
所有计算机接口设备连接成一个环。环状网络最典型的例子是令牌环局域网。环可以是单环,也可以是双环,环中信号是单向传输的。
(4)网状形网络
一般情况下,每个结点至少有两条路径与其他结点相连,多用在广域网中。有规则型和非规则型两种。
优点:可靠性高。
缺点:控制复杂、线路成本高。
以上四种基本的网络拓扑结构可以互连为更复杂的网络。
按使用者分类(1)公用网(Public Network)
指电信公司建造的大型网络。“公用”的意思是指所有愿意按电信公司的规定缴纳费用的人都可以使用这种网络,因此也称公众网。
(2)专用网(Private Network)
指某个部分为满足本单位特殊业务的需要而建造的网络。这种网络不向本单位以外的人提供服务。例如铁路、电力、军队等部门的专用网。
按交换技术分类交换技术是指各主机之间、各通信设备之间或主机与通信设备之间为交换信息所采用的的数据格式和交换装置的方式。按交换技术可将网络分为如下几种。
(1)电路交换网络
在源结点和目的结点之间建立一条专用的通路用于传送数据,包括建立连接、传输数据和断开连接三个阶段。最典型的电路交换网络是传统电话网络。
特点:是整个保温的比特流连续地从源点直达终点,好像是在一条管道中传送。
优点:数据直接传送、延时小。
缺点:线路利用率低,不能充分利用线路容量、不便于进行差错控制。
(2)报文交换网络
用户数据加上源地址、目的地址、校验码等辅助信息,然后封装成报文。整个报文传送到相邻结点,全部存储后,再转发给下一个结点,重复这一过程直到达到目的结点。每个报文可以单独选择达到目的结点的路径。
报文交换网络也称存储-转发网络
特点:整个报文先传送到相邻结点,全部存储后查找转发表,转发到下一个结点。
优点:可以较为充分地利用线路容量,可以实现不同链路之间不同速率的转换,可以实现格式转换,可以实现一对多,多对一的访问,可以实现差错控制。
缺点:增大了资源开销(如辅助信息导致处理时间和存储资源的开销),增加缓冲实验,需要额外的控制机制来保证多个报文的顺序不乱序,缓冲区难以管理(因为报文的大小不确定,接收方在接收到保温之前不能预知报文的大小)。
(3)分组交换网络,也称包交换网络
原理是蒋书记分成较短的固定长度的数据块,在每个数据块中加上目的地址、源地址等辅助信息组成分组(包),以存储-转发方式传输。
特点:单个分组(它是整个报文的一部分)传送到相邻结点,存储查找转发表,转发到下一个结点。
优点:除具备报文交换网络的优点之外,分女足交换网络还具有缓冲易于管理;包的平均延时更小,网络占用的平均缓冲区更少;更易于标准化;更适合应用。现在的主流网络基本上都可视为分组交换网络。
按传输介质分类传输介质可分为有线和无线两大类,因此网络可分为有线网络和无线网络。有线网络又分为双绞线网络、同轴电缆网络等。无线网络又可以分为蓝牙、微波、无线电等类型。
计算机网络的标准化工作及相关组织因特网的标准都以RFC(Request For Comments)的形式在因特网上发布,但并非每个RFC都是因特网标准,RFC要上升为因特网的正式标准需要经过以下四个阶段。
(1)因特网草案(Internet Draft)。这个阶段还不是正式RFC文档。
(2)建议标准(Proposed Standard)。从这个阶段开始就成为RFC文档。
(3)草案标准(Draft Standard)。
(4)因特网标准(Internet Standard)。
各种RFC关系如图:
在国际上负责制定、实施相关网络标准的标准化组织,主要有如下几个:
国际标准化组织(ISO)。制定的只要网络标准或规范有OSI参考模型、HDLC等。
国际电信联盟(ITU)。其前身为国际电话电报咨询委员会(CCITT),其下属机构ITU-T制定了大量关于远程通信的标准。
国际电气电子工程师协会(IEEE)。世界上最大的专业技术团体,由计算机和工程学专业人士组成。IEEE在通信领域最著名的研究成果是802标准。
计算机网络的性能指标(1)带宽(Bandwidth)
本来表示通信线路允许通过的信号频带范围,单位是赫兹(Hz)。而在计算机网络中,带宽表示网络的通信线路所能传送数据的能力,是数字信道所能传送的“最高数据率”同义语,单位是比特/秒(b/s)。
(2)时延(Delay)
指数据(一个报文或分组)从网络(或链路)的一段传送到另一端所需要的总时间,它由四部分构成:发送时延,传播时延,处理时延和排队时延。
发送时间
结点将分组的多有比特推向(传输)链路所需的时间,即从发送分组的第一个比特算起,到该分组的最后一个比特发送完毕所需的时间,因此也称传输时延。计算公式为:
发送时延=分组长度/信道宽度
传播时延
电磁波在信道中传播一定的距离需要花费的时间,即一个比特从链路的一段传播到另一端所需的时间。计算公式为:
传播时延=信道长度/电磁波在信道上的传播速率
处理时延
数据在交换节点为存储转发而进行的一些必要的处理所花费的时间。例如,分析分组的首部,从分组中提取数据部分,进行差错检验或查找适当的路由等。
排队时延
分组在进入理由起后要先在输入队列中排队等待处理。路由器确定转发端口后,还要在输出队列中排队等待转发,这就产生了排队时延。
因此,数据在网络中经历的总时延就是以上4部分之和:
总时延=发送时延 传播时延 处理时延 排队时延
(3)时延带宽积
指发送端发送的第一个比特即将到达终点时,发送端已经发出了多少个比特,因此又称以比特为单位的链路长度,即:
时延带宽积=传播时延x信道带宽
(4)往返时延(Round-Trip Time,RTT)
指从发送端发送数据开始,到发送端接收到来自接收端的确认(接收端接收到数据立即发送确认),总共经历的时延。在互联网中,往返时延还包括各种中间节点的处理时延、排队时延以及转发数据时的发送时延。
(5)吞吐量(Throughput)
指单位时间内通过某个网络(或信道、接口)的数据量。吞吐量受网络带宽或网络额定速率的限制。
(6)速率(Speed)
网络中的速率是指连接到计算机网络上的主机在数字信道上传送数据的速率,也称数据率或比特率,单位为b/s(比特/秒)(或bit/s,有时也写成bps)。数据率较高时,可以用Kb/s(k=10^3)、 Mb/s(M=10 ^6)、Gb/s(M=10 ^9)表示。在计算机网络中,通常把最高数据率称为带宽。
(7)信道利用率
指出某一信道有百分之多少的时间是有数据通过的,即:
信道利用率=数据通过时间/(有 无)数据通过时间
在计算机网络体系结构的各个层次中,每个报文都分为两个部分:一是数据部分,即SDU;二是控制信息部分,即PCI,他们共同组成PDU。
服务数据单元(SDU)
为完成用户所要求的功能而传送的数据。第n层的服务数据单元记为n-SDU。
协议控制单元(PCI)
控制协议操作的信息。第n层控制协议信息记为n-PCI。
协议数据单元(PDU)
对等层次之间传送的数据单位称为该层的PDU。第n层的协议数据单元记为n-PDU。在实际的网络中,每层的协议数据单元有一个通俗的名称,如物理层的PDU称比特,链路层的PDU称为帧,网络层的PDU称为分组,传输层的PDU称为报文。
在各层传输数据时,把第n 1层收到的PDU作为第n层的SDU,加上第n层的PCI,就变成了了第n层的PDU,交给第n-1层后作为SDU发送,接收方接受时做相反的处理,因此可以知三者关系为n-SDU n-PCI=n-PDU=(n-1)-SDU。
变换过程如下所示:
具体的,层次结构的含义包括以下几方面:
(1)第n层的实体不仅要使用第n-1层的服务来实现自身定义的功能,还要向第n 1层提供本层的服务,该服务是第n层及其下面各层提供的服务总和。
(2)最低层只提供服务,是整个层次结构的基础;中间层即是下一层的服务使用者,有时上一层的服务提供者;最高层面向用户提供服务。
(3)上一层只能通过相邻层的接口使用下一层的服务,而不能调用其他层的服务;CIA一层所提供服务的实现细节对上一层透明。
(4)两台主机通信时,对等层在逻辑上有一条直接信道,表现为不经过下层就把信息传送到对方。
计算机网络的协议、接口、服务的概念
协议
协议,就是规则的集合。这些规则明确规定了所交换的数据的格式及有关的同步问题。这些为进行网络中的数据交换而建立的规则、标准或约定称为网络协议(Network Protocol),它是控制两个(或多个)对等实体进行通信的规则的集合,是水平的。
不对等实体之间是没有协议的,比如用TCP/IP协议栈通信的两个结点,结点A的传输层和结点B的传输层之间存在协议,但结点A的传输层和结点B的网络层之间不存在协议。网络协议也简称为协议。
协议由语法、语义和同步三部分组成。语法:
(1)语法规定了传输数据的格式;
(2)语义规定了所要完成的功能,即需要发出何种控制信息、完成何种动作及作出何种应答;
(3)同步规定了执行各种操作的条件、时序关系等,即事件实现顺序的详细说明。一个完整的协议通常应具有线路管理(建立、释放连接)、差错控制、数据转换等功能。
接口
接口是同一结点内相邻两层间交换信息的连接点,是一个系统内部的规定。
每层只能为紧邻的层次之间定义接口,不能跨层定义接口。在典型的接口上,同一结点相邻两层的实体通过服务访问点(Service Access Point ,SAP)进行交互。
服务是通过SAP提供给上层使用的,第n层的SAP就是第n 1层可以访问第n层服务的地方。每个SAP都有一个能够标识它的地址,SAP是一个抽象的概念,它实际上是一个逻辑接口,但和通常所说的两个设备之间的硬件接口是很不一样的。
服务
服务区是下层为紧邻的上层提供的调用功能,它是垂直的。对等实体在协议的控制下,使得本层能为上一层提供服务,但要实现本层协议还需要使用下一层所提供的服务。
上层使用下层所提供的的服务时还必须与下层交换一些命令,这些命令在OSI中称为服务原语。
OSI将原语划分为四类:(1)请求(Request)
由服务员发往服务提供者,请求完成某项工作。
(2)指示(Indication)
由服务提供者发往服务区,指示用户做某件事情。
(3)响应(Response)
由服务用户发往服务提供者,作为对指示的响应。
(4)证实(Confirmation)
由服务提供者发往服务用户,作为对请求的证实。
四类原语的关系如下所示:
注: 服务和协议在概念上是不一样的。首先,只有本层协议的实现才能保证向上一层提供服务。本层的服务用户只能看见服务而无法看见下面的协议,即下面的协议对上层的服务用户是透明的。
其次,协议是“水平的”,即协议是控制对等实体之间通信的规则。但服务是“垂直的”,即服务是由下层通过层间接口向上提供的。
另外,并非在一层内完成的全部功能都能称为服务,只有那些能被高一层实体“看得见”的功能才能称为服务。
协议、接口、服务三者之间关系如下:计算机网络提供服务可以按以下三种方式分类:
(1)面向连接服务与无连接服务
在面向连接服务中,通信前双方必须先建立连接,分配相应的资源(如缓冲区),以保证通信能正常进行,传输结束后释放连接和所占用的资源。因此这种服务可以分为连接建立、数据传输和连接释放三个阶段。
例如TCP就是一种面向连接服务的协议。
在无服务连接中,通信双方不需要先建立连接,需要发送数据时可直接发送,把每个带有目的地址的包(报文分组)传送到线路上,由系统选定线路进行传输。这是一种不可靠的服务。这种服务常被描述为“尽最大努力交付”(Best-Effort-Delivery),它并不保证通信的可靠性。
例如IP、UDP就是一种无连接服务的协议。
(2)可靠服务和不可靠服务
可靠服务是指网络具有纠错、检错、应答机制,能保证数据正确、可靠地传送到目的地。
不可靠服务是指网络只是尽量正确、可靠地传送,而不能保证数据正确、可靠地传送到目的地,是一种尽力而为的服务。
对于提供不可靠服务的网络,其网络的正确性、可靠性要由应用或用户来保障。例如,用 户收到信息后要判断信息的正确性,如果不正确,那么用户要把出错信息报告给信息的发送者,以便发送者采取纠正措施。通过用户的这些措施,可以把不可靠的服务变成可靠的服务。
(3)有应答服务和无应答服务
有应答服务是指接收方在收到数据后向发送方给出相应的应答,该应答由传输系统内部自动实现,而不由用户实现。所发送的应答既可以是肯定应答,也可以是否定应答,通常在接收到的数据有错误时发送否定应答。例如,文件传输服务就是一种有应答服务。
无应答服务是指接收方收到数据后不自动给出应答。若需要应答,则由高层实现。例如,对于WWW服务,客户端收到服务器发送的页面文件后不给出应答。
TCP/IP模型
网络的五层协议体系结构模型
通信协议栈进行通信的结点的数据传输过程
,