今天复习到ICMP(Internet Control Message Protocol)网际控制报文协议,就顺便做个笔记,时不时复习一下,以免忘记。(实际上我经常忘记,嘻嘻)。
1.ICMP报文的作用
- 为了更有效的转发IP数据报和提高交付成功的机会。ICMP允许主机和路由器报告差错情况和提供有关异常情况的报告。
2.ICMP报文的格式
- 前4个字节类型、代码、检验和,接着4个字节的内容与ICMP报文的种类有关,再就是ICMP报文的数据,其长度也取决于ICMP报文的类型。而且ICMP报文是封装再IP数据报的数据部分里面。
3.ICMP报文的类型
差错报告报文
(1)终点不可达 当路由器主机不能交付数据包时就向源点发送终点不可达报文
(2)时间超过 当路由器收到生存时间为0的数据报时,除丢弃该数据包外,还要向源点发送时间超过报文。另外一种情况就是当路由器在预定时间内不能收到一个数据报的全部数据报片时,也要丢弃,并向源点发送时间超过报文。
(3)参数问题 当路由器或目的主机收到的数据报首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文。
(3)重定向(改变路由)路由器把改变路由报文发送给主机,让主机知道下次应该将数据报发送给另外的路由器(通过更好的路由)。不应发送ICMP差错报文的几种情况
(1)对本身就是ICMP差错报文的报文,不发送。
(2)对分片的IP数据包,只对第1片数据报进行发送。
(3)对具有多播地址的数据报不发送。
(4)对特殊地址(127.0.0.0与0.0.0.0)的数据报不发送差错控制报文。询问报文
(1)回送请求和回答
作用:测试目的站是否可达以及了解其有关状态。
过程:由主机或者路由器向特定的目的主机发出的询问,并由收到回送请求报文的主机发送一个回送回答报文。
(2)时间戳请求和回答
作用:用于时钟同步和时间测量。
过程:时间戳请求报文是请求某台主机或路由器回答当前的日期和时间,而时间戳回答报文记录的是从1900年1月1日到当前时刻一共有多少秒。