ME2010高级计算机网络ME2010第4章习题参考答案2010.-11数据报与虚电路4.1试比较数据报网络和虚电路网络的转发表:在数据报网络中的基本转发表有两列,这些列中的值的涵义分别是什么?在虚电路网络中的基本转发表有4列,这些列中的值的涵义是什么?[解答]数据报转发表的两列分别是:目的地的地址和出去的接口。虚电路VC转发表的各列分别是:进入的接口、进入的VC号、出去的接口和出去的VC号。4.2考虑一个虚电路网络:(1)如果其VC号是一个16比特的字段,链路能承载的虚电路的最大数量是多少?(2)某个中心节点在连接建立时确定了路径和VC号,假定沿着某条虚电路的路径在每段链路上都使用了相同的VC号。请你描述在建立连接时该中心节点确定VC号的可能方式。请回答是否可能出现如下的情况:即进行中的虚电路有着比问题(1)中确定的最大值要小,而仍然不相同的未用过的VC号?(3)假定沿着某条虚电路允许使用不同的VC号,请你描述:在连接建立期间,在端到端路径确定之后,采用分散方式并且不依赖于中心节点,链路是怎样地去选择它们的VC号并配置它们的转发表的。[解答](1)在一条链路上VC的最大数量是216=65536。(2)该中心节点可以选取任一VC号(取自集合{0,1,2,….,216-1})。以这种方式,不可能存在有比65536更小的进行中的VC号(即不会存在任一公共的空闲的VC号)。(3)链路中的每一条可以独立地从集合{0,1,2,….,216-1}中分配VC号。因此,一条VC沿着其路径多半会采用不同的VC号用于每一链路,在VC路径中的每一路由器必须采用输出链路相连的VC号去替换每一到达的分组的VC号。路由器内部结构4.3,请简要说明路由器的输出端口的工作原理和引起排队的主要原因。[解答]排队交换结构→队列缓冲管理→数据链路处理→队列出口端接→传输链路路由器的一个输出端口的工作原理图[1]当datagrams从fabric到达的速率快于链路的transmissionrate时,要求排队缓冲。[2]输出端口采用调度规则在队列中选出相应的datagrams传输。也可以举例画出争用输出端口的示例图表明:bufferingwhenarrivalrateviaswitchexceedsoutputlinespeed;queueing(delay)andlossduetooutputportbufferoverflow。IP协议和IP地址4.4假定源主机A与目的地主机B之间的数据报的大小被限制为1500字节(包括首部)。如果IP首部是20个字节,要发送一个由400万字节组成的MP3文件需要用多少个数据报?最后一个数据报大小是多少?(提示:数据先应装入首部为20字节的TCP报文段内)。[解答]MP3文件的大小是4×106字节,TCP报文段首部20字节,IP数据报首部也是20字节,因此,每一IP数据报可装有MP3文件中的数据1500-40=1460字节。要求有数据报分片数为4×106/1460向上取整=2740个;除了最后一个数据报分片外,每个数据报大小都是1500字节,最后一个数据报分片是1060+40=1100字节,数据包中的偏移量Offset则是185的倍数。4.5某链路数据单元MTU的大小是500字节,现在需要向该链路发送一个3000字节的报文段,假定初始的数据报标识号为422,这将会产生出多少个数据报?请描述这些数据报的主要参数特征(长度、偏移量Offset和FLAG等)。[解答]因为IP数据报的首部有20字节,在每一数据报分片中数据段大小是500-20=480字节。因此需要有(3000-20)/480向上取整=7个数据报。每个数据报都有标识422,除了最后一个数据报分片外,每个数据报分片的大小是500字节(包括IP首部);最后一个分片的大小是120字节(包括首部);[(3000-20)-6个分片×480=100;100+20=120字节]。7个分片的偏移量Offset分别是:0、60、120、180、240、300和360;[数据部分的480字节÷8=60]。头6个分片中的FLAG=1;最后一个分片中的FLAG=0。4.6,请按照分类IP网络的标准判别具有以下的IP地址的主机分别属于何类网络?为什么?该类网络内最多允许有多少台主机?(1)198.215.16.27;(2)97.220.186.54;(3)136.123.46.243。[解答](1)192198224,属C类网络,C类网络内最多有28-2=254台主机。(2)197128,属A类网络,A类网络内最多有224-2台主机。(3)128136192,属于B类网络,B类网络内最多有216-2=65534台主机。4.7,给定某单位一个B类地址135.86.0.0,如果希望使其最大的一个子网能有2000台主机;那么在划分子网时,允许能划分有多少个子网?这个B类网络总共能有多少台主机?请你确定此时的子网屏蔽码。还请你指出子网的屏蔽码(也称为掩码)有什么作用?[解答]210-22000211-2=2046;说明子网内的主机号需要有11位,[1]在B类网络中,子网号位数=16-子网内主机号的位数=16-11=5;子网最多有25=32个。如果需要按使用习惯去除全零或全1时,也可认为有32-2=30个或31个。[2]这个B类网络的主机总数最多可有32×2046=65472台[或是30×2046=61380台]。[3]此时的子网屏蔽码应是子网内的主机号(低位共11位)为全0,其它所有高位(共21位)为全1;即是255.255.248.0。[4]子网屏蔽码给出了网络号和子网号的有效位数,网关(路由器)和主机都能由此获悉子网的组成,子网内主机的台数和主机号的位数,子网内的直接广播地址。比如路由器把IP地址和子网屏蔽码作“与”运算,得到地址的网络部分(含子网号)。4.8,已知某访问主机的IP地址是143.170.132.154,子网屏蔽码是255.255.224.0,请推算出该主机属于何类网络?该网络中有多少个子网?该台主机的内部子网号与子网内部主机号是什么?请給出此子网的直接广播地址(即能广播到此子网内的所有主机)。[解答][1]127143192;这是一个B类地址。[2]从子网屏码中(224)十进制=(11100000)二进制;可知子网号3位,有6到8个子网。[3]此主机的B类网网络地址部份是145.170.0.0;该台主机的IP地址中(132)十进=(10000100)二进;由于子网号是3位;故内部子网号是100;子网内的主机号有(5+8)位=13位;主机号是“十进数(132)的二进制表示的后5位00100”加上“十进数(154)的二进位表示(10011010)的8位”。即子网内主机号是0010010011010。[4]此子网的直接广播地址是143.170.159.255[保持网络号子网号部分,使主机号部分为全1].4.9,CIDR地址192.168.10.0/20所产生的IP地址范围是什么?[解答]/20指出网络和子网的地址部分有20位,因此,该CIDR地址只能使用了第三字节的后四位来产生C类IP地址(第三字节的前四位是网络地址的一部份,已由“10”指定成0000):10进制第三字节的二进位192.168.10.0/2400001010192.168.11.0/2400001011192.168.12.0/2400001100192.168.13.0/2400001101192.168.14.0/2400001110192.168.15.0/2400001111因此,IP的地址范围应是:192.168.10.0~192.168.15.255。请注意:CIDR地址表示中严格给出了IP地址的“起始值”(本题是:192.168.10.0)。4.10考虑一个使用32比特主机地址的数据报网络。假定一台路由器有4条链路,编号为0到3,分组能被转发到链路接口,如下所列:目的地址的范围链路接口11100000000000000000000000000000到01110000011111111111111111111111111100001000000000000000000000000到11110000100000000111111111111111111100001000000010000000000000000到211100001111111111111111111111111其他3(1)请为其提供一个具有4项的转发表,使用最长前缀匹配,把分组转发到正确的炼路接口。(2)描述该转发表是如何为具有下列目的地址的3个数据报分别确定出适当的链路接口。110010001001000101010001010101011110000100000000110000110011110011100001100000000001000101110111(3)请使用a.b.c.d/x记号法取代二进位字符串记号法重写出该转发表。[解答](1)基于二进位字符串最长前缀匹配记号法的转发表目的地址的前缀匹配链路接口11100000011100001000000001111000012其他3(2)对第1地址11001000100100010101000101010101匹配第4项,链路接口3。对第2地址11100001000000001100001100111100是第2项,链路接口1。对第3地址11100001100000000001000101110111是第3项,链路接口2。(3)基于a.b.c.d/x记号法的转发表目的地址链路接口224/80225.0/161225/82其他34.11考虑使用8比特主机地址的数据报网络。假定一个路由器使用最长前缀匹配并具有下列转发表:前缀匹配接口101111112其他3对这4个接口的每一个,给出相关的目的地主机地址的范围和在该范围中的地址数量。[解答]目的地地址范围链路接口10000000到10111111(64地址)011000000到11011111(32地址)111100000到11111111(32地址)200000000到01111111(128地址)3路由算法和路由表4.12,下图中各结点A~J都是路由器,各条边是链路使用的代价(费用)。请按Dijkstra算法找出结点A到J的最短路径和代价。[可简化些解答]7CI41415源ADEGJ目的地2282418BFH43[解答]按Dijkstra算法找出结点A到J的最短路径和代价的基本方法小结如下:[1]首先在结点集合中列入出发结点(A),在该结点的直接相邻的各个结点的项目列中记入出发结点及相应的边上的费用代价。凡是不直接相邻的结点项目列中应记如《无穷大》记号。如下例所示:步骤结点集合D(B)P(B)D(C)P(C)D(D)P(D)D(E)P(E)D(F)P(F)D(G)P(G)HIJ0A8,A4,A∞∞∞∞∞∞∞[2]从刚才记入的一行中选出费用代价最小的对应结点(本例中是结点C,费用4最小),加入到结点集合中。[3]因为在《结点集合》中新加入了结点,根据这个新加入的结点(比如现在首先是C),在该新加入的结点的直接相邻的各个结点的项目列下(比如现在C的相邻结点是D、E和I)记入相应边的费用代价,比如有:步骤结点集合D(B)P(B)D(C)P(C)D(D)P(D)D(E)P(E)D(F)P(F)D(G)P(G)HIJ0A8,A4,A∞∞∞∞∞∞∞1AC8,A5,C8,C∞∞∞11,C∞特别注意:如果原来已有其它路径也到达相应结点时,要计算比较费用,应取最小费用的路径。比如在结点D加入《结点集合》时,改变了A到B的路径和A到E的路径,如下例:步骤结点集合D(B)P(B)D(C)P(C)D(D)P(D)D(E)P(E)D(F)P(F)D(G)P(G)HIJ0A8,A4,A∞∞∞∞∞∞∞1AC8,A5,C8,C∞∞∞11,C∞2ACD7,D7,D∞∞∞11,C∞[4]返回到步骤[2]继续进行,一直到获得了出发结点到目的