• 路由交换01-----ICMP协议


    路由交换协议------ICMP

    ICMP协议
    ICMP (InternetControl Message Protocol)协议是TCP/IP协议簇的核心协议之一,用来在网络设备之间传递各种差错和控制信息,对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。

    IP数据包格式是这样的:

    其中ICMP数据包的部分是这样的:

    (1)类型:用一个8位类型字段表示ICMP数据包的类型。

    • 类型3 终点不可达
    • 类型5 改变路由
    • 类型08 回显请求或应答
    • 类型11 超时
    • 类型12 参数有问题
    • 类型1314 时间戳请求或回答

    (2)代码:用来表示指定类型中的一个功能,如果一个类型只有一种功能,那么这个部分是0。

    • 根据类型部分结合代码部分具体区分类型中的不同情况
      比如类型为3,代码部分为0是指网络不可达,为1是指主机不可达,为3是指端口不可达。

    (3)校验和:数据包中ICMP上的一个16位校验和。
    ICMP报文的前四个字节都是一样的。

    • 用于检验ICMP报文

    ICMP报文的种类有两种:1.差错报文 2.询问报文。
    1.差错报文
    ICMP差错报文共有5种。

    • 终点不可达
    • 路由重定向
    • 超时
    • 参数出错
    • 源点抑制

    2.询问报文
    ICMP询问报文共有2种。

    • 回显请求或应答
    • 时间戳请求或应答

    ICMP最常见的应用就是ping
    ping一个地址就是发送一个回显的请求。
    ping 命令还可以铜价添加-s选项来显示时间戳。
    除了ping之外的典型应用是Tracert
    Tracert基于报文中的TTL值(生存时间)来逐跳跟踪报文的转发路径,TTL还可以用来防止环路。

    有这样一个拓扑图:

    现在我在路由器R2ping路由器R1并在R2Eth0/0/0上开始抓包。


    在抓包的内容中可以看到ICMP中的类型、代码和校验和。

    各位大佬不介意的话我只想要一点流量。个人博客

  • 相关阅读:
    前端--HTML
    并发函数--线程
    并发编程--进程
    一个好用的网站,各种在线
    django Models与数据库关系
    流文件下载
    小白都能秒懂的各数据库在Django的配置
    关于django 内建缓存 信号 及自定义json的配置
    django批量创建数据
    关于drf的组件
  • 原文地址:https://www.cnblogs.com/Timesi/p/9323004.html
Copyright © 2020-2023  润新知