ICMP协议讲解.

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

TCPIP1ICMP协议介绍部门:产品中心测试部科室:软件测试科讲师:门荟时间:2015.3.24TCPIP•Ip协议为了有效利用网络资源,提供了不可靠和无连接的数据报交付服务,它只提供把数据报从源点交付到终点,而不关心过程中是否有丢失或者损坏。•Ip协议缺少:差错控制和查询辅助机制TCPIP•实际网络都有哪些不可预知的错误发生?•例如:•1、路由器找不到最终终点•2、数据报生存时间为0而被丢弃•3、在有限时间内主机无法收到一个数据报的所有分片,而被迫丢弃已收到的分片•等等。。TCPIP•如果上述错误发生该怎么办?•因此ICMP协议就顺理成章得诞生了!TCPIP•ICMP协议:InternetControlMessageProtocol•它对IP包无法传输时提供报告,这些差错报告帮助了发送方了解为什么无法传递,网络发生了什么问题,确定应用程序后续操作。•它还提供了一种查询机制,有利于网络环境分析和网络问题定位。•ICMP是一种差错与控制集于一体的协议,不仅用于传输差错报文,而且用于传输控制报文,以及请求/应答报文TCPIP主要内容•ICMP协议的类型•ICMP报文格式•常用ICMP差错报文•常用ICMP控制报文•常用ICMP请求/应答报文6TCPIP网际控制报文协议ICMP•为了提高IP数据报交付成功的机会,在网际层使用了网际控制报文协议ICMP(InternetControlMessageProtocol)。•ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。•ICMP不是高层协议,而是IP层的协议。•ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去。7TCPIPICMP协议8IP报头ICMP数据typecodechecksumICMP报头ICMP报文IP数据报TCPIPICMP报文的类型9信息不可到达报告IP协议IP数据报IP数据报传输协议差错与控制报文协议ICMP差错报告报文超时报告参数出错报告控制报文源抑制报文重定向报文请求/应答报文时戳请求/应答报文地址模请求/应答报文回应请求/应答报文TCPIPICMP报文•ICMP差错报文–ICMP差错报文伴随着丢弃出错数据产生的。一旦IP发现出错,首先丢弃出错的IP数据报,之后发出ICMP差错报文。–ICMP差错报文不享受特别的优先级,作为一般数据传输。为了更好地帮助源主机排错,ICMP差错报文中除了包含出错数据报的报头,而且还包括其数据区的前64bits的数据。–ICMP差错报文包括目的地不可达报文、超时报文、参数错报文等。10TCPIPICMP报文•ICMP控制报文IP协议包括了拥塞控制和路由控制两个部分,ICMP提供了相应的控制报文:源抑制报文和重定向报文。•ICMP请求/应答报文ICMP还提供了一些用于获得有用信息的一些请求/应答报文:ECHO请求/应答报文和时间戳请求/应答报文。11TCPIPICMP报文的格式12首部ICMP报文0数据部分检验和类型代码(这4个字节取决于ICMP报文的类型)81631IP数据报前4个字节都是一样的ICMP的数据部分(长度取决于类型)TCPIPICMP报文格式类型域ICMP报文类型类型域ICMP报文类型0回应应答12数据报参数错3信宿不可到达13时戳请求4源抑制14时戳应答5重定向17地址模请求8回应请求18地址模响应11数据报超时130124n(字节)类型代码校验和数据区头标TCPIPICMP报文格式•代码(code):提供报文类型的进一步信息;•校验和(checksum):提供整个ICMP报文的校验和;•数据区:包括出错数据报的报头及该数据报的前64bit数据;这些信息可以帮助信源机确定出错数据报.14TCPIP1、差错报文TCPIPICMP差错报文—目的地不可达•当网络节点认为某数据报的目的地不可达时,就向该数据报的源主机发送一个目的地不可达的ICMP分组。•ICMP报文–type(8bits)•=3–code(8bits)•0=netunreachable;•1=hostunreachable;•2=protocolunreachable;•3=portunreachable;•4=fragmentationneededandDFset;•5=sourceroutefailed.•6、7、8——15有15个code,不一一列举。–Checksum(16bits)–unused(32bits)–Internetheader+64bitsoforiginaldatadategram16主机A路由器其它网络向主机B发送数据目的主机不可达向B发送数据不知如何到达B发送ICMP报文TCPIP讨论•信宿不可达的4个层次:网络、主机、协议、端口;•网络不可到达:寻址故障;•主机不可到达:信宿机所在网络的最后一个网关发现其关闭或故障;•协议和端口不可到达–网络高层可采用多种协议,通过协议端口(port)实现访问;–协议号、端口号和网络地址、主机地址一样,作为数据报信宿地址的一部分使用;–同一协议可以通过不同的协议端口,同时处理多个访问;17TCPIP讨论•下面各种情况不会导致产生ICMP差错报文:1)ICMP差错报文。2)目的地址是广播地址或多播地址(D类地址)的IP数据报。3)作为链路层广播的数据报。4)不是IP分片的第一片。5)源地址不是单个主机的数据报。即源地址不能为零地址、环回地址、广播地址或多播地址。18为了防止过去允许ICMP差错报文对广播分组响应所带来的广播风暴。TCPIPICMP差错报文—超时•当网络结点发现某数据报的TTL域为零,需要丢弃此数据报时,需要向该数据报的源主机告知超时出错。•当目的主机在分段重组时,规定时间内由于分段丢失未完成重组,需要发送超时报文。•ICMP报文–type(8bits)•=11–code(8bits)•0=timetoliveexceededintransit;•1=fragmentreassemblytimeexceeded;–Checksum(16bits)–unused(32bits)–Internetheader+64bitsoforiginaldatadategram19TCPIPICMP差错报文—参数错•当网络结点或主机发现数据报中的报头参数出错(例如选项出错,无效报头等)时,发送参数错报文。•ICMP报文–type(8bits)•=12–code(8bits)•0=包头出错•1=缺少所需的选项部分–Checksum(16bits)–Pointer(8bits)•当code=0时,标明发生错误的八位组。–unused(24bits)–Internetheader+64bitsoforiginaldatadategram20TCPIP2、控制报文TCPIPICMP控制报文—源抑制•对于无连接的IP协议而言,拥塞控制是一个很重要的问题,TCP/IP利用发送ICMP源抑制报文,抑制源主机发出数据的速率来解决拥塞问题。•ICMP源抑制报文中type=4,code=1。22TCPIPICMP控制报文—源抑制•发送源抑制报文的情况:–当路由器或者主机因拥塞而丢弃数据报时,它就向数据报的发送端发送源点抑制报文。–目的:–1、通知源点,数据报已经被丢弃–2、警告源点,路径中某处出现了拥塞,源点必须放慢发送过程。23TCPIPICMP控制报文—源抑制•ICMP源抑制包括了三个阶段:–网络结点发现产生拥塞,向源主机发出ICMP源抑制报文。–源主机在收到源抑制报文后,按照一定的速率降低发往某目的主机的数据报速率。源主机在降低了速率后,一定的时间间隔内不会理会关于同一目的主机的源抑制报文,只有在下一个时间间隔开始的时候,关于同一目的主机的源抑制报文采会再次生效。–拥塞的解除由源主机自行完成。在下一个时间间隔到达时,没有收到关于同一目的主机的源抑制报文,源主机就结束对该目的主机的拥塞控制,逐渐恢复正常流量。24TCPIPICMP控制报文—重定向•在Internet中,主机在启动时只知道最少的寻径信息,保证主机将数据报发送出去,但未必是最优路由。启动后,通过ICMP重定向报文,在数据传输过程中,主机可以不断从同一个网络的网络结点中得到新的路由信息。25TCPIPICMP控制报文—重定向•ICMP的重定向功能保证主机拥有一个动态的,即小且优的路由表。–如果网络X的主机A发送一个数据报到另外一个网络Y的主机B,主机A的路由表中指示通过路由器G1可以到达网络Y。–该数据报被发送到路由器G1,G1通过查阅自己的路由表发现,从网络X到网络Y经过路由器G2是一条最佳路由。–路由器G1在将该数据报转发到网络Y后,发送一个ICMP重定向报文给主机A,告知到达网络Y的最佳路由为路由器G2。–经过不断积累,主机的路由表就越来越充实、优化了。•缺点:只能用于同一网络内的网关与主机之间的路径信息交换,不能用于网关之间的路径信息交换。26TCPIPICMP控制报文—重定向•ICMP重定向报文–type(8bits)•=5–code(8bits)•0=RedirectdatagramsfortheNetwork.•1=RedirectdatagramsfortheHost.•2=RedirectdatagramsfortheTypeofServiceandNetwork.•3=RedirectdatagramsfortheTypeofServiceandHost.–Checksum(16bits)–GatewayInternetAddress(32bits):网关地址–Internetheader+64bitsoforiginaldatadategram27TCPIP3、请求应答报文TCPIPICMP故障诊断与网络控制报文•用于故障诊断与网络控制的ICMP报文是以请求/应答对形式双向传输的报文;•用于故障诊断与网络控制的ICMP报文有:*回应请求/回应应答*时戳请求/时戳应答*地址模请求/地址模应答29TCPIPECHO请求和应答•用于测试目的地址的可达性,ping命令实现了ECHO请求/应答的功能。•ECHO请求/应答报文–type(8bits)•8=echomessage•0=echoreplymessage–code(8bits)•=0–Checksum(16bits)–Identifier(16bits)–SequenceNumber(16bits)•其中标识和序号用于帮助区分不同的ECHO请求/应答对。–Data……30主机AICMPEchoICMPRe-Echo主机B可以连通吗?主机B是的,我已经开机,并与你连接畅通。TCPIPPing程序•Ping程序由MikeMuuss编写,目的是为了测试另一台主机是否可达。该程序发送一份ICMP回显请求报文给主机,并等待返回ICMP回显应答。•Ping程序能测出到这台主机的往返时间,以表明该主机离我们有“多远”。•问题:如果不能Ping到某台主机,是否能认为该主机不可达?31TCPIPPing命令举例Cping172.16.1.20Pinging172.16.1.20with32bytesofdata:(正常)Replyfrom172.16.1.20:bytes=32time10msTTL=127Replyfrom172.16.1.20:bytes=32time10msTTL=127Replyfrom172.16.1.20:bytes=32time10msTTL=127Replyfrom172.16.1.20:bytes=32time10msTTL=127Pingstatisticsfor172.16.1.20:Packets:Sent=4,Received=4,Lost=0(0%loss),Approximateroundtriptimesinmilli-seconds:Minimum=0ms,Maximum=0ms,Average=0ms32TCPIPPing命令举例Pinging172.16.1.21with32by

1 / 35
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功