项目 1 计算机网络概述
项目概述
为更好地掌握计算机网络的理论知识,并与实践紧密结合,本书以陕西工业职业技术学 院校园网为具体案例。 本节将简要介绍校园网的基本情况。 以后各项目将首先提出校园网的部 分需求,然后利用接下来的知识给出这部分需求的解决方案。到本书结束时,校园网的解决方 案就完整了。 陕西工业职业技术学院是一所国家示范性高职院校,校区内有办公楼、教学楼、图书馆、 宿舍区、住宅区,校园网的管理机构—学院网络中心位于图书馆。校园网连接了各个区域, 并接入了因特网。校园的结构如图 11 所示。 教学楼 办公楼 互联网 宿舍区 图书馆 住宅区 图 11 陕西工业职业技术学院校园结构图学习目标
l 掌握计算机网络的定义 l 掌握计算机网络的分层结构 l 掌握分组交换的基本原理任务一 计算机网络及其发展过程
一、计算机网络的应用 在人类历史中,有几项技术对信息的传播起着关键作用。第一项是造纸技术,有了轻便1
计算机网络概述
项目
2
电子商务网络技术
的纸,不再需要沉重的竹简;第二项是印刷技术,活字印刷与印刷机代替了手写,极大地提高 了效率。 古代中国长期领先于西方, 有学者认为其中一个重要的原因就是中国早于西方近千年 开始使用纸。 第三项技术就是计算机网络。现在是信息社会,随着计算机网络技术的发展与广泛应用, 信息复制与传播的速度空前提高了。 计算机网络技术已渗透进人类社会的各个角落, 深刻地影 响了人们的生活、学习和工作方式,以及各行各业的发展。可以说,人类社会已进入了网络时 代,网络应用无处不在。 计算机网络影响着人们的通信和生活方式:从原来的邮寄书信、发电报、打长途电话, 转变为现在的收发电子邮件、使用即时网络通信软件(如 QQ)网上交流;可以和异地的人联 网玩游戏、 互相传送文件、 远程访问别人的计算机; 可以足不出户, 在网络上获取需要的信息, 完成商品的购买和支付,甚至处理工作事务。 计算机网络影响着各行各业的发展和经营方式:电子商务、电子政务和网上银行等都依 赖计算机网络;现代工业的大规模研发与生产,很多也通过网络协同进行;现代化的国防和军 事建设,更是离不开网络。 计算机网络影响着人们获取信息的方式:现在的因特网(Internet)是个巨大的信息宝库, 在上面可以找到各种各样的资源和信息,同时每个人都可以成为资源和信息的提供者。 由此可见,以计算机网络为基础的各种信息系统,已成为当今社会运行的技术基础。 二、计算机网络的组成 从本质上说,计算机网络是计算机技术与通信技术的结合体。从硬件上看,计算机网络 由终端设备、网络设备与传输媒体组成。传输媒体把终端设备与网络设备连接在一起。数据通 常由终端设备产生,经多个网络设备转发后到达目的终端设备,如图 12 所示。本书后续插图 的图标含义一律与此图相同。……
路由器 PC机 交换机 服务器 图 12 计算机网络的硬件组成 终端设备因为处于网络的末端而得名。终端设备一般指各种计算机,包括 PC、服务器、3
项目
1计算机网络概述
笔记本电脑、掌上电脑;手机、游戏机以及个人数字助理等智能设备连入网络时,也称为终端 设备。终端设备不依赖其他设备,能够独立运行,因此也称为主机(Host)。为方便读者习惯, 本书一律用“计算机”指代“终端设备” 。 网络设备位于网络内部,起到连接和转发数据的作用,主要有集线器(Hub)、交换机 (Switch)和路由器(Router)。集线器与交换机一般用于局域网,现在集线器已经被淘汰;路 由器一般用于连接不同的网络, 使得不同网络内的计算机能够互相通信, 形成一个更大的互联 网络。计算机与网络设备统称为结点(Node)。 传输媒体连接了计算机与网络设备,使网络成为一个整体。传输媒体分为导向媒体和非 导向媒体两大类。导向媒体包括光纤与双绞线;非导向媒体则指无线电波,如地面微波接力通 信、卫星通信等。双绞线一般用在室内和近距离传输,光纤用于室外及远距离传输。在不便使 用导向媒体的地方,可以使用非导向媒体。 网络设备上连接传输媒体的插口的英文名称是 Interface,有的文献翻译为“端口” ,有的 文献翻译为“接口” 。但“端口”这个词在计算机网络中还有另外的含义,为避免混淆,本书 使用“接口”这个名称。 除了硬件,计算机网络还需要复杂的软件才能正常工作。 三、计算机网络的定义 计算机网络有多种定义。本书采用如下定义:计算机网络是一些互相连接的、能共享资 源的自治的计算机的集合。这个定义有如下含义: 1.计算机网络中的计算机是互相连接的,这是通过传输媒体与网络设备实现的。最简单 的计算机网络是两台计算机直接连接在一起,两点一线,这时候不需要网络设备;如果有更多 计算机,就需要用到网络设备。 2.计算机网络中的计算机能够共享资源,这是计算机网络存在的目的。资源包括软件资 源和硬件资源。软件资源主要是各类文件与数据,如文本文件、音乐文件、电影文件、程序文 件等;硬件资源包括打印机、CPU 等。打印机连接在网络中的一台计算机上并共享,其他计 算机就可以使用了。 也有专用的网络打印机, 它具有网卡, 可以直接连接在网络上。 共享 CPU: 一台普通 PC 机性能较差,无法完成大规模计算任务(如破解密码),可以通过网络把计算任 务发送给某台巨型机, 计算结果再通过网络返回; 或者是把大规模计算任务划分为许多个小任 务, 分发给网络上的其他计算机, 计算结果通过网络逐步返回后汇总。 后一种情况应用很广泛, 因为大多数计算机的 CPU 利用率很低,进行额外计算并不影响用户正常使用,如果参与计算 的计算机非常多,那么大规模计算任务很快就会完成,这称为分布式计算。 3.计算机网络中的计算机是自治的。自治是指不依赖其他计算机能够独立地运行,如果 一台计算机关机了, 其他计算机就不能正常运行, 这就不是计算机网络。 在计算机发展的早期, 计算机都是主机—终端模式,一台主机(可能是巨型机、大型机、中型机或小型机)连着很多 台终端,终端没有任何计算能力,仅有输入输出能力,所有的计算都在主机上完成,这就不是 计算机网络。 四、早期的计算机网络 计算机网络起源于美国。1946 年第一台电子计算机在美国诞生,当时没有人想到把计算4
电子商务网络技术
机技术和通信技术结合起来。20 世纪 50 年代初,根据美国军方的需要,把测量设备测到的数 据通过通信线路传送到一台计算机上, 进行集中的信息处理与控制, 这是计算机技术和通信技 术结合的首次尝试。 后来,随着计算机的普及和应用的发展,出现了多台计算机互联的需求。军事部门、科 学研究机构、 经济分析决策部门以及大型企业需要将不同地点的计算机连成网络, 用户可以使 用其他计算机的软硬件资源,以实现异地计算机资源共享的目的。 军方的需求最迫切。1969 年,正值美苏冷战高峰,美国国防部高级研究计划局(Advanced Research Project Agency,ARPA)提出研究一种新网络的要求,它应该灵活、高效,特别是生 存性要好,在前苏联可能的打击下要尽可能地持续工作,这就产生了目前因特网的雏形: ARPANET。 1969 年 ARPANET 只有 4 个结点,1973 年发展到 40 个结点,1983 年结点数达到 100 个 以上,1984 年则超过 1 000 个。ARPANET 通过有线、无线与卫星通信线路,覆盖了从美国到 欧洲及夏威夷的广阔地域。1984 年,ARPANET 分解为两个网络,一个仍称为 ARPANET,作 为民用科研网,另一个成为军用计算机网络。1986 年美国国家科学基金会建立了美国国家科 学基金网 NSFNET,覆盖了全美主要的大学和研究所,NSFNET 后来接管了 ARPANET,并改 名为因特网(Internet)。1987 年连接到因特网上的计算机超过 1 万台。 随后世界各地有很多组织接入到因特网,因特网急需扩容。1991 年美国政府决定将因 特网的主干网交给私人公司来管理,并开始对接入因特网的组织收费。1993 年因特网的主 干网速率提高到 45Mbps,1996 年 155Mbps 的主干网建成,1999 年 2.5Gbps 的新主干网建 成。到 1999 年底,因特网上注册的计算机已经超过 1 000 万台。20 世纪 90 年代,万维网 (World Wide Web,WWW)在因特网上出现,大大方便了广大非网络专业人员对网络的 使用,成为推动因特网指数级增长的主要驱动力。万维网的站点数目也急剧增长,到 1999 年 底超过 950 万个。 在我国,最早着手建设计算机网络的是铁道部。1987 年中国的第一封电子邮件通过因特 网发往德国。1989 年我国第一个公用的计算机网络 CNPAC 建成,1993 年 9 月扩建为 CHINAPAC。铁道、公安、银行、军队以及其他一些部门也相继建立了各自的专用计算机网 络。1994 年 4 月 20 日我国正式接入因特网。同年 5 月中国科学院高能物理研究所设计了我国 第一个万维网服务器,此后计算机网络在中国迅速普及。中国教育和科研计算机网 (China Education and Research Network, CERNET) 简称教育网, 始建于 1994 年,是由国家投资建设,教育部负责管理,清华大学等高等学校承担建设和运行 的全国性学术计算机互联网络,是全国最大的公益性计算机互联网络。CERNET 是全国第一 个 IPv4 主干网,目前全国绝大多数高校都已接入了 CERNET。2004 年 3 月,CERNET2 试验 网开通,这是中国第一个 IPv6 主干网,也是世界上规模最大的纯 IPv6 网,标志着中国下一代 互联网建设拉开了序幕。 五、计算机网络的标准化工作 早期的计算机网络没有标准,各组织、各企业各自为政,开发出的网络互不相同,无法 互相连通,成为一个个信息孤岛。后来人们认识到这一问题的严重性,开始制订计算机网络的 相关标准。制订计算机网络国际标准的主要有以下几个组织:
5
项目
1计算机网络概述
1.国际标准化组织(International Organization for Standardization,ISO) ISO 是世界上最大的非政府性标准化专门机构,是国际标准化领域中一个十分重要的组 织。ISO 的任务是促进全球范围内的标准化及其有关活动,以利于国际间产品与服务的交流, 以及在知识、科学、技术和经济活动中发展国际间的相互合作。ISO 的标准覆盖面极广,包括 了很多的计算机网络标准。 2.电气和电子工程师协会(Institute of Electrical and Electronics Engineers,IEEE) 美国电气和电子工程师协会是一个国际性的电子技术与信息科学工程师的协会,是世界 上最大的专业技术组织之一。其中与计算机网络有关的是 IEEE 802 委员会,致力于研究局域 网和城域网。该委员会制定了大量与局域网和城域网有关的标准,因此 IEEE 802 也指关于局 域网和城域网的一系列标准。 3.国际电信联盟(International Telecommunication Union,ITU) 国际电信联盟是电信界最权威的标准制订机构,成立于 1865 年 5 月 17 日,1947 年 10 月 15 日成为联合国的一个专门机构,总部设在瑞士日内瓦。ITU 制定的标准都以字母开头,以 X 开头的标准是关于网络和开放系统通信的,著名的 X.25 标准就是其中之一。 4.因特网协会(Internet Society,ISOC) 美国政府将因特网的主干网交给私人公司来管理后,成立了一个国际性组织叫做因特网 协会, 便于对因特网进行全面管理以及在世界范围内促进其发展和使用。 因特网协会下面有一 个技术组织,叫做因特网体系结构委员会(Internet Architecture Board,IAB),负责管理因特 网相关标准的开发。IAB 下面又设有两个部门,一是因特网研究部(Internet Research Task Force,IRTF),二是因特网工程部(Internet Engineering Task Force,IETF)。IRTF 主要负责理 论方面的研究,IETF 主要负责因特网的标准化工作。IEFT 制定的标准以 RFC(Request For Comments,请求评论)的形式发布。RFC 是因特 网最重要的文件。但并不是所有的 RFC 都是标准,一部分 RFC 是正在实验的,也有的 RFC 仅仅提供一些指导性的信息,这些 RFC 都不是标准。 一个普通文档成为 RFC 之前要先成为因特网草案(Internet Draft),经过数月的讨论,如 果合格则成为 RFC, 将获得一个 RFC 编号。 所有 RFC 顺序编号, 例如 RFC 0001 (第一个 RFC) 发布于 1969 年 4 月,RFC 2560 发布于 1999 年 6 月。作为标准的 RFC 有三种状态:建议标准 (Proposed Standard)、草案标准(Draft Standard)、因特网标准(Internet Standard)。这三种状 态由低到高,每种状态都要经过充分的讨论,并不是每个标准都能达到最高状态。 所有的草案与 RFC 都能从 IETF 的网站(http://www.ietf.org)自由下载,并且任何人、任 何组织都可以发表评论。发表评论的最简单方式是向作者发电子邮件。 国际标准的制订是一个复杂的问题。既有技术问题,也有非技术问题。有句话说: “一流 企业卖标准,二流企业卖技术,三流企业卖产品” 。在国际标准的制订过程中,各国家、各企 业为经济利益进行了激烈的争夺。这方面我国企业是比较落后的。以 RFC 为例,RFC 的作者 多是来自微软、IBM 等美国大企业以及欧美的一些研究机构。这些人显然会将自己的利益写 入 RFC 中。虽然 RFC 的查看、使用与实现并不收费,但 RFC 肯定最适合作者所在的组织, 其他组织就落在了下风。在数千个 RFC 中,由中国人起草的只有几个,而且都是与汉字处理 有关的。其他方面中国根本没有任何话语权。有自己制定的国际标准,更重要的是还要在世界 范围内推广使用,是我国政府与企业长期艰巨的任务。
6
电子商务网络技术
任务二 计算机网络的分类
计算机网络的分类标准多种多样,本书只探讨几种主要的分类方式:按网络的覆盖范围 分类、按网络的使用者分类、按网络的拓扑结构分类。 一、按网络的覆盖范围分类 计算机网络中结点之间的距离可远可近,即网络覆盖的地理范围可大可小。一般分为 4 类:局域网(Local Area Network,LAN)、城域网(Metropolitan Area Network,MAN)、广域 网(Wide Area Network,WAN)与互联网(internet)。如果与电话网类比,那么局域网相当于 某单位的内部电话网;城域网相当于某城市的电话网;广域网相当于某电信运营商的电话网; 因特网则相当于全世界的电话网。 1.局域网 局域网覆盖半径在几米到几千米,局限在房间、大楼和园区内。这种网络通常为一个单 位所有,特点是用户少、容易配置、速率很高。最初一个单位只拥有一个局域网,后来随着网 络的普及,规模较大的单位大都拥有几个局域网。因此又出现了校园网、企业网等名词。校园 网、企业网一般由多个局域网组成。 局域网的标准多由 IEEE 的 802 委员会制订。早期有很多不同类型的局域网,经过多年的 激烈竞争,现在有线局域网只有一种:以太网。除有线局域网外,现在无线局域网也正在逐渐 普及。 2.城域网 城域网从本质上说是一种大型的局域网,一般覆盖一座城市,连接距离从几千米到几十 千米。利用城域网可把各单位的局域网连结为一个整体。早期的城域网通常使用 FDDI 等专门 的技术,与局域网、广域网都不相同。随着以太网在局域网领域的胜出,为了更好地与局域网 无缝连接,采用以太网技术的城域网越来越多。同时随着局域网覆盖范围的增大,局域网与城 域网的界线变得模糊了。 3.广域网 广域网覆盖的范围比城域网更广,一般连接不同城市、不同国家的网络。广域网的地理 覆盖范围从几百千米到几千千米,也称为远程网,是因特网的骨干部分。早期的广域网速率很 低,随着技术的迅速发展,现在广域网的速率已经非常高。 4.互联网 以小写字母 i 开始的 internet 译为互联网,是一个通用名词,泛指由多个计算机网络互联 而成的网络。 以大写字母 I 开始的 Internet 则译为因特网, 是一个专用名词, 1969 年它 ARPANET 建立并迅速发展,越来越多的网络与 ARPANET 连结在一起,终于形成了一个覆盖全世界的 计算机网络,这个网络被命名为 Internet。 因特网是互联网的一种,inter这个词头表示“在一起、某某间”之义,因此因特网的含 义是网络的网络, 即因特网这个大网络由很多个小网络组成, 而不像小网络那样由计算机组成。 因特网不是固定不变的,某个网络随时可以连入或退出因特网,因特网一直在不断变化,无法 确切地说明因特网到底有多大, 因此在画图时经常用一朵云彩表示因特网。 这 4 种不同类型的7
项目
1计算机网络概述
网络如图 13 所示。 广域网 …… 城域网 因特网 城域网 局域网 …… …… 局域网 局域网 图 13 局域网、城域网、广域网与因特网 因特网如此庞大,如何有效地管理呢?因特网的管理者因特网协会除下设技术部门 IAB 外,还设立了一个管理部门——因特网名称与号码分配公司(Internet Corporation for AssignedNames and Numbers,ICANN)。ICANN 虽然叫做公司,但却是一个非营利性的机构,它负责 世界范围内 IP 地址、域名等重要内容的分配与管理。 因特网太大了,只有一个 ICANN 不可能有效地管理,因此各个国家都设立了本国的因特 网管理机构。中国互联网络信息中心(China Internet Network Information Center)是我国的因 特网管理机构,成立于 1997 年 6 月 3 日。中国互联网络信息中心的英文缩写是 CNNIC,而不 是英文全称的首字母缩写 CINIC。有解释说 CNNIC 是由中国域名 CN 与 NIC 组成的,但并未 见有官方解释。 在我国,电信、联通等电信运营商的网络构成了因特网在我国的主干。因特网在我国发 展非常迅速,根据 CNNIC 发布的《第 29 次中国互联网络发展状况统计报告》,截至 2011 年 底,我国网民数达到 5.13 亿,居世界第一;我国因特网普及率以 38.3%的比例超过全球平均 水平。但在高速发展的同时,速率低、收费高、服务差等问题也日渐突出。 二、按网络的使用者分类 可以将网络分成公用网(public network)和专用网(private network)。公用网面向社会, 对所有人提供服务,只要符合网络拥有者的要求就能使用这个网。像电信、联通等电信运营商 的网络都是公用网,任何人只要按时交费就可以使用。专用网为一个或几个部门所拥有,它只 为拥有者提供服务,不对外服务。如公安、军队、铁路、电力部门的网络。 局域网通常都是为某个单位所拥有,一般都是专用网,非本单位的人无法使用。城域网 与广域网中既有公用网,也有专用网。电信运营商的公用网很多都是城域网与广域网;铁路部 门经过多年的发展,早已建成了规模庞大的覆盖全路的专用网,这显然是一个广域网。
8
电子商务网络技术
三、按网络的拓扑结构分类 拓扑学(topology)是几何学的一个重要分支,它将实体抽象成与其大小、形状无关的点, 将实体间的连接线路抽象成与其长度无关的线, 进而研究点与线间的关系。 计算机网络的拓扑 结构就是把计算机与网络设备抽象成点, 传输媒体抽象成线, 用一个几何图形来表示计算机网 络。常见的拓扑结构有星型、树型、总线型、环型与网状 5 种。 1.星型拓扑结构 星型拓扑结构有一个中央结点作为核心。如图 14(a) 所示为星型拓扑结构; 如图 14(b) 所示为采用星型拓扑结构的以太网, 处于中心位置的网络设备早期是集线器, 现在则是交换机。 (a)星型拓扑结构示意图 (b)星型拓扑结构以太网 图 14 星型拓扑结构网络 因为计算机之间的通信必须经过中心结点,所以这种结构便于集中控制、易于故障定位、 一台计算机故障不影响其他计算机等优点。但是中心结点一旦损坏,整个网络便不能工作,因 此要求中心结点有较高的可靠性。 另外由于每个计算机都要用线缆连结至中心结点, 所以使用 的线缆较多。 2.树型拓扑结构 对于星型拓扑结构,当计算机数量增多时无法扩充。例如,以太网交换机上有 24 个接口, 则无法连接超过 24 台的计算机。这时可以使用多个交换机,并把多个交换机连结在一起,从 而形成树型拓扑结构,如图 15 所示。 (a)树型拓扑结构示意图 (b)树型拓扑结构以太网 图 15 树型拓扑结构网络 树型拓扑结构像一棵倒置的树,根在最上面,要点是其中不能有环,如果有环存在就不 是树型拓扑结构了。现在的以太网,当计算机数量少时,采用星型拓扑结构;当计算机数量多 时,就采用树型拓扑结构。9
项目
1计算机网络概述
3.总线型拓扑结构 设置一根公共线缆,所有计算机都连结在上面,称为总线型拓扑结构。如图 16(a)所 示为总线型拓扑结构;如图 16(b)所示为采用总线型拓扑结构的以太网。 总线 总线 (a)总线型拓扑结构示意图 (b)总线型拓扑结构以太网 图 16 总线型拓扑结构网络 总线型拓扑结构是早期以太网采用的形式。这种拓扑结构虽然能够节省线缆,但存在着 连线困难、故障难以定位等问题,因此现在以太网已经淘汰这种拓扑结构,只采用星型拓扑结 构与树型拓扑结构。 4.环型拓扑结构 环型拓扑结构中的传输媒体从一个结点连到另一个结点,直到将所有结点连成环型,如 图 17 所示。 这种拓扑结构容易安装、节省线缆,但是如果一台计算机故障,整个网络将不能工作, 而且故障难以定位。采用这种拓扑结构的典型代表是由 IBM 开发的令牌环(token ring)局域 网,曾经广泛使用,但在与以太网的激烈竞争中失败,现已淘汰。 5.网状拓扑结构 以上 4 种拓扑结构形式规整,普遍用于局域网。但对于规模大的广域网,特别是因特网, 则无法采用这种规整的拓扑结构。 大规模网络的拓扑结构看起来杂乱无章, 称为网状拓扑结构, 一般其中都含有环,如图 18 所示。 图 17 环型拓扑结构示意图 图 18 网状拓扑结构示意图任务三 计算机网络的分层结构
一、分层的目的与意义 计算机网络非常复杂,这从 RFC 的数量就可以看出来。第一个 RFC 发布于 1969 年 4 月,10
电子商务网络技术
到 2009 年元旦,RFC 的编号已经达到 5407。2008 年一年就发布了大约 300 个 RFC。随着网 络的发展,每年发布的 RFC 数量还在迅速增多。 另外,在日常使用的 PC 机中,无论是 Windows 还是 Linux,与网络有关的程序代码多达 数十万行。在服务器上,这一数字会更高。当我们简单地在浏览器上打开一个网页时,计算机 网络做了大量的工作,只不过这些工作我们都看不到。 如此复杂的网络,怎样才能够有效地研究、学习和开发呢?分层可以有效地解决这一问题。 分层能够将一个复杂的问题分解为若干个较小的简单问题,在计算机世界中,分层是一种常用的 方法,它在计算机网络、操作系统、数据库、程序设计等多方面都有着广泛的应用。同样在其他 学科与现实世界中,分层同样无处不在,会计中有总账、细目账;当设计一个电子产品或机械产 品时,也要有总体设计、概要设计与详细设计;在政府部门中,也有部、局、处、科之分。 在介绍计算机网络的分层结构之前,先讨论一个寄信的例子。虽然现在有了网络上的电 子邮件,写信的人已经不多,但这个例子也是一个分层的结构,与计算机网络惊人地相似。在 这个例子的基础上,再讨论计算机网络的分层结构。 一个位于咸阳的写信人要将信寄给位于西安的收信人。为了达到这一目的,需要咸阳与 西安的邮局。只有邮局是不够的,还需要运输方式,这里假设是铁路。这就需要咸阳火车站与 西安火车站,自然还有连结咸阳与西安的铁路线。这是一个三层结构,如图 19 所示。 图 19 由咸阳寄信到西安 现在回忆一下如何寄信。在信纸上按惯用的格式书写内容。写完信后装入信封,信封上 一定要写好收信人地址、姓名与邮政编码等内容,并贴好邮票。将信送往咸阳邮局。邮局收到 信后的处理过程虽然不是非常清楚, 但也可猜测一下。 咸阳邮局一定会把所有发往西安的信装 入一个邮袋,在邮袋上写清发往西安。邮袋的大小、邮袋上的内容一定也要符合规定。 在这个例子中邮局并没有自己的运输能力,需要借助铁路。咸阳邮局把邮袋送住咸阳火 车站。根据车站要求填写运单,写清到站、收货人等内容。最后咸阳火车站把包括邮袋在内的 所有发往西安的货物装入一辆车厢,通过铁路线运往西安。 信件接收是相反的过程。火车到西安火车站后,打开车厢拿下邮袋。西安邮局得到邮袋, 打开取出信件。按信封上的收信人地址与姓名把信送到。收信人拆开信封开始读信。真是一个 复杂而漫长的过程。下面章节中,将会把计算机网络与这个例子详细类比,说明计算机网络中 的重要概念。在这个例子中,分层有如下好处: 1.容易实现 各层之间是独立的。每一层只需知道下一层可以提供给自己的功能并会使用即可,每一11
项目
1计算机网络概述
层的功能单一且独立。这相当于把一个大问题分成若干个小问题,复杂程度大大下降了。人们 不必知道邮局是如何工作的, 只要将信交给邮局就可以了; 邮局也不必知道火车站是如何运输 的,只要将邮袋交给火车站就可以了。人们甚至不知道信是通过铁路还是公路运输的。 在计算机网络中,每层的功能都是明确划分的,不同的功能可以由不同的层来实现,最 后合并为一个整体。 2.灵活性好 当任何一层发生变化时,只要层与层的关系不变,其他层就不会受到影响。例如,火车 由一般火车变成高速火车,甚至火车变成了飞机。此时寄信人与收信人不受任何影响,邮局也 不受影响,仅需要把邮袋改送到飞机场。 在计算机网络中,某一层改变的时候,其他层基本不受影响。例如有线局域网变成了无 线局域网,只需改变物理层与数据链路层,其他层不需要任何改变。 二、计算机网络的 5 层结构 计算机网络的总体结构称为体系结构(architecture)。建立一个怎样的体系结构,或者说 如何分层是一个复杂的问题。1974 年,美国的 IBM 公司发布了 SNA (System NetworkArchitecture,系统网络体系结构),它是一个分层的网络。后来其他很多公司也推出了自己的
网络。这些网络的体系结构都不一样,因此无法互相连通。
为解决这一问题,使所有的网络都能互相连通,国际标准化组织 ISO 提出了 OSI/RM (Open Systems Interconnection Reference Model,开放系统互联参考模型),简称为 OSI,其标 准编号为 ISO 7498。ISO 一贯的风格是大而全,OSI 自然也不例外。OSI 分为 7 层,庞大复杂, 事无巨细,企图解决所有能够想到的问题。实际上其中大部分功能极少使用。
当 ISO 在全世界推行其 OSI, 试图让全世界的计算机网络都遵守这一标准时, 因特网已经
覆盖了世界的很多地区。 因特网的体系结构称为 TCP/IP 体系结构, 它与 OSI 截然不同。 TCP/IP 体系结构注重实用,非常简单。因此 TCP/IP 体系结构在与 OSI 的竞争中胜出了,这是简单战 胜复杂的典范。 现在覆盖全球的因特网仍是 TCP/IP 体系结构, 但没有一个网络是符合 OSI 的。 下面讨论一个分为 5 层的实用的体系结构,也可称为原理体系结构,如图 110 所示。各 层自下而上编号, 最下面的物理层称为第 1 层, 数据链路层称为第 2 层, 直至第 5 层的应用层。 每一层中最主要的内容是协议。 同时因为这些层堆叠在一起好像一个堆放货物的堆栈, 所以也 称为协议栈(protocol stack)。 5. 应用层 4. 运输层 3. 网络层 2. 数据链路层 1. 物理层 图 110 实用的 5 层体系结构 下面简单介绍各层的功能,本书后面各章就是针对这些层展开的。 1.物理层(physical layer) 计算机世界采用二进制,只用 0 与 1 这两个二进制位(bit),就能表达所有内容,无论是
12
电子商务网络技术
文本、程序,还是音乐、电影。因此计算机网络只需要能传输大量的 0 与 1 即可。但如何传输 却是个复杂的问题,早期使用同轴电缆,现在普遍使用双绞线与光纤。这些传输媒体中传输的 是电与光, 如何表示 0 与 1 呢?另外, 计算机和网络设备如何与传输媒体连接?这些都是物理 层要解决的问题。概括地说,物理层的任务就是传输位流。 2.数据链路层(data link layer) 数据链路层也可简称为链路层。当两个结点(结点可能是计算机,也可能是网络设备) 使用一根导线相连时,它们两者间的通信非常简单。可是在无线情况下,若两个结点同时发送 数据, 数据将会冲突而被破坏。 或是在有线方式下, 采用广播式的通信方式, 也会有冲突发生。 这些问题由数据链路层负责解决。概括地说,数据链路层的任务是负责相邻结点间的通信。 3.网络层(network layer) 当数据从一台计算机发往另一台计算机时,转发数据的网络设备如何知道数据是发往哪 台计算机的?如果去目的计算机存在着不同的路径, 传输数据时应该选择哪条?选择的依据是 什么?这些都是网络层要解决的问题。 概括地说, 网络层的任务是为数据在网络中选择一条合 适的路径。 4.运输层(transport layer) 一台计算机中能够同时运行多个程序,这些运行着的程序称为进程,如浏览器、QQ 聊天 窗口等。假设一台电脑打开了 10 多个浏览器窗口,同时还在 QQ 聊天,BT 也在下载最新的电 影, 如此众多的进程都使用同一网卡收发数据, 数据是如何由网卡正确分配到不同进程去的? 浏览器、QQ、BT 都工作正常,没有出现数据混乱现象。另外,网络不是万无一失的,传输过 程中数据出错或丢失怎么办?这些都是运输层要解决的问题。 概括地说, 运输层的任务是负责 不同计算机中两个进程间的通信。 在有的文献中,运输层也称为传输层。 5.应用层(application layer) 计算机网络存在的目的是为了使用。不能使用的计算机网络没有存在的意义。应用层就 是为了让用户能够使用网络,如浏览网页、QQ 聊天、收发电子邮件、利用 BT 下载电影、玩 网络游戏,这些提供实用功能的程序称为应用。如此众多的应用如何合理地设计,如何能够高 效地为用户提供良好的服务就是应用层的任务。 OSI 的 7 层结构中除上述 5 层外,还有表示层与会话层,但这两层在实际中很少使用。 TCP/IP 是一个四层的体系结构,它包含应用层、运输层、网际层和网络接口层,其中网际层 相当于网络层,网络接口层相当于数据链路层与物理层。OSI、5 层体系结构与 TCP/IP 体系结 构的比较如图 111 所示。 三、计算机网络中的重要概念 下面通过与寄信例子的类比来说明计算机网络中的重要概念。 1.实体(entity) 寄信的时候有人、邮局、火车站等参与者,计算机网络中也有网卡、软件进程等参与者。 实体指计算机网络中参与发送或接收数据的硬件或软件进程。 一个网卡、 一个浏览器窗口都是 实体。不同的层有不同的实体,位于不同计算机中同一层内的实体称为对等实体。例如,发送 数据计算机网络层内的实体与接收数据计算机网络层内的实体就是对等实体。13
项目
1计算机网络概述
7.应用层 6.表示层 5.会话层 4.运输层 3.网络层 1.物理层 2.数据链路层 应用层 运输层 网际层 网络接口层 OSI体系结构 TCP/IP体系结构 5.应用层 4.运输层 3.网络层 2.数据链路层 1.物理层 5层体系结构 图 111 OSI、5 层体系结构与 TCP/IP 体系结构 2.服务(service) 寄信的时候需要邮局把信送出去,邮局也需要车站来运送邮袋。同样道理,在计算机网 络中,除物理层外,每层的实体需要其下一层实体的帮助才能完成数据的传输。这种下层实体 提供给上层实体使用的功能称为服务。 服务通常通过函数调用来实现。例如,运输层实体提供了 C 语言的发送函数 send()与 接收函数 recv(),应用层实体需要收发数据时直接调用这两个函数就可以了。至于这两个 函数如何实现,那是运输层实体的事情,应用层实体不需要知道。实际上运输层为了实现 这两个函数还需要调用网络层实体提供的服务,而网络层实体再调用数据链路层实体提供 的服务,最后数据链路层实体再调用物理层实体提供的服务。这样经过层层调用才最终完 成数据的收发。 3.协议(protocol) 寄信的时候,寄信人除与邮局打交道外,还需要与收信人协调好。写信时一定要按规定 格式。规定格式包括先写称呼,再写内容,最后再签上姓名等。实际上还有一个隐含的规定, 国内的信最好用中文, 寄往国外的信最好用英文。 如果给一位中学时只学过俄语的老爷爷用英 文写信会出现什么问题呢?咸阳邮局同样要与西安邮局协调好。 邮袋的大小、 邮袋上相关信息 的填写都要按规定办理,这样西安邮局才能正确接收。最后,咸阳火车站与西安火车站也要协 调好。否则列车无法正常运行,甚至发生严重事故。 计算机网络也是这样,位于不同计算机内的同层对等实体也需要很多规则才能正常通信。 协议规定了两个对等实体进行通信时的数据格式, 以及在收发数据及其他事件发生时应进行的 操作。 既然协议是控制对等实体的, 那么一个协议必然位于某一层内, 不同的层有不同的协议。 因特网有两个最重要的协议,位于运输层的 TCP 协议与位于网络层的 IP 协议,这两个协议构 成了因特网的骨架,因此因特网的体系结构才称为 TCP/IP 体系结构。 特别应该注意的是,协议规定的是两个对等实体,也就是位于两台不同计算机内两个同 层实体间的关系,至于同一计算机内相邻层实体间的关系则是提供服务与使用服务的关系。 有的协议非常简单,有的则非常复杂。很多复杂协议之所以复杂,是因为要对很多非正 常情况进行处理, 此时工作量远远超过了处理正常情况的工作量。 这种情况在计算机世界经常 见到。例如,一个除法程序,处理正常情况只需要类似 a = x/y 的一行,而为了处理除数不能 为 0 这种非正常情况,需要判断、报错等多行程序。在设计协议时要非常小心谨慎,尽可能地14
电子商务网络技术
考虑到各种非正常情况,协议才能持续不断地正常工作,否则遇到非正常情况就会出问题,这 叫做协议的健壮性。 4.协议数据单元(Protocol Data Unit,PDU) 寄信时人们处理的数据以信为单位,邮局以邮袋为单位,火车站则以车厢为单位。计算 机网络中如何划分呢?每层实体都有自己处理数据的单位。 这种某层实体处理数据的单位称为 该层的协议数据单元,简称 PDU(Protocol Data Unit) 。物理层的 PDU 就是位;数据链路层的 PDU 称为帧(frame);网络层的 PDU 称为数据报(datagram);运输层的 PDU 称为报文段 (segment);应用层的 PDU 称为报文(message)。另外,无论哪一层的 PDU,都可以笼统地 用分组(packet)或包来称呼。 5.封装与拆封(encapsulation and decapsulation) 寄信人写完信装入信封,在信封上写好收信人信息,把信交给邮局。邮局把信装入邮袋, 在邮袋上写好相关信息,把邮袋交给火车站。火车站则把邮袋装入车厢,并在车厢的单据上写 好到站、品名、收货人等信息。信封、邮袋与车厢单据上的信息可以称为控制信息。收信人虽 不需要这些控制信息,但控制信息对于信件的运送却是必不可少的。 同样道理,应用层在数据上加上控制信息形成自己的 PDU,把 PDU 交给运输层实体。运 输层实体在应用层 PDU 的外面加上自己的控制信息形成运输层的 PDU,再交给网络层。网络 层、数据链路层的实体同样处理,直至物理层,数据才真正传输出去。在上层实体交付的 PDU 外面加上控制信息形成本层 PDU 的过程称为封装。 与寄信不同的是, 某层 PDU 中仅放置一个 来自上层的 PDU。不像邮袋中可以放多封信,车厢中可以放多个邮袋。 火车到达西安站后,查看单据信息无误后打开车厢取出邮袋。西安邮局查看邮袋信息无 误后打开邮袋取出信件,投递给收信人。最后收信人打开信封读信。 同样地,计算机网络中每层实体都重复同样的工作:收到来自发送计算机中对等实体给 自己的本层 PDU 后,首先查看其中的控制信息,再去掉控制信息得到上层 PDU,交付给上层 实体,直至应用层。查看控制信息的目的有很多,如检查数据是否在传输过程中出错。去掉本 层 PDU 控制信息从而得到上层 PDU 的过程称为拆封或解封装。因为控制信息通常置于上层 PDU 的前面,所以也形象地称为首部(header)。协议中最重要的内容就是规定首部的格式, 以及查看首部后要进行的操作。PDU 中除首部的部分称为数据,数据显然就是来自上层的 PDU。封装与拆封的过程如图 112 所示。 图 112 说明以下几点:有些数据链路层协议除增加首部外,还在网络层 PDU 的后面增加 尾部;有些物理层协议直接将数据链路层 PDU 转换为电或光信号传输,不再增加首部,但也 有一些物理层协议需要增加首部。 需要特别注意的是,某层的接收实体只查看本层 PDU 的首部,这个首部则是发送方的同 层对等实体加上的。就像收信人只会去看信封上的信息,而不会去看邮袋上的信息,即使想看 也看不到,即使看到了也不一定能看明白。 讲到此处,就可以透彻地理解在任何一本网络书上都能看到但令人费解的话: “集线器工 作在物理层;交换机工作在数据链路层;路由器工作在网络层。 ”这些设备在后续各章都会详 细讨论,这里要弄清楚“某设备工作在某层”到底是什么意思。15
项目
1计算机网络概述
电信号或光信号 发送计算机 H2 H3 H4 H5 应用层数据 物理层 1001111010010100111… 数据链路层 应用层数据 H5 H4 H3 网络层 应用层数据 H5 H4 运输层 应用层数据 H5 应用层 接收计算机 H2 H3 H4 H5 应用层数据 物理层 1001111010010100111… 数据链路层 应用层数据 H5 H4 H3 网络层 应用层数据 H5 H4 运输层 应用层数据 H5 应用层 传输媒体 图 112 封装与拆封的过程 它的确切意思是指该设备会查看该层及其下面其他层的 PDU 的首部。路由器中的网络层 实体会查看网络层 PDU 的首部并据此进行一些操作,这些操作由网络层协议规定,后续章节 将会讨论。要想查看网络层 PDU 的首部,就要先查看数据链路层 PDU 的首部并将其去掉,才 能得到网络层 PDU。因此路由器内一定要有数据链路层实体。同样道理,也一定要有物理层 实体。至于运输层与应用层,路由器并不查看其 PDU 的首部,自然也不需要其实体了。路由 器内只有物理层、数据链路层与网络层的实体,高两层的实体并不存在。这种情形如图 113 所示。 H2 H3 H4 H5 应用层数据 物理层 1001111010010100111… 数据链路层 应用层数据 H5 H4 H3 网络层 接口1 H2 H3 H4 H5 应用层数据 物理层 1001111010010100111… 数据链路层 应用层数据 H5 H4 H3 网络层 接口2 转发 电信号或光信号 电信号或光信号 路由器 图 113 路由器工作在网络层 从图 113 可以看出路由器工作的过程,电信号或光信号从接口 1 进入后,物理层实体把 信号转换成 0 与 1, 得到数据链路层 PDU, 数据链路层实体查看其首部并完成数据链路层协议 规定的操作后,拆封得到网络层 PDU,网络层实体查看其首部并完成网络层协议规定的操作。网络层 PDU 被转发到接口 2, 在这里, 数据链路层实体把网络层 PDU 封装为数据链路层 PDU,
物理层实体把 0 与 1 转换为电信号或光信号,通过传输媒体发送出去。
同样地,交换机内只有物理层与数据链路层实体,集线器内只有物理层实体。那么计算 机内需要哪些实体呢?显然,为了实现完整的网络功能,计算机内一定要有全部 5 层的实体。