网络层--icmp协议(05)

ping 原理与ICMP协议

以前刚开始看的时候总觉得网络协议只能是层层封装,虽然查找资料,都说在网络上面同时有IP协议,arp协议,ICMP和IGMP协议,但自己就是绕不过弯来,现在想想,唉。。。

ping 的原理

ping 程序是用来探测主机到主机之间是否可通信,如果不能ping到某台主机,表明不能和这台主机建立连接。ping 使用的是ICMP协议它发送icmp回送请求消息给目的主机ICMP协议规定:目的主机必须返回ICMP回送应答消息给源主机。如果源主机在一定时间内收到应答,则认为主机可达。

   ICMP协议通过IP协议发送的,IP协议是一种无连接的,不可靠的数据包协议。

   ICMP协议在实际传输中数据包:20字节IP首部 + 8字节ICMP首部+ 1472字节<数据大小>38字节

    ICMP首部:8位类型+8位代码+16位校验和+(不同的类型和代码,格式也有所不同)

        icmp协议构成的数据包通过抓包发现是有序的随机一段或者几段的字母表



ICMP是(Internet Control Message Protocol)Internet控制报文协议,一种面向无连接的协议。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息本身并不传输用户数据。

抓包分析一组数据:

  对于request的抓包,可以看到类型为8,代码为0,代表请求回显(ping请求),同时有16位的校验和 

**************************************************************************************

对于reply的抓包,可以看到类型为0,代码为0,代表回显应答(ping应答)


附具体的ICMP报文的类型



ICMP协议大致分为两类,一种是查询报文,一种是差错报文。其中查询报文有以下几种用途:

  1. ping查询
  2. 子网掩码查询(用于无盘工作站在初始化自身的时候初始化子网掩码)
  3. 时间戳查询(可以用来同步时间)

而差错报文则产生在数据传送发生错误的时候。就不赘述了。

  • 2.ICMP的应用--ping

ping可以说是ICMP的最著名的应用,当我们某一个网站上不去的时候。通常会ping一下这个网站。ping会回显出一些有用的信息。一般的信息如下:

Reply from 10.4.24.1: bytes=32 time<1ms TTL=255
Reply from 10.4.24.1: bytes=32 time<1ms TTL=255
Reply from 10.4.24.1: bytes=32 time<1ms TTL=255
Reply from 10.4.24.1: bytes=32 time<1ms TTL=255

    TTL的值从目的主机到源主机,每经过一个路由减1,实际上也可以通过TTL的大小判断目的主机的系统,默认windows系统是255,linux系统是64.

  • ICMP的应用--Traceroute

Traceroute是用来侦测主机到目的主机之间所经路由情况的重要工具,也是最便利的工具。前面说到,尽管ping工具也可以进行侦测,但是,因为ip头的限制,ping不能完全的记录下所经过的路由器。所以Traceroute正好就填补了这个缺憾。

Traceroute的原理是非常非常的有意思,它受到目的主机的IP后,首先给目的主机发送一个TTL=1(还记得TTL是什么吗?)的UDP(后面就 知道UDP是什么了)数据包,而经过的第一个路由器收到这个数据包以后,就自动把TTL减1,而TTL变为0以后,路由器就把这个包给抛弃了,并同时产生 一个主机不可达的ICMP数据报给主机。主机收到这个数据报以后再发一个TTL=2的UDP数据报给目的主机,然后刺激第二个路由器给主机发ICMP数据 报。如此往复直到到达目的主机。这样,traceroute就拿到了所有的路由器ip。从而避开了ip头只能记录有限路由IP的问题。

有人要问,我怎么知道UDP到没到达目的主机呢?这就涉及一个技巧的问题,TCP和UDP协议有一个端口号定义,而普通的网络程序只监控少数的几个号码较 小的端口,比如说80,比如说23,等等。而traceroute发送的是端口号>30000(真变态)的UDP报,所以到达目的主机的时候,目的 主机只能发送一个端口不可达的ICMP数据报给主机。主机接到这个报告以后就知道,主机到了

时间: 2024-10-13 00:01:44

网络层--icmp协议(05)的相关文章

地址解析协议ARP,网络层协议IP、ICMP协议

分析所用软件下载:Wireshark-win32-1.10.2.exe 阅读导览 1. 分析并且应用ARP协议 2.分析IP协议 3.分析ICMP协议 1.分析arp报文的格式与内容 (1)ping 172.18.3.132 的arp请求报文: 000108000604000100e04c512ae8ac12038e000000000000ac120384 物理网络类型Hardware type: 0001 - Ethernet (1) 协议类型Protocol type: 0800 - IP

网络层 IP 协议首部格式与其配套使用的四个协议(ARP,RARP,ICMP,IGMP)

