1 计算机网络基础知识
[TOC]
第一讲 计算机网络的产生与发展
计算机网络是现代通信技术与计算机技术相结合的产物。网络技术的进步正在对当前信息产业的发展产生着重要的影响。纵观计算机网络的发展历史可以发现,计算机网络与其他事物的发展一样,也经历了从简单到复杂、从低级到高级、从单机到多机的过程。在这一过程中,计算机技术和通信技术紧密结合,相互促进,共同发展,最终产生了计算机网络。计算机网络的发展大体上可以分为 4 个阶段:面向终端的通信网络阶段、计算机互连阶段、网络互连阶段、Internet与高速网络阶段。
1.面向终端的通信网络阶段
1946 年,世界上第一台数字计算机ENIAC 的问世是人类历史上划时代的里程碑,但最初的计算机数量稀少,并且非常昂贵。当时的计算机大都采用批处理方式,用户使用计算机首先要将程序和数据制成纸带或卡片,再送到中心计算机进行处理。1954 年,出现了一种被称为收发器(Transceiver)的设备,人们使用这种终端首次实现了将穿孔卡片上的数据通过电话线路发送到远地的计算机。此后,电传打字机也作为远程终端和计算机相连,用户可以利用计算机在远地电传打字机上输入自己的程序,而计算机计算出来的结果也可以传送到远地的电传打字机上并打印出来,计算机网络的基本原型就这样诞生了。
2.计算机互连阶段
随着计算机应用的发展以及计算机的普及和价格的降低,出现了多台计算机互连的需求。这种需求主要来自军事、科学研究、地区与国家经济信息分析决策、大型企业经营管理,希望将分布在不同地点且具有独立功能的计算机通过通信线路互连起来,彼此交换数据、传递信息。网络用户可以通过计算机使用本地计算机的软件、硬件与数据资源,也可以使用连网的其他地方的计算机软件、硬件与数据资源,以达到计算机资源共享的目的。
这一阶段研究的典型代表是美国国防部高级研究计划局(AdvancedResearch Projects Agency,ARPA)的 ARPANET(通常称为 ARPA 网)。ARPANET 是世界上第一个实现了以资源共享为目的的计算机网络,所以人们往往将ARPANET 作为现代计算机网络诞生的标志,现在计算机网络的很多概念都来自于ARPANET。
在这一阶段中,公用数据网(Public Data Network,PDN)与局部网络(Local Network,LN)技术也得到了迅速的发展。总而言之,计算机网络发展的第二阶段所取得的成果对推动网络技术的成熟和应用极其重要,所研究的网络体系结构与网络协议的理论成果为以后网络理论的发展奠定了坚实的基础,很多网络系统经过适当修改与充实后至今仍在广泛使用。目前国际上应用广泛的 Internet 就是在 ARPANET 的基础上发展起来的。但是,20 世纪 70 年代后期人们已经看到了计算机网络发展中出现的问题,即网络体系结构与协议标准的不统一限制了计算机网络自身的发展和应用。网络体系结构与网络协议标准必须走国际标准化的道路。
3.网络互连阶段
计算机网络发展的第 3 个阶段——网络互连阶段是加速体系结构与协议国际标准化的研究与应用的时期。1984年,经过多年卓有成效的工作,国际标准化组织(International Organization for Standardization,ISO)正式制定和颁布了“开放系统互连参考模型”(Open System Interconnection Reference Model,OSI RM)。ISO/OSI RM 已被国际社会所公认,成为研究和制订新一代计算机网络标准的基础。OSI 标准使各种不同的网络互连、互相通信变为现实,实现了更大范围内的计算机资源共享。我国也于 1989 年在《国家经济系统设计与应用标准化规范》中明确规定选定 OSI标准作为我国网络建设的标准。1990年 6 月,ARPANET 停止运行。随之发展起来的国际 Internet的覆盖范围已遍及全球,全球各种各样的计算机和网络都可以通过网络互连设备连入 Internet,实现全球范围内的数据通信和资源共享。
ISO/OSI RM 及标准协议的制定和完善正在推动计算机网络朝着健康的方向发展。很多大的计算机厂商相继宣布支持 OSI 标准,并积极研究和开发符合OSI 标准的产品。各种符合 OSIRM与协议标准的远程计算机网络、局部计算机网络与城市地区计算机网络已开始广泛应用。随着研究的深入,OSI 标准将日趋完善。
4.Internet 与高速网络阶段
目前,计算机网络的发展正处于第4 个阶段。这一阶段计算机网络发展的特点是互连、高速、智能与更为广泛的应用。Internet是覆盖全球的信息基础设施之一。对用户来说,Internet 是一个庞大的远程计算机网络,用户可以利用 Internet 实现全球范围的信息传输、信息查询、电子邮件、语音与图像通信服务等功能。实际上 Internet 是一个用网络互连设备实现多个远程网和局域网互连的国际网。
在 Internet 发展的同时,随着网络规模的增大与网络服务功能的增多,高速网络与智能网络(IntelligentNetwork,IN)的发展也引起了人们越来越多的关注和兴趣。高速网络技术的发展表现在宽带综合业务数据网(Broadband Integrated Service Digital Network,B-ISDN)、帧中继、异步传输模式(Asynchronous TransferMode,ATM)、高速局域网、交换式局域网与虚拟网络上。
提问:
计算机网络的发展可以分为几个阶段?每个阶段各有什么特点?
第二讲 计算机网络概述及拓扑结构
所谓计算机网络,就是把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息,共享硬件、软件、数据信息等资源。
计算机网络主要包含连接对象、连接介质、连接的控制机制和连接的方式 4 个方面。“对象”主要是指各种类型的计算机(如大型机、微型计算机、工作站等)或其他数据终端设备;“介质”是指通信线路(如双绞线、同轴电缆、光纤、微波等)和通信设备(如网桥、网关、中继器、路由器等);“控制机制”主要是指网络协议和各种网络软件;“连接方式”主要是指网络所采用的拓扑结构(如星型、环型、总线型和网状型等)。
1.通信子网
通信子网由通信控制处理机(Communication ControlProcessor,CCP)、通信线路和其他网络通信设备组成,主要承担全网的数据传输、转发、加工、转换等通信处理工作。
通信控制处理机在网络拓扑结构中通常被称为网络节点。其主要功能一是作为主机和网络的接口,负责管理和收发主机和网络所交换的信息;二是作为发送信息、接收信息、交换信息和转发信息的通信设备,负责接收其他网络节点送来的信息,并选择一条合适的通信线路发送出去,完成信息的交换和转发功能。
通信线路是网络节点间信息传输的通道,通信线路的传输媒体主要有双绞线、同轴电缆、光纤、无线电和微波等。
2.资源子网
资源子网主要负责全网的数据处理业务,向全网用户提供所需的网络资源和网络服务。资源子网主要由主机(Host)、终端(Terminal)、终端控制器、连网外部设备以及软件资源和信息资源等组成。
主机是资源子网的重要组成单元,既可以是大型机、中型机、小型机,也可以是局域网中的微型计算机。主机是软件资源和信息资源的拥有者,一般通过高速线路和通信子网中的节点相连。终端是直接面向用户的交互设备。终端的种类很多,如交互终端、显示终端、智能终端、图形终端等。
连网外部设备主要是指网络中的一些共享设备,如高速打印机、绘图仪和大容量硬盘等。
3.计算机网络的功能
1).数据通信
数据通信是计算机网络最基本的功能,为网络用户提供了强有力的通信手段。计算机网络建设的主要目的之一就是使分布在不同物理位置的计算机用户相互通信和传送信息(如声音、图形、图像等多媒体信息)。计算机网络的其他功能都是在数据通信功能基础之上实现的,如发送电子邮件、远程登录、连机会议、WWW 等。
2).资源共享
(1)硬件和软件的共享。计算机网络允许网络上的用户共享不同类型的硬件设备,通常有打印机、光驱、大容量的磁盘以及高精度的图形设备等。软件共享通常是指某一系统软件或应用软件(如数据库管理系统),如果占用的空间较大,则可将其安装到一台配置较高的服务器上,并将其属性设置为共享,这样网络上的其他计算机即可直接利用,极大地节省了计算机的硬盘空间。
(2)信息共享。信息也是一种宝贵的资源,Internet 就像一个浩瀚的海洋,有取之不尽、用之不竭的信息与数据。每一个连入 Internet 的用户都可以共享这些信息资源(如,各类电子出版物、网上新闻、网上图书馆和网上超市等)。
3).均衡负荷与分布式处理
当网络中某台计算机的任务负荷太重时,可将任务分散到网络中的各台计算机上进行,或由网络中比较空闲的计算机分担负荷。这样既可以处理大型的任务,使其中一台计算机不会负担过重,又提高了计算机的可用性,起到了均衡负荷和分布式处理的作用。
4).提高计算机系统的可靠性
提高计算机系统的可靠性也是计算机网络的一个重要功能。在计算机网络中,每一台计算机都可以通过网络为另一台计算机备份以提高计算机系统的可靠性。这样,一旦网络中的某台计算机发生了故障,另一台计算机可代替其完成所承担的任务,整个网络可以照常运转。
4. 计算机网络的分类和拓扑结构
用于计算机网络分类的标准很多,如拓扑结构、应用协议、传输介质、数据交换方式等。但是,这些标准只能反映网络某方面的特征,不能反映网络技术的本质。最能反映网络技术本质特征的分类标准是网络的覆盖范围。按网络的覆盖范围可以将网络分为局域网(Local Area Network,LAN)、广域网(WideArea Network,WAN)、城域网(Metropolitan Area Network,MAN)和国际互联网(Internet),如表 1-1 所示。
网络种类 | 覆盖范围 | 分布距离 |
---|---|---|
局域网LAN | 一个建筑群内或一个学校 | 几千米以内 |
城域网MAN | 城市内 | 几千米到几十千米 |
广域网WAN | 跨地区、跨城市、跨国家 | 几百千米到几千千米 |
国际互联网Internet | 将同类和不同类的物理网络(局域网、广域网和城域网)通过某种协议互连起来的一种高层技术。 | 一千KM以上 |
(1)局域网。局域网的地理分布范围在几千米以内,一般局域网络建立在某个机构所属的一个建筑群内或一个学校的校园内部,甚至几台计算机也能构成一个小型局域网络。由于局域网的覆盖范围有限,数据的传输距离短,因此局域网内的数据传输速率都比较高,一般在 10~100Mbit/s,现在高速的局域网传输速率可达到 1 000 Mbit/s。
(2)广域网。广域网也称为远程网,是远距离的、大范围的计算机网络。这类网络的作用是实现远距离计算机之间的数据传输和信息共享。广域网可以是跨地区、跨城市、跨国家的计算机网络,覆盖范围一般是几百千米到几千千米的广阔地理区域,通信线路大多借用公用通信网络(如公用电话网 PSTN)。由于广域网涉辖的范围很大,连网的计算机众多,因此广域网上的信息量非常大,共享的信息资源极为丰富。但是广域网的数据传输速率比较低,一般在 64 kbit/s~2 Mbit/s。
(3)城域网。城域网的覆盖范围在局域网和广域网之间,一般为几千米到几十千米,通常在一个城市内。
(4)国际互联网。Internet 并不是一种具体的网络技术,而是将同类和不同类的物理网络(局域网、广域网和城域网)通过某种协议互连起来的一种高层技术。
5 .计算机网络的拓扑结构
常见的计算机网络拓扑结构有星型、环型、总线型、树型和网状型。
(1)星型拓扑网络。在星型拓扑网络结构中,各节点通过点到点的链路与中央节点连接,如图 1-4 所示。中央节点可以是转接中心,起到连通的作用;也可以是一台主机,此时具有数据处理和转接的功能。星型拓扑网络的优点是很容易在网络中增加和移动节点,容易实现数据的安全性和优先级控制;缺点是属于集中控制,对中央节点的依赖性大,一旦中央节点有故障就会引起整个网络的瘫痪。
(2)环型拓扑网络。在环型拓扑网络中,节点通过点到点的通信线路连接成闭合环路,如图 1-5 所示。环中数据将沿一个方向逐站传送。环型拓扑网络结构简单,传输延时确定,但是环中每个节点与连接节点之间的通信线路都会成为网络可靠性的屏障。环中某一个节点出现故障就会造成网络瘫痪。另外,对于环型网络,网络节点的增加和移动以及环路的维护和管理都比较复杂。
(3)总线型拓扑网络。在总线型拓扑网络中,所有节点共享一条数据通道,如图 1-6 所示。一个节点发出的信息可以被网络上的每个节点接收。由于多个节点连接到一条公用信道上,所以必须采取某种方法分配信道,以决定哪个节点可以优先发送数据。
总线型网络结构简单,安装方便,需要铺设的线缆最短,成本低,并且某个站点自身的故障一般不会影响整个网络,因此是普遍使用的网络之一。其缺点是实时性较差,总线上的故障会导致全网瘫痪。
(4)树型拓扑网络。在树型拓扑结构中,网络的各节点形成了一个层次化的结构,如图 1-7 所示。
树中的各个节点通常都为主机,树中低层主机的功能和应用有关,一般都具有明确定义功能,如数据采集、变换等;高层主机具备通用的功能,以便协调系统的工作,如数据处理、命令执行等。一般来说,树型拓扑网络的层次数量不宜过多,以免转接开销过大,使高层节点的负荷过重。若树型拓扑结构只有两层,就变成了星型结构,因此,可以将树型拓扑结构视为星型拓扑结构的扩展结构。
(5)网状型拓扑网络。在网状型拓扑网络中,节点之间的连接是任意的,没有规律,如图 1-8所示。其主要优点是可靠性高,但结构复杂,必须采用路由选择算法和流量控制方法。广域网基本上都是采用网状型拓扑结构。
提问:
1.按照覆盖范围来分,计算机网络可以分为哪几类?4
2.局域网、城域网和广域网的主要特征是什么?
3.计算机网络可以应用在哪些领域?分别举例说明。?
2数据通信技术(物理层+链路层)
数据通信的基本概念及常见的传输介质
通信的目的是交换信息(Information)。一般认为,信息是人们对现实世界事物存在方式或运动状态的某种认识。信息的载体可以是数值、文字、图形、声音、图像以及动画等。任何事物的存在都伴随着相应信息的存在,信息不仅能够反映事物的特征、运动和行为,还能够借助媒体(如空气、光波、电磁波等)传播和扩散。这里把“事物发出的消息、情报、数据、指令、信号等当中包含的意义”定义为信息。数据是指把事件的某些属性规范化后的表现形式,可以被识别,也可以被描述。数据按其连续性可分为模拟数据与数字数据。模拟数据取连续值,数字数据取离散值。在数据被传送之前,要变成适合于传输的电磁信号——模拟信号或数字信号。可见,信号(signal)是数据的电磁波表示形式,一般以时间为自变量,以表示信息(数据)的某个参量(振幅、频率或相位)为因变量。
1.数据通信的技术指标
(1)传输速率。传输速率是指信道上传输信息的速度,是描述数据传输系统的重要技术指标之一。传输速率一般有两种表示方法,即信号速率和调制速率。信号速率是指单位时间内所传送的二进制位代码的有效位数,以每秒多少比特数计,单位为比特/秒(bit/s)。数字信号的速率通常用“比特/秒”来表示。调制速率是指每秒传送的脉冲数,即波特率,单位为波特/秒(Baud/s),是指信号在调制过程中调制状态每秒钟转换的次数。一“波特”即模拟信号的一个状态,不仅表示一位数据,而且代表了多位数据。所以,“波特”与“比特”的意义是不同的,模拟信号的速率通常用“波特/秒”来表示。
(2)信道带宽。信道带宽是指信道中传输的信号在不失真的情况下所占用的频率范围,单位用赫兹(Hz)表示。为了更好地理解带宽的概念,不妨用人的听觉系统打个比方:人耳所能感受的声波范围是 20~20 000 Hz,低于这个范围的称为次声波,高于这个范围的称为超声波,人的听觉系统无法将次声波和超声波传递到大脑,所以用 20 000 Hz 减去 20 Hz 所得的值就好比是人类听觉系统的带宽。数据通信系统的信道传输的不是声波,而是电磁波(包括无线电波、微波、光波等),其带宽就是所能传输电磁波的最大有效频率减去最小有效频率所得到的值。
(3)信道容量。信道容量是衡量一个信道传输数字信号的重要参数。信道的传输能力是有一定限制的,某个信道传输数据的速率有一个上限,即单位时间内信道上所能传输的最大比特数,单位为比特/秒(bit/s),将其称为信道容量。无论采用何种编码技术,传输数据的速率都不可能超过信道容量上限,否则信号就会失真。
(4)信道带宽和信道容量的关系。理论分析证明,信道的容量与信道带宽成正比关系,即信道带宽越宽,信道容量就越大,所以人们有时愿意将“带宽”作为信道所能传送的“最高速率”的同义语,尽管这种叫法不太严格。
2.通信方式
按照信号传送方向与时间的关系,可以将数据通信分为以下 3 种方式。
(1)单工通信。单工通信是指通信双方只能由一方将数据传输给另一方,数据信号只能沿一个方向传输,发送方只能发送不能接收,接收方只能接收而不能发送,任何时候都不能改变信号的传送方向,如图 2-2 所示。例如,有线电视广播就是一种单工通信方式,电视台只能发送信息,用户的电视机只能接收信息。
(2)半双工通信。半双工通信是指通信的双方都可以发送和接收信息,但不能同时发送(当然也不能同时接收),只能交替进行。这种通信方式是一方发送信息,另一方接收信息,一段时间后再反过来(通过开关装置进行切换),如图 2-3 所示。例如,对讲机和步话机的工作方式就是典型的半双工通信。
(3)全双工通信。全双工通信是指通信的双方可以同时发送和接收信息。全双工通信需要两条信道,一条用来接收信息,另一条用来发送信息,其通信效率很高,但结构复杂、成本高,如图 2-4 所示。例如,在电话系统中,用户既可以打电话,又可以接电话。在正常的电话通信过程中,通话的一方在说话,另一方在听电话,当然在不同的时刻,说话和听电话的双方是可以相互转换的,这时的电话通信就属于半双工的通信方式。如果通话的双方发生争吵,同时发表意见,采用的就是全双工通信方式。
目前大多数网络中的通信都实现了全双工通信。
3.传输介质的主要特性和应用
网络上数据的传输需要有“传输媒体”,好比是车辆必须在公路上行驶一样,道路质量的好坏会影响到行车的安全舒适。同样,网络传输介质的质量好坏也会影响数据传输的质量。
常用的网络传输介质可分为两类:一类是有线的,另一类是无线的。有线传输介质主要有双绞线(Twisted Pair,包括屏蔽双绞线和非屏蔽双绞线)、同轴电缆(Coaxial Cable)及光纤(Fiber Optics),如图 2-9 所示;无线传输介质有无线电波、红外线等。
双绞线是由相互绝缘的两根铜线按一定扭矩相互绞合在一起的类似于电话线的传输媒体,每根铜线加绝缘层并有颜色标记,。成对线的扭绞旨在使电磁辐射和外部电磁干扰减到最小。双绞线的性能好、价格低,因此是目前使用最广泛的传输介质。
双绞线可以用于传输模拟信号和数字信号,传输速率根据线的粗细和长短而变化。一般来讲,线的直径越大,传输距离就越短,传输速率也就越高。
局域网中使用的双绞线分为屏蔽双绞线(Shielded TwistedPair,STP)和非屏蔽双绞线(Unshielded Twisted Pair,UTP)两类。两者的差异在于屏蔽双绞线在双绞线和外皮之间增加了一个铅箔屏蔽层,如图 2-11(a)所示,目的是提高双绞线的抗干扰性能,但其价格是非屏蔽双绞线的两倍以上。屏蔽双绞线主要用于安全性要求较高的网络环境中,如军事网络、股票网络等,而且使用屏蔽双绞线的网络为了达到屏蔽的效果,所有的插口和配套设施均使用屏蔽的设备,否则就达不到真正的屏蔽效果,所以整个网络的造价会比使用非屏蔽双绞线的网络高出很多,因此至今一直未被广泛使用。
同轴电缆也是一种常用的传输介质。这种电缆在实际中的应用很广泛,如有线电视网。组成同轴电缆的内外两个导体是同轴的,如图 2-15 所示,“同轴”之名正是由此而来。同轴电缆的外导体是一个由金属丝编织而成的圆柱形的套管,内导体是圆形的金属芯线,一般都采用铜制材料。内外导体之间填充着绝缘介质。同轴电缆可以是单芯的,也可以将多条同轴电缆安排在一起形成同轴电缆。同轴电缆绝缘效果佳、频带宽、数据传输稳定、价格适中、性价比高,因此是早期局域网中普遍采用的一种传输介质。
同轴电缆又可分为两类:细缆和粗缆。经常提到的 10 Base-2 和 10 Base-5 以太网就是分别使用细同轴电缆和粗同轴电缆组网的。使用同轴电缆组网时需要在两端连接50 Ω 的反射电阻,这就是通常所说的终端匹配器。同轴电缆组网的其他连接设备随细缆与粗的差别而不尽相同,即使名称一样,其规格、大小也是有差别的。
光纤由纤芯、包层和保护层组成,如图 2-18 所示。每根光纤只能单向传送信号,因此要实现双向通信,光缆中至少应包括两条独立的导芯,一条发送,另一条接收。光纤两端的端头都是通过电烧烤或化学环氯工艺与光学接口连接在一起的。一根光缆可以包括两根至数百根光纤,并用加强芯和填充物来提高机械强度。
光束在玻璃纤维内传输,防磁防电,传输稳定,质量高。由于可见光的频率大约是10 14 Hz,因而光传输系统可使用的带宽范围极大,多适用于高速网络和骨干网。光纤传输系统中的光源可以是发光二极管(Light-Emitting Diode,LED),也可以是注入式二极管(InjectLight Diode,ILD)。当光通过这些器件时发出光脉冲,光脉冲通过光缆从而传输信息。光脉冲出现表示为“1”,不出现表示为“0”。在光缆的两端都要有一个装置来完成电/光信号和光/电信号的转换,接收端将光信号转换成电信号时,要使用光电二极管(PositionIntrinsic-Negatioe,PIN)检波器或 APD 检波器。
提问:
1. 什么是数字信号,什么是模拟信号?两者的区别是什么?
2. 什么是信道?信道可以分为哪两类?
- 什么是传输速率?表示传输速率的基本方法有哪两种,分别适用于什么场合?
数据编码及差错控制技术
数据是信息的载体,计算机中的数据是以离散的“0”“1”二进制比特序列方式表示的。为了正确地传输数据,就必须对原始数据进行编码,而数据编码类型取决于通信子网的信道所支持的数据通信类型。
根据数据通信类型的不同,通信信道可分为模拟信道和数字信道两类。相应地,数据编码的方法也分为模拟数据编码和数字数据编码两类。网络中基本的数据编码方式归纳如图 2-35所示。
1.数字编码技术
数字信号可以利用数字通信信道来直接传输(即基带传输),此时需要解决的问题是数字数据的数字信号表示以及收发两端之间的信号同步两个方面。
在基带传输中,数字数据的数字信号编码主要有以下 3 种方式。
(1)非归零码(Non-Return to Zero,NRZ)。非归零码可以用低电平表示“0”,用高电平表示“1”。必须在发送 NRZ 码的同时,用另一个信号同时传送同步时钟信号,如图 2-38(a)所示。
(2)曼彻斯特编码(Manchester)。其编码规则是:每比特的周期 T 分为前 T/2 与后 T/2。前T/2 传送该比特的反码,后 T/2传送该比特的原码,如图2-38(b)所示。
(3)差分曼彻斯特编码(Difference Manchester)。其编码规则是:每比特的值根据开始边界是否发生电平跳变来决定。一个比特开始处出现电平跳变表示“0”,不出现跳变表示“1”,每比特中间的跳变仅用来作为同步信号,如图 2-38(c)所示。差分曼彻斯特编码和曼彻斯特编码都属于“自含时钟编码”,发送时不需要另外发送同步信号。
2.差错产生的原因与差错类型
我们通常将发送的数据与通过通信信道后接收到的数据不一致的现象称为传输差错,简称为差错。
差错的产生是无法避免的。信号在物理信道中传输时,线路本身电器特性造成的随机噪声、信号幅度的衰减、频率和相位的畸变、电器信号在线路上产生反射造成的回音效应、相邻线路间的串扰以及各种外界因素(如大气中的闪电、开关的跳火、外界强电流磁场的变化、电源的波动等)都会造成信号的失真。在数据通信中,将会使接收端收到的二进制数位和发送端实际发送的二进制数位不一致 “0”变成“1”或由“1”变成“0”的差错,差错控制的目的和任务就是面对现实承认传输线路中的出错情况,分析差错产生的原因和差错类型,采取有效的措施,即差错控制方法来发现和纠正差错,以提高信息的传输质量。
传输中的差错都是由噪声引起的。噪声有两大类:一类是信道固有的、持续存在的随机热噪声;另一类是由外界特定的短暂原因所造成的冲击噪声。
热噪声由传输介质导体的电子热运动产生,是一种随机噪声,所引起的传输差错为随机差错,这种差错的特点是所引起的某位码元(二进制数字中每一位的通称)的差错是孤立的,与前后码元没有关系。热噪声导致的随机错误通常较少。
冲击噪声是由外界电磁干扰引起的,与热噪声相比,冲击噪声幅度较大,是引起传输差错的主要原因。冲击噪声所引起的传输差错为突发差错,这种差错的特点是前面的码元出现了错误,往往会使后面的码元也出现错误,即错误之间有相关性
误码率是指二进制码元在数据传输系统中被传错的概率,在数值上近似等于 P e =N e /N。其中 N为传输的二进制码元总数,N e 为被传错的码元数。
在理解误码率定义时应注意以下 3 个问题。
(1)误码率是衡量数据传输系统正常工作状态下传输可靠性的参数。
(2)对于一个实际的数据传输系统,不能笼统地说误码率越低越好,要根据实际传输要求提出误码率指标;在数据传输速率确定后,误码率越低,传输系统设备越复杂,造价也越高。
(3)对于实际数据传输系统,如果传输的不是二进制码元,则要换算成二进制码元来计算。
在实际的数据传输系统中,人们需要一种通信信道进行大量、重复测试,才能求出该信道的平均误码率,或者给出某些特殊情况下的平均误码率。根据测试,目前电话线路在 300 bit/s~2 400 bit/s传输速率时,平均误码率在 10 −4 ~10 −6 。而计算机通信的平均误码率要求低于 10 −9 。因此,普通通信信道如不采取差错控制技术是不能满足计算机通信要求的。
3.差错的控制
提高数据传输质量的方法有两种。第一种方法是:改善通信线路的性能,使错码出现的概率。
降低到满足系统要求的程度。但这种方法受经济上和技术上的限制,达不到理想的效果。第二种方法是:虽然传输中不可避免地会出现某些错码,但可以将其检测出来,并用某种方法纠正检出的错码,以达到提高实际传输质量的目的。第二种方法最为常用的是采用抗干扰编码和纠错编码。
目前广泛采用的有奇偶校验码、方块码和循环冗余码等。。
1.奇偶校验
奇偶校验称为字符校验、垂直奇偶校验(VerticalRedundancy Check,VRC)。奇偶校验是以字符为单位的校验方法,是最简单的一种校验方法。在每个字符编码的后面另外增加一个二进制位,该位称为校验位。其主要目的是使整个编码中 1 的个数成为奇数或偶数。如果使编码中 1 的个数成为奇数则称为奇校验;反之,则称为偶校验。
例如,字符 R 的 ASCII 编码为 1010010,后面增加一位进行奇校验 10100100(使 1 的个数为奇数),传送时其中一位出错,如传成了 10110100,奇校验就能检查出错误。若传送有两位出错时,如 10111100,奇校验就不能检查出错误了。实际传输过程中,偶然一位出错的机会最多,故这种简单的校验方法还是很有用处的。但这种方法只能检测错误,不能纠正错误,不能检测出错在哪一位,故一般只能用于通信要求较低的环境。
2.方块校验
方块校验又称为报文校验、水平垂直奇偶校验(LevelRedundancy Check,LRC)。这种方法是在奇偶校验方法的基础上,在一批字符传送之后,另外增加一个检验字符,该检验字符的编码方法是使每一位纵向代码中 1 的个数也成为奇数(或偶数)。例如:
采用这种方法之后,不仅可以检验出 1 位、2 位或 3 位的错误,还可以自动纠正 1 位出错,使误码率降至原误码率的百分之一到万分之一,纠错效果十分显著,因此方块校验适用于中、低速传输系统和反馈重传系统中。
循环冗余码(Cyclic Redundancy Code,CRC)是使用最广泛并且检错能力很强的一种检验码。CRC 的工作方法是在发送端产生一个循环冗余码,附加在信息位后面一起发送到接收端,接收端收到的信息按发送端形成循环冗余码同样的算法进行校验,若有错,需重发。该方法不产生奇偶校验码,而是把整个数据块当成一串连续的二进制数据。从代数结构来说,把各位看成是一个多项式的系数,则该数据块就和一个 n 次的多项式相对应。
(2)CRC 校验的基本思想和运算规则。循环冗余校验的基本思想是:把要传送的信息码看成是一个多项式 M(X)的系数,在发送前,将多项式用生成多项式 G(X)来除,将相除结果的余数作为校验码跟在原信息码之后一同发送出去。在接收端,把接收到的含校验码的信息码再用同一个生成多项式来除,如果在传送过程中无差错,则应该除尽,即余数应为 0;若除不尽,则说明传输过程中有差错,应要求对方重新发送一次。
CRC 校验中求余数的除法运算规则是:多项式以 2 为模运算,加法不进位,减法不借位。加法和减法两者都与异或运算相同。长除法同二进制运算是一样的,只是做减法时按模 2 进行,如果减出的值最高位为 0,则商为 0;如果减出的值最高位为1,则商为 1。
(3)CRC 检验和信息编码的求取方法。设 r 为生成多项式 G(X)的阶。
① 在数据多项式 M(X)的后面附加 r 个“0”,得到一个新的多项式 M'(X)。
② 用模 2 除法求得 M' (X)/G(X)的余数。
③ 将该余数直接附加在原数据多项式 M(X)的系数序列的后面,结果即为最后要发送的检验和信息编码多项式 T(X)。
提问:
计算CRC:
链路层协议
1.关键性假设
2.无限制单工协议(协议1)
1. 无错信道上的单工停-等协议(协议2)
-
有错信道上的单工停-等协议
-
滑动窗口协议
提问:
1. 讲解链路层协议的工作过程及代码原理?
3 计算机网络体系结构与协议
网络体系结构与协议概述
体系结构(Architecture)是研究系统各部分组成及相互关系的技术科学。计算机网络体系结构是指整个网络系统的逻辑组成和功能分配,定义和描述了一组用于计算机及其通信设施之间互连的标准和规范的集合。研究计算机网络体系结构的目的在于定义计算机网络各个组成部分的功能,以便在统一的原则指导下进行计算机网络的设计、建造、使用和发展。
1.网络协议的概念
从最根本的角度上讲,协议就是规则。例如,在公共交通公路上行驶的各种交通工具需要遵守交通规则,这样才能减少交通阻塞,有效地避免交通事故的发生。又如,不同国家的人使用的是不同的语言,如果事先不约定好使用同一种语言,那么进行沟通时将会非常困难。
在计算机网络的通信过程中,数据从一台计算机传输到另一台计算机称为数据通信或数据交换。同理,网络中的数据通信也需要遵守一定的规则,以减少网络阻塞,提高网络的利用率。网络协议就是为进行网络中的数据通信或数据交换而建立的规则、标准或约定。连网的计算机以及网络设备之间要进行数据与控制信息(一种用于控制设备如何工作的数据)的成功传递就必须共同遵守网络协议。
网络协议主要由以下 3 个要素组成。
(1)语法(Syntax)。语法规定了通信双方“如何讲”,即确定用户数据与控制信息的结构与格式。
(2)语义(Semantics)。语义规定通信的双方准备“讲什么”,即需要发出何种控制信息,完成何种动作以及做出何种应答。
(3)时序(Timing)。时序又可称为“同步”,规定了双方“何时进行通信”,即事件实现顺序的详细说明。
下面以两个通话人为例来说明网络协议的概念。
甲要打电话给乙,首先甲拨通乙的电话号码,对方电话振铃,乙拿起电话,然后甲、乙开始通话,通话完毕后,双方挂断电话。在这个过程中,甲、乙双方都遵守了打电话的协议。其中,电话号码是“语法”的一个例子,一般电话号码由 8 位阿拉伯数字组成,如果是长途就要加区号,国际长途还有国家代码等;甲拨通乙的电话后,乙的电话会振铃,振铃是一个信号,表示有电话打进,乙选择接电话,这一系列的动作包括了控制信号、相应动作等,就是“语义”的例子;“时序”的概念更好理解,因为甲拨通了电话,乙的电话才会响,乙听到铃声后才会考虑要不要接,这一系列事件的因果关系十分明确,不可能没有人拨乙的电话而乙的电话会响,也不可能在电话铃没响的情况下,乙拿起电话却从话筒里传出甲的声音。
2.网络协议的分层
计算机网络是一个非常复杂的系统,因此网络通信也比较复杂。网络通信的涉及面极广,不仅涉及网络硬件设备(如物理线路、通信设备、计算机等),还涉及各种各样的软件,所以用于网络的通信协议必然很多。实践证明,结构化设计方法是解决复杂问题的一种有效手段,其核心思想就是将系统模块化,并按层次组织各模块。因此,在研究计算机网络的结构时,通常也按层次进行分析。
计算机网络中采用分层体系结构,主要有以下一些好处。
(1)各层之间可相互独立。高层并不需要知道低层是采用何种技术来实现的,而只需要知道低层通过接口能提供哪些服务。每一层都有一个清晰、明确的任务,实现相对独立的功能,因而可以将复杂的系统性问题分解为一层一层的小问题。当属于每一层的小问题都解决了,那么整个系统的问题也就接近于完全解决了。
(2)灵活性好,易于实现和维护。如果把网络协议作为一个整体来处理,那么任何方面的改进必然都要对整体进行修改,这与网络的迅速发展是极不协调的。若采用分层体系结构,由于整个系统已被分解成了若干个易于处理的部分,那么这样一个庞大而又复杂的系统的实现与维护也就变得容易控制了。当任何一层发生变化时(如技术的变化),只要层间接口保持不变,则其他各层都不会受到影响。外,当层提供的服务不再被其他层需要时,可以将该层直接取消。
(3)有利于促进标准化。这主要是因为每一层的协议已经对该层的功能与所提供的服务做了明确的说明。
网络协议都是按层的方式来组织的,每一层都建立在下一层之上。不同的网络,其层次数、各层的名字、内容和功能都不尽相同。然而,在所有的网络中,每一层的目的都是向上一层提供一定的服务,而上一层根本不需要知道下一层是如何实现服务的。
每一对相邻层次之间都有一个接口(Interface),接口定义了下层向上层提供的原语操作(即命令)和服务,相邻两个层次都是通过接口来交换数据的。当网络设计者在决定一个网络应包括多少层、每一层应当做什么的时候,其中一个很重要的考虑就是要在相邻层次之间定义一个清晰的接口。为达到这些目的,又要求每一层能完成一组特定的有明确含义的功能。低层通过接口向高层提供服务。只要接口条件不变、低层功能不变,低层功能的具体实现方法与技术的变化就不会影响整个系统的工作。计算机网络的层次模型如图 3-1 所示。
每一层中的活动元素通常称为实体(Entity)。实体既可以是软件实体(如一个进程),也可以是硬件实体(如智能输入/输出芯片)。不同通信节点上的同一层实体称为对等实体(Peer Entity)。
例如,网络中一个通信节点上的第 3 层与另一个通信节点上的第 3 层进行对话时,通话双方的两个程就是对等实体,通话的规则即为第 3 层上的协议。在计算机网络中,正是对等实体利用该层的协议在互相通信。但是在实际的通信过程中,数据并不是从节点 1 的第 3 层直接传送到节点2 的第 3 层,而是每一层都把数据和控制信息交给下一层,直到第 1 层。第 1 层下面是物理传输介质,进行实际的数据传输。对等实体间的通信过程如图 3-2 所示。
提问:
1. 什么是网络协议?网络协议在网络中的作用是什么?
2. 网络协议采用层次结构模型有什么好处?简述网络层次间的关系?
OSI与TCP/IP模型概念及比较
在 20 世纪 70 年代中期,美国 IBM 公司推出了系统体系结构(System NetworkArchitecture,SNA)。以后 SNA 又不断进行了版本更新,它是一种世界上广泛使用的体系结构。随着全球网络应用的不断发展,不同网络体系结构的网络用户之间需要进行网络的互连和信息的交换。1984 年,国际标准化组织(InternationalOrganization for Standardization,ISO)发表了著名的ISO/IEC 7498标准,定义了网络互连的 7 层框架,这就是开放系统互连参考模型,即 ISO/OSI RM(ReferenceModel of Open SystemInterconnection)。这里的“开放”是指只要遵循 OSI 标准,一个系统就可以与位于世界上任何地方、同样遵循 OSI 标准的其他任何系统进行通信。
1.OSI模型的层次结构
ISO/OSI 只给出了一些原则性的说明,并不是一个具体的网络。OSI 参考模型将整个网络的功能划分成 7 个层次,最高层为应用层,面向用户提供网络应用服务;最低层为物理层,与通信介质相连实现真正的数据通信。两个用户计算机通过网络进行通信时,除物理层之外,其余各对等层之间均不存在直接的通信关系,而是通过各对等层的协议来进行通信。只有两个物理层之间通过通信介质进行真正的数据通信。
2.OSI的分层
ISO 已经为各层制定了标准,各个标准作为独立的国际标准公布。下面以从低层到高层的顺序依次介绍OSI 参考模型的各层。
物理层(Physical Layer)是 OSI 参考模型的最低层。物理层的主要任务就是透明地传送二进制比特流,即经过实际电路传送后的比特流没有发生变化。但是物理层并不关心比特流的实际意义和结构,只是负责接收和传送比特流。作为发送方,物理层通过传输介质发送数据;作为接收方,物理层通过传输介质接收数据。物理层的另一个任务就是定义网络硬件的特性,包括使用什么样的传输介质以及与传输介质连接的接头等物理特性。
物理层定义的典型规范代表有 EIA/TIA RS-232、EIA/TIARS-449、V.35、RJ-45 等。值得注意的是,传送信息所利用的物理传输介质,如双绞线、同轴电缆、光纤等,并不在物理层之内而是在物理层之下。
数据链路层(Data Link Layer)是 OSI 参考模型的第 2 层。数据链路层的主要任务是在两个相邻节点间的线路上无差错地传送以帧(Frame)为单位的数据,使数据链路层对网络层显现为一条无差错线路。由于物理层仅仅接收和传送比特流,并不关心比特流的意义和结构,所以数据链路层要产生和识别帧边界。另外,数据链路层还提供了差错控制与流量控制的方法,保证在物理线路上传送的数据无差错。广播式网络在数据链路层还要处理新的问题,即如何控制各个节点对共享信道的访问。数据链路层协议的代表有 SDLC、HDLC、PPP、STP、帧中继等。
网络层(Network Layer)是OSI 参考模型的第3 层,在这一层,数据的单位为数据分组(Packet)。网络层的关键问题是如何进行路由选择,以确定数据分组(数据包)如何从发送端到达接收端。如果在子网中同时出现的数据分组太多,将会互相阻塞,影响数据的正常传输。因此,拥塞控制也是网络层的功能之一。另外,当数据分组需要经过另一个网络以到达目的地时,第二个网络的寻址方法、分组长度、网络协议可能与第一个网络不同,因此,网络层还要解决异构网络的互连问题。网络层协议的代表有 IP、IPX、RIP、OSPF 等。
传输层(Transport Layer)是 OSI 参考模型的第 4 层。传输层从会话层接收数据,形成报文(Message),并且在必要时将其分成若干个分组,然后交给网络层进行传输。
传输层的主要功能是:为上一层进行通信的两个进程之间提供一个可靠的端到端服务,使传输层以上的各层看不见传输层以下的数据通信细节,传输层以上的各层不再关心信息传输的问题。端到端是指进行相互通信的两个节点不是直接通过传输介质连接起来的,相互之间有很多交换设备(如路由器)。这样的两个节点之间的通信就称为端到端通信。传输层协议的代表有 TCP、UDP、SPX 等。
会话层(Session Layer)是 OSI 参考模型的第 5 层。会话层允许不同机器上的用户建立会话关系,主要是针对远程访问,主要任务包括会话管理、传输同步以及数据交换管理等。会话一般都是面向连接的,如当文件传输到中途时建立的连接突然断掉,是从文件的开始重传还是断点续传,这个任务由会话层来完成。会话层协议的代表有 NetBIOS、ZIP(AppleTalk 区域信息协议)等。
表示层(Presentation Layer)是 OSI 参考模型的第 6 层。表示层关心的是所传输的信息的语法和语义。表示层的主要功能是:用于处理在多个通信系统之间交换信息的表示方式,主要包括数据格式的转换、数据加密与解密、数据压缩与恢复等。表示层协议的代表有 ASCII、ASN.1、JPEG、MPEG 等。
应用层(Application Layer)是 OSI 参考模型的最高层。应用层为网络用户或应用程序提供各种服务,如文件传输、电子邮件、网络管理和远程登录等。应用层协议的代表有 Telnet、FTP、HTTP、SNMP 等。
-
TCP/IP模型
TCP/IP 标准由一系列的文档定义组成,这些文档定义描述了 Internet 的内部实现机制,以及各种网络服务或服务的定义。TCP/IP 标准并不是由某个特定组织开发的,实际上是由一些团体所共同开发的,任何人都可以把自己的意见作为文档发布,但只有被认可的文档才能最终成为Internet 标准。
作为一套完整的网络通信协议,TCP/IP 实际上是一个协议簇。除了其核心协议——TCP 和 IP之外,TCP/IP 簇还包括一系列其他协议,包含在 TCP/IP 簇的 4 个层次中,形成了TCP/IP 栈,如图 3-6 所示。
TCP/IP 参考模型的主机—网络层与 OSI 参考模型的数据链路层和物理层相对应;TCP/IP 参考模型的互连层与 OSI 参考模型的网络层相对应;TCP/IP参考模型的传输层与 OSI 参考模型的传输层相对应;TCP/IP 参考模型的应用层与 OSI 参考模型的应用层相对应。
根据 OSI 模型的经验,会话层和表示层对大多数应用程序没有用处,所以 TCP/IP 参考模型将其排除在外。TCP/IP 参考模型各层次的功能如下。
主机—网络层(Host to Network Layer)是 TCP/IP 参考模型中的最低层。事实上,TCP/IP 参考模型并没有真正定义这一部分,只是指出在这一层上必须具有物理层和数据链路层的功能,以实现从网络层传送下来的数据发送到目的主机的网络层。至于在这一层上使用哪些标准,则不是TCP/IP 参考模型所关心的。在主机—网络层中包含了多种网络层协议,如以太网协议(Ethernet)、令牌环网协议(Token Ring)、分组交换网协议(X.25)等。
互连层(Internet Layer)是 TCP/IP 参考模型中的第 2 层,是整个 TCP/IP 参考模型的关键部分。互连层提供的是无连接的服务,主要负责将源主机的数据分组(Packet)发送到目的主机。源主机与目的主机既可以在同一个物理网内,也可以不在一个物理网内。互连层上定义了正式的数据分组格式和协议,即网际协议(Internet Protocol,IP)。除了 IP之外,还包括一些用于互连层的控制协议,如 Internet 控制报文协议(Internet Control Message Protocol,ICMP)、地址解析协议(Address Resolution Protocol,ARP)、反向地址解析协议(ReverseAddress Resolution Protowl,RARP)等。这些协议将在第 7 章中进行详细的介绍。
互连层的主要功能包括以下几点。
(1)处理来自传输层的分组发送请求。在接收到分组发送请求之后,将分组装入 IP 数据报,填充报头,选择发送路径,然后将数据报发送到相应的网络。
(2)处理接收到的数据报。在接收到其他主机发送的数据报之后,检查目的地址,若需要转发,则选择发送路径,转发出去;如果目的地址为节点 IP 地址,则除去报头,将分组交送到传输层处理。
(3)进行流量控制与拥塞控制。
传输层(Transport Layer)是 TCP/IP 参考模型中的第 3 层。传输层的主要功能是使发送方主机和接收方主机上的对等实体可以进行会话。从这一点上看,TCP/IP 参考模型的传输层和 OSI
在传输层上定义了以下两个端到端的协议。
(1)传输控制协议。传输控制协议(Transmission Control Protocol,TCP)是一个面向连接的协议,允许从源主机发出的字节流无差错地传送到网络上的其他主机上。在发送端,TCP 把应用层的字节流分成多个报文段并传给互连层。在接收端,TCP 把收到的报文段再封装成字节流,送往应用层。TCP 同时还要处理流量控制,以避免高速发送方主机向低速接收方主机发送的报文过多而造成接收方主机无法处理的情况。
(2)用户数据报协议。用户数据报协议(User Datagram Protocol,UDP)是一个不可靠的、无连接的协议。UDP 主要用于不需要数据分组顺序到达的传输环境中,同时也被广泛地应用于只有一次的、客户/服务器(Client/Server,C/S)模式的请求应答查询,以及快速传送比准确传送更重要的应用程序(如传输语音或影像)中。
应用层(Application Layer)是 TCP/IP 参考模型的最高层。应用层负责向用户提供一组常用的应用程序,如电子邮件、远程登录、文件传输等。应用层包含了所有 TCP/IP 簇中的高层协议,如文件传输协议(File Transfer Protocol,FTP)、电子邮件协议(SimpleMail Transfer Protocol,SMTP)、超文本传输协议(HyperText Transfer Protocol,HTTP)、简单网络管理协议(SimpleNetwork Management Protocol,SNMP)和域名系统协议(DomainName System,DNS)等。应用层协议一般可以分为 3 类:一类是依赖于面向连接的 TCP,如文件传输协议、电子邮件协议等;一类是依赖于无连接的 UDP,如简单网络管理协议;还有一类则既依赖于 TCP 又依赖于 UDP,如域名系统协议。
-
两种模型的比较
OSI 参考模型和 TCP/IP 参考模型有很多相似之处,都是基于独立的协议栈的概念(按照层次结构思想对计算机网络模块化的研究,形成了一组从上到下单向依赖关系的栈式结构),而且层的功能也大体相似。除了这些基本的相似之外,两个模型也有很多差别。
OSI 模型有 3 个主要概念:服务、接口和协议。每一层都为上一层提供一些服务。服务定义该层做什么,而不管上面的层如何访问或该层如何工作。某一层的接口告诉其上面的进程如何访问接口,接口定义了需要什么参数以及预期结果是什么。同样,接口也和该层如何工作无关。某一层中使用的协议是该层的内部事务,可以使用任何协议,只要能完成工作(如提供规定的服务)即可,并且某一层协议的改变不会影响到其他层。
这些思想和现代的面向对象的编程技术非常吻合。一个对象(如同一个层)有一组方法(操作),该对象外部的进程可以使用这些方法。这些方法的语义定义了该对象所提供的服务。方法的参数和结果就是该对象的接口。对象内部的代码即是协议,并且在该对象外部是不可见的。TCP/IP 参考模型最初没有明确区分服务、接口和协议。后来,人们试图将其改变以便接近于OSI。因此,OSI 参考模型中的协议比 TCP/IP 参考模型的协议具有更好的隐藏性(在技术发生变化时能相对比较容易地替换掉)。而最初把协议分层的主要目的之一就是希望能做这样的替换。
OSI 参考模型产生在协议发明之前。这意味着该模型没有偏向于任何特定的协议,因此非常通用;不利的方面是设计者在协议方面没有太多的经验,因此不知道该把哪些功能放在哪一层好。TCP/IP 则恰好相反,首先出现的是协议,模型实际上是对已有协议的描述。因此,不仅不会出现协议不能匹配模型的情况,而且配合得还相当好。两个模型间明显的差别是层的数量:OSI 模型有 7 层,而 TCP/IP 参考模型只有 4 层。两者都有互连(网络)层、传输层和应用层,但其他层并不相同。另一个差别是面向连接的和无连接的通信。OSI 参考模型在网络层支持无连接和面向连接的通信,但在传输层仅有面向连接的通信。而 TCP/IP 参考模型在网络层仅有无连接通信方式,但在传输层支持两种方式,这就给了用户选择的机会。
提问:
- ISO 在制定 OSI 参考模型进行层次划分的原则有哪些?
2.分别简述 OSI 参考模型各层的主要功能和特点。
3.描述在 OSI 参考模型中数据传输的基本过程。
4.TCP/IP 仅仅包含 TCP 和 IP 两个协议吗?为什么?
5.描述 OSI 参考模型与 TCP/IP 参考模型层次间的对应关系,并简述 TCP/IP 各层次的主要功能。
6.为什么说 TCP 和 IP 为 Internet 提供了可靠传输保障?
7.比较 OSI 参考模型与 TCP/IP 参考模型的异同点和各自的优缺点。
8.在学习网络体系结构和网络协议时,应采取什么样的一种折中方法?