ICMP协议-路由交换原理4-【HCNA笔记】

1、ICMP数据包格式

ICMP协议属于网络层,是TCP/IP协议族的一个子协议,ICMP数据包被封装在IP报文中。网络中传递的ICMP包示意如下,:

ICMP数据包格式
帧头 IP报头 Data(ICMP包) FCS
Type Code Checksum data
8位 8位 16位 按需要

Type:消息类型。

Code:消息类型的具体参数。

Checksum:校验字段,用于检查消息是否完整;在ICMP重定向消息中用于指定网关IP地址;在Echo Reply消息中这个字段包含标识符和序号。

data:数据字段,根据不同使用需求,内容不一样。

2、ICMP消息格式

ICMP消息格式(加粗部分为常用)

Type

Code 描述 备注
0 0 Echo Reply 回显应答(ping应答)
3
0 Network Unreachable 网络不可达
3 1 Host Unreachable
主机不可达

3 2 Protocol Unreachable 协议不可达(不支持该协议号)
3 3 Port Unreachable 端口不可达(主机没有开放该端口)
3 4 Fragmentation needed but no frag.bit set 需要进行分片但设置不分片比特
3 5 Source routing failed 源站选路失败
3 6 Destination network unknown 目的网络未知
3 7 Destination host unknown 目的主机未知
3 8 Source host isolated (obsolete) 源主机被隔离(作废不用)
3 9 Destination network administratively prohibited 目的网络被强制禁止
3 10 Destination host administratively prohibited 目的主机被强制禁止
3 11 Network unreachable for TOS 由于服务类型TOS,网络不可达
3 12 Host unreachable for TOS 由于服务类型TOS,主机不可达
3 13 Communication administratively prohibited by filtering 由于过滤,通信被强制禁止
3 14 Host precedence violation 主机越权
3 15 Precedence cutoff in effect 优先中止生效
4 0 Source quench 源端被关闭(基本流控制)
5 0 Redirect for network 对网络重定向
5 1 Redirect for host 对主机重定向
5 2 Redirect for TOS and network 对服务类型和网络重定向
5 3 Redirect for TOS and host 对服务类型和主机重定向
8 0 Echo Request 回显请求(Ping请求)
9 0 Router advertisement 路由器通告
10 0 Route solicitation 路由器请求
11 0 TTL equals 0 during transit 传输期间生存时间为0
11 1 TTL equals 0 during reassembly 在数据报组装期间生存时间为0
12 0 IP header bad (catchall error) 坏的IP首部(包括各种差错)
12 1 Required options missing 缺少必需的选项
13 0 Timestamp request (obsolete) 时间戳请求(作废不用)
14 0 Timestamp reply (obsolete) 时间戳应答(作废不用)
15 0 Information request (obsolete) 信息请求(作废不用)
16 0 Information reply (obsolete) 信息应答(作废不用)
17 0 Address mask request 地址掩码请求
18 0 Address mask reply 地址掩码应答

3、ICMP功能

ICMP用于在主机、路由器之间传递控制消息,包括错误报告、交换受限控制和状态信息等。通常的应用场景是主机向远端发送数据而路由找不到远端,于是向主机发送一个ICMP报文告知其错误情况,我们称之为差错报文,需要注意ICMP的唯一功能是报告问题而不是纠正错误。另一种情况是主机向路由或远端发送一个ICMP请求报文,并获取ICMP回复报文以获取当前网络情况等信息,这种称之为询问报文。

ICMP差错报文共5种:

ICMP差错报文
终点不可达 包括网络不可达、主机不可达、协议不可达、端口不可达、需要分片但DF比特已置为1、源路由失败六种情况,当出现上述六种情况时就向源站发送终点不可达报文。
源站抑制 当路由器或主机由于拥塞而丢弃数据时,就向源站发送源站抑制报文使源站知道应当将数据报文的发送速率放缓。
超时
当路由器收到生存时间为0的数据,或目的站在预先规定的时间内没有收到一个数据报的全部数据报片段均判定为超时,则丢弃数据并向源站发送超时报文。

