电子商务概论第3章网络体系结构与协议本章内容TCP/IP参考模型OSI参考模型网络体系结构与协议概述重要网络协议3.1.1分层计算机网络是个非常复杂的系统。相互通信的两个计算机系统必须高度协调工作才行,而这种“协调”是相当复杂的。“分层”可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理。3.1网络体系结构与协议ARPANET的研制经验表明,对于非常复杂的计算机网络协议,其结构应该是层次式的。划分层次的概念举例主机1向主机2通过网络发送文件。可以将要做的工作进行如下的划分:第一类工作与传送文件直接有关。•确信对方已做好接收和存储文件的准备。•双方已协调好一致的文件格式。两个主机将文件传送模块作为最高的一层,剩下的工作由下面的模块负责。两个主机交换文件文件传送模块主机1主机2文件传送模块只看这两个文件传送模块好像文件及文件传送命令是按照水平方向的虚线传送的把文件交给下层模块进行发送把收到的文件交给上层模块再设计一个通信服务模块文件传送模块主机1主机2文件传送模块只看这两个通信服务模块好像可直接把文件可靠地传送到对方把文件交给下层模块进行发送把收到的文件交给上层模块通信服务模块通信服务模块再设计一个网络接入模块文件传送模块主机1主机2文件传送模块通信服务模块通信服务模块网络接入模块网络接入模块通信网络网络接口网络接口网络接入模块负责做与网络接口细节有关的工作,例如:规定传输的帧格式,帧的最大长度等。分层的好处与缺点好处各层之间是独立的。灵活性好。实现技术最优化。易于实现和维护。能促进标准化工作。缺点降低效率。有些功能会在不同的层次中重复出现,因而产生了额外开销。层数多少要适当层数太少,就会使每一层的协议太复杂。层数太多,又会在描述和综合各层功能的系统工程任务时遇到较多的困难。各层完成的主要功能①差错控制:使相应层次对等方的通信更加可靠。②流量控制:发送端的发送速率必须使接收端来得及接收,不要太快。③分段和重装:发送端将要发送的数据块划分为更小的单位,在接收端将其还原。④复用和分用:发送端几个高层会话复用一条低层的连接,在接收端再进行分用。⑤连接建立和释放:交换数据前先建立一条逻辑连接,数据传送结束后释放连接。1974年,美国的IBM公司宣布了系统网络体系结构SNA(SystemNetworkArchitecture)。这个著名的网络标准就是按照分层的方法制定的。不久后,其他一些公司也相继推出自己公司的具有不同名称的体系结构。由于网络体系结构的不同,不同公司的设备很难互相连通。开放系统互连参考模型OSI/RM为了使不同体系结构的计算机网络都能互连,国际标准化组织ISO于1977年成立了专门机构研究该问题。1978年他们提出了一个试图使各种计算机在世界范围内互连成网的标准框架,即著名的开放系统互连基本参考模型OSI/RM,简称为OSI。只要遵循OSI标准,一个系统就可以和位于世界上任何地方的、也遵循这同一标准的其他任何系统进行通信。开放系统互连参考模型OSI/RMOSI只获得了一些理论研究的成果,在市场化方面却失败了。原因包括:OSI的专家们在完成OSI标准时没有商业驱动力;OSI的协议实现起来过分复杂,且运行效率很低;OSI标准的制定周期太长,因而使得按OSI标准生产的设备无法及时进入市场;OSI的层次划分也不太合理,有些功能重复出现。两种国际标准法律上的国际标准OSI并没有得到市场的认可。非国际标准TCP/IP却获得了最广泛的应用。TCP/IP常被称为事实上的国际标准。3.1.2协议协议是控制两个对等实体进行通信的规则的集合。这些规则明确规定了所交换的数据的格式以及有关的同步问题(同步含有时序的意思)。网络协议(networkprotocol),简称为协议,是为进行网络中的数据交换而建立的规则、标准或约定。网络协议的三个组成要素语法:数据与控制信息的结构或格式。语义:控制信息的含义,即需要发出何种控制信息,完成何种动作以及做出何种响应。同步:事件实现顺序的详细说明。由此可见,网络协议是计算机网络的不可缺少的组成部分。协议的两种形式一种是使用便于人来阅读和理解的文字描述。另一种是使用让计算机能够理解的程序代码。这两种不同形式的协议都必须能够对网络上信息交换过程做出精确的解释。协议很复杂协议必须把所有不利的条件事先都估计到,而不能假定一切都是正常的和非常理想的,还要看能否应付各种异常情况。【例】著名的协议举例占据东、西两个山顶的蓝军1和蓝军2与驻扎在山谷的白军作战。其力量对比是:单独的蓝军1或蓝军2打不过白军,但蓝军1和蓝军2协同作战则可战胜白军。现蓝军1拟于次日正午向白军发起攻击。于是用计算机发送电文给蓝军2。但通信线路很不好,电文出错或丢失的可能性较大(没有电话可使用)。因此要求收到电文的友军必须送回一个确认电文。但此确认电文也可能出错或丢失。试问能否设计出一种协议使得蓝军1和蓝军2能够实现协同作战,因而一定(即100%而不是99.999…%)取得胜利?明日正午进攻,如何?同意收到“同意”收到:收到“同意”………………这样的协议无法实现!结论这样无限循环下去,两边的蓝军都始终无法确定自己最后发出的电文对方是否已经收到。没有一种协议能够使蓝军100%获胜。这个例子告诉我们,看似非常简单的协议,设计起来要考虑的问题还是比较多的。3.1.3实体、服务和服务访问点实体(entity)表示任何可发送或接收信息的硬件或软件进程。协议数据单元(PDU)水平对等实体之间通过协议传送的数据。服务数据单元(SDU)垂直层与层之间交换的数据的单位。协议和服务在概念上是不一样的本层的服务用户只能看见服务而无法看见下面的协议。即下面的协议对上面的服务用户是透明的。协议是“水平的”,即协议是控制对等实体之间通信的规则。服务是“垂直的”,即服务是由下层向上层通过层间接口提供的。服务访问点同一系统相邻两层的实体进行交互的地方,称为服务访问点SAP。它实际上就是一个逻辑接口。实体、协议、服务和服务访问点协议(n+1)SAPSAP交换原语交换原语实体(n+1)服务提供者第n层第n+1层实体(n+1)服务用户实体(n)实体(n)协议(n)相邻两层之间的关系服务服务3.1.5计算机网络的体系结构计算机网络的体系结构(architecture)是计算机网络的各层及其协议的集合。体系结构就是这个计算机网络及其部件所应完成的功能的精确定义。实现(implementation)是遵循这种体系结构的前提下用何种硬件或软件完成这些功能的问题。体系结构是抽象的,而实现则是具体的,是真正在运行的计算机硬件和软件。具有五层协议的体系结构OSI的七层协议体系结构的概念清楚,理论也较完整,但它既复杂又不实用。TCP/IP是四层体系结构:应用层、运输层、互连层和网络接口层。但最下面的网络接口层并没有具体内容。因此往往采取折中的办法,即综合OSI和TCP/IP的优点,采用一种只有五层协议的建议体系结构。具有五层协议的体系结构应用层运输层网络层表示层会话层数据链路层物理层7654321OSI的体系结构应用层网络接口层网际层IP(各种应用层协议,如DNS,HTTP,SMTP等)运输层(TCP或UDP)TCP/IP的体系结构(a)(b)(c)运输层网络层应用层数据链路层物理层54321五层协议的体系结构(这一层并没有具体内容)计算机网络体系结构:(a)OSI的七层协议;(b)TCP/IP的四层协议;(c)五层协议五层协议的体系结构应用层(applicationlayer)运输层(transportlayer)网络层(networklayer)数据链路层(datalinklayer)物理层(physicallayer)数据链路层5应用层4运输层3网络层2数据链路层1物理层主机1向主机2发送数据5432154321主机1AP2AP1主机2应用进程数据先传送到应用层加上应用层首部,成为应用层PDUPDU:协议数据单元,对等层次之间传送的数据单位。主机1向主机2发送数据5432154321主机1AP2AP1主机2应用层PDU再传送到运输层加上运输层首部,成为运输层报文主机1向主机2发送数据5432154321主机1AP2AP1主机2运输层报文再传送到网络层加上网络层首部,成为IP数据报(或分组)主机1向主机2发送数据5432154321主机1AP2AP1主机2IP数据报再传送到数据链路层加上链路层首部和尾部,成为数据链路层帧主机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运输层剥去首部,取出数据部分上交给应用层主机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发来的应用程序数据!主机1向主机2发送数据OSI参考模型把对等层次之间传送的数据单位称为该层的协议数据单元PDU。这个名词现已被许多非OSI标准采用。任何两个同样的层次把数据(即数据单元加上控制信息)通过水平虚线直接传递给对方。这就是所谓的“对等层”之间的通信。各层协议实际上就是在各个对等层之间传递数据时的各项规定。3.2OSI参考模型OSI全称是开放系统互连参考模型。国际标准化组织国际电报电话咨询委员会应用层表示层会话层传输层网络层数据链路层物理层OSI模型公司经理公司经理助理公司秘书公司送信职员邮局排序工人邮局装拆箱工人邮局运送工人用户终端设备服务器……网络设备……公司机构邮局快递公司应用层表示层会话层传输层网络层数据链路层物理层OSI模型公司经理公司经理助理公司秘书公司送信职员邮局排序工人邮局装拆