1、Part XII,网络互连Part 3(控制消息, 错误处理, ICMP),2018/9/24,2,IP 语义,IP 定义了一种尽力而为(best effort)的通信服务意味着:数据包可能丢失 lost延时 delay复制 duplicate无顺序的传递 out of order破坏 corrupt,2018/9/24,3,错误检测,IP 服务不是不关心错误试图避免错误,并在错误发生时报告错误能检测到的错误被破坏的数据位不合法的地址路由循环分段丢失,2018/9/24,4,问题和解决方案,被破坏的报头位报头checksum不合法的目的地址路由表路由回路Time-To-Live (TTL) 域
2、分段丢失超时timeout,2018/9/24,5,网间控制消息协议 (ICMP),是一个与IP协议分开的协议,专用于汇报错误反馈信息IP必需包含该协议:彼此依赖IP使用ICMP发送错误消息ICMP使用IP传输消息,2018/9/24,6,ICMP 消息类型范例,2018/9/24,7,ICMP 消息范例,源抑制信息 Source Quench(路由器)当路由器收到太多数据包以至于没有缓存来容纳新包时,由路由器发出Source Quench消息请求发送主机减慢数据发送速度。同时,无法容纳的新包被丢弃,2018/9/24,8,ICMP 消息范例(续),超时 Time Exceeded(路由器/主
3、机)以下情况,通过路由器发出:数据包的TTL达到零值注意这不是一个重传请求以下情况,通过主机发送重组定时器超时 (一些片段丢失),2018/9/24,9,ICMP 消息范例(续),目的不可达 Destination Unreachable (路由器)当路由器判定一个包不能达到其最终目的地时发出,该信息详细说明 是否目的网络不能到达 (整个网络临时不通)目的主机不能到达 (特定主机离线)目的地的协议口不能到达(目标程序未运行),2018/9/24,10,ICMP 消息范例(续),重定向 Redirect (路由器)当路由器判定主机发送的包应由其他路由器转发时,通知局域网内的主机请求主机改变路由器
4、,2018/9/24,11,ICMP 消息范例(续),回声请求和应答 Echo Request / Reply(主机/路由器)非错误信息测试目的主机是否能达到通过 ping 程式发送请求目的主机通过ICMP进行应答,2018/9/24,12,ICMP 消息传送,ICMP消息总是返回给消息源 (可通过互连网)消息在IP协议上运载Eg. 当路由器发送ICMP消息时,会先创建一个IP报文,并将ICMP消息放在IP包的数据区中传输。,2018/9/24,13,ICMP消息封装图解,两层封装IP类型域指明是 ICMP消息,2018/9/24,14,避免无限循环,如果如下,将发生什么:数据包D导致一个IC
5、MP错误消息I1错误消息I1导致一个新的消息, 将产生新的ICMP消息 I2消息I2导致新的错误 I3错误消息不停延续发生为消除这个问题ICMP 消息本身的错误不再产生错误消息,2018/9/24,15,ICMP的用途:path MTU 发现,从源到目标的最小MTU被称为path MTU路由器相对稳定,path MTU亦然IP数据包报头包含了一位标志是否允许分片的FLAG当路由器需要分片但是IP包不允许的时候,路由器便会发发送一个ICMP错误消息方法源主机通过不断试探来判断path MTU,寻找不产生错误消息的最大MTU。,2018/9/24,16,总结,IP uses best-effort delivery semanticsIP 协议中的查错机制:Header checksumTime-to-live field,2018/9/24,17,总结 (续),Internet Control Message Protocol既有错误又有信息消息和IP紧密集成ICMP 消息封装在IP中回送消息源像PING一样的诊断程式严重依赖该协议,