1、第二章 计算机网络的协议与体系结构n本章内容:1.网络体系结构与协议概念 2.协议层次划分 3.五层协议的网络体系结构 4.数据在各层之间传递过程 5.TCP/IP的体系结构2.1 计算机网络体系结构的形成n1974年,美国的IBM公司宣布了它研制的系统网络体系结构SNA(System Network Architecture)。现在它是世界上使用得相当广泛的一种网络体系结构。n为了使不同体系结构的计算机网络都能互连,国际标准化组织ISO于1977年成立了专门机构研究该问题。不久,他们就提出一个试图使各种计算机在世界范围内互连成网的标准框架,即著名的开放系统互连基本参考模型OSI/RM(Ope
2、n Systems Interconnection Reference Model),简称为OSI。关于开放系统互连参考模型OSI/RMn只要遵循 OSI 标准,一个系统就可以和位于世界上任何地方的、也遵循这同一标准的其他任何系统进行通信。n在市场化方面 OSI 却失败了。nOSI 的专家们在完成 OSI 标准时没有商业驱动力;nOSI 的协议实现起来过分复杂,且运行效率很低;nOSI 标准的制定周期太长,因而使得按 OSI 标准生产的设备无法及时进入市场;nOSI 的层次划分并也不太合理,有些功能在多个层次中重复出现。两种国际标准n法律上的(de jure)国际标准 OSI 并没有得到市场的
3、认可。n是非国际标准 TCP/IP 现在获得了最广泛的应用。nTCP/IP 常被称为事实上的(de facto)国际标准。2.2 协议与划分层次n计算机网络中的数据交换必须遵守事先约定好的规则。n这些规则明确规定了所交换的数据的格式以及有关的同步问题(同步含有时序的意思)。n为进行网络中的数据交换而建立的规则、标准或约定即网络协议(network protocol),简称为协议。网络协议的组成要素 n语法:数据与控制信息的结构或格式。n语义:需要发出何种控制信息,完成何种动作以及做出何种响应。n同步:事件实现顺序的详细说明。划分层次的概念举例 n计算机 1 向计算机 2 通过网络发送文件。n可
4、以将要做的工作进行如下的划分。n第一类工作与传送文件直接有关。n确信对方已做好接收和存储文件的准备。n双方协调好一致的文件格式。n两个计算机将文件传送模块作为最高的一层。剩下的工作由下面的模块负责。两个计算机交换文件 文件传送模块计算机 1计算机 2文件传送模块只看这两个文件传送模块好像文件及文件传送命令是按照水平方向的虚线传送的把文件交给下层模块进行发送把收到的文件交给上层模块解决文件格式不匹配问题再设计一个通信服务模块 文件传送模块计算机 1计算机 2文件传送模块只看这两个通信服务模块好像可直接把文件可靠地传送到对方把文件交给下层模块进行发送把收到的文件交给上层模块通信服务模块通信服务模块
5、不能使文件模块完成所有细节,这样会使文件模块过于复杂。解决办法:解决办法:再设计一个通信模块,用来保证文件和文件传送命令可靠地在两个系统之间交换。即让位于上面的文件传送模块利用下面的通信模块提供服务。此时需要再设计一个通信模块专门负责通信再设计一个网络接入模块 文件传送模块计算机 1计算机 2文件传送模块通信服务模块通信服务模块网络接入模块网络接入模块通信网络网络接口网络接口网络接入模块负责做与网络接口细节有关的工作例如,规定传输的帧格式,帧的最大长度等。分层的好处 n各层之间是独立的:某一层并不需要知道它的下一层是如何实现,而仅需知道该层通过层间接口(即界面)所提供的服务。n灵活性好:任何一
6、层发生变化时(如由于技术变化),只要层间的接口关系不变,则这层以上或以下均不受影响。n结构上可分割开:各层都可以采用最合适技术来实现。n易于实现和维护。n能促进标准化工作。层数多少要适当 n若层数太少,就会使每一层的协议太复杂。n层数太多又会在描述和综合各层功能的系统工程任务时遇到较多的困难。n每一层所要实现的一般功能往往是下面的一种或多种功能:(1)差错控制 (2)流量控制 (3)分段或重装 (4)复用和分用 (5)连接建立或释放 计算机网络的体系结构定义 n计算机网络的体系结构(architecture)是计算机网络的各层及其协议的集合。n体系结构就是这个计算机网络及其部件所应完成的功能的
7、精确定义。n实现(implementation)是遵循这种体系结构的前提下用何种硬件或软件完成这些功能的问题。n体系结构是抽象的,而实现则是具体的,是真正在运行的计算机硬件和软件。2.3 具有五层协议的网络体系结构 nTCP/IP 是四层的体系结构:应用层、运输层、网际层和网络接口层。n最下面的网络接口层并没有具体内容。n因此往往采取折中的办法,即综合 OSI 和 TCP/IP 的优点,采用一种只有五层协议的体系结构。五层协议的体系结构 n应用层(application layer)n运输层(transport layer)n网络层(network layer)n数据链路层(data link
8、 layer)n物理层(physical layer)数据链路层5 应用层4 运输层3 网络层2 数据链路层1 物理层应用层n最高层;n应用层是原理体系结构中的最高层。应用层确定进程之间通信的性质以满足用户的需要(这反映在用户所产生的服务请求)。n常用HTTP、FTP等属于应用层协议。运输层n运输层的任务就是负责主机中两个进程之间的通信,其数据传输的单位是报文段(segment)。运输层具有复用(multiplexing)和分用(demultiplexing)的功能。n因特网的运输层可使用两种不同协议。即面向连接的传输控制协议TCP(Transmission Control Protocol)
9、,和无连接的用户数据报协议UDP(User Datagram Protocol)。网络层n网络层负责为分组交换网上的不同主机提供通信。在网络层,数据的传送单位是分组或包。在TCP/IP体系中,分组也叫作IP数据报,或简称为数据报。n 因特网是一个很大的互联网,它由大量的异构(heterogeneous)网络通过路由器(router)相互连接起来。因特网主要的网络层协议是无连接的网际协议IP(Internet Protocol)和许多种路由选择协议,因此,因特网的网络层也叫做网际层或IP层。数据链路层n数据链路层的任务是在两个相邻结点间的线路上无差错地传送以帧(frame)为单位的数据。每一帧包
10、括数据和必要的控制信息。数据链路层有时也常简称为链路层。n数据链路层就把一条有可能出差错的实际链路,转变成为让网络层向下看去好像是一条不出差错的链路。物理层n任务:透明地传送比特流。在物理层上所传送的单位是比特。n注意:传递信息所利用的一些物理媒体如双绞线、同轴电缆不包括在该层内n透明含义:某一实际存在的事物看起来好像并不存在一样。“透明地传送比特流”表示经实际电路传送后的比特流没有发生变化。n物理层要考虑用多大的电压代表1或0,以及在发送端发出1时,在接收端如何识别这是1而不是0.物理层还要考虑连接电缆的插头应当有多少根线以及这些线如何连接。计算机 1 向计算机 2 发送数据 5432154
11、321计算机 1AP2AP1计算机 2应用进程数据先传送到应用层加上应用层首部,成为应用层 PDU计算机 1 向计算机 2 发送数据 5432154321计算机 1AP2AP1计算机 2应用层 PDU 再传送到运输层加上运输层首部,成为运输层报文计算机 1 向计算机 2 发送数据 5432154321计算机 1AP2AP1计算机 2运输层报文再传送到网络层加上网络层首部,成为 IP 数据报(或分组)计算机 1 向计算机 2 发送数据 5432154321计算机 1AP2AP1计算机 2IP 数据报再传送到数据链路层加上链路层首部和尾部,成为数据链路层帧计算机 1 向计算机 2 发送数据 543
12、2154321计算机 1AP2AP1计算机 2数据链路层帧再传送到物理层最下面的物理层把比特流传送到物理媒体计算机 1 向计算机 2 发送数据 n应用层(application layer)5432154321物理传输媒体计算机 1AP2AP1电信号(或光信号)在物理媒体中传播从发送端物理层传送到接收端物理层计算机 2计算机 1 向计算机 2 发送数据 5432154321计算机 1AP2AP1计算机 2物理层接收到比特流,上交给数据链路层计算机 1 向计算机 2 发送数据 5432154321计算机 1AP2AP1计算机 2数据链路层剥去帧首部和帧尾部取出数据部分,上交给网络层计算机 1 向
13、计算机 2 发送数据 5432154321计算机 1AP2AP1计算机 2网络层剥去首部,取出数据部分上交给运输层计算机 1 向计算机 2 发送数据 5432154321计算机 1AP2AP1计算机 2运输层剥去首部,取出数据部分上交给应用层计算机 1 向计算机 2 发送数据 5432154321计算机 1AP2AP1计算机 2应用层剥去首部,取出应用程序数据上交给应用进程计算机 1 向计算机 2 发送数据 5432154321计算机 1AP2AP1计算机 2我收到了 AP1 发来的应用程序数据!计算机 1 向计算机 2 发送数据 5432154321计算机 1AP2AP1计算机 2应 用 程
14、 序 数 据应用层首部H510100110100101 比 特 流 110101110101注意观察加入或剥去首部(尾部)的层次应 用 程 序 数 据H5应 用 程 序 数 据H4H5应 用 程 序 数 据H3H4H5应 用 程 序 数 据H4运输层首部H3网络层首部H2链路层首部T2链路层尾部计算机 1 向计算机 2 发送数据 5432154321计算机 1AP2AP1计算机 210100110100101 比 特 流 110101110101计算机 2 的物理层收到比特流后交给数据链路层H2T2H3H4H5应 用 程 序 数 据H3H4H5应 用 程 序 数 据计算机 1 向计算机 2 发
15、送数据 5432154321计算机 1AP2AP1计算机 2数据链路层剥去帧首部和帧尾部后把帧的数据部分交给网络层H2T2H3H4H5应 用 程 序 数 据H4H5应 用 程 序 数 据H3H4H5应 用 程 序 数 据计算机 1 向计算机 2 发送数据 5432154321计算机 1AP2AP1计算机 2网络层剥去分组首部后把分组的数据部分交给运输层H5应 用 程 序 数 据H4H5应 用 程 序 数 据计算机 1 向计算机 2 发送数据 5432154321计算机 1AP2AP1计算机 2运输层剥去报文首部后把报文的数据部分交给应用层应 用 程 序 数 据H5应 用 程 序 数 据计算机
16、1 向计算机 2 发送数据 5432154321计算机 1AP2AP1计算机 2应用层剥去应用层 PDU 首部后把应用程序数据交给应用进程计算机 1 向计算机 2 发送数据 5432154321计算机 1AP2AP1计算机 2我收到了 AP1 发来的应用程序数据!对协议理解n任何两个同样的层次(例如在两个系统的第4层)之间,也好像如同图中的水平虚线所示的那样,将数据(即数据单元加上控制信息)通过水平虚线直接传递给对方,这就是所谓的“对等层”(peer layers)。n在文献中也还可以见到术语“协议栈”(protocol stack),这是因为几个层次画在一起很像一个栈(stack)的结构。n
17、当研究在开放系统中进行交换信息时,往往使用实体(entity)这一较为抽象的名词表示任何可发送或接收信息的硬件或软件进程。n协议是控制两个对等实体进行通信的规则的集合。在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务,要实现本层协议,还需要使用下面一层所提供的服务。n首先,协议的实现保证了能够向上一层提供服务。使用本层服务的实体只能看见服务而无法看见下面的协议,下面的协议对上面的实体是透明的。n其次,协议是“水平的”,即协议是控制对等实体之间通信的规则,但服务是“垂直的”,即服务是由下层向上层通过层间接口提供的。n计算机网络的协议还有一个很重要的特点,就是协议必须将所有不利的条
18、件事先都估计到,而不能假定一切都是非常理想的。n看一个计算机网络协议是否正确,不能光看在正常情况下是否正确,而且还必须非常仔细地检查这个协议能否应付各种异常情况。2.4 OSI 与 TCP/IP体系结构的比较 应用层运输层网络层表示层会话层数据链路层物理层7654321OSI 的体系结构应用层网络接口层网际层 IP(各种应用层协议如TELNET,FTP,SMTP 等)运输层(TCP 或 UDP)TCP/IP 的体系结构无连接分组交付服务运输服务(可靠或不可靠)各种应用服务TCP/IP 的三个服务层次TCP/IP 四层协议的表示方法举例 应用层运输层网际层网络接口层主机A主机B路由器网络 2网络
19、 1应用层运输层网际层网络接口层网际层网络接口层4321沙漏计时器形状的TCP/IP协议族 HTTPSMTPDNSRTPTCPUDPIP网际层网络接口层运输层应用层网络接口 1网络接口 2网络接口 3Everything over IP IP 可为各式各样的应用程序提供服务IP over Everything IP 可应用到各式各样的网络上客户进程和服务器进程使用 TCP/IP 协议进行通信数据链路层物理层运输层网络层数据链路层物理层运输层网络层 客户发起连接建立请求 服务器接受连接建立请求应用层应用层因特网客户服务器以后就逐级使用下层提供的服务(使用 TCP 和 IP)功能较强的计算机可同时运行多个服务器进程 数据链路层物理层运输层网络层应用层计算机 3服务器1服务器2数据链路层物理层运输层网络层应用层计算机 1客户 1数据链路层物理层运输层网络层应用层计算机 2客户 2因特网