计算机网络体系结构
导引:计算机网络是一个非常复杂的系统,涉及许多组成成分。分层结构能够有效描述网络。
分层结构体系中,每一层完成一种功能,层和层之间相互协作,底层为上层提供服务,上层再为它的上层提供服务,以此类推。
计算机网络的体系结构
说明:
- 网络体系结构是从功能上来描述计算机网络结构的。
- 计算机网络体系结构简称为网络体系结构(network architecture),它是一个分层结构。
- 网络体系结构每层遵循某个/些网络协议,来完成本层功能。
- 计算机网络体系结构是计算机网络的各层及其协议的集合。
- 网络体系结构是一个计算机网络的功能层次及其关系的定义。
- 体系结构是抽象的。
为什么采用分层结构?
1.结构清晰,有利于识别复杂系统的部件及其关系
- 分层的参考模型(reference model)
2.模块化的分层易于系统的更新、维护
- 任何一层服务实现的改变对于系统其他层都是透明的
- 例如,登机过程的改变并不影响航空系统的其他部分(层)
3.有利于标准化
4. 分层结构的不利之处(如分层越多时,系统的效率会越低)
分层网络体系结构基本概念
- 实体(entity):网络中任何可以发送或者接收信息的硬件或软件进程。
- 协议:控制同层的两个对等实体进行通信的规则的集合,协议是“水平”的。
- 任一层实体需要使用下层服务,遵循本层协议,实现本层功能,向上层提供服务,服务是“垂直的”。
- 下层协议的实现对上层的服务用户是透明的。
- 同系统的相邻层实体间通过接口进行交互,通过服务访问点SPA(Service Access Point),交换原语,指定请求的特定服务【说明:原语就是在两层实体之间,通过交换服务原语(如请求,指示,确认,相应),然后通过原语,服务请求方请求服务提供方完成什么事或提供什么服务,反过来,服务提供方也可以通过原语去通知,指示或者响应服务请求方完成的某些事件】
OSI(开放系统互连)参考模型
- 由国际标准化组织于1984年提出的分层网络体系结构模型
- 目的是支持异构网络系统的互连互通
- 异构网络系统互连的国际标准
- 它是理解网络通信的最佳学习工具(理论模型)
- 它将网络划分为7个层次(功能),每层完成特定的网络功能
OSI参考模型解释网络通信的过程
主机完成所有层次的7个功能,中间系统(如路由器)只需完成3层的功能
物理介质完成物理信号传输
实线为数据真正的传输方向
相邻层间通过接口传输数据
端-端层(end-end):应用层;表示层;会话层;传输层
非端-端层:网络层;数据链路层;物理层
OSI参考模型数据封装与通信过程
源数据加上应用层头构成应用层协议的一个数据包,称为协议数据单元。
应用层协议数据单元简称为A-PDU
……
网络层协议数据单元在数据链路层加头加尾变成一个帧,然后出输给物理层后,不再添加其他信息,以比特流的形式在介质中传输。
进行数据封装的原因:增加控制信息:构造协议数据单元(PDU)
控制信息主要包括:
- 地址:标识发送端/接收端
- 差错检测编码:用于差错检测或纠正(并不是所有的协议都要加上差错控制信息)
- 协议控制:实现协议功能的附加信息,如:优先级(priority)、服务质量(QoS)、安全控制等
物理层功能
功能:在具体的介质上,完成每一个比特的传输,
- 接口特性:机械特性【接口的几何形状(方形口,圆形口),插孔插头的位置等】
电气特性【电频的大小,电压的大小等】
功能特性【接口每个引脚的功能】
规程特性【接口在工作过程中要遵循怎样的过程】
- 比特编码
- 数据率(数据传输速率)
- 比特同步(实际上就是解决发送设备与接收设备之间的时钟同步问题)
- 传输模式:单工(Simplex)单向传输数据(如传统电视,只能电视台发送信号,电视接收)
半双工(half-duplex)可以双向通信,但是只能交替进行(如对讲机通信,讲话时不能听,听时不能讲话)
全双工(full-duplex)可以同时进行双向通信,但一般会采用独立双信道
数据链路功能
- 负责结点-结点(node-to-node)数据传输【物理链路直接相连的两个相邻结点之间的数据(以帧作为数据单位)传输】
- 组帧(Framing)给来自网络层的数据加头加尾构成帧【目的:让接收一端从物理层收到一系列的比特流的时候,能够成功地将不同的数据帧切分出来】
- 物理寻址(Physical addressing)发生在数据链路层,物理层中无法寻址(在帧头中增加发送端或接收端的物理地址标志数据帧的发送端或接收端)
- 流量控制(Flow control)避免淹没接收端
- 差错控制(Error control)
- 访问(接入)控制(Acess control)在任一给定时刻决定哪个设备拥有链路(物理介质)控制使用权
网络层功能
- 负责源主机到目的主机数据分组交付(可能跨越多个网络)
- 逻辑寻址(Logical addressing)【全局唯一逻辑地址,确保数据分组被送到目的主机,如IP地址】
- 路由(Routing)【路由器(或网关)互连网络,并路由分组至最终目的的主机;路径选择】
- 分组转发:
传输层功能【负责源-目的(端-端)(进程间)完整报文传输】
- 分段与重组
- SAP寻址(确保将完整报文提交给正确的进程,如端口号)
- 连接控制(逻辑连接)
- 流量控制
- 差错控制
会话层功能
- 对话控制(dialog controlling)对话的建立,维护,拆除
- 对话同步(synchronization)在数据流中插入“同步点”
- 会话层为最“薄”的一层
说明:两个进程间的一次通信就是一次对话
表示层功能
处理两个系统间交换信息的语法与语义问题
- 数据表示转化:转换为主机独立的编码
- 加密/解密
- 压缩/解压缩
应用层功能
- 支持用户通过用户代理(如浏览器)或网络接口使用网络服务
- 典型的应用层服务:
文件传输(FTP)
电子邮件(SMTP)
Web (HTTP)
TCP/IP参考模型
5层参考模型
- 综合OSI和TCP/IP的优点
5层模型的数据封装
讨论题:
关于分层网络体系结构
现代网络体系结构大部分都采用分层体系结构,分层体系结构的优点在课程中也做了概括性介绍。那么分层网络体系结构有什么缺点那?在某些情况下是否有必要不采用分层结构那?查阅资料,看看是否存在跨层体系结构的网络设计?有什么优点?
answer1:
优点:分层网络体系结构有利于识别复杂系统的部件及其关系,且模块化的分层易于系统更新、维护,有利于标准化;缺点:级联修改问题,一些问题中,若一部分需要变化或优化,可能会导致所有层都需要变化,同时,可能还会存在性能问题,本来是简单的问题,经过多层的过程变得复杂
分层的目的是简化问题,使复杂的问题变得简单、结构清晰。当网络较小、简单并且过程很清晰的时候,可以不采用分层结构。
跨层体系结构就是使网络体系结构中实现层之间的跨层交互。比如:tcp层与链路层实现跨层交互,这样可使链路层中的队列状态能够传递给tcp层,tcp层能够根据队列的状态来判断链路的拥塞状况,从而使得tcp能够正确判断网络拥塞和误码造成的数据包丢失,最终达到提高tcp性能的效果。优点:减少了没有必要的信息交互,提高了效率。 ——from mooc
answer2:
Q:分层网络体系结构有什么缺点?
A:由于分层需要定义模块结构,可能导致层间交互不清晰,接口复杂,并且由于每层都要对
数据进行处理,导致信息交互的时间延长,增加了数据量。另外,由于各个层次隔离,对通
信的优化和扩展都只能在各个层次进行,无法在整个系统层次讨论。
Q:在哪些情况下有必要不采用分层结构?
A:分层结构(模块化)是任何复杂系统的必要实现手段。所以任何成系统的体系都通常存在
分层结构,不然就会很麻烦。可能在某些极端情况下,不需要分层结构,例如:家里的电灯
泡和开关,开关传递给电灯泡一个电“信号”(?),电灯泡立即打开(没有软件进行上层的
处理操作)。而*跨层*体系结构是可以考虑的。
Q:跨层体系结构的网络设计及其优点?
A:跨层设计是一种综合考虑协议栈各层次设计与优化并允许任意层次和功能模块之间自由交
互信息的方法,在原有的分层协议栈基础上集成跨层设计与优化方法可以得到一种跨层协议
栈。跨层设计与优化的优势在于通过使用层问交互,不同的层次可以及时共享本地信息,减
少了处理和通信开销,优化了系统整体性能。与传统的分层结构相比,跨层协议栈的层问交
互要复杂些,各层需要了解其他层的行为并需要更多的专用接口,降低了通用性。但是,跨
层设计方法的各层协议和功能模块的协同有助于消除冗余功能;采用消息驱动的控制方法,
任意层之间可以交互信息;针对特定的场合进行集成设计和优化可以较好匹配应用需求和网
络条件。例如在无限通信中,考虑到无线信道有限的带宽资源、信道的时变特性以及节点自
身的局限性,跨层设计方法优势带来的好处远大于层间交互带来的协议设计复杂性的缺点。
参考:王海涛,刘晓明 adhoc网络中跨层设计方法的研究 2005
——from 李秋豪