ICMP(网际控制报文协议)
为了更有效的提高ip数据报的成功转发和交付的效率,在网际层使用了icmp网际控制报文协议,这个协议允许主机和路由器提供差错和异常情况的报告,icmp不是高层协议,而是网际层的协议,加在ip数据报中一起发出
ICMP的报文种类有ICMP差错报文和ICMP询问报文:
差错报告报文有5种:
(1)终点不可以到达:当路由器和主机不能交付的时候:
(2)源点抑制:当路由器由于网络拥塞而丢弃的时候
(3)时间超过:当路由器收到生存时间为0的数据报的时候
(4)参数问题:当目的主机发现收到的数据报首部有问题的时候
(5)改变路由:路由器把改变你的路由交付主机,告诉下一次的主机
改变路由:每一个主机都有一个自己的路由表,当该主机发送数据报的时候,他先查看自己的路由表,看看应该从哪一个接口吧数据报发送出去,由于主机的数量过大,主机不会主动去更新自己内部的路由表,所以,在一个新的主机加入的时候,都会加入一个默认的路由,他会将数据报发送给这个默认的路由,这个默认路由知道到达每一个目的·ip的最佳路由,如果发现最佳的转发路由不是自己,而是另一个,他就用改变路由报文发送黑源主机,源主句就在自己的路由表中加入这个信息
所有的icmp差错报文都是一样的,把收到的数据报的首部和数据字段的前8个字节提取出来,在在前面加上ICMP的前8个字节,就构成了ICMP的差错报告报文。这个作为数据报的数据字段,在加上首部,一起作为ip数据报发送出去。
两种ICMP询问报文:
(1)ICMP请求与回答报文:主机和路由器向主机发送一个ICMP请求报文,目的主机发送一个ICMP回答报文,用来测试两方能否互相通信
(2)ICMP时间戳请求与回答报文:ICMP时间戳报文请某个主机和路由器回答当前的时间,ICMP回答时间戳是一个32位的字段,其中写入的整数表示从1900/1/1到现在的秒数
ICMP应用ping
(1)ping直接是应用层调用网路层的一个例子,应用ICMP请求与回答报文
连续发送4个icmp请求报文
(2)traceroute:用来跟踪源主机到目的主机的路径
是从源主机向目的主机发送的一连串的ip数据报,数据报中封装的无法交付的UDP用户数据报(就是使用了非法端口),第一个将生存时间TTL设为1,到达第一个路由,TTL-1=0.路由器直接丢弃,并向源主机发送了ICMP时间超过差错报文,第二次的TTL生存时间为2,这样依次进行,知道某个路由接受到的ttl-1=1,那么主机不转发了,但是因为无法交付,就返回一个ICMP终点不可到达差错报文。这样就结束了
并不一定经过的路由器多时间就多,可能路由器少的会发生阻塞
ICMP(网际控制报文协议)的更多相关文章
- ICMP(Internet Control Message Protocol)网际控制报文协议初识
ICMP是(Internet Control Message Protocol)Internet控制报文协议.它是TCP/IP协议族的一个子协议,用于在IP主机.路由器之间传递控制消息.控制消息是指网 ...
- ICMP Internet控制报文协议
ICMP是(Internet Control Message Protocol)Internet控制报文协议.它是TCP/IP协议族的一个子协议,用于在IP主机.路由器之间传递控制消息.控制消息是指网 ...
- 2016.7.9 计算机网络复习要点第四章之网际控制报文协议ICMP
1.ICMP允许主机或路由器报告差错情况和提交有关异常情况的报告:为了更有效地转发IP数据报和提高交付成功的机会: 2.ICMP不是高层协议,因为ICMP报文是装在IP数据报中的,作为其中数据部分,所 ...
- 《TCP/IP具体解释卷2:实现》笔记--ICMP:Internet控制报文协议
ICMP在IP系统间传递差错和管理报文,是不论什么IP实现必须和要求的组成部分.能够把ICMP分成两类:差错和查询.查询报文 是用一对请求和回答定义的.差错报文通常包括了引起错误的IP包的第一个分片的 ...
- 国际控制报文协议ICMP
国际控制报文协议ICMP ICMP简介 ICMP 用于主机或路由器报告差错情况和提供有关异常情况的报告(检测网络错误). ICMP 不是高层协议,而是 IP 层的协议. ICMP 报文的格式 ICMP ...
- 《TCP/IP详解卷1:协议》第6章 ICMP:Internet控制报文协议-读书笔记
章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...
- TCP/IP详解学习笔记(5)-- ICMP:internet 控制报文协议
1.概述 ICMP是(Internet Control Message Protocol)Internet控制报文协议.它是TCP/IP协议族的一个子协议,用于在IP主机.路由器之间传递控制 ...
- ICMP:Internet控制报文协议
ICMP:Internet控制报文协议. 是IP层的组成部分.传递差错报文或其他信息. ICMP报文被封装在IP数据报内部: 详细格式例如以下所看到的: 个字段含义例如以下: 8位类型. 表示该ICM ...
- ICMP:internet 控制报文协议
ICMP:internet 控制报文协议 1.概述 ICMP是(Internet Control Message Protocol)Internet控制报文协议.它是TCP/IP协议族的一个 ...
随机推荐
- Effective java -- 3 类和接口
第十三条:使类和成员的可访问性最小化 一个设计良好的模块会将实现细节隐藏起来,只将暴露API.模块之间调用并不知道对象的细节.这个概念成为信息隐藏或封装.要注意一点,设计的一个方法或者其他什么,只要不 ...
- leetcode-005 reorder list
1 package leetcode; public class ReOrderList { public void reorderList(ListNode head) { if(head==nul ...
- LIQN join on 后跟多个条件
sql 版:SELECT [t0].[OrderID], [t0].[CustomerID], [t0].[EmployeeID], [t0].[OrderDate], [t0].[RequiredD ...
- INSTALL_FAILED_UPDATE_INCOMPATIBLE
安装apk的时候,报错. 解决:把所有这个apk的相关信息删除干净,隐藏较深的是设置->应用管理->这个应用的相关信息删除干净就可以了
- [Angular Tutorial] 13 -REST and Custom Services
在这一步中,我们将会改变我们获取数据的方式. ·我们定义一个代表RESTful客户端的自定义服务.使用这个客户端,我们可以用一种更简单的方法向服务端请求数据,而不用处理更底层的$httpAPI,HTT ...
- sql语句:创建事物
BEGIN TRAN Tran_Money --开始事务 DECLARE @tran_error int; ; BEGIN TRY WHERE Name = '刘备'; SET @tran_error ...
- java监听事件
2014年2月23日 09:51:54 成功添加了打开官网的事件, 回头研究下,那个打开url的类 java的System.getProperty()方法可以获取的值 ################ ...
- bzoj3289
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3289 题目大意:Mato同学从各路神犇以各种方式(你们懂的)收集了许多资料,这些资料一共有n ...
- 基于Python,scrapy,redis的分布式爬虫实现框架
原文 http://www.xgezhang.com/python_scrapy_redis_crawler.html 爬虫技术,无论是在学术领域,还是在工程领域,都扮演者非常重要的角色.相比于其他 ...
- java 环境变量 windows(Java之负基础实战)
1.已经安装了JDK 添加系统变量 1.1.添加JAVA_HOME jdk路径,例如:C:\Program Files\Java\jdk1.8.0_65 1.2. PATH 添加内容 %JAVA_HO ...