2.1 OSI参考模型的基本概念

OSI中的“开放”是指只要遵循OSI标准,一个系统就可以与位于世界上任何地方、同样遵循同一标准的其他任何系统进行通信。在OSI标准的制定过程中,采用的方法是将整个庞大而复杂的问题划分为若干个容易处理的小问题,这就是分层的体系结构方法。在OSI标准中,采用的是3级抽象:
①体系结构(architecture);
②服务定义(service definition);
③协议规范(protocol specifications)。
OSI参考模型定义了开放系统的层次结构、层次之间的相互关系及各层所包括的可能的服务。它是作为一个框架来协调和组织各层协议的制定,也是对网络内部结构最精炼的概括与描述。
OSI的服务定义详细地说明了各层所提供的服务。某一层的服务就是该层及其以下各层的一种能力,它通过接口提供给更高一层。各层所提供的服务与这些服务是怎样实现的无关。同时,各种服务定义还定义了层与层之间的接口与各层使用的原语,但不涉及接口是怎样实现的。
OSI参考标准中的各种协议精确地定义了应当发送什么样的控制信息,以及应当用什么样的过程来解析这个控制信息。协议的规程说明具有最严格的约束。
OSI参考模型并没有提供一个可以实现的方法。OSI参考模型只是描述了一些概念,用来协调进程间通信标准的制定。在OSI的范围内,只有各种的协议是可以实现的,而各种产品只有和OSI的协议相一致时才能互联。也就是说,OSI参考模型并不是一个标准,而是一个在制定标准时所使用的概念性的框架

2.2 OSI参考模型的结构

OSI是分层体系结构的一个实例,每一层是一个模块,用于执行某种主要功能,并具体有自己的一套通信指令格式(称为协议)。用于相同层的两个功能之间通信的协议成为对等协议。根据分而治之的原则,ISO将整个通信功能划分为7个层次,划分层次的主要原则是:
l 网中各结点都具有相同的层次;
l 不同结点的同等层具有相同的功能;
l 同一结点内相邻层之间通过接口通信;
l 每一层可以使用下层提供的服务,并向其上层提供服务;
l 不同结点的同等层通过协议来实现对等层之间的通信。
OSI参考模型的结构如图所示。将信息从一层传送到下一层是通过命令方式实现的,这里的命令称为原语(primitive)。被传送的信息成为协议数据单元(protocol data unit,PDU)。在PDU进入下层之前,会在PDU中加入新的控制信息,这种控制信息称为协议控制信息(protocol control information,PCI)。接下来,会在PDU中加入发送给下层的指令,这些指令称为接口控制信息(interface control information,ICI)。PDU、PCI与ICI共同组成了接口数据单元(interface data unit,IDU)。下层接收到IDU后,就会就从IDU中去掉ICI,这时的数据包被称为服务数据单元(service data unit,SDU)。随着SDU一层层向下传送,每一层都要加入自己的信息。下图中的CCP指的是通信控制处理机

clip_image002

2.3 OSI参考模型各层的功能

1.物理层

2.数据链路层
在OSI参考模型中,.数据链路层(data link layer)是参考模型的第2层。.数据链路层的主要功能是:在物理层提供的服务基础上,.数据链路层在通信的实体间建立.数据链路连接,传输以帧为单位的数据包,并采用差错控制与流量控制方法,使有差错的物理线路变成无差错的.数据链路

3.网络层
在OSI参考模型中,.数据链路层(data link layer)是参考模型的第2层。.数据链路层的主要功能是:在物理层提供的服务基础上,.数据链路层在通信的实体间建立.数据链路连接,传输以帧为单位的数据包,并采用差错控制与流量控制方法,使有差错的物理线路变成无差错的.数据链路。

4.传输层
在OSI参考模型中,传输层(transport layer)是参考模型的第4层。传输层的主要功能是:向用户提供可靠的端到端(end-to-end)服务。传输层向高层屏蔽了下层数据通信的细节,因此,它是计算机通信体系结构中关键的一层。

5.会话层
在OSI参考模型中,会话层(session layer)是参考模型的第5层。会话层的主要功能是:负责维护两个结点之间会话连接的建立、管理和终止,以及数据的交换

6.表示层
在OSI参考模型中,表示层(presentation layer)是参考模型的第6层。表示层的主要功能是:用于处理在两个通信系统中交换信息的表示方式,主要包括数据格式变换、数据加密与解密、数据压缩与恢复等功能。

