第二章 计算机网络体系结构与协议 【计划课时】 6课时(教材第二、三章) 2.1网络通信协议 2.1.1 协议(protocol) 教材P29 网络传送是个很复杂的过程,为了实现计算机之间可靠地交换数据,许多工作要协调(如发送信号的数据格式,通信协调与出错处理,信号编码与电平参数,传输速度匹配等)。 假定一个与网络相连的设备正向另一个与网络相连的设备发送数据,由于各个厂家有其各自的实现方法,这些设备可能不完全兼容,它们相互之间不可能识别和通信。解决方法之一是在同一个网络中全部使用某一厂家的专有技术和设备,在网络互连的今天已不可行。另一种方法就是制定一套实现互连的规范(标准),即所谓“协议”。该标准允许每个厂家以不同的方式完成互连产品的开发、设计与制造,当按同一协议制造的设备连入同一网络时,它们完全兼容,仿佛是由同一厂家生产的一样。 【协议】网络上不同计算机之间为了协调互相通信而使用的技术规范,即通信技术标准(也是软硬件厂商开发网络产品的标准) 协议由语义、语法和时序三部分组成。语义规定通信双方彼此“讲什么”(含义),语法规定“如何讲”(格式),时序关系则规定了信息交流的次序(顺序)。 P29 实际上,生活中任何由两个人或两个团体一起完成的事件,都必须有“协议”(例:讲话/赛跑) 廖鸿鹏《NT Server 4.0建站指南》:“当一个中国人碰上一个日本人时,如果中国人说他的中文,日本人说他的日文,那么恐怕两个人就是讲到天黑,都不会有什么结果……网络上各节点之间若需要传送数据时,也要有一个共通的语言,这就是通信协议”。 理论上只要有一套协议即可,但由于网络技术在不断发展,应用领域在不断拓宽,加上历史的原因(70年代各大计算机公司在网络领域“诸侯割据”,纷纷推出自己的网络通信协议,既为网络技术的发展作出了贡献,亦造成协议品种杂多的局面),所以目前尚无一套统一可用的网络协议。 正如理论上人类只要一种语言就可以相互沟通,但实际上却有许许多多的语言存在一样。 学习网络的重要任务之一就是了解各种常用的通信协议。对于网络开发/集成工程师,则需要深入理解甚至精通工程中所涉及到的各种协议。 用于普通网络用户,则只需知道访问网络资源你的系统或机器上需要配备何种协议,而无须知道这些协议的具体含义。 封闭的协议——协议内容(规范)不对公众公布 开放的协议——协议内容对公众公布 NT4.0可同时具有5种协议,犹如一个懂最常用的五国语言的人,在世界各地旅行,便畅行无阻。 NT Server 4.0提供的五种协议 协议名称 网型 NetBEUI IPX/SPX TCP/IP DLC AppleTalk  纯NT网 ★      UNIX   ★    Novell  ★     Mocintosh     ★  IBM Mainframe    ★   Internet   ★     * Mocintosh 美国Apple电脑公司系列PC IBM Mainframe 美国IBM公司大型机 2.1.2 常用的网络通信协议 有三个最具影响力的团体为网络通信制定了各自的协议: ·OSI(开放系统互连,Open Systems Interconnection)协议 ISO(国际标准化组织)81年公布(理论标准) 从网络角度看,未连网的计算机都是所谓“信息孤岛”型的计算机系统,只按某一公司/厂商的网络通信体系结构标准连网的属于相对封闭的网络系统,而所有符合OSI网络通信体系结构的计算机系统可以在全球范围内互联起来,故称为“开放系统”。 ·IEEE 802 LAN 协议 IEEE(电气和电子工程师学会)802委员会(80年2月成立)制定,其部分标准已被ISO正式确定为局域网的国际标准 ·TCP/IP(网际互连/传输控制)协议 美国防部高级计划研究局(DARPA)83年为“阿帕”网(ARPAnet,今发展为Internet)而开发,用于通过UNIX系统控制实现异种计算机网络的互连,乃很多大学(如斯坦福大学)及研究所经多年研究及商业化后得出的结果,现为最hot的网际互连协议,亦为公认的工业标准。 此外,在局域网中,常用还有Novell网专用的通信协议IPX/SPX(网际分组交换/顺序分组交换)。 其他在网络与通信技术方面重要的国际性机构: ·ITU(国际电信联盟) 其前身是CCITT(国际电话电报咨询委员会) ·EIA/TIA(电子工业协会/电信工业协会) 2.1.3 网络通信的分层结构(Layered architecture) 1、分层的概念 可以将人与人的“通信”分为三个相关的层次:认识层、语言层、传输层。 【例1】如果让一莆田老妪与北京一科学家进行如下的“通信” 莆田老妪 北京科学家 结 果 用网络术语表达结果 谈论内容 莆田城内菜价 计算机网络技术 “不可理喻” 认识层“协议”不兼容 所用语言 莆田方言 英语 “不知所云” 语言层“协议”不兼容 通信方式 电话 电脑 无法联通 传输层“协议”不兼容 【例2】如果让一莆田老妪与北京的莆田藉科学家林兰英进行如下的“通信” 莆田老妪 林兰英院士 结 果 用网络术语表达结果 谈论内容 莆田城市变化 家乡情况 OK 认识层“协议”兼容 所用语言 莆田方言 莆田方言 OK 语言层“协议”兼容 通信方式 电话 电话 OK 传输层“协议”兼容 所以,人们为了能够彼此交流思想,需借助一个分层次的通信结构;其次,层次之间不是相互孤立的,而是密切相关的,上层的功能是建立在下层的基础上,下层为上层提供某些服务,而且每层还应有一定的规则。 网络通信情况同样如此,只是区分更细一些。 2、网络通信分层的概念 计算机之间的通信可归纳为两种基本方式: ·点-点通信(P-P) 相邻结点之间通过直达通路的通信(称“线路通信”) ·端-端通信(E-E) 不相邻结点之间通过中间结点链接起来所形成间接可达通路的通信(“链路通信”) 点-点通信是端-端通信的基础,端-端通信是点-点通信的延伸 a. 点-点通信的分层 两台相邻计算机通过直达通信线路通信时,其所用通信软件将自然分成两个相对独立的模块(层): ·用户服务层 处理用户的通信应用请求 ·通信服务层 通过通信线路收发数据 分层的优点:用户服务层的模块设计可相对独立于具体的通信线路和通信硬件接口的差别(如铜线、同轴电缆、光纤等),而通信服务层的模块设计又可相对独立于具体用户应用要求的不同(如文件传输、电子邮件等)。 b. 端-端通信的分层 端-端通信是把若干点-点相邻结点间的通信线路通过中间结点链接起来,所以还需解决: (1)中间结点应具有路由转接功能(按报文所附目标地址转发) (2)端结点应具有启动、建立和维护端-端链路的功能 启动——发送端发送一个带目标端结点地址的联系控制报文 建立——目标端结点返回一个同意通信联系的报文,建立了双方的联系 维护——通信过程差错控制、流量控制等 为此需在用户服务层和通信服务层之间增加一个新层(网络服务层),即通信服务层实现相邻结点间的点-点通信,网络服务层实现不相邻结点间的端-端链路通信,用户服务层处理用户应用软件的通信请求与服务。 计算机网络协议协议采用层次结构的优点:P29 【网络体系结构】计算机网络的各层及其协议的集合,称为网络的体系结构(architecture)。P29 体系即“系统”,中文中常用来描述有比较明显层次结构的系统(如科学体系、政治体系等)。 2.1.4 OSI协议(教材P30) OSI协议将网络通信过程划分为七个相互独立的功能组(层次),并为每个层次制定一个标准框架。上面三层(应用层、表示层、会话层)与应用问题有关,而下面四层(传输层、网络层、数据链路层、物理层)则主要处理网络控制和数据传输/接收问题。各层的功能单元用于规定what is to be done, but not how to do it. ·Layer 7 - Application 网络的用户接口(上网软件等) ·Layer 6 - Presentation 不同系统数据格式转换/加解密 ·Layer 5 - Session 进程(执行中的程序)间会话管理与会话同步(“会话”即用户间连接) ·Layer 4 - Transport 报文的正确传输(报文的生成、收发、组合与差错检查) ·Layer 3 - Network 路由选择和流量控制(选择LAN间传输路径) ·Layer 2 - Data Link 帧的正确传输(帧的生成、收发与差错检查) ·Layer 1 - Physical 数据比特流(0、1)的正确传输(比特流的生成、收发与差错检查) 七层模型示意图和各层主要功能见P31图2.1。 像WINDOWS NT之类的操作系统只会与OSI的顶层有关。 OSI协议仅给出一个框架结构,并没有将其网络模型的每一层限定在统一的一种协议中,也没有给出协议的具体实现技术(即未完全定型)。故又称“参考模型”(OSI/RM)但它奠定了网络体系结构的基础,成为今天设计和制定网络协议标准最重要的参考模型和依据。 通信双方(比喻) 通信用户 写信封 拆信和读信  发送 接收 应用层(A) 软件 (面向用户) 资源子网的任务 由软件实现  封信、贴邮票 取信  表示层(P)    投入邮筒 投递  会话层(S)    分拣 分拣  传输层(T) 衔接   决定路线 邮件分类  网络层(N) 网络 (完成传送服务) 通信子网任务 由硬件实现  装入邮包 打开邮包  数据链路层(D)    装上邮车送出 从邮车接收邮包  物理层(P)     邮路(公路、铁路等) 传输介质(电缆等) 说明: 并非所有网络通信都必须通过完整的七层; 实际上,如果在同一个LAN内(直接通过物理地址传输)通信,通常只用到下两层和应用层,如果跨LAN(路由选择成为必要),则需要用到下面四层和应用层。两个节点有加密/解密的通信要求时,可能用到表示层。 并非现有的网络通信都是按本模型分层(实际上一个也没有); 每层可能对应有若干个具体协议,通信双方同层协议必须相同或相互兼容 2.1.5 层间服务的概念 【服务】what is to be done, but not how to do it. OSI模型中,下层通信实体(服务提供者)为上层实体(服务用户)提供的通信功能。服务是通过一组所谓“服务原语”来执行。服务原语可划分为以下四类,每种代表一种通信操作: ·request(请求) ·indication(指示) ·response(响应) ·confirm(确认) 比喻:两座楼上有两位行动不便的老太太(服务用户)要进行通信,但两人都没有电话,必须通过楼下的电话员传话。开始通信时,A楼上的老太太(A太太)请A楼电话员拨通B楼电话(CONNECT.request),B楼电话员喊楼上的老太太(B太太)说有电话来了(CONNECT.indication)。B太太请B楼电话员回答说“请讲吧”(CONNECT.response),A楼电话员将B太太的回答转告A太太(CONNECT.confirm),于是两位老太太开始通过两楼电话员的传话进行“通话”(DATA.request和DATA.indication),最后,A太太请A楼电话员说“今天就讲到这里吧”(DISCONNECT.request),B楼电话员转告B太太对方停止通知了(DISCONNECT.indication)。 【协议】 OSI模型中,某层功能实现的方法和方式。通信双方同层协议必须一致。 服务只表示能为上层做什么,协议规定了本层功能如何实现。只要不改变提供的服务,本层实体可以任意地改变它们的协议。 如上例中楼下向楼上老太太提供传话功能(服务),但楼下电话员之间如何通话,则由双方商定(协议)。 【接口】 上下层之间相互通信处(独特的标识地址),如可以是一个套接字(socket)或一个端口等。 如上例中楼上老太太与楼下电话员间的传话口。 2.1.6 网络通信传输过程——封装与虚通信的概念 在网上发送和接收数据时,一台用于发送,一台用于接收。通信双方的每一层的最终是和另一台计算机的同层进行通信,但数据不能直接从A机的第X层传输到B机的第X层,而是先将数据和控制信息迅速传递到下一层,然后一层层下传,直至最低层,最后将数据传传递到网络介质上。接收数据的计算机将数据和控制信息一层层上传,直至第X层。整个传输过程中,只有物理层真正进行通信传输,其他各对等层间实际上只是根据协议进行逻辑通信(虚通信)。 发送 当发送计算机发出通信请求时,应先建立数据帧。帧是在最高层上形成的,并通过相邻的下层向下逐步传递。数据通过每一次时,该层的协议要加入该层的控制信息(作为头部或尾部)。帧根据接口定义传送到下一层。最后,数据通过协议栈的所有层,被传送到网络介质上。 接收 在接收端,帧从低层向高层的传送也应符合接口的定义。每一层的协议只解释发送端的同级放在帧的头部和尾部的信息。协议将帧中的其余部分看作是数据单元,并负责将数据单元送到上一层。 从过程看,网络通信的过程就是从A用户的应用层处发出数据,经层层下传,最后通过物理层发到网络的传输介质上,而B用户通过物理层接收数据,经层层上传,最后由应用层取出。换言之,信息交换发生在对等的OSI层之间,源系统A中的每一层把目的系统B同层所需的控制信息(数据头)附加到数据中,封装后的信息单元(数据头和数据)被传输到下一层,而目的系统B的每一层对收到的信息单元进行分析,先读取系统A附加的控制信息(数据头),然后去掉该数据头,将信息单元的余留部分传送给上一层。 【封装】信息通过各层向下传递时,每层的软件负责加上它的报头(header)或报尾(Trailer)信息(每层都要封装从高层来的信息)。  数据的封装 实际的网络通信传输过程可以用下图表示: 用户A发送   中转结点 中转结点  用户B接收  数据 应用层    应用层 数据  ……… 表示层    表示层 ……  …… 会话层    会话层 ……  …… 传输层    传输层 ……   数据包 网络层  网络层  网络层  网络层 数据包  打包成帧 数据链路层  数据链路层  数据链路层  数据链路层 验收帧  比特流 物理层  物理层  物理层  物理层 比特流  通信线路   注意:中转结点只需下面三层功能。 2.1.7 协议与应用 从网络产品看,最下三层(NDP)往往直接做在硬件(如网卡上),上面四层(APST)则一般由网络操作系统控制。 简单理解最下三层的作用: 物理层——发送机器在此层将上层传来的0和1转换为传输介质上的电信号;接收机器则在此层将传输介质送来的电信号翻译成0和1送往上层(传送的是比特流) 数据链路层——发送机器在此层将上层送来的信息打包(创建带地址、控制和出错校验信息的帧),并转换为0和1形式的数据序列传向下层;接收机器则在此层将物理层送来的0和1数据序列解释为帧进行解包然后向上层传送。(打包成帧,传送的是帧) 在这一层可以按硬件(如网卡)固有的地址(MAC地址)寻址(查找本网络中硬件)。 网络层——可按人为设置的网际逻辑地址(IP地址)寻址(查找其他网络)。(将上层数据分组,即转换成数据包)。 LAN用的通信协议IEEE 802 为最下两层(D和P)制定了12个系列标准(IEEE 802.1至IEEE 802.12,),其中最常用的是IEEE 802.3(以太网络)。 P106 对于普通用户,协议的实用意义在于:购买网络产品(网卡、软件等)时要注意它支持何种协议,如果您买的网卡仅支持802.4协议(令牌环),则在一般以太风网络上不能使用。 对于网络管理工程师,了解所管网络系统所使用的主要协议,网络划分、日常管理和维护、网络故障排除时就可以做到“胸有成竹”。 对于区域网(Intranet和MAN)等系统集成工程师,往往需要较为具体地了解物理层、数据链路层和网络层的功能及相关协议,以便科学地进行设备选型、配置和网络规划。 对于从事网络技术发展和网络设备开发的专家,需要深入研究协议,熟悉协议,制定或修改协议。 2.2 网络的拓扑结构 【拓扑】(topology) P5及P6图1.3 拓扑本是一个几何学名词,是一种研究与大小、形状无关的线和面特性的方法。用拓扑方法研究计算机网络,可以使复杂的问题简单化──将设备定义为点,将它们间的线路定义为线,对这些点和线及其关系的研究就比实际网络的研究容易得多。 网络拓扑结构指的是网络结点的互连构型(连接方式)。 组网时,电缆、网卡的选择与所用网络的拓扑结构密切相关。 网络常用的拓扑结构有以下几种。 总线拓扑(Bus Topology) 总线型(见教材P6图1.3b-c) 特点:广播式传输——所有结点发送的信号均通过公共电缆(总线)传播,并可被所有结点所接收。 (各结点收到信息时,根据信息中所含的地址与本站地址是否一致,决定是否接收之)。 结构最简单,造价最低廉,扩充容易,可靠性好──应用最广泛。 2.环型拓扑(Ring Topology) 教材P6图1.3d 特点:信息沿环路单向运行(广播式)。注意:环路形状不一定是圆环。 路径固定;环路是一个含有有源部件的信道,环中每一个结点都具有放大整形作用,负载能力强,复盖面积大,对信道的访问控制技术较简单;最大延时时间固定(远程控制必需);可用光纤实现高速传输。 扩充不易,结点多时响应时间长,可靠性较差(结点故障易引起全网故障)。 3.星形拓扑(Star Topology) 图见教材P6图1.3a 特点:信息通过中央结点转发(广播式) 扩充容易,故障诊断与隔离容易 电缆长度和安装工作量可观,对中央结点可靠性和冗余度要求很高,且线路利用率低 4.复合拓扑(派生拓扑) 常见有星形总线(簇型)和树形等。如下图所示: 星型总线(簇型) 树型 5.不规则网形 广域网的一般拓扑形式(一般为点-点) 2.3 访问控制(Access Control)方法 在LAN中,为了提高传输速率,通常采用基带传输,即传输信号占用了传输电缆所允许的整个频段。所以必须保证每一时刻任何一段网络线路上最多只有一个信息流在传输──防止信息丢失或畸变。(准确可靠的数据传输是网络的“生命线”) 为此,IEEE制定了访问控制的有关协议。LAN的网卡和电缆系统通常是根据IEEE协议的规格参数设计制造的,以确保网络传输的准确可靠。 1.CSMA/CD(载波监听多路访问/冲突检测)─ 争用方式(教材P114) 适用于总线型、树型网络和星型拓扑结构,基带传输系统。 其标准为IEEE 802.3协议。 原理:空闲─发送,Busy─继续监听。发送中间检测到碰撞(网络电压高于正常传输电压)时,发出一串阻塞码到总线上(加重冲突),通知各站点发生碰撞了,然后停止发送。 优点:各站点平等竞争传送权,CSMA/CD功能可做在网卡中,技术实现容易,线路利用率高,成本最低。 缺点:不能提供优先级控制;因争用,不能满足远程控制所需要的确定延时(轻载时无延迟,重载时严重延迟)和绝对可靠的要求;不宜用于重载局域网(等待时间长,甚至导致LAN崩溃)。 2.令牌环(Token Ring)─ 令牌传递方式(教材119) (Token──古埃及法老王手中的“令牌”。) 适用于环型拓扑结构,基带传输系统。 其标准为IEEE 802.5 协议。 原理:初始令牌由监控站点生成后,沿环路固定方向绕行,得到空令牌的站点才能发送信息,其余只能接收。空令牌环行时,取得令牌者将令牌free→busy,并将欲传送的信息包附在令牌上环行,地址相符的站点考贝信息包的数据同时在信息包上做应答标志,继续往下转发令牌及信息包。令牌回到发送站点后不管发送成功与否均被释放(free)并转给下一站点──若需继续发送必须等待下一轮令牌的到来(即不得独占)。 优点:无传送冲突,可提供优先级控制,实时性最好,重载下效率反而更高。 (主要优点:可调整性,确定性) 缺点:轻载延迟大效率低(等待令牌),有令牌维护要求(避免令牌丢失或重复),控制电路较复杂。 (主要缺点:令牌维护复杂) 3.令牌总线(Token Bus)─ 轮询方式(教材P124) CSMA/CD─简单,可靠,但冲突严重时网络效率下降,不可用于重载与远程控制及有实时传送(优先级控制)要求的场合。 Token Ring─无传送冲突,实时性好,但电路复杂,造价高。 令牌总线综合了二者的优点──总线型拓扑结构,令牌同时发给所有站点,与令牌中的目标地址相符的站点获得令牌(即发送权)并转发令牌(令牌中的目标地址是按站址顺序递减,形成所谓“逻辑环”)。 适用于总线型、树型拓扑结构。 其标准为IEEE 802.4 协议。 优点:重载效率高,在总线型拓扑中实现无传送冲突并提供了优先级控制功能,有一定实时性。 缺点:轻载延迟大效率低(等待令牌),网络管理比较复杂(令牌维护,在逻辑环中增、删站点)。 参考书目 同第一章[1]、[2]、[4]、[8]、[10] 第二章作业题 1.什么是网络通信协议?常用网络通信协议有哪些?因特网使用的网络通信协议是什么? 2.OSI将通信过程分为几层?请按顺序写出各层名称,并说明其中由硬件实现的是哪几层,由软件实现的是哪几层? 3.OSI协议中所谓“封装”是指什么? 4.简述OSI下三层协议的主要功能。 5.什么叫网络拓扑?常用拓扑类型有哪几种? 6.LAN的访问控制方法有哪几种?写出其适用的拓扑类型,并指出其所用的协议名称。 7.以下网络术语的中文意思是什么? Layered architecture、protocol、star topology、bus topology、ring topology CSMA/CD、Token Ring、Token Bus、ISO、OSI、IEEE 思考题: 1、为什么网络技术领域中会有各种各样的所谓“协议”?研究协议有何意义? 2、在OSI参考模型中,通信双方的同层之间是否要求协议一致?不同层间是否要求协议一致? 3、OSI参考模型中,服务、协议、接口三者之间有何区别?