首页 > 代码库 > 【网络基础】ICMP报文和ping指令
【网络基础】ICMP报文和ping指令
ICMP报文:
作用:
为了更有效转发IP数据报和提高 IP 数据报交付成功的机会,
在网际层使用了网际控制报文协议 ICMP (Internet Control Message Protocol)。
概念:
ICMP 不是高层协议,而是 IP 层的协议。ICMP 报文作为 IP 层数据报的数据,加上数据报的首部,组成 IP 数据报发送。
格式:
种类(对应ICMP报文内的类型字段):
ICMP 报文的种类有两种,即 ICMP 差错报告报文和 ICMP 询问报文。
ICMP差错报告报文共有五种:
<1>. 源点不可达。当路由器或主机不能交付数据报时就向源点发送终点不可达报文。
<2>. 源点抑制。当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文。
<3>. 时间超过。当路由器收到生存时间为零的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文。
<4>. 参数问题。当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文。
<5>. 改变路由(重定向)。路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器。
ICMP询问报文有两种:
<1>. 回送请求和回答。ICMP回送请求报文是由主机或路由器向一个特定的目的主机发出的询问。收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。这种询问报文用来测试目的站是否可达以及了解其有关状态。(ping指令原理)
<2>. 时间戳请求和回答。ICMP时间戳请求报文是请某个主机或路由器回答当前的日期和时间。在ICMP时间戳回答报文中有一个32位的字段,其中写入的整数代表从1900年1月1日到当前时刻一共有多少秒。可用来进行时钟同步和测量时间。
应用:
icmp报文的一个应用实例是ping指令。用来测试两个主机之间的连通性。ping使用了ICMP回送请求与回送应答报文。ping是应用层直接使用网络层协议的一个例子。没有通过运输层的TCP和UDP。下面为作者亲测的一个ping指令演示:
本文由Cout_Sev 搜集整理并修改
转载请注明出处
谢谢!
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。