配色: 字号:
问题4-12~27
2013-01-27 | 阅:  转:  |  分享 
  
(问题4-12:IP地址中的前缀和后缀最大的不同是什么?

答:(1)前缀是由因特网管理机构进行分配的,而后缀是由分配到前缀的单位自行分配的。

(2)IP数据报的寻址是根据前缀来找目的网络,找到目的网络后再根据后缀找到目的主机。

(问题4-13:IP数据报中的数据部分的长度是可变的(即IP数据报不是定长的)。这样做有什么好处?

答:这样做的好处是可以满足这种应用的需要。有时在键盘键入的一个字符就可以构成一个很短的IP数据报。但有的应用程序需要将很长的文件构成一个大的IP数据报(最长为64K字节,包括首部在内)。当然,大多数IP数据报的数据部分的长度都远大于首部长度。这样做的好处是可以提高传输效率(首部开销所占的比重就较小)。

(问题4-14:IP地址中的各种类别的地址所拥有的地址数目的比例是怎样的?

答:IPv4的各种类别的地址所拥有的地址数目的比例如下图所示。



需要注意的是:尽管A类地址的总数等于4倍的C类地址数,但分配IP地址是分配地址前缀而不是分配整个32位的IP地址,因此C类地址可供分配的地址前缀数目要比A类地址可供分配的地址前缀数目的多一万多倍(建议读者自己计算一下)。

(问题4-15:在IP地址中,为什么使用最前面的一个或几个比特来表示地址的类别?

答:知道了IP地址的类别,就可以很快地将IP地址的前缀和后缀区分开来,这在路由器寻找下一跳地址时是必须做的一件事。

但是怎样才能尽快地让计算机完成这一动作呢?如果将IP地址大致按照一定的地址数目划分为几部分作为各类地址,那么计算机执行这样的操作将会花费较多的时间。我们知道,计算机进行比特操作(如左移、右移、布尔运算等)要比进行整数运算要快得多。因此,IP地址的类别划分就用地址中最前面的一位或几位来标志地址的类别。

(问题4-16:全1的IP地址是否是向整个因特网进行广播的一种地址?

答:不是。

设想一下,如果是向整个因特网进行广播的地址,那么一定会在因特网上产生极大的通信量,这样会严重地影响因特网的正常工作,甚至还会使因特网瘫痪。

因此,在IP地址中的全1地址表示仅在本网络上(就是你这个主机所连接的局域网)进行广播。这种广播叫做受限的广播(limitedbroadcast)。

如果net-id是具体的网络号,而host-id是全1,就叫做定向广播(directedbroadcast),因为这是对某一个具体的网络(即net-id指明的网络)上的所有主机进行广播的一种地址。

(问题4-17:IP协议有分片的功能,但广域网中的分组则不必分片。这是为什么?

答:IP数据报可能要经过许多个网络,而源主机事先并不知道数据报后面要经过的这些网络所能通过的分组的最大长度是多少。等到IP数据报转发到某个网络时可能才发现数据报太长了,因此在这时就必须进行分片。

但广域网能够通过的分组的最大长度是该广域网中所有主机都事先知道的。源主机不可能发送网络不支持的过长分组。因此广域网就没有必要将已经发送出的分组再进行分片。

(问题4-18:路由表中只给出到目的网络的下一跳路由器的IP地址,然后在下一个路由器的路由表中再给出再下一跳的路由器的IP地址,最后才能到达目的网络进行直接交付。采用这样的方法有什么好处?

答:这样做的最大好处就是使得路由选择成为动态的,十分灵活。当IP数据报传送到半途时,若网络的情况发生了变化(如网络拓扑变化或出现了拥塞),那么中途的路由器就可以改变其下一跳路由,从而实现了动态路由选择。

(问题4-19:链路层广播和IP广播有何区别?

答:链路层广播是用数据链路层协议(第二层)在一个以太网上实现的对该局域网上的所有主机的MAC帧进行广播。

IP广播则是用IP协议通过因特网实现的对一个网络(即目的网络)上的所有主机的IP数据报广播。

(问题4-20:主机在接收一个广播帧或多播帧时其CPU所要做的事情有何区别?

答:在接收广播帧时,主机通过其适配器(即网络接口卡NIC)接收每一个广播帧,然后将其传递给操作系统。CPU执行协议软件,并界定是否接受和处理该帧。

在接收多播帧时,CPU要对适配器进行配置,而适配器根据特定的多播地址表来接收帧。凡与此多播地址表不匹配的帧都将被NIC丢弃。因此在多播的情况下,是适配器NIC而不是CPU决定是否接收一个帧。

(问题4-21:有的路由器在和广域网相连时,在该路由器的广域网接口处并没有硬件地址,这怎样解释?

答:每一个连接到广域网的路由器显然必须要有一个硬件地址,否则就无法进行通信。但是具体的细节可能会有相当大的差别。例如,我们的电话机和墙上的电话线路RJ-11插孔一连接就可以打电话。这表明电话机一定有一个唯一的电话号码(即硬件地址)。但是,这个电话号码并没有存储在电话机的某个地方。有些广域网也采用类似这样的技术。也就是说,每一个连接都有一个唯一的硬件地址,但这个地址并不一定存储在路由器的接口上。

(问题4-22:IP地址和电话号码相比时有何异同之处?

答:相同之处:

(1)唯一性。

每个电话机的电话号码(指包括国家码以及区号在内的号码)在电信网上是唯一的。每个主机的IP地址在因特网上也是唯一的。

(2)分等级的结构。

电话号码:(国家号码)-(区号)-(局号)-(电话机号)。

IP地址:(网络号)-(主机号),或(网络号)-(子网号)-(主机号)。

不同之处:

各国的电话号码都是自主设置,因此号码的位数可以各不相同。但IP地址则一律是32bit的固定长度(这是IPv4的地址长度。若使用IPv6则地址长度为128bit)。因此电话号码空间是不受限的。当一个城市的电话号码空间不够用时,就可以增加电话号码的位数(例如6位不够用了就升级为7位,以后又不够用了就再升级为8位)。但IP地址空间是受限的,全部的IP地址用尽后就必须将IPv4升级到IPv6。

电话号码中的“国家号码”“区号”“局号”都能直接反映出具体的地理位置(或范围),但从IP地址的“网络号”却不能直接反映出具体的地理位置(或范围)。IP地址的管理机构在分配IP地址时并不是先将整个的地址空间按国家来分配,而是按网络来分配(不管这个网络在哪个国家)。

但是有的IP地址可以反映出一定的地理范围。例如,顶级域名采用国家域名的,例如顶级域名是.cn的应当是在中国,但在中国的什么地方则不知道。而二级域名若采用省级域名时,如采用.js.cn的应当是在中国的江苏省,但在江苏省的什么地方也是不知道的。然而在采用通用顶级域名时,如采用.com或.net或.org时,则无法知道该主机在哪一个国家或地区。

(问题4-23:“尽最大努力交付”(besteffortdelivery)都有哪些含义?

答:(1)不保证源主机发送出来的IP数据报一定无差错地交付到目的主机。

(2)不保证源主机发送出来的IP数据报都在某一规定的时间内交付到目的主机。

(3)不保证源主机发送出来的IP数据报一定按发送时的顺序交付到目的主机。

(4)不保证源主机发送出来的IP数据报不会重复交付到目的主机。

(5)不故意丢弃IP数据报。丢弃IP数据报的情况是:路由器检测出首部检验和有错误;或由于网络中通信量过大,路由器或目的主机中的缓存已无空闲空间。

但是要注意,IP数据报的首部中有一个“首部检验和”。当它检验出IP数据报的首部出现了差错时,就将该数据报丢弃。因此,凡交付给目的主机的IP数据报都是IP数据报的首部没有出现差错的或没有检测出来有差错。这就是说,传输过程中出现差错的IP数据报都被丢弃了。例如,源主机一连发送了10000个IP数据报,结果有9999个IP数据报都出现了差错,因而都被丢弃了。这样,只有一个不出错的IP数据报最后交付给了目的主机。这也完全符合“尽最大努力交付”的原则。甚至当所发送的一万个IP数据报都被丢弃了,我们也不能说这不是“尽最大努力交付”,只要路由器不是故意地丢弃IP数据报就行。

现在因特网上绝大多数的通信量都是属于“尽最大努力交付”的。如果数据必须可靠地交付给目的地,那么使用IP协议的高层软件必须负责解决这一问题。

(问题4-24:假定在一个局域网中计算机A发送ARP请求分组,希望找出计算机B的硬件地址。这时局域网上的所有计算机都能收到这个广播发送的ARP请求分组。试问这时由哪一个计算机使用ARP响应分组将计算机B的硬件地址告诉计算机A?

答:这要区分两种情况。

如果计算机B和计算机A都连接在同一个局域网上,那么就是计算机B发送ARP响应分组。

如果计算机B和计算机A不是连接在同一个局域网上,那么就必须由一个连接在本局域网上的路由器来转发ARP请求分组。这时,该路由器向计算机A发送ARP回答分组,给出自己的硬件地址。

(问题4-25:有人将ARP列入网络接口层,即认为ARP不在IP层,这样对吗?

答:这样也是可以的。

本来ARP就是位于IP层和数据链路层之间。本书是将ARP画在IP层的下面。我们知道IP层和以上各层都是使用IP地址,而数据链路层是使用硬件地址。而ARP是进行这两个地址的转换:

IP地址→ARP→硬件地址。

ARP报文中既有IP地址又有硬件地址。因此将ARP列入网络接口层也是可以的(见Comer写的书)。

同理,RARP也可以这样看待,因为:硬件地址→RARP→IP地址。

(问题4-26:一个主机要向另一个主机发送IP数据报。是否使用ARP就可以得到该目的主机的硬件地址,然后直接用这个硬件地址将IP数据报发送给目的主机?

答:有时是这样,但也有时不是这样。

ARP只能对连接在同一个网络上的主机或路由器进行地址解析。我们看下图的例子。



由于A和B连接在同一个网络上,因此主机A使用ARP协议就可得到B的硬件地址,然后用B的硬件地址,将IP数据报组装成帧,发送给B。

但当目的主机是F时,情况就不同了。A无法得到F的硬件地址。A只能先将IP数据报发送给本网络上的一个路由器(在本例中就是路由器R1)。因此A发送IP数据报给F时,在地址解析方面要经过以下三个步骤:

A先通过ARP解析出路由器R1的硬件地址,将IP数据报发送到R1。

R1再通过ARP解析出R2的硬件地址,将IP数据报转发到R2。

R2再通过ARP解析出F的硬件地址,将IP数据报交付给F。

因此,A发送IP数据报给F要经过三次ARP地址解析。A只知道F的IP地址,但并不知道F的硬件地址。

(问题4-27:在因特网中最常见的分组长度大约是多少个字节?

答:使用以太网是和因特网相连的最常用的局域网,而以太网的数据字段最多只允许装入1500字节。因此在因特网上传送的分组长度一般都不会超过1500字节。

由于现在因特网上最常用的应用程序是电子邮件和万维网。这两个应用程序都使用TCP进行传输,因此经常要用到TCP的确认报文段。这种TCP确认报文段没有数据,只有20字节的首部,再加上IP数据报的20字节首部,使得IP数据报(即分组)的长度只有40字节。

根据美国MCI主干网上传送的分组的统计数据,大约有40%的分组为40字节长(即它们携带的数据都是TCP的确认报文段)。大约有15%的分组为576字节左右的长度(即IP数据报的默认长度)。大约有10%的分组为1500字节长。超过1500字节的分组数是很少的。



ABCDEFR1R2A类B类C类D类E类
献花(0)
+1
(本文系liyi039首藏)