计算机网络体系结构与参考模型
计算机网络分层结构
概述
将计算机网络的各层及其协议的集合称为网络的体系结构,即计算机网络及其所能完成的功能的精确定义,是计算机网络中的层次、各层协议及层间接口的集合,
分层的原则
- 每层都实现一种相对独立的功能,降低大系统的复杂度
- 各层之间界面自然清晰,易于理解,相互交流可能少
- 各层功能的精确定义独立于实现方法,可采用最合适的技术来实现
- 保持下层对上层的独立性,上层单向使用下层的服务
- 整个分层结构应能促使标准化工作
特点
分层的体系结构易于更新、易于调试、易于交流、易于抽象、易于标准化
分层后的网络从低到高一次称为第1
层、…、第n
层,每一层都有一个特定的名称
分层
第n层的活动元素称为n层实体
,指的是可以发送或接受信息的硬件或软件进程
,不同机器上的同一层称为对等层
,同一层的实体称为对等实体
,n
层实体实现的服务为n + 1
层所利用,n
层称为服务提供者
,n + 1
层则服务于用户
报文
报文分为数据部分SDU
和控制信息部分PCI
1. 服务数据单元(SDU
):为完成用户所要求的功能而应传递的数据,第n
层的SDU
称为n-SDU
2. 协议控制单元(PCI
):控制协议操作信息,第n
层的协议控制信息为n-PCI
3. 协议数据单元(PDU
):对等层次之间传送的数据单位称为改成的PDU
,第n
层的协议数据单元称为n-PDU
,如物理层的PDU称为比特
,链路层的PDU
称为帧
,网络层称为分组
,传输层为报文
层次结构的含义
各层传输数据时,将从n + 1
层收到的PDU
作为第n
层的SDU
,加上第n
层的PCI
,则成了的第n
层的PDU
,发送给n - 1
层作为n - 1
层的SDU
,接收则反之,三者关系为n-SDU + n-PCI = (n - 1)-SDU
1. 第n
层实体使用第n - 1
的服务实现自身定义的功能,向第n + 1
层提供自身服务,该服务是第n
层及其下面各层提供服务的总和
2. 最底层只提供服务,是整个层次结构的基础,中间各层是下一层服务使用者,也是上一层的服务提供者,最高层面向对象提供服务
3. 上一层只能通过接口调用下一层的服务,下一层的实现对上一层透明
4. 两台主机通信时,对等层在逻辑上有直接信道,不经过下层可以直接通信
计算机网络协议、接口、服务的概念
协议
协议指的是规则的集合,遵循一些规则才能够在网络中有条不紊地交换数据,网络协议(Netword Protocol)指的是为进行网络中的数据交换而建立的规则、标准或约定,控制两个以上对等实体
进行通信的规则的集合,不对等实体间不存在协议。一个完整的协议通常具有线路管理、差错控制、数据交换等功能,协议是水平的,即协议是控制对等实体的规则
协议由语法、语义和同步三部分组成:
- 语法:传输数据的格式
- 语义:规定所要完成的功能,即需要发出何种控制信息、完成何种动作及作出何种应答
- 同步:规定执行了何种操作的条件、时序关系,即事件实现顺序的详细说明
接口
接口是同一结点内相邻两层间交换信息的连接点,是系统内部的规定,不能跨层定义接口,同一结点的两层实体通过服务访问点(Service Access Point,SAP
)进行交互,服务通过SAP
提供给上层使用,SAP
是一个逻辑接口。
物理层的SAP
是网卡接口
,数据链路层的SAP
是MAC地址(网卡地址)
,网络层的SAP
是IP地址(网络地址)
,传输层的SAP
是端口号
,应用层的SAP
是用户界面
服务
服务指的是下层为近邻的上层提供的功能调用,是垂直的。上层使用下层服务时需要一些交换命令,在OSI中称为服务原语
,分为四类
- 请求(Request),由服务用户发往提供者,请求完成某项工作
- 指示(Indication),由服务提供者发往用户,指示用户做某件事情
- 响应(Response),由服务用户发往提供者,作为对指示的响应
- 证实(Confirmation),由服务提供者发往服务用户,作为对请求的证实
本层的服务用户只能看见服务而无法看见协议,服务是垂直的,有下层通过层间接口向上层提供的,只有高一层实体看见
的功能才能成为服务
服务可以通过三种方式分类
- 面向连接服务与无连接服务
- 面向连接服务
通信双方必须先建立连接,分配相应资源,保证通信能正常进行,结束后释放连接和所占用资源,可以分为建立连接、数据传输和连接释放三个阶段 - 无连接服务
通信前双方不需要先建立连接,需要发送数据时直接发送,把每个带有目的地址的包传送到线路上,由系统选定线路进行传输,描述为尽最大努力交付Best-Effort-Delivery
,它并不保证通信的可靠性
- 面向连接服务
- 可靠服务与不可靠服务
- 可靠服务
网络具有纠错、检错、应答机制
,能保证数据正确、可靠地传送到目的地 - 不可靠服务
网络只是尽量正确、可靠地传送数据
,不能保证数据正确、可靠地传送到目的地,是一种尽力而为的服务
- 可靠服务
- 有应答服务与无应答服务
- 有应答服务
接收方在收到数据后向发送方给出相应应答,应答由传输系统内部自动实现,可以是肯定也可以否定 - 无应答服务
接收方在收到数据不自动应答,若需要应答,则由高层实现
- 有应答服务
ISO/OSI参考模型和TCP/IP模型
OSI参考模型
ISO提出的网络体系结构模型称为开放系统互连参考模型
(OSI/RM
),简称OSI参考模型
,OSI
有七层,自上而下依次为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
。低三层
统称为通信子网
,是为了联网而附加的通信设备,完成数据的传输功能,高三层
统称为资源子网
,相当于计算机系统,完成数据的处理等功能,传输层
承上启下。
-
物理层
物理层(
Physical Layer
)的传输单位是比特
,任务是透明地传输比特流,功能是在物理媒体上为数据段设备透明的传输原始比特流。物理层主要定义
数据终端设备(DTE)
和数据通信设备(DCE)
的物理与逻辑连接方法,所以物理层协议也称为物理层接口标准
或物理层规程
物理层规定了通信链路与通信结点连接需要的电路接口的一些参数,也规定了通信链路上传输的意义和电气特征。
物理层协议由
EIA-232C、EIA/TIA RS-449、CCITT的X.21等
-
数据链路层
数据链路层(
Data Link Layer
)的传输单位是帧
,任务是将网络层传来的IP数据报伪装成帧,数据链路层的可以概括为成帧、差错控制、流量控制和传输管理
等广播式网络在数据链路层需要控制对共享信道的访问,一个特殊的子层
介质访问层
就是专门处理这个问题的。
典型的数据链路层协议有SDLC、HDLC、PPP、STP和帧中继
等 -
网络层
网络层(
Network Layer
)的传输单位是数据报
或分组
,任务是把网络层协议数据单元从源端传到目的端,为分组交换网上的不同主机提供通信服务,关键问题是进行路由选择,实现流量控制、拥塞控制、差错控制和网际互联等功能。因特网由大量异构网络通过路由器(Router)相互连接,因特网主要网络协议是无连接的
网际协议
(Internet Protocal, IP
)和许多路由选择协议,故因特网的网络层也称为网际层
或IP层
网络层协议有
IP、IPX、ICMP、IGMP、ARP、RARP和OSPF
等 -
传输层
传输层(Transport Layer)也称运输层,传输单位是报文段(
TCP
)或用户数据报(UDP
),传输层负责主机中两个进程间的通信,功能是为端到端连接提供可靠的传输服务,为端到端提供流量控制、差错控制、服务质量、数据传输管理等服务。数据链路层提供的是点(主机硬件地址或IP地址)对点(主机硬件地址或IP地址)通信,传输层提供的是端对端的通信,指的是运行在不同主机内的两个进程之间的通信,一个进程由一个端口来标识
传输层的服务可以让高层用户直接进行端对端的数据传输,忽略通信子网的存在。
传输层具有复用和分用的功能,
复用
指的是多个应用层进程可以使用下面的传输层服务,分用
指的是传输层把收到的信息分别交付给上面的应用层中相应的进程传输层协议由
TCP、UDP
-
会话层
会话层(
Session Layer
)允许不同主机之间的各进程进行会话,利用传输层提供的端对端服务,向表示层提供它的增值服务,为表示层实体或用户进程建立连接并在连接上有序地传输数据,即为会话
,也称建立同步(SYN)
会话层负责管理主机间的会话进程,包括建立、管理及终止进程间会话,可以使用校验点使通信会话在通信失效时从校验点继续回复,实现数据同步
-
表示层
表示层(
Presentation Layer
)主要处理两个通信系统中交换信息的表示方式,不同机器采用的编码和表示方式不同,使用数据结构也不同,表示层采用抽象的标准方法定义数据结构,采用标准的编码形式,使得不同的表示方法的数据可以交换,数据压缩、加密和解密也是表示层可以提供的数据表示变换功能。 -
应用层
应用层(
Application Layer
)是OSI
模型的最高层,是用户与网络的界面,协议最多,为特定类型的网络应用提供访问OSI
环境的手段,如用于文件传送的FTP
、用于电子邮件的SMTP
、用于万维网的HTTP
等
TCP/IP模型
ARPA
在研究ARPAnet
时提出TCP/IP
模型,从低到高依次为网络接口层(物理层、数据链路)、网际层、传输层和应用层(会话层、表示层、应用层)
,TCP/IP
广泛应用而称为事实上的国际标准
-
网络接口层
从主机或结点接收IP分组,并将其发到指定的物理网络上
-
网际层
将分组发往任何网络,并为之独立地选择合适的路由,但不保证各分组的有序到达,将有序交付高层处理,定义了标准的分组格式和协议
-
传输层
应用对应用或进程对进程,使发送端和目的端主机的对等实体进行会话,主要使用两种协议:
- 传输控制协议(Transmission Control Protocol,TCP)
面向连接,单位为保温段,提供可靠交付 - 用户数据报协议(User Datagram Protocol,UDP)
无连接,单位为用户数据报,不保证提供可靠交付,只能提供尽最大努力交付
- 传输控制协议(Transmission Control Protocol,TCP)
-
应用层
用户-用户所有高层协议,如虚拟终端协议(
Telnet
)、域名解析服务(DNS
)、电子邮件协议(SMTP
)和超文本传输协议(HTTP
)等
IP协议是樱桃味的核心协议,TCP/IP
可以为各种应用提供服务(everything on IP
),同时TCP/IP
允许IP
协议在由各种网络构成的互联网上运行(IP over everything
)
TCP/IP与OSI参考模型的比较
-
共同点
- 两者都采用分层结构,分层功能大体相似
- 都是基于协议栈的功能
- 都可以解决异构网络的互联
-
差异
OSI
定义了服务、协议和接口
,与OOP
思想吻合,TCP/IP
却没有明确区分,不符合软件工程思想OSI
没有偏向于任何特定协议,通用性良好,TCP/IP
模型实际是对已有协议的描述OSI
最初只考虑用一种标准的公用数据网联接各种系统,之后在网络层中划分一个子层来完成类似IP
的功能,TCP/IP
在设计之初就考虑到多种异构网互联的问题,并将IP
作为一个单独的重要层次OSI
在网络层支持无连接和面向连接的通信
,传输层则仅有面向连接的通信
,TCP/IP
面向在网际层只有无连接的通信模式
,传输层则支持无连接和面向连接的通信
-
通信协议栈
通信协议栈的
最顶端都是一个面向用户的接口
,下面各层为通信服务的协议,用户传输数据时通过应用层,将自然语言转化为用于通信的通信数据,层层下放,层层包裹
,最后形成的数据报通过通信链路阐述到达接收方结点协议栈,接收方则逆序逐层地把包裹
拆开,将收到的数据传递给用户
鸣谢
最后
- 由于博主水平有限,不免有疏漏之处,欢迎读者随时批评指正,以免造成不必要的误解!