附录a部分习题的解答

上传人:ldj****22 文档编号:45903434 上传时间:2018-06-20 格式:PDF 页数:18 大小:640.13KB
返回 下载 相关 举报
附录a部分习题的解答_第1页
第1页 / 共18页
附录a部分习题的解答_第2页
第2页 / 共18页
附录a部分习题的解答_第3页
第3页 / 共18页
附录a部分习题的解答_第4页
第4页 / 共18页
附录a部分习题的解答_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《附录a部分习题的解答》由会员分享,可在线阅读,更多相关《附录a部分习题的解答(18页珍藏版)》请在金锄头文库上搜索。

1、下载附录A 部分习题的解答第1章1.2 S L I P驱动程序执行 s p l t t y(图1 - 1 3 ),其优先级必须低于或等于 s p l i m p,且高于s p l n e t。因此,S L I P驱动程序由于中断而被阻塞。第2章2.1 M _ E X T标志是m b u f自身的一个属性,而不是m b u f中保存的数据报的属性。2.2 调用者请求大于1 0 0字节(M H L E N)的连续空间。2.3 不可行,因为多个m b u f都可指向簇( 2 . 9节)。此外,簇中也没有用于后向指针的空间(习题2 . 4 )。2.4 在定义的宏M C L A L L O C和M C

2、L F R E E中,我们看到引用计数器是一个名为m c l r e f c n t的数组。它在内核初始化时被分配,代码文件为 m a c h d e p . c。第3章3.3 采用很大的交互式队列,并不符合建立队列的目的,新的交互式流量跟在原有流量之后,会造成附加时延。3.4 因为s l _ s o f t c结构都是全局变量,内核初始化时都被置为 0。3.5 图A - 1第4章4.1 l e r e a d必须查看数据报,确认把数据报提交给 B P F之后,是否需要将其丢弃。因为3字节3字节环回9字节9字节附录 A 部分习题的解答计计855下载B P F开关会造成接口处于一种混杂模式,数据

3、报的目的地有可能是以太网中的其他主机,B P F处理完毕后,必须将其丢弃。如果接口没有加开关,则必须在e t h e r _ i n p u t中完成这一测试。4.2 如果测试反过来,广播标志永远不会置位。如果第二个i f前没有e l s e,所有广播分组都会带上多播标志。第5章5.1 环回接口不需要输入函数,因为它接收的所有分组都直接来自于 l o o u t p u t,后者实际完成了输入功能。5.2 堆栈分配快于动态存储器分配。对 B P F处理,性能是首要考虑的因素,因为对每个进入数据报都会执行该代码。5.5 缓存溢出的第一个字节被丢弃, S C _ E R R O R置位,s l i

4、 n p u t重设簇指针,从缓存起始处开始收集字符。因为S C _ E R R O R置位,s l i n p u t收到SLIP END字符后,丢弃当前接收的数据帧。5.6 如果检验和无效或者I P首部长度与实际数据报长度不匹配,数据报被丢弃。5.7 因为i f p指向l e _ s o f t c结构的第一个成员,sc = (struct le_softc*) ifp;s c初始化正确。5.8 这是非常困难的。某些路由器在开始丢弃数据报时,可能会发送 I C M P源站抑制报文段,但N e t / 3实现中的U D P插口丢弃这些报文段(图2 3 - 3 0 )。应用程序可以使用与 T

5、C P所采用的相同技术:根据确认的数据报估算往返时间,确认可用的带宽和时延。第6章6.1 I P子网出现之前(RFC 950 Mogul和Postel 1985),I P地址的网络和主机部分都以字节为界。i n _ a d d r结构的定义如下:图A - 2I n t e r n e t地址读写单位既可以是 8 bit字节,也可以是 16 bit单字,或32 bit双字。宏s _ h o s t、s _ n e t、s _ i m p等等,它们的名字明确地反应出早期 T C P / I P网络的结构。子网和超网概念的引入,淘汰了这种以字节和单字区分的做法。6.2 返回指向结构s l _ s o

