计算机网络体系结构(下)

孤人 提交于 2019-12-16 08:47:08

一. 计算机网络系统结构标准概述

  最早的计算机网络体系结构源于IBM在1974年宣布的系统网络体系结构SNA (Systems Network Architecture),这个著名的网络标准就是一种层次化网络体系结构。不久后,其他一些公司也相继推出自己公司的具有不同名称的体系结构。不同的网络体系结构出现后,采用不同的网络体系结构的产品就很难互相连通(通信)。然而,全球经济的发展使得处在不同网络体系结构的用户迫切要求能够互相交换信息,为此,国际标准化组织ISO成立了专门的机构研究该问题,并于1977年提出了一个试图使各种计算机在世界范围内互联成网的标准框架,即著名的 开放系统互连基本参考模型OSI/RM (Open System Interconnection Reference Model)。正如在本篇的姊妹篇《计算机网络体系结构(上)》提到的那样,OSI七层体系结构具有概念清楚、理论完整的特点,是一个理论上的国际标准,但却不是事实上的国际标准;而具有简单易用特点的TCP/IP 四层体系结构则是事实上的标准。 需要指出的是,五层体系结构虽然综合了 OSI 和 TCP/IP 的优点,但其只是为了学术学习研究而提出的,没有具体的实际意义。三者结构示意图如下所示:


二. OSI 七层体系结构简述

1、OSI七层参考体系结构

 在OSI七层参考模型的体系结构中,由低层至高层分别称为物理层、数据链路层、网络层、运输层、会话层、表示层和应用层,下面给出OSI网络体系结构参考模型示意图:
            


 在OSI七层参考模型的体系结构中,各层次要解决的问题及其功能简述如下图所示:
            


 下图给出了OSI网络体系结构的PDU数据封装示意图:
            


2、OSI各层次概述

1). 物理层

  在OSI参考模型中,物理层(Physical Layer)是参考模型的最低层,也是OSI模型的第一层。它实现了相邻计算机节点之间比特流的透明传送,并尽可能地屏蔽掉具体传输介质和物理设备的差异,使其上层(数据链路层)不必关心网络的具体传输介质。“透明传送比特流”的意思是经实际电路传送后的比特流没有发生变化,对传送的比特流来说,这个电路好像是看不见的。
            


(1). 任务

  在物理介质上正确地、透明地传送比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的数模转换与模数转换)。


(2). 协议(标准)

  规定了物理接口的各种特性和物理设备的标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等;


(3). 功能

  实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异,使数据链路层不必关心网络的具体传输介质。


2). 数据链路层(data link layer)

  数据链路层(Data Link Layer)是OSI模型的第二层,负责建立和管理节点间的链路,控制网络层与物理层之间的通信。它完成了数据在不可靠的物理线路上的可靠传递。我们知道,在计算机网络中,由于各种干扰的存在,物理链路是不可靠的。为了保证数据的可靠传输,从网络层接收到的数据被分割成特定的可被物理层传输的帧。帧是用来移动数据的结构包,它不仅包括原始数据,还包括发送方和接收方的物理地址以及纠错和控制信息。其中的物理地址确定了帧将发送到何处,而纠错和控制信息则确保帧无差错的传递。换句话说,这一层在物理层提供的比特流的基础上,通过差错控制、流量控制方法,使有差错的物理线路变为无差错的数据链路,即提供可靠的通过物理介质传输数据的方法。

            


(1). 任务

  通过各种数据链路层控制协议,实现数据在不可靠的物理线路上的可靠传递;


(2). 协议

  负责提供物理地址寻址、数据的成帧、流量控制、差错控制等功能,确保数据的可靠传输;


(3). 功能与服务

  接收来自物理层的位流形式的数据,并封装成帧,传送到上一层;同样,也将来自上层的数据帧,拆装为位流形式的数据转发到物理层。此外,该层还负责提供物理地址寻址、数据的成帧、流量控制、差错控制等功能。差错控制是指处理接收端发回的确认帧的信息(对等层通信),以便提供可靠的数据传输;流量控制是指抑止发送方的传输速率,使接收方来得及接收。