参数问题 路由器或目的站收到的数据报首部的字段存在值不正确则丢弃该数据,并向源站发送参数问题报文。
重定向 当路由器检测到源站使用非优化路由时就会向该主机发送一个ICMP重定向报文,请求主机改变路由。

为避免ICMP差错报文对广播分组响应所带来的广播风暴,以下五种情况都不会导致ICMP差错报文的产生:

1)路由器或主机在收到异常的ICMP差错报文时不会产生新的差错报文。

2)目的地址是广播地址或多播地址的IP数据报。

3)作为链路层广播的数据报。

4)不是IP分片的第一片,避免每个分片都产生一个新的差错报文。

5)源地址不是单个主机的数据报。

ICMP询问报文有四种:

ICMP询问报文
回送请求和回答 ICMP回送请求报文是主机或路由器向一个特定目的端发出的询问,收到报文的目的端必须发送ICMP回送应答报文给源端。目前在于测试目的端是否可达并了解其有关状态。
时间戳请求和回答 源端可以发送一个ICMP时间戳请求报文向另一个系统查询当前的时间,该报文的好处是可提供毫秒级的时间分辨率。
掩码地址请求和回答 主机使用ICMP掩码地址请求报文可向子网掩码服务器得到某个接口的掩码地址。
路由询问和通过 主机将路由器询问报文进行广播或多播,收到询问的路由器就使用路由器通过报文广播其路由选择信息。通过这种方式主机可了解连接在本网络上的路由器是否正常工作。

4、ICMP应用

Ping:

Ping是检测网络连通性的常用工具,同时也能收集其他相关信息。用户可以在Ping命令中指定不同参数,常用配置参数说明如下:

-a source-ip-address 指定ICMP报文的源IP地址
-c count 指定发送报文的次数,缺省发送5个
-h ttl-valuse 指定TTL的值,缺省是255
-t timeout 指定等待应当报文的超时时间

Tracert:

源主机想知道访问目的主机的路径,它向第一个路由器发送一个TTL值为1的ICMP包且使用一个目的主机无法识别的端口,第一个路由器A收到该包后先将TTL值减1发现此时TTL=0于是不再转发并返回一个ICMP包给源主机,其中就包含了路由器A的地址。主机A收到路由器A的应答知道了路由器A的地址,便再次发送一个TTL值为2的ICMP包,路由器A收到该包后会向下转发则路由器B会收到该包,由于TTL=0则路由器B会返回一个ICMP包给源主机。通过这种方法层层传递到目的主机,目的主机发现该包端口太大无法识别于是向源主机回复一个目的不可达的ICMP包,源主机收到这个回复的包就知道自己发送的包已到达目的主机。则整个路径的IP就被源主机获悉。

【需要分片但DF比特已置为1】路由器收到一份需要分片的数据报,而其IP首部中的DF字段被置为1,表明不需要分片,此时路由应向源主机发送一个ICMP差错报文。

时间: 2024-12-27 14:25:26

ICMP协议-路由交换原理4-【HCNA笔记】的相关文章

ARP协议-路由交换原理5-【HCNA笔记】

1.ARP报文格式 ARP协议工作在数据链路层,网络中传输的ARP包示意如下(由于字段较多,这里对连续字段进行换行处理): 帧头 Data(ARP包) FCS ARP包: Hardware Type Protocol Type Hardware Length Protocol Length Operation Code 16位 16位 8位 8位 16位 Source Hardware Address Source Protocol Address 48位 32位 Destination Har

交换机工作原理-路由交换原理7-【HCNA笔记】

1.交换原理 我们知道交换机有若干个物理端口,端口可以接入主机.路由或其他交换机.同时接入交换机的设备都有一个MAC地址,交换机内部存储着一张缓存表,表上记录着各个端口对应设备的MAC地址.这样当一台主机需要向另一台设备发送数据时,在数据帧中注明目的设备的MAC地址,交换机读取该MAC地址,查询缓存表找到对应的端口号,将帧直接发往该端口对应的设备即可.缓存表示意如下. 端口 MAC地址 0 00-50-BA-CE-07-0C 1 00-50-BA-CE-07-0D 2 00-50-BA-CE-0

【HCNA笔记】路由交换原理-1 802.3和以太网帧结构