6、 f t c 0 的指针。856计计TCP/IP详解 卷2:实现下载6.3 接口输出函数,如e t h e r _ o u t p u t,只有一个指向接口i f n e t结构的指针,而没有 指向i f a d d r的指针。在a r p c o m结构(最后一次为接口设定的 I P地址)中使用I P地址 可以避免从i f a d d r地址链表中寻找所需地址。 6.4 只有超级用户进程才能创建原始 I P插口。通过U D P插口,任何用户进程能够查看接 口配置,但内核仍拥有超级用户特权,能够修改接口地址。 6.5 有3个函数循环处理网络掩码,一次处理一个字节。它们是i f a _ i f

7、w i t h n e t、 i f a o f _ i f p f o r a d d r和r t _ m a s k e d c o p y。较短的网络掩码能够提高这些函数的性能。 6.6 与远端系统建立 Te l n e t连接。N e t / 2系统不应该转交这些数据报,而其他系统不会接 受到达环回接口之外的非环回接口的环回数据报。第7章7.1 下列调用返回指向i n e t s w 6 的指针:pffindproto(PF_INET, 0, SOCK_RAW);第8章8.1 可能不会。系统不可能响应任意的广播报文,因为没有可供响应的源地址。 8.4 因为数据报已经损坏,无法知道首部中

8、的地址是否正确。 8.5 如果应用程序选取的源地址与指定的外出接口的地址不同,则无法发送到下一跳路由 器。如果下一跳路由器发现数据报源地址与其到达的子网地址不符,则不会执行下一 步的转发操作。这是尽量减少终端系统复杂性带来的后果,RFC 1122指出了这一问题。 8.6 新主机认为广播报文来自于某个没有划分子网的网络中的主机,并试图将数据报发 回给源主机。网络接口开始广播 A R P请求,向网络请求该广播地址,当然,这一请 求永远不会收到响应。 8.7 减少T T L的操作出现在小于等于 1的测试之后,是为了避免收到的 T T L等于0,减1后 将等于2 5 5,从而引起操作差错。 8.8 如

9、果两个路由器彼此认为对方是某个数据报的下一跳路由器,则形成环路。除非该 环路被打破,原始数据报在两个路由器间来回传递,并且每个路由器都向源主机发 送I C M P重定向报文段,如果该主机与路由器处于同一个网络中。路由更新时,不同 路由器中的路由表暂时存在的不一致现象,会造成这种环路。 原始报文段的T T L最终减为0,数据报被丢弃。这是T T L存在的一个主要原因。 8.9 不会检查4个以太网广播地址,因为它们不属于接收接口。但应检查有限的广播地址,说 明带有S L I P链路的系统采用有限的广播地址,即使不知道对端地址,也能与对端通信。 8.10 只对数据报的第一个分片 (分片偏移量等于0

10、)生成I C M P差错报文。无论是主机字节 序,还是网络字节序,0的表示都相同,因此无需转换。第9章9.1 RFC 11 2 2建议如果数据报中的选项彼此冲突,处理方式由各实现代码自己决定。 N e t / 3能正确处理第一个源路由选项,但因为它会更新数据报首部的 i p _ d s t,第二 条源路由处理将出现差错。 9.2 网络中的主机也可以用做到达网络其他主机的中继。如果目的主机不可直接到达,附录 A 部分习题的解答计计857下载源主机可在数据报中加入路由,首先到达中继主机,接着到达最终的目的主机。路 由器不会丢弃数据报,因为目的地址指向中继主机,后者将处理路由并把数据报转 发给最终目

