1、第2章 计算机网络的协议与体系结构,2.1 计算机网络体系结构的形成,1974年,美国的IBM公司宣布了它研制的系统网络体系结构SNA(System Network Architecture)。现在它是世界上使用得相当广泛的一种网络体系结构。,为了使不同体系结构的计算机网络都能互连,国际标准化组织ISO于1977年成立了专门机构研究该问题。,不久,他们就提出一个试图使各种计算机在世界范围内互连成网的标准框架,即著名的开放系统互连基本参考模型OSI/RM(Open Systems Interconnection Reference Model),简称为OSI。,2.2 协议与划分层次,为进行网络
2、中的数据交换而建立的规则、标准或约定即称为网络协议。一个网络协议主要由以下三个要素组成:,(1)语法,即数据与控制信息的结构或格式;(2)语义,即需要发出何种控制信息,完成何种动作以及做出何种响应;(3)同步,即事件实现顺序的详细说明。,两个计算机可将文件传送模块作为最高的一层(如图2-1所示)。,图2-1 划分层次的举例,分层可以带来如下好处:(1)各层之间是独立的。(2)灵活性好。(3)结构上可分割开。(4)易于实现和维护。(5)能促进标准化工作。,计算机网络的各层及其协议的集合称为网络的体系结构(architecture),也就是说,计算机网络的体系结构就是这个计算机网络及其部件所应完成
3、的功能的精确定义。体系结构是抽象的,而实现则是具体的,是真正在运行的计算机硬件和软件。,2.3 具有五层协议的计算机网络 体系结构,TCP/IP是一个四层的体系结构,它包含应用层、运输层、网际层和网络接口层(用网际层这个名字是强调这一层是为了解决不同网络的互连问题)。,在学习计算机网络的原理时往往采取折中的办法,即综合OSI和TCP/IP的优点,采用一种只有五层协议的体系结构,如图2-2所示,这样既简洁又能将概念阐述清楚TANE03。,图2-2 具有五层协议的计算机网络体系结构,(1)应用层(application layer)应用层是体系结构中的最高层。应用层直接为用户的应用进程提供服务。这
4、里的进程就是指正在运行的程序。,在因特网中的应用层协议很多,如支持万维网应用的HTTP,支持电子邮件的SMTP,支持文件传送的FTP等。,(2)运输层(transport layer)运输层的任务就是负责向两个主机中进程之间的通信提供服务。运输层有复用和分用的功能。,传输控制协议TCP(Transmission Control Protocol)面向连接的,数据传输的单位是报文段(segment),能够保证提供可靠的交付。,用户数据报协议UDP(User Datagram Protocol)无连接的,数据传输的单位是用户数据报,不保证提供可靠的交付,只能提供“尽最大努力交付(best-effo
5、rt delivery)”。,(3)网络层(network layer)网络层负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组或包进行传送。,分组也叫做IP数据报,或简称为数据报。本书以后将“分组”和“数据报”作为同义词使用。无论在哪一层传送的数据单元,习惯上都可笼统地用“分组”来表示。,因特网是一个很大的互联网,它由大量的异构(heterogeneous)网络通过路由器(router)相互连接起来。因特网主要的网络层协议是无连接的网际协议IP(Internet Protocol)和许多种路由选择协议,因此,因特网的网络层也叫做网际层或I
6、P层。,(4)数据链路层(data link layer)常简称为链路层。两个结点之间传送数据时,数据链路层将网络层交下来的IP数据报组装成帧(framing),在两个相邻结点间的链路上“透明”地传送以帧(frame)为单位的数据。每一帧包括数据和必要的控制信息(如同步信息、地址信息、差错控制等)。,“透明”是一个很重要的术语,它表示:某一个实际存在的事物看起来却好像不存在一样。,(5)物理层(physical layer)物理层的任务就是透明地传送比特流。在物理层上所传数据的单位是比特。,在因特网所使用的各种协议中,最重要的和最著名的就是TCP和IP两个协议。现在人们经常提到的TCP/IP并
7、不一定是指TCP和IP这两个具体的协议,而往往是表示因特网所使用的体系结构或是指整个的TCP/IP族(protocol suite)。,图2-3 数据在各层之间的传递过程,OSI参考模型把对等层次之间传送的数据单位称为该层的协议数据单元PDU(Protocol Data Unit),这个名词现已被许多非OSI标准采用。,任何两个同样的层次(例如在两个系统的第4层)之间,也好像如同图中的水平虚线所示的那样,将数据(即数据单元加上控制信息)通过水平虚线直接传递给对方,这就是所谓的“对等层”(peer layers)。,在文献中也还可以见到术语“协议栈”(protocol stack),这是因为几个
8、层次画在一起很像一个栈(stack)的结构。,当研究在开放系统中进行交换信息时,往往使用实体(entity)这一较为抽象的名词表示任何可发送或接收信息的硬件或软件进程。,协议是控制两个对等实体进行通信的规则的集合。在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务,要实现本层协议,还需要使用下面一层所提供的服务。,首先,协议的实现保证了能够向上一层提供服务。使用本层服务的实体只能看见服务而无法看见下面的协议,下面的协议对上面的实体是透明的。,其次,协议是“水平的”,即协议是控制对等实体之间通信的规则,但服务是“垂直的”,即服务是由下层向上层通过层间接口提供的。,计算机网络的协议还有一个很重要的特点,就是协议必须将所有不利的条件事先都估计到,而不能假定一切都是非常理想的。,看一个计算机网络协议是否正确,不能光看在正常情况下是否正确,而且还必须非常仔细地检查这个协议能否应付各种异常情况。,2.4 TCP/IP的体系结构,图2-4 TCP/IP四层协议的表示方法举例,TCP/IP可以为各式各样的应用提供服务(所谓的everything over IP),同时TCP/IP也可以允许IP在各式各样的网络构成的互联网上运行(所谓的IP over everything)。,图2-5 沙漏计时器形状的TCP/IP族,