7.应用层
在OSI参考模型中,应用层(application layer)是参考模型的最高层。应用层的主要功能是:为应用程序提供网络服务。应用层需要识别并保证通信对方的可用性,使得协同工作的应用的程序之间同步,建立传输错误纠正与保证数据完整性控制机制。

2.4 OSI环境中数据传输过程

clip_image003

图2-4给出了OSI 环境中数据流。从图2-4中可以看出,OSI 环境中数据传输过程包括以下几步。
(1) 当应用进程A 的数据传送到应用层时,应用层为数据加上本层控制报头后,组织成应用层的数据服务单元,然后再传输到表示层。
(2) 表示层接收到这个数据单元后,加上本层的控制报头,组成表示层的数据服务单元,再传送到会话层。依此类推,数据传送到传输层。
(3) 传输层接收到这个数据单元后,加上本层的控制报头,就构成了传输层的数据服务单元,它被称为报文(message)。
(4) 传输层的报文传送到网络层时,由于网络层数据单元的长度有限制,传输层报文将被分成多个较短的数据字段,加上网络层的控制报头,就构成网络层的数据服务单元,它被称为分组(packet)。
(5) 网络层的分组传送到数据链路层时,加上数据链路层的控制信息,就构成了网络层的数据服务单元,它被称为帧(frame)。
(6) 数据链路层的帧传送到物理层后,物理层将以比特流的方式通过传输介质传输出去。当比特流到达目的结点计算机B 时,再从物理层依层上传,每层对各层的控制报表进行处理,将用户数据上交高层,最终将进程A 的数据送给计算机B的进程B。
尽管应用进程A 的数据在OSI 环境中经过复杂的处理过程,才能送到另一台计算机的应用进程B ,但对于每台计算机的应用进程来说,OSI 环境中数据流的复杂处理过程是透明的。应用进程A 的数据好像是“直接”传送给应用进程B ,这就是开放系统在网络通信过程中最本质的作用

2.3TCP/IP协议栈
因特网的协议栈由5个层次组成:物理层、数据链路层、网络层、运输层和应用层。对于5层中的每层,我们不再使用不方便的术语n-PDU,而为5层中的4层中的PDU给定特殊的名字:帧、数据报、报文段和报文。我们不对物理层的数据单元命名,因为在该层通常不使用名字。因特网协议栈及其对应PDU名字如图3.3所示。
协议层能够以软件、硬件或以两者结合的方式实现。应用层协议如HTTP和SMTP总是在端系统中用软件来实现:运输层协议也是这样。因为物理层和数据链路层负责处理跨越链路的通信,它们通常是在与该给定链路相关的网络接口卡(例如,以太网或ATM接口卡)中实现的。网络层通常是用硬件和软件混合实现的。现在我们总结因特网层次和它们提供的服务。
应用层
应用层负责支持网络应用程序。该应用层包括许多协议,包括支持Web的HTTP、支持电子邮件的SMTP和支持文件传送的FTP等。我们将在第2章中看得,创建我们自己的新应用层协议是非常容易的。
运输层
运输层提供了在应用程序的客户机和服务器之间传输应用层报文的服务。在因特网中有两个运输层协议,即TCP和UDP,利用其中的任一个都能运输应用层报文。TCP向它的应用程序提供了面向连接的服务。这种服务包括了应用层报文向目的地的确保传递和流量控制(即发送方/接收方速率匹配)。TCP也向它的应用程序提供无连接服务,这是一种非常基本的服务。
网络层
网络层负责为数据报从一台主机传输到另一台主机选路。因特网的网络层具有两个重要的部分。它具有定义IP数据报各个域以及端系统和路由器如何作用于这些域的协议。该协议是著名的IP协议。IP协议仅有一个,所以具有网络层的因特网部件必须运行IP协议。因特网的网络层也包括决定路由器的选路协议,它使得数据报根据该路由从源传输到目的地。因特网具有许多选路协议。如我们在1.3节所见,因特网是一个网络的网络,在一个网络中,其网络管理者能够运行所希望的任何选路协议。尽管网络层包括了IP协议和一些选路协议,它经常只被称为IP协议,这反映了IP是将因特网连接在一起的粘合剂这样一个事实。
链路层
网络层通过一系列分组交换机(在因特网中称为路由器)在源和目的地之间发送分组。想将分组从一个节点(主机或分机交换机)移动到路由上的下一个节点,该网络层必须依靠该链路层的服务。特别是在每一个节点,网络层将数据报下传给链路层,该链路层沿着路由将该数据报传递给下一个节点。在该下个节点,链路层将数据报上传给网络层。
由链路层提供的服务依赖于该链路的特定链路层协议。例如,某些协议在链路的基础上提供了可靠的传递,在链路的基础上是指,从传输节点跨越一条链路再到接收节点。注意这种可靠传递服务不同于TCP的可靠传递服务,TCP是为从一个端系统到另一个端系统提供可靠传递的。链路层的例子包括以太网和PPP:在某些情况下,ATM和帧中继也能够被认为是链路层。因为数据报从源到目的地传送通常需要经过几条链路,数据报可能被沿途不同的链路上的不同的链路层协议处理。例如,数据报可能被因特网和后继链路上的PPP处理。该网络层将接受来自每个不同的链路层协议的不同服务。
物理层
链路层的任务上从一个网络单元向临近的网络单元移动整个帧,而物理层的任务是将该帧中的单个比特从一个节点移动到下一个节点。这层中的协议仍然是链路相关的,并且进一步与该链路(例如,双绞铜线、光纤)的实际传输媒体相关。例如,以太网具有许多物理层协议:一个是关于双绞铜线的,另一个是关于同轴电缆的,还有一个是关于光纤的等。在这些链路移动一个比特一个比特时,采用的协议不同,其方式也不同。
如果我们分析本书的目录,将会发现我们大致地使用了因特网协议栈的层次组织了这本书。我们采用的是自顶向下方法(top-down approach),首先讨论应用层,然后向下进行学习。