3). 网络层

  网络层(Network Layer)是OSI模型的第三层,它是OSI参考模型中最复杂的一层,也是通信子网的最高一层,它在下两层的基础上向资源子网提供服务。网络层主要任务是将网络地址翻译成对应的物理地址,并通过路由选择算法为分组通过通信子网选择最适当的路径。特别地,网络层将通过综合考虑发送优先权、网络拥塞程度、服务质量以及可选路由的花费来决定从一个网络中节点A 到另一个网络中节点B的最佳路径。

  网络层是可选的,它只用于当两个计算机系统处于不同的由路由器分割开的网段这种情况,或者当通信应用要求某种网络层或传输层提供的服务、特性或者能力时。对于两台主机处于同一个LAN网段的直接相连这种情况,它们之间的通信只使用LAN的通信机制就可以了,即OSI参考模型的物理层和数据链路层。

            


(1). 任务

  将网络地址翻译成对应的物理地址,并通过路由选择算法为分组通过通信子网选择最适当的路径。


(2). 协议

  提供无连接数据报服务的IP协议


(3). 产品

  路由器


(4). 路由选择:

  网络层最重要的一个功能就是:路由选择。网路层会依据速度、距离(步跳数)、价格和拥塞程度等因素在多条通信路径中找一条最佳路径。所谓路由,一般包括路由表和路由算法两个方面。事实上,每个路由器都必须建立和维护其路由表,一种是静态维护,也就是人工设置,只适用于小型网络;另一种是动态维护,是在运行过程中根据网络情况自动地动态维护路由表。


(5).数据链路层与网络层的差异

  一般地,数据链路层是解决同一网络内节点之间的通信,而网络层主要解决不同子网间的通信,例如,广域网间的通信。

  • 寻址:数据链路层中使用的物理地址(如MAC地址)仅解决网络内部的寻址问题。在不同子网之间通信时,为了识别和找到网络中的设备,每一子网中的设备都会被分配一个唯一的地址。由于各子网使用的物理技术可能不同,因此这个地址应当是逻辑地址(如IP地址);

  • 路由算法:当源节点和目的节点之间存在多条路径时,网络层可以根据路由算法,通过网络为数据分组选择最佳路径,并将信息从最合适的路径由发送端传送到接收端;

  • 连接服务:与数据链路层流量控制不同的是,前者控制的是网络相邻节点间的流量,后者控制的是从源节点到目的节点间的流量。其目的在于防止阻塞,并进行差错检测。

            


4). 传输层(transport layer)

  OSI下3层(物理层,数据链路层和网络层)的主要任务是数据通信,上3层(会话层,表示层和应用层)的任务是数据处理,而传输层恰好是OSI模型的第4层,是通信子网和资源子网的接口和桥梁,起到承上启下的作用。该层的主要任务是:向用户提供可靠的端到端的差错和流量控制,保证报文的正确传输。传输层的作用是向高层屏蔽下层数据通信的细节,即向用户透明地传送报文。

  传输协议同时进行流量控制,即基于接收方可接收数据的快慢程度规定适当的发送速率。除此之外,传输层按照网络能处理的最大尺寸将较大的数据进行强制分割(例如,以太网无法接收大于1500字节的数据包),发送方节点的传输层将数据分割成较小的数据片,同时对每一数据片安排一序列号,以便数据到达接收方节点的传输层时,能以正确的顺序重组,这个过程也叫做排序。

            


(1). 任务

  在源端与目的端之间提供可靠的透明数据传输,使上层服务用户不必关系通信子网的实现细节。


(2). 协议

  TCP/IP中的TCP,UDP协议、Novell网络中的SPX协议和微软的NetBIOS/NetBEUI协议。其中,TCP(传输控制协议)具有传输效率低,可靠性强等特点,用于传输可靠性要求高,数据量大的数据;UDP(用户数据报协议)用于传输可靠性要求不高,数据量小的数据,如QQ聊天数据就是通过这种方式传输的。


(3). 功能与服务:

  传输层提供会话层和网络层之间的传输服务,这种服务从会话层获得数据,并在必要时,对数据进行分割。然后,传输层将数据传递到网络层,并确保数据能正确无误地传送到网络层。因此,传输层负责提供两节点之间数据的可靠传送,当两节点的联系确定之后,传输层则负责监督工作。综上,传输层的主要功能如下:

  • 传输连接管理:提供建立、维护和拆除传输连接的功能,传输层在网络层的基础上为高层提供“面向连接”和“面向无接连”的两种服务;
  • 处理传输差错:提供可靠的“面向连接”和不太可靠的“面向无连接”的数据传输服务、差错控制和流量控制。在提供“面向连接”服务时,通过这一层传输的数据将由目标设备确认,如果在指定的时间内未收到确认信息,数据将被重发。

(4). 传输层的特点:

  • 传输层以上各层面向应用,本层及以下各层面向传输;
  • 实现源主机到目的主机“端到端”的连接。