1.RAW 802.3帧格式 前导字段 帧起始符 DMAC SMAC Length Data FCS 7字节 1字节 6字节 6字节 2字节 46-1500字节 4字节 前导字段:每个帧以7个字节的前导字段开头,以0.1间隔代码组成,用以通知目标端作好接收准备(10101010 10101010 10101010 10101010 10101010 10101010 10101010). 帧起始符:紧跟前导字段,值为10101011,最后两位'11'表示帧的实际开始.前导字段与起始符由物理设备自

IP路由基础-路由交换原理9-【HCNA笔记】

1.路由原理 数据在网络上传输时,要先查询本机的路由表而后根据路由表的指示,决定是将该包发往交换机进行帧交换还是直接发往路由器进行IP寻址.首先不同的数据在传输层根据不同的协议打包成各种传输报文,报头中记录的内容可以控制传输的过程,如TCP报文.UDP报文等.而后根据目的地不同在网络层被加上了IP报头,其中指明了目的设备的IP地址.将报文递交给网卡之前,设备先查询自己的路由表,如下图所示,这个表中记录着本机的路由策略,即不同类型的IP地址在接下来应当如何被传递.(说明:本机IP是192.168.

IP编址-路由交换原理2-【HCNA笔记】

1.IP报文组成 IP报文由IP报头和Data部分组成,报头由6个数据块组成,其中前5个数据块每块大小是固定的4字节(32位),后一个数据块长度可变,但规定了IP报头最大不能超过60字节,所以IP报头的大小范围在20到60字节. IP报头 Data 数据块1 数据块2 数据块3 数据块4 数据块5 数据块6 4字节 4字节 4字节 4字节 4字节 0-40字节 20-60字节 2.IP报头详解 数据块1(32位=4字节) Version Header Length Type of Service

STP原理-路由交换原理11-【HCNA笔记】

1.BPDU报文格式 交换机之间使用BPDU(网桥协议数据单元)来交换STP(生成树协议)信息,BPDU报文分为配置BPDU和TCN BPDU两类分别对应STP的两种应用场景(STP工作在数据链路层). BPDU帧 帧头 Data(BPDU报文) FCS 配置BPDU(Configuration BPDU)报文:用来进行生成树计算和维护生成树拓扑. 配置BPDU报文1 Protocol ID Protocol Version ID BPDU Type Flags Root ID Root Pat

802.3和以太网帧结构-路由交换原理1-【HCNA笔记】

1.RAW 802.3帧格式 前导字段 帧起始符 DMAC SMAC Length Data FCS 7字节 1字节 6字节 6字节 2字节 46-1500字节 4字节 前导字段:每个帧以7个字节的前导字段开头,以0.1间隔代码组成,用以通知目标端作好接收准备(10101010 10101010 10101010 10101010 10101010 10101010 10101010). 帧起始符:紧跟前导字段,值为10101011,最后两位‘11’表示帧的实际开始.前导字段与起始符由物理设备自

TCP/IP详解学习笔记(4)-ICMP协议,ping和Traceroute

转自:http://blog.csdn.net/goodboy1881/article/details/670761 ———————————————————————————————————————————————————————— 1.IMCP协议介绍 前面讲到了,IP协议并不是一个可靠的协议,它不保证数据被送达,那么,自然的,保证数据送达的工作应该由其他的模块来完成.其中一个重要的模块就是ICMP(网络控制报文)协议. 当传送IP数据包发生错误--比如主机不可达,路由不可达等等,ICMP协议将

TCP/IP协议原理与应用笔记17:IP编址之 IP地址简介(重点)

1. IP地址(通用标识符) 对于同一个网络设备(主机或路由器)的不同网络连接,需要不同的IP地址进行标识 2. 主机标识符 主要有下面三种方式的主机标识方式: (1)Name:是什么,可读性强(了解主机的属性或者用途) (2)Address:在哪里,软件效率高. (3)Route(路由的标识):怎样到达 3. IP地址结构 (1)32 bit二进制地址 它模拟物理网的编址机制,如下示意图: (2)IP地址分类,如下: TCP/IP协议原理与应用笔记03:IP地址分类