zoukankan      html  css  js  c++  java
  • TCP/IP的网际层协议——ICMP

    ICMP经常被认为是IP层的一个组成部分。它携带于IP数据包中,ICMP封装在IP数据包内部:

    IP首部 ICMP数据包

    下面是一份差错报文的例子:

    最右边的+或者-代表该报文是查询报文还是错误报文。


    ICMP的功能介绍:
    ICMP定义了一套差错报文查询报文,用于主机与路由器之间交换不可达目的地址、网络拥塞、重定向到更好的路径、报文生命周期超时等信息。
    例如,用ping命令来查询192.168.10.1的主机是否在线,路由器会给用户一个ICMP应答:目标主机不可到达或者从192.168.10.1有回应。
    ICMP报文主要有两大类:查询报文和错误报文。
    查询报文是指ICMP响应请求、相应回答、路由公告、地址屏蔽请求等。
    而绝大部分ICMP信息是错误报文,例如,目的地址不可到达、源地址消亡、生命周期超期等。
     
    目标地址是广播地址或多播地址(D类地址)的IP数据包不会产生ICMP错误报文,这是为了防止ICMP错误报文对广播分组的响应而带来的广播风暴。

    ICMP不可到达差错报文的原因及分析:
    ICMP不可到达的报文类型值为3,可以依据不同的代码值识别到底是因为什么不可达。下面根据代码值举几个例子:
    (1)网络不可到达(不细说)
    (2)主机不可到达(不细说)
    (3)禁止分割:
       在MTU较小的网络上,需要把大数据包划分成更小的数据包片(分片),以保证数据包正常通过网络。
       假如路由器A在将客户端的数据发往服务器时,需要分割客户机的数据包,但是数据包的IP头中的IP头中即设置了拒绝分片位,那么路由器将会向客户机返回一个代码为4的“禁止分割”的ICMP信息。
     
    以上3种信息都是有路由器发送的。
     
    (4)协议不可到达
       如果数据包成功地到达了Web服务器,但是服务器上没有运行TCP或者UDP协议(基本上不可能有有种情况),那么Web服务器将返回一个代码为2的“协议不可到达”的ICMP消息。
     
    (5)端口不可到达
       如果数据包成功地到达了Web服务器,服务器上也运行有TCP协议,但是服务器上的相关软件还没有运行,无法处理客户机的连接,于是 服务器上的TCP/IP将返回一个代码为3的“端口不可到达”的ICMP消息。

    以上两种信息是由主机发送的。

    代码描述 场合 发送方
    目标网络不可到达 路由表中无目标网络 路由器
    目标主机不可到达 主机无响应 路由器
    禁止分割 需要进行分割但设置了不分割个比特位 路由器
    协议不可到达 主机上无相关的传输层协议(TCP、UDP) 主机
    端口不可到达 目标端口没有被应用程序打开 主机

    ICMP超时的原因分析:
    超时ICMP报文与IP报头中TTL字段一起使用。下面接单介绍一下“传输期间TTL值为0”的代码。
    当数据包到达路由器时,路由器都需要把数据包IP头中的TTL减1.当TTL值被减到0时,数据包就会被丢弃。此时丢弃这个包的路由器会返回一个代码为“传输期间TTL值为0”的ICMP消息给原始发送者。
    TTL值可以防止数据包在网络上被循环往复地传输。例如,当发生路由回路时,数据包可能在回路上被一直循环地传输。但是TTL字段的值都会减1,因此当TTL值减为0时,循环就会被自动丢失。
  • 相关阅读:
    sp2010 升级sp2013 用户无法打开网站
    powerviot install in sharepoint 2013
    can not connect cube in performancce dashboard
    westrac server security configure user info
    添加报表服务在多服务器场
    sharepoint 2013 office web app 2013 文档在线浏览 IE11 浏览器不兼容解决方法
    delete job definition
    目前付款申请单内网打开慢的问题
    item style edit in sharepoint 2013
    Could not load file or assembly '$SharePoint.Project.AssemblyFullName$'
  • 原文地址:https://www.cnblogs.com/stemon/p/4717510.html
Copyright © 2011-2022 走看看