• nCompass-IP/ICMP协议


    单击返回:自学N-Compass之路 

    nCompass-IP/ICMP协议

    1.   IP协议:

    • 点对点
    • 无连接
    • 不可靠
    • 尽力传输
    • 可分片(大数据包经过MTU数值较小的链路需要数据分片处理)

    IP分片,影响高效利用带宽,所以尽量避免IP分片。

    两个终端设备数据传输的时候,只知道自己的MTU,不知道中间设备的MTU,传输设备设置DF=0允许分片,当中间设备超出MTU规定值就分片处理,知道终端设备才会IP重组。

    如何避免IP分片?

    • 猜想链路MTU值,调整发送的MTU值稍微减少一些
    • 通过探测的方式(PMTUD),Path MTU Discovery,路径MTU自动发现

    PMTUD报文演示:

    那么设备是如何知道MTU要更改的值?  如果此时还是只过滤IP数据的话是看不出来,需要加上过滤ICMP数据。

    • 先看一下hello数据包
    • 查看ICMP数据包,显示不可达,需要分片(hello数据包里面确实显示不可以分片)。
    • 查看ICMP数据包:ICMP数据包通告返回时,除了返回ICMP消息本身通告信息(Type、Code、Checksum、MTU of next hop等),同时将发送数据包里面从IP头开始提取28个字节一起内容返回。

    2. ICMP控制报文协议

    用于在IP主机、路由器之间传递控制信息,控制消息是指网络不通、主机是否可达、路由是否可用等网络本身的消息。

    IP层本身没有纠错机制,所以只有到ICMP才能知道。

    越是底层的重传越快,比如说以太网的重传比IP层的重传块,IP比TCP重传快。

    ICMP演示1:

    • 发现FIN数据包发送不过去,一直重传
    • 过滤出ICMP数据包们进行分析(是因为FIN序列号不是想要的数据包)

    ICMP演示2:

    • 发送SYN数据包出不去,重传6次还是没有相应(路由没配置? 防火墙隔断?)
    • 过滤出ICMP数据包进行分析(发现TTL=1,说明末端出现环路)

    nCompass平台的ICMP差错报文分析:

    通告源IP、通告源端口、通告目的IP、通告目的端口是指:是原来那个数据报文的四元组

    网关IP、差错接收端IP是指:真正ICMP数据报文的源和目的

    表示10.59.0.138发送给10.211.0.168的数据报文,ICMP报文是通过10.59.0.252(应该是个路由器)返回给10.59.0.138的。

    所以如果你只过滤IP10.59.0.138和10.211.0.168是看不到ICMP报文,是需要过滤IP10.59.0.252和10.59.0.138才能看到ICMP报文。

  • 相关阅读:
    ubuntu18.04 常用命令
    docker常用命令
    git
    y7000 intel nvidia 双显卡安装Ubuntu16.04
    linux中fork() 函数详解
    理解GBN协议
    C++ sort
    最近点对-分治
    方便查看 linux/kernel/system_call.s
    方便查看 linux/kernel/asm.s
  • 原文地址:https://www.cnblogs.com/yaoyaojcy/p/12520538.html
Copyright © 2020-2023  润新知