(5). 传输层与网络层的区别

  在协议栈中,传输层位于网络层之上,传输层协议为不同主机上运行的进程提供逻辑通信,而网络层协议为不同主机提供逻辑通信,如下图所示。这个区别很微妙,但是却非常重要,下面的这个网上的例子很好地说明了二者之间的区别。

            

  设想一下有两所房子,一个位于东海岸,而另一个位于西海岸,每所房子里都住着12个小孩。东海岸房子里的小孩和西海岸房子里的小孩是堂兄妹。两所房子里的孩子喜欢互相通信 —— 每个孩子每周都给每一个堂兄妹写一封信,每一封信都由老式的邮局分别用信封来寄,这样,每一家每周就都有144封信要送到另一家(这些孩子如果可以用电子邮件的话就可以省掉很多钱了!)。其中,在每一家中都由一个孩子(西海岸房子里的Ann和东海岸房子里的Bill)负责邮件的收集和分发。所以,每周Ann都从她的兄弟姐妹那里收集起来信件,并将这些信件送到每天都来的邮递服务员那里;当信件到达西海岸的房子时,Ann又将这些信件分发给她的兄弟姐妹。同样地,Bill在东海岸做着同样的工作。

  在这个例子中,邮递服务提供着两所房子之间的逻辑通信,也就是说,邮递服务在两所房子之间传递邮件,而不是针对个人的服务。另一方面,Ann和Bill提供堂兄妹之间的逻辑通信,也就是说,Ann和Bill从他们的兄弟姐妹那里收集邮件并将邮件递送给他们。注意,从这些堂兄妹的角度看,Ann和Bill就是邮件的服务人,尽管他们俩只是端到端寄送服务的一部分(终端系统部分)。那么,在这个例子中,与计算机网络体系结构的对应关系为:

  • 主机(终端系统) <——> 房子
  • 进程 <——> 堂兄妹
  • 应用程序消息 <——> 信封里的信
  • 网络层协议 <——> 邮递服务(包括邮递员)
  • 传输层协议 <——> Ann和Bill

实际上,网络层可以看作是传输层的一部分,其为传输层提供服务。但对于终端系统而言,网络层对它们而言是透明的,它们知道传输层的存在,也就是说,在逻辑上它们认为是传输层为它们提供了端对端的通信,这也是分层思想的妙处。


5). 会话层

  会话层(Session Layer)是OSI模型的第五层,是用户应用程序和网络之间的接口,负责在网络中的两节点之间建立、维持和终止通信。会话层的功能包括:建立通信链接,保持会话过程通信链接的畅通,同步两个节点之间的对话,决定通信是否被中断以及通信中断时决定从何处重新发送。

  有人把会话层称作网络通信的“交通警察”。当通过拨号向你的ISP(因特网服务提供商)请求连接到因特网时,ISP 服务器上的会话层向你与你的PC机上的会话层进行协商连接。若你的电话线偶然从墙上插孔脱落时,你终端机上的会话层将检测到连接中断并重新发起连接。

            


6). 表示层(Presentation Layer)

  表示层是OSI模型的第六层,它对来自应用层的命令和数据进行解释,以确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。例如,PC程序与另一台计算机进行通信,其中一台计算机使用扩展二一十进制交换码(EBCDIC),而另一台则使用美国信息交换标准码(ASCII)来表示相同的字符。这时表示层会实现多种数据格式之间的转换。也就是说,表示层的主要功能是处理用户信息的表示问题,如编码、数据格式转换和加密解密等。表示层的具体功能如下:

  • 数据格式处理:协商和建立数据交换的格式,解决各应用程序之间在数据格式表示上的差异;
  • 数据的编码:处理字符集和数字的转换。例如由于用户程序中的数据类型(整型或实型、有符号或无符号等)、用户标识等都可以有不同的表示方式,因此,在设备之间需要具有在不同字符集或格式之间转换的功能;
  • 压缩和解压缩:为了减少数据的传输量,这一层还负责数据的压缩与恢复;
  • 数据的加密和解密:可以提高网络的安全性。

            


