计算机网络体系结构
计算机网络是一个复杂的、具有综合性技术的系统,它由计算机系统、通信处理机、通信线路和通信设备、操作系统以及网络协议等组成。为了更好地描述计算机网络结构,使计算机网络系统有条不紊地处理工作,需要定义一种较好的网络体系结构。分层结构就是一种较好地描述网络体系结构的方法。
计算机网络体系结构可以从网络体系结构、网络组织和网络配置三个方面来描述。
● 网络体系结构是从功能上来描述计算机网络。
● 网络组织是从网络的物理结构和网络的实现两方面来描述计算机网络。
● 网络配置是从网络应用方面来描述计算机网络的布局、软硬件和通信线路配置等。
计算机网络体系结构层次划分原则
● 每层功能相对独立。
● 相邻层功能具有一定的依赖关系。
● 对每层要完成的服务及实现过程进行明确规定。
● 对网络中处于不同地区的系统进行相同的层次结构划分。
● 不同系统的同等层具有相同功能(服务)。
● 高层使用低层提供的服务时,不需知道低层服务的具体实现方法。
计算机网络划分层次结构主要优点
● 各层相对独立。层次结构中每一层相对独立,一个层次只需要通过接口使用其下层提供的服务来完成本层功能,并对上一层提供服务。它只需知道下层能够提供哪些服务,而不需知道下层是如何实现这些功能的。
● 简化体系结构设计难度。由于各层相对独立实现某种功能,从而将一个庞大、复杂的大型问题拆解处理,简化问题难度。
● 网络体系的灵活性更好。因为网络结构层次间相对独立,因此,当某一层功能发生变更时,只要上下接口不发生变化,即向上层提供的服务和向下层要求的服务不变,则在更改层之上或之下的层次都不会受到影响。层次间的灵活性保证了每层可以根据自己的需求进行不断改进,而不影响其他层次的设计。
● 结构易于实现和维护。分层结构使得一个庞大系统的实现变得容易,因为整个系统的大问题转化成了若干易于处理的小问题了。
OSI七层模型
- 应用层
应用层是OSI参考模型的最高层,它是服务于用户,是唯一直接为用户应用进程访问OSI环境提供手段和服务的层次,应用层以下各层通过应用层间接地向应用进程提供服务。因此,应用层向应用进程提供的服务是所有层提供服务的总和。应用层需要识别并保证通信双方的可用性,保证应用程序之间的同步,建立传输错误纠正机制和保证数据完整性控制机制。应用层包含了用户通常需要的各种协议。
- 表示层
表示层的任务是处理两个通信系统之间交换信息的表示方式。表示层关注的是信息的语法和语义。不同的数据结构必须以相同的一种抽象方式来定义,以实现这些计算机之间的通信。表示层正是用来定义和管理这些抽象的数据结构,主要包括数据格式变换、数据加密和解密、数据压缩与恢复等功能。目前,表示层也没有具体的协议。
- 会话层
会话层的任务是负责维护两个节点之间会话的建立、管理和终止。会话层允许不同机器上建立用户会话。会话可以提供各种服务,包括对话控制、令牌管理以及同步功能。目前,会话层没有具体的协议。
- 传输层
传输层的任务是向用户提供一种端到端的服务。传输层是通信体系中关键的一层,因为它实现了向高层屏蔽下层数据通信的全部细节。传输层接收上一层传来的数据,将数据分割成较小的单元,将这些数据单元传送给网络层。传输层自始至终将数据从源端带到目的端。也就是说,源端在传输层利用报文首部和控制信息与目的端的类似程序进行会话,其下面各层通过协议与同等层级进行通信,其通信过程涉及多少路由,传输层并不需知道,也不涉及源端与目的端。
- 网络层
网络层的任务是通过路由算法为分组选择最适合子网通信的路径,实现网络互连和拥塞控制。路由可以建立在静态表的基础上,也可以采用一种自动更新的方式,以此避免网络中出现的故障组件。路由可以处于高度动态中,这样针对每一个数据报都重新确定路径,反映当前网络的负载情况。网络层的传输单元是分组。
- 数据链路层
数据链路层的任务是在物理层提供的服务基础上,为实体间的通信建立真正的数据链路连接。发送方将数据拆分成数据帧,顺序地发送这些数据帧。接收方正确接收到发送过来的数据帧之后,向发送方发送一个确认帧,作为回复消息。数据链路层的传输单元为帧,并采用差错控制与流量控制方法,确保数据线路的无差错传输。
- 物理层
物理层的任务是在一条物理通信线路上传输原始比特。发送方发送1(或0)时,接收方应当接收到1(或0),而不是0(或1)。因此物理层需要考虑的是使用多大的电压来代表1或0,以及接收方采用何种方式来识别发送方的比特数据,从而实现比特流的透明传输,为数据链路层提供数据传输服务。物理层的传输单元为比特。
OSI七层模型与TCP/IP五层协议关系图
TCP/IP五层协议
-
应用层(application layer)
应用层是体系结构中的最高层。应用层的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程间通信和交互的规则。这里的进程(process)就是指主机中正在运行的程序。对于不同的网络应用需要有不同的应用层协议。在因特网中的应用层协议很多,如支持万维网应用的HTTP协议,支持电子邮件的SMTP协议,支持文件传送的FTP协议,等等。我们将应用层交互的数据单元称为报文(message)。 -
运输层(transport layer)
运输层的任务就是负责向两个主机中进程之间的通信提供通用的数据传输服务。
运输层主要使用以下两种协议
● 传输控制协议TCP (Transmission Control Protocol)——提供面向连接的、可靠的数据传输服务,其数据传输的单位是报文段(segment)。
● 用户数据报协议 UDP (User Datagram Protocol)——提供无连接的、尽最大努力(best-effort)的数据传输服务(不保证数据传输的可靠性),其数据传输的单位是用户数据报。
-
网络层(network layer)
网络层负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组或包(packet)进行传送。在TCP/IP体系中,由于网络层使用IP协议,因此分组也叫作 IP数据报,或简称为数据报(datagram)。 -
数据链路层(data link layer)
数据链路层常简称为链路层。我们知道,两台主机之间的数据传输,总是在一段一段的链路上传送的,这就需要使用专门的链路层的协议。在两个相邻结点之间传送数据时,数据链路层将网络层交下来的IP数据报组装成帧(framing),在两个相邻结点间的链路上传送帧(frame)。每一帧包括数据和必要的控制信息(如同步信息、地址信息、差错控制等)。在接收数据时,控制信息使接收端能够知道一个帧从哪个比特开始和到哪个比特结束。这样,数据链路层在收到一个帧后,就可从中提取出数据部分,上交给网络层。 -
物理层(physical layer)
在物理层上所传数据的单位是比特。发送方发送1(或0)时,接收方应当收到1(或0)而不是0(或1)。因此物理层要考虑用多大的电压代表“1”或“0”,以及接收方如何识别出发送方所发送的比特。物理层还要确定连接电缆的插头应当有多少根引脚以及各条引脚应如何连接。当然,解释比特代表的意思,就不是物理层的任务。
请注意,传递信息所利用的一些物理媒体,如双绞线、同轴电缆、光缆、无线信道等,并不在物理层协议之内而是在物理层协议的下面。因此也有人把物理媒体当作第0层。
数据在各层之间的传递过程
假定主机1的应用进程AP1向主机2的应用进程AP2传送数据。AP1先将其数据交给本主机的第5层(应用层)。第5层加上必要的控制信息H5就变成了下一层的数据单元。第4层(运输层)收到这个数据单元后,加上本层的控制信息H4,再交给第3层(网络层),成为第3层的数据单元。依此类推。不过到了第2层(数据链路层)后,控制信息被分成两部分,分别加到本层数据单元的首部(H2)和尾部(T2);而第1层(物理层)由于是比特流的传送,所以不再加上控制信息。请注意,传送比特流时应从首部开始传送。