• ICMP:Internet控制报文协议


    ICMP:Internet控制报文协议。

    是IP层的组成部分,传递差错报文或其他信息。


    ICMP报文被封装在IP数据报内部:

    详细格式例如以下所看到的:


    个字段含义例如以下:
    • 8位类型。表示该ICMP报文的含义。如目的不可达、超时、请求回显等。
    • 8为代码。

      进一步描写叙述该ICMP报文。ICMP报文的类型由类型字段和代码字段共同决定

    • 16位检验和。和IP首部检验和的算法同样。

    我们常常使用的ping程序就是基于ICMP报文进行的传输。pingclient发送一个ICMP回显请求报文,server收到此报文后返回一个ICMP回显应答报文作为应答。client和server都是在内核层发送和接受该报文的,而不是通过用户进程。

    回显请求和回显应答报文格式例如以下:



    类型0 + 代码0 = 回显应答
    类型8 + 代码0 = 回显请求

    ICMP回显请求和回显应答报文多出了几个特有的字段:
    • 标识符。表示发送进程的ID号。
    • 序号。

      从0開始,每发送一个新的回显请求就加1.

    • 选项数据。实际载荷,比如保存发送时间。接收端用当前时间减去发送时间就能计算出往返时间。

    以下是抓包的结果:


    client一共向server发送了4个回显请求。TTL字段是在IP首部中的。因为ICMP属于IP层协议,而IP层又是不可靠、无连接、尽力而为式的传输,所以ping偶尔会出现传输出错的情况。

    參考:
    《TCP/IP具体解释》第6章、第7章。
  • 相关阅读:
    JQuery:JQuery语法、选择器、事件处理
    循序渐进DB2(第2版)——DBA系统管理、运维与应用案例
    高级进阶DB2(第2版)——内部结构、高级管理与问题诊断
    DB2数据库性能调整和优化(第2版)
    金融工程中的蒙特卡罗方法
    代数学教程
    拓扑线性空间与算子谱理论
    李代数(第2版)
    编程的修炼(中英双语)
    iOS应用开发详解
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/5152397.html
Copyright © 2020-2023  润新知