`

ICMP

 
阅读更多

ICMP

网络控制消息协定(英文:Internet Control Message Protocol,ICMP)是网路协议族的核心协议之一。它用于 TCP/IP 网络中发送控制消息,提供可能发生在通信环境中的各种问题反馈,通过这些信息,令管理者可以对所发生的问题作出诊断,然后采取适当的措施解决。

ICMP依靠IP来完成它的任务,它是IP的主要部分。它与传输协议,如TCP和UDP显著不同:它一般不用于在两点间传输数据。它通常不由网络程序直接使用,除了ping和traceroute这两个特别的例子。 IPv4中的ICMP被称作ICMPv4,IPv6中的ICMP则被称作ICMPv6。

技术细节:
ICMP是在RFC 792中定义的互联网协议族之一。通常用于返回的错误信息或是分析路由。ICMP错误消息总是包括了源数据并返回给发送者。 ICMP错误消息的例子之一是TTL值过期。每个路由器在转发数据报的时候都会把ip包头中的TTL值减一。如果TTL值为0,“TTL在传输中过期”的消息将会回报给源地址。 每个ICMP消息都是直接封装在一个IP数据包中的,因此,和UDP一样,ICMP是不可靠的。

虽然ICMP是包含在IP数据包中的,但是对ICMP消息通常会特殊处理,会和一般IP数据包的处理不同,而不是作为IP的一个子协议来处理。在很多时候,需要去查看ICMP消息的内容,然后发送适当的错误消息到那个原来产生IP数据包的程序,即那个导致ICMP讯息被传送的IP数据包。

很多常用的工具是基于ICMP消息的。traceroute是通过发送包含有特殊的TTL的包,然后接收ICMP超时消息和目标不可达消息来实现的。 ping则是用ICMP的"Echo request"(类别代码:8)和"Echo reply"(类别代码:0)消息来实现的。

 

Tracert

23 out of 45 rated this helpful - Rate this topic

 

Tracert is a route tracing utility that display a list of near-side router interfaces of the routers along the path between a source host and a destination. Tracert uses the IP TTL field in ICMP Echo Requests and ICMP Time Exceeded messages to determine the path from a source to a destination through an IP internetwork.

 

Note that some routers silently drop packets with expired TTLs. These routers do not appear in the Tracert display.

 

How Tracert Works

 

Tracert works by incrementing the TTL value by one for each ICMP Echo Request it sends, then waiting for an ICMP Time Exceeded message. The TTL values of the Tracert packets start with an initial value of one; the TTL of each trace after the first is incremented by one. A packet sent out by Tracert travels one hop further on each successive trip.

 

Figure 3.2 shows how Tracert works. Tracert is being run on Host A, and is following the path to Host B. At Router 1 and Router 2, the TTL is decremented to 0, causing each router to send an ICMP Time Exceeded message. When the ICMP Echo Request is received at Host B, it sends back an ICMP Echo Reply.

Cc940128.CNBD02(en-us,TechNet.10).gif

Figure 3.2 Step-by-Step Operation of the Tracert Tool

 

note-iconNote

 

The UNIX version of Tracert performs the same function as the Windows version except that the IP payload is a UDP packet addressed to a (presumably) unknown destination UDP port. Intermediate routers send back ICMP Time Expired messages recording the route taken and the final destination sends back an ICMP Destination Unreachable-Port Unreachable message.

 

The UDP payload from the UNIX Tracert tool can cross routers and firewalls, whereas the ICMP Echo Request messages might not due to ICMP filtering. To avoid this problem in Windows 2000, turn off packet filtering as described in "Check Packet Filtering" later in this chapter, then try using Tracert again.

 

分享到:
评论

相关推荐

    icmp6.rar_icmp6_hdr_ipv6 icmp

    标题中的"icmp6.rar_icmp6_hdr_ipv6 icmp"提到了ICMPv6(Internet Control Message Protocol version 6)协议,以及与IPv6相关的ICMP头部结构和可能的代码实现。描述中的"IPV6_MMTU - sizeof(struct ip6_hdr) - ...

    ICMP.rar_ICMP通信实现_icmp

    标题中的"ICMP.rar"指的是一个压缩包文件,其中包含了关于Internet控制消息协议(ICMP)的实现细节。"ICMP通信实现"说明这个压缩包的内容着重于如何在单片机上实现ICMP协议,而"icmp"标签进一步强调了这一点。"C8051...

    Java如何处理ICMP报文的收发

    ### Java如何处理ICMP报文的收发 #### 背景介绍 ICMP(Internet Control Message Protocol)是一种网络层协议,主要用于传输错误消息和控制信息。在Java中,由于其设计初衷是为了提供一个跨平台的高级编程环境,...

    ICMP报文的格式和种类

    ICMP 报文的格式和种类 ICMP 报文是 Internet 控制报文协议(Internet Control Message Protocol)的缩写,它是 TCP/IP 协议簇中的一种网络层协议。ICMP 报文的主要功能是报告错误和异常情况,提供网络诊断和 debug...

    icmp协议ping程序实现

    ICMP(Internet Control Message Protocol,互联网控制消息协议)是TCP/IP协议族中的一个重要组成部分,主要用于在IP网络上发送错误报告和诊断信息。它不直接承载用户数据,而是用于网络设备间传递控制信息,如网络...

    ccnp/ccna习题之三 研究 ICMP 数据包

    ICMP(Internet Control Message Protocol,互联网控制报文协议)是TCP/IP协议族中的一个重要组成部分,主要负责在IP网络中提供错误报告和诊断信息。在学习CCNP和CCNA的过程中,理解ICMP数据包的格式以及如何通过...

    icmp报文类型说明

    ### ICMP报文类型说明 #### 一、引言 互联网控制消息协议(Internet Control Message Protocol,简称ICMP)是互联网协议族(Internet Protocol Suite)的一个重要组成部分,它位于网络层,主要用于在网络设备间...

    巴可ICMP服务器程序升级教程

    ### 巴可ICMP服务器程序升级教程 #### 准备工作 在进行巴可ICMP服务器程序升级之前,需要做好一系列准备工作确保整个升级过程能够顺利进行。准备工作主要包括两个部分: 1. **下载软件**: - **R33002303_26_...

    利用RawSocket实现简单的Ping程序 ICMP协议

    在IT领域,网络通信是不可或缺的一部分,而ICMP(Internet Control Message Protocol,互联网控制消息协议)则是一个用于网络诊断和错误报告的重要协议。本话题主要关注如何利用C++编程语言和Linux操作系统下的Raw ...

    基于ICMP的ping程序_基于ICMP_基于ICMP的ping程序_

    标题中的“基于ICMP的ping程序”是指使用Internet控制消息协议(ICMP)来实现的网络诊断工具,类似于我们常见的Windows系统自带的`ping`命令。这个程序的主要目的是检查网络连通性,通过向目标主机发送ICMP回显请求...

    HC110110004 ICMP协议

    ICMP协议详解 ICMP(Internet Control Message Protocol,互联网控制报文协议)是网络层的一个重要协议。ICMP协议用来在网络设备间传递各种差错和控制信息,并对于收集各种网络信息、诊断和排除各种网络故障等方面...

    ICMP timestamp请求响应漏洞 修复 Traceroute探测漏洞 修复 linux 7

    ICMP timestamp请求响应漏洞 修复 Traceroute探测漏洞 修复 使用firewall-cmd打开关闭防火墙与端口 linux 7 ICMP timestamp请求响应漏洞 修复 Traceroute探测漏洞 修复 使用firewall-cmd打开关闭防火墙与端口 linux ...

    wireshark抓包实验之ICMP

    本实验围绕ICMP(Internet Control Message Protocol,互联网控制消息协议)进行,ICMP是TCP/IP协议族中的一个基础协议,主要用于错误报告和网络诊断。 1. 你的主机IP地址是什么?目标主机的IP地址是什么? 在...

    IP协议ICMP协议分析实验报告

    Ping命令使用的ICMP协议中的回送请求和回送响应,所以可以使用协议分析软件通过使用ping命令来抓包,分析IP协议和ICMP协议的工作过程。 4. 实验步骤 (1) 打开192.168.0.204主机的命令行,打开抓包软件wireshark开始...

    自己用C#实现的ICMP 可以PING 还有查找路由,查找归属

    在IT领域,网络通信是至关重要的部分,而ICMP(Internet Control Message Protocol)协议就是用于在IP网络中传输控制消息的协议。它主要用于诊断网络连接问题,如ping和tracert命令就是基于ICMP实现的。这篇内容将...

    利用ICMP数据包探测网络中的活动主机 VC++

    本文将深入探讨如何利用ICMP(Internet Control Message Protocol,互联网控制消息协议)数据包进行网络活动主机的探测,这一技术常用于网络管理和故障排查。我们将重点讨论如何使用VC++编程语言来实现这一功能。 ...

    ICMP重定向介绍,ICMP重定向介绍

    ### ICMP重定向深入解析 #### 一、ICMP重定向概览 ICMP(Internet Control Message Protocol)重定向是互联网协议族中的一项重要机制,它主要用于优化数据包的传输路径,尤其是在网络拓扑发生变化时,帮助主机更新...

    基于ICMP的路由跟踪(traceroute)程序

    在TCP/IP网络编程中,基于ICMP的路由跟踪(traceroute)程序是一个极其重要的工具,它可以帮助网络管理员和开发者理解数据包在网络中的传输路径。本文将深入探讨traceroute的工作原理、涉及的ICMP协议以及如何实现...

    ICMP协议的Ping

    ICMP协议,全称Internet Control Message Protocol,是Internet协议族的一部分,主要用于在IP网络中报告错误和传递控制信息。在本文中,我们将深入探讨基于ICMP协议的两个关键网络诊断工具——Ping和Traceroute,...

Global site tag (gtag.js) - Google Analytics