• 3.48 MB
  • 2022-04-22 11:51:58 发布

《计算机网络(第四版)》习题答案.doc

  • 56页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'计算机网络(第四版)习题答案第56页共56页 第1章概述1-3Theperformanceofaclient-serversystemisinfluencedbytwonetworkfactors:thebandwidthofthenetwork(howmanybits/secitcantransport)andthelatency(howmanysecondsittakesforthefirstbittogetfromtheclienttotheserver).Giveanexampleofanetworkthatexhibitshighbandwidthandhighlatency.Thengiveanexampleofonewithlowbandwidthandlowlatency.客户-服务器系统的性能会受到两个网络因素的影响:网络的带宽(每秒可以传输多少位数据)和延迟(将第一个数据位从客户端传送到服务器端需要多少秒时间)。请给出一个网络的例子,它具有高带宽和高延迟。然后再给出另一个网络的例子,它具有低带宽和低延迟。答:横贯大陆的光纤连接可以有很多千兆位/秒带宽,但是由于光速度传送要越过数千公里,时延将也高。相反,使用56kbps调制解调器呼叫在同一大楼内的计算机则有低带宽和较低的时延。1-4Besidesbandwidthandlatency,whatotherparameterisneededtogiveagoodcharacterizationofthequalityofserviceofferedbyanetworkusedfordigitizedvoicetraffic?除了带宽和延迟以外,针对数字化的语音流量,想要让网络提供很好的服务质量,还需要哪个参数?声音的传输需要相应的固定时间,因此网络时隙数量是很重要的。传输时间可以用标准偏差方式表示。实际上,短延迟但是大变化性比更长的延迟和低变化性更糟。1-6Aclient-serversystemusesasatellitenetwork,withthesatelliteataheightof40,000km.Whatisthebest-casedelayinresponsetoarequest?一个客户-服务器系统使用了卫星网络,卫星的高度为40000km。在对一个请求进行响应的时候,最佳情形下的延迟是什么?答:由于请求和应答都必须通过卫星,因此传输总路径长度为160,000千米。在空气和真空中的光速为300,000公里/秒,因此最佳的传播延迟为160,000/300,000秒,约533msec。1-9Agroupof2n-1routersareinterconnectedinacentralizedbinarytree,witharouterateachtreenode.Routericommunicateswithrouterjbysendingamessagetotherootofthetree.Therootthensendsthemessagebackdowntoj.Deriveanapproximateexpressionforthemeannumberofhopspermessageforlargen,assumingthatallrouterpairsareequallylikely.第56页共56页 在一个集中式的二叉树上,有2n-1个路由器相互连接起来;每个树节点上都有一个路由器。路由器i为了与路由器j进行通信,它要给树的根发送一条信息。然后树根将消息送下来给j。假设所有的路由器都是等概率出现的,请推导出当n很大时每条消息的平均跳数的一个近似表达式。答:这意味着,从路由器到路由器的路径长度相当于路由器到根的两倍。若在树中,根深度为1,深度为n,从根到第n层需要n-1跳,在该层的路由器为0.50(50%)。从根到n-1层的路径的路由器为0.25(25%)和n--2跳步。因此,路径长度l为:或表达式归约为l=n-2,平均的路由器到路由器路径为2n-4。1-11Whataretworeasonsforusinglayeredprotocols?请说出使用分层协议的两个理由?答:通过协议分层可以把设计问题划分成较小的易于处理的片段。分层意味着某一层协议的改变不会影响高层或低层的协议。1-13Whatistheprincipaldifferencebetweenconnectionlesscommunicationandconnection-orientedcommunication?在无连接通信和面向连接的通信二者之间,最主要的区别是什么?答:主要的区别有两条。其一:面向连接通信分为三个阶段,第一是建立连接,在此阶段,发出一个建立连接的请求。只有在连接成功建立之后,才能开始数据传输,这是第二阶段。接着,当数据传输完毕,必须释放连接。而无连接通信没有这么多阶段,它直接进行数据传输。其二:面向连接的通信具有数据的保序性,而无连接的通信不能保证接收数据的顺序与发送数据的顺序一致。1-14Twonetworkseachprovidereliableconnection-orientedservice.Oneofthemoffersareliablebytestreamandtheotheroffersareliablemessagestream.Aretheseidentical?Ifso,whyisthedistinctionmade?Ifnot,giveanexampleofhowtheydiffer.第56页共56页 两个网络都可以提供可靠的面向连接的服务。其中一个提供可靠的字节流,另一个提供可靠的报文流。这二者是否相同?如果你认为相同的话,为什么要有这样的区别?如果不相同,请给出一个例子说明它们如何不同。答:不相同。在报文流中,网络保持对报文边界的跟踪;而在字节流中,网络不做这样的跟踪。例如,一个进程向一条连接写了1024字节,稍后又写了另外1024字节。那么接收方共读了2048字节。对于报文流,接受方将得到两个报文。每个报文1024字节。而对于字节流,报文边界不被识别。接收方把全部的2048个字节当作一个整体,在此已经体现不出原先有两个报文的事实。1-17Insomenetworks,thedatalinklayerhandlestransmissionerrorsbyrequestingdamagedframestoberetransmitted.Iftheprobabilityofaframe"sbeingdamagedisp,whatisthemeannumberoftransmissionsrequiredtosendaframe?Assumethatacknowledgementsareneverlost.在有些网络中,数据链路层处理传输错误的做法是,请求重传被损坏的帧。如果一帧被损坏的概率为p,那么发送一帧所需要的平均传输次数是多少?假设确认帧永远不会丢失。帧请求正好是k次的概率Pk,就是起初的k-1次尝试都失败的概率。pk-1,乘以第k次传输成功的概率。平均传输次数就是1-22WhatisthemaindifferencebetweenTCPandUDP?TCP和UDP之间最主要的区别是什么?TCP是面向连接的,而UDP是一种数据报服务。1-25Whenafileistransferredbetweentwocomputers,twoacknowledgementstrategiesarepossible.Inthefirstone,thefileischoppedupintopackets,whichareindividuallyacknowledgedbythereceiver,butthefiletransferasawholeisnotacknowledged.Inthesecondone,thepacketsarenotacknowledgedindividually,buttheentirefileisacknowledgedwhenitarrives.Discussthesetwoapproaches.当一个文件在两台计算机之间传输的时候,可能会有两种不同的确认策略。在第一种策略中,该文件被分解成许多个分组,接收方会独立地确认每一个分组,但是文件传输过程作为整体并没有被确认。在第二种策略中,这些分组并没有被单独地确认,但是当整个文件到达的时候,它会被确认。请讨论这两种方案。第56页共56页 如果网络容易丢失分组,那么对每一个分组逐一进行确认较好,此时仅重传丢失的分组。而在另一方面,如果网络高度可靠,那么在不发差错的情况下,仅在整个文件传送的结尾发送一次确认,从而减少了确认的次数,节省了带宽;不过,即使有单个分组丢失,也需要重传整个文件。1-27Howlongwasabitontheoriginal802.3standardinmeters?Useatransmissionspeedof10Mbpsandassumethepropagationspeedincoaxis2/3thespeedoflightinvacuum.在原始的802.3标准中,一位是多长(按米来计算)?请使用10Mbps的传输速率,并且假设同轴电缆的传播速度是真空中光速的2/3.波在同轴电缆中的速度是大约200,000km/sec,即200m/μsec.在10Mbps,传输一位需要0.1μsec。因此,这个位在时间上持续0.1μsec,在此期间传播20meters。因此,这里的一位是20米。1-28Animageis1024x768pixelswith3bytes/pixel.Assumetheimageisuncompressed.Howlongdoesittaketotransmititovera56-kbpsmodemchannel?Overa1-Mbpscablemodem?Overa10-MbpsEthernet?Over100-MbpsEthernet?一幅图像的分辨率为1024×768像素,每个像素用3字节来标识。假设该图像没有被压缩。请问,通过56kbps的调制解调器信道来传输这幅图像需要多长时间?通过1Mbps的电缆调制解调器(cablemodem)呢?通过10Mbps的因特网呢?通过100Mbps的因特网呢?图像是1024×768×3bytes或2,359,296bytes.就是18,874,368bits.在56,000bits/sec速度下,传输需要大约337.042sec.在1,000,000bits/sec,需要大约18.874sec.在10,000,000bits/sec,需要大约1.887sec.在100,000,000bits/sec,需要大约0.189sec.1-30Wirelessnetworksareeasytoinstall,whichmakestheminexpensivesinceinstallationcostsusuallyfarovershadowequipmentcosts.Nevertheless,theyalsohavesomedisadvantages.Nametwoofthem.无线网络很容易安装,这使得它们并不非常昂贵。因为安装费用通常会占去整个设备费用的很大比例。然而,它们也有一些缺点。请说出两个缺点。一个缺点是安全性。每个碰巧在此房屋内的随机发送者都能在网络上监听。另一个缺点是可靠性。无线网络造成大量错误。第三个潜在的问题是电池寿命,因为多数无线设备倾向于可移动性。第56页共56页 1-31Listtwoadvantagesandtwodisadvantagesofhavinginternationalstandardsfornetworkprotocols.请列举出网络协议国际标准化的两个优点和缺点。优点1:如果每个人都使用标准,那么每个人都可以与其他任何人交流;优点2:广泛使用标准将导致规模经济,比如生产大规模集成电路芯片。缺点1:为了取得标准化所需要的政治妥协经常会导致差的标准;缺点2:一旦标准被广泛采用了,要对它再做改变就会非常困难,即使发现了新的更好的技术或方法,也难以替换。第56页共56页 第2章物理层2-2Anoiseless4-kHzchannelissampledevery1msec.Whatisthemaximumdatarate?一条无噪声4kHz信道按照每1ms一次进行采样,请问最大数据传输率是多少?答:无噪声信道最大数据传输率公式:最大数据传输率=2Hlog2Vb/s。因此最大数据传输率决定于每次采样所产生的比特数,如果每次采样产生16bits,那么数据传输率可达128kbps;如果每次采样产生1024bits,那么可达8.2Mbps。注意这是对无噪声信道而言的,实际信道总是有噪声的,其最大数据传输率由香农定律给出。2-3Televisionchannelsare6MHzwide.Howmanybits/seccanbesentiffour-leveldigitalsignalsareused?Assumeanoiselesschannel.电视频道的带宽是6MHz。如果使用4级数字信号,则每秒钟可以发送多少位?假设电视频道为无噪声信道。答:采样频率12MHz,每次采样2bit,总的数据率为24Mbps。2-4Ifabinarysignalissentovera3-kHzchannelwhosesignal-to-noiseratiois20dB,whatisthemaximumachievabledatarate?如果在一条3kHz信道上发送一个二进制信号,该信道的信噪比为20dB,则最大可达到的数据传输率为多少?答:信噪比为20dB即S/N=100.由于log2101≈6.658,由香农定理,该信道的信道容量为3log2(1++100)=19.98kbps。又根据乃奎斯特定理,发送二进制信号的3kHz信道的最大数据传输速率为2*3log22=6kbps。所以可以取得的最大数据传输速率为6kbps。2-5Whatsignal-to-noiseratioisneededtoputaT1carrierona50-kHzline?在50kHz的线路上使用T1线路需要多大的信噪比?答:为发送T1信号,我们需要第56页共56页 所以,在50kHz线路上使用T1载波需要93dB的信噪比。2-7Howmuchbandwidthistherein0.1micronofspectrumatawavelengthof1micron?在1μm波长上,在0.1μm的频段中有多少带宽?答:因此,在0.1的频段中可以有30THz。2-8Itisdesiredtosendasequenceofcomputerscreenimagesoveranopticalfiber.Thescreenis480x640pixels,eachpixelbeing24bits.Thereare60screenimagespersecond.Howmuchbandwidthisneeded,andhowmanymicronsofwavelengthareneededforthisbandat1.30microns?现需要在一条光纤发送一系列计算机屏幕图像,屏幕的分辨率为480×640像素,每个像素为24位。每秒钟有60幅屏幕图像。请问,需要多少带宽?在1.30μm波长上,这段带宽需要多少μm的波长?答:数据速率为480×640×24×60bps,即442Mbps。需要442Mbps的带宽,对应的波长范围是。2-18Asimpletelephonesystemconsistsoftwoendofficesandasingletollofficetowhicheachendofficeisconnectedbya1-MHzfull-duplextrunk.Theaveragetelephoneisusedtomakefourcallsper8-hourworkday.Themeancalldurationis6min.Tenpercentofthecallsarelong-distance(i.e.,passthroughthetolloffice).Whatisthemaximumnumberoftelephonesanendofficecansupport?(Assume4kHzpercircuit.)第56页共56页 一个简单的电话系统包括两个端局和一个长途局,每个端局通过一条1MHz全双工干线连接到长途局。在每8小时的工作日中,平均每部电话有4次呼叫,每次呼叫平均6分钟,10%的呼叫是长途(即通过长途局)。请问一个端局能够支持最多多少部电话?(假设每条线路为4kHz)答:每部电话每小时做0.5次通话,每次通话6分钟。因此一部电话每小时占用一条电路3分钟,60/3=20,即20部电话可共享一条线路。由于只有10%的呼叫是长途,所以200部电话占用一条完全时间的长途线路。局间干线复用了1000000/4000=250条线路,每条线路支持200部电话,因此,一个端局可以支持的电话部数为200*250=50000。2-22AmodemconstellationdiagramsimilartoFig.2-25hasdatapointsatthefollowingcoordinates:(1,1),(1,-1),(-1,1),and(-1,-1).Howmanybpscanamodemwiththeseparametersachieveat1200baud?一个类似于图2.25的调制解调器星座图有以下几个坐标点(1,1)、(1,-1)、(-1,1)、(-1,-1)。请问一个具备这些参数的调制解调器在1200波特上可以达到多少bps?每个波特有4个合法值,因此比特率是波特率的两倍。对应于1200波特,数据速率是2400bps。2-28Tensignals,eachrequiring4000Hz,aremultiplexedontoasinglechannelusingFDM.Howmuchminimumbandwidthisrequiredforthemultiplexedchannel?Assumethattheguardbandsare400Hzwide.有10个信号,每个都要求4000Hz,现在用FDM将它们复用在一条信道上。对于被复用的信道,最小要求多少带宽?假设防护频段为400Hz宽。有10个4000Hz信号。我们需要9个防护频段来避免干扰。最小带宽需求是4000×10+400×第56页共56页 9=43,600Hz.2-29WhyhasthePCMsamplingtimebeensetat125µsec?答:125的采样时间对应于每秒8000次采样。一个典型的电话通道为4kHz。根据奈奎斯特定理,为获取一个4kHz的通道中的全部信息需要每秒8000次的采样频率。(实际上额定带宽稍有些少,截止点并不清晰)2-30WhatisthepercentoverheadonaT1carrier;thatis,whatpercentofthe1.544Mbpsarenotdeliveredtotheenduser?每一帧中,端点用户使用193位中的168(7*24)位,开销占25(=193-168)位,因此开销比例等于25/193=13%。2-33Whatisthedifference,ifany,betweenthedemodulatorpartofamodemandthecoderpartofacodec?(Afterall,bothconvertanalogsignalstodigitalones.)答:有。编码器接受任意的模拟信号,并从它产生数字信号。而解调器仅仅接受调制了的正弦(或余弦)波,产生数字信号。2-34Asignalistransmitteddigitallyovera4-kHznoiselesschannelwithonesampleevery125µsec.Howmanybitspersecondareactuallysentforeachoftheseencodingmethods?(a)CCITT2.048Mbpsstandard.(b)DPCMwitha4-bitrelativesignalvalue.(c)Deltamodulation.第56页共56页 答:a.CCITT2.048Mbps标准用32个8位数据样本组成一个125的基本帧,30个信道用于传信息,2个信道用于传控制信号。在每一个4kHz信道上发送的数据率就是8*8000=64kbps。b.差分脉码调制(DPCM)是一种压缩传输信息量的方法,它发送的不是每一次抽样的二进制编码值,而是两次抽样的差值的二进制编码。现在相对差值是4位,所以对应每个4kHz信道实际发送的比特速率为4*8000=32bps。c.增量调制的基本思想是:当抽样时间间隔st很短时,模拟数据在两次抽样之间的变化很小,可以选择一个合适的量化值?作为阶距。把两次抽样的差别近似为不是增加一个?就是减少一个?。这样只需用1bit二进制信息就可以表示一次抽样结果,而不会引入很大误差。因此,此时对应每个4kHz信道实际发送的数据速率为1*8000=8kHz。2-39Whatistheessentialdifferencebetweenmessageswitchingandpacketswitching?信息交换发送到数据单元可以是任意长度。分组交换有最大报文大小限制,任何大于限制的信息将被拆分成多个报文。2-41Threepacket-switchingnetworkseachcontainnnodes.Thefirstnetworkhasastartopologywithacentralswitch,thesecondisa(bidirectional)ring,andthethirdisfullyinterconnected,withawirefromeverynodetoeveryothernode.Whatarethebest-,average-,and-worstcasetransmissionpathsinhops?三个分组交换网络每个包含n个节点。第一个网络是一个星型拓扑结构,有一个中心交换机;第二个网络是一个双向环;第三个网络是一个全连接结构,从任何一个节点到其他的节点都有一条线路。请问从传输路径的跳数来看,哪个最好?其次?最差?答:Thethreenetworkshavethefollowingproperties:星型:最好为2,最差为2,平均为2;第56页共56页 环型:最好为1,最差为n/2,平均为n/4如果考虑n为奇偶数,则n为奇数时,最坏为(n-1)/2,平均为(n+1)/4n为偶数时,最坏为n/2,平均为n2/4(n-1)全连接:最好为1,最差为1,平均为1。2-42Comparethedelayinsendinganx-bitmessageoverak-hoppathinacircuit-switchednetworkandina(lightlyloaded)packet-switchednetwork.Thecircuitsetuptimeisssec,thepropagationdelayisdsecperhop,thepacketsizeispbits,andthedatarateisbbps.Underwhatconditionsdoesthepacketnetworkhavealowerdelay?请比较一下在一个电路交换网络中和在一个负载较轻的分组交换网络中,沿着k跳到路径发送x位消息的延迟情况。电路建立的时间为s秒,每一跳的传播延迟为d秒,分组的大小为p位,数据传输率为bbps。在什么条件下分组网络的延迟比较短?对于电路交换,t=s时电路建立起来;t=s++x/d时报文的最后一位发送完毕;t==s++x/b+kd时报文到达目的地。而对于分组交换,最后一位在t=x/b时发送完毕。为到达最终目的地,最后一个分组必须被中间的路由器重发k-1次,每次重发花时间p/b,所以总的延迟为为了使分组交换比电路交换快,必须:所以:2-43Supposethatxbitsofuserdataaretobetransmittedoverak-hoppathinapacket-switchednetworkasaseriesofpackets,eachcontainingpdatabitsandhheaderbits,withxp+h.Thebitrateofthelinesisbbpsandthepropagationdelayisnegligible.Whatvalueofpminimizesthetotaldelay?第56页共56页 假定x位用户数据将以一系列分组的形式,在一个分组交换网络中沿着一条共有k跳到路径向前传输,每个分组包含p位数据和h位的头,这里x>>p+h。线路的传输率为bbps,传播延迟忽略不计。请问什么样的p值使总延迟最小?答:所需要的分组总数是x/p,因此总的数据加上头信息交通量为(p+h)x/p位。源端发送这些位需要时间为(p+h)x//pb;中间的路由器重传最后一个分组所花的总时间为(k-1)(p+h)/b因此我们得到的总的延迟为对该函数求p的导数,得到令得到因为p>0,所以故时能使总的延迟最小。2-44Inatypicalmobilephonesystemwithhexagonalcells,itisforbiddentoreuseafrequencybandinanadjacentcell.If840frequenciesareavailable,howmanycanbeusedinagivencell?在一个典型的移动电话系统中,蜂窝单元为六角形,在相邻的单元内禁止重新使用频段。如果总共有840个频率可以使用的话,则任何一个给定的单元内可以使用多少个频率?每个单元有6个邻居。如果中间的单元使用频段组合A,它的六个邻居可以分别使用的频段组合B,C,B,C,B,C。换句话说,只需要3个单一的单元。因此,每个单元可以使用280个频率。第56页共56页 2-50SupposethatA,B,andCaresimultaneouslytransmitting0bits,usingaCDMAsystemwiththechipsequencesofFig.2-45(b).Whatistheresultingchipsequence?FIG2-45(b)结果是通过对A、B、C求反再将这三个码片序列相加得到的。结果是(+3+1+1.1.3.1.1+1).2-53ACDMAreceivergetsthefollowingchips:(-1+1-3+1-1-3+1+1).AssumingthechipsequencesdefinedinFig.2-45(b),whichstationstransmitted,andwhichbitsdideachonesend?一个CDMA接收器得到了下面的时间片(-1+1-3+1-1-3+1+1)。假设时间片序列如图2.45b中所定义,请问那些移动站传输了数据?每个站发送了什么位?Justcomputethefournormalizedinnerproducts:此处答案中的~疑为-号之误?(.1+1.3+1.1.3+1+1)d(.1.1.1+1+1.1+1+1)/8=1(.1+1.3+1.1.3+1+1)d(.1.1+1.1+1+1+1.1)/8=.1(.1+1.3+1.1.3+1+1)d(.1+1.1+1+1+1.1.1)/8=0(.1+1.3+1.1.3+1+1)d(.1+1.1.1.1.1+1.1)/8=1结果是A和D发送了1位,B发送了0位,C没有发送。第56页共56页 第3章数据链路层3-1Anupper-layerpacketissplitinto10frames,eachofwhichhasan80percentchanceofarrivingundamaged.Ifnoerrorcontrolisdonebythedatalinkprotocol,howmanytimesmustthemessagebesentonaveragetogettheentirethingthrough?一个上层的分组被切分成10帧,每一帧有80%的机会可以无损地到达。如果数据链路协议没有提供错误控制的话,请问,该报文平均需要发送多少次才能完整地到达接收方?答:由于每一帧有0.8的概率正确到达,整个信息正确到达的概率为p=0.810=0.107。为使信息完整的到达接收方,发送一次成功的概率是p,二次成功的概率是(1-p)p,三次成功的概率为(1-p)2p,i次成功的概率为(1-p)i-1p,因此平均的发送次数等于:3-2Thefollowingcharacterencodingisusedinadatalinkprotocol:A:01000111;B:11100011;FLAG:01111110;ESC:11100000Showthebitsequencetransmitted(inbinary)forthefour-characterframe:ABESCFLAGwheneachofthefollowingframingmethodsareused:(a)Charactercount.(b)Flagbyteswithbytestuffing.(c)Startingandendingflagbytes,withbitstuffing.结果是(a)0000010001000111111000111110000001111110(b)0111111001000111111000111110000011100000111000000111111001111110(c)0111111001000111110100011111000000011111010011111103-5Abitstring,0111101111101111110,needstobetransmittedatthedatalinklayer.Whatisthestringactuallytransmittedafterbitstuffing?位串0111101111101111110需要在数据链路层上被发送,请问,经过位填充之后实际被发送出去的是什么?输出是1110111110011111010.第56页共56页 3-6Whenbitstuffingisused,isitpossiblefortheloss,insertion,ormodificationofasinglebittocauseanerrornotdetectedbythechecksum?Ifnot,whynot?Ifso,how?Doesthechecksumlengthplayarolehere?假设使用了位填充成帧方法,请问,因为丢失一位,插入一位,或者篡改一位而引起的错误是否有可能通过校验和检测出来?如果不能的话,请问为什么?如果能的话,请问校验和长度在这里是如何起作用的?答:可能。假定原来的正文包含位序列01111110作为数据。位填充之后,这个序列将变成01111010。如果由于传输错误第二个0丢失了,收到的位串又变成01111110,被接收方看成是帧尾。然后接收方在该串的前面寻找检验和,并对它进行验证。如果检验和是16位,那么被错误的看成是检验和的16位的内容碰巧经验证后仍然正确的概率是1/216。如果这种概率的条件成立了,就会导致不正确的帧被接收。显然,检验和段越长,传输错误不被发现的概率会越低,但该概率永远不等于零。3-16DatalinkprotocolsalmostalwaysputtheCRCinatrailerratherthaninaheader.Why?数据链路协议几乎总是将CRC放在尾部,而不是头部,为什么?答:CRC是在发送期间进行计算的。一旦把最后一位数据送上外出线路,就立即把CRC编码附加在输出流的后面发出。如果把CRC放在帧的头部,那么就要在发送之前把整个帧先检查一遍来计算CRC。这样每个字节都要处理两遍,第一遍是为了计算检验码,第二遍是为了发送。把CRC放在尾部就可以把处理时间减半。3-17Achannelhasabitrateof4kbpsandapropagationdelayof20msec.Forwhatrangeofframesizesdoesstop-and-waitgiveanefficiencyofatleast50percent?第56页共56页 一个信道的位速率为4kbps,传输延迟为20ms。请问帧的大小在什么范围内,停-等协议才可以获得至少50%的效率?答:当发送一帧的时间等于信道的传播延迟的2倍时,信道的利用率为50%。或者说,当发送一帧的时间等于来回路程的传播延迟时,效率将是50%。而在帧长满足发送时间大于延迟的两倍时,效率将会高于50%。现在发送速率为4Mb/s,发送一位需要0.25。只有在帧长不小于160kb时,停等协议的效率才会至少达到50%。3-18A3000-km-longT1trunkisusedtotransmit64-byteframesusingprotocol5.Ifthepropagationspeedis6祍ec/km,howmanybitsshouldthesequencenumbersbe?一条3000公里长的T1骨干线路被用来传输64字节的帧,两端使用了协议5.如果传输速度为6μs/公里,则序列号应该有多少位?答;为了有效运行,序列空间(实际上就是发送窗口大小)必须足够的大,以允许发送方在收到第一个确认应答之前可以不断发送。信号在线路上的传播时间为6×3000=18000,即18ms。在T1速率,发送64字节的数据帧需花的时间:64×8÷(1.536×106)=0.33。所以,发送的第一帧从开始发送起,18.33ms后完全到达接收方。确认应答又花了很少的发送时间(忽略不计)和回程的18ms。这样,加在一起的时间是36.33ms。发送方应该有足够大的窗口,从而能够连续发送36.33ms。36.33/0.33=110也就是说,为充满线路管道,需要至少110帧,因此序列号为7位。3-19Inprotocol3,isitpossiblethatthesenderstartsthetimerwhenitisalreadyrunning?Ifso,howmight第56页共56页 thisoccur?Ifnot,whyisitimpossible?有可能发生。假设发送方传输率一个帧、很快返回了一个引起误解的确认。主循环将再次被执行,一个帧将在定时器仍在运行的情况下被发送。3-20Imagineaslidingwindowprotocolusingsomanybitsforsequencenumbersthatwraparoundneveroccurs.Whatrelationsmustholdamongthefourwindowedgesandthewindowsize,whichisconstantandthesameforboththesenderandthereceiver.想象这样一个滑动窗口协议,它的序列号有非常多的位,所以序列号几乎永远不会回转。请问4个窗口边界和窗口大小之间必须满足什么样的关系?这里的窗口大小是固定不变的,并且发送方和接收方的窗口大小相同。令发送方窗口为(Sl,Su)接收方窗口为(Rl,Ru),令窗口大小为W。二者必须保持的关系是:0≤Su−Sl+1≤W1Ru−Rl+1=WSl≤Rl≤Su+13-21Iftheprocedurebetweeninprotocol5checkedfortheconditionabcinsteadoftheconditionab1时,信道总是过载的,因此在这里信道是过载的。4-8Howlongdoesastation,s,havetowaitintheworstcasebeforeitcanstarttransmittingitsframeoveraLANthatuses(a)thebasicbit-mapprotocol?(b)MokandWard"sprotocolwithpermutingvirtualstationnumbers?如果一个LAN使用了下列协议,请问在最差情况下,一个站s在开始传送帧之前必须要等到多长时间?(a)基本的位图协议(b)改变虚拟站序列号的Mok-Ward协议(a)最坏的情况是:所有站都想发送,其中s是编号最小的站点。等待时间是N位争用周期+(N-1)×d位帧传输,一共是N+(N-1)d位时间;(b)(b)最坏的情况是:所有站都有帧要传输,s具有其中最小的虚拟站编号。因此,s在其它N-1个站各发送了一个帧之后将获得传输机会,以及每个大小为log2N的N个争用周期。等待时间是(N+1)×d+N×log2Nbits.???4-10Sixteenstations,numbered1through16,arecontendingfortheuseofasharedchannelbyusingtheadaptivetreewalkprotocol.Ifallthestationswhoseaddressesareprimenumberssuddenlybecomereadyatonce,howmanybitslotsareneededtoresolvethecontention?16个站的编号从1到16,它们正在竞争使用一个使用了可适应树径协议的共享信道。如果地址编号为素数的所有站突然间全部要发送帧,请问需要多少位时槽才能解决竞争?第56页共56页 答:在自适应树遍历协议中,可以把站点组织成二叉树(见图)的形式。在一次成功的传输之后,在第一个竞争时隙中,全部站都可以试图获得信道,如果仅其中之一需用信道,则发送冲突,则第二时隙内只有那些位于节点B以下的站(0到7)可以参加竞争。如其中之一获得信道,本帧后的时隙留给站点C以下的站;如果B点下面有两个或更多的站希望发送,在第二时隙内会发生冲突,于是第三时隙内由D节点以下各站来竞争信道。本题中,站2、3、5、7、11和13要发送,需要13个时隙,每个时隙内参加竞争的站的列表如下:第一时隙:2、3、5、7、11、13第二时隙:2、3、5、7第三时隙:2、3第四时隙:空闲第五时隙:2、3第六时隙:2第七时隙:3第八时隙:5、7第九时隙:5第十时隙:7第十一时隙:11、13第十二时隙:11第十三时隙:13第56页共56页 4-14Sixstations,AthroughF,communicateusingtheMACAprotocol.Isitpossiblethattwotransmissionstakeplacesimultaneously?Explainyouranswer.是的,想像它们排成一条直线,每个站只能到达其最近的邻居。当E向F发送时A也能向B发送。4-21ConsiderbuildingaCSMA/CDnetworkrunningat1Gbpsovera1-kmcablewithnorepeaters.Thesignalspeedinthecableis200,000km/sec.Whatistheminimumframesize?考虑在一条1km长的电缆(无中继器)上建立一个1Gbps速率的CSMA/CD网络。信号在电缆中的速度为200000km/s。请问最小的帧长度为多少?答:对于1km电缆,单程传播时间为1/200000=5×10-6s,即5,来回路程传播时间为2t=10。为了能够按照CSMA/CD工作,最小帧的发射时间不能小于10。以1Gb/s速率工作,10可以发送的比特数等于:因此,最小帧是10000bit或1250字节长。4-22AnIPpackettobetransmittedbyEthernetis60byteslong,includingallitsheaders.IfLLCisnotinuse,ispaddingneededintheEthernetframe,andifso,howmanybytes?一个通过以太网传送到IP分组有60字节长,其中包括所有的头部。如果没有使用LLC的话,则以太网帧中需要填补字节码?如果需要的话,请问需要填补多少字节?最小的以太帧是64bytes,包括了以太帧头部的二者地址、类型/长度域、校验和。因为头部域占用18bytes报文是60bytes,总的帧长度是78bytes,已经超过了64-byte的最小限制。因此,不需要填补。4-23Ethernetframesmustbeatleast64byteslongtoensurethatthetransmitterisstillgoingintheeventofacollisionatthefarendofthecable.FastEthernethasthesame64-byteminimumframesizebutcangetthebitsouttentimesfaster.Howisitpossibletomaintainthesameminimumframesize?快速以太网的最大线路长度是以太网的1/10。4-24SomebooksquotethemaximumsizeofanEthernetframeas1518bytesinsteadof1500bytes.Are第56页共56页 theywrong?Explainyouranswer.有效载荷是1500bytes,但将目的地址、源地址、类型/长度和校验和域都计算进去的话,总和就是1518.4-37ConsidertheinterconnectedLANsshownsinFig.4-44.AssumethathostsaandbareonLAN1,cisonLAN2,anddisonLAN8.Initially,hashtablesinallbridgesareemptyandthespanningtreeshowninFig4-44(b)isused.Showhowthehashtablesofdifferentbridgeschangeaftereachofthefollowingeventshappeninsequence,first(a)then(b)andsoon.(a)asendstod.(b)csendstoa.(c)dsendstoc.(d)dmovestoLAN6.(e)dsendstoa.考虑图4.44中相互连接的LAN。假设主机a和b在LAN1上,主机c在LAN2上,主机d在LAN8上。刚开始的时候,所有的网桥内部的散列表都是空的,并且使用了图4.44b所示的生成树。在下面给出的每个事件依次发生以后,不同网桥的散列表将如何变化。(a)a向d发送帧(b)c向a发送帧(c)d向c发送帧(d)d移动到LAN6上(e)d向a发送帧第一个帧会被每个网桥转发。这次传输后,每个网桥的散列表会得到一个带有适当端口的目的地为a的项目。例如D的散列表会有一个向在LAN2上的目的地为a转发帧的项目。第二个信息会被网桥B,D和A看到。这些网桥会在它们的散列表中添加一个目的地为c的新项目。例如,网桥D的散列表现在会有另一个向在LAN2上的目的地为c转发帧的项目。第三个信息会被网桥H,D,A和B看到。这些网桥会在它们的散列表中添加一个目的地为d的新项目。第五条信息会被网桥E,C,B,D和A看到。网桥E和C会在他们的散列表添加一个目的地为d的新项目,与此同时,网桥D,B和A将会更新它们对应目的地d的散列表项目。4-38OneconsequenceofusingaspanningtreetoforwardframesinanextendedLANisthatsome第56页共56页 bridgesmaynotparticipateatallinforwardingframes.IdentifythreesuchbridgesinFig.4-44.Isthereanyreasonforkeepingthesebridges,eventhoughtheyarenotusedforforwarding?在一个扩展的LAN中使用生成树来转发帧的一个结果是,有的网桥可能根本不参与帧的转发过程。请在图4.44中标出三个这样的网桥。既然这些网桥没有被用于转发帧,那么是否有理由要保留这些网桥呢?网桥G,I和J没有被用来转发任何帧。在一个扩展的LAN中具有回路的主要原因是增加可靠性。如果当前生成树中的任何网桥出了故障,(动态)生成树算法重构一个新的生成树,其中可能包括一个或更多不属于先前生成树部分的网桥。4-42Brieflydescribethedifferencebetweenstore-and-forwardandcut-throughswitches.存储-转发型交换机完整存储输入的每个帧,然后检查并转发。直通型交换机在输入帧没有全部到达之前就开始转发。一得到目的地址,转发就开始了。4-43Store-and-forwardswitcheshaveanadvantageovercut-throughswitcheswithrespecttodamagedframes.Explainwhatitis.Store-and-forwardswitchesstoreentireframesbeforeforwardingthem.Afteraframecomesin,thechecksumcanbeverified.Iftheframeisdamaged,itisdiscardedimmediately.Withcut=through,damagedframescannotbediscardedbytheswitchbecausebythetimetheerrorisdetected,theframeisalreadygone.Tryingtodealwiththeproblemislikelockingthebarndoorafterthehorsehasescaped.存储-转发型交换机在转发帧之前存储整个帧。当一个帧到达时,校验和将被验证。如果帧已被损坏,它将被立即丢弃。在直通型交换机,损坏的帧不能被交换机丢弃。因为当错误被检测到时,帧已经过去了。想要处理这个问题就像是在马已经逃逸之后再锁上牲口棚。第56页共56页 第5章网络层5-1Givetwoexamplecomputerapplicationsforwhichconnection-orientedserviceisappropriate.Nowgivetwoexamplesforwhichconnectionlessserviceisbest.答:文件传送、远程登录和视频点播需要面向连接的服务。另一方面,信用卡验证和其他销售点终端、电子资金转移,及许多形式远程数据库访问生来具有无连接性质,在一个方向上传送查询,在另一个方向上返回应答。5-2Arethereanycircumstanceswhenconnection-orientedservicewill(oratleastshould)deliverpacketsoutoforder?Explain.答:有。中断信号应该跳过在它前面的数据,进行不遵从顺序的投递。典型的例子是当一个终端用户键入退出(或kill)健时。由退出信号产生的分组应该立即发送,并且应该跳过当前队列中排在前面等待程序处理的任何数据(即已经键入但尚未被程序读取的数据)。5-3Datagramsubnetsrouteeachpacketasaseparateunit,independentofallothers.Virtual-circuitsubnetsdonothavetodothis,sinceeachdatapacketfollowsapredeterminedroute.Doesthisobservationmeanthatvirtual-circuitsubnetsdonotneedthecapabilitytorouteisolatedpacketsfromanarbitrarysourcetoanarbitrarydestination?Explainyouranswer.答:不对。为了从任意源到任意目的地,为连接建立的分组选择路由,虚电路网络肯定需要这一能力。5-5Considerthefollowingdesignproblemconcerningimplementationofvirtual-circuitservice.Ifvirtualcircuitsareusedinternaltothesubnet,eachdatapacketmusthavea3-byteheaderandeachroutermusttieup8bytesofstorageforcircuitidentification.Ifdatagramsareusedinternally,15-byteheadersareneededbutnoroutertablespaceisrequired.Transmissioncapacitycosts1centper106bytes,perhop.Veryfastroutermemorycanbepurchasedfor1centperbyteandisdepreciatedovertwoyears,assuminga40-hourbusinessweek.Thestatisticallyaveragesessionrunsfor1000sec,inwhichtime200packetsaretransmitted.Themeanpacketrequiresfourhops.Whichimplementationischeaper,andbyhowmuch?第56页共56页 答:虚电路实现需要在1000秒内固定分配5*8=40字节的存储器。数据报实现需要比虚电路实现多传送的头信息的容量等于(15-3)×4×200=9600字节-跳段。现在的问题就变成了40000字节-秒的存储器对比9600字节-跳段的电路容量。如果存储器的使用期为两年,即3600×8×5×52×2=1.7×107秒,一个字节-秒的代价为1/(1.5×107)=6.7×10-8分,那么40000字节-秒的代价为2.7毫分。另一方面,1个字节-跳段代价是10-6分,9600个字节-跳段的代价为10-6×9600=9.6×10-3分,即9.6毫分,即在这1000秒内的时间内便宜大约6.9毫分。5-6Assumingthatallroutersandhostsareworkingproperlyandthatallsoftwareinbothisfreeofallerrors,isthereanychance,howeversmall,thatapacketwillbedeliveredtothewrongdestination?答:有可能。大的突发噪声可能破坏分组。使用k位的检验和,差错仍然有2-k的概率被漏检。如果分组的目的地段或虚电路号码被改变,分组将会被投递到错误的目的地,并可能被接收为正确的分组。换句话说,偶然的突发噪声可能把送往一个目的地的完全合法的分组改变成送往另一个目的地的也是完全合法的分组。5-7ConsiderthenetworkofFig.5-7,butignoretheweightsonthelines.Supposethatitusesfloodingastheroutingalgorithm.IfapacketsentbyAtoDhasamaximumhopcountof3,listalltheroutesitwilltake.Alsotellhowmanyhopsworthofbandwidthitconsumes.第56页共56页 路径将依次为下面的路由:ABCD,ABCF,ABEF,ABEG,AGHD,AGHF,AGEB,和AGEF.用到的跳数是24。5-9ConsiderthesubnetofFig.5-13(a).Distancevectorroutingisused,andthefollowingvectorshavejustcomeintorouterC:fromB:(5,0,8,12,6,2);fromD:(16,12,6,0,9,10);andfromE:(7,6,3,9,0,4).ThemeasureddelaystoB,D,andE,are6,3,and5,respectively.WhatisC"snewroutingtable?Giveboththeoutgoinglinetouseandtheexpecteddelay.第56页共56页 答:通过B给出(11,6,14,18,12,8)通过D给出(19,15,9,3,12,13)通过E给出(12,11,8,14,5,9)取到达每一目的地的最小值(C除外)得到:(11,6,0,3,5,8)输出线路是:(B,B,-,D,E,B)5-10Ifdelaysarerecordedas8-bitnumbersina50-routernetwork,anddelayvectorsareexchangedtwiceasecond,howmuchbandwidthper(full-duplex)lineischewedupbythedistributedroutingalgorithm?Assumethateachrouterhasthreelinestootherrouters.答:路由表的长度等于8*50=400bit。该表每秒钟在每条线路上发送2次,因此400*2=800b/s,即在每条线路的每个方向上消耗的带宽都是800bps。5-12Forhierarchicalroutingwith4800routers,whatregionandclustersizesshouldbechosentominimizethesizeoftheroutingtableforathree-layerhierarchy?Agoodstartingplaceisthehypothesisthatasolutionwithkclustersofkregionsofkroutersisclosetooptimal,whichmeansthatkisaboutthecuberootof4800(around16).Usetrialanderrortocheckoutcombinationswhereallthreeparametersareinthegeneralvicinityof16.所谓分级路由,就是将路由器按区(REGION第56页共56页 )进行划分,每个路由器只须知道在自己的区内如何为分组选择路由到达目的地的细节,而不用知道其他区的内部结构。对于大的网络,也许两级结构是不够的,还可以把区组合成簇(CLUSTER),把簇再组合成域(ZONE),⋯⋯对于等级式路由,在路由表中对应所有的本地路由器都有一个登录项,所有其他的区(本簇内)、簇(本域内)和域都缩减为单个路由器,因此减少了路由表的尺寸。在本题中,4800=15*16*20。当选择15个簇、16个区,每个区20个路由器时(或等效形式,例如20个簇、16个区,每个区15个路由器),路由表尺寸最小,此时的路由表尺寸为15+16+20=51。5-14LookingatthesubnetofFig.5-6,howmanypacketsaregeneratedbyabroadcastfromB,using(a)reversepathforwarding?(b)thesinktree?答:在一个子网中,从所有的源到一个指定的目的地的最佳路由的集合形成一棵以该目的地为根的树。这样的树就称作汇集树。汇集树不必是唯一的,其他具有相同通路长度的树可能存在。所有路由选择算法的目标都是要为所有的路由器寻找和使用汇集树。在广播形式的应用中,源主机需要向所有其他的主机发送报文。在称为反向通路转发的广播路由选择中,当广播分组到达路由器时,路由器对此分组进行检查,查看该分组是否来自于通常用于发送分组到广播源的线路,如果是,则此广播分组本身非常有可能是从源路由器来的第一个拷贝。在这种情况下,路由器将此分组复制转发到进入线路以外的所有线路。然而,如果广播分组到来的线路不是到达源端的线路,那么分组就被当作副本而扔掉。(1)反向通路转发算法,算法进行到5个跳段后结束,总共产生28个分组。第56页共56页 (2)使用汇集树算法,需要4个跳段,总共产生14个分组。5-15ConsiderthenetworkofFig.5-16(a).Imaginethatonenewlineisadded,betweenFandG,butthesinktreeofFig.5-16(b)remainsunchanged.WhatchangesoccurtoFig.5-16(c)?节点F目前有两个子节点A和D.它现在获得了第三个——G,但并未构成环路,因为沿着IFG的报文不在汇集树上。节点G除D之外获得第二个子节点,标记为F,它也因没有加入汇集树而没有构成环路。5-21Asapossiblecongestioncontrolmechanisminasubnetusingvirtualcircuitsinternally,aroutercouldrefrainfromacknowledgingareceivedpacketuntil(1)itknowsitslasttransmissionalongthevirtualcircuitwasreceivedsuccessfullyand(2)ithasafreebuffer.Forsimplicity,assumethattheroutersuseastop-and-waitprotocolandthateachvirtualcircuithasonebufferdedicatedtoitforeachdirectionoftraffic.IfittakesTsectotransmitapacket(dataoracknowledgement)andtherearenroutersonthepath,whatistherateatwhichpacketsaredeliveredtothedestinationhost?Assumethattransmissionerrorsarerareandthatthehost-routerconnectionisinfinitelyfast.答:对时间以T秒为单位分时隙。在时隙中,源路由器发送第一个分组。在时隙2的开始,第2个路由器收到了分组,但不能应答。在时隙3的开始,第3个路由器收到了分组,但也不能应答。这样,此后所有的路由器都不会应答。仅当目的地主机从目的地路由器取得分组时才会发送第1个应答。现在确认应答开始往回传播。在源路由器可以发送第2个分组之前,需要两次穿行该子网,需要花费的时间等于2(n-1)T秒/分组,显然,这种协议的效率是很低的。第56页共56页 5-22Adatagramsubnetallowsrouterstodroppacketswhenevertheyneedto.Theprobabilityofarouterdiscardingapacketisp.Considerthecaseofasourcehostconnectedtothesourcerouter,whichisconnectedtothedestinationrouter,andthentothedestinationhost.Ifeitheroftheroutersdiscardsapacket,thesourcehosteventuallytimesoutandtriesagain.Ifbothhost-routerandrouter-routerlinesarecountedashops,whatisthemeannumberof(a)hopsapacketmakespertransmission?(b)transmissionsapacketmakes?(c)hopsrequiredperreceivedpacket?答:(1)由源主机发送的每个分组可能行走1个跳段、2个跳段或3个跳段。走1个跳段的概率为p,走2个跳段的概率为(1-p)p,走3个跳段的概率为(1-p)2p。那么,一个分组平均通路长度的期望值为:即每次发送一个分组的平均跳段数是p2-3p++3。(2)一次发送成功(走完整个通路)的概率为(1-p)2,令a=(1-p)2,两次发射成功的概率等于(1-a)a,三次发射成功的概率等于(1-a)2a,…,因此一个分组平均发送次数为:即一个分组平均要发送1/(1-p)2次。(3)最后,每一个接收到的分组行走的平均跳段数等于5-23DescribetwomajordifferencesbetweenthewarningbitmethodandtheREDmethod.第一,警告位方法通过设置一个位明确地发送一个拥塞通知给来源,而RED方法通过简单地丢弃它的一个报文来隐含地通知源;第56页共56页 第二,警告位方法只在没有缓冲空间时才丢弃报文,而RED方法在所有缓冲区耗尽之前就丢弃报文。5-24Giveanargumentwhytheleakybucketalgorithmshouldallowjustonepacketpertick,independentofhowlargethepacketis.答:通常计算机能够以很高的速率产生数据,网络也可以用同样的速率运行。然而,路由器却只能在短时间内以同样高的速率处理数据。对于排在队列中的一个分组,不管它有多大,路由器必须做大约相同分量的工作。显然,处理10个100字节长的分组所作的工作比处理1个1000字节长的分组要做的工作多得多。5-25Thebyte-countingvariantoftheleakybucketalgorithmisusedinaparticularsystem.Theruleisthatone1024-bytepacket,ortwo512-bytepackets,etc.,maybesentoneachtick.Giveaseriousrestrictionofthissystemthatwasnotmentionedinthetext.答:不可以发送任何大于1024字节的分组。5-27Acomputerona6-Mbpsnetworkisregulatedbyatokenbucket.Thetokenbucketisfilledatarateof1Mbps.Itisinitiallyfilledtocapacitywith8megabits.Howlongcanthecomputertransmitatthefull6Mbps?答:本题乍看起来,似乎以6Mb/s速率发送用4/3秒的时间可以发送完桶内8Mb的数据,使漏桶变空。然而,这样回答是错误的,因为在这期间,已有更多的令牌到达。正确的答案应该使用公式S=C/(M-P),这里的S表示以秒计量的突发时间长度,M表示以每秒字节计量的最大输出速率,C表示以字节计的桶的容量,P表示以每秒字节计量的令牌到达速率。则:因此,计算机可以用完全速率6Mb/s发送1.6s的时间。5-28Imagineaflowspecificationthathasamaximumpacketsizeof1000bytes,atokenbucketrateof10millionbytes/sec,atokenbucketsizeof1millionbytes,andamaximumtransmissionrateof50millionbytes/sec.Howlongcanaburstatmaximumspeedlast?第56页共56页 答:令最大突发时间长度为?t秒,在极端情况下,漏桶在突发期间的开始是充满的(1MB),在突发期间另有10?tMB进入桶内。在传输突发期间的输出包含50?tMB。由等式1+10?t=50?t,得到?t=1/40s,即25ms。因此,以最大速率突发传送可维持25ms的时间。5-31Considertheuserofdifferentiatedserviceswithexpeditedforwarding.Isthereaguaranteethatexpeditedpacketsexperienceashorterdelaythanregularpackets?Whyorwhynot?不能保证。如果过多报文被加快,它们的通道性能可能比常规通道更差。5-32Isfragmentationneededinconcatenatedvirtual-circuitinternetsoronlyindatagramsystems?答:在这两种情况下都需要分割功能。即使在一个串接的虚电路网络中,沿通路的某些网络可能接受1024字节分组,而另一些网络可能仅接受48字节分组,分割功能仍然是需要的。5-34SupposethathostAisconnectedtoarouterR1,R1isconnectedtoanotherrouter,R2,andR2isconnectedtohostB.SupposethataTCPmessagethatcontains900bytesofdataand20bytesofTCPheaderispassedtotheIPcodeathostAfordeliverytoB.ShowtheTotallength,Identification,DF,MF,andFragmentoffsetfieldsoftheIPheaderineachpackettransmittedoverthethreelinks.AssumethatlinkA-R1cansupportamaximumframesizeof1024bytesincludinga14-byteframeheader,linkR1-R2cansupportamaximumframesizeof512bytes,includingan8-byteframeheader,andlinkR2-Bcansupportamaximumframesizeof512bytesincludinga12-byteframeheader.开头的IP数据报会在I1被拆分成两个IP数据包,不会出现其他的拆分。???链路A-R1:Length=940;ID=x;DF=0;MF=0;Offset=0链路LinkR1-R2:(1)Length=500;ID=x;DF=0;MF=1;Offset=0第56页共56页 (2)Length=460;ID=x;DF=0;MF=0;Offset=60链路R2-B:(1)Length=500;ID=x;DF=0;MF=1;Offset=0(2)Length=460;ID=x;DF=0;MF=0;Offset=60第56页共56页 第6章传输层6-1InourexampletransportprimitivesofFig.6-2,LISTENisablockingcall.Isthisstrictlynecessary?Ifnot,explainhowanonblockingprimitivecouldbeused.Whatadvantagewouldthishaveovertheschemedescribedinthetext?答:不是。事实上,LISTEN调用可以表明建立新连接的意愿,但不封锁。当有了建立连接的尝试时,调用程序可以被提供一个信号。然后,它执行,比如说,OK或REJECT来接受或拒绝连接。然而,在原先的封锁性方案中,就缺乏这种灵活性。6-2InthemodelunderlyingFig.6-4,itisassumedthatpacketsmaybelostbythenetworklayerandthusmustbeindividuallyacknowledged.Supposethatthenetworklayeris100percentreliableandneverlosespackets.Whatchanges,ifany,areneededtoFig.6-4?第56页共56页 答:从“被动连接建立在进行中”到“已建立”的虚线不再依确认的传输情况而定。该变迁可立即发生。实质上,“被动连接建立在进行中”状态已经消失,因为它们什么时候都不可见。6-4Supposethattheclock-drivenschemeforgeneratinginitialsequencenumbersisusedwitha15-bitwideclockcounter.Theclockticksonceevery100msec,andthemaximumpacketlifetimeis60sec.Howoftenneedresynchronizationtakeplace(a)intheworstcase?(b)whenthedataconsumes240sequencenumbers/min?答:在具体解答这个问题之前,需要先熟悉一下时钟驱动方案的内容。首先我们引入参数T,假定在发送出一个分组之后等待长度等于T的时间,我们就可以肯定,所有关于该分组的踪迹都已消失,不管是该分组本身,还是对于它的确认都不会再以外的出现。我们还假定,每个主机都配有一个表示一天的时间的时钟,不同主机上的时钟不必同步。每个时钟都采用二进制计数器的形式,并且以长度一致的间隔时间递增。而且,计数器的比特数必须等于或超过序列号所使用的比特数。最后一点,时钟被假定是连续运行,即使主机关闭时也不间断。时钟驱动方案的基本思想是同一时间不会有两个活动的TPDUs使用相同的序列号。在一条连接建立的时候,时钟的低端k个比特被用作初始序列号(也是k位)。因此,每条连接可以从不同的序列号开始为TPDU编号。序列号空间应该足够大,使得当编号循环一周时,具有相同号码的旧的TPDU已经不复存在。当主机系统崩溃时会产生一些问题。在重新启动后,主机的传输层实体不知道它曾经处在序列号空间的什么位置。一种解决方法是要求传输实体在恢复后的T秒内处于空闲状态,让所有老的TPDUs都消失。然而,在一个复杂的互联网上,T值可能很大,所以这不是一个好的解决方法。为了避免从崩溃恢复后的T秒不工作状态,需要对序列号的使用施加新的限制。在一些编号可能被用作初始序列号之前,必须在长度为T的时间内禁止使用这些编号。在任何连接上发送TPDU之前,传输层实体必须读一次时钟,检查该TPDU的编号是否在禁止区内。显然,在任何连接上的最大数据率是每个时钟滴答发送一个TPDU第56页共56页 。在系统崩溃后重启动时,在打开一条新的连接之前,传输实体必须等待到下一个时钟滴答,以避免同样的号码重复使用。如果数据速率低于始终速率,实际使用的序列号对于时间的曲线将最终从左边进入禁止区。如果这样的情况发生了,要么延迟TPDU达T长度时间,或者重新同步序列号。作为例子,如果在坐标起点发1号TPDU,到接近时钟大循环编码的末尾才发送第2个TPDU,此时为避免在下一大循环开始重复使用序列号,就需要在大循环接近末尾处重新同步,使用大的初始序列号,以避免使用禁止区号码。(a)时钟大循环周期是215,即32768滴答,每滴答100ms,即0.1秒,所以大循环周期是3276.8s。假定数据产生速率非常低(接近零),那么发送方在3276.8-60=3271.8秒时进入禁止区,需要进行一次重新同步。(b)每分钟使用240个序列号,即每秒使用4个号码,如果时间以t表示(以秒为单位),那么实际的序列号是4t。当接近大循环的末尾时以及在下一大循环的开始阶段,4t有一定的大小,位于禁止区的上方,现在由于每秒钟10个滴答,禁止区的左边是10(t-3216.8)。令4t=10(t-3216.8),得t=5316.3秒。即当t=5316.3时,开始进入禁止区,因此当t=5316.3时需要进行一次重新同步。6-5Whydoesthemaximumpacketlifetime,T,havetobelargeenoughtoensurethatnotonlythepacketbutalsoitsacknowledgementshavevanished?答:首先看三次握手过程是如何解决延迟的重复到达的分组所引起的问题的。第56页共56页 正常情况下,当主机1发出连接请求时,主机1选择一个序号x,并向主机2发送一个包含该序号的请求TPDU;接着,主机2回应一个接受连接的TPDU,确认x,并声明自己所选用的初始序列号y;最后,主机1在其发送的第一个数据TPDU中确认主机2所选择的初始序列号。当出现延迟的重复的控制TPDU时,一个TPDU是来自于一个已经释放的连接的延迟重复的连接请求(CONNECTIONREQUEST),该TPDU在主机1毫不知情的情况下到达主机2。主机2通过向主机1发送一个接受连接的TPDU(CONNECTIONACCEPTED)来响应该TPDU,而该接受连接的TPDU的真正目的是证实主机1确实试图建立一个新的连接。在这一点上,关键在于主机2建议使用y作为从主机2到主机1交通的初始序列号,从而说明已经不存在包含序列号为y的TPDU,也不存在对y的应答分组。当第二个延迟的TPDU到达主机2时,z被确认而不是y被确认的事实告诉主机2这是一个旧的重复的TPDU,因此废止该连接过程。在这里。三次握手协议是成功的。最坏的情况是延迟的“连接请求”和对“连接被接收”的确认应答都在网络上存活。可以设想,当第2个重复分组到达时,如果在网上还存在一个老的对序列号为y的分组的确认应答,显然会破坏三次握手协议的正常工作,故障性的产生一条没有人真正需要的连接,从而导致灾难性的后果。6-6Imaginethatatwo-wayhandshakeratherthanathree-wayhandshakewereusedtosetupconnections.Inotherwords,thethirdmessagewasnotrequired.Aredeadlocksnowpossible?Giveanexampleorshowthatnoneexist.答:我们知道,3次握手完成两个重要功能,既要双方做好发送数据的准备工作(双方都知道彼此已准备好),也要允许双方就初始序列号进行协商,这个序列号在握手过程中被发送与确认。现在把三次握手改成仅需要两次握手,死锁是可能发生的。作为例子。考虑计算机A和B之间的通信。假定B给A发送一个连接请求分组,A收到了这个分组,并发送了确认应答分组。按照两次握手的协定,A认为连接已经成功的建立了,可以开始发送数据分组。可是,B在A的应答分组在传输中被丢失的情况下,将不知道A是否已经准备好,不知道A第56页共56页 建议什么样的序列号用于A到B的交通,也不知道A是否同意A所建议的用于B到A交通的初始序列号,B甚至怀疑A是否收到自己的连接请求分组。在这种情况下,B认为连接还未建立成功,将忽略A发来的任何数据分组,只等待接收连接确认应答分组。而A在发出的分组超时后,重复发送同样的分组。这样就形成了死锁。6-7Imagineageneralizedn-armyproblem,inwhichtheagreementofanytwoofthebluearmiesissufficientforvictory.Doesaprotocolexistthatallowsbluetowin?答:(a)参见教材。(b)不存在。对于多于两支部队的情况,问题在实质上是同样的。6-8Considertheproblemofrecoveringfromhostcrashes(i.e.,Fig.6-18).Iftheintervalbetweenwritingandsendinganacknowledgement,orviceversa,canbemaderelativelysmall,whatarethetwobestsender-receiverstrategiesforminimizingthechanceofaprotocolfailure?第56页共56页 答:在解答本题前,让我们先考察主机从崩溃恢复所带来的问题。我们总是希望,在服务器崩溃随后又很快重新引导的情况下,客户机能够继续工作。为了说明这一问题的难度,我们假定一个客户主机发送一个长文件给另一个服务器主机,并且使用简单的停-等协议。在服务器上的传输层只是简单的把接收到的TPDU一个一个的递交给传输用户。假定在文件传输的过程中,服务器崩溃了。当服务器恢复的时候,它的表被重新初始化,因此再也不知道崩溃前文件传送到什么地方了。在试图恢复先前状态的过程中,服务器可能发送一个广播到所有其他主机,宣布自己刚刚发生了一次崩溃,请求客户告知所有打开的连接的状态。此时。每个客户机都可能处于二中选一的状态:有一个悬而未决的TPDU的S1状态,或者没有未确认应到的TPDU的S0状态。可以想到的一种解决方案是基于这一状态信息,客户机决定是否要重复发最近的一个TPDU。乍看起来,这一解决方案似乎能解决问题,可是深入仔细的分析一下,困难仍然很大。作为示例,假定服务器的传输层实体先发送ACK,在ACK被发出之后,再执行把收到的TPDU写到应用进程的操作。把TPDU写到输出设备和发送ACK是两个不同的事件,不能同时进行。如果服务器主机的崩溃刚好发生在应答被发送之后,并且是在写操作之前,那么客户机将接收到确认应答,当崩溃恢复到达时会处于状态S0。因此,客户机不会重传TPDU,错误的认为服务器成功的接收到并存放好了它最后一次发送的TPDU。实际的情况并非如此,从而结果是丢失了最后一个TPDU。到此,你也许认为:“这个问题容易解决,只要你重新编写程序,让传输实体先执行写操作然后再发送ACK就可以了。”可是,写操作尽管成功了,但崩溃可能发生在发送出ACK之前。此时客户机将会处于状态S1,因而重新发送,导致对服务器的应用进程的输出中产生未检测到的重复TPDU。如图6-18所示,服务器可以选择两种方式中的一种:先确认应答,或者先执行写操作。客户机可以选择4种方式中的一种:总是重传最后一个TPDU,永不重传最后一个TPDU,仅在S0状态时重传,或者仅在S1状态时重传。这样就存在8种可能的组合,但可以看出,对于每一种组合,都有一些事件会使协议的运行失败。在服务器方可能发生3种事件:发送一个ACK(A),对输出进程的写操作(W)和系统崩溃(C)。3种事件可能以6种不同的次序发生:AC(W),AWC,C(AW),C(WA),WAC第56页共56页 和WC(A),这里的圆括号表示,在系统崩溃C后,A和W事件就不可能了。图6-18示出了客户机和服务器的策略的所有8种组合,以及对于每一种组合的有效事件序列。值得注意的是,对于每一种策略都存在某些事件会引起协议失败。例如,如果客户机选择总是重发送,AWC事件将产生检测不出来的收到重复分组的错误。尽管对于C(AW)和C(WA)该协议都工作的很好。本题的答案。如果AW或WA间隔时间很短,事件AC(W)和W(CA)就不太可能发生。此时最好发送方策略是,如果崩溃恢复时处于状态S1,应该重传最后一个TPDU,接收方采用顺序AW或WA则无关紧要。6-9Aredeadlockspossiblewiththetransportentitydescribedinthetext(Fig.6-20)?Figure6-20.Anexampletransportentity.第56页共56页 第56页共56页 第56页共56页 IDLE—Connectionnotestablishedyet.WAITING—CONNECThasbeenexecutedandCALLREQUESTsent.QUEUED—ACALLREQUESThasarrived;noLISTENyet.ESTABLISHED—Theconnectionhasbeenestablished.第56页共56页 SENDING—Theuseriswaitingforpermissiontosendapacket.RECEIVING—ARECEIVEhasbeendone.DISCONNECTING—ADISCONNECThasbeendonelocally.答:该传输实体有可能死锁。当双方同时执行RECEIVE时就会进入死锁状态。6-10Outofcuriosity,theimplementerofthetransportentityofFig.6-20hasdecidedtoputcountersinsidethesleepproceduretocollectstatisticsabouttheconnarray.Amongthesearethenumberofconnectionsineachofthesevenpossiblestates,ni(i=1,...,7).AfterwritingamassiveFORTRANprogramtoanalyzethedata,ourimplementerdiscoversthattherelationSni=MAX_CONNappearstoalwaysbetrue.Arethereanyotherinvariantsinvolvingonlythesesevenvariables?答:有,n2++n3+n6++n7=1因为状态listening(n2)、waiting(n3)、sending(n6)和receiving(n7)都意味着用户被封锁,因此当处在其中的一个状态时,就不可能是在另一个状态。6-11WhathappenswhentheuserofthetransportentitygiveninFig.6-20sendsazero-lengthmessage?Discussthesignificanceofyouranswer.答:长度为零的报文被另一边接收。这种报文的发送可以被用来表示文件结束的信号。6-12ForeacheventthatcanpotentiallyoccurinthetransportentityofFig.6-20,tellwhetheritislegalwhentheuserissleepinginsendingstate.答:因为文件处于封锁状态,所有的传输层原语都不可能执行。因此,仅分组到达事件是可能的,而且还不是所有的到达事件。事实上,仅仅跟呼叫请求、清除请求、数据分组和信用量分组这几个分组到达有关的事件是合法的。第56页共56页 6-13Discusstheadvantagesanddisadvantagesofcreditsversusslidingwindowprotocols.答:滑动窗口协议比较简单,仅需要管理窗口边缘一组参数,而且,对于到达顺序有错的TPDU不会引起窗口增加和减少方面的问题。然而,信用量方案比较灵活,允许独立于确认,动态的管理缓冲区。6-14WhydoesUDPexist?WoulditnothavebeenenoughtojustletuserprocessessendrawIPpackets?答:仅仅使用IP分组还不够。IP分组包含IP地址,该地址指定一个目的地机器。一旦这样的分组到达了目的地机器,网络控制程序如何知道该把它交给哪个进程呢?UDP分组包含一个目的地端口,这一信息是必须的,因为有了它,分组才能够被投递给正确的进程。6-15Considerasimpleapplication-levelprotocolbuiltontopofUDPthatallowsaclienttoretrieveafilefromaremoteserverresidingatawell-knownaddress.Theclientfirstsendsarequestwithfilename,andtheserverrespondswithasequenceofdatapacketscontainingdifferentpartsoftherequestedfile.Toensurereliabilityandsequenceddelivery,clientandserveruseastop-and-waitprotocol.Ignoringtheobviousperformanceissue,doyouseeaproblemwiththisprotocol?Thinkcarefullyaboutthepossibilityofprocessescrashing.客户有可能得到错误的文件。假设客户A发送了一个对于文件f1的请求,然后就崩溃了。另一个客户B接着使用相同的协议请求另一个文件f2。假设客户B运行在与A相同的机器上(具有相同的IP地址),把它的UDP套接字连接到与A先前用过的相同的端口上。此外,假设B的请求丢失了,当服务器的应答(对A的请求)到达时,客户B将接收并猜想着是给它自己的应答。6-18BothUDPandTCPuseportnumberstoidentifythedestinationentitywhendeliveringamessage.GivetworeasonsforwhytheseprotocolsinventedanewabstractID(portnumbers),insteadofusingprocessIDs,whichalreadyexistedwhentheseprotocolsweredesigned.第56页共56页 有三个原因。第一,进程ID是OS特定的,使用进程ID将使得协议OS依赖;第二,一个单一的进程可能建立多个通信通道,单一的进程ID(每个进程)作为目的标识符不能被用来区别这些通道;第三,进程很容易监听众所周知的端口,但众所周知的进程ID是不可能的。6-19WhatisthetotalsizeoftheminimumTCPMTU,includingTCPandIPoverheadbutnotincludingdatalinklayeroverhead?默认的分段是536bytes。TCP增加20bytes,IP也是如此,造成默认合计576bytes。6-20DatagramfragmentationandreassemblyarehandledbyIPandareinvisibletoTCP.DoesthismeanthatTCPdoesnothavetoworryaboutdataarrivinginthewrongorder?答:尽管到达的每个数据报都是完整的,但可能到达的数据报的顺序是错误的,因此,TCP必须准备适当的重组报文的各个部分。6-23Aprocessonhost1hasbeenassignedportp,andaprocessonhost2hasbeenassignedportq.IsitpossiblefortheretobetwoormoreTCPconnectionsbetweenthesetwoportsatthesametime?答:不可以。一条连接仅仅用它的套接口标识。因此,(1,p)-(2,q)是在这两个端口之间唯一可能的连接。第56页共56页 第7章应用层7-1Manybusinesscomputershavethreedistinctandworldwideuniqueidentifiers.Whatarethey?它们是DNS名称,IP地址,以太网地址。7-2AccordingtotheinformationgiveninFig.7-3,islittle-sister.cs.vu.nlonaclassA,B,orCnetwork?它的IP地址以130开始,所以它在一个B级网络上。第56页共56页 7-5DNSusesUDPinsteadofTCP.IfaDNSpacketislost,thereisnoautomaticrecovery.Doesthiscauseaproblem,andifso,howisitsolved?DNS是幂等的,操作可以被重复而不会导致损害。当一个进程发起DNS请求时,它启动一个定时器。当定时器终止时,它仅仅再次发起请求。没有损害会发生。7-6Inadditiontobeingsubjecttoloss,UDPpacketshaveamaximumlength,potentiallyaslowas576bytes.WhathappenswhenaDNSnametobelookedupexceedsthislength?Canitbesentintwopackets?这问题不会发生。DNS名字必须短于256bytes。标准要求如此,因此所有的DNS名称都能适合一个单一的最小长度报文。.7-7CanamachinewithasingleDNSnamehavemultipleIPaddresses?Howcouldthisoccur?使得,事实上,在图7-3(7.2题),我们能看到一个多重IP地址的例子。记住,IP地址由网络号和主机号组成。如果一台机器有两个以太网卡,它可以处于两个单独的网络上,假如这样的话,它需要两个IP地址。7-8CanacomputerhavetwoDNSnamesthatfallindifferenttop-leveldomains?Ifso,giveaplausibleexample.Ifnot,explainwhynot.有可能,www.large-bank.com和www.large-bank.ny.us可能拥有相同的IP地址。因此,一个com域下的项目和一个国家域下的项目无疑是可能的(而且常见)。7-9ThenumberofcompanieswithaWebsitehasgrownexplosivelyinrecentyears.Asaresult,thousandsofcompaniesareregisteredinthecomdomain,causingaheavyloadonthetop-levelserverforthisdomain.Suggestawaytoalleviatethisproblemwithoutchangingthenamingscheme(i.e.,withoutintroducingnewtop-leveldomainnames).Itispermittedthatyoursolutionrequireschangestotheclientcode.第56页共56页 显然有许多方法。一种是把顶级服务器转为服务器外包;另一种是有26台分开的服务器,一台用于以a开头的名称,一台用于b,等等。在引入新服务器后的某些时间周期(比方说3年),旧的服务器仍能继续运行以向人们提供一个适用他们软件的机会。7-10Somee-mailsystemssupportaheaderfieldContentReturn:.Itspecifieswhetherthebodyofamessageistobereturnedintheeventofnondelivery.Doesthisfieldbelongtotheenvelopeortotheheader?它属于信封,因为分发系统需要知道它的值,用来处理无法递送的电子邮件。7-11Electronicmailsystemsneeddirectoriessopeople"se-mailaddressescanbelookedup.Tobuildsuchdirectories,namesshouldbebrokenupintostandardcomponents(e.g.,firstname,lastname)tomakesearchingpossible.Discusssomeproblemsthatmustbesolvedforaworldwidestandardtobeacceptable.这远比你能想到的要复杂。以开始而言,全世界一半人先写名字,而后写姓氏。另外一半人(例如中国)则不同。命名系统将不得不辨别任意数量的特定名字,加上姓氏,尽管后者可能具有若干部分,例如JohnvonNeumann。接着有些人有一个中间首字母,但没有中间名。各种各样的称谓,例如Mr.,Miss,Mrs.,Ms.,Dr.,Prof.,或Lord,可以作为名字的前缀称谓。人们来自不同世代,于是Jr.,Sr.,III,IV等等不得不也被包括进来。一些人在名字中使用他们的学术头衔,所以我们需要B.A.,B.Sc.,M.A.,M.Sc.,Ph.D,以及其它学位。最后,有些人在名字中列入了奖励和荣誉。例如,英格兰队皇家协会的会员可能加上FRS。现在我们能够接受学者的名字:Prof.Dr.AbigailBarbaraCynthiaDorisE.deVriesIII,Ph.D.,FRS7-26AmultithreadedWebserverisorganizedasshowninFig.7-21.Ittakes500µsectoacceptarequestandcheckthecache.Halfthetimethefileisfoundinthecacheandreturnedimmediately.Theotherhalfofthetimethemodulehastoblockfor9msecwhileitsdiskrequestisqueuedandprocessed.HowmanymodulesshouldtheserverhavetokeeptheCPUbusyallthetime(assumingthediskisnotabottleneck)?第56页共56页 如果一个模块得到两个请求,平均一个缓存命中一个缓存缺失。总的CPU时间消耗是1msec,总的等待时间是9msec。这得出一个10%的CPU利用率。所以10个模块能使得CPU保持忙碌。7-27ThestandardhttpURLassumesthattheWebserverislisteningonport80.However,itispossibleforaWebservertolistentosomeotherport.DeviseareasonablesyntaxforaURLaccessingafileonanonstandardport.正式的Internet标准(草案)RFC1738方法是http://dns-name:port/file.7-28Althoughitwasnotmentionedinthetext,analternativeformforaURListousetheIPaddressinsteadofitsDNSname.AnexampleofusinganIPaddressishttp://192.31.231.66/index.html.HowdoesthebrowserknowwhetherthenamefollowingtheschemeisaDNSnameoranIPaddress?DNS名称不会以数字终止,所以不会有歧义。第56页共56页'