TCP/IP illustrated 阅读笔记(六) ICMP协议
2016-10-30 11:12
471 查看
1. ICMP简介(ICMPv4)
ICMP全称为Internet ControlMessage ProtocolICMP为IP协议提供控制信息和diagnostic
ICMP装在IP数据包中,但是不是传输层协议(该层的协议为应用进程提供端到端的通信服务)也不是网络层协议(网络层提供路由和寻址的功能),算2.5层
需要注意的是,路由器由于拥塞丢包的行为不会生成ICMP message
Type表明ICMP类型,Code表明细分类型
2. ICMP功能
ICMP分为两类:errormessage 和 query/informationalmessageICMP错误消息中携带了发生错误的IP数据包的部分数据(包括IP header,大概500字节)
哪些些数据包不会引发ICMP error message
ICMPv4error messageIPv4目的地址为广播地址或者多播地址
数据链路层广播
fragment数据包非第一个包(应该指的是IP分段四层包)
源地址(没有指明是否为IP地址,应该包括二层地址)不是指向单个host(比如广播、全0地址,多播地址等)
当系统进行ICMP生成速率限制时也不会每个数据包都产生ICMP(避免ICMP占用过多网络资源)
3. 常用ICMP error message类型
3.1 Destination Unreachable(Type3)
Host Unreachable (Code1)
在direct delivery情况下,无法delivery 给目的IP(比如发送ARP消息,但是ARP的目标IP地址不存在)Communication Administratively Prohibited (Code 13)
通信被管理员级别的对象阻止了,通常是防火墙导致的Port Unreachable
数据包到达了目的host,但是端口不不可达,即没有应用程序当前从这个端口接受数据包(如UDP协议的端口)3.2 Redirect (Type 5)
host发送数据包时的下一跳路由器不是正确的路由器,当前路由器会将这个数据不傲转发给正确的路由器,并使用ICMP将这个消息告诉host,让host知道数据包下一跳应该是哪个路由器(IP地址),比如一个网络中有两个网关,一个host发错网关了,这个时候就可以产生重定向了(没有试验过,看描述是这样的)3.3 Time Exceeded(Type 11)
ttl耗尽了,路由器丢掉这个数据包是就会发一个Time Exceeded ICMPtraceroute 使用这个ICMP来获取路径,traceroute先发一个ttl为1的UDP包,的获得第一跳(第一跳路由器就会吧这个包丢掉,并发ICMP),,然后发一个ttl为2的UDP包,获取第二跳路由器,以此类推,直到到达最终目的地。
3.4 Parameter Problem (Type 12)
如果IP包中有些域出错了,并且没有合适的ICMP消息去告知这个错误,就使用这个ICMP告诉源主机是哪个域出错了4. 常用ICMP query/informational message类型
Echo Request/Reply (Type 0/8) ,对,就是ping用的
发送一个Request 然后接收Reply,这就是pingRequest中使用Identifier域来标识不同的Echo Request包(通常用进程的pid来作为identifier)
Reqeust包中存了发送时的时间,Reply时会复制Request的内容,所以一并复制了发送时的时间,Reply接收者(发送Request的人),读取时间然后和当前时间相减就获得RTT(round-trip time)了
Router DIscovery(type9,10)
用于路由发现,不过现在IPv4中基本由DHCP来做,Mobile IP中涉及到了这个消息类型,没有细说,后面可能会看到吧。相关文章推荐
- TCP/IP illustrated 阅读笔记(三) IP协议
- TCP/IP illustrated 阅读笔记(四) UDP协议和IP分段
- TCP/IPillustrated 阅读笔记(一) introduction
- TCP/IP illustrated 阅读笔记(二) 网络地址架构
- TCP/IP illustrated 阅读笔记(五) ARP协议
- TCP/IP Illustrated vol1 笔记 Broadcasting and Multicasting
- TCP/IP Illustrated vol1 笔记 IGMP
- linux tcp/ip 阅读笔记
- TCP/IP Illustrated vol 1 笔记 Path MTU
- TCP/IP Illustrated 笔记 BGP
- TCP/IP Illustrated 笔记 UDP Checksum
- TCP/IP Illustrated 笔记 IP Fragmentation
- TCP/IP Illustrated vol1 笔记 RIP OSPF
- TCP/IP Illustrated vol1 笔记 2MSL Wait State
- TCP/IP Illustrated 笔记 CIDR
- TCP/IP学习笔记之十 --- IGMP:Internet组管理协议
- 在Debian 4.0rc3上编译内核2.6.24时加入Layer7模块笔记[防火墙中在TCP/IP第七层Layer7应用层阻挡QQ,MSN等软件的应用]
- 学习笔记之三_子网划分、变长子网掩码(VLSM)和TCP/IP排错(CCNA知识考点)
- 学习笔记之二_TCP/IP(CCNA知识考点)
- TCP/IP 详解学习笔记--前言