3.1 TCP/IP参考模型的层次
在如何使用分层模型来描述TCP/IP的问题上争论很多,但共同的观点是TCP/IP的层次数比OSI参考模型的7层要少.图2-5给出TCP/IP参考模型,以及与OSI参考模型的层次对应关系。
TCP/IP参考模型可以分为4个层次:
应用层(application layer);
传输层(transport layer);
互联网络层(internet layer);
主机-网络层(host to network layer)。
其中,TCP/IP参考模型的应用层与OSI参考模型的应用层相对应,TCP/IP参考模型的传输层与OSI参考模型的传输层相对应,TCP/IP参考模型的互联网络层与OSI参考模型的网络相对应,TCP/IP参考模型的主机-网络层与OSI参考模型的数据链路层和物理层相对应。在TCP/IP参考模型中,对OSI参考模型的表示层、会话层没有对应的协议。
(1)主机-网络层
在TCP/IP参考模型中,主机-网络层是参考模型的最低层,它负责通过网络发送和接收IP数据报。TCP/IP参考模型允许主机连入网络时使用多种现成的与流行的协议,例如局域网协议或其他一些协议。
在TCP/IP的主机-网络层中,它包括各种物理网协议,例如局域网的Ethernet、局域网的Token Ring、分组交换网的X.25等。当这种物理网被用作传送IP数据包的通道时,我们就可以认为是这一层的内容。这体现了TCP/IP协议的兼容性与适应性,它也为TCP/IP的成功奠定了基础。
(2)互联网络层
在TCP/IP参考模型中,互联网络层是参考模型的第二层,它相当于OSI参考模型网络层的无连接网络服务。互联网络层负责将源主机的报文分组发送到目的主机,源主机与目的主机可以在一个网上,也可以在不同的网上。
互联网络层的主要功能包括以下几点。
①处理来自传输层的分组发送请求。在收到分组发送请求之后,将分组装入IP数据报,填充抱头,选择发送路径,然后将数据报发送到相应的网络输出线。
②处理接收的数据报。在接收到其他主机发送的数据报之后,检查目的地址,如需要转发,则选择发送路径,转发出去;如目的地址为本结点IP地址,则除去抱头,将分组交送传输层处理。
③处理互联的路径、流程与拥塞问题。
TCP/IP参考模型中网络层协议是IP(Internet Protrol)协议。IP协议是一种不可靠、无连接的数据报传送服务的协议,它提供的是一种“尽力而为(best-effort)”的服务,IP协议的协议数据单元是IP分组。
(3)传输层
在TCP/IP参考模型中,传输层是参考模型的第3层,它负责在应用进程之间的端到端通信。传输层的主要目的是在互联网中源主机与目的主机的对等实体间建立用于会话的端到端连接。从这点上来说,TCP/IP参考模型与OSI参考模型的传输层功能是相似的。
在TCP/IP参考模型中的传输层,定义了以下这两种协议。
①传输控制协议(transmission control protocol,,TCP)
TCP协议是一种可靠的面向连接的协议,它允许将一台主机的字节流(byte stream)无差错的传送到目的主机。TCP协议将应用层的字节流分成多个字节段(byte segment),然后将一个个的字节段传送到互联网络层,发送到目的主机。当互联网络层将接收到的字节段传送给传输时,传输层再将多个字节段还原成字节流传送到应用层。TCP协议同时要完成流量控制功能,协调收发双方的发送与接收速度,达到正确传输的目的。
②用户数据协议(user datagram protocol,UDP)
UDP协议是一种不可靠的无连接协议,它主要用于不要求分组顺序到达的传输中,分组传输顺序检查与排序由应用层完成。
(4)应用层
在TCP/IP参考模型中,应用层是参考模型的最高层。应用层包括了所有的高层协议,并且总是不断有新的协议加入。目前,应用层协议主要有以下几种:
①远程登录协议(Telnet);
②文件传送协议(file transfer protocol,FTP);
③简单邮件传送协议(simple mail ttransfer protocol,SMTP);
④域名系统(domain name system,DNS);
⑤简单网络管理协议(simple network management protocol,SNMP);
⑥超文本传送协议(hyper text transfer protocol,HTTP).

