第六章ICMP不可达差错课件.pptVIP

  1. 1、本文档共46页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六章ICMP不可达差错课件

ICMP不可达差错(需要分片) 发生I C M P不可达差错的另一种情况是,当路由器收到一份需要分片的数据报,而在 I P首部又设置了不分片(D F)的标志比特。如果某个程序需要判断到达目的端的路途中最小 M T U是多少—称作路径M T U发现机制(2 . 9节) ,那么这个差错就可以被该程序使用。 这种情况下的I C M P不可达差错报文格式如图 11 - 9所示。这里的格式与图6 - 1 0不同,因为在第2个32 bit字中,16~31 bit可以提供下一站的M T U,而不再是0。 如果路由器没有提供这种新的ICMP差错报文格式,那么下一站的MTU就设为0。 新版的路由器需求RFC [Almquist 1993]声明,在发生这种I C M P不可达差错时,路由器必须生成这种新格式的报文。 例子 关于分片作者曾经遇到过一个问题,I C M P差错试图判断从路由器n e t b到主机s u n之间的拨号S L I P链路的M T U。我们知道从s u n到n e t b的链路的M T U:当S L I P被安装到主机s u n时,这是S L I P配置过程中的一部分,加上在3 . 9节中已经通过n e t s t a t命令观察过。现在,我们想从另一个方向来判断它的M T U(在第2 5章,将讨论如何用S N M P来判断) 。在点到点的链路中,不要求两个方向的M T U为相同值。 所采用的技术是在主机s o l a r i s上运行p i n g程序到主机b s d i,增加数据分组长度,直到看见进入的分组被分片为止。如图11 - 1 0所示。 在主机s u n上运行t c p d u m p,观察S L I P链路,看什么时候发生分片。开始没有观察到分片,一切都很正常直到p i n g分组的数据长度从5 0 0增加到6 0 0字节。可以看到接收到的回显请求(仍然没有分片) ,但不见回显应答。 为了跟踪下去,也在主机 b s d i上运行t c p d u m p,观察它接收和发送的报文。输出如图11 - 11所示。 首先,每行中的标记(D F)说明在I P首部中设置了不分片比特。这意味着 Solaris 2.2 一般把不分片比特置1,作为实现路径M T U发现机制的一部分。 第1行显示的是回显请求通过路由器 n e t b到达s u n主机,没有进行分片,并设置了 D F比特,因此我们知道还没有达到n e t b的SLIP MTU。 接下来,在第2行注意到D F标志被复制到回显应答报文中。这就带来了问题。回显应答与回显请求报文长度相同(超过 6 0 0字节) ,但是s u n外出的S L I P接口M T U为5 5 2。因此回显应答需要进行分片,但是D F标志比特又被设置了。这样,s u n就产生一个I C M P不可达差错报文返回给b s d i(报文在b s d i处被丢弃) 。 这就是我们在主机 s o l a r i s上没有看到任何回显应答的原因。这些应答永远不能通过s u n。分组的路径如图11 - 1 2所示。 最后,在图11 - 11中的第3行和第6行中,m t u = 0表示主机s u n没有在I C M P不可达报文中返回出口M T U值,如图11 - 9所示(在2 5 . 9节中,将重新回到这个问题,用 S N M P判断n e t b上的S L I P接口M T U值为1 5 0 0) 。 用Traceroute确定路径MTU 尽管大多数的系统不支持路径 M T U发现功能,但可以很容易地修改 t r a c e r o u t e程序(第8章) ,用它来确定路径M T U。要做的是发送分组,并设置“不分片”标志比特。发送的第一个分组的长度正好与出口M T U相等,每次收到I C M P“不能分片”差错时(在上一节讨论的)就减小分组的长度。如果路由器发送的 I C M P差错报文是新格式,包含出口的M T U,那么就用该M T U值来发送,否则就用下一个最小的 M T U值来发送。正如 RFC 1191 [Mogul andDeering 1990]声明的那样,M T U值的个数是有限的,因此在我们的程序中有一些由近似值构成的表,取下一个最小M T U值来发送。 首先,我们尝试判断从主机sun到主机slip的路径MTU,知道SLIP链路的MTU为2 9 6。 在这个例子中,路由器 b s d i没有在I C M P差错报文中返回出口 M T U,因此我们选择另一个M T U近似值。T T L为2的第1行输出打印的主机名为b s d i,但这是因为它是返回I C M P差错报文的路由器。T

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档