配色: 字号:
问题4-28~34
2013-01-27 | 阅:  转:  |  分享 
  
(问题4-28:IP数据报的最大长度是多少个字节?

答:64K(1K=210)字节,因为其首部的总长度字段只有16位长。但实际上最多只能表示65535字节而不是65536字节,因为在二进制中的16个1表示十进制的(216–1)。

(问题4-29:IP数据报的首部的最大长度是多少个字节?典型的IP数据报首部是多长?

答:IP数据报首部中有一个首部长度字段,4位长,可表示的最大十进制数字是15。因此首部长度的最大值是15个4字节长的字,即60字节。

典型的IP数据报不使用首部中的选项,因此典型的IP数据报首部长度是20字节。

(问题4-30:IP数据报在传输的过程中,其首部长度是否会发生变化?

答:不会。但首部中的某些字段(如标志、生存时间、检验和等)的数值一般都要发生变化。

(问题4-31:当路由器利用IP数据报首部中的“首部检验和”字段检测出在传输过程中出现了差错时,就简单地将其丢弃。为什么不发送一个ICMP报文给源主机呢?

答:IP协议并不要求源主机重传有差错的IP数据报。保证无差错传输是由TCP协议完成的。另一方面,首部检验和只能检验出IP数据报的首部出现了差错,但不知道首部中的源地址字段有没有出错。如果源地址出现了差错,那么将这种IP数据报传送到错误的地址也是没有任何意义的。

(问题4-32:RIP协议的好处是简单,但缺点是不够稳定。有的书上介绍“触发更新”、“水平分割”和“毒性逆转”。能否简单介绍一下它们的要点?

答:(1)触发更新

若网络中没有变化,则按通常的30秒间隔发送更新信息。但若有变化,路由器就立即发送其新的路由表。这个过程叫做触发更新。

触发更新可提高稳定性。每一个路由器在收到有变化的更新信息时就立即发出新的信息,这比平均的15秒要少得多。虽然触发更新可大大地改进路由选择,但它不能解决所有的路由选择问题。例如,用这种方法不能处理路由器出故障的问题。

(2)水平分割

水平分割(splithorizons)是提高稳定性的第二种方法,它在发送路由选择报文时使用了选择性;路由器必须区分不同的接口。如果路由器从一个接口已经收到了路由更新信息,那么这个同样的更新信息一定不能再通过这个接口回送过去。如果一个接口通过了给一个路由器更新的信息,那么这个更新信息一定不能再发送回去;因为这是已经知道了的信息,因而是不需要的。水平分割可明显地提高稳定性。下图就能说明问题。



R1发送[Net1,1,(]给R2,表明“我到Net1的距离是1,直接交付”。R2从这个RIP报文进来的端口不再发送关于到Net1的信息,而只从另外的端口发送[Net1,2,R1],表明“我到Net1的距离是2,经过R1”。当Net1出故障后,R1发送[Net1,16,(]给R2表明“我到Net1的距离是16,直接交付”(距离是16就表示不能到达)。R2从另外的端口发送[Net1,16,R1],表明“我到Net1的距离是16,经过R1”。这样就使其他路由器很快都知道Net1出了故障。

(3)毒性逆转

毒性逆转(poisonreverse)是水平分割的一种变型。使用这种方法时,路由器收到的信息用来更新路由表,然后通过所有的接口发送出去。但是,已经从一个接口来的一个路由表项目在通过同样的接口发送出去时,就要将其度量置为16。

(问题4-33:IP数据报必须考虑最大传送单元MTU(MaximumTransferUnit)。这是指哪一层的最大传送单元?包括不包括首部或尾部等开销在内?

答:这是指IP层下面的数据链路层的最大传送单元,也就是下面的MAC帧的数据字段,不包括MAC帧的首部和尾部的各字段。因为IP数据报是装入到MAC帧中的数据字段,因此数据链路层的MTU数值就是IP数据报所容许的最大长度(是总长度,即首部加上数据字段)。

(问题4-34:如果一个路由器要同时连接在一个以太网和一个ATM网络上,需要有什么样的硬件加到路由器上?

答:一个以太网适配器(网卡)和一个ATM适配器(网卡)。

(问题4-35:教材中的图4-19的B类网络145.13.0.0在划分子网时,所给出的三个子网号是怎样得出的?

答:本题假定子网号subnet-id占用8位。可见子网掩码是255.255.255.0。IP地址中的最后8位就留作主机号。假定我们不使用全0和全1的子网号,那么一共有254个子网号可供选择。书中的例子是随意选择了3,7和21作为三个子网号。于是这三个子网的地址就是:

145.13.3.0

145.13.7.0

145.13.21.0

(问题4-36:“交换(switching)”的准确含义是什么?

答:这个名词并没有统一的精确定义。

根据[COME04](ComputerNetworksandInternetswithInternetApplications,4ed,2004)第676页:

SwitchingAgeneraltermusedtodescribetheoperationofaswitch.Becauseitisassociatedwithhardware,switchingisusuallyhigherspeedthanrouting.Also,switchingdiffersfromroutingbecauseswitchingusesthehardwareaddressinaframe.

SwitchAnelectronicdevicethatformsthecenterofastartopologynetwork.Aswitchusesthedestinationaddressinaframetodeterminewhichcomputershouldreceivetheframe.

英文字switch本来是“开关”的意思。当switch最初用在电话系统中时就译成了“交换机”,而表示动作的switching就译为“交换”。因此电话系统使用的交换体制就称为“电路交换”。

在Perlman的[PERL00]一书中的第531页也有类似的解释:

SwitchAnythingthatmovesdata.Somehowthetermisappliedtoimplythatthedeviceisfastandcheap.Canbeabridge(layer2switch)orrouter(layer3switch),orsometimesusedforsomethingthatmovesATMcells.

可以看出,Perlman对switch的定义就比Comer的定义更广泛一些,因为switch在某些情况下还可以表示一个网桥或路由器,同时也不局限于用在星形网络中。

现在需要注意的是,关于Packetswitching这一名词中的switching。大家知道,Packetswitching的标准译名是“分组交换”。这里的“交换”完全是为了和电路交换的“交换”相对应。我们知道,分组交换就是对分组进行存储转发,而转发又是根据路由器中的转发表,是通过计算机软件来查找下一跳应当转发到哪一个结点去。因此分组交换的“交换”并没有“使用硬件地址”或“比路由选择更快”的含义,而只是一般地表示“可以将数据从一个地方移动到另一个地方”。

问题4-37:为什么生存时间TTL原来用秒作为单位而现在TTL却表示数据报在网络中所能通过的路由器数的最大值?

答:最初TTL是用秒作为单位,表示一个数据报在网络中的最长生存时间。TTL可用来防止数据报无限期地在网络中兜圈子(这样会浪费网络的资源)。例如,把数据报的TTL初始值设置为70秒,就表示在该数据报进入网络后只要经过了70秒就要把它丢弃,哪怕它就快要到达目的站了。

但后来发现这样做很不方便(各个没有时钟同步关系的路由器都要计算通过它的数据报在网络中的逗留时间)。于是就改用另一种方法,就是让TTL表示数据报在网络中所能够通过的路由器数的最大值。例如,把数据报的TTL初始值设置为60,就表示:若该数据报在经过60个路由器后还没有到达目的站,则最后到达的那个路由器就立即把这个数据报丢弃,使它不再占用网络的资源。现在路由器在转发数据报时,应把数据报首部中的TTL值减1。若TTL值减为零,就把它丢弃。因此,现在的TTL表示数据报在网络传送过程中的最大跳数。



Net1Net2Net3R1R2Net1,1,?①②Net1Net2Net3R1R2Net1,16,?Net1,16,R1③④Net1正常Net1出故障Net1,2,R1
献花(0)
+1
(本文系liyi039首藏)