3.2 TCP/IP参考模型各层的功能

应用层
应用层负责支持网络应用程序.该应用层包括许多协议,包括支持Web的HTTP、支持电子邮件的SMTP和支持文件传送的FTP等。我们将在第2章中看到,创建我们自己的新应用层协议是非常容易的。
运输层
运输层提供了在应用程序的客户机和服务器之间传输应用层报文的服务。在因特网中有两个运输协议,即TCP和UDP,利用其中的任一个都能运输应用层报文。TCP向它的应用程序提供了面向连接的服务。这种服务包括了应用层报文向目的地的确保传递和流量控制(即发送方/接收方速率匹配)。TCP也将长报文划分为短报文,并提供拥塞控制机制,因此当网络拥塞时,源抑制其传输速率。UDP协议向它的应用程序提供无连接服务,这是一种非常基本的服务。
网络层
网络层负责为数据报从一台主机传输到另一台主机选路。因特网的网络层具有两个重要的部分。它具有定义IP数据报各个域以及端系统和路由器如何作用于这些域的协议。该协议是著名的IP协议。IP协议仅有一个,所有具有网络层的因特网部件必须运行IP协议。因特网的网络层也包括决定路由的选路协议,它使得数据报根据该路由从源传输到目的地。因特网具有许多选路协议。如我们在1.3节所见,因特网是一个网络的网络,在一个网络中,其网络管理者能够运行所希望的任何选路协议。尽管网络层包括了IP协议和一些选路协议,它经常只被称为IP协议,这反映了IP是将因特网连接在一起的粘合剂这样一个事实。
链路层
网络层通过一系列分组交换机(在因特网中称为路由器)在源和目的地之间发送分组。想将分组从一个节点(主机或分组交换机)移动到路由上的下一个节点,该网络层必须依靠该链路层的服务。特别是在每个节点,网络层将数据报下传给链路层,该链路层沿着路由将数据报传递给下一个节点。在该下个节点,链路层将数据报上传给网络层。
由链路层提供的服务依赖于该链路的特定链路层协议。例如,某些协议在链路的基础上提供了可靠的传递,在链路的基础上是指,从传输节点跨越一条链路再到接收节点。注意这种可靠传递服务不同于TCP的可靠传递服务,TCP是为从一个端系统到另一个端系统提供可靠传递的。链路层的例子包括以太网和PPP:在某些情况下,ATM和帧中也能够被认为是链路层。因为数据报从源到目的地传送通常需要经过几条链路,数据报可能被沿途不同的链路层协议处理。例如,数据报可能被以太网和后继链路上的PPP处理。该网络层将接受来自每个不同的链路层协议的不同服务。
物理层
链路层的任务是从一个网络单元向临近的网络单元移动整个帧,而物理层的任务是将该帧中的单个比特从一个节点移动到下一个节点。这层中的协议仍然是链路相关的,并且进一步与该链路(例如,双绞铜线、单模光纤)的实际传输媒体相关。例如,以太网具有许多物理层协议:一个是关于双绞铜线的,另一个是关于同轴电缆的,还有一个是关于光纤的等。在这些链路移动一个比特一个比特时,采用的协议不同,其方式也不同。
如果我们分析本书的目录,将会发现我们大致地使用了因特网协议栈的层次组织了这本书。我们采用的是自顶至下方法,首先讨论应用层,然后向下进行学习

clip_image004