考研帮 > 专业课 > 复习经验

1.2 计算机网络体系结构与参考模型

1.2.3 ISO/OSI参考模型

  在网络发展的初期,许多研究机构、计算机厂商和公司都大力发展计算机网络,自从ARPANET出现后,市场上已经出现了许多商品化的网络系统。但是这些网络在体系结构上差异很大,以至于它们之间互不相容,难于相互连接以构成更大的网络系统。为此,许多标准化机构积极开展了网络体系结构标准化方面的工作,其中最为著名的就是国际标准化组织(ISO)提出的开放系统互连参考模型(OSI/RM)。ISO/OSI参考模型就是研究如何把开放系统连接起来的。
  OSI参考模型将计算机网络分为7层,如图1-5所示。我们将从底层开始,依次讨论ISO/OSI参考模型各层所要完成的功能。

  1.物理层
  物理层的主要功能是完成相邻节点之间原始比特的传输。物理层协议关心的典型问题是使用什么样的物理信号来表示数据“0”和“1”?数据“0”或“1”持续的比特时间多长?数据传输是否可同时在两个方向上进行?节点之间最初的物理连接是如何建立起来的?完成通信后如何终止连接?物理接口(插头和插座)有多少个接头?各个接头的电气特性和功能特性如何?物理层协议的设计主要涉及物理层接口的机械、电气、功能和过程特性等问题,而且物理层协议的设计涉及通信工程领域内的一些问题。物理层接口的例子有:EIA RS-232、RS-422、RS-530、USB口,以及10Mbps以太网的RJ-45接口及各种光接口。
  2.数据链路层
  数据链路层的主要功能是如何在不可靠的物理线路上保证相邻节点之间数据的可靠传输。为了保证数据传输的可靠性,发送方把高层数据封装成帧(frame),并按顺序发送每个帧。但由于物理线路是不可靠的,因此发送方发出的帧有可能在物理线路上遭到破坏,引起出错,甚至丢失(所谓丢失实际上是数据帧的帧头或帧尾出错),从而导致接收方不能正确接收到数据。为了保证能让接收方正确接收到数据,首先必须让接收方能够对接收到的数据是否正确进行判断,为此发送方为每个数据帧计算检错码(比如CRC)并加入到帧中,这样接收方就可以通过重新计算检错码判断接收到的数据是否正确。如果发送方发送的数据不能被接收方正确接收,则发送方必须重传该数据。然而,相同数据帧的多次重传也可能使接收方收到重复帧,因此数据链路层还必须解决由于帧的损坏、丢失和重发所带来重复帧的问题。
  数据链路层要解决的另一个问题是防止发送方的发送数据速度快于接收方接收数据的速度,这样有可能引起数据的丢失。因此在数据链路层需要某种机制来协调发送方和接收方之间的收发速度。
  对于局域网来说,数据链路层又分为逻辑链路控制(Logical Link Control,LLC)子层和介质访问控制(Media Access Control,MAC)子层。在局域网中,逻辑链路控制子层的功能相当于数据链路层的功能,用于提供两个节点之间的可靠数据传输;而介质访问控制子层则用于控制局域网中多个节点如何访问共享介质。
  3.网络层
  网络层的主要功能是完成网络中不同主机之间的数据传输。网络层之间交换的数据单元一般用报文(packet)来表示。在网络中的两台主机之间可能存在不止一条路径,因此网络层涉及的关键问题是如何为源主机和目的主机选择一条合适的路径,以保证源主机发送的报文可以及时地到达目的主机,这就是路由选择(routing)。
  网络层需要解决的另外一个关键问题是:如何防止主机将过多的报文注入网络,从而引起网络拥挤,造成报文传输的延迟过大,甚至造成报文的丢失,这就是拥塞控制。
  最后,当一个网络系统中有多个不同的物理网络时,如何将这些不同的网络连接起来,这涉及网络互联问题。
  4.传输层
  传输层的主要功能是完成网络中不同主机上用户进程之间的数据通信。传输层之间交换的数据单元一般用报文段(segment)来表示。传输层要决定对网络到底能够向上提供什么样的服务。传输层可以提供可靠的数据通信,也可以提供不可靠的数据通信。传输层协议是端到端(end-to-end)的,即传输层协议是支持端用户进程之间进行数据通信的。而在传输层以下的各层中,各层协议是每个节点与它的直接相邻节点之间(主机―IMP、IMP―IMP)的协议,而不是最终的源主机和目的主机之间(主机―主机)的协议。也就是说,在ISO/OSI参考模型中,物理层、数据链路层和网络层协议都是跳到跳(hop-by-hop)协议,而从传输层开始都是采用端到端(end-to-end)协议。
  由于目前绝大多数机器都采用多用户操作系统,因此一台机器上会同时运行多个用户进程,这意味着需要某种命名机制,使机器内的进程能够说明清楚它希望与哪台机器的哪个进程建立传输连接。另外,传输层协议还必须引入流量控制机制,以避免发送方主机发送数据速度过快而导致接收方主机来不及处理,从而造成数据丢失。
  5.会话层
  会话层允许不同机器上的用户之间建立会话关系。会话层允许进行类似传输层的普通数据的传送,在某些场合还提供了一些有用的增值服务。会话层允许用户利用一次会话在远端的分时系统上登录,或者在两台机器间传输文件。
  会话层提供的服务之一是会话管理。有些网络服务允许信息双向同时传输(类似于物理信道上的全双工模式),而有些服务只允许信息单向传输(类似于物理信道上的半双工模式),此时,会话层将进行有效控制。一般采取的会话控制方式是令牌管理(token management),会话层通过让令牌在会话双方之间来回移动,任何一方想发送数据必须首先持有令牌,这样双方可以通过交替拥有令牌来实现数据的半双工传输。
  会话层提供的另一种服务是同步。例如,在每隔一段时间就有可能出现故障的网络上,两台机器间要进行长时间的文件传输,在每一次的文件传输过程中都会由于网络故障,而不得不重传整个文件。为了解决这个问题,会话层提供数据传输过程中插入同步点的服务,这样每当网络出现故障后,发送方只需要重传最后一个同步点以后的数据即可,而不需要重传整个文件。当然,如果网络中没有会话层提供的增值服务,主机之间的数据通信仍然是可以正常进行的。
  6.表示层
  表示层主要负责处理两个通信系统中交换信息的表示方式。表示层以下各层只关心如何将源主机上某应用进程的数据可靠地传送到目的主机上的应用进程;而表示层关心的是用户进程所传送数据的语法格式和语义(含义或意义)。
  表示层提供的典型服务是对数据进行统一编码。大多数用户程序之间并非交换任意组合的比特串,而是交换诸如人名、日期、货币数量和发票之类的数据,甚至是音频、视频等多媒体数据。这些数据对象用字符串、整型数、浮点数的形式来表示,或者由几种简单类型组成的复杂数据结构来表示。
  另外,不同的计算机可能采用不同的数据表示方式,所以需要在数据传输时进行数据格式的转换。例如,不同的机器可能会用不同的代码来表示字符串(比如大部分计算机是用ASCII码来表示的,但是有些早期的计算机可能是用其他编码来表示的),采用不同字节顺序来存放数据等。为了让采用不同数据表示法的计算机之间能够相互通信并交换数据,我们可以在数据通信过程中使用抽象的数据结构来(比如用ISO提供的抽象语法表示ASN.1)抽象地表示要传送的数据,而在机器内部仍然采用各自的编码方式。管理这些抽象数据结构,并在发送方将机器的内部编码转换为适合网上传输的传送语法,以及在接收方做相反的转换工作都是由表示层来完成的。
  
  7.应用层
  应用层是用户与网络的接口。应用层支持各种不同的网络应用,而每种网络应用都使用不同的应用层协议。
  比如,PC用户通过使用仿真终端软件可以远程登录到某台主机中使用该远程主机的资源。这个仿真终端程序通过虚拟终端协议将PC键盘输入的信息传送到远程主机,由远程主机来解释键盘命令并执行,同时将结果回送到PC的屏幕上。
  再比如,当某个用户想要获得远程计算机上的一个文件复制时,他要向本机的文件传输软件发出请求,这个软件与远程计算机上的文件传输进程通过文件传输协议进行通信,这个协议主要处理文件名、用户许可状态和其他文件访问等细节。
  值得注意的是,ISO/OSI参考模型本身不是网络体系结构的全部内容,这是因为它并未确切地描述用于ISO/OSI参考模型各层的协议,而仅仅规定ISO/OSI参考模型每一层必须完成的功能。不过,ISO为各层制定了相应的标准,但这些标准并不是ISO/OSI参考模型的一部分,它们是作为独立的国际标准发布的,只是目前OSI协议标准已经不大引用了。

关于"最后阶段,真题的正确打开方式_备考经验_考研帮"15名研友在考研帮APP发表了观点

扫我下载考研帮

考研帮地方站更多

你可能会关心:

来考研帮提升效率

× 关闭