11、的主机。目的主机把路由反转,同样利用中继主机转发响应。 9.3 采用与前一个习题同样的原则。我们选取一个能够同时与源主机和目的主机通信的 中继路由器,并构造源路由,穿过中继路由器到达目的地址。中继路由器必须与目 的地址处于同一个网络,通信中无需默认路由。 9.4 如果源路由是仅有的 I P选项,N O P选项使得所有I P地址以4字节边界对齐,从而能够 优化存储器中的地址读取操作。这种对齐技术也适用于多个 I P选项,如果每个 I P选 项都通过N O P填充,保证按4字边界对齐。 9.5 不应混淆非标准时间值和标准时间值,最大的标准时间值等于86 399 399(246 06 0 1 0 0

12、 0-1 ),需要28 bit才能表示。由于时间值有32 bit,从而避免了高位比特的混淆问题。 9.6 源路由选项代码在处理过程中可能会改变 i p _ d s t。保存目的地址,从保证时间戳处 理使用原始目的地址。第1 0章10.2 重装后,只有第一个分片的选项上交给运输层协议。10.3 因为数据长度(204 + 20 )大于2 0 8 (图2 - 1 6 )。图1 0 - 11中的m _ p u l l u p把头4 0字节复制到一个单独的m b u f中,如图2 - 1 8所示。图A - 3i d = 6的 i p qi p q首部数据报起始 2 0字节接下来的1 8 4字节数据报2

13、0 4 8字节簇10.5 平均每个数据报收到的分片数等于平均每个输出数据报新建的平均分片数等于10.6 图1 0 - 11中,数据报最初被做为分片处理。当i p _ o f f左移时,保留的比特位被丢弃。得到的数据报被视为分片或一个完整的数据报,取决于 M F和分片偏移量的值。第11章11.1 输出响应使用收到请求的接口的源地址。主机可能无法辩识 0 . 0 . 0 . 0是一个有效的广播地址,因此,有可能忽略请求。推荐的广播地址等于 2 5 5 . 2 5 5 . 2 5 5 . 2 5 5。11.2 假定主机发送了一个链路层的广播数据报,其源 I P地址是另一台主机的地址,且数据报有差错,

14、如内容差错的选项。所有主机都能接收并检测出差错,因为这是一个链路层的广播报文,而且选项的处理先于最终目的地的检测。许多发现差错的主机会向数据报的源 I P地址发送I C M P报文,即使原数据报属于链路层广播。另一台主机将收到大量假的I C M P差错。这就是为什么不允许为链路层广播而发送 I C M P差错报文。11.3 第一个例子中,这种重定向报文不会诱骗主机向另一个子网中的某个主机发送报文段。这台主机可能被误认为是路由器,但它确实记录收到的流量。 RFC 1009规定路由器只能向位于同一个子网的其他路由器发送重定向报文。即使主机忽略了这些要求把数据报转发到另一个子网的报文段,但如果报文段

15、发送者与主机处于同一个子网中,它们就会被接受。第二个例子,为了防止出现上述现象,要求主机只接受它(错误地)选定的原始路由器的重定向报文,即假定这个错误的路由器是管理员指定的默认路由器。11.4 通过向r i p _ i n p u t传递报文段,进程级的守护程序能够正确响应,一些依赖于这种行为的老系统能够继续得到支持。11.5 I C M P差错只针对I P数据报的第一个分片。因为第一个分片的偏移量值必等于 0,字段的字节表示顺序是无关紧要的。11.6 如果收到I C M P请求的接口还未配置I P地址,则i a将为空,且不生成响应。11.7 N e t / 3处理与时间戳响应一起到达的数据。

16、11.10 高位比特被保留,并必须设为 0。如果它必须被发送,则i c m p _ e r r o r将丢弃数据报。11 . 11 返回值被丢弃,因为 i c m p _ s e n d不返回差错。更重要的是, I C M P报文处理过程中生成的差错将被丢弃,以避免进入死循环,不断生成差错报文。第1 2章12.1 以太网中,I P广播地址2 5 5 . 2 5 5 . 2 5 5 . 2 5 5转换为以太网的广播地址 ff : ff : ff : ff : ff : ff,网络中的所有以太网接口都会接收这样的数据帧。没有运行 I P软件的系统必须主动接796 084 2 6 0484= 3.172786 349 16 557= 4.4858计计TCP/IP详解 卷2:实现下载收并丢弃这种广播报文。数据报需发送给多播组 2 2 4 . 0 . 0 . 1

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号