目录 IP协议首部格式地址解析协议 ARP逆向地址解析协议 RARP网际控制报文协议 ICMP网际组管理协议IGMP IP 数据报首部 IP数据报首部格式: 最高位在左边,记为0 bit:最低位在右边,记为31 bit 版本: 占 4 位,指 IP 协议的版本目前的 IP 协议版本号为 4 (即 IPv4) 首部长度: 占4位,可表示的最大数值是15个单位(一个单位为 4 字节)因此IP 的首部长度的最大值是 60 字节 区分服务: 占8位,用来获得更好的服务,在旧标准中叫做服务类型,但实际上一

(网络层)IP 协议首部格式与其配套使用的四个协议(ARP,RARP,ICMP,IGMP)

目录 IP协议首部格式地址解析协议 ARP逆向地址解析协议 RARP网际控制报文协议 ICMP网际组管理协议IGMP IP 数据报首部 IP数据报首部格式: 最高位在左边,记为0 bit:最低位在右边,记为31 bit 版本: 占 4 位,指 IP 协议的版本目前的 IP 协议版本号为 4 (即 IPv4) 首部长度: 占4位,可表示的最大数值是15个单位(一个单位为 4 字节)因此IP 的首部长度的最大值是 60 字节 区分服务: 占8位,用来获得更好的服务,在旧标准中叫做服务类型,但实际上一

ICMP协议

1. ICMP简介: ICMP全名为(INTERNET CONTROL MESSAGE PROTOCOL)网络控制报文协议,协议号为1,网络层协议. 它是TCP/IP协议族的一个子协议,用于在IP主机.路由器之间传递控制消息.控制消息是指网络通不通.主机是否可达.路由是否可用等网络本身的消息.这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用. ICMP协议是一种面向无连接的协议,用于传输出错报告控制信息. PING用的是ICMP协议,不是端口. 2. ICMP格式: 如下图

简单了解ICMP协议

ping命令是什么协议? 维基百科: ping是一种电脑网络工具,用来测试数据包能否通过IP协议到达特定主机.ping的运作原理是向目标主机传出一个ICMP [email protected]要求数据包,并等待接受echo回应数据包.程序会按时间和成功响应的次数估算丢失数据包率(丢包率)和数据包往返时间(网络时延). 可以知道,ping属于ICMP协议. ICMP属于哪一层? IP协议还缺少主机和管理查询所需要的机制.主机有时候需要判断某个路由或者是对方主机是否活跃.有时网络管理元也需要来自其他

TCP/IP的ICMP协议,端口号,TCP建立连接的3次握手

ICMP协议(Internet Control Message Protocol) 1.1. 定义:用于主机或路由器向源点发送差错信息或查询信息的协议. 1.2. 报文结构 IP首部(20个字节)注:ICMP的报文是封装在IP报文里面的,所以要包含IP首部 报文类型(2个字节) 报文字段(2个字节) 校验和(4个字节) ICMP报文内容(长度取决于ICMP报文的类型) 注:这里前八个字节为IP数据包的前八个字节,他们包含了应用程序在源目的主机上的端口号. 1.3. 报文类型 发生报文的情形分为2

ICMP协议-路由交换原理4-【HCNA笔记】

1.ICMP数据包格式 ICMP协议属于网络层,是TCP/IP协议族的一个子协议,ICMP数据包被封装在IP报文中.网络中传递的ICMP包示意如下,: ICMP数据包格式 帧头 IP报头 Data(ICMP包) FCS Type Code Checksum data 8位 8位 16位 按需要 Type:消息类型. Code:消息类型的具体参数. Checksum:校验字段,用于检查消息是否完整:在ICMP重定向消息中用于指定网关IP地址:在Echo Reply消息中这个字段包含标识符和序号.

[转]ICMP协议之ping实现

原文链接http://blog.csdn.net/qy532846454/article/details/5429700 1. 相关ICMP协议概述 这里只讲解与ping有关的ICMP消息类型,主机发送回送消息(Type = 8),被请求主机回送响应消息(Type = 0),基本格式如下: 回送消息[ECHO] 回送响应消息[ECHO REPLY] 其中•Code = 0, •CheckSum为校验和,重点注意从ICMP的头部(即Type开始),到data结束(即到整个数据包结束),具体计算见下

5.HCNA-HNTD——ICMP协议

Internet控制报文协议ICMP是网络层的一个重要协议.ICMP协议用来在网络设备间传递各种差错和控制信息,它对于收集各种网络信息.诊断和排除各种网络故障具有至关重要的作用.使用基于ICMP的应用时,需要对ICMP的工作原理非常熟悉. 学习目标: 1. 描述ICMP的应用场景 2. 理解常见的ICMP报文类型 3. 掌握ping和tracert的应用 ICMP是TCP/IP协议簇的核心协议之一,它用于在IP网络设备之间发送控制报文,传递差错.控制.查询等信息. ICMP Redirect重定