7). 应用层(Application layer)

  应用层(Application Layer)是OSI参考模型的最高层,它是计算机用户以及各种应用程序和网络之间的接口,其功能是直接向用户提供服务并完成用户希望在网络上完成的各种工作。应用层在其他六层工作的基础上,负责完成网络中应用程序与网络操作系统之间的联系,建立与结束使用者之间的联系,并完成网络用户提出的各种网络服务及应用所需的监督、管理和服务等各种协议。此外,该层还负责协调各个应用程序间的工作。

  应用层为用户提供的服务和协议有:文件服务、目录服务、文件传输服务(FTP)、远程登录服务(Telnet)、电子邮件服务(E-mail)、打印服务、安全服务、网络管理服务、数据库服务、域名服务等。上述的各种网络服务由该层的不同应用协议和程序完成,不同的网络操作系统之间在功能、界面、实现技术、对硬件的支持、安全可靠性以及具有的各种应用程序接口等各个方面的差异是很大的。

             


(1). 任务

  为用户的应用进程提供网络通信服务。


(2). 服务

  该层具有的各种应用程序可以完成和实现用户请求的各种服务。


(3). 功能:

  • 用户应用程序与网络间的接口;
  • 使用户的应用程序能够与网络进行交互式联系。

(4). 协议:

OSI: VTP、MHS、FTAM、DS、…

TCP/IP: Telnet、SMTP、FTP、DNS、HTTP、…


三. TCP/IP 四层体系结构

  TCP/IP 是Internet上的标准通信协议集,该协议集由数十个具有层次结构的协议组成,其中TCP和IP是该协议集中的两个最重要的核心协议。TCP/IP协议族按层次可分为以下四层:应用层、传输层、网络层和网络接口层,各层对应的PDU数据单元的名称如下图所示。
            

  特别地,由于TCP/IP四层模型与OSI七层模型在整体上相似(差别主要在于分层的粒度上),因此,我们在此对TCP/IP四层模型进行简述,若读者想进行深入了解,请见上一节。


1). 应用层

  应用层决定了向用户提供应用服务时通信的活动。TCP/IP协议族内预存了各类通用的应用服务,比如 FTP(文件传输协议)和 DNS(域名系统)服务就是其中两类,HTTP 协议也处于该层。
            


2).传输层

  传输层对上层应用层提供处于网络连接中的两台计算机之间的数据传输。在传输层有两个性质不同的协议:TCP(传输控制协议)和 UDP(用户数据报协议)。其中,TCP是面向连接的传输协议,也就是说,其在数据传输之前会建立连接,并把报文分解为多个段进行传输,在目的站再重新装配这些段,必要时重新传输没有收到或错误的,因此它是“可靠”的。而UDP是无连接的传输协议,其在数据传输之前不建立连接,并且对发送的段不进行校验和确认,因此它是“不可靠”的。传输层与应用层之间的关系如下:
            


3).网络层

  网络层用来处理在网络上流动的数据包,其中,数据包是网络传输的最小数据单位。该层规定了通过怎样的路径(所谓的传输路线)到达对方计算机,并把数据包传送给对方。与对方计算机之间通过多台计算机或网络设备进行传输时,网络层所起的作用就是在众多的选项内选择一条传输路线。也就是说,网络层主要功能是把数据报通过最佳路径送到目的端,其中,网际层的核心协议——IP,提供了无连接的数据报传输服务(不保证送达,不保序)。网络层与传输层之间的关系如下:
            


4).网络接口层

  网络接口层用来处理连接网络的硬件部分,包括硬件的设备驱
动、NIC(Network Interface Card,网卡)及光纤等物理可见部分,还包括连接器等一切传输媒介。也就是说,硬件上的范畴均在链路层的作用范围之内。


四. 总结

  计算机网络体系结构标准的制定使得两台计算机能够像两个知心朋友那样能够互相准确理解对方的意思并做出优雅的回应。首先在《计算机网络体系结构(上)》 概述了计算机网络体系结构的提出动机,并结合日常生活中的邮政系统介绍了设计的理念,并给出了相关的基本概念和标准。特别地,笔者着重概述了计算机网络体系结构的分层原理及其最重要的组成部分——协议,使得读者能够对计算网路体系结构有一个全新的、系统的认识。紧接着,在上篇的基础上,我们知道TCP/IP与OSI最大的不同在于OSI是一个理论上的网络通信模型,而TCP/IP则是实际运行的网络协议。本文《计算机网络体系结构(下)》概述了OSI七层参考体系结构和TCP/IP四层协议结构,并对结构中的每层就任务、功能、协议及与其他相似层的区别等几方面做了进一步得解释,力求还原这些典型的网络体系结构的全貌。

  各层协议图: 这里写图片描述


  更多关于计算机网络体系结构的提出动机及相关的基本概念和标准,特别是计算机网络体系结构的分层原理及协议的内涵等内容请见我的博客 《计算机网络体系结构(上)》

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!