第二章 答案
解答:这道题没有现成的标准答案,因为可以从不同的角度来看"服务"。
首先要明确的是,计算机网络可以向用户提供的最重要的功能有两个:连通性和共享。所谓连通性,就是计算机网络使上网用户之间都可以交换信息,好像这些用户的计算机都可以彼此直接连通一样。用户之间的距离也似乎因此而变得更近了。所谓共享就是指资源共享。资源共享的含义是多方面的,可以是信息共享、软件共享,也可以是硬件共享。例如,计算机网络上有许多主机存储了大量有价值的电子文档,可供上网的用户自由读取或下载(无偿或有偿)。由于网络的存在,这些资源好像就在用户身边一样。
我们知道,互联网允许分布式的应用程序运行在连接到网络上的端系统上。正是因为计算机网络了上述的两种功能,这些应用程序才能够互相交换数据,因而能够向用户提供各种不同的服务。因此,计算机网络能够向用户提供各种不同的服务,其实也就是这些应用程序能够向用户提供各种不同的服务。
解答:分组交换最主要的特点就是采用存储转发技术。
我们把要发送的整块数据称为一个报文。在发送报文之前,先把较长的报文划分成一个个更小的等长数据段,例如,每个数据段为1024 bit 。在每一个数据段前面,加上一些必要的控制信息组成的首部后,就构成了一个分组。分组又称为"包",而分组的首部也可称为"包头"。分组是在互联网中传送的数据单元。分组中的"首部"是非常重要的,正是由于分组的首部包含了诸如目的地址和源地址等重要控制信息,每一个分组才能在互联网中独立地选择传输路径。互联网的核心部分是由许多网络和把它们互连起来的路由器组成的,而主机处在互联网的边缘部分。主机是为用户进行信息处理的,并且可以和其他主机通过网络交换信息。路由器则是用来转发分组(即进行分组交换)的。路由器每收到一个分组,先临时存储下来(这个存储的时间非常短暂),再检查其首部,查找转发表,按照首部中的目的地址,找到合适的接口转换出去,把这个分组转交给下一个路由器。这样一步一步地经过若干个或几十个不同的路由器,以存储转发的方式,把分组交付最终的目的主机。各路由器之间必须经常交换彼此掌握的路由信息,以便创建和维持在路由器中的转发表,使得转发表能够在整个网络拓扑发生变化时及时更新。
解答:电路交换的主要特点:(1)通信之前先要建立连接,通信完毕后要释放连接。也就是说,通信一定要有三个阶段:建立连接、通信、释放连接。
(2)在整个通信过程中,通信的双方自始至终占用着所使用的物理信道。
因此,对于计算机通信,由于计算机数据是突发性的,因此,从通信线路的利用率来考虑,电路交换的效率就比较低。此外,当通信双方占用的通信线路由很多段链路(通过若干个交换机把这些链路连通)组成时,只有在每一段链路都能接通(每一段链路都有空闲的信道资源还没有被其他用户占用,即有可用资源)时,整个的连接建立才能完成(哪怕只有一段链路没有空闲的信道可供使用,连接建立也无法完成)。当通信网的业务量很繁忙时,电路交换无法保证用户的每一个呼叫都能接通。如果第一阶段的连接建立不能完成,那么后续阶段的通信过程当然也就无法进行。
在电路交换的通信过程中,只要在整个连接中有一个环节(如某段链路或某个交换机)出了故障,那么整个连接就不复存在,接着就是通信的中断。若要重新进行通信,必须重新建立连接。如果能够绕过刚才的故障链路或故障交换机而建立新的连接,那么就可以开始新的通信。这就是说,电路交换系统不能自动从故障中进行恢复。
但电路交换有一个最主要的优点,就是只要连接能够建立,那么双方通信所需的传输带宽就已经分配好而不会再改变。这叫作静态分配传输带宽。通信双方愿意占用通信资源多久,就占用多久(对于公用网,只要按规定付费即可),而不受网络中的其他用户的影响。当网络发生拥塞时,网络中的其他用户很可能反复呼叫都无法建立连接,但这些动作都不会影响已经占用了通信资源的用户的通信质量(除非发生了通信网中的故障,影响到正在进行通信的连接)。
目前最常用的分组交换使用无连接的 IP 协议。这种分组交换以分组作为传输的单位,采用存储转发技术,并且没有连接建立和连接释放这两个阶段,因此传送数据比较迅速。在传输数据的过程中,动态分配传输带宽,对通信链路是逐段占用的。这就是说,若某段链路的带宽较高,分组的传输速率就较快;若另一段链路的带宽较低,传输速率就较慢。不像电路交换那样,从源点到终点都是同样的传输速率。可见,分组交换能够比较合理而有效地利用各链路的传输带宽。
分组交换采用分布式的路由选择协议。当网络中的某个节点或链路出现故障时,分组传送的路由可以自适应地动态改变,使数据的传送能够继续下去。传送数据的源点和接收数据的终点甚至不会感觉到网络中所发生的故障。因此分组交换网络有很好的生存性。
分组交换也有一些缺点。例如,分组在各路由器存储转发时需要排队,这就会造成一定的时延。此外,由于分组交换无法确保通信时端到端所需的带宽,因此当分组交换网的通信量突然增大时,可能会在网络中的某处产生拥塞,从而延长数据的传送时间。当网络拥塞非常严重时,整个网络也可能会瘫痪。分组交换的另一个问题是各分组必须携带控制信息,这也造成了一定的开销。整个分组交换网还需要专门的管理和控制机制。当然,电路交换网也需要网络管理,但电路交换网的交换机都具有很强的网络管理功能,能够对网络进行很有效的管理。分组交换网中的路由器比较简单,无法对整个网络进行管理。必须在网络中由专门的主机来运行专门的网络管理软件,对整个网络进行管理。
报文交换也采用存储转发技术,不同的是,报文交换不再把报文划分为更小的分组,而是把整个报文在网络的节点中存储下来,然后再转发出去。这样做,省去了划分小的分组的步骤,也省去了在终点把分组重装成报文的过程。但报文交换在灵活性上不如分组交换,传送数据的时延较大。本来报文交换是用来传送电报的。现在已经很少有人打电报了,因此报文交换已经很少使用了。
解答:自印刷术发明以来,使用书刊和报纸来传播信息,是人类通信的一个很大变革。在印刷术出现之后,对人类通信起过重要作用的技术有很多,如电报、电话、传真、无线电通信、广播、电视、数字通信、卫星通信、蜂窝无线电通信,等等。这些技术所起的作用,这里就不一一论述了。
但互联网出现后,互联网上的应用的确层出不穷,因而也就出现了许多重大的变革。下面可以通过一些例子来说明这个问题。
最早出现的电子邮件使人们可以非常方便而快捷地进行通信。电子邮件的大量使用,使得传统的电报业务(更贵、更慢,而且更不方便)基本上已无人使用。使用电子邮件,发件人可以非常方便地把同一邮件非常快捷地传递给很多远隔千里的友人。人们在互联网上发布自己创作的文章和视频,可以让成千上万的网民(这里有很多网民是我们并不认识的)在网上看到,而且基本上感觉不到有什么时间上的延迟。网上的 IP 电话既便宜通话质量又好,使得网民们能够随时和异地的友人在网上聊天,还可以进行网上的可视通信。如果愿意支付少量的费用(例如每分钟2美分),这种 IP 电话还能够直接拨打远隔重洋的固定电话。万维网的出现,大大地方便了广大网民上网。例如,当我们发现某个网站有很多有用的信息时,我们不必把这些信息一一传送给远地的友人,而是可以仅仅把该网址传送给这些友人,让他们自己上网查询和下载。这就比传统的通信方式效率高出很多。我们从网上还可以免费下载很多的电子图书和文章,大大加快了信息的广泛传播。这相当于一下子就免费得到了很多想看的书籍和文章。
以前当我们遇到一些问题(如见到一个不懂的新名词),我们可以打电话或写信向远地的老师或友人请教。而现在我们利用互联网的搜索引擎上网查询一下,就可以非常快地获得满意的答案。这显然比传统的通信方式进步了很多。
又如,以前大家都有排长队购买火车票的经历。但现在可以上网购买火车票了,免除了亲自去火车票出售点排队的麻烦。由于采用了实名制购票,因此旅客进站和出站都不需要出示火车票,而只需在所购买车次的检票口刷一下本人的有效身份证,即可完成相当于传统的检票过程。列车员查票时,旅客也只需出示有效身份证就行。这样就使得我们的出行更加方便。
互联网在金融、证券、网购、物流、管理等各行各业、各个领域中的应用,更是不胜枚举。因此,仅仅从以上列举的一些方面就可看出,说互联网是自印刷术发明以来人类通信方面最大的变革,一点也不夸张。
解答:互联网的基础结构大体上经历了三个阶段的演进。但这三个阶段在时间划分上并非截然分开而是有部分重叠的,这是因为网络的演进是逐渐的而不是在某个日期突然发生的。第一阶段是从单个网络 ARPANET 向互联网发展的过程。1969年美国国防部创建的第一个分组交换网 ARPANET 最初只是一个单个的分组交换网(并不是一个互连的网络)。所有要大连接在 ARPANET 上的主机都直接与就近的节点交换机相连。但到了20世纪70年代中期,人们已认识到不可能仅使用一个单独的网络来解决所有的通信问题。于是 ARPA 开始研究多种网络(如分组无线电网络)互连的技术,这就导致了后来互连网的出现。这样的互连网就成为现在互联网( Internet )的维形。1983年 TCP / IP 协议成为 ARPANET 上的标准协议,使得所有使用 TCP / IP 协议的计算机都能利用互联网相互通信,因而人们就把1983年作为互联网的诞生时间。1990年 ARPANET 正式宣布关闭,因为它的实验任务已经完成。
第二阶段的特点是建成了三级结构的互联网。从1985年起,美国国家科学基金会 NSF ( National Science Foundation )就围绕6个大型计算机中心建设计算机网络,即国家科学基金网( NSFNET )。它是一个三级计算机网络,分为主干网、地区网和校园网(或企业网)。这种三级计算机网络覆盖了全美国主要的大学和研究所,并且成为互联网中的主要组成部分。1991年, NSF 和美国的其他政府机构开始认识到,互联网必将扩大其使用范围,不应仅限于大学和研究机构。世界上的许多公司纷纷接入到互联网,使网络上的通信量急剧增大,互联网的容量已满足不了需要。于是美国政府决定将互联网的主干网转交给私人公司来经营,并开始对接入互联网的单位收费。1992年互联网上的主机超过100万台。1993年互联网主干网的速率提高到45 Mbit / s (T3速率)。
第三阶段的特点是逐渐形成了多层次 ISP 结构的互联网。从1993年开始,由美国政府资助的 NSFNET 逐渐被若干个商用的互联网主干网替代,而政府机构不再负责互联网的运营。这样就出现了一个新的名词:互联网服务提供者 ISP ( Internet Service Provider )。在许多情况下, ISP 就是一个从事商业活动的公司,因此 ISP 又常译为互联网服务提供商。 ISP 拥有从互联网管理机构申请到的多个 IP 地址,同时拥有通信线路(大的 ISP 自己建造通信线路,小的 ISP 则向电信公司租用通信线路)以及路由器等连网设备,因此任何机构和个人只要向 ISP 交纳规定的费用,就可从 ISP 得到所需的 IP 地址,并通过该 ISP 接入到互联网。我们通常所说的"上网"就是指"(通过某个 ISP )接入到互联网",因为 ISP 向连接到互联网的用户提供了 IP 地址。 IP 地址的管理机构不会把一个单个的 IP 地址分配给单个用户(不"零售" IP 地址),而是把一批 IP 地址有偿分配给经审查合格的 ISP (只"批发" IP 地址)。从以上所讲的可以看出,现在的互联网已不是某个单个组织所拥有而是全世界无数大大小小的 ISP 所共同拥有的。
解答:制定互联网的正式标准要经过以下三个阶段:
(1)互联网草案( Internet Draft )-﹣互联网草案的有效期只有六个月。在这个阶段还不能算是 RFC 文档。(2)建议标准( Proposed Standard )-﹣从这个阶段开始就成为 RFC 文档。
(3)互联网标准( Internet Standard )–﹣如果经过长期的检验,证明某个建议标准可以变成互联网标准时,就给它分配一个标准编号,记为 STDxx ,这里 STD 是" Standard “的英文缩写,而” xx “是标准的编号(有时也写成4位数编号,如STD0005)。一个互联网标准可以和多个 RFC 文档关联。
原先制定互联网标准的过程是:“建议标准"→"草案标准"→"互联网标准”。由于"草案标准"容易和成为 RFC 文档之前的"互联网草案"混淆,从2011年10月起取消了"草案标准"这个阶段[ RFC 6410]。这样,现在制定互联网标准的过程简化为:“建议标准"→"互联网标准”。在新的规定以前就已发布的草案标准,将按照以下原则进行处理:若已达到互联网标准,就升级为互联网标准;对目前尚不够互联网标准条件的,则仍称为发布时的旧名称"草案标准”。
解答:以小写字母 i 开始的 internet (互连网)是一个通用名词,它泛指由多个计算机网络互连而成的网络。在这些网络之间的通信协议(即通信规则)可以是任意的。
以大写字母 I 开始的 Internet (互联网或因特网)则是一个专用名词,它指当前全球最大的、开放的、由众多网络相互连接而成的特定计算机网络,它采用 TCP / IP 协议族作为通信的规则,且其前身是美国的 ARPANET 。
解答:可以从不同的角度回答这个问题。从网络的作用范围来划分,有:
(1)广域网 WAN ,作用范围通常为几十到几千公里,有时也称为远程网。(2)城域网 MAN ,作用范围一般是一个城市,可跨越几个街区甚至整个城市,其作用距离约为5~50 km .
(3)局域网 LAN ,作用范围局限在较小的范围(如1km左右)。
(4)个人区域网 PAN ,也常称为无线个人区域网 WPAN ,其作用范围大约在10m左右。按照使用者来划分,有:
(1)公用网,这是指电信公司(国有或私有)出资建造的大型网络。"公用"的意思就是所有愿意按电信公司的规定交纳费用的人都可以使用这种网络。因此公用网也可称为公众网。
(2)专用网,这是某个部门为满足本部门的特殊业务工作的需要而建造的网络。这种网络不向本部门以外的人提供服务。例如,军队、铁路、电力、银行等系统均有本系统的专用网。
按照采用的交换技术来划分,有:
(1)电路交换网。(2)分组交换网。
(3)混合交换网。
还有一种网络叫作接入网( AN ),用来把用户接入到互联网。接入网也叫作本地接入网。
解答:计算机网络中的主干网是计算机网络核心部分的重要组成部分。主干网是由许多高速通信链路组成的,因而能够迅速地传送数据。主干网中还有许多路由器,能够把分组一步一步地转发到正确的目的地。本地接入网的作用仅仅是把用户接入到互联网。当然,接入网应当使用户可以更快地通过计算机网络可靠地下载文件和上传数据。
点共经过 k 段链路,每段链路的传播时延为 d ( s ),数据率为 b ( bit / s )。在电路交换时电路的建立时间为 s ( s )。在分组交换时,分组长度为 p ( bit ),每个分组所必须添加的首部都很短,对分组的发送时延的影响在题中可以不考虑。此外,各节点的排队等待时间也可忽略不计。问在怎样的条件下,分组交换的时延比电路交换的要小?(提示:画一下草图观察 k 段链路共有几个节点。)
解答:电路交换必须先建立连接,需要的时间是 s 秒。
发送 x 比特的报文所需的时间是报文长度除以数据率 b 。因此发送时延是 x / b 。总的传播时延是链路数乘以每段链路的传播时延,即 kde
因此,电路交换的时延由以上三项组成,即: s + x / b + kd 。
分组交换时延的计算要稍微麻烦一点,见图 T -1-10。请注意,分组经过 k 段链路,中间要经过 k -1个节点转发。
分组交换不需要先建立连接(这里假定了题目中的分组交换使用数据报传送。如果使用虚电路传送则需要先建立连接)。从图 T -1-10的右边可看出,总时延由三部分组成。
先计算分组交换的传播时延,这和电路交换是一样的,也是 kde
再计算 n 个分组所需的发送时延,这需要知道报文 x 一共划分为多少个分组。将报文长度 x 除以一个分组的长度 p 就得出分组的数目 n 。在一般情况下, x 除以 p 所得到的商可能不是整数,因此要把得出的商的整数部分加1才是分组的数目 n 。我们知道,符号「 a ]表示 a 的整数部分加1,例如,「3.027=4。因此,分组的数目:
这样,发送 n 个分组所需的发送时延是:
请注意,最后一个分组的长度一般会小于前面 n -1个分组的长度,而小多少我们也无从得知。这样,最后一个分组的发送时延就无法算出。于是,我们这里还需要再使用一个假定,即:所有分组的发送时延都是相同的。这就是认为所有的分组都是等长的。
从图 T -1-10可以看出,总时延中还有一项,就是一个分组经过 k -1个节点的发送时延。当 k =1时,就没有这一项。
在一段链路上发送一个分组的发送时延是 plb ,( k -1)段链路的发送时延是( k -1) p / b ,因此把以上三部分时延相加,就得出在分组交换情况下的总时延:
从 D 的表达式可以看出,若分组很短,则该表达式右端第一项将增大。这表示分组数目很大会导致每个分组的控制信息所引起的时延增大。但若分组很长,则该表达式右端第二项将增大。因此,分组的长度不宜太短或太长。
解答:互联网的拓扑结构非常复杂,并且在地理上覆盖了全球,但从其工作方式上看,可以划分为以下两大块。
(1)边缘部分:由所有连接在互联网上的主机组成。这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享。
(2)核心部分:由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)。
在网络边缘的端系统之间的通信方式通常可划分为两大类:客户﹣服务器方式( C / S 方式)和对等方式(P2P方式)。这两种通信方式的区别见习题1-13。
在网络核心部分起特殊作用的是路由器。路由器是实现分组交换的关键构件,如果没有路由器,再多的网络也无法构建成互联网。由此可以看出,互联网的核心部分的工作方式其实也就是路由器的工作方式。
路由器的任务是转发收到的分组。当路由器转发分组时,必须查找路由表。因此,互联网中的各路由器必须根据路由选择协议的规定相互交换路由信息,以便使路由表能够及时反映出网络拓扑的变化。
由此可见,互联网的核心部分的工作方式有两种:一种是路由器转发分组(这是直接为主机之间的通信服务的),另一种是路由器之间不断地交换路由信息(这是为了保证路由表的路由信息与网络的实际拓扑一致)。
解答:客户﹣服务器方式所描述的是进程之间服务和被服务的关系。客户是服务请求方,服务器是服务提供方。服务请求方和服务提供方都要使用网络核心部分所提供的服务。
客户程序被用户调用后运行,在通信时主动向远地服务器发起通信(请求服务)。因此,客户程序必须知道服务器程序的地址。客户程序不需要特殊的硬件和很复杂的操作系统。服务器程序是一种专门用来提供某种服务的程序,可同时处理多个远地或本地客户的请求。服务器程序在系统启动后即自动调用并一直不断地运行着,被动地等待并接收来自各地的客户的通信请求。因此,服务器程序不需要知道客户程序的地址,并且一般需要有强大的硬件和高级的操作系统支持。
客户与服务器的通信关系建立后,通信可以是双向的,客户和服务器都可发送和接收数据。对等连接(或P2P方式)是指两个主机在通信时并不区分哪一个是服务请求方哪一个是服务提供方。只要两个主机都运行了对等连接软件(P2P软件),它们就可以进行平等的对等连接通信。
实际上,对等连接方式从本质上看仍然使用客户﹣服务器方式,只是对等连接中的每一个主机既是客户又是服务器。
(1)速率:指的是连接在计算机网络上的主机在数字信道上传送数据的速率,也称为数据率或比特率。(2)带宽:用来表示网络的通信线路传送数据的能力,网络带宽表示在单位时间内(一般是每秒钟)从网络中的某一点到另一点所能通过的"最高数据率"。
(3)吞吐量:表示在单位时间内(一般是每秒钟)通过某个网络(或信道、接口)的数据量。
(4)时延:指数据(一个报文或分组,甚至比特)从网络(或链路)的一端传送到另一端所需的时间。时延包括发送时延、传播时延、处理时延和排队时延等。
(5)时延带宽积:是传播时延( s )和带宽( bit / s )的乘积。链路的时延带宽积又称为以比特为单位的链路长度。
(6)往返时间:表示从发送方发送数据开始,到发送方收到来自接收方的确认(接收方收到数据后便立即发送确认),总共经历的时间。有时,往返时间还包括网络各中间节点的处理时延、排队时延以及转发数据时的发送时延。
(7)利用率:分信道利用率和网络利用率两种。信道利用率指出某信道有百分之几的时间是被利用的(有数据通过)。完全空闲的信道的利用率是零。网络利用率则是全网络的信道利用率的加权平均值。
解答:根据教材中的公式(1-5), D / Do =1/(1-)=1/0.1=10现在的网络时延是最小值的10倍。
解答:计算机通信网的非性能特征有以下一些:(1)费用(2)质量(3)标准化(4)可靠性(5)可扩展性和可升级性(6)易于管理和维护
非性能特征与性能指标的主要区别就是:性能指标是直接反映网络性能的,而非性能指标则不是网络所特有的指标。例如,非性能特征中的费用,在所有的工程项目中都存在费用的问题。所以费用不能说是网络的性能指标。然而一般说来,网络的速率越高,其价格也越高。当我们要求网络的速率非常高时,其费用就可能达到我们不能承受的数值,而且使我们无法实现这样的性能。也就是说,有时网络的非性能特征能够制约网络性能指标的实现。再例如,某个网络的性能指标都很不错,但很不便于管理和维护,那么这种网络可能就不宜选用。
解答:两种情况分别计算如下:
(1)发送时延为10 bit /(100 kbit / s )=100 s ,
传播时延为10° m /(2x10m/ s )=5 ms .发送时延远大于传播时延。
(2)发送时延为10 bit /(1 Gbit / s )=1μ s ,
传播时延为5 ms .
发送时延远小于传播时延。
若数据长度大而发送速率低,则在总的时延中,发送时延往往大于传播时延。但若数据长度短而发送速率高,则传播时延又可能是总时延中的主要成分。
解答:计算步骤如下:
先计算10 cm (即0.1 m )的媒体上信号的传播时延:0.1 m /(2.3 x 10m/ s )=4.3478 x 10-0s≈4.35 x 10-10 s 再计算10 cm 线路上正在传播的比特数:
1 Mbit / s 数据率时为:1 Mbit / s x 4.35 x 10-0s=4.35 x 10 bit 读者应正确理解在线路上只有0.000435个比特到底是什么意思。
10 Gbit / s 数据率时为:10 Gbit / s x 4.35 x 10-10 s =4.35 bit
对于后面的几种情况,计算方法都是一样的。把计算结果填入表 T -1-18中。
解答:数据长度为100 B ( B 表示字节)时,以太网的帧长为:100+20+20+18=158 B 数据传输效率=100B/(158B)=63.29%≥63.3%
数据长度为1000 B 时,以太网的帧长为:1000+20+20+18=1058 B 传输效率=1000 B /(1058 B )=94.52%~94.5%。传输效率明显提高了。
解答:网络体系结构采用分层次的结构,是因为"分层"可以把庞大而复杂的问题转化为若干较小的局部问题,而这些较小的局部问题比较易于研究和处理。
在日常生活中,经常会遇到与分层体系结构的思想相似的情况。例如, A 有一个急件要尽快地交付到远地(例如,在美国)的友人 B 。如果 A 自己买机票亲自送去,那么这就是一个不分层的交付。
实际上,快递公司还可以继续划分自己公司的层次。更重要的是,快递公司可以使用非本公司的运输工具。也就是说,把快件的运输交给其他公司来承担。而这一点,对用户 A 和 B 来说,都是透明的。用户 A 和 B 并不知道快件是由哪个运输部门传送的(也不必要知道)。这就是分层带来的好处。
总之,划分层次可以把复杂的问题划分成多个比较简单的较小的问题。这样做实现起来比较方便,也比较容易分工协作。
解答:为进行网络中的数据交换而建立的规则、标准或约定称为网络协议,简称为协议。网络协议是计算机网络不可缺少的组成部分。
协议是控制两个对等实体(或多个实体)进行通信的规则的集合。协议的语法方面的规则定义了所交换的信息的格式,而协议的语义方面的规则定义了发送者或接收者所要完成的操作。
在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。要实现本层协议,还需要使用下面一层所提供的服务。
协议和服务在概念上是很不一样的。
首先,协议的实现保证了能够向上一层提供服务。使用本层服务的实体只能看见服务而无法看见下面的协议。下面的协议对上面的实体是透明的。
其次,协议是"水平的",即协议是控制对等实体之间通信的规则。但服务是"垂直的",即服务是由下层向上层通过层间接口提供的。另外,并非在一个层内完成的全部功能都称为服务,只有那些能够被高一层实体"看得见"的功能才能称为"服务"。
解答:网络协议主要由以下三个要素组成:(1)语法,即数据与控制信息的结构或格式。(2)语义,即需要发出何种控制信息,完成何种动作以及做出何种响应。
(3)同步,即事件实现顺序的详细说明。
解答:如果一个网络协议只考虑了一些正常的、有利的情况,那么当各种情况都很正常时,这种协议当然能够顺利地工作。但是,情况不可能永远都是正常的,总有一些时候会出现异常情况。我们知道,出现异常情况的概率一般是不大的,但这并非绝对不可能出现。因此,如果网络协议没有考虑到一些不利情况(这些当然都是小概率事件),那么一旦这些不利情况出现,协议就会失败。
解答:我们知道, OSI 的体系结构是七层协议。 TCP / AP 的体系结构是四层协议,而真正有具体内容的只是上面三层。在学习计算机网络的原理时往往采取折中的办法,即综合 OSI 和 TCP / IP 的优点,采用一种有五层协议的体系结构。图 T -1-24给出了五层协议的结构。
这五层协议的主要功能如下。
(1)物理层﹣﹣在物理层上所传数据的单位是比特( bit )。物理层的任务就是透明地传送比特流。物理层还要确定连接电缆的插头应当有多少根引脚以及各条引脚应如何连接。当然,哪几个比特代表什么意思,则不是物理层所要管的。请注意,传递信息所利用的一些物理媒体,如双绞线、同轴电缆、光缆、无线信道等,并不在物理层协议之内而是在物理层协议的下面。因此也有人把物理媒体当作第0层。
(2)数据链路层﹣﹣常简称为链路层。在两个相邻节点之间(主机和路由器之间或两个路由器之间)传送数据是直接传送的(即不需要经过转发的点对点通信)。这时就需要使用专门的链路层的协议。数据链路层将网络层交下来的 IP 数据报组装成帧,在两个相邻节点间的链路上"透明"地传送帧中的数据。每一帧包括数据和必要的控制信息(如同步信息、地址信息、差错控制等)。
在接收数据时,控制信息使接收端能够知道一个帧从哪个比特开始和到哪个比特结束。这样,数据链路层在收到一个帧后,就可从中提取出数据部分,上交给网络层。
控制信息还使接收端能够检测到所收到的帧中有无差错。如发现有差错,数据链路层就简单地丢弃这个出了差错的帧,以免继续传送下去白白浪费网络资源。如果需要改正错误,就由运输层的 TCP 协议来完成。
(3)网络层﹣﹣网络层负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组或包进行传送。在 TCP / IP 体系中,由于网络层使用 IP 协议,因此分组也叫作 IP 数据报,简称为数据报。
网络层的另一个任务就是选择合适的路由,使源主机运输层所传下来的分组能够通过网络中的路由器找到目的主机。
对于由广播信道构成的分组交换网,路由选择的问题很简单,因此这种网络的网络层非常简单,甚至可以没有。
(4)运输层﹣﹣运输层的任务就是向两个主机中进程之间的通信提供服务。由于一个主机可同时运行多个进程,因此运输层有复用和分用的功能。复用就是多个应用层进程同时使用下面运输层的服务,分用则是运输层把收到的信息分别交付上面应用层中相应的进程。
运输层主要使用以下两种协议:一个是传输控制协议 TCP ,是面向连接的,数据传输的单位是报文段,能够提供可靠的交付。另一个是用户数据报协议 UDP ,是无连接的,数据传输的单位是用户数据报,不保证提供可靠的交付,只能提供"尽最大努力交付"。
(5)应用层﹣﹣应用层是体系结构中的最高层。应用层直接为用户的应用进程提供服务。这里的进程就是指正在运行的程序。互联网中的应用层协议很多,如支持万维网应用的 HTTP 协议、支持电子邮件的 SMTP 协议、支持文件传送的 FTP 协议,等等。
解答:"透明"表示:某一个实际存在的事物看起来却好像不存在一样(例如,你看不见在你前面有100%透明的玻璃存在)。"在数据链路层透明传送数据"表示无论什么样的比特组合的数据都能够通过这个数据链路层。因此,对所传送的数据来说,这些数据就"看不见"数据链路层。或者说,数据链路层对这些数据来说是透明的。
在日常生活中,打电话就是一种透明传输。假定 A 和 B 通电话。 A 说, B 听。 A 所发送的所有话音信号,都能够通过电话传输系统传送到 B 。只要是符合电话传输标准的电话系统, B 都能听清楚 A 所说的话。
又如,银行给储户的利息是非常透明的。这就是说,根据银行的公告,储户就能够很准确地知道自己将能够获得多少利息(取决于储户存款的种类和期限)。但银行如何处理储户的存款(贷款给什么人?投资到什么地方去?),则对储户是不透明的,即储户看不见这些信息,好像被什么东西挡住了。
解答:各名词含义如下。
协议栈:由于计算机网络的体系结构采用了分层结构,因此不论是在主机中还是在路由器中协议都有好几层。这些一层一层的协议画起来很像堆栈的结构,因此就把这些协议层称为协议栈。
实体:表示任何可发送或接收信息的硬件或软件进程。在许多情况下,实体就是一个特定的软件模块。
对等层:在网络体系结构中,通信双方实现同样功能的层。例如, A 向 B 发送数据,那么 A 的第 n 层和 B 的第 n 层就构成了对等层。
协议数据单元:通常记为 PDU ,它是对等实体之间进行信息交换的数据单元。
服务访问点:通常记为 SAP ,在同一系统中相邻两层的实体进行交互(即交换信息)的地方,通常称为服务访问点。
客户:在计算机网络中进行通信的应用进程中的服务请求方。
服务器:在计算机网络中进行通信的应用进程中的服务提供方。但在很多情况下,服务器也常指运行服务器程序的机器。
客户﹣服务器方式:这种方式所描述的是进程之间服务的请求方和服务的提供方的关系。服务的请求方是主动进行通信的一方,而服务器是被动接受通信的一方。系统启动后即自动调用服务器程序,并一直不断地运行着,被动地等待并接收来自各地的客户的通信请求。客户与服务器的通信关系建立后,通信可以是双向的,客户和服务器都可发送和接收数据。关于客户﹣服务器方式更详细的解释,见前面的1-13题。
解答: TCP / IP 协议可以为各式各样的应用提供服务。从协议栈来看,在 IP 层上面可以有很多应用程序。这就是 everything over IP .
另一方面, TCP / IP 协议也允许 IP 协议在各式各样的网络构成的互联网上运行。在 IP 层以上看不见下层究竟是什么样的物理网络。这就是 IP over everything 。
(1)数据发送速率为10 Mbit / s ,数据分组可以连续发送。(2)数据发送速率为10 Mbit / s ,但每发送完一个分组后要等待一个 RTT 时间才能再发送下一个分组。
(3)数据发送速率极快,可以不考虑发送数据所需的时间。但规定在每一个 RTT 往返时间内只能发送20个分组。
(4)数据发送速率极快,可以不考虑发送数据所需的时间。但在第1个 RTT 往返时间内只能发送1个分组,在第2个 RTT 内可发送2个分组,在第3个 RTT 内可发送4个分组(即23-1=22=4个分组)(这种发送方式见教材第5章" TCP 的拥塞控制"部分)。
解答:题目的已知条件中的 M =220=1048576, K =210=1024。
(1)1.5 MB =1.5x1048576 B =1.5x1048576 x 8 bit =12582912 bit 。发送这些比特所需时间=12582912/10’=1.258 s
最后一个分组的传播时间还需要0.5 xRTT =40 ms .
总共需要的时间=2x RTT +1.258+0.5 x RTT =0.16+1.258+0.04=1.458 s
(2)需要划分的分组数=1.5 MB /1KB=1536。
第一个分组以后的1535个分组需要等待的时间是:1535xRTT=1535 x 0.08=122.8 S .因此本题总共需要的时间=1.458+122.8=124.258 S .
(3)在每一个 RTT 往返时间内只能发送20个分组。1536个分组,需要76个 RTT (76个 RTT 可以发送76 x 20=1520个分组),最后剩下16个分组,一次发送完。但最后一次发送的分组到达接收方也需要0.5x RTT 。
因此,总共需要的时间=76.5 x RTT +2 xRTT =6.12+0.16=6.28
(4)在两个 RTT 后就开始传送数据。1.5 MB 共需1536个分组来传送。经过 n 个 RTT ,发送了1+2+4+…+2"-'=2"-1个分组。
若 n =10,那么只发送了210-1=1023个分组。可见10个 RTT 不够。
若 n =11,那么可发送2"-1=2047个分组。可见剩下的分组(513个分组)都可以在0.5 x RTT 的时间内到达接收方。
因此,接收方收到该文件最后一个比特所需的时间=(2+10+0.5) xRTT =12.5 x 0.08=1 s .
试问链路的带宽应为多少才能使传播时延和发送100字节的分组的发送时延一样大?如果发送的是512字节长的分组,结果又应如何?
解答:整条链路的传播时延是50 km /(2 x 10 m / s )=250μ s .
如果在250μ s 把100字节发送完,则发送速率应为800 bit /(250 us )=3.2 Mbit / s 。这也是链路带宽应有的数值。
如果改为发送512字节的分组,则发送速率应为512 x 8 bit /(250μ s )=16.38 Mbit / s 。这也是链路带宽应有的数值。
解答:100 bit 的发送时间=100 bit /(1000 bit / s )=0.1 S .
如图 T -1-30所示,0.1秒的时间可以传播20000 km ,正好是线路的长度。因此,当发送的第一个比特到达终点时,发送方也正好把100 bit 发送完毕,整个线路上都充满了所传输的100 bit 。
再经过0.05 s 后,所有的比特都向前走了10000 km 。这就是说,发送的前50 bit 已经到达终点了,剩下的50 bit 还在线路上传播。最后一个比特正好走了一半(10000 km ),在线路的正中间。
解答:100 bit 的发送时间=100 bit /(1000000 bit / s )=0.0001 s ,只有上一题的千分之一。如图 T -1-31所示,0.0001秒的时间可以传播20km,只有线路长度的千分之一。因此现在整个100 bit 都在线路靠发送端的位置(图没有按比例画)。
再经过0.05 s 后,所有的比特都向前走了10000 km 。这时,整个100 bit 都在线路上传播。最后一个比特正好走了一半(10000 km ),在线路的正中间。
和上题相比较,我们可以看出,同样是在一条线路上传送100 bit 的数据,在较低速的线路上(例如,1 kbit / s 的发送速率),100 bit 的数据看起来像是"数据流",而在较高速的线路上(例如,1 Mbit / s 的发送速率),100 bit 的数据看起来像是"小分组"。
解答:当我们在某一个位置上观察信号随时间的变化规律时,我们往往需要以时间为横坐标来看信号的变化。当以1 Gbit / s 的速率发送数据时,每一个比特的持续时间是10~’ s ,也就是0.001μ s =1 ns ( ns 表示纳秒,即10’ s )。因此,在以时间为横坐标的图上,每一个比特的宽度是1 ns (见图 T -1-32上面的一个)。
现在看以时间为横坐标的情况。
假定信号在线路上的传播速度是2x10* m / s (即2/3的光速),那么在一个比特时间内(即10s)信号可以前进20 cm 。图 T -1-32中下面的一个即表示这种情况–当时间为某一数值时信号在线路上的"快照"。请注意,这两种表示信号的方法都很有用,但这两个横坐标的量纲不同,我们不能说哪一个信号更宽一些或更窄一些。这样相比是没有意义的。
解答:我们在传送数据时,经常要使用 TCP 协议。 TCP 连接的建立需要消耗时间,这与 RTT 有密切关系(在教材第5章中有详细讲述)。在传输数据时也常常需要对方的确认。在发送数据后要经过多少时间才能收到对方的确认,这也取决于往返时间 RTT 的大小。
另外,在计算吞吐率时,有时也要考虑到往返时间 RTT 。例如,一个10字节的文件在1 Gbit / s 的发送速率下,发送只需要8 ms 。但如果我们通过网络向远方某个主机请求把这样大的文件发送过来, RTT =100 ms ,那么总共需要的时间至少为100+8=108 ms ,是原来发送时间的十几倍。
(1)如果采用报文交换,即整个报文不分段,每台节点交换机收到整个的报文后再转发。问从主机 A 把报文传送到第一个节点交换机需要多少时间?从主机 A 把报文传送到主机 B 需要多少时间?
(2)如果采用分组交换。报文被划分为1000个等长的分组(这里忽略分组首部对本题计算的影响),并连续发送。节点交换机能够边接收边发送。问从主机 A 把第一个分组传送到第一个节点交换机需要多少时间?从主机 A 把第一个分组传送到主机 B 需要多少时间?从主机 A 把1000个分组传送到主机 B 需要多少时间?
(3)就一般情况而言,比较用整个报文来传送和划分多个分组传送的优缺点。
解答:(1) A 把报文传送到第一个节点交换机需要的时间=10’+(2x109=5s.主机 A 把报文传送到主机 B 要经过3段链路,因此需要3x5=15s.
(2)报文被划分为1000个分组,每个分组的长度为10000 bit 。
A 发送一个分组所需的时间=10*+(2 x 10)=0.005s。这也是 A 把第一个分组传送到第一个节点交换机需要的时间。
A 把第一个分组传送到 B 需要的时间=3 x 0.005=0.015s。
A 把1000个分组传送到 B 需要的时间=0.015+999 x 0.005=5.01s.
(3)一般来讲,使用分组传送会更快些。如果整个报文存储转发,只要其中有一个比特出错,整个报文就必须重传,这很浪费网络资源。使用分组交换,只需要重传出了差错的那个分组即可。在复杂的网络中,使用分组交换还可以使有些分组通过不太拥塞的路径传送,这就加快了数据的传输。但在使用分组交换时,在目的主机所收到的分组中,只要缺少了一个,就无法重装成原来的报文,这就使所收到的分组都没有用处。此外,分组首部造成的开销有时并不能忽略不计。
解答:(1)传播时延=链路长度+传播速率=5x10° m +2.5x10m/ s =0.02s.时延带宽积=0.02s x 10 bit / s =2 x 10 bit .
由于文件长度大于这个时延带宽积,因此链路上的比特数目的最大值是2 x 10* bit 。如果文件长度只有2000 bit ,那么链路上的比特数目的最大值就是2000 bit 。
(2)链路上每比特的宽度=传播速率÷发送速率-传播速率-链路带宽即每比特的宽度为250 m 。
(3)发送速率=传播速率-链路上每比特的宽度
=2.5x10 m / s ÷5 x 10m/ bit =50 bit / s .
当发送速率调整为50 bit / s 时,链路上每比特的宽度正好等于5000 km =2.5 x 10 m / s ÷10 bit / s =250 m / bit ,
解答:文件传送的吞吐量由瓶颈链路决定。因此吞吐量是500 kbit / s 。
文件长度为10 MB 。但文件长度的 M 不是10而是220。1 B =8 bit 。因此文件长度为10 x 2 x 220 bit =20971520 bit
文件的传送时间=文件长度+吞吐量=20971520+500 kbit / s =41.94 s ,即约为42 s .这就是大约的传送时间,因为有很多细节都没有考虑,如划分为多大的分组、每个分组首部的开销,在链路上的传播时延,在每个节点的处理时延和排队时延,等等。