HCNA学习笔记(五)ICMP协议
来源:互联网 发布:命令行启动mysql 编辑:程序博客网 时间:2024/05/26 20:23
Internet控制报文协议ICMP(Internet Control Message Protocol)是网络层的一个重要协议。ICMP协议用来在网络设备间传递各种差错和控制信息,它对于收集各种网络信息、诊断和排除各种网络故障具有至关重要的作用。使用基于ICMP的应用时,需要对ICMP工作原理非常熟悉。
ICMP是TCP/IP协议簇的核心协议之一,它用于在IP网络设备之间发送控制报文,传递差错、控制、查询等信息(ping命令用的就是ICMP协议的应用之一)。
1.1 ICMP重定向
ICMP Redirect重定向消息用于支持路由功能。如图所示,主机A希望发送报文到服务器A,于是根据配置的默认网关地址向A的网关网关RTB发送报文。网关RTB收到报文后,检查报文信息,发现报文应该转发到与源主机在同一网段的另一个网关设备RTA,因为此转发路径是更优的路径,所以RTB会向主机发送一个ICMP Redirect重定向消息,通知主机A直接向另一个网关RTA发送该报文。主机收到Redirect重定向消息后,以后会访问20.网段时候直接向RTA发送报文,然后RTA会将该报文再转发给服务器A。
注意:ICMP重定向是针对不同网段的,如果主机A又要访问一个30.网段,那么还是要首先发往A主机的网关RTB后进行重定向。
1.2 ICMP数据包格式
ICMP消息封装在IP报文中。ICMP消息的格式取决于Type和Code字段,其中Type字段为消息类型,Code字段包含该消息类型的具体参数。后面的校验和字段用于检查消息是否完整。消息中包含32比特的可变参数,这个字段一般不使用,通常设置为0。在ICMP Redirect消息中,这个字段用来指定网关IP地址,主机根据这个地址将报文重定向到指定网关。在Echo请求消息中,这个字段包含标识符和序号,源端根据这两个参数将收到的回复消息与本端发送的Echo请求消息进行关联。尤其是当源端向目的端发送了多个Echo请求消息时,需要根据标识符和序号将Echo请求和回复消息进行一一对应。
1.3 ICMP消息类型和编码类型
ICMP定义了多种消息类型,并用于不同的场景。有些消息不需要Code字段来描述具体类型参数,仅用Type字段表示消息类型。比如,ICMP Echo回复消息的Type字段设置为0。有些ICMP消息使用Type字段定义消息大类,用Code字段表示消息的具体类型。比如,类型为3的消息表示目的不可达,不同的Code值表示不可达的原因,包括目的网络不可达(Code=0)、目的主机不可达(Code=1)、协议不可达(Code=2)、目的TCP/UDP端口不可达(Code=3)等。
1.4 ICMP应用-Tracert
ICMP的另一个典型应用是Tracert。向一个目的地,如下图的30.0.0.2/24执行Tracert命令,Tracert会基于报文头中的TTL值来逐
跳跟踪报文的转发路径。为了跟踪到达某特定目的地址的路径,源端首
先将报文的TTL值设置为1。该报文到达第一个节点后,TTL超时,于是
该节点向源端发送TTL超时消息,消息中携带时间戳。然后源端将报文
的TTL值设置为2,报文到达第二个节点后超时,该节点同样返回TTL超
时消息,以此类推,直到报文到达目的地。这样,源端根据返回的报文
中的信息可以跟踪到报文经过的每一个节点,并根据时间戳信息计算往
返时间。Tracert是检测网络丢包及时延的有效手段,同时可以帮助管理
员发现网络中的路由环路。
Tracert常用的配置参数说明如下:
1. -a source-ip-address指定tracert报文的源地址。
2. -f first-ttl指定初始TTL。缺省值是1。
3. -m max-ttl指定最大TTL。缺省值是30。
4. -name使能显示每一跳的主机名。
5. -p port指定目的主机的UDP端口号。
总结:
1.Ping使用的是哪两个ICMP消息?
答:Ping利用ICMP Echo request请求消息(Type值为8)来发起检测目的可达
性。目的端收到ICMP Echo请求消息后,根据IP报文头中的源地址向源端发送
ICMP Echo replay回复消息(Type值为0)。
2. 当网络设备收到TTL值为0的IP报文时,会如何操作?
答:如果IP数据包在到达目的地之前TTL值已经降为0,则收到IP数据包的网络设备会丢弃该数据包,并向源端发送ICMP消息通知源端TTL超时。
阅读全文
0 0
- HCNA学习笔记(五)ICMP协议
- 5.HCNA-HNTD——ICMP协议
- Linux icmp 学习笔记 之一 icmp协议相关的格式
- TCP-IP协议详解学习笔记-- ICMP
- HCNA学习笔记(四)IP编址
- TCP/IP协议学习笔记(4)--ICMP协议
- ICMP协议笔记
- 华为HCNA教程(笔记)
- 华为HCNA学习笔记----第一天
- TCP/IP详解学习笔记(5)-- ICMP:internet 控制报文协议
- TCP/IP学习笔记(九)——ICMP:Internet控制报文协议
- TCP/IP网络协议学习笔记四--ICMP
- ICMP:Internet控制报文协议实现学习笔记
- TCP/IP学习笔记(4)-ICMP协议,ping和Traceroute
- TCP/IP协议学习(3)-ICMP协议及应用
- HTTP协议学习笔记五
- TCP/IP illustrated 阅读笔记(六) ICMP协议
- HCNA学习笔记(二)传输介质、冲突域、双工/半双工
- POJ 2186 Popular Cows 强连通分量(Kosaraju)
- 程序猿学习第三天,框架和表单
- Android 拖拽ViewDragHelper解析 自定义ViewGroup神器
- Gym
- 咖啡
- HCNA学习笔记(五)ICMP协议
- /etc/fstab 文件解释
- 最大子矩阵和
- 中医穴位
- Js之Navigator对象
- 对110W知乎用户信息进行分析,使用echarts+servlet+jsp可视化展示
- javascript运行机制
- 0519
- Error: "***" is not translated in "zh" (Chinese) [MissingTranslation]