第2章 计算机网络的协议与体系结构 2.1 计算机网络体系结构的形成 2.2 协议与划分层次 2.3 计算机网络的原理体系结构 第2章 计算机网络的协议与体系结构 2.1 计算机网络体系结构的形成 2.2 协议与划分层次 2.3 计算机网络的原理体系结构 2.4 OSI与TCP/IP体系结构的比较 2.5 客户–服务器方式 退出
2.1 计算机网络体系结构的形成 1974年,美国的IBM公司宣布了它研制的系统网络体系结构SNA (System Network Architecture)。现在它是世界上使用得相当广泛的一种网络体系结构。 为了使不同体系结构的计算机网络都能互连,国际标准化组织ISO于1977年成立了专门机构研究该问题。不久,他们就提出一个试图使各种计算机在世界范围内互连成网的标准框架,即著名的开放系统互连基本参考模型OSI/RM (Open Systems Interconnection Reference Model),简称为OSI。
2.2 协议与划分层次 为进行网络中的数据交换而建立的规则、标准或约定即称为网络协议。一个网络协议主要由以下三个要素组成: 2.2 协议与划分层次 为进行网络中的数据交换而建立的规则、标准或约定即称为网络协议。一个网络协议主要由以下三个要素组成: (1)语法,即数据与控制信息的结构或格式; (2)语义,即需要发出何种控制信息,完成何种动作以及做出何种响应; (3)同步,即事件实现顺序的详细说明。 两个计算机可将文件传送模块作为最高的一层(如图2-1所示)。
分层可以带来如下好处: (1)各层之间是独立的。 (2)灵活性好。 (3)结构上可分割开。 (4)易于实现和维护。 (5)能促进标准化工作。
计算机网络的各层及其协议的集合称为网络的体系结构(architecture),也就是说,计算机网络的体系结构就是这个计算机网络及其部件所应完成的功能的精确定义。体系结构是抽象的,而实现则是具体的,是真正在运行的计算机硬件和软件。
2.3 计算机网络的原理体系结构 2.3.1 从OSI体系结构到原理体系结构 2.3 计算机网络的原理体系结构 2.3.1 从OSI体系结构到原理体系结构 OSI的七层协议体系结构既复杂又不实用,但其概念清楚,体系价格低廉,理论较完整。TCP/IP的协议现在得到了全世界的承认,但它实际上并没有一个完整的体系结构。TCP/IP是一个四层的体系结构,它包含应用层、运输层、网际层和网络接口层。
但从实质上讲,TCP/IP只有三层,即应用层、运输层和网际层,因为最下面的网络接口层并没有什么具体内容。因此在学习计算机网络的原理时往往采取折衷的办法,也就是综合OSI和TCP/IP的优点,采用一种原理体系结构,它只有五层(如图2-2所示),这样既简洁又能将概念阐述清楚[TANE96]。
1.应用层(application layer) 应用层是原理体系结构中的最高层。应用层确定进程之间通信的性质以满足用户的需要(这反映在用户所产生的服务请求)。 2.运输层(transport layer) 运输层的任务就是负责主机中两个进程之间的通信,其数据传输的单位是报文段(segment)。运输层具有复用(multiplexing)和分用(demultiplexing)的功能。 因特网的运输层可使用两种不同协议。即面向连接的传输控制协议TCP (Transmission Control Protocol),和无连接的用户数据报协议UDP (User Datagram Protocol)。
3.网络层(network layer) 网络层负责为分组交换网上的不同主机提供通信。在网络层,数据的传送单位是分组或包。在TCP/IP体系中,分组也叫作IP数据报,或简称为数据报。
4.数据链路层(data link layer) 数据链路层的任务是在两个相邻结点间的线路上无差错地传送以帧(frame)为单位的数据。每一帧包括数据和必要的控制信息。数据链路层有时也常简称为链路层。 数据链路层就把一条有可能出差错的实际链路,转变成为让网络层向下看去好像是一条不出差错的链路。
5.物理层(physical layer) 物理层的任务就是透明地传送比特流。 “透明”是一个很重要的术语。它表示:某一个实际存在的事物看起来却好像不存在一样。 图2-3说明的是应用进程的数据在各层之间的传递过程中所经历的变化。这里为简单起见,假定两个主机是直接相连的。
不要误认为“从计算机1向计算机2传送数据时,是先传送数据部分或尾部,而最后传送首部。” 在OSI参考模型中,在对等层次上传送的数据,其单位都称为该层的协议数据单元PDU (Protocol Data Unit)。 在文献中也还可以见到术语“协议栈”(protocol stack)。这是因为几个层次画在一起很像一个栈(stack)。
2.3.2 实体、协议、服务和服务访问点 实体(entity)这一名词表示任何可发送或接收信息的硬件或软件进程。 协议是控制两个对等实体进行通信的规则的集合。 在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。要实现本层协议,还需要使用下面一层所提供的服务。
一定要弄清楚,协议和服务在概念上是很不一样的。 首先,协议的实现保证了能够向上一层提供服务。本层的服务用户只能看见服务而无法看见下面的协议。下面的协议对上面的服务用户是透明的。 其次,协议是“水平的”,即协议是控制对等实体之间通信的规则。但服务是“垂直的”,即服务是由下层向上层通过层间接口提供的。上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令在OSI中称为服务原语。
在同一系统中相邻两层的实体进行交互(即交换信息)的地方,通常称为服务访问点SAP (Service Access Point)。 OSI将层与层之间交换的数据的单位称为服务数据单元SDU (Service Data Unit) 在任何相邻两层之间的关系可概括为图2-4所示的那样。在服务提供者的上一层的实体,也就是“服务用户”,它使用服务提供者所提供的服务。
2.3.3 面向连接服务与无连接服务 从通信的角度看,各层所提供的服务可分为两大类,即面向连接的(connection-oriented)与无连接的(connectionless)。 1.面向连接服务 所谓连接,就是两个对等实体为进行数据通信而进行的一种结合。面向连接服务是在数据交换之前,必须先建立连接。当数据交换结束后,则应终止这个连接。 面向连接服务具有连接建立、数据传输和连接释放这三个阶段。 面向连接服务在网络层中又称为虚电路服务。
2.无连接服务 在无连接服务的情况下,两个实体之间的通信不需要先建立好一个连接,因此其下层的有关资源不需要事先进行预定保留。这些资源将在数据传输时动态地进行分配。 无连接服务的另一特征就是它不需要通信的两个实体同时是活跃的(即处于激活态)。 (1)数据报(datagram)。 (2)证实交付(confirmed delivery)。 (3)请求回答(request-reply)。
2.4 OSI与TCP/IP体系结构的比较 OSI参考模型中采用了七个层次的体系结构,将原理体系结构中的应用层再划分为应用层、表示层和会话层。 图2-5画出了TCP/IP与OSI这两种体系结构的对比。
在一些问题的处理上,TCP/IP与OSI是很不相同的。 在讨论两个主机通过两个网络互连在一起时,可以使用如图2-6所示的层次关系。
还有一种方法,就是用按层次高低的一些协议来表示TCP/IP协议族,如图2-7所示。
2.5 客户–服务器方式 在TCP/IP的进程之间的通信经常使用客户–服务器方式。 2.5 客户–服务器方式 在TCP/IP的进程之间的通信经常使用客户–服务器方式。 应用层协议并不是解决用户各种具体应用的协议,而是为最终用户提供服务。为了解决具体的应用问题而彼此通信的进程就称为“应用进程”。而应用层的具体内容就是规定应用进程在通信时所遵循的协议。 客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。
1.客户软件 客户软件和服务器软件通常还具有以下一些主要特点。 (1)在进行通信时临时成为客户,但它也可在本地进行其他的计算。 (2)被用户调用,在用户的计算机上运行,在打算通信时主动向远地服务器发起通信。 (3)可与多个服务器进行通信。 (4)不需要特殊的硬件和很复杂的操作系统。
2.服务器软件 (1)是一种专门用来提供某种服务的程序,可同时处理多个远地客户的请求。 (2)在共享计算机上运行。当系统启动时即自动调用,且不断地运行着。 (3)被动地等待并接受来自多个客户的通信请求。 (4)一般需要强大的硬件和高级的操作系统支持。 客户与服务器的通信关系一旦建立,通信就可是双向的,客户和服务器都可发送和接收信息。大多数的应用进程都是使用TCP/IP协议进行通信。图2-8画出了这种情况。
功能较强的计算机可同时运行多个服务器进程(如图2-9中的计算机3)。 由于运行服务器进程的机器往往有许多特殊的要求(不同于普通的PC机),因此经常将主要运行服务器进程的机器(硬件)不严格地称为服务器。