网络层协议之报文控制机协议ICMP
2016-05-06 17:00
621 查看
为什么会提出ICMP
ICMP控制报文协议
IP层的主要控制功能包括差错控制、拥塞控制和路由控制。若在IP报文传输过程中出现错误,IP协议本身并没有一种内在的机制获取差错信息并进行差错控制。比如以下问题IP协议本身是不能解答的:(1)数据报是否正确地到达了接收端?(2)若数据报不能到达接收方,那么这是什么原因造成的?
为此,在TCP/IP中设计了ICMP协议来处理报文传输过程中出现的错误,ICMP是IP层的一个组成部分。具体如下:
(1)当中间路由器或目标主机发现数据报文在传输过程中出现错误,不能到达接收端时,主机或者路由器的ICMP模块将被触发,并产生一个ICMP报文向信源机报告出错情况。
(2)在实际应用中,ICMP不但用来传输报告差错的报文,它还用来传输控制报文。
(3)ICMP并不能提高IP协议的可靠性,只是当IP数据报不能到达接收端时,用来向发送端的IP层通知数据报因何原因没有到达接收端,以便发送端的IP层能够进行差错控制和差错处理。
(4)目前的ICMP已成为用于IP层差错和控制报文传输的专用协议。
ICMP类型
这是一个完整的ICMP类型的列表:Table C-1. ICMP类型
ICMP控制报文协议
IP层的主要控制功能包括差错控制、拥塞控制和路由控制。若在IP报文传输过程中出现错误,IP协议本身并没有一种内在的机制获取差错信息并进行差错控制。比如以下问题IP协议本身是不能解答的:(1)数据报是否正确地到达了接收端?(2)若数据报不能到达接收方,那么这是什么原因造成的?
为此,在TCP/IP中设计了ICMP协议来处理报文传输过程中出现的错误,ICMP是IP层的一个组成部分。具体如下:
(1)当中间路由器或目标主机发现数据报文在传输过程中出现错误,不能到达接收端时,主机或者路由器的ICMP模块将被触发,并产生一个ICMP报文向信源机报告出错情况。
(2)在实际应用中,ICMP不但用来传输报告差错的报文,它还用来传输控制报文。
(3)ICMP并不能提高IP协议的可靠性,只是当IP数据报不能到达接收端时,用来向发送端的IP层通知数据报因何原因没有到达接收端,以便发送端的IP层能够进行差错控制和差错处理。
(4)目前的ICMP已成为用于IP层差错和控制报文传输的专用协议。
ICMP类型
这是一个完整的ICMP类型的列表:Table C-1. ICMP类型
TYPE | CODE | Description | Query | Error |
---|---|---|---|---|
0 | 0 | Echo Reply——回显应答(Ping应答) | x | |
3 | 0 | Network Unreachable——网络不可达 | x | |
3 | 1 | Host Unreachable——主机不可达 | x | |
3 | 2 | Protocol Unreachable——协议不可达 | x | |
3 | 3 | Port Unreachable——端口不可达 | x | |
3 | 4 | Fragmentation needed but no frag. bit set——需要进行分片但设置不分片比特 | x | |
3 | 5 | Source routing failed——源站选路失败 | x | |
3 | 6 | Destination network unknown——目的网络未知 | x | |
3 | 7 | Destination host unknown——目的主机未知 | x | |
3 | 8 | Source host isolated (obsolete)——源主机被隔离(作废不用) | x | |
3 | 9 | Destination network administratively prohibited——目的网络被强制禁止 | x | |
3 | 10 | Destination host administratively prohibited——目的主机被强制禁止 | x | |
3 | 11 | Network unreachable for TOS——由于服务类型TOS,网络不可达 | x | |
3 | 12 | Host unreachable for TOS——由于服务类型TOS,主机不可达 | x | |
3 | 13 | Communication administratively prohibited by filtering——由于过滤,通信被强制禁止 | x | |
3 | 14 | Host precedence violation——主机越权 | x | |
3 | 15 | Precedence cutoff in effect——优先中止生效 | x | |
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请求) | x | |
9 | 0 | Router advertisement——路由器通告 | ||
10 | 0 | Route solicitation——路由器请求 | ||
11 | 0 | TTL equals 0 during transit——传输期间生存时间为0 | x | |
11 | 1 | TTL equals 0 during reassembly——在数据报组装期间生存时间为0 | x | |
12 | 0 | IP header bad (catchall error)——坏的IP首部(包括各种差错) | x | |
12 | 1 | Required options missing——缺少必需的选项 | x | |
13 | 0 | Timestamp request (obsolete)——时间戳请求(作废不用) | x | |
14 | Timestamp reply (obsolete)——时间戳应答(作废不用) | x | ||
15 | 0 | Information request (obsolete)——信息请求(作废不用) | x | |
16 | 0 | Information reply (obsolete)——信息应答(作废不用) | x | |
17 | 0 | Address mask request——地址掩码请求 | x | |
18 | 0 | Address mask reply——地址掩码应答 |
相关文章推荐
- 使用AFNetworking, SDWebimage和OHHTTPStubs
- gSOAP使用的网络模型
- iOS 网络编程之TCP/IP <一>框架介绍
- IOS开发 轻松掌握AFN网络框架
- 从网络获取数据(1)从newThread到AsyncTask在到IntentService
- 文件远程下载和查看
- 用CornerStone配置SVN,HTTP及svn简单使用说明
- BZOJ4538: [Hnoi2016]网络
- Tomcat服务器常用配置和HTTP简介
- 网络加载图片问题
- JavaWeb学习篇之----HTTP协议详解
- 关于启用 HTTPS 的一些经验分享
- 用 Retrofit 2 简化 HTTP 请求
- HTML5 XMLHttpRequest中的新功能
- TCP三次握手
- [Linux]Web性能测试http_load
- OkHttp3.1以上信任所有证书
- 【UNIX网络编程】基本TCP套接字编程
- Linux+Nginx/Apache/Tomcat新增SSL证书,开启https访问教程
- 聚铭网络科技-信息安全专家