“第4章  网络层”中常见问题
问题4-1:存在多种异构网络对不同网络之间的通信会造成一些麻烦。但为什么 世界上还存在多种异构网络?
答:世界上之所以存在着多种异构网络,就是因为仅用一种体系结构的网络根本无法满足所有用户的所有需求。在计算机网络发展初期,许多厂家都生产出具有自己独特体系结构的计算机网络,以满足不同用户和应用的需要。但这些计算机网络由于采用了不同的体系结构和协议,不能直接进行互联和通信。
问题4-2:“IP网关”和“IP路由器”是否为同义语?
答:当初发明TCP/IP协议的研究人员使用“IP Gateway”表示网际互连的设备。对于“IP Gateway”,我国的网络工作者曾把其翻译成网间连接器、网闸、信关、联网机等,但最后全国自然科学名词审定委员会在[MINGCI94]中,将“Gateway”译成“网关”。但是在美国在20世纪90年代初期一家厂商认为,将“IP Gateway”改名为“IP Router”似乎更加有利于设备的销售。后来其他厂家也跟着改变了产品的名称。在[MINGCI94]中“Router”的标准译名是“路由器”。现在,
大家就都基本上不再使用网关这一名词了。 因此,我们可以认为“IP网关”和“IP路由器”是同义语。
问题4-3:“互连网”和“互联网”有没有区别?
答:这是一个很难说清的问题,很多人都向我询问过这个问题。 在《现代汉语辞典》修订本(中国社会科学院语言研究所辞典编辑室编,商务印书馆1996年出版)第782页上有:“【连接】也作联接”。在785页上有:“【联接】同‘连接’”。这表明“连接”和“联接”是一样的意思。 在全国自然科学名词审定委员会公布的《计算机科学技术名词》一书[MINGCI94]中,Connection确定译为“连接”。Interconnection确定译为“互连”。Internetworking确定译为“网际互连”。这样的译名是很合适的。 到了1997年7月18日“全国科学技术名词审定委员会推荐名(一)”公布了。其中的第一个名词就是“互联网”,它对应的英文名为:internet, internetwork, interconnection network。在现有名一栏中有“互联网”、“互连网”、“网际网”和 “网间网”,在注释栏中有这样几个字:“又称互连网”。 因此能否这样理解:“互联网”和“互连网”都是推荐名,都可以使用,不过建议优先使用前者,即优先使用“互联网”。 使用“互连网”的好处是这样可以和[MINGCI94]早已制定过的一些名词衔接得更好些。不过请注意,把所有的“互连”统统改为“互联”则是错误的。
问题4-4:在文献中有时会见到对等连网(peer-to-peer networking),这是什么意思? 
答:对等连网是表示在网络中,任何两个计算机都可以进行平等地通信。因特网对通信双方计算机的大小是不关心的。“对等”也有“对称”的意思。在早期的计算机网络是以计算机为中心,而远地的终端围绕中心的计算机进行通信。这些远地的终端和在中心的计算机并不是对等的,因为智能都集中在中心的计算机,复杂的计算都要在中心的计算机进行。但现在情况已经有了根本的变化。因此产生了对等连网这样的名词。
问题4-5:在一个互联网中,能否使用一个很大的交换机(switch)来代替互联网 中很多的路由器?
答:不行。交换机和路由器的功能是很不一样的。  交换机可在一个单个的网络中和若干个计算机相连,并且可以将一个计算机发送过来的帧转发给另一个计算机。从这一点上看,交换机具有集线器的转发帧的功能。 但交换机比集线器的功能强很多。集线器在同一时间只允许一个计算机和其他计算机进行通信,但交换机允许多个计算机同时进行通信。 路由器连接两个或好几个网络。路由器可在网络之间转发分组(即IP数据报)。特别是,这些互连的网络可以是异构的。 因此,如果是许多相同类型的网络互连在一起,那么用一个很大的交换机
(如果能够得到)代替原来的一些路由器是可以的。但若这些互连的网络是异构的网络,那么就必须使用路由器来进行互连。
问题4-6:为什么IP地址又称为“虚拟地址”?
答:这是因为IP地址是靠软件来维持的而不是硬件地址。我们好像构成了一个很大的互连网络,但这个网络是虚拟的网络系统,因为它的通信系统是抽象的。虽然许多硬件和软件的组合看起来好像构成了一个很大的网络,但这样的大网络实际上并不存在。 这种虚拟网络的地址也是虚拟的,因此IP地址又称为“虚拟地址”。
问题4-7:有的文献上使用“虚拟分组”(virtual packet)这一名词。虚拟分组 是什么意思?
答:虚拟分组就是IP数据报。 因为因特网是由大量异构的物理网络互连而成的。这些物理网络的帧格式是各式各样的,它们的地址也可能是互不兼容的。路由器无法将一种格式的帧转发到另一种网络,因为另一种网络无法识别与自己格式不同的帧的地址。路由器也不可能对不同的地址格式进行转换。 为了解决这一问题,IP协议定义了IP数据报的格式。所有连接在因特网中的路由器都能识别IP数据报的IP地址,因此能够对IP数据报进行转发(在进行转发
tcp ip协议有哪几层时当然要调用ARP协议以便获得相应的硬件地址)。我们知道,IP数据报是作为物理网络的帧的数据部分。 3 各个物理网络在转发帧时是根据帧的首部中的硬件地址而不看帧的数据部分。因此所有的物理网络都看不见帧里面的IP数据报。这样就使得IP数据报得到“虚拟分组”这样的名称。
问题4-8:当运行PING 127.0.0.1时,这个IP数据报将发送给谁?
答:127.0.0.1是环回地址。主机将测试用的IP数据报发送给本主机的ICMP(而不是发送到因特网上)以便进行环回测试。
问题4-9:有的书(如[COME06])将IP地址分为前缀和后缀两大部分,它们和 网络号字段及主机号字段有什么关系?
答:前缀(prefix)就是网络号字段net-id,而后缀(suffix)就是主机号字段host-id。下面的图是以C类地址为例来说明前缀和后缀是什么。 C 类地址011net-id24 bithost-id8 bit前缀后缀主机号字段网络号字段    如果网络划分了子网,那么前缀还应包括子网号字段。
问题4-10:IP数据报中的数据部分的长度是可变的(即IP数据报不是定长的)。 这样做有什
么好处?
答:这样做的好处是可以满足这种应用的需要。有时在键盘键入的一个字符就可以构成一个很短的IP数据报。但有的应用程序需要将很长的文件构成一个大的IP数据报(最长为64 K字节,包括首部在内)。当然,大多数IP数据报的数据部分的长度都远大于首部长度。这样做的好处是可以提高传输效率(首部开销所占的比重就较小)。
问题4-11:全1的IP地址是否是向整个因特网进行广播的一种地址?
答:不是。设想一下,如果是向整个因特网进行广播的地址,那么一定会在因特网上产生极大的通信量,这样会严重地影响因特网的正常工作,甚至还会使因特网瘫痪。 因此,在IP地址中的全1地址表示仅在本网络上(就是你这个主机所连接的局域网)进行广播。这种广播叫做受限的广播(limited broadcast)。 如果net-id是具体的网络号,而host-id是全1,就叫做定向广播(directed broadcast),因为这是对某一个具体的网络(即net-id指明的网络)上的所有主机进行广播的一种地址。
问题4-12:IP协议有分片的功能,但广域网中的分组则不必分片。这是为什么?
答:IP数据报可能要经过许多个网络,而源主机事先并不知道数据报后面要经过的这些网络所能通过的分组的最大长度是多少。等到IP数据报转发到某个网络时可能才发现数据报太长了,因此在这时就必须进行分片。 但广域网能够通过的分组的最大长度是该广域网中所有主机都事先知道的。源主机不可 4 能发送网络不支持的过长分组。因此广域网就没有必要将已经发送出的分组再进行分片。
问题4-13:路由表中只给出到目的网络的下一跳路由器的IP地址,然后在下一 个路由器的路由表中再给出再下一跳的路由器的IP地址,最后才能 到达目的网络进行直接交付。采用这样的方法有什么好处?
答:这样做的最大好处就是使得路由选择成为动态的,十分灵活。当IP数据报传送到半途时,若网络的情况发生了变化(如网络拓扑变化或出现了拥塞),那么中途的路由器就可以改变其下一跳路由,从而实现了动态路由选择。
问题4-14:链路层广播和IP广播有何区别?
答:链路层广播是用数据链路层协议(第二层)在一个以太网上实现的对该局域网上的所有
主机的MAC帧进行广播。 IP广播则是用IP协议通过因特网实现的对一个网络(即目的网络)上的所有主机的IP数据报广播。
问题4-15:主机在接收一个广播帧或多播帧时其CPU所要做的事情有何区别?
答:在接收广播帧时,主机通过其适配器(即网络接口卡NIC)接收每一个广播帧,然后将其传递给操作系统。CPU执行协议软件,并界定是否接受和处理该帧。    在接收多播帧时,CPU要对适配器进行配置,而适配器根据特定的多播地址表来接收帧。凡与此多播地址表不匹配的帧都将被NIC丢弃。因此在多播的情况下,是适配器NIC而不是CPU决定是否接收一个帧。
问题4-16:“尽最大努力交付”(best effort delivery)都有哪些含义?
答: (1) 不保证源主机发送出来的IP数据报一定无差错地交付到目的主机。 (2) 不保证源主机发送出来的IP数据报都在某一规定的时间内交付到目的主机。 (3) 不保证源主机发送出来的IP数据报一定按发送时的顺序交付到目的主机。 (4) 不保证源主机发送出来的IP数据报不会重复交付到目的主机。 (5) 不故意丢弃IP数据报。丢弃IP数据报的情况是:路由器检测出
首部检验和有错误;或由于网络中通信量过大,路由器或目的主机中的缓存已无空闲空间。 但是要注意,IP数据报的首部中有一个“首部检验和”。当它检验出IP数据报的首部出现了差错时,就将该数据报丢弃。因此,凡交付给目的主机的IP数据报都是IP数据报的首部没有出现差错的或没有检测出来有差错。这就是说,传输过程中出现差错的IP数据报都被丢弃了。例如,源主机一连发送了10000个IP数据报,结果有9999个IP数据报都出现了差错,因而都被丢弃了。这样,只有一个不出错的IP数据报最后交付给了目的主机。这也完全符合“尽最大努力交付”的原则。甚至当所发送的一万个IP数据报都被丢弃了,我们也不能说这不是“尽最大努力交付”,只要路由器不是故意地丢弃IP数据报就行。  5 现在因特网上绝大多数的通信量都是属于“尽最大努力交付”的。如果数据必须可靠地交付给目的地,那么使用IP协议的高层软件必须负责解决这一问题。