当前位置:
文档之家› 《TCPIP协议分析》课程设计
《TCPIP协议分析》课程设计
我们在网络中经常会使用到ICMP协议,我们经常使用的用于检查网络通不通的Ping命令,这个“Ping”的过程实际上就是ICMP协议工作的过程。还有其他的网络命令如跟踪路由的Tracert命令也是基于ICMP协议的。ping程序是用来探测主机到主机之间是否可通信,如果不能ping到某台主机,表明不能和这台主机建立连接。ping使用的是ICMP协议,它发送ICMP回送请求消息到目的主机。ICMP协议规定:目的主机必须返回ICMP回送应答消息导源主机。如源主机在一定时间内收到应答,则认为主机可达。
(1)当数据报不能到达目的地时。
(2)当失去缓存和转发数据报功能时。
(3)当网关发现并能够引导主机在更短的路由上发送数据报时。
Ping使用ICMP回送和应答消息来确定一台主机是否可达。在运行命令行Ping另一台主机IP。如果目的端不可达则在命令行显示为
如果ping到了另一台主机,在协议分析器上就会有回显应答。在命令运行显示的结果就是
3
ICMP报文是放在一个IP数据报的数据部分中传送的。ICMP报文要求两级封装,如图。每个ICMP报文放在IP数据报的数据部分中通过互联网,而数据报本身放在帧的数据部分中通过物理网络。携带IMCP报文的IP数据报在传输过程中不具有任何优先级,与正常的IP数据报一样进行转发,唯一不同的是如果携带ICMP报文的IP数据报在传输过程中出现故障,转发该IP数据报的路由将不产生任何关于该差错的报文。
地址掩码请求;应答
10;9
路由器恳求;通告
ICMP协议报头最后一项是两个字节长度的校验和,而其后的ICMP消息内容则与消息功能有关,但所有消息内容中都必须带有引发错误消息和数据报的IP报头和前8个字节,而且这些信息足以使其上层协议对自己的报头进行检查并根据ICMP消息内容来执行适当的操作。最重要的是,ICMP协议不支持数据纠错功能,该协议只是通过向数据源回送错误消息来告诉路由错误。
此外还有一个代码(Code)域用来详细说明某种ICMP报文的类型,所有数据都
在ICMP头部后面。RFC定义了13种ICMP报文格式,具体如下:[2]
下图为报文类型以及它们的类型值;
类型值
ICMP报文类型
功能
3
目的站不可达
差错报告
11
数据包超时
12
数据包参数错误
8;0
回送请求;应答源自文库
请求应答
网络控制
17;18
2.1
ICMP是一个非常重要的协议,它对于网络安全具有极其重要的意义。ICMP消息是随IP数据包一起传输的,但该消息本身也是一种与IP协议并行运行在网络层的协议。ICMP提供一致易懂的出错报告信息。发送的出错报文返回到发送原数据的设备,因为只有发送设备才是出错报文的逻辑接受者。发送设备随后可根据ICMP报文确定发生错误的类型,并确定如何才能更好地重发失败的数据包。但是ICMP唯一的功能是报告问题而不是纠正错误,纠正错误的任务由发送方完成。
成绩:
《TCP/IP协议分析》课程设计
题目:ICMP协议分析
院(系):
专业班级:
姓名:
学号:
任课教师:
2013年6月10日
1
1.1
1.2
ICMP是Internet控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息,包括报告错误、交换受限控制和状态信息等。当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
ICMP报文包含在IP数据报中,属于IP的一个用户,IP头部就在ICMP的前
面,所以一个ICMP报文包括IP头部、ICMP头部和ICMP报文(见图表,ICMP报
文的结构和几种常见的ICMP报文格式),IP头部的Protocol值为1就说明这是
一个ICMP报文,ICMP头部中的类型(Type)域用来说明ICMP报文的作用及格式,
1.4
ICMP与我们息息相关。在网络体系结构的各层次中,都需要控制,而不同的层次有不同的分工和控制内容,IP层的控制功能是最复杂的,主要负责差错控制、拥塞控制等,任何控制都是建立在信息的基础之上的,在基于IP数据报的网络体系中,网关必须自己处理数据报的传输工作,而IP协议自身没有内在机制来获取差错信息并处理。为了处理这些错误,TCP/IP设计了ICMP协议,当某个网关发现传输错误时,立即向信源主机发送ICMP报文,报告出错信息,让信源主机采取相应处理措施,它是一种差错和控制报文协议,不仅用于传输差错报文,还传输控制报文。
ICMP协议是一种面向连接的协议,用于传输出错报告控制信息。它是一个非常重要的协议,它对于网络安全具有极其重要的意义。[1]
主要功能是:
1.侦测远端主机是否存在。
2.建立及维护路由资料。
3.重导资料传送路径。
4.资料流量控制。
1.3
在IP通信中,经常有数据包不能到达对方的情况,原因是在通信途中的某处的一个路由器由于不能处理所有的数据包,就将数据包一个一个的丢弃。或者因为搞错了端口号,因而服务器软件不能接受它,所以作为IP不可缺少的功能来规定了ICMP网络传输协议。
在IP网络上,由于数据包被丢弃的原因,为了控制将必要的信息传送给发信方,为了辅助IP协议,ICMP协议应运而生!制定万维网规格的IETF在1981年将RFC792作为ICMP的基本规格整理出来的。在RFC792的开头部分写着“ICMP是IP的不可缺少的部分吧,所有的IP软件必须实现ICMP协议”。
2
ICMP协议通过IP协议发送的,IP协议是一种无连接的,不可靠的数据包协议。因此,保证数据送达的工作应该由其他的模块来完成。其中一个重要的模块就是ICMP(网络控制报文)协议。当传送IP数据包发生错误,比如主机不可达,路由不可达等等,ICMP协议将会把错误信息封包,然后传送回给主机。给主机一个处理错误的机会,这也就是为什么说建立在IP层以上的协议是可能做到安全的原因。当检测到IP数据因为某种原因无法继续转发或投递时启动ICMP报文的传输,一般ICMP消息在以下几种情况下会被发送出来: