摘要:
我们知道TCP/IP与OSI最大的不同在于OSI是一个理论上的网络通信模型,而TCP/IP则是实际上的网络通信标准。
在上篇《计算机网络体系结构综述(上)》的基础上,本文着重概述了两种典型的层次化网络体系机构 —— OSI七层參考体系结构和TCP/IP四层协议结构,并对每种体系结构中的各层就任务、功能、协议及与其它类似层的差别等几方面做了进一步得介绍,力求还原这些典型的网络体系结构的全貌。
友情提示:
为了更好地了解计算机网络体系结构,笔者以两篇博客的篇幅来介绍这个计算机网络中最为重要的知识点。即:《计算机网络体系结构综述(上)》 和 《计算机网络体系结构综述(下)》。在本文,我们概述了计算机网络体系结构的提出动机。并结合日常生活中的邮政系统介绍了设计的理念,并给出了相关的基本概念和标准,并着重介绍了计算机网络体系结构的分层原理及协议的内涵。
在此基础上,本篇的姊妹篇《计算机网络体系结构综述(下)》详尽地介绍了两种典型的计算机网络系统结构标准:OSI七层模型与TCP/IP四层模型。
Ps:读者强烈建议读者在阅读本篇博文前,先阅读其姊妹篇《计算机网络体系结构综述(上)》 ,因为二者之间关联性非常强。
通过对《计算机网络体系结构综述(上)》 的阅读。相信读者会对OSI七层模型与TCP/IP四层模型有一个更加深刻、全面的认识。
一. 计算机网络系统结构标准概述
最早的计算机网络体系结构源于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 server上的会话层向你与你的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四层协议结构,并对结构中的每层就任务、功能、协议及与其它类似层的差别等几方面做了进一步得解释,力求还原这些典型的网络体系结构的全貌。
各层协议图:
五. 很多其它
很多其它关于计算机网络体系结构的提出动机及相关的基本概念和标准。特别是计算机网络体系结构的分层原理及协议的内涵等内容请见我的博客 《计算机网络体系结构综述(上)》 。
引用
计算机网络体系结构
OSI七层模型详细解释
TCP/IP四层模型和OSI七层模型的概念
传输层 和网络层的差别