第一章 因特网概述
# 第一章 因特网概述
介绍下互联网的作用、历史和基本概念
# 1.1 计算机网络在信息时代的作用
- 计算机网络已由一种通信基础设施发展成为一种重要的信息服务基础设施。
- 计算机网络已经像水、电、煤气这些基础设施一样,成为我们生活中不可或缺的一部分
下面我们来看看来自中国互联网信息中心 CNNIC的调查数据。我们可以访问CNNAC的官方网站,中国互联网络信息中心 (opens new window)下载《中国互联网发展研究报告》
在制作本课程时,我们下载到的是2019年2月发布的第43次中国互联网发展状况统计报告。我们来看看其中的一些相关数据,这是我国网民规模和互联网普及率,从2008年到2018年这10年的发展情况,我国网民规模从2008年的2.98亿增长到2018年的8.29亿,互联网普及率从2008年的22.6%增长到2018年的59.6%
这是我国手机网民规模及其占网民比例,从2008年到2018年这10年的发展情况。我国手机网民规模从2008年的1.18亿增长到2018年的8.17亿。网民中使用手机上网的比例由2008年的39.5%增长到2018年的98.6%,
这是我国网民平均每周上网时长从2011年到2018年这8年的发展情况,我国网民平均每周上网时长从2011年的18.7个小时增长到2018年的27.6个小时,平均每天的上网时长为4个小时.
这是2017年12月到2018年12月,我国网民各类互联网应用的使用率,由高到低依次为即时通信、搜索引擎、网络新闻、网络视频、网络购物、网上支付、网络音乐、网络游戏、网络文学、网上银行、旅行预订、网上订外卖、网络直播、微博、网约专车或快车,网约出租车、在线教育、互联网理财、短视频
相信同学们一定使用过上述这些类别的互联网应用,即便不是全部类别都使用过,那也不可能是全部都没有使用过。我们来听听互联网支付温顿瑟夫是怎么说的。YOU CAN'T ESCAPE FROM CONTACT WITH THE INTERNET,SO WHY NOT GET TO KNOW IT AND USE IT?没错,既然我们无法避免接触计算机网络,那么为何不去了解它并使用它?
# 1.2 因特网概述
- 网络、互连网(互联网)和因特网
- 因特网发展的三个阶段
- 因特网的标准化工作
- 因特网的组成
我们首先介绍网络、互联网(互连网)因特网的基本概念,
- 网络(Network)是由若干结点(Node)和连接这些结点的链路(Link)组成的。例如下图所示,笔记本电脑是一个结点,台式电脑是一个结点,网络打印机是一个结点,而将他们互联起来的交换机也是一个结点。当然了,结点之间的互联还需要使用链路,可以是有线链路,也可以是无线链路。在本例中4个结点和三段电路就构成了一个简单的网络
- 多个网络还可以通过路由器互连起来,这样就构成了一个覆盖范围更大的网络,即互联网(或互连网)。因此,互联网是"网络的网络(Network of Networks)"。
- 我们几乎每天都在使用的因特网(Internet)是世界上最大的互联网,它的用户数以亿计,互联的网络数以百万计。在我们今后的课程中,因特网常常用一朵云,表示连接在因特网上的计算机称为主机,而因特网内部的细节,也就是路由器是怎样把许多网络连接起来的,往往省略不用给出。
这里我们需要区分一下这两个英文单词的含义,
以小写字母i开头的英文单词,internet是一个通用名词,翻译为互联网,它泛指由多个计算机网络互联而成的网络,在这些网络之间的通信协议可以是任意的
以大写字母I来开头的英文单词,Internet则是一个专用名词,翻译为因特网,它指当前全球最大的,开放的,由众多网络互联而成的特定计算机网络,它采用TCP/IP协议族作为通信的规则,其前身是美国的ARPANET
# 互联网历史
接下来我们来看看因特网发展的三个阶段,因特网的基础结构大体上经历了三个阶段的演进。
第一阶段,从单个网络ARPANET向互联网发展。1969年美国国防部创建了第一个分组交换网ARPANET。到了20世纪70年代中期,人们已认识到不可能仅使用一个单独的网络来满足所有的通信问题,这就导致了后来互联网的出现,这样的互联网就要成为了现在的因特网的雏形。1983年tcpip协议成为ARPANET上的标准协议,使得所有使用tcpip协议的计算机都能利用互联网相互通信,因而人们就把1983年作为因特网的诞生时间。
第二阶段逐步建成三级结构的因特网。从1985年起,美国国家科学基金会NSF就围绕6个大型计算机中心建设计算机网络,也就是国家科学基金网,NSFNET,它是一个三级结构的网络,分为主干网、地区网和校园网(企业网)。该网络覆盖了全美国主要的大学和研究所,并且成为因特网中的主要组成部分。1990年美国国防部创建的ARPANET任务完成正式关闭。1991年,美国国家科学基金会NSF和美国的其他政府机构开始认识到,因特网必将扩大其使用范围,不应仅限于大学和研究机构,于是美国政府决定将因特网的主干网转交给私人公司来运营,并开始对接入因特网的单位收费。
第三阶段逐渐形成了多层次ISP结构的因特网。从1993年开始,由美国政府资助的NSFNET逐渐被若干个商用的因特网主干网取代,而政府机构不再负责因特网的运营,而是让各种因特网服务提供者ISP来运营。1994年由欧洲原子核研究组织开发的万维网,也就是WWW技术在因特网上被广泛使用,大大方便了广大非网络专业人员对网络的使用,促使因特网迅猛发展。1995年NSFNET停止运作,因特网彻底商业化。
下面我们来解释一下因特网服务提供者ISP(Internet Service Provider)。想想看普通用户是如何接入到因特网的呢?实际上是通过ISP接入因特网的。ISP可以从因特网管理机构申请到成块的IP地址,同时拥有通信线路以及路由器等联网设备。任何机构和个人只要向ISP交纳规定的费用,就可以从ISP得到所需要的IP地址,这一点很重要,因为因特网上的主机都必须有IP地址才能进行通信,这样就可以通过该ISP接入到因特网。
我国主要的ISP是我们大家都比较熟悉的中国电信、中国联通和中国移动这三大电信运营商。来自中国互联网络信息中心,2019年2月发布的第43次中国互联网络发展状况统计报告显示,他们的国际出口带宽分别是中国电信4.5tbps中国联通2.2tbps中国移动2tbps。不知道您家的因特网接入使用的是哪个ISP,带宽是多少,稳定性如何,价格又是多少
根据提供服务的覆盖面积大小及所拥有的IP地址块数量不同,ISP也分成不同的层次。下面给出基于ISP的三层结构因特网示意图,最高级别的第一层ISP的服务面积最大,第一层ISP通常也被称为因特网主干网,一般都能够覆盖国际性区域范围,并拥有高速链路和交换设备。第一层ISP之间直接互联,
第二层ISP和一些大公司都是第一层ISP的用户,通常具有区域性或国家性覆盖规模,与少数低层ISP相连接。
第三层ISP又称为本地ISP,他们是第二层ISP的用户,且只拥有本地范围的网络,一般的校园网或企业网以及住宅用户和无线移动用户,都是第三层ISP的用户。
从该图可以看出,因特网逐渐演变成基于ISP的多层次结构网络,但今天的因特网由于规模太大,已经很难对整个网络的结构给出细致的描述,但下面这种情况是经常遇到的,就是相隔较远的两台主机间的通信,可能需要经过多个ISP,顺便提一下,一旦某个用户能够接入到因特网,那么它也可以成为一个ISP(例如开个热点)。所需要做的就是购买一些如调制解调器或路由器这样的设备,让其他用户能够和他相连。因此该图所示的仅仅是个示意图,一个ISP可以很方便的在因特网拓扑上添加新的层次和分支。
# 标准化与RFC
接下来我们介绍一下因特网的标准化工作,因特网的标准化工作对因特网的发展起到了非常重要的作用。因特网在制定其标准上的一个很大的特点,就是面向公众。因特网所有的RFC技术文档,都可以从因特网上免费下载,任何人都可以随时用电子邮件发表对某个文档的意见或建议。因特网协会ISOC是一个国际性组织,他负责对因特网进行全面管理,以及在世界范围内促进其发展和使用。
ISOC下设的因特网体系结构委员会IAB,负责管理因特网有关协议的开发,
IAB下的因特网工程部IETF,负责研究中短期工程问题,主要针对协议的开发和标准化,
IAB下的因特网研究部IRTF从事理论方面的研究和开发一些需要长期考虑的问题。
制定因特网的正式标准,要经过以下4个阶段,第一个阶段是因特网草案阶段,在这个阶段还不是RFC文档,
第二个阶段是建议标准,从该阶段开始成为RFC文档。
第3个阶段是草案标准,
第4个阶段是因特网标准。
值得注意的是并非所有的RFC文档都是因特网标准,只有一小部分RFC文档,最后才能变成因特网标准。
接下来我们介绍一下因特网的组成,因特网的拓扑结构虽然非常复杂,并且在地理上覆盖了全球,但从功能上看,可以划分为以下两部分,一个是边缘部分,另一个是核心部分,边缘部分由所有连接在因特网上的主机组成,这部分是用户直接使用的,用来进行通信和资源共享。边缘部分中的主机可以是台式电脑或大型服务器,也可以是笔记本电脑、平板电脑,还可以是智能手机、智能手表以及物联网智能硬件,例如空气质量监测仪、智能摄像头等。
核心部分由大量网络和连接这些网络的路由器组成,这部分是为边缘部分提供服务的,也就是提供连通性和交换。在网络核心部分起特殊作用的是路由器,它是一种专用计算机,但我们不称它为主机,路由器是实现分组交换的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的功能。我们将在下节课详细介绍,
本节课到这里就结束了。在本节课中,我们主要介绍了以下4个内容,
第一,网络互联网因特网的基本概念。
第二,因特网发展的三个阶段。
第三,因特网的标准化工作。
第四,因特网的组成。
希望大家对第一和第四这两部分内容做到理解,对第二和第三部分的内容了解即可
# 1.3 三种交换方式
本节课我们介绍三种交换方式,分别是电路交换(Circuit Switching),分组交换(Packet Switching)以及报文(Message Switching)交换。
我们首先来看电路交换,在电话问世后不久,人们就发现要让所有的电话机都两两相连接是不现实的。例如两部电话只需要用一对电线就能够互相连接起来,但若有5部电话要两两相连,则需要10对电线。当电话机的数量很大时,这种连接方法需要的电线数量就太大了。例如如果有N部电话机需要两两相连,那么一共需要多少吨电线答案是N*(N-1)/2。
于是人们认识到,要使得每一部电话能够很方便的和另一部电话进行通信,就应当使用一个中间设备,将这些电话连接起来。这个中间设备就是电话交换机,每一部电话都连接到电话交换机上,可以把电话交换机简单的看成是一个有多个开关的开关器,可以将需要通信的任意两部电话的电话线路按需接通,从而大大减少了连接的电话线数量。
当电话机的数量增多时,就需要使用很多彼此连接起来的电话交换机来完成全网的交换任务,用这样的方法就构成了覆盖全世界的电信网,电话交换机接通电话线的方式称为电路交换。从通信资源的分配角度来看,交换就是按照某种方式动态的分配传输线路的资源。
我们来看下面这个电路交换的示意图,为了简单起见,图中没有区分市话交换机和长途电话交换机。应当注意的是用户线归电话用户专用,而电话交换机之间拥有的大量话路的中继线,则是许多用户共享的。电路交换有以下三个步骤,
第一步是建立连接,也就是分配通信资源。例如在使用电路交换打电话之前,必须先拨号请求建立连接,当被叫用户听到电话交换机送来的拨号音并摘机后,从主叫端到被叫端就建立了一条连接,也就是一条专用的物理通路,这条连接保证了双方通话时所需的通信资源,而这些资源在双方通信时不会被其他用户占用。
第二步是通话,也就是主教和被教双方互相通电话,在整个通话期间,第一步建立连接所分配的通信资源始终被占用。
第三步是释放连接,也就是通话完毕挂机后,电话交换机释放刚才使用的这条专用的物理通路。换句话说是把刚才占用的所有通信资源归还给电信网,
因此计算机网络通常采用分组交换,而不是电路交换。假设这是因特网的一部分,在因特网中最重要的分组交换机就是路由器,他负责将各种网络互联起来,并对接收到的分组进行转发,也就是在进行分组交换。我们来看这样一个例子,假设主机H6的用户要给主机H2的用户发送一条消息,通常我们把表示该消息的整块数据称为一个报文,在发送报文之前,先把较长的报文划分成为一个个更小的等长数据段,在每一个数据段前面,加上一些由必要的控制信息组成的首部后,就要构成了一个分组,也可简称为包,相应的首部也可称为包头。请大家思考一下,添加首部的作用是什么?这不是额外加大了带传输的数据量吗?实际上首部起到非常关键的作用,相信大家至少能想到首部中肯定包含了分组的目的地址,否则分组传输路径中的各分组交换机,也就是各路由器,就不知道如何转发分组了。分组交换机收到一个分组后,先将分组暂时存储下来,再检查其首部,按照首部中的目的地址进行查表转发,找到合适的转发接口,通过该接口将分组转发给下一个分组交换机,在本例中主机H6将所构造出的各分组依次发送出去,各分组经过途中各分组交换机的存储转发,最终到达主机H2,主机H2收到这些分组后,去掉他们的首部,将各数据段组合还原出原始报文。
需要说明的是为了初学者容易理解,在本例中,我们只演示出了分组传输过程中的两种情况,一种是各分组从源站到达目的站,可以走不同的路径,也就是不同的路由。另一种是分组乱序,也就是分组到达目的站的顺序,不一定与分组在源站的发送顺序相同,对于可能出现的分组丢失、误码、重复等问题并没有演示,这些内容将在今后的课程中详细介绍。
在上述的分组交换过程中,
发送方所要完成的任务是构造分组和发送分组。
路由器也就是分组交换机所要完成的任务是缓存分组和转发分组,简称为存储转发。
接收方所要完成的任务是接收分组和还原报文
与分组交换类似,报文交换中的交换节点,也采用存储转发方式,但报文交换对报文的大小没有限制,这就要求交换节点需要有较大的缓存空间。需要注意的是报文交换主要用于早期的电报、通信网,现在较少使用,通常被较先进的分组交换方式所取代。因此我们不再详细介绍报文交换了。
接下来我们对电路交换、报文交换、分组交换这三种交换方式进行一下对比。假设ABCD是分组传输路径上所要经过的4个节点交换机,纵坐标为时间,
- 对于电路交换,通信之前首先要建立连接,连接建立好之后,就可以使用已建立好的连接进行数据传送,数据传送结束后需要释放连接,以归还之前建立连接所占用的通信线路资源,
- 对于报文交换可以随时发送报文,而不需要事先建立连接。整个报文先传送到相邻节点交换机,全部存储下来后进行查表转发,转发到下一个节点交换机,
- 对于分组交换可以随时发送分组,而不需要事先建立连接,构成原始报文的一个个分组,依次在各节点交换机上存储转发,各节点交换机在发送分组的同时,还缓存接收到的分组。
- 当使用电路交换时,一旦建立连接中间的各节点交换机就是直通形式的,比特流可以直达终点。
- 当使用报文交换时,整个报文需要在各节点交换机上进行存储转发,由于不限制报文的大小,因此需要各节点交换机都具有较大的缓存空间。
- 当使用分组交换时,构成原始报文的一个个分组,在各节点交换机上进行存储转发,相比报文交换,减少了转发时延,还可以避免过长的报文,长时间占用链路,同时也有利于进行差错控制。
最后我们总结一下这三种交换方式各自的优缺点。
电路交换的优点如下
第一,通信时延小,这是因为通信线路为通信双方用户专用,数据直达,因此通信时延非常小,当连续传输大量数据时,这一优点非常明显。
第二,有序传输,这是因为通信双方之间只有一条专用的通信线路,数据只在这一条线路上传输,因此不存在失序问题。
第三,没有冲突,不同的通信双方拥有不同的信道,不会出现征用物理信道的问题。
第四,使用范围广,电路交换既适用于传输模拟信号,也适用于传输数字信号。
第五,实时性强,这主要得益于其通信时延小的优点。
第六,控制简单,电路交换的节点交换机及其控制都比较简单,
电路交换的缺点如下,
第一,建立连接时间长,电路交换的平均连接建立时间对计算机通信来说太长了。
第二,线路独占,使用效率低,电路交换一旦建立连接,物理通路就被通信双方独占,即使通信线路空闲,也不能供其他用户使用,因而信道利用率很低。
第三,灵活性差,只要连接所建立的物理通路中的任何一点出现了故障,就要必须重新拨号建立新的连接,这对十分紧急和重要的通信是很不利的。
第四,难以规格化,电路交换时数据直达,不同类型不同规格不同速率的终端,很难相互进行通信,也难以在通信过程中进行差错控制。
报文交换的优点如下,
第一,无需建立连接,报文交换不需要为通信双方预先建立一条专用的通信线路,不存在建立连接的时延,用户可以随时发送报文。
第二,动态分配线路,当发送方把报文传送给节点交换机,时节点交换机先存储整个报文,然后选择一条合适的空闲线路,将报文发送出去。
第三,提高线路可靠性。如果某条传输路径发生故障,会重新选择另一条路径传输,数据因此,提高了传输的可靠性。
第四,提高线路利用率。通信双方不是固定占用一条通信线路,而是在不同的时间分段部分占用物理线路,因而大大提高了通信线路的利用率。
第五,提供多目标服务,一个报文可以同时发送给多个目的地址,这在电路交换中是很难实现的。
报文交换的缺点如下,
第一,引起了转发时延,这是因为报文在节点交换机上要经历存储转发的过程。
第二,需要较大的存储缓存空间,这是因为报文交换对报文的大小没有限制。
第三,需要传输额外的信息量,这是因为报文需要携带目标地址、源地址等信息,
分组交换的优点如下,
第一,无需建立连接,分组交换不需要为通信双方预先建立一条专用的通信线路,不存在建立连接的时延,用户可以随时发送分组。
第二,线路利用率高,通信双方不是固定占用一条通信线路,而是在不同的时间分段部分占有物理线路,因而大大提高了通信线路的利用率。
第三,简化了存储管理,这是相对于报文交换而言的,因为分组的长度固定,相应的缓冲区的大小也固定,管理起来相对容易
第四,加速传输,由于分组是逐个传输的,这就使得后一个分组的存储操作与前一个分组的转发操作可以同时进行。
第五减少出错概率和重发数据量。因为分组比报文小,因此出错概率必然减小。即便分组出错,也只需重传出错的部分,这比重传整个报文的数据量小很多,这样不仅提高了可靠性,也减少了传输时延。
分组交换的缺点如下,
第一,引起了转发时延,这是因为分组在节点交换机上要经历存储转发的过程。
第二,需要传输额外的信息量,将原始报文分割成等长的数据块,每个数据块都要加上源地址、目的地址等控制信息,从而构成分组,因此使得传送的信息量增大了。
第三,当分组交换采用数据报服务时,可能会出现失去丢失或重复分组,分组到达目的节点时,需要重新还原成原始报文,比较麻烦。若分组交换采用虚电路服务,虽然没有分组失序问题,但有呼叫建立数据传输和虚电路释放三个过程。
本节课到这里就结束了。在本节课中,我们介绍了电路交换,分组交换以及报文交换这三种交换方式,其中分组交换是重点内容,希望大家能很好的掌握它的特点。
# 1.4 计算机网络的定义和分类
本节课我们介绍计算机网络的定义和分类。首先来看计算机网络的定义,计算机网络的精确定义并未统一,换句话说,全世界没有一个对计算机网络的公认的唯一定义。
这里我们给出一个计算机网络的最简单定义,即计算机网络是一些互相连接的、自治的计算机的集合,我们可以从该定义中找出三个关键词,它们是互联、自治、集合,互联是指计算机之间可以通过有线或无线的方式进行数据通信,自治是指独立的计算机,它有自己的硬件和软件可以单独运行使用。
那么基于以上概念,请大家思考一下该图所示是否是一个计算机网络?很显然这不是计算机网络,因为图中所示的各终端机只是具有显示和输入设备的终端,而并不是自治的计算机。因此这只是一个运行分时系统的大型机系统,集合是指至少需要两台计算机
需要注意的是在计算机网络发展的不同阶段,人们对计算机网络给出了不同的定义,这些定义反映了当时网络技术发展的水平下面,我们给出现阶段计算机网络的较好的定义
计算机网络主要是由一些通用的可编程的硬件互联而成的,而这些硬件并非专门用来实现某一特定目的,例如传送数据或视频信号,这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用。
该定义表明计算机网络所连接的硬件并不限于一般的计算机,而是包括了智能手机等智能硬件,该定义还表明计算机网络并非专门用来传送数据,而是能够支持很多种应用,包括今后可能出现的各种应用。
接下来介绍计算机网络的分类,我们可以从不同的角度对计算机网络进行分类
例如按交换技术分类,可以分为电路交换网络,报文交换网络,分组交换网络,这些是我们之前课程中已经介绍过的,
按网络的使用者分类,可以分为公用网,专用网,公用网是指电信公司出资建造的大型网络,公用的意思就是所有愿意按电信公司的规定,缴纳费用的人都可以使用这种网络,因此公用网也可称为公众网。专用网是指某个部门为本单位的特殊业务工作的需要而建立的网络,这种网络不向本单位以外的人提供服务,例如军队、铁路、电力等系统均有本系统的专用网,
按传输介质分类,可以分为有线网络和无线网络,有线网络包括双绞线网络、光纤网络等。而无线局域网所使用的WIFI技术目前应用比较普遍
按网络的覆盖范围分类,可以分为广域网WAN,城域网MAN,局域网LAN,个域网PAN,希望大家能记住这几个比较常见的英文缩写词,尤其是WAN,LAN和PAN。您可以看看自己家装路由器背面的各接口,很可能标记为1个WAN和多个LAN,而不是标记为中文的广域网接口和局域网接口。
广域网的覆盖范围通常为几十公里到几千公里,可以覆盖一个国家地区,甚至横跨几个州,因而有时也称为远程网。广域网是因特网的核心部分,其任务是为核心路由器提供远距离,例如跨越不同的国家的高速连接,互联分布在不同区域的城域网和局域网
城域网的覆盖范围一般是一个城市,可跨越几个街区,甚至整个城市,其作用距离为5~50公里。城域网通常作为城市骨干网,互联大量企业机构和校园局域网,近几年城域网已开始成为现代城市的信息服务基础设施,为大量用户提供接入和各种信息服务,并有趋势将传统的电信服务、有线电视服务和互联网服务融为一体。
局域网一般用微型计算机或工作站通过高速通信线路相连,速率通常在10兆比特每秒以上,但地理上则局限在较小的范围内,如一个实验室一幢楼或一个校园内,距离一般在一公里左右,局域网通常由某个单位单独拥有使用和维护。在局域网发展的初期,一个学校或工厂往往只拥有一个局域网,现在局域网已被非常广泛的使用,一个学校或企业大都拥有许多个互联的局域网,这样的网络通常称为校园网或企业网。
个域网是个人区域网络的简称,它不同于上述网络,不是用来连接普通计算机的,而是在个人工作的地方把属于个人使用的电子设备,例如便携式计算机、打印机、鼠标、键盘耳机等,用无线技术连接起来的网络,因此也常称为无线个人区域网WPAN,其覆盖范围大约为10米,
需要注意的是若中央处理机之间的距离非常近,例如仅一米的数量级甚至更小,则一般就称之为多处理机系统,而不称它为计算机网络。
计算机网络还可以按拓扑结构分类,可以分为总线型网络、星型网络、环形网络和网状型网络,总线型网络使用单根传输线,把计算机连接起来。它的优点是建网容易增减节点方便节省线路,缺点是重负载时通讯效率不高,总线任意一处出现故障,则全网瘫痪。
星型网络是将每个计算机都以单独的线路与中央设备相连。中央设备早期是计算机,后来是集线器,现在一般是交换机或路由器,这种网络拓扑便于网络的集中控制和管理,因为端用户之间的通信必须经过中央设备,缺点是成本高,中央设备对故障敏感
环形网络是将所有计算机的网络接口连接成一个环,最典型的例子是令牌环局域网,环可以是单环,也可以是双环,环中信号是单向传输的,
网状型网络,一般情况下,每个节点至少有两条路径与其他节点相连,多用在广域网中,其优点是可靠性高,缺点是控制复杂,线路成本高。
需要注意的是以上4种基本的网络拓扑还可以互联为更复杂的网络。
本节课到这里就结束了,本节课并没有什么难点内容,只需要大家对这些内容做到了解即可。
# 1.5 计算机网络的性能指标
本节课我们介绍计算机网络的性能指标,性能指标可以从不同的方面来度量计算机网络的性能。常用的计算机网络性能指标有以下8个,它们是速率、带宽、吞吐量、时延、时延带宽积,往返时间、利用率,丢包率
首先介绍速率,为了能够更好的理解速率,我们需要先了解比特,比特是计算机中数据量的单位,也是信息论中信息量的单位。一个比特就是二进制数字的1或0,常用的数据量单位有字节,它的英文单词为Byte,常简写为大写字母B。1个字节包含8个比特,比特的英文单词为bit,常简写为小写字母b,千字节KB,这里的K为2的10次方,因此KB=2的10次方个字节,兆字节MB它等于K乘以KB,因此等于2的二次方个字节
吉字节GB,它等于K乘以MB,因此等于2的30次方个字节。太子节TB它等于K乘以GB,因此等于2的40次方个字节。这里顺便提一下,也许大家有购买新硬盘或U盘的经历,在使用中会发现操作系统给出的容量与厂家标称的容量不同,例如这是我计算机中的一块固态硬盘,标称容量为250GB,但操作系统给出的容量为232.8GB,这是什么原因呢?下面的计算公式就要可以说明这个问题,厂家给出的单位GB中的G为10的9次,而操作系统中数据量单位GB中的G为2的30次,
需要说明的是在本系列视频教程中可能会出现某些品牌的产品,但这并不表示推荐该产品,也就是说与广告无关。之所以在本系列教程中出现真实的相关产品,是为了让大家感觉到本课程更贴近实际生活,而不仅仅是空谈理论。
有了比特的概念,我们就可以引出计算机网络中的一个重要的性能指标:速率。它具体是指连接在计算机网络上的主机,在数字信道上传送比特的速率,也称为比特率或数据率。常用的数据率单位有比特每秒,可以简写为小写字母b/s或者写为BPS,千比特每妙。这里的k常用小写,而数据量单位中的K常用大写,小写k在速率单位中的值为10的三次,也就是1000,而大写K在数据量单位中的值为二的10次,也就是1024
兆比特每秒。尽管这里的大写字母M与数据量单位中的相同,但在速率单位中其值为10的6次,而在数据量单位中其值为2~20次
吉比特每秒。尽管这里的大写字母G与数据量单位中的相同,但在数据单位中其值为10的9次,而在数据量单位中其值为2的30次,
太比特每秒。尽管这里的大写字母T与数据量单位中的相同,但在数据单位中其值为10的12次,而在数据量单位中其值为2的40次。
下面我们来做个练习,看看大家是否已经掌握了比特和速率的知识。有一个带发送的数据块大小为100兆字节MB,网卡的发送速率为100兆比特每秒,则网卡发送完该块数据需要多长时间,相信大家都会做这道题,但是可能会在一些细节上出现问题。我们现在来解题,用数据块的大小100兆字节,除以网卡的发送速率100兆比特每秒,就是网卡发送完该块数据所花费的时长,分子和分母上的100可以约掉,而分子和分母上的照是否可以约掉呢?严格来说是不能约掉的,因为分子上的兆是数据量单位中的,其值为2的20次,而分母上的兆是速率单位中的其值为10的6次,我们还需要将分子上的字节转换为8个比特,这样分子和分母上的比特就可以约掉只剩下秒单位,最终计算结果为8.388608秒。需要说明的是为了简单起见,我们平时可以进行估算,则分子和分母上的照可以直接约掉,对于本列结果为8秒,与精确计算的差别不是很大。特别需要提醒大家的是,对所学知识应该灵活应用,而不能生搬硬套,钻牛角尖。
例如这是计算机专业考研全国统考,计算机网络部分2013年第35题,在题目中规定了数据量单位中的兆为10的6次,目的是为了方便同学们的计算,我们就不能生搬硬套,非要把数据量单位中的照取值为2的20次。由于时间关系,本节课我们就不对该题进行解答了。在本系列课程中,每章结束时都会进行小结,并且会有专门的习题课。习题课中的题目大部分选自近10年计算机专业考研全国统考,计算机网络部分的真题。另外还会安排一些典型题目,以加深同学们对所学知识的理解。
【考研2013年35题】主机甲通过1个路由器(存储转发方式)与主机乙互联,两段链路的数据传输速率均为10Mbps,主机甲分别采用报文交换和分组大小为10kb 的分组交换向主机乙发送1个大小为8Mb(1Mb=10^6^kb )的报文。若忽略链路传播延迟、分组头开销和分组拆装时间,则两种交换方式完成该报文传输所需的总时间分别为 ( )。
A.800ms、1600ms
B.801ms、1600ms
C.1600ms、800ms
D.1600ms、801ms
- 发送一个报文的时延是8Mb/10Mb/s=800ms,在接收端接收此报文的时延也是800ms,共计1600ms。 即发送时延+传播时延
- 发送一个报文的时延是10kb/10Mb/s=1ms,接收一个报文的时延也是1ms,但是在发送第二个报文时,第一个报文已经开始接收。共计有800个分组,总时间为801ms。
- 分组为10kb,发第一条的时候,路由器端在等待,第二条开始甲机和路由器可以同时运行,甲机发送完后停止,路由器传最后一条。用时800ms+1ms
接下来我们介绍带宽性能指标
带宽在模拟信号系统中的意义是指信号所包含的各种不同频率成分所占据的频率范围,其基本单位是赫兹,常用单位有千赫兹、兆赫兹、吉赫兹,例如在传统的通信线路上传送的电话信号的标准带宽为3.1k赫兹,范围从300Hz到3.4kHz,这是话音的主要成分的频率范围。
带宽在计算机网络中的意义是用来表示网络的通信线路所能传送数据的能力,因此网络带宽表示在单位时间内,从网络中的某一点到另一点所能通过的最高数据率。因此带宽计算机网络性能指标的单位与我们刚刚介绍的速率性能指标的单位是相同的,基本单位是比特每秒,常用单位有千比特每秒,兆比特每秒,吉比特每秒,太比特每秒,
大家可能有过这样的经历,有朋友问你家的出口网速有多大?你可能回答说200兆,这里我们往往省略说比特每秒。完整的描述应该是最高速率为200兆比特每秒,而这个最高速率其实就是你家网络的出口带宽,这当然是一个很重要的计算机网络性能指标,它直接关系到我们的网络应用体验,
我们介绍了带宽的两种描述,其实带宽的这两种表述之间有着密切的联系,一条通信线路的频带宽度越宽,其所能传输数据的最高数据率也就越高。
接下来我们介绍吞吐量性能指标,吞吐量表示在单位时间内,通过某个网络或信道接口的数据量,吞吐量被经常用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络。吞吐量受网络带宽或额定速率的限制。例如这是一个带宽为1G比特每秒的以太网,其吞吐量受带宽限制,最高为1G比特每秒,通常只能达到700兆比特每
接下来。我们介绍本节课所要介绍的最后一个计算机网络性能指标,时延。我们来看看分组从源主机传送给目的主机的过程中,都会在哪些地方产生时延?
源主机将分组发往传输线路,这需要花费一定的时间,我们把这段时间称为发送时延,
代表分组的电信号,在链路上传输,这也需要花费一定的时间。我们把这段时间称为传播时延,
路由器收到分组后,对其进行存储转发,这也需要花费一定的时间,我们把这段时间称为处理时延。一般来说,源主机和目的主机之间的路径会由多段电路和多个路由器构成,因此会有多个传播时延和处理时延。
通过本例可知,网络时延由三部分构成,他们是发送时延,传播时延和处理时延,发送时间的计算公式为分组长度除以发送速率,这里需要对发送速率做一下说明,如图所示,这是家庭局域网的一部分,网卡的发送速率,信道带宽,交换机的接口速率,他们共同决定着主机的发送速率。例如若网卡的发送速率为1G比特每秒,信道带宽为1G比特每秒,交换机的接口速率为1G比特每秒,则主机的发送速率理论上最大可以达到1G比特每秒;
若网卡的发送速率为100兆比特每秒,信道带宽为1G比特每秒,交换机的接口速率为1G比特每秒,则主机的发送速率理论上最大只能达到100兆比特每秒;
若网卡的发送速率为1G比特每秒,信道带宽为100兆比特每秒,交换机的接口速率为1G比特每秒,则主机的发送速率理论上最大,也只能达到100兆比特每秒;
从该例可以看出,在构建网络时应该做到各设备间以及传输介质的速率匹配,这样才能完全发挥出本应具有的传输性能,希望同学们重视这一点,因为大家今后就可能面临新房装修时,网络布线以及相关设备的采购问题,如果未认真考虑造成网络性能无法满足自己的应用需求,再进行改造,将会是非常麻烦的事情。目前主流的家庭局域网带宽是1000M兆,有些发烧友甚至打造家庭万兆局域网。
再来看传播时延的计算公式,由信道长度除以电磁波传播速率,电磁波在自由空间的传播速率是光速,即3×10的8次方米每秒,电磁波在网络传输媒体中的传播速率比在自由空间要略低一些。在铜线电缆中的传播速率约为2.3×10的8次方米每秒,在光纤中的传播速率约为2.0×10的8次方米每秒。因此要计算传播时延,首先应该确定采用的是什么传输媒体,进而可以确定电磁波在该传输媒体中的传播速率,希望同学们能够将电磁波的上述三种传播速率作为常识而记住,
处理时延没有简单的计算公式,因为它不方便计算,这并不难理解,因为网络中的数据流量是动态变化的,因此路由器的繁忙程度也是动态变化的,另外各种路由器的软硬件性能也可能有所不同,因此很难用一个公式计算出处理时延。
这里需要说明的是有的教材中还有一个排队时延,而本课程将排队时延与处理时延合并成为处理时延
由于处理时延不方便计算,因此一般在有关计算实验的考题中,题目往往会指明处理时延忽略不计。
那么请大家思考一下,在处理时延忽略不计的情况下,网络走时延中,是传播时延占主导,还是发送时延占主导?请大家记好自己的答案。等一下我们看看大家是否做对了。我们来看这个例子,数据块长度为100兆字节,信道带宽为1M兆比特每秒,传送距离为1000公里,计算发送时延和传播时延。发送时延等于分组长度除以发送速率,将题目给定的相应已知量代入公式。这里2的20次是数据量单位中的兆,这里10的6次是速率单位中的兆,计算结果为800多秒,传播时延等于信道长度除以电磁波传播速率,将题目给定的相应已知量代入公式,题目并未给出传输介质,为了方便计算,我们假设传输介质是光纤,因此电磁波传输速率这里为2×10的8次方米每秒,计算结果为0.005秒,很显然在本地中发送时延占主导。
再来看另一个例子,本例与例三只有一点不同,就是将数据块的大小从100兆字节改为一个字节,我们使用同样的方法可以计算出发送时间为8×10的-6次方秒,传播时延没有改变,仍是0.005秒。很显然在本例中传播实验占主导。通过以上两个例子可以看出,构成网络时延的发送时延,传播时延以及处理时延。在处理时延忽略不计的情况下,我们不能想当然的认为发送时延占主导,或传播时延占主导,而应该具体问题具体分析,不知大家是否做对了,如果没做对,请不要灰心。再好好看一下这两个例子,加深理解和记忆。
本节课所介绍的4个常用的计算机网络性能指标的要点总结如下,
在上次课中我们介绍了4个常用的计算机网络性能指标,本节课我们介绍另外4个性能指标,首先来看时延带宽积,从字面意思就可以看出,该性能指标是时延与带宽的乘积,但是时延由发送时延,传播时延和处理时延三部分构成。该性能指标中的时延具体是指哪一个?答案是传播时延。也就是说时延带宽积是传播时延与带宽的乘积,我们可以把传输电路看成是一个管道,其长度为传播时延,横截面积为带宽,则时延带宽积就是该管道的体积,可以想象成管道中充满了比特,若发送端连续发送数据,则在所发送的第一个比特即将到达终点时,发送端就已经发送了时延带宽积个比特。链路的时延带宽积又称为以比特为单位的链路长度。
接下来我们介绍往返时间这个性能指标,在许多情况下,因特网上的信息不仅仅单方向传输,而是双向交互。我们有时很需要知道双向交互一次所需的时间,因此往返时间RTT也是一个重要的性能指标。来看下面这个例子,以太网上的某台主机要与无线局域网中的某台主机进行信息交互,往返时间RTT是指从源主机发送分组开始,直到源主机收到来自目的主机的确认分组为止,所需要的时间,
请大家根据我们上节课介绍的有关时延的知识来分析一下,分组是在以太网上耗时较多,还是在无线局网上耗时较多,又或者是在卫星链路上耗时较多?答案是卫星链路耗时较多。一般情况下卫星链路的距离比较远,所带来的传播时延比较大,例如地球同步卫星距离地球36000公里,那么可以计算出通过同步卫星转发分组所带来的传播时延大约为240毫秒。
接下来我们介绍利用率,性能指标,利用率有两种,一种是信道利用率,另一种是网络利用率。信道利用率用来表示某信道有百分之几的时间是被利用的,也就是有数据通过,而网络利用率是指全网络的信道利用率加权平均。根据排队论,当某信道的利用率增大时,该信道引起的时延也会迅速增加,因此心脏利用率并非越高越好。如果利用D0表示网络空闲时的时延,D表示网络当前的时延,那么在适当的假定条件下,可以利用下面的简单公式来表示D,D0和利用率u之间的关系。D=D0/(1-u)我们可以按该式画出时延D,随利用率u的变化曲线。可以看出时延D从网络空闲时的时延D0随利用率优的增加而迅速增长。当网络的利用率达到50%,时延就要加倍。当网络的利用率超过50%时,时延急剧增大,当网络的利用率接近100%时,时延就要趋于无穷大。因此一些拥有较大主干网的ISP,通常会控制他们的信道利用率不超过50%,如果超过了就要准备扩容,增大线路的带宽,当然也不能使信道利用率太低,这会使宝贵的通信资源白白浪费,应该使用一些机制,可以根据情况动态调整输入到网络中的通信量,使网络利用率保持在一个合理的范围内。
最后我们来介绍丢包率性能指标,丢包率及分组的丢失率,是指在一定的时间范围内传输过程中丢失的分组数量与总分组数量的比率。丢包率具体可分为接口丢包率、结点丢包率、链路丢包率、路径丢包率、网络丢包率等。丢包率是网络运维人员非常关心的一个网络性能指标,但对于普通用户来说往往并不关心这个指标,因为他们通常意识不到网络丢包。分组丢失主要有两种情况,我们来举例说明,
一种情况是分组在传输过程中出现误码,被结点交换机丢弃如图所示,主机发送的分组在传输过程中出现了误码,当分组进入传输路径中的节点交换机后,被节点交换机检测出了误码,进而被丢弃。至于节点交换机是如何检测出分组有误,我们会在后续课程中介绍。
另一种情况是分组到达一台存储队列已满的分组交换机时被丢弃,在通信量较大时就可能造成网络拥塞,如图所示。假设路由器r5当前的输入缓冲区已满,此时主机发送的分组到达该路由器,路由器没有存储空间暂存该分组只能将其丢弃。需要说明的是实际上路由器会根据自身拥塞控制方法,在输入缓存还未满的时候就要主动丢弃分组,因此丢包率反映了网络的拥塞情况,无拥塞时路径丢包率为0,轻度拥塞时路径丢包率为1%~4%,严重拥塞时路径丢包率为5%~15%。当网络的丢包率较高时,通常无法使网络应用正常工作,
本节课所介绍的4个常用的计算机网络性能指标的要点总结如下
# 1.6计算机体系结构
# 常见的计算机网络体系结构
从本节课开始,我们要用4次课的时间来介绍有关计算机网络体系结构的知识,具体包含以下内容
一,常见的计算机网络体系结构
二,计算机网络体系结构分层的必要性
三,计算机网络体系结构分层思想举例
四,计算机网络体系结构中的专用术语
计算机网络体系结构是计算机网络课程中的重点和难点,它的抽象概念较多,建议大家学习时要多思考,这些概念对后面的学习很有帮助。本节课我们介绍常见的计算机网络体系结构。
为了使不同体系结构的计算机网络都能互联,国际标准化组织于1977年成立了专门机构研究该问题,不久他们就要提出了一个试图使各种计算机在世界范围内互联成网的标准框架,也就是著名的开放系统互联参考模型,简称为OSI,该模型是一个7层协议的体系结构,从下往上依次是物理层、数据链路层、网络层、运输层、会话层、表示层、应用层,它是法律上的国际标准。到了20世纪90年代初期,虽然整套的OSI国际标准都已经制定出来了,但这时因特网已抢先在全世界覆盖了相当大的范围。因特网从1983年开始使用tcpip协议组,并逐步演变成tcpip参考模型,该模型是一个4层协议的体系结构,从下往上依次是网络接口层,网际层、运输层、应用层,它是事实上的国际标准。
在过去制定标准的组织中,往往以专家学者为主,但现在许多公司都纷纷挤进各种各样的标准化组织,使得技术标准有着浓厚的商业气息。一个新标准的出现,有时不一定反映出其技术水平是最先进的,而是往往有着一定的市场背景。从这种意义上说,能够占领市场的就是标准。OSI标准失败的原因,可归纳为
第一OSI的专家们缺乏实际经验,他们在完成OSI标准时没有商业驱动力。
第二,OSI的协议实现起来过分复杂,而且运行效率很低。
第三,OSI标准的制定周期太长,因而使得按OSI标准生产的设备无法及时进入市场。
第四,OSI的层次划分也不太合理,有些功能在多个层次中重复出现。
对比这两个体系结构可以看出tcpip体系结构相当于将OSI体系结构的物理层和数据链路层合并为了网络接口层,并去掉了会话层和表示层。另外由于tcpip在网络层使用的协议是IP协议,中文意思是网际协议,因此tcpip体系结构的网络层常称为网际层,
大多数用户每天都有接入因特网的需求,这就要求用户的主机必须使用TCPIP协议。当然了,即使用户的网络不需要接入因特网,也可以使用tcpip协议,在用户主机的操作系统中,通常都带有符合tcpip体系结构标准的tcpip协议族,而用于网络互联的路由器中,也带有符合TCP体系结构标准的TCP协议组,只不过路由器一般只包含网络接口层和网际层
tcpip体系结构的网络接口层,并没有规定什么具体的内容,这样做的目的是可以互联全世界各种不同的网络接口,例如有线的以太网接口,无线局域网的WiFi接口,而不限定仅使用一种或几种网络接口。因此本质上tcpip体系结构只有上面的三层,IP协议是tcpip体系结构网际层的核心协议,TCP和udp是TCP体系结构运输层的两个重要协议。
Tcp体系结构的应用层包含了大量的应用层协议,例如HTTP smtp,dns,rtp等。即便大家是计算机网络的初学者,对HTTP这个缩写词也不会陌生,因为每当我们打开浏览器,在地址栏输入网址时,就会看到它
IP协议可以将不同的网络接口进行互联,并向其上的TCP协议和udp协议提供网络互联服务。而TCP协议在享受IP协议提供的网络互联服务的基础上,可向应用层的相应协议提供可靠传输的服务。
Udp协议在享受IP协议提供的网络互联服务的基础上,可向应用层的相应协议提供不可靠传输的服务。Ip协议作为tcp IP体系结构中的核心协议,一方面负责互联不同的网络接口,也就是IP over everything, 另一方面为各种网络应用提供服务,也就是everything over IP
在tcpip体系结构中包含有大量的协议,IP协议和TCP协议是其中非常重要的两个协议,因此用TCP和IP这两个协议来表示整个协议大家族常称为tcpip协议族。顺便提一下,在嵌入式系统开发领域,tcpip协议族常称为tcpip协议栈,这是因为tcpip协议体系的分层结构与数据结构中的站在图形画法上是类似的。
由于tcpip体系结构,为了将不同的网络接口进行互联,因此它的网络接口层并没有规定什么具体的内容。然而这对于我们学习计算机网络的完整体系而言,就会缺少一部分内容,因此在学习计算机网络原理时,往往采取折中的办法,也就是综合OSI和tcpip的优点,采用一种5层协议的原理体系结构,5层协议的原理体系结构,从下到上依次为物理层、数据链路层、网络层、运输层、应用层。可以看出5层协议的原理体系结构,将tcpip体系结构的网络接口层又重新划分为了物理层和数据链路层,这样更有利于我们对计算机网络原理的学习。
本节课到这里就结束了,希望同学们通过本节课的学习,对计算机网络体系结构有了初步的了解,同时也产生了更多的疑问。比如计算机网络体系结构为什么要分层?各层的主要任务是什么?这些内容我们将在下节课介绍
# 分层的必要性
在上节课中我们给大家介绍了常见的三种计算机网络体系结构,本节课我们将以5层协议的原理体系结构为例,介绍计算机网络体系结构分层的必要性。
- 计算机网络是个非常复杂的系统,早在最初的ARPANET设计时,就提出了分层的设计理念,
- 分层可将庞大而复杂的问题转化为若干较小的局部问题,而这些较小的局部问题就比较容易研究和处理。
- 下面我们按照由简单到复杂的顺序来看看实现计算机网络要面临哪些主要问题,以及如何将这些问题划分到相应的层次,层层处理。
物理层:例如两台计算机通过一条网线连接起来,需要考虑:
采用怎样的传输媒体(介质),例如网线、WIFI,严格来说这不是物理层的范围
用怎么样的物理接口,
用怎么样的信号表示比特0和1,例如使用方波信号,高电平表示1,低电平表示0(这里只是举例)
解决这些问题后,两台计算机就可以传输比特0和1了。这就是物理层要解决的问题。
首先来看最简单的情况,两台计算机通过一条网线连接起来,对于这种最简单的情况,我们需要考虑以下问题,
- 一个是采用怎样的传输媒体,比如这是我们常见的双绞线网线,
- 另一个是在计算机上采用怎样的物理接口来连接传输媒体,例如这是RJ45以太网接口,
- 还有一个需要考虑的问题是使用怎样的信号来表示比特0和1?例如使用这样的方波信号,低电平表示0,高电平表示1。
解决了这些问题,两台计算机就可以通过信号来传输比特0或1。我们可以将这些问题划归到物理层。这里我们需要说明两点,
- 第一,严格来说,传输媒体并不属于物理层,它并不包含在体系结构之中
- 第二,计算机网络中传输的信号,并不是我们举例的方波信号,我们之所以举例成方波信号,是为了让初学者容易理解。在学习本身就不容易理解的,概念抽象的计算机网络体系结构时,不让其他技术细节再给大家造成学习障碍。
链路层:实用的计算机网络一般都由多台主机构成,例如主机ABCDE通过总线互联构成了一个总线型网络,假设我们已经解决了物理层的问题,也就是说主机间可以发送信号来传输比特0或1。我们来看看在这样一个总线型的网络上还面临什么需要解决的问题。
- 主机A要给主机C发送数据,但是表示数据的信号会通过总线传播到总线上的每一个主机。那么问题来了,主机C如何知道该数据是发给自己的,自己要接受,而主机BDE要如何知道该数据并不是发送给自己的,自己应该拒绝。这就很自然的引出了如何标识网络中各主机的问题,也就是主机编制问题。大家可能听说过网卡上的MAC地址,其实它就是主机在网络中的地址,主机在发送数据时应该给数据附加上目的地址,当其他主机收到后,根据目的地址和自身地址来决定是否接受数据
- 这就又引出了一个问题,目的主机如何从信号所表示的一连串比特流中区分出地址和数据,也就是需要解决分组的封装格式问题。
- 另外对于总线型的网络,还会出现下面这种典型的问题,例如某个时刻总线是空闲的,也就是没有主机使用总线来发送数据,片刻之后,主机B和D同时向总线发送数据,这必然会造成信号碰撞。因此如何协调各主机征用总线也是必须要解决的问题。
- 需要说明的是这种总线型的网络早已淘汰,现在常用的是使用以太网交换机,将多台主机互联形成的交换式以太网。那么以太网交换机又是如何实现的?我们将这些问题全部划归到数据链路层。到这里大家可能会发现,只要解决了物理层和数据链路层各自所面临的问题,我们就可以实现分组在一个网络上传输了。
我们每天都会使用的因特网是由非常多的网络和路由器互联起来的,仅解决物理层和数据链路层的问题,还是不能正常工作。我们来看这个例子,这是一个由3个路由器,4个网络互联起来的小型互联网,我们可以把它看作是因特网中很小的一部分。在之前的例子中仅有一个网络,我们不需要对网络进行标识。而在本地中有多个网络,很显然我们面临着如何标识各网络以及各网络中各主机的问题。换句话说,也就是网络和主机共同编制的问题。相信同学们一定听过IP地址,例如这是网络N1中各设备的IP地址,该类IP地址的前三个10进制数用来标识网络。第4个10进制数用来标识主机。在本例中网络N1的网络号为192.168.1,该网络上的笔记本电脑服务器以及路由器接口的IP地址的前三个数应该都是192.168.1,因为他们都在网络N1上,而第4个十进制数分别为1,2,254各不相同,用来标识他们自己。同理,这是网络N2上各设备的IP地址。
我们再来看另一个问题,源主机与目的主机之间的传输路径往往不止一条,分组从源主机到目的主机可走不同的路径,这样就引出了路由器如何转发分组的问题,以及如何进行路由选择的问题。我们将这些问题全部划归到网络层,至此我们解决了物理层、数据链路层以及网络层各自的问题,则可以实现分组在网络间传输的问题。
例如假设这台主机装运行着两个与网络通信相关的应用进程,一个是浏览器进程,另一个是QQ进程。这台服务器中运行着与网络通信相关的服务器进程,某个时刻主机收到了来自服务器的分组,那么这些分组应该交给浏览器进程处理,还是应该交给QQ进程处理,这就引出了我们如何标识与网络通信相关的应用进程,进而解决进程之间基于网络通信的问题。
另外如果某个分组在传输过程中出现了误码,或者由于路由器繁忙,导致路由器丢弃分组,换句话说,若出现传输错误,应该如何处理?这也是需要解决的问题。我们将这些问题全部划归到运输层,至此我们解决了物理层、数据链路层、网络层以及运输层各自的问题,则可以实现进程之间基于网络的通信。
在此基础上,只需制定各种应用层协议,并按协议标准编写相应的应用程序,通过应用进程间的交互来完成特定的网络应用。比如支持万维网应用的HTTP协议,支持电子邮件的SMTP协议,支持文件传送的FTP协议等,我们将这些问题全部划归到应用层,
至此,我们将实现计算机网络所需要解决的各种主要问题,分别划归到了物理层、数据链路层、网络层、运输层和应用层,进而构成了5层协议体系的原理体系结构,物理层解决使用何种信号来表示比特的问题。数据链路层解决分组在一个网络或一段链路上传输的问题。网络层解决分组在多个网络上传输和路由的问题。运输层解决进程之间基于网络的通信问题,应用层解决通过应用进程的交互来实现特定网络应用的问题。
请大家思考一下这样一个问题。假设你是一名程序员,要编程解决实现计算机网络所面临的所有软件问题那么,你是愿意将这些问题全部放在一个模块中编程实现,还是愿意将他们划分到不同的模块中,逐模块编程实现,相信你一定会选择后者。
# 分层思想举例
通过一个具体的网络通信实例来看看计算机网络体系结构分层处理方法。
假设网络拓扑如下,所示主机属于网络N1,web服务器属于网络N2。 N1和N2,通过路由器互联。我们使用主机中的浏览器来访问web服务器,当输入网址后,主机会向外部服务器发送请求,WEB服务器收到请求后,会发回相应的响应。主机的浏览器收到响应后,将其解析为具体的网页内容显示出来,需要说明的是我们给出的只是一个简化的示意过程,这是因为本节课的重点是计算机网络体系结构分层处理方法,而不是浏览器和web服务器的实际交互过程。
主机和web服务器之间基于网络的通信,实际上是主机中的浏览器应用进程与web服务器中的web服务器应用进程之间的基于网络的通信。
那么体系结构的各层在整个过程中起到怎样的作用?
从主机端按体系结构自顶向下的顺序来看,应用层按HTTP协议的规定,构建一个HTTP请求报文,这是该报文的内容。
应用层将HTTP报文交付给运输层处理,运输层给HTTP请求报文添加一个TCP首部,使之成为TCP报文段,这是TCP报文段的首部格式,该首部的作用主要是为了区分应用进程以及实现可靠传输。
运输层将TCP报文段交付给网络层处理,网络层给TCP报文段添加一个IP首使之质成为IP数据报,这是IP数据报的首部格式。
该首部的作用主要是为了使IP数据报可以在互联网上传输,也就是被路由器转发
网络层将IP数据报交付给数据链路层处理,数据链路层给IP数据报添加一个首部和一个尾部,使之成为帧。假设网络N1是以太网,这是以太网帧首部的格式,该首部的作用主要是为了让帧能够在一段链路上或一个网络上传输,能够被相应的目的主机接收。
这是以太网帧尾部的格式,其作用是为了让目的主机检查所接收到的帧是否有误码。
数据链路层将帧交付给物理层,物理层将帧看作是比特流,由于网络N1是以太网,因此物理层还会给该比特流前面添加前导码,这是前导码的内容,其作用是为了让目的主机做好接收帧的准备,物理层将添加有前导码的比特流,变换成相应的信号发送到传输媒体,信号通过传输媒体到达路由器。
我们来看路由器的处理过程,
- 物理层将信号变换为比特流,然后去掉前导码后,将其交付给数据链路层,这实际上交付的是帧,
- 数据链路层将帧的首部和尾部去掉后,将其交付给网络层,这实际上交付的是IP数据报,
- 网络层解析IP数据报的首部,从中提取出目的网络地址,然后查找自身的路由表,确定转发端口,以便进行转发。
- 网络层将IP数据报交付给数据链路层,
- 数据链路层给IP数据报添加一个s首部和一个尾部,使之成为帧
- 数据链路层将针交付给物理层,物理层将帧看作是比特流。由于网络N二是以太网,因此物理层还会给该比特流前面添加前导码
- 物理层将添加有前导码的比特流,变换成相应的信号发送到传输媒体,信号通过传输媒体到达web服务器。
我们来看web服务器的处理过程,
- 物理层将信号变换为比特流,然后去掉前导码后,将其交付给数据链路层,这实际上交付的是帧
- 数据链路层将真的首部和尾部去掉后,将其交付给网络层,这实际上交付的是IP数据报,
- 网络层将IP数据报的首部去掉后,将其交付给运输层,这实际上交付的是TCP报文段,
- 运输层将TCP报文段的首部去掉后,将其交付给应用层。实际上交付的是HTTP请求报文,
- 应用层对HTTP请求报文进行解析,然后给主机发回HTTP响应报文‘
与之前的过程类似,HTTP响应报文需要在外部服务器层层封装,然后通过物理层变换成相应的信号,再通过传输媒体传输到路由器,路由器转发该响应报文给主机,主机通过物理层将收到的信号转换为比特流,之后通过逐层解封,最终取出HTTP响应报文
# 专用术语
需要说明的是这些专用术语来源于osi的7层协议体系结构,但也适用于tcpip的4层体系结构和5层协议原理体系结构。
我们将这些专用术语中最具代表性的三个作为分类名称,它们分别是实体,协议,服务。
实体:
协议:语法、语义,同步
服务:
我们首先来看实体,实体是指任何可发送或接收信息的硬件或软件进程。
例如这是通信双方的5层原理体系结构,我们在他们的各层中用标有字母的小方格来表示实体。
有了实体的概念,我们再来看对等实体,它是指通信双方相同层次中的实体,例如图中实体a与实体f为对等实体,实体b与实体g为对等实体,以此类推。
那么按照对等实体的定义,请同学们思考一下,通信双方的网卡是不是对等实体呢?通信双方中的正在进行通信的应用进程,是不是对等实体?回答是肯定的,
有了对等实体的概念,我们再来介绍协议,协议是控制两个对等实体进行逻辑通信的规则的集合,例如应用层对等实体,在应用层协议的控制下进行逻辑通信,运输层对等实体在运输层协议的控制下进行逻辑通信,网络层对等实体在网络层协议的控制下进行逻辑通信,以此类推。
需要注意的是之所以称为逻辑通信,是因为这种通信其实并不存在,它只是我们假设出来的一种通信,目的在于方便我们单独研究体系结构某一层,而不用考虑其他层。
例如当我们研究运输层时,我们可以假设运输层的对等实体在进行逻辑通信,而不用顾及其他层。计算机网络协议有三个要素,他们是语法、语义,同步。
语法定义通信双方所交换信息的格式,例如这是IP数据报的格式
其中的小格子称为字段或域。数字表示字段的长度,单位是位,也就是比特。
语法就是定义了这些小格子的长度和先后顺序。换句话说,语法定义了所交换信息有哪些字段以及何种顺序构成,需要说明的是我们没有必要记住每种分组的格式,只要我们能看懂他们的格式说明就可以了。
当然了,如果同学们将来会从事计算机网络相关的开发教学研究等工作,像IP数据报、TCP报文段,HTTP报文等这些常见的分组格式,相信大家在学习和研究过程中自然而然的就会记住了。
语义定义通信双方所要完成的操作,这是我们上节课举过的应用实例。主机要访问远程web服务器,它会构建一个HTTP的get请求报文,然后将其发送给外部服务器,web服务器收到该报文并进行解析,知道这是一个HTTP的get请求报文,于是就在自身内部查找所请求的内容,并将所找到的内容封装在一个HTTP响应报文装发回给主机,主机收到HTTP响应报文后,对其进行解析,取出所请求的内容,并由浏览器解析显示。这个例子就可以体现出通信双方收到分组后完成怎样的操作。这是HTTP协议的语义所规定的
同步定义通信双方的时序关系。请注意并不是指时钟频率同步,例如这是TCP采用三报文握手建立连接的过程,
要想进行运输层TCP实体间的逻辑通信,首先必须建立连接,从连接建立的过程就可以看出TCP客户端和TCP服务器之间的时序关系以及各自的状态转换,只有双方建立连接后才能进行TCP数据传输。这个例子可以充分体现计算机网络协议三要素中的同步。
有了协议的概念,我们再来介绍服务,在协议的控制下,两个对等实体间的逻辑通信,使得本层能够向上一层提供服务,
例如物理层对等实体,在物理层协议的控制下,向数据链路层提供服务。
要实现本层协议,还需要使用下面一层所提供的服务,例如数据链路层对等实体享受物理层提供的服务,并在数据链路层协议的控制下进行逻辑通信,给网络层提供服务。
网络层对等实体享受数据链路层提供的服务,并在网络层协议的控制下进行逻辑通信,给运输层提供服务,
运输层对等实体享受网络层提供的服务,并在运输层协议的控制下进行逻辑通信,给应用层提供服务,
应用层对等实体享受运输层提供的服务,并在应用层协议的控制下进行逻辑通信,给其上层也就是用户提供服务
很明显协议是水平的,而服务是垂直的。请同学们需要特别注意的是实体看得见下层所提供的服务,但并不知道实现该服务的具体协议。换句话说,下层的协议对上层的实体是透明的。
这就好比,我们肯定看得见手机为我们提供的各种服务,但我们只是享受这些服务,而没有必要弄懂手机的工作原理。
再来看服务访问点的概念,它是指在同一系统中相邻两层的实体交换信息的逻辑接口,用于区分不同的服务类型。
例如数据链路层的服务访问点为帧的类型字段,网络层的服务访问点为IP数据报首部中的协议字段,运输层的服务访问点为端口号。
上层要使用下层所提供的服务,必须通过与下层交换一些命令,这些命令称为服务原语。
在计算机网络体系结构中,对通信双方所交互的数据包有专门的术语,我们把对等层次之间传送的数据包称为该层的协议数据单元,英文缩写词为pdu。例如物理层对等实体逻辑通信的数据包称为比特流,数据链路层对等实体逻辑通信的数据包称为真网络层对等实体逻辑通信的数据包称为分组。如果使用IP协议也称为IP数据报,运输层对等实体逻辑通信的数据包一般根据协议而定。例如使用TCP协议则称为TCP报文段,使用udp协议则称为udp,用户数据报、应用层对等实体逻辑通信的数据包,一般称为应用报文。上述各层数据包可以统称为协议数据单元pdu
我们把同一系统内层与层之间交换的数据包成为服务数据单元,英文缩写词为sdu多个服务数据单元可以合成为一个协议数据单元,一个服务数据单元也可以划分为几个协议数据单元,
本节课到这里就结束了。在本节课中,我们更深入的介绍了计算机网络体系结构,以及其中的一些专用术语,相对来说比较抽象,如果同学们一时无法完全理解,请不要钻牛角尖,暂时放过去。随着后续课程的学习,大家会感觉到计算机网络体系结构不再抽象难懂,它的分层思想是多么优美的设计哲学,其中的这些术语又是多么的贴切
# 习题
习题2:时延相关习题
注意:路由器转发也有发送时延
主机甲通过1个路由器(存储转发方式)与主机乙互联,两段链路的数据传输速率均...__牛客网 (opens new window)