原创 TCP/IP学习之第八章:差错与控制报文ICMP

2008-3-30 08:55 3600 7 7 分类: 通信
ICMP概述:(Internet Control Message Protocal)

    前面学习了IP数据报的交付、转发,但没有提及如何处理交付、转发的失败。在同构的专用硬件实现的单一网络中,设计者可以让底层硬件在产生问题时通知与其相连的主机;而在互联网中没有这样的硬件机制,发送方无法辨别某一次交付失败是由于本地故障还是远端故障造成的。IP协议本身有没有任何机制可以使发送方测试或了解这种故障。

    ICMP就是负责提供控制和报告差错的协议,它和IP协议处于一个级别,都在互联网层面,负责此层面的差错报告及控制。

    ICMP最终的目的地是机器上的网际协议软件,当一个ICMP报文到达后,ICMP软件模块对它进行处理。如果ICMP确定是某个特定的高层协议或应用程序引起的问题,它会通知相应的上层模块。

    最初的设计是为了允许路由器向主机报告交付出错的原因,但是事实上,主机也可以直接用ICMP与路由器或其它主机通信。ICMP是网际互联层统一的负责控制信息的单一机制。

    大多数差错出自源站,但有的差错出自路由器。由于ICMP向最初源站报告问题,它不能把问题通知给中间路由器。因此,最初源站只能得知从源站到某个路由器或主机之间出现的某个问题,但无法确定是途经的哪个路由器导致问题的出现。即:最初的源站不对行为异常的路由器负责。它相信主机管理员会与网络管理员协作找到问题并解决。

ICMP报文封装:

      4db93a92-bcfa-471f-ad90-e0e2d60ccfda.JPG
    由图可见,ICMP报文被放在IP数据报的数据部分,通过互联网传送。ICMP报文完全就像携带用户信息的数据报一样,没有额外的可靠性或优先级。因此差错报文本身可能会丢失或被丢弃,而且差错报文可能会引起额外的拥塞。如果携带ICMP报文的IP数据报产生了差错,则为了避免由于差错报文出错而产生的差错报文,定义了“产生异常”,用“产生异常”来表示携带ICMP报文的IP数据报出差错,从而避免了由携带ICMP报文的IP数据报出差错而产生的ICMP报文。

    即使ICMP报文是使用IP封装和发送的,也不要把它当成高层协议。ICMP是IP的一个必要组成部分。它和普通的IP数据报都是可以用路由器来处理的。路由器所处理数据报的层面就在这一层面——它们同属网际互联层。

ICMP报文格式:

    每个ICMP报文都有自己的格式。但它们开头的三个字段都是相同的:
    一个8位整数报文类型(TYPE)字段来标识报文;
    一个8位代码(CODE)字段提供有关报文类型的更多信息;
    一个16位检验和(CHECKSUM)字段(ICMP使用与IP相同的加法检验和算法,但ICMP检验和的计算只包括ICMP报文);
    此外,用于报告差错的ICMP报文总是包括从产生问题的数据报中取出来的首部和一些八位组。它包含产生问题的数据报中的一些八位组的原因是:让接收方更准确第判断是那个(些)协议以及哪个应用程序负责该数据报。

ICMP报文类型及代码:
点击看大图
    下面分别描述每种报文:

测试目标可达和状态:—— 0 回射应答(ping回答)/ 8 回射请求(ping请求)

    ICMP回送请求(echo request)包含一个可选的数据区,回答中含有在请求中所发送数据的一个副本。回送请求及回答可以用来测试目的站是否可达和是否响应。
    因为请求和回答都是在IP数据报中运送的,所以回答成功接收就证实传输系统在IP层面及以下是正常的。这个正常包括:
    第一、源站的IP软件必须转发数据报;
    第二、源站和目的站之间的路由器必须在运行状态,并能够正确转发数据报;
    第三、目的站机器至少能够响应中断,而且ICMP和IP软件都在工作;
    最后、在返回路径上所有路由器的路由表中,必须含有形成可行路径所需的信息。

回射请求和回答报文的格式:
点击看大图
    可选数据(OPTIONAL DATA)字段是个可变长度的字段,包含将返回给发送方的数据。回送回答返回的数据总是与收到的请求中的数据完全相同。标识符(IDENTIFIER)字段和序号(SEQUENCE NUMBER)字段被发送方用来匹配回答和请求。类型0表示回答,类型8表示请求。

    许多系统上,用户发送ICMP回送请求的命令是ping。一些版本的ping发送固定数量的ICMP请求分组并等待回答;一些版本发送一连串ICMP回送请求,捕获响应,以得到关于数据报丢失情况的统计。大多数版本允许用户指明要发送数据报的长度,以及各个请求之间的间隔时间。发送一个大的Ping分组有助于测试数据报的分片和重装。




文章评论0条评论)

登录后参与讨论
我要评论
0
7
关闭 站长推荐上一条 /2 下一条