• ICMP协议


    ICMP(Internet Control Message Protocol)因特网控制消息协议是TCP/IP协议族的一个子协议,工作在网络层,用于在IP主机、路由器之间传递控制消息。

    控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

    因特网的操作由路由器严密监视,当发生意外事故时,由ICMP报告,它也引用来检测因特网。

     一、ICMP报文的格式和各个字段的含义

    ICMP报文的格式如下:

     如图所示:

    1、类型:占一个字节,用来表示ICMP的消息类型。(8位类型)

     2、代码:占一个字节,用来对类型的进一步说明。(8位代码)

     3、校验和:占两个字节,是对整个报文的报文信息的校验。(16位校验和)

    CMP协议封装在ip协议中,ICMP有很多报文类型,每一个报文类型又各自不相同,所以无法找到一个统一的报文格式来进行说明,但是他们的前四个字节的报文格式是相同的。

    ICMP包有一个8字节长的包头,其中前4个字节是固定的格式,包含8位类型字段,8位代码字段和16位的校验和;后4个字节根据ICMP包的类型而取不同的值。

    二、ICMP常见的报文类型

    下表列出了几种常见的类型:

    ICMP的报文分为两类,一类是ICMP询问报文,一类是ICMP差错报告报文

     ICMP询问报文共有4种:

    8 回送请求                 0 回送应答

    13 时间戳回送请求    14 时间戳回送应答

    ICMP差错报告报文共有5种:

    3 目的站点不可达:当路由器或主机不能交付数据的时候,就会向源点发送终点不可达的报文。

    4 源站点抑制:当路由器或主机因为拥塞而导致丢包的时候,就会向源点发送源点抑制报文,请求发送报文速度降低。

    5 改变路由(重定向):路由器把改变路由报文发给主机,让主机知道下次应该将数据报发送给另外的路由(可通过更好的路由)。

    11 时间超过:当路由器或主机发现生存时间TTL值为0时,会丢弃该报文,并向源点发送时间超过的信息。或者目的主机没在规定时间内收到所有的数据分片,会丢弃之前的数据分片,并发出报告。

    12 参数问题:当路由器或主机发现数据包首部字段值不正确的时候,会丢弃该报文,并发送参数错误报文。

    三、不发送ICMP差错报文的情况

    1、对ICMP差错报文出错不在发送ICMP差错报文信息。

    2、对于第一个ip分片后的所有ip分片报文不发送ICMP差错报文

    3、对具有组播地址的数据报不发送ICMP报文

    4、对具有特殊地址(127.0.0.0或0.0.0.0)不发送ICMP差错报文

    四、ICMP协议的用法

    ICMP协议的常用用法是ping和tracert

    ping命令是为了检查网络的连接状况而使用的网络工具之一,用它来检测数据包到达目的主机的可能性

    ping 目的IP

    ping命令使用的是ICMP协议的回送请求、回送应答。客户机传送一个回送请求给服务器,服务器返回一个ICMP回应应答。

    ping向主机发送一个回送请求数据包,要求目标主机收到请求后给予答复,从而判断网络的响应时间和本机是否与目标主机的连通性。

    ping命令有一下几种返回结果:

    1)Request timed out:表示没有收到目标主机返回的回应数据包,即网络不通或网络状态恶劣

    2)Reply from *.*.*.*:bytes =32 time<1ms TTL=255:表示收到从目标主机*.*.*.*返回的响应数据包,数据包大小为32B,响应时间小于1ms,TTL为255,表示您的计算机到目标主机之间连接正常

    3)Destination host unreachable:目标主机无法到达

    4)ping:transmit failed,error code *****:传输失败,错误代码*****

    可ping通127.0.0.1及本机IP,但无法ping通同一网段内其他工作正常的计算机IP——>该客户端网络接口故障

    tracert  目的ip 可以显示中间经过的路由器

  • 相关阅读:
    Fiddler抓包7-post请求(json)(转载)
    Fiddler抓包6-get请求(url详解)(转载)
    Fiddler抓包5-接口测试(Composer)(转载)
    Fiddler抓包4-工具介绍(request和response)(转载)
    辨析各类web服务器:Apache/Tomcat/Jboss/Nginx/等,还有Nodejs
    Java Web学习脑图
    python字符编码与解码 unicode,str
    编程题之--链表反置
    Java集合系列
    搞清楚基本问题
  • 原文地址:https://www.cnblogs.com/pistachio123/p/9636348.html
Copyright © 2020-2023  润新知