第2章计算机网络体系结构第2章计算机网络体系结构2.1概述2.2OSI体系结构2.3TCP/IP体系结构2.4五层体系结构2.1概述计算机网络体系结构描述了计算机网络系统的总体架构,是网络功能的结构性的划分。计算机网络的层次结构及各层协议的集合统称计算机网络的体系结构(Architecture)。具有同样体系结构的计算机网络才能无缝地互连。世界上第一个计算机网络体系结构:IBM公司于1974年提出系统网络体系结构(SNA)。开放系统互连参考模型(OSI/RM)分为七层。TCP/IP体系结构为四个层次。五层体系结构。计算机网络的体系结构计算机网络的体系结构(architecture)是计算机网络的各层及其协议的集合。体系结构就是这个计算机网络及其部件所应完成的功能的精确定义。实现(implementation)是遵循这种体系结构的前提下用何种硬件或软件完成这些功能的问题。体系结构是抽象的,而实现则是具体的,是真正在运行的计算机硬件和软件。2.2OSI体系结构2.2.1开放系统互连参考模型分层的方法有以下好处:简化了网络的设计与实现。具有层间无关性,系统易于更新。OSI环境中的数据流层号中文名称英文名称英文名称缩写7应用层applicationlayerA6表示层presentationlayerP5会话层sessionlayerS4传输层transportlayerT3网络层networklayerN2数据链路层dataLinklayerDL1物理层physicallayerPHOSI/RM的七个层次分层的好处各层之间是独立的。灵活性好。结构上可分割开。易于实现和维护。能促进标准化工作。划分层次的概念举例计算机1向计算机2通过网络发送文件。可以将要做的工作进行如下的划分。第一类工作与传送文件直接有关。确信对方已做好接收和存储文件的准备。双方协调好一致的文件格式。两个计算机将文件传送模块作为最高的一层。剩下的工作由下面的模块负责。两个计算机交换文件文件传送模块计算机1计算机2文件传送模块只看这两个文件传送模块好像文件及文件传送命令是按照水平方向的虚线传送的把文件交给下层模块进行发送把收到的文件交给上层模块再设计一个通信服务模块文件传送模块计算机1计算机2文件传送模块只看这两个通信服务模块好像可直接把文件可靠地传送到对方把文件交给下层模块进行发送把收到的文件交给上层模块通信服务模块通信服务模块再设计一个网络接入模块文件传送模块计算机1计算机2文件传送模块通信服务模块通信服务模块网络接入模块网络接入模块通信网络网络接口网络接口网络接入模块负责做与网络接口细节有关的工作例如,规定传输的帧格式,帧的最大长度等。2.2.2OSI的一些基本概念实体和对等实体协议和协议数据单元协议(Protocol)是某一个层次中指导实体之间通信的规则。包含三个方面的要素:语法语义同步协议数据单元(ProtocolDataUnit,PDU)由两部分组成:本层的协议控制信息和用户数据。2.2.2OSI的一些基本概念服务、服务访问点和服务原语N层实体在N层协议的控制下可以向N+1层实体提供服务(Service)实现N+1层所需要的某种功能服务有如下两种形式:面向连接的服务(Connection-OrientedService)无连接的服务(ConnectionlessService)服务访问点(ServiceAccessPoint,SAP)是上下层实体之间信息交换的接口。服务原语(ServicePrimitive)描述提供的服务,定义服务规范,规定通过SAP所必需传递的信息。2.3TCP/IP体系结构Internet使用TCP/IP体系结构。网络接口层严格说并不是一个独立的层次,没有定义什么具体的协议。网际层、传输层和应用层是TCP/IP的主要内容。对应的OSITCP/IPTCP/IP主要协议高层(5~7)应用层(applicationlayer)TELNETFTPSMTPHTTPDNSTFTPNFSSNMP传输层(4)传输层(transportlayer)TCPUDP网络层(3)网际层(internetlayer)IGMPICMPIPARPRARP低层(1~2)网络接口层(networkinterfacelayer)可使用各种网络TCP/IP四层协议的表示方法举例应用层运输层网际层网络接口层主机A主机B路由器网络2网络1应用层运输层网际层网络接口层网际层网络接口层43212.4五层体系结构AndrewS.Tanenbaum建议了计算机网络的五层体系结构。根据Internet的实际情况,以TCP/IP体系结构为基础,综合了TCP/IP和OSI两种体系结构。自下而上分别为:物理层、数据链路层、网络层、传输层和应用层。ISO/OSI五层体系结构TCP/IP高层(5~7)应用层(applicationlayer)应用层传输层(4)传输层(transportlayer)传输层网络层(3)网络层(networklayer)网际层数据链路层(2)数据链路层(datalinklayer)网络接口层物理层(1)物理层(physicallayer)2.4五层体系结构五个层次的功能简述如下:物理层为数据链路层提供透明的比特流(BitStream)传输服务,向下与物理媒体相连,规定连接物理媒体的网络接口规范。物理层涉及网络接口机械的、电气的、功能的和规程的规范。数据链路层负责在单个链路上的节点间传送称为帧(Frame)的PDU,在不太可靠的物理链路上可以实现可靠的传输。对于广播链路进行链路的访问控制。为了实现传输的可靠性,可以提供流量控制和差错控制。提供传输透明性。2.4五层体系结构网络层负责计算机间的通信,在分组交换网络上传送称为分组或包(Packet)的PDU,从源结点通过中间转发结点逐跳地(HopbyHop)将分组传送到目的结点。实现网络互连,路由优化。传输层负责应用进程间的通信,为两个应用进程之间提供端到端(EndtoEnd)的数据传输服务。为应用进程提供一条端到端的逻辑信道,在源结点和目的结点的两个传输层实体之间,不涉及线路中间的路由器等中间系统。通信连接,流量控制、拥塞控制和差错控制。应用层对应OSI的高三层,对应TCP/IP的应用层,提供面向用户的网络服务。计算机1向计算机2发送数据5432154321计算机1AP2AP1计算机2应用进程数据先传送到应用层加上应用层首部,成为应用层PDU计算机1向计算机2发送数据5432154321计算机1AP2AP1计算机2应用层PDU再传送到运输层加上运输层首部,成为运输层报文计算机1向计算机2发送数据5432154321计算机1AP2AP1计算机2运输层报文再传送到网络层加上网络层首部,成为IP数据报(或分组)计算机1向计算机2发送数据5432154321计算机1AP2AP1计算机2IP数据报再传送到数据链路层加上链路层首部和尾部,成为数据链路层帧计算机1向计算机2发送数据5432154321计算机1AP2AP1计算机2数据链路层帧再传送到物理层最下面的物理层把比特流传送到物理媒体计算机1向计算机2发送数据应用层(applicationlayer)5432154321物理传输媒体计算机1AP2AP1电信号(或光信号)在物理媒体中传播从发送端物理层传送到接收端物理层计算机2计算机1向计算机2发送数据5432154321计算机1AP2AP1计算机2物理层接收到比特流,上交给数据链路层计算机1向计算机2发送数据5432154321计算机1AP2AP1计算机2数据链路层剥去帧首部和帧尾部取出数据部分,上交给网络层计算机1向计算机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应用程序数据应用层首部H510100110100101比特流110101110101注意观察加入或剥去首部(尾部)的层次应用程序数据H5应用程序数据H4H5应用程序数据H3H4H5应用程序数据H4运输层首部H3网络层首部H2链路层首部T2链路层尾部计算机1向计算机2发送数据5432154321计算机1AP2AP1计算机210100110100101比特流110101110101计算机2的物理层收到比特流后交给数据链路层H2T2H3H4H5应用程序数据H3H4H5应用程序数据计算机1向计算机2发送数据5432154321计算机1AP2AP1计算机2数据链路层剥去帧首部和帧尾部后把帧的数据部分交给网络层H2T2H3H4H5应用程序数据H4H5应用程序数据H3H4H5应用程序数据计算机1向计算机2发送数据5432154321计算机1AP2AP1计算机2网络层剥去分组首部后把分组的数据部分交给运输层H5应用程序数据H4H5应用程序数据计算机1向计算机2发送数据5432154321计算机1AP2AP1计算机2运输层剥去报文首部后把报文的数据部分交给应用层应用程序数据H5应用程序数据计算机1向计算机2发送数据5432154321计算机1AP2AP1计算机2应用层剥去应用层PDU首部后把应用程序数据交给应用进程计算机1向计算机2发送数据5432154321计算机1AP2AP1计算机2我收到了AP1发来的应用程序数据!2.5实体、协议、服务和服务访问点实体(entity)表示任何可发送或接收信息的硬件或软件进程。协议是控制两个对等实体进行通信的规则的集合。在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。要实现本层协议,还需要使用下层所提供的服务。实体、协议、服务和服务访问点(续)本层的服务用户只能看见服务而无法看见下面的协议。下面的协议对上面的服务用户是透明的。协议是“水平的”,即协议是控制对等实体之间通信的规则。服务是“垂直的”,即服务是由下层向上层通过层间接口提供的。同一系统相邻两层的实体进行交互的地方,称为服务访问点SAP(ServiceAccessPoint)。实体、协议、服务和服务访问点(续)协议交换原语交换原语服务用户提供服务服务提供者第n层第n+1层服务用户SAPSAP协议很复杂协议必须将各种不利的条件事先都估计到,而不能假定一切情况都是很理想和很顺利的。必须非常仔细地检查所设计协议能否应付所有的不利情况。应当注意:事实上难免有极个别的不利情况在设计协议时并没有预计到。在出现这种情况时,协议就会失败。因此实际上协议往往只能应付绝大多数的不利情况。著名的协议举例占据两个山顶的蓝军与驻扎在这山谷的白军作战。力量对比是:一个山顶上的蓝军打不过白军,但两个山顶的蓝军协同作战就可战胜白军。一个山顶上的蓝军拟于次日正午向白军发起攻击。于是发送电文给另一山顶上的友军。但通信线路很不好,电文出错的可能性很大。因此要求收到电文的友军必须发送确认电文。但确认电文也可能出错。试问能否设计出一种协议,使得蓝军能实现协同作战因而一定(即100%)取得胜利?明日正午进攻,如何?同意收到“同意”收到:收到“同意”………………这样的协议无法实现!结论这样无限循环下去,两边的蓝军都始终无法确定自己最后发出的电文对方是否已经收到。没有一种协议能够蓝军能100%获胜。