资源预览内容
第1页 / 共37页
第2页 / 共37页
第3页 / 共37页
第4页 / 共37页
第5页 / 共37页
第6页 / 共37页
第7页 / 共37页
第8页 / 共37页
第9页 / 共37页
第10页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
TCPIPTCPIP ICMP协议介绍协议介绍部门:产品中心测试部科室:软件测试科讲师:门荟时间:2015.3.242021/6/41TCPIPTCPIPIp协议为了有效利用网络资源,提供了不可靠和无连接的数据报交付服务,它只提供把数据报从源点交付到终点,而不关心过程中是否有丢失或者损坏。Ip协议缺少:差错控制和查询辅助机制TCPIPTCPIP实际网络都有哪些不可预知的错误发生?例如:1、路由器找不到最终终点2、数据报生存时间为0而被丢弃3、在有限时间内主机无法收到一个数据报的所有分片,而被迫丢弃已收到的分片等等。TCPIPTCPIP如果上述错误发生该怎么办?因此ICMP协议就顺理成章得诞生了!TCPIPTCPIPICMP协议:Internet Control Message Protocol它对IP包无法传输时提供报告,这些差错报告帮助了发送方了解为什么无法传递,网络发生了什么问题,确定应用程序后续操作。它还提供了一种查询机制,有利于网络环境分析和网络问题定位。ICMP是一种差错与控制集于一体的协议,不仅用于传输差错报文,而且用于传输控制报文,以及请求/应答报文TCPIPTCPIP主要内容ICMP协议的类型ICMP报文格式常用ICMP差错报文常用ICMP控制报文常用ICMP请求/应答报文TCPIPTCPIP网际控制报文协议 ICMP为了提高 IP 数据报交付成功的机会,在网际层使用了网际控制报文协议 ICMP (Internet Control Message Protocol)。ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。ICMP 不是高层协议,而是 IP 层的协议。ICMP 报文作为 IP 层数据报的数据,加上数据报的首部,组成 IP 数据报发送出去。 TCPIPTCPIPICMP协议IP 报头报头ICMP 数据数据type code checksumICMP报头报头ICMP报文报文IP数据报数据报TCPIPTCPIPICMP报文的类型TCPIPTCPIPICMP报文ICMP差错报文ICMP差错报文伴随着丢弃出错数据产生的。一旦IP发现出错,首先丢弃出错的IP数据报,之后发出ICMP差错报文。ICMP差错报文不享受特别的优先级,作为一般数据传输。为了更好地帮助源主机排错,ICMP差错报文中除了包含出错数据报的报头,而且还包括其数据区的前64bits的数据。ICMP差错报文包括目的地不可达报文、超时报文、参数错报文等。TCPIPTCPIPICMP报文ICMP控制报文 IP协议包括了拥塞控制和路由控制两个部分,ICMP提供了相应的控制报文:源抑制报文和重定向报文。ICMP请求/应答报文 ICMP还提供了一些用于获得有用信息的一些请求/应答报文:ECHO请求/应答报文和时间戳请求/应答报文。TCPIPTCPIPICMP 报文的格式 首 部ICMP 报文0数 据 部 分检验和类型代码(这 4 个字节取决于 ICMP 报文的类型)81631IP 数据报前 4 个字节都是一样的ICMP 的数据部分(长度取决于类型)TCPIPTCPIPICMP报文格式 类型域 ICMP报文类型 类型域 ICMP报文类型 0 回应应答 12 数据报参数错 3 信宿不可到达 13 时戳请求 4 源抑制 14 时戳应答 5 重定向 17 地址模请求 8 回应请求 18 地址模响应 11 数据报超时TCPIPTCPIPICMP报文格式代码(code): 提供报文类型的进一步信息 ;校验和(checksum): 提供整个ICMP报文的校验和;数据区:包括出错数据报的报头及该数据报的前64bit数据;这些信息可以帮助信源机确定出错数据报.TCPIPTCPIP1、差错报文、差错报文TCPIPTCPIPICMP差错报文 目的地不可达当网络节点认为某数据报的目的地不可达时,就向该数据报的源主机发送一个目的地不可达的ICMP分组。ICMP报文type (8bits)3code (8bits)0 = net unreachable;1 = host unreachable;2 = protocol unreachable;3 = port unreachable;4 = fragmentation needed and DF set;5 = source route failed.6、7、815有15个code,不一一列举。Checksum(16bits)unused (32bits)Internet header + 64 bits of original data dategram主机A其它网络其它网络向主机向主机B发送数据发送数据目的主机不可达目的主机不可达向向B发送数据发送数据不知如何到达不知如何到达B发送发送ICMP报文报文TCPIPTCPIP讨论信宿不可达的4个层次:网络、主机、协议、端口;网络不可到达 :寻址故障;主机不可到达 :信宿机所在网络的最后一个网关发现其关闭或故障;协议和端口不可到达 网络高层可采用多种协议,通过协议端口(port)实现访问;协议号、端口号和网络地址、主机地址一样,作为数据报信宿地址的一部分使用;同一协议可以通过不同的协议端口,同时处理多个访问;TCPIPTCPIP讨论下面各种情况不会导致产生ICMP差错报文:1) ICMP 差错报文。2) 目的地址是广播地址或多播地址(D 类地址)的 IP 数据报。3) 作为链路层广播的数据报。4) 不是IP 分片的第一片。5) 源地址不是单个主机的数据报。即源地址不能为零地址、环回地址、广播地址或多播地址。为了防止过去允许为了防止过去允许为了防止过去允许为了防止过去允许ICMPICMP差错报文对广播分组响应所差错报文对广播分组响应所差错报文对广播分组响应所差错报文对广播分组响应所带来的广播风暴。带来的广播风暴。带来的广播风暴。带来的广播风暴。TCPIPTCPIPICMP差错报文 超时当网络结点发现某数据报的TTL域为零,需要丢弃此数据报时,需要向该数据报的源主机告知超时出错。当目的主机在分段重组时,规定时间内由于分段丢失未完成重组,需要发送超时报文。ICMP报文type (8bits) 11code (8bits) 0 = time to live exceeded in transit;1 = fragment reassembly time exceeded;Checksum(16bits)unused (32bits)Internet header + 64 bits of original data dategramTCPIPTCPIPICMP差错报文 参数错当网络结点或主机发现数据报中的报头参数出错(例如选项出错,无效报头等)时,发送参数错报文。ICMP报文type (8bits) 12code (8bits) 0 =包头出错1=缺少所需的选项部分Checksum(16bits)Pointer(8bits)当code0时,标明发生错误的八位组。unused (24bits)Internet header + 64 bits of original data dategram TCPIPTCPIP2、控制报文、控制报文TCPIPTCPIPICMP控制报文 源抑制对于无连接的IP协议而言,拥塞控制是一个很重要的问题,TCP/IP利用发送ICMP源抑制报文,抑制源主机发出数据的速率来解决拥塞问题。ICMP源抑制报文中type4,code1。TCPIPTCPIPICMP控制报文 源抑制发送源抑制报文的情况:当路由器或者主机因拥塞而丢弃数据报时,它就向数据报的发送端发送源点抑制报文。目的:1、通知源点,数据报已经被丢弃2、警告源点,路径中某处出现了拥塞,源点必须放慢发送过程。TCPIPTCPIPICMP控制报文 源抑制ICMP源抑制包括了三个阶段:网络结点发现产生拥塞,向源主机发出ICMP源抑制报文。源主机在收到源抑制报文后,按照一定的速率降低发往某目的主机的数据报速率。源主机在降低了速率后,一定的时间间隔内不会理会关于同一目的主机的源抑制报文,只有在下一个时间间隔开始的时候,关于同一目的主机的源抑制报文采会再次生效。拥塞的解除由源主机自行完成。在下一个时间间隔到达时,没有收到关于同一目的主机的源抑制报文,源主机就结束对该目的主机的拥塞控制,逐渐恢复正常流量。TCPIPTCPIPICMP控制报文 重定向在Internet中,主机在启动时只知道最少的寻径信息,保证主机将数据报发送出去,但未必是最优路由。启动后,通过ICMP重定向报文,在数据传输过程中,主机可以不断从同一个网络的网络结点中得到新的路由信息。TCPIPTCPIPICMP控制报文 重定向ICMP的重定向功能保证主机拥有一个动态的,即小且优的路由表。如果网络X的主机A发送一个数据报到另外一个网络Y的主机B,主机A的路由表中指示通过路由器G1可以到达网络Y。该数据报被发送到路由器G1,G1通过查阅自己的路由表发现,从网络X到网络Y经过路由器G2是一条最佳路由。路由器G1在将该数据报转发到网络Y后,发送一个ICMP重定向报文给主机A,告知到达网络Y的最佳路由为路由器G2。经过不断积累,主机的路由表就越来越充实、优化了。缺点:只能用于同一网络内的网关与主机之间的路径信息交换,不能用于网关之间的路径信息交换。TCPIPTCPIPICMP控制报文 重定向ICMP重定向报文type (8bits) 5code (8bits)0 = Redirect datagrams for the Network.1 = Redirect datagrams for the Host.2 = Redirect datagrams for the Type of Service and Network.3 = Redirect datagrams for the Type of Service and Host.Checksum(16bits)Gateway Internet Address (32 bits) :网关地址Internet header + 64 bits of original data dategram TCPIPTCPIP3、请求应答报文、请求应答报文TCPIPTCPIPICMP故障诊断与网络控制报文用于故障诊断与网络控制的ICMP报文是以请求/应答对形式双向传输的报文;用于故障诊断与网络控制的ICMP报文有: * 回应请求 / 回应应答 * 时戳请求 / 时戳应答 * 地址模请求 / 地址模应答TCPIPTCPIPECHO请求和应答用于测试目的地址的可达性,ping命令实现了ECHO请求/应答的功能。 ECHO请求/应答报文type (8bits) 8 echo message 0 echo reply messagecode (8bits)= 0 Checksum(16bits)Identifier(16bits)Sequence Number(16bits)其中标识和序号用于帮助区分不同的ECHO请求/应答对。Data 主机AICMP EchoICMP Re-Echo主机主机B可可以连通吗?以连通吗?主机B是的,我已经开机,是的,我已经开机,并与你连接畅通。并与你连接畅通。TCPIPTCPIPPing程序Ping程序由Mike Muuss 编写,目的是为了测试另一台主机是否可达。该程序发送一份ICMP回显请求报文给主机,并等待返回ICMP回显应答。Ping程序能测出到这台主机的往返时间,以表明该主机离我们有“多远”。问题:如果不能Ping到某台主机,是否能认为该主机不可达?TCPIPTCPIPPing命令举例Cping 172.16.1.20 Pinging 172.16.1.20 with 32 bytes of data: (正常) Reply from 172.16.1.20: bytes=32 time10ms TTL=127 Reply from 172.16.1.20: bytes=32 time10ms TTL=127 Reply from 172.16.1.20: bytes=32 time10ms TTL=127 Reply from 172.16.1.20: bytes=32 time10ms TTL=127Ping statistics for 172.16.1.20: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0msTCPIPTCPIPPing命令举例 Pinging 172.16.1.21 with 32 bytes of data: (有问题)Request timed out.Request timed out.Request timed out.Request timed out. Ping statistics for 172.16.1.21: Packets: Sent = 4, Received = 0, Lost = 4 (100% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms TCPIPTCPIP时间戳请求和应答报文用于时钟同步一个最简单的方法就是ICMP协议中的时间戳请求/应答报文。ICMP先利用时间戳请求和应答报文从其他机器处得到其当前时间,经过计算后再同步时钟。时间戳请求/应答报文type (8bits) 13 timestamp message14 timestamp reply messagecode (8bits)= 0 Checksum(16bits)Identifier(16bits)+ Sequence Number(16bits)其中标识和序号用于帮助区分不同的ECHO请求/应答对。Originate Timestamp (32 bits)Receive Timestamp (32 bits)Transmit Timestamp (32 bits)计算同步时钟,需要知道发送方和接收方之间的时间差。时间差 (当前时间初始时间戳)(发送时间戳接收时间戳) / 2TCPIPTCPIPInformation请求和应答报文由于在A、B、C类型的网络下有划分的子网,导致一些IP地址被作为子网的网络地址。为了得到正确的子网网络地址,自己发出Information请求,网络结点将发回Information应答,告知其子网网络地址。Information请求/应答报文type (8bits) 15 information request message16 information reply messagecode(8bits)= 0 Checksum(16bits)Identifier(16bits)+ Sequence Number(16bits)其中标识和序号用于帮助区分不同的ECHO请求/应答对。IP module(32bits)部分资料从网络收集整理而来,供大家参考,感谢您的关注!
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号