《TCP/IP详解卷一:协议》阅读笔记(三)

第6章 ICMP:Internet控制报文协议

引言

  • ICMP经常被认为是IP层的一个组成部分。它传递差错报文以及其他需要注意的信息。ICMP报文通常被I P层或更高层协议(TCP或UDP)使用。一些ICMP报文把差错报文返回给用户进程。
    -
  • I C M P报文的格式如下:(所有报文的前4个字节都是一样的,但是剩下的其他字节则互不相同。)
    在这里插入图片描述

ICMP报文的类型

  • 各种类型的ICMP报文如下图所示:不同类型由报文中的类型字段和代码字段来共同决定。
    在这里插入图片描述
  • 下面各种情况都不会导致产生ICMP差错报文:(这些规则是为了防止过去允许 I C M P差错报文对广播分组响应所带来的广播风暴。
  1. ICMP差错报文(因为可能无休止地错下去)(但是,I C M P查询报文可能会产生I C M P差错报文)。
  2. 目的地址是广播地址或多播地址(D类地址)的I P数据报。
  3. 作为链路层广播的数据报。
  4. 不是I P分片的第一片(将在11 . 5节介绍分片)。
  5. 源地址不是单个主机的数据报。这就是说,源地址不能为零地址、环回地址、广播地址或多播地址。

第7章 Ping程序

  • 几年前我们还可以作出这样没有限定的断言,如果不能 P i n g到某台主机,那么就不能Te l n e t或F T P到那台主机。随着I n t e r n e t安全意识的增强,出现了提供访问控制清单的路由器和防火墙,那么像这样没有限定的断言就不再成立了。一台主机的可达性可能不只取决于I P层是否可达,还取决于使用何种协议以及端口号。P i n g程序的运行结果可能显示某台主机不可达,但我们可以用Te l n e t远程登录到该台主机的2 5号端口(邮件服务器)。

Ping程序

  • ICMP回显请求和回显应答报文如下图所示。
    在这里插入图片描述
  • Unix系统在实现ping程序时是把ICMP报文中的标识符字段置成发送进程的 ID号。这样即使在同一台主机上同时运行了多个ping程序实例,ping程序也可以识别出返回的信息。

IP记录路由选项与IP时间戳选项

  • I P数据报中的记录路由选项与记录时间戳选项如下两图所示。
    在这里插入图片描述
    在这里插入图片描述

第8章 Traceroute程序

Traceroute程序的操作

  • 我们描述了 I P记录路由选项(RR)。为什么不使用这个选项而另外开发一个新的应用程序?有如下三个方面的原因。
  1. 原先并不是所有的路由器都支持记录路由选项,因此该选项在某些路径上不能使用。
  2. 记录路由一般是单向的选项。发送端设置了该选项,那么接收端不得不从收到的 I P首部中提取出所有的信息,然后全部返回给发送端。
  3. I P首部中留给选项的空间有限,不能存放当前大多数的路径。在I P首部选项字段中最多只能存放9个IP地址。在原先的ARPANET中这是足够的,但是对现在来说是远远不够的。
  • traceroute程序的操作过程如下:
  1. 它发送一份 T T L字段为1的I P数据报给目的主机。处理这份数据报的第一个路由器将 T T L值减1,丢弃该数据报,并发回一份超时ICMP报文。这样就得到了该路径中的第一个路由器的地址。然后Traceroute程序发送一份TTL值为2的数据报,这样我们就可以得到第二个路由器的地址。
  2. 那么我们该如何判断是否已经到达目的主机了呢?Traceroute程序发送一份U D P数据报给目的主机,但它选择一个不可能的值作为UDP端口号(大于30 000),使目的主机的任何一个应用程序都不可能使用该端口。因为,当该数据报到达时,将使目的主机的UDP模块产生一份“端口不可达”错误(见 6 . 5节)的ICMP报文。这样,Traceroute程序所要做的就是区分接收到的 I C M P报文是超时还是端口不可达,以判断什么时候结束。

IP源站选路选项

  • 源站选路(source routing)的思想是由发送者指定路由。它可以采用以下两种形式:
  1. 严格的源路由选择。发送端指明 I P数据报所必须采用的确切路由。如果一个路由器发现源路由所指定的下一个路由器不在其直接连接的网络上,那么它就返回一个“源站路由失败”的ICMP差错报文
  2. 宽松的源站选路。发送端指明了一个数据报经过的IP地址清单,但是数据报在清单上指明的任意两个地址之间可以通过其他路由器。
  • 源站路由选项的格式如下:
    在这里插入图片描述
    这个格式与记录路由选项格式基本一致。不同之处是,对于源站选路,我们必须在发送I P数据报前填充I P地址清单;而对于记录路由选项,我们需要为 I P地址清单分配并清空一些空间,并让路由器填充该清单中的各项。
  • 源站选路(source routing)的思想是由发送者指定路由。它可以采用以下两种形式:
  1. 严格的源路由选择。发送端指明 I P数据报所必须采用的确切路由。如果一个路由器发现源路由所指定的下一个路由器不在其直接连接的网络上,那么它就返回一个“源站路由失败”的I C M P差错报文。
  2. 宽松的源站选路。发送端指明了一个数据报经过的 I P地址清单,但是数据报在清单上指明的任意两个地址之间可以通过其他路由器。

小结

  • 在一个TCP/IP网络中,traceroute程序是不可缺少的工具。其操作很简单:开始时发送一个TTL字段为1的UDP数据报,然后将TTL字段每次加 1,以确定路径中的每个路由器。每个路由器在丢弃UDP数据报时都返回一个ICMP超时报文 2,而最终目的主机则产生一个ICMP端口不可达的报文。
  • 给出了在LAN和WAN上运行traceroute程序的例子,并用它来考察IP源站选路。我们用宽松的源站选路来检测发往目的主机的路由是否与从目的主机返回的